Elementos de Econom´ıa Computacional:
Aplicaciones Fundamentales
J.C.Segura-Ortiz
*Programa de Econom´ıa, Universidad de La Salle, Bogot´
a, D.C.
[email protected]
21 de julio de 2011
Resumen
Las aplicaciones de Econom´ıa Computacional son cada vez m´as fre-cuentes en el an´alisis econ´omico moderno y suelen ser utilizados para ofe-cer contribuciones a la evaluaci´onex-ante/ex-postde decisiones de pol´ıtica que involucran agentes cuyas conductas son susceptibles de ser represen-tadas mediante problemas de optimizaci´on. Se ofrece una serie de modelos matem´aticos, computables, completamente especificados y parametriza-dos, y la forma de ponerlos en t´erminos de un lenguaje de computadora para obtener sus soluciones num´ericas y para adelantar posteriormente ejercicios de contrafactuales simulaci´on utiles al an´alisis estrat´egico de pol´ıtica.
1.
Presentaci´
on
En econom´ıa computacional la metodolog´ıa general puede describirse de mo-do sucinto as´ı: dada una pregunta objetiva sobre el munmo-do econ´omico real y dada laadopci´on de una serie de proposiciones te´orica que seg´un estimaci´on del anal-ista pueden explicar el comportamiento del sistema a representar, se adopta para ´esta una especificaci´on matem´atica particular y se a˜naden datos reales para su parametrizaci´on num´erica; las soluciones son posteriormente generadas por una aplicaci´on de computadora. Luego de obtener la debenchmark, se simulan cam-bios en los resultados iniciales mediante la introducci´on de modificaciones en el ambiente econ´omico recreado en el modelo a trav´es de cambios en los valores de los par´ametros que caracterizaron la soluci´on inicial. El analista compara los resultados del equilibriocontraf´actico con los del equilibrio debenchmark, y con los resultados de la comparaci´on, concluye y recomienda.
*Director CIDES, —Centro de Estudios en Econom´ıa Social— Universidad de La Salle,
Una amplia oferta de software comercial hace posible tratar con modelos computacionales de diferentes dimensiones; con mayor o menor dificultad pa-quetes comoMatLab,Mathematica o Gauss, entre muchos otros, pueden servir al prop´osito descrito. Sin embargo, si se quiere flexibilidad, el GAMS, un potente lenguaje desarrollado por economistas matem´aticos bajo el auspicio del Banco Mundial a comienzos de los 80s, es una respuesta de ampl´ısimas posibilidades que ser´an exploradas en este documento.
Se introduce el uso del GAMS en econom´ıa computacional, parametrizando y resolviendo una serie de ejemplos esenciales en econom´ıa que pueden luego ser incorporados y articulados en aplicaciones computables como modelos Aplica-dos de Equilibrio General (AGE), modelos multisectoriales, modelos de equilib-rio parcial, modelos de din´amicos (de naturaleza recursiva o intertemporal) de crecimiento, entre otros.
En la siguiente secci´on se ofrece una introducci´on al lenguaje GAMS y a los elementos sint´acticos que lo constituyen, en el contexto del problema neocl´asico de la elecci´on del consumidor. En cualquier caso una introducci´on bastante pop-ular es provista en Rosenthal (1988)1 en donde se trata el modelo de tranporte de George Dantzig de modo intuitivo y eficaz en lo que refiere al lenguaje GAMS en la visi´on de la programaci´on matem´atica; no obstante, se quiere ambientar la presente introducci´on a la econom´ıa computacional con ejemplos que pueden re-sultar mucho m´as familiares al economista tipo. En la tercera secci´on se presenta el mismo modelo en una versi´on m´as compacta que explora el uso de conjun-tos; al mismo tiempo el modelo se formula tanto como un Problema No Lineal (NLP2) t´ıpico, cuanto como un Sistema no Lineal Restringido (CNS3). La sec-ci´on cuarta produce un modelo de equilibrio de intercambio puro mientras que la secci´on quinta trata una econom´ıa con producci´on. Una secci´on subsiguiente trata modelos multisectoriales del tipo de InsumoProducto de Leontief y de la clase de Equilibrio General Computable. La secci´on final presenta modelos en los que la din´amica es introducida en forma recursiva y en forma intertemporal.
2.
Teor´ıa Econ´
omica y Econom´ıa Computacional
Las aplicaciones de computador para la soluci´on de sistemas num´ericos sue-len procesar una serie de ordenes que tienen por prop´osito resolver num´
erica-mente un modelo matem´atico. Al tratarse de modelos num´ericos, la soluci´on
debe ser computada y el modelo matem´atico, que ha de estar perfectamente especificado en sus aspectos te´orico, funcional y param´etrico, debe ser puesto en t´erminos que el computador pueda comprender. La econom´ıa computacional tiene que ver con la soluci´on num´erica de modelos de econom´ıacompletamente
especificados.
1R. E. Rosenthal (1988). C¸ hapter 2: A GAMS Tutorial”. GAMS: A User’s Guide. The
Scientific Press, Redwood City, California.
2Non Linear Program
2.1.
El problema del consumidor: especificaci´
on te´
orica
Considere el modelo neocl´asico de la demanda individual. Se supone que un agente representativo elige una cesta de bienes x = {x1, x2, ..., x`} que se
encuentra en el conjunto de mercanc´ıas disponible, que consta de`elementos, es decir, de`mercanc´ıas distintas.
Si se acepta que cualquier n´umero real puede representar alguna cantidad de mercanc´ıa y que al considerar males estos pueden entrar en la cesta de consumo aludiendo al beneficio de sueliminaci´on, —la recolecci´on de basuras, por ejemplo—, entonces el conjunto de elecci´on del consumidor t´ıpico es un conjunto X = R`+. En otros t´erminos, en el modelo presente el conjunto de elecci´on es el de todos los vectores de valor real en el espacio euclideano de`, o lo que es lo mismo, x∈R`+. Cada mercanc´ıa tiene asociado un ´unico precio dado lo cual, un vector de precios es tambi´en un vector p ={p1, p2, ..., pk, ..., p`} de
R`+. Con un nivel de riqueza predeterminado,M, el consumidor debe elegir un vector de mercanc´ıas que no cueste m´as que su riqueza:
P`
k=1pkxk≤M (1)
Con su elecci´on, el consumidor busca maximizar su bienestar, representado por una funci´on de valor real,u: R`
+ =⇒R que convierte vectores de R`+ en n´umeros reales. La funci´on se supone monot´onica creciente y estrictamente cua-sic´oncava con lo que mayores cantidades de bienes suponen mayores niveles de
u, que se conoce comofunci´on de utilidad; la cuasiconcavidad estricta garantiza que de existir soluci´on, ´esta ser´a ´unica. El problema del consumidor, consistente en maximizar la funci´on de utilidad eligiendo sujeto a la restricci´on (1) puede ponderse en t´erminos muy generales de la siguiente forma:
m´ax
xk∈R`
u(xk) (2)
sujeta a:
P`
k=1pkxk≤M (3)
La soluci´on de este problema es una cesta ´optima de bienes, maximizadora de la utilidad que var´ıa en forma cont´ınua con los precios y con el ingreso, x∗(p, M) que se denomina funci´on de demanda del consumidor o bien funci´on
de demanda Marshallianadel consumidor.
2.2.
Especificaci´
on Funcional
El modelo compuesto por el objetivo (2) y la restricci´on (3) involucra una
especificaci´on te´oricaque admite una familia completa de soluciones de la forma
que son valores predeterminados que, al definir elconjunto de salida, tambi´en definen elconjunto de llegada del modelo.
El considerar como un todo el modelo propuesto es f´acil comprobar que si bien la especificaci´on te´orica es suficiente la especificaci´on funcional es in-completa pues a´un cuando para la restricci´on se ha definido te´oricamente una
combinaci´on lineal entre precios y cantidades, —se ha adoptado unaforma
lin-eal para la funci´on de presupuesto—, de la funci´on de utilidad, solo se sabe que debe ser cont´ınua, mon´otona y estrictamente cuasic´oncava. Sug´un se sabe, existe una gran familia de funciones de valor real que cumplen con estas carac-ter´ısticas; la funci´on del tipo Cobb-Douglas es una de ellas. Si se adopta, por ejemplo, esa forma funcional, el problema de maximizaci´on puede formularse ahora de la siguiente manera:
m´ax
u (x) =
Q`
k=1x
αk
k ∀k= 1,2, ..., ` (4) sujeta a:
P`
k=1pkxk≤M (5)
El modelo (4)-(5) es una posible especificaci´on funcional que corresponde al modelo te´orico (2)-(3); en efecto, la funci´on objetivo pudo haber correspondido, por ejemplo a formas alternativas como las CES, Trascendental Logar´ıtmica, cuasi-lineal, etc., en tanto que la restricci´on bien podr´ıa haber incluido algunos tramos no lineales, caso en el cual, la forma funcional ser´ıa perfectamente dis-tinta. La soluci´on anal´ıtica del problema (4) (5) implica la construcci´on de la funci´on de Lagrange usual y la soluci´on del sistema de ecuaciones a que da lugar el conjunto de condiciones rlevantes para ´optimo que caracterizan la soluci´on. En el caso Cobb-Douglas, la soluci´on es un vector de demandas de la forma,
x∗k(p, M) = αkM
pk
para todas y cada una de las k = 1, .., ` mercanc´ıas en x. Note que la solu-ci´on anal´ıtica del problema funcionalmente especificado da lugar a familias de soluciones que dependen de los valores, en el caso Cobb-Douglas presente, de los par´ametrosαk,pkyM, i.e., cuando el consumidor tiene preferencias que pueden
ser representadas por una funci´on del tipo Cobb-Douglas, su demanda por la
k-´esima mercanc´ıa es una funci´on cont´ınua del precio de la k-´esima mercanc´ıa, de la intensidad de su preferencia por ese bien,αk y del nivel de riquezaM.
2.3.
Parametrizando el Modelo
Avanzando a la especificaci´on completa del modelo, una especificaci´on num´ eri-ca de los par´ametros es necesaria. Un modelo matem´atico est´a conformado
grosso modo por ecuaciones y variables. Las variables, a su vez, pueden ser
tenidas en cuenta comoex´ogenasyend´ogenas. Las variables end´ogenas son las soluciones del modelo, e.g., las demandas por las k mercanc´ıas en el modelo actual en tanto que las variables ex´ogenas son valores predeterminados que de-finen, tanto el conjunto de elecci´on, —el conjunto de salida—, cuanto el conjunto de llegada, —el rango de soluciones—.
Una revisi´on adicional del modelo (4),(5) hace posible identificar una serie de par´ametros suceptibles de serasignados num´ericamente:
El n´umero de mercanc´ıas,`
Los precios de las`mercanc´ıas,pk,
El ingreso del consumidorM, y
El juego de par´ametrosαkque caracterizan las preferencias Cobb-Douglas por el bienk-´esimo.
Suponga que el consumidor del ejemplo debe elegir las cantidades de `=3 mercanc´ıas, que la riqueza del consumior esM=100, que el precio de cada una de ellas est´a dado por el vector p ={1,4,3}; finalmente, para los exponentes de las mercanc´ıas en la funci´on de utilidad se ha elegido el vectorα={0,5,0,3,0,2}. Con el valor deelldefinido, la especificaci´on funcional del modelo es, finalmente:
m´axu(x1, x2, x3) =xα11x
α2
2 x
α3
3 (6)
sujeta a:
p1x1+p2x2+p3x3≤M (7) Reemplazando los valores definidos para p,M yαla versi´oncompletamente
parametrizadadel modelo queda,
m´axu(x1, x2, x3) =x01,5x 0,3 2 x
0,2
3 (8)
sujeta a:
x1+ 4x2+ 3x3= 100 (9)
En la cual se ha cambiado ”≤”gracias a la monoton´ıa de las preferencias, i.e., gracias a que el modelo te´orico garantiza que en el equilibrio, el consumidor ha de gastar toda su riqueza. La soluci´on de papel y l´apiz implica construir la funci´on de lagrange correspondiente,
L(x1, x2, x3;λ) =x01,5x 0,3 2 x
0,2
∂L ∂x1
= 0,5x−10,5x20,3x03,2−λp1= 0 (11)
∂L ∂x2
= 0,3x01,5x2−0,3x03,2−λp2= 0 (12)
∂L ∂x3
= 0,2x01,5x20,3x−30,2−λp3= 0 (13)
∂L
∂λ =x1+ 4x2+ 3x3−100 = 0 (14)
La soluci´on, luego de operar sobre el sistema, como es la costumbre es (x∗1, x∗2, x∗3;λ∗) = (50, 7.5 ,6.6; 0.19).
2.4.
Implementaci´
on en GAMS
La soluci´on num´erica del modelo es viable siempre que sus dimensiones sean tratables. En el caso presente, el problema matem´atico consiste en encontrar un vector (x∗1, x∗2, x∗3;λ∗) tal que el sistema de ecuaciones (11) a (14) sea igual a cero, cuesti´on que involucra la soluci´on de un sistema de cuatro ecuaciones para cuatro variables. Las condiciones te´oricas que se imponen garantizan que existir´a soluci´on, unica y estable. Suponga, sin embargo, que el n´umero de mer-canc´ıas incluidas aumenta a ` = 4: las dimensiones sistema de ecuaciones a resolver aumentan y con ello la dificultad para encontrar la soluci´on que, de cualquier modo, puede ser sobrellevada haciendo uso de un computador.
El GAMS es un lenguaje de alto nivel, —esto es, un lenguaje m´as pr´oximo al lenguaje humano que al lenguaje de m´aquina—, con el que es posible formu-lar y resolver num´ericamente modelos matem´aticos como, precisamente, aqu´el que trata la presente introducci´on. La implementaci´on computable del modelo exige, como en cualquier otro tipo de lenguaje para la computaci´on t´ecnica, un proceso de declaraci´on de las entidades del modelo y su asignaci´on num´erica previo a su utilizaci´on. Quiere decir que cualquier parte del modelo no declarada o asignada ser´a desconocida por el procesador que habr´a de generar un men-saje de error. Por lo dem´as, dado el modelo te´orico, el lenguaje implementa la especificaci´on num´erica y la especificaci´on funcional y lo resuelve haciendo uso m´etodos num´ericos t´ıpicos.
En el caso que se est´a tratando, se definen inicialmente los parametros del modelo para, inmediatamente, hacerlos sujetos de asignaci´on num´erica. Trat´ ando-se en realidad de datos de un modelo, el GAMS ofrece distintas formas de in-troducci´on, que incluyen la lectura desde una base de datos externa. Adem´as, los datos pueden ser escalares, vectores o matrices. Por ejemplo, en el caso del modelo del consumo, la lista de par´ametros est´a definida por la listaM=100, e ingreso, p ={1,4,3}el vector de precios de las mercanc´ıas yα={0,5,0,3,0,2}
que es el vector de exponentes en la funci´on de utilidad.
*--- Elecci´on del Consumidor: Un modelo escalar de tres mercancias
*--- Secci´on 1: Par´ametros del Modelo
*--- Declaraci´on de Par´ametros parameters
M Ingreso del Consumidor p1 Precio de la Mercanc´ıa 1 p2 Precio de la Mercanc´ıa 2 p3 Precio de la Mercanc´ıa 3
alpha1 Exponente de la Mercanc´ıa 1 en la funci´on de Utilidad alpha2 Exponente de la Mercanc´ıa 2 en la funci´on de Utilidad alpha3 Exponente de la Mercanc´ıa 3 en la funci´on de Utilidad ;
*--- Asignaci´on num´erica de los par´ametros M = 100.0;
p1 = 1.0; p2 = 4.0; p3 = 3.0; alpha1 = 0.5; alpha2 = 0.3; alpha3 = 0.2;
display M, p1, p2, p3, alpha1, alpha2, alpha3;
Figura 1.— Declaraci´on y asignaci´on de par´ametros
La pieza de c´odigo de laFigura 1 contiene dos distintos tipos de acciones. La primera de ellas consiste en declarar la existencia de una serie de par´ametros, cuesti´on que comienza haciendo uso del verbo((parameter)), seguido de la lista de par´ametros a utilizar; no deje de notar que a la declaraci´on de un par´ametro sigue una descripci´on (opcional) que ilustra sobre el rol del par´ametro en el modelo. La declaraci´on de los par´ametros concluye con el s´ımbolo,((;)), al final de la lista. La segunda acci´on consiste en asignar calor num´erico a cada uno de los elementos de la lista de par´ametros declarados, lo cual es tan sencillo como poner ((alpha2 = 0.3;)) en el caso del exponente de la mercanc´ıa 2 en la funci´on de utilidad. Al finalla acci´on de parametrizaci´on se ha reducido a la construcci´on de una lista de elementos a la que corresponde una serie de valores num´ericos. Es de notar aqu´ı que todo comando termina con((;)).
Con la parametrizaci´on num´erica el modelo de ejemplo ha tornado una es-pecificaci´on funcional tan general como el modelo (6),(7) en una cuya soluci´on num´erica es susceptible de sercomputadacomo, precisamente el modelo (8),(9). En particular, se quiere saber cu´ales son los valores dex1, x2, x3que maximizan (8) y que, dados los precios de mercado, no cuestan m´as que el ingreso del consumidor.
Para la especificaci´on de modelo propiamente dicho, se precisa de la declaraci´on de las entidades que lo estructuran y conforman,v.g. variables (end´ogenas) y ecuaciones. LaFigura 2 contiene una pieza de c´odigo GAMS que representa el modelo como una relaci´on entre ecuaciones y variables end´ogenas y ex´ogenas. Al igual que en el proceso de parametrizaci´on, es necesario declarar la existen-cia de una entidad determinada, —un par´ametro, una variable, una ecuaci´on—, antes de ser utilizada. Una l´ogica m´ınima exige que las primeras entidades a declarar son las variables end´ogenas que es lo que se hace al invocar el verbo
((variables)) para, a regl´on seguido, escribir la lista de las variables de inter´es junto con su descripci´on (opcional), finalizando la lista con((;)).
El conjunto de ecuaciones que estructuran el modelo se introduce en GAMS declarando su existencia y especificando las relaciones funcionales entre variables ex´ogenas (´o par´ametros) y variables end´ogenas que lo estructuran. El conjunto de ordenes entre el verbo((equations))y el cierre del comando,((;))contiene la lista de ecuaciones que el analista quiere introducir y una descripci´on (opcional) de la misma: en nuestro caso, las ecuaciones a incluir son la funci´on de utilidad (ecuaci´on (8)) y la restricci´on de presupuesto (ecuaci´on (9)).
*--- Secci´on 2: Especificaci´on del Modelo
*--- Definici´on de variables end´ogenas
variables
u Variable objetivo - utilidad x1 Cantidad de Mercanc´ıa 1 x2 Cantidad de Mercanc´ıa 2 x3 Cantidad de Mercanc´ıa 3;
*--- Definici´on Funcional del Modelo
equations
u_eq Funci´on Objetivo (Ecuaci´on 6 en el texto)
m_eq Restricci´on de Presupuesto (Ecuaci´on 7 en el texto) ;
u_eq.. u =e= x1**alpha1*x2**alpha2*x3**alpha3;
m_eq.. p1*x1 + p2*x2 + p3*x3 =e= M;
model utilidad / u_eq, m_eq /;
A la declaraci´on de ecuaciones sigue la especificaci´on funcional, esto es, la expresi´on que en el modelo anal´ıtico (ecuaciones (8) y (9)) tiene cada ecuaci´on. A diferencia de los libres de texto, en el GAMS las ecuaciones no se identifican con n´umeros sino con los nombres que han sido sujeto de especificaci´on en la aplicaci´on del comandoequations.
Como ya resulta habitual, luego de la declaraci´on de las ecuaciones, sigue su especificaci´on funcional, cuesti´on realmente f´acil de lograr, seg´un se puede comprobar en laFigura 2. La sintaxis del lenguaje GAMS busca que la especi-ficaci´on algebr´aica de una entidad determinada en el modelo sea an´aloga a la que se presenta en un libro de texto.
No obstante hay que tener en cuenta algunas convenciones espec´ıficas al GAMS como, entre otras, la forma como se introducen las relaciones entre la-dos derecho e izquierdo de las ecuaciones del modelo. As´ı, el s´ımbolo ((=e=))
representa al operador binario((=)), el s´ımbolo((=g=))al operador((≥)), y el sim-bolo ((=l=)) al operador((≤)). El modelo comprende un conjunto de ecuaciones estructuralmente coherentes que se recogen mediante la instrucci´on,
model utilidad / u_eq, m_eq /;
que literalmente dice: ((el modelo “utilidad” consta de las ecuaciones u eq y m eq)). El modelo queda formalmente especificado en lenguaje GAMS con estos comandos si bien es preciso tener en mente que el proceso de soluci´on comienza con una evaluaci´on num´erica inicial del modelo que en ausencia de
unainicializaci´onde las variables end´ogenas, se obtendr´an muy probablemente
mensajes de error atinentes a problemas num´ericos como la evaluaci´on de una divisi´on por cero, por ejemplo. En GAMS, toda variable tiene asociada unabase
de datos que registra el valor actual de la variable, as´ı como los valores m´aximo
y m´ınimo entre los cuales la variable puede adoptar valores. El nombre de una variable seguido de los sufijos ((.lo)), ((.l)) o ((.up)) indica el valor m´ınimo, el nivel o el valor superior de la misma. As´ı, si la variable de inter´es, es((x))entonces los registros((x.lo)),((x.l))o((x.up))almacenar´an los l´ımites inferior y superior entre los cuales la variable puede tomar valores (((x.lo)), ((x.up))) y el valor actual de la variable.
Las variables end´ogenas del modelo actual son los consumos de mercanc´ıas que maximizan la utilidad,((x1,x2,x3))y su inicializaci´on se logra mediante una asignaci´on simple:
*--- Inicializacion de variables end´ogenas x1.l = 0.01;
x2.l = 0.01; x3.l = 0.01;
Luego de esta asignaci´on deinitial guesses, es posible invocar al solucionador con una orden sencilla e intuitiva:
solve utilidad using nlp maximizing u;
Que literalmente traduce ((resuelva el modelo “utilidad” utilizando un
cual el analista pasa el control al GAMS que ofrece las respuestas, i.e., los val-ores de las variables end´ogenas que resuelven el modelo. La salida del proceso computacional es registrada en un archivo de texto que contiene varias partes incluyendo en forma opcional el c´odigo completo del modelo y una tabla de ref-erencias cruzadas de par´ametros, ecuaciones y variables que ayudan aldebugging
del programa. Aparte de esta informaci´on se resaltan tres bloques de informa-ci´on relevantes: el reporte de estad´ısticas del modelo, el resumen del proceso de soluci´on y el reporte de respuestas, que incluye el valor final de las ecuaciones y de las variables. En laFigura 3 se presenta el primero de estos reportes:
MODEL STATISTICS
BLOCKS OF EQUATIONS 2 SINGLE EQUATIONS 2 BLOCKS OF VARIABLES 4 SINGLE VARIABLES 4 NON ZERO ELEMENTS 7 NON LINEAR N-Z 3 DERIVATIVE POOL 9 CONSTANT POOL 18 CODE LENGTH 29
Figura 3.— Estad´ısticas del Modelo
Por ser un modelo construido sobre una aproximaci´on escalar (en oposici´on a vectorial), el n´umero de bloques de ecuaciones es igual al n´umero de ecua-ciones individuales, es decir cada ecuaci´on constituye en si misma un bloque de ecuaciones; al mismo tiempo, y por la misma raz´on, el n´umero de bloques de variables es el mismo n´umero de variables individuales que en este caso son cuatro: la variable objetivo y los tres niveles de consumo. El resto de la infor-maci´on que hace referencia a distintas dimensiones del sistema de ecuaciones a solucionar no es relevante por el momento si bien su discui´on aparece en el Manual de Usuario del GAMS. Por su parte, el resumen del proceso de soluci´on aporta una cantidad adicional de datos de inter´es:
S O L V E S U M M A R Y
MODEL utilidad OBJECTIVE u TYPE NLP DIRECTION MAXIMIZE SOLVER PATHNLP FROM LINE 55
**** SOLVER STATUS 1 Normal Completion **** MODEL STATUS 2 Locally Optimal **** OBJECTIVE VALUE 18.9141
RESOURCE USAGE, LIMIT 0.093 1000.000 ITERATION COUNT, LIMIT 5 2000000000 EVALUATION ERRORS 0 0
La primera parte de este reporte arroja informaci´on sobre el trabajo que acaba de culminar: registra el nombre del modelo, el tipo de modelo, el solucionador utilizado, el nombre de la variable objetivo, la direcci´on de a optimizaci´on (min-iminzar, maximizar) y la l´ınea de c´odigo donde aparece la orden de soluci´on. La segunda parte comunica que, en el caso presente, el solucionador termin´o en frma normal el proceso, que la soluci´on del modelo es, como en el caso de los NLP, localmente ´optima (en el caso de la programa ci´on lineal o ”LP.elestatus deseable es ”Globalmente ´Optimo”, por ejemplo) y el valor final de la variable objetivo. Al final se propocionan algunos datos del esfuerzo relativo del proce-sador que fu´e del 0.0093 % (es decir, un modelo de facil soluci´on), del n´umero de iteraciones necesarias para llegar a la soluci´on (5 de 2 mil millones posibles) y el n´umero de errores en la evaluaci´on num´erica del proceso, en este caso, ninguno. El examen de los reportes es indispensable porque da cuenta de si el pro-ceso num´erico se ha logrado de manera correcta y garantiza que los resultados num´ericos del modelo es coherente con las respuestas esperadas desde la proposi-ci´on te´orica que constituye el punto de partida del an´alisis. Una vez verificado el exito en este particular, resulta procedente ahora examinar las soluciones del modelo:
LOWER LEVEL UPPER MARGINAL
---- EQU u_eq . . . 1.0000
---- EQU m_eq 100.0000 100.0000 100.0000 0.1891
u_eq Funci´on Objetivo (Ecuaci´on 6 en el texto)
m_eq Restricci´on de Presupuesto (Ecuaci´on 7 en el texto)
LOWER LEVEL UPPER MARGINAL
---- VAR u -INF 18.9141 +INF .
---- VAR x1 -INF 50.0000 +INF .
---- VAR x2 -INF 7.5000 +INF .
---- VAR x3 -INF 6.6667 +INF .
u Variable objetivo - utilidad x1 Cantidad de Mercanc´ıa 1 x2 Cantidad de Mercanc´ıa 2 x3 Cantidad de Mercanc´ıa 3
**** REPORT SUMMARY : 0 NONOPT 0 INFEASIBLE 0 UNBOUNDED 0 ERRORS
Figura 5.— Soluciones Num´ericas del Modelo
caso de la funci´on objetivo que es efectivamente la funci´on de utilidad, el valor reportado bajo la columnaLEVELes cero (”.”) indicando que el lado izquierdo de la ecuaci´on, que es una variable libre, y el lado izquierdo que es una relaci´on funcional entre variables end´ogenas y par´ametros, resultaron iguales, dadoslos valores finales de las variables de elecci´on. En el caso de la restricci´on de pre-supuesto, el valor final de la ecuaci´on es 100, — el valor parametrizado del ingreso —, indicando que la relaci´on entre precios y cantidades (´optimas) en la funci´on de presupuesto se satisface con igualdad.
Bajo la columnaMARGINALse reportan los multiplicadores duales (o de La-grage) del problema. Note que el de la funci´on objetivo es ((1)), de modo que la respuesta a la preguntacu´anto cambia la utilidad cuando la utilidad cambia
marginalmente? es 1, es decir, el 100 %. El multiplicador dual de la restricci´on
de presupuesto dice que el aumento de una unidad monetaria de ingreso supone un mejoramiento de la utilidad de 0,19. No deje de tener en cuenta que valores marginales iguales a cero en las ecuaciones indican que la restricci´on asocia-da no est´a activa, problema que se origina en un mal proceso de modelaje en cualquiera de sus etapas. La segunda parte del reporte registra los valores de equilibrio de las variables end´ogenas y el rango en el cual pueden variar, en este caso el intervalo, (−∞,+∞).
Las ´ultimas lineas al final de este reporte hacen enfasis en que no hubo ele-mentos no ´optimos, ninguna soluci´on tiene elementos fuera del conjunto factible, no hubo problemas de acotamiento y, en suma, que no hubo errores. El c´odigo completo del programa aparece en la figura a continuaci´on:
2.5.
An´
alisis de Sensibilidad
Suponga que quiere saber c´omo cambia la demanda del consumidor cuando, por el ejemplo, el ingreso se reduce en $20 mientras que los precios de las mer-canc´ıas 1 y 3 se reducen a la mitad, un ejercicio de an´alisis de sensibilidad t´ıpico en este modelo. Del modelo te´orico se deriva que, por un lado, el consumo no aumenta cuando el ingreso disminuye mientras que las demandas mantienen una relaci´on inversa con los precios, por otro. Sin embargo, una respuesta espec´ıfica a la pregunta concreta que se ha formulado puede ser dif´ıcilmente provista, — a´un en estos casos elementales—, en ausencia de computaciones num´ericas con el modelo. Parte de la metodolog´ıa en Econom´ıa Computacional eval´ua com-paraciones entre los escenarios b´asico y contraf´actico mediante aplicaciones que involucran cambiar valores de los par´ametros que definen la especificidad del modelo.
*--- Valores alternativos de los par´ametros M = M*0.8;
p1 = p1*0.5; p3 = p3*0.5;
solve utilidad using nlp maximizing u;
La soluci´on alternativa es la que aparece en la siguiente figura:
LOWER LEVEL UPPER MARGINAL
---- EQU u_eq . . . 1.0000
---- EQU m_eq 80.0000 80.0000 80.0000 0.3073
u_eq Funci´on Objetivo (Ecuaci´on 6 en el texto)
m_eq Restricci´on de Presupuesto (Ecuaci´on 7 en el texto)
LOWER LEVEL UPPER MARGINAL
---- VAR u -INF 24.5808 +INF .
---- VAR x1 -INF 80.0000 +INF .
---- VAR x2 -INF 6.0000 +INF 5.6227756E-8
---- VAR x3 -INF 10.6667 +INF .
u Variable objetivo - utilidad x1 Cantidad de Mercanc´ıa 1 x2 Cantidad de Mercanc´ıa 2 x3 Cantidad de Mercanc´ıa 3
**** REPORT SUMMARY : 0 NONOPT 0 INFEASIBLE 0 UNBOUNDED 0 ERRORS
Figura 6.— Soluciones Num´ericas del Modelo Alternativo
---- 89 PARAMETER reporte Un Reporte de Resultados
Base Alt
M 100.000 80.000 p1 1.000 0.500 p2 4.000 4.000 p3 3.000 1.500 x1 50.000 80.000 x2 7.500 6.000 x3 6.667 10.667 u 18.914 24.581
La contrucci´on de reportes m´as elaborados es, naturalmente, posible pero el trabajo adicional es proporcional al detalle de que se quiere incluir en estos res´umenes. En efecto, con los datos de la tabla anterior es f´acil construir indi-cadores de bienestar t´ıpicos (Variaci´on Equivalente / Variaci´on Compensada) y un sinn´umero de datos a gusto del analista resultando, en adici´on, posible exportar los datos de salida a archivos de hoja electr´onica que pueden facilitar los trabajos de consolidaci´on de la informaci´on. El conjunto completo de or-denes se reune en un archivo de texto con extensi´on GAMS que es susceptible de ser editado con una interfase de usuario como ´epsilon o cualquier otro de su predilecci´on; en todo caso, la versi´onde la casa de GAMS incuye el GAMS-IDE (GAMS Interactive Developer Environment) que es una interface de un muy flexible manejo. El codigo GAMS completo, incluida una serie de instrucciones que prepara un reporte post-c´omputo para la comparaci´on de los equilibrios inicial y contraf´actico aparece en el ap´endice A.
3.
El Modelo del Consumidor Revisado
La versi´on del problema del consumidor de la secci´on previa adopta una aproximaci´onescalar, esto es, que representa las variables end´ogenas y ex´ogenas del modelo como entidades individuales que no pertenecen en forma expl´ıcita a ning´un conjunto predefinido. Sin embargo, la discusi´on te´orica del ac´apite 2.1. establece con claridad que las mercanc´ıas hacen en realidad parte de un subconjunto de los reales bien definido con`elementos a los cuales corresponden
`precios. En oposici´on al modelo representado por las ecuaciones (6)-(7) de la secci´on 2.3. supra, se quiere una representaci´on m´as compacta como la de las ecuaciones (4)-(5) en la secci´on 2.2. en las que sumas y productos aparecen como operadores sobre un conjunto espec´ıfico.
3.1.
Modelo del Consumidor en Formato Vectorial
Un consumidor representativo elige una cesta de bienes x ={x1, x2, ..., x`}
que se encuentra en el conjunto de mercanc´ıas disponible, que consta de` el-ementos, es decir, de ` mercanc´ıas. Una primera convenci´on sobre la que se precisa llamar la atenci´on es que en GAMS, la notaci´on de los conjuntos es equivalente a los subindices en el ´algebra corriente, si bien constituyen series de elementos sobre los cuales se hacen operaciones. La definici´on de un conjunto se hace utilizando el verbo set seguido del nombre del conjunto, de una de-scripci´on opcional del mismo y de la lista de sus elementos. En el caso de las mercanc´ıas del modelo del consumidor, esta orden es:
set k Mercanc´ıas /1,2,3/;
en donde se dice que el conjuntok consta de los elementos 1,2,3. Una forma de definir el mismo conjunto es:
set k Mercanc´ıas /1*3/;
que dice que todos los elementos del 1 ((hasta)) el 3, est´an en el conjunto k. La parametrizaci´on hace eco de esta nueva circunstancia. En efecto, hay un precio en la restricci´on presupuestal, y un exponente en la funci´on de utilidad para cada mercanc´ıa, i.e., para cada elemento del conjunto reci´en definido. La siguiente pieza de c´odigo muestra la implementaci´on de la definici´on y asignaci´on de par´ametros del modelo:
*--- Definici´on de Conjuntos
set k Mercanc´ıas /1,2,3/;
*--- Declaraci´on y asignaci´on num´erica de par´ametros. parameter
p(k) Precio de la Mercanc´ıa k-´esima / 1 1.0
2 4.0 3 3.0 /
alpha(k) Exponente de la mercanc´ıa k en la funci´on de utilidad / 1 0.5
2 0.3 3 0.2 / ;
scalar M Ingreso del consumidor /100/;
Figura 7.— Parametrizaci´on Vectorial del Modelo
como un vector con tres elementos,p(k). Los exponentes de cada mercanc´ıa en la funci´on de utilidad reciben un tratamiento an´alogo y se notan alpha(k). A la declaraci´on de cada par´ametro sigue una asignaci´on num´erica cuya sint´axis exige relacionar con cada elemento del conjuntok el valor del par´ametro siendo importante se˜nalar que la lista de valores de cada par´ametro y los elementos del conjunto de referencia al que correponden, han de escibirse entreslasheso barras inclidadas;la asignaci´on de estas listas inicia con el verbo((parameter))y termina con((;)). El ingreso, en el esquema marshalliano es un escalar y se declara bajo esa convenci´on utilizando el verbo scalar seguido del nombre del par´ametro, una descripci´on (opcional) del mismo y su valor, entre barras inclinadas. Como es de esperar las variables end´ogenas del modelo se declaran de acuerdo con sun naturaleza, ya sea esta escalar, como en el caso de la utilidad, o vectorial, en el caso de los elementos de la cesta de consumo que han de maximizar la funci´on objetivo. No deje de observar que la declaraci´on comienza con el verbo
((variables))y termina, como en los casos anteriores con((;))
*--- Definici´on de variables end´ogenas
variables
u Variable objetivo - utilidad x(k) Demanda de Mercacn´ıa k-´esima;
Figura 8.— Declaraci´on de Variables
Como en el caso escalar, hay cuatro variables: el indicador de utilidad,((u)) y los cuatro elementos del vector((x(k))), que son los consumos de las tres mer-cacn´ıas que optimizan el bienestar del consumidor. Las ecuaciones del modelo se formulan aprovechando la notaci´on vectorial. Se pide comparar la formulaci´on a continuaci´on con la del modelo en la versi´on escalar, y con el modelo (4)-(5):
*--- Definici´on Funcional del Modelo
equations
u_eq Funci´on Objetivo (Ecuaci´on 4 en el texto)
m_eq Restricci´on de Presupuesto (Ecuaci´on 5 en el texto) ;
u_eq.. u =e= prod(k, x(k)**alpha(k));
m_eq.. sum(k, p(k)*x(k)) =e= M;
No obstante las evidentes diferencias en la definici´on operacional de las ecua-ciones del modelo respecto de la versi´on escalar, la declaraci´on del modelo a solucionar es id´entica. Por otra parte, la inicializaci´on de las variables, que se ha impuesto como una conveniente ayuda a las computaciones num´ericas, resulta m´as compacta por virtud de la utilizaci´on de conjuntos que facilita el lenguaje puesto que la orden,
x.l(k) = 0.01;
comparada con la serie de asignaciones,
x1.l = 0.01; x2.l = 0.01; x3.l = 0.01;
es efectivamente mucho m´as compacta y f´acil de implementar: simplemente piense que el n´umero de mercados aumenta a 20 o 30 y que el n´umero de agentes que concurren a los mercados del modelo asciende una o dos decenas. Es de esperarse tambi´en que las salidas num´ericas sean reportadas en los grupos indicados. De una ojeada a las estad´ısticas del modelo:
MODEL STATISTICS
BLOCKS OF EQUATIONS 2 SINGLE EQUATIONS 2 BLOCKS OF VARIABLES 2 SINGLE VARIABLES 4 NON ZERO ELEMENTS 7 NON LINEAR N-Z 3 DERIVATIVE POOL 9 CONSTANT POOL 18 CODE LENGTH 29
Figura 10.— Maximizaci´on de la Utilidad: Estad´ısticas del Modelo Vectorial
Una diferencia fundamental respecto de la versi´on escalar del modelo es que si bien hay tantos ((bloques)) de ecuaciones cuanto de ecuaciones individuales, las variables aparecen agrupadas de un modo que refleja la estrat´egia de mod-elamiento porque si bien se registra que se han declarado en efecto dos bloques de ecuaciones, ((u)) y ((x(k))), en realidad en este ´ultimo grupo hay tres vari-ables,x1, x2, x3, esto es, cuatro variables individuales. En forma paralela, la informaci´on num´erica sobre los valores finales de las ecuaciones y las variables aparece agrupada en((bloques)):
LOWER LEVEL UPPER MARGINAL
---- EQU u_eq . . . 1.0000
---- EQU m_eq 100.0000 100.0000 100.0000 0.1891
u_eq Funci´on Objetivo (Ecuaci´on 6 en el texto)
LOWER LEVEL UPPER MARGINAL
---- VAR u -INF 18.9141 +INF .
u Variable objetivo - utilidad
---- VAR x Demanda de Mercacn´ıa k-´esima
LOWER LEVEL UPPER MARGINAL
1 -INF 50.0000 +INF .
2 -INF 7.5000 +INF .
3 -INF 6.6667 +INF .
**** REPORT SUMMARY : 0 NONOPT 0 INFEASIBLE 0 UNBOUNDED 0 ERRORS
Figura 11.— Soluciones del Modelo en versi´on Vectorial
3.2.
El Modelo del Consumidor como un CNS
Es posible especificar el prpblema del consumidor como un CNS o
Con-strained Non-Linear System, es decir como un sistema de ecuaciones no
(nece-sariamente) lineal. A diferencia de los enfoques LP/NLP que involucran una funci´on objetivo a optimizar dada la elecci´on de un vector del conjunto factible, en el el formato CNS se elige un vector de variables end´ogenas que satisfaga los requerimientos del probelma. Formalmente, un CNS puede ponerse en la siguiente forma4
Encontrar x sujeto a:
F(x) = 0
l≤x≤u G(x)≤b
A la funci´on vectorialF(x) corresponde un vector que puede restringirse a los l´ımiteslyu(inferior y superior) y se puede incluir una familia de ecuaciones adicionalesG(x)≤b que contribuir´an a la definici´on del la regi´on factible.
El conjunto de ecuaciones (11) a (14) corresponde precisamente a esta de-scripci´on del problema CNS y puede ser resuelto utilizando un procesador ade-cuado.
En formulaci´on GAMS del modelo del consumidor en formato CNS la defini-ci´on de par´ametros permanece inalterada respecto del modelo NLP si bien los bloques de variables y de ecuaciones se modifican levemente: la variable((u)) se elimina al tiempo que se incluye una nueva variable llamada((lambda))que es el
4GAMS Corp. Model Types Description enhttp://www.gams.com/modtype/modeltyp.htm#
multiplicador dual que acompa˜na a la restricci´on presupuestal en la funci´on de Lagrange; en adici´on, con la definici´on funcional del sistema de ecuaciones, se plantean dos bloques de ecuaciones: el que corresponde a las derivadas parciales de la funci´on de Lagrange respecto de las variables de elecci´on,((x(k))), y el que corresponde a la parcial de la funci´on legrangeana respecto del multiplicador dual, que como es bien sabido, corresponde a la restricci´on presupuestal del consumidor; en total, cuatro ecuaciones en dos bloques. La siguiente pieza de c´odigo muestra la forma como se ha especificado el modelo en esta versi´on:
*--- Definici´on Funcional del Modelo
equations
foc_x_eq Funci´on Objetivo (Ecuaciones 11 a 13 en el texto)
foc_m_eq Restricci´on de Presupuesto (Ecuaci´on 14 en el texto);
foc_x_eq(k).. (alpha(k)/x(k))*prod(j, x(j)**alpha(j)) =e= lambda*p(k);
foc_m_eq.. sum(k, p(k)*x(k)) =e= m;
Figura 12.— Especificaci´on Funcional como un CNS
La ecuaci´on ((foc m eq)) corresponde a la derivada direccional ∂∂λL que da necesariamente la restricci´on presupuestal: es un bloque de ecuaciones que com-prende exactamente una ecuaci´on. Por su parte la ecuaci´on ((foc x eq(k)))
aparece referida al conjunto((k)), esto es, constituye unbloque de((k))elementos que son las ecuaciones (11),(12) y (13) en el texto. Se quiere la atenci´on sobre una caracter´ıstica interesante en la formulaci´on de este bloque de ecuaciones, que incluye un ´ındice((j))al cual no se ha hecho referencia a´un. Para comprender esta definici´on, considere de nuevo la derivada direccional ∂x∂L
k que en el caso
Cobb-Douglas es,
∂L ∂x1
= (αk/xk)∗Y
k xαk
k =λpk (15)
Esta expresi´on es el producto de dos componentes: el k-vector (αk/xk), y el producto Q
kx αk
k que da la utilidad que reporta un plan de consumo x =
{x1, x2, ..., x`} y que es, por tanto, un escalar. Si el modelista entra la especifi-caci´on,
foc_x_eq(k).. (alpha(k)/x(k))*prod(k, x(k)**alpha(k)) =e= lambda*p(k);
125 Set is under control already
257 Solve statement not checked because of previous errors
Estos errores surgen porque en la ecuaci´on ((foc x eq(k))), que debe op-erar para cada elemento en el conjunto ((k)) hay dos operaciones en conflicto. En primer lugar se debe computar un vector de ratios(((alpha(k)/x(k)))), — operaci´on legal porque denominador y numerador de la expresi´on tienen ((k))
elementos—, mientras que en la otra mano, la ecuaci´on debe computar un pro-ducto que agrega todos los elementos ((x(k)) en un escalar, para todo k en el conjunto de referencia; es decir, el producto se˜nalado, que es una constante (pues aparece en cada una de las condiciones de primer orden), es tratado como una variable, en el control de la ecuaci´on que est´a determinado por la posi-ci´on del ´ındice ((k)) en el conjunto. Por supuesto, hay una forma de resolver el problema y una posible respuesta para este caso consiste en liberar el ´ındice
((k))del control de la ecuaci´on cuando est´a computando el producto usando una copia del conjunto((k))que se ha llamado ((j))en este ejemplo, y que se obtiene introduciendo la orden,
alias(k,j)
con esta instrucci´on GAMS crea una copia del conjunto k llamado conjunto j
que puede ser utilizado en la soluci´on del progblema. En efecto, al modificar el productoprod(k, x(k)**alpha(k)) para cambiar ((k)) por ((j)), el control de la ecuaci´on (qu´e est´a definido sobre((k))desaparece del producto, que ya puede efectuarse sin conflicto, sin que la ecuaci´on como un todo pierda pertinencia.
La instrucci´on que ordena solucionar el modelo es similar a las de los casos anteriores salvo por el hecho de que en los modelos CNS los conceptos de variable y funci´on objetivo carecen de sentido. La instrucci´on en estos casos es solve <nombre del modelo> using CNS. En nuestro caso particular, si el modelo se ha llamado((utilidad)), la instrucci´on es:
solve utilidad using CNS;
Vale la pena dar una ojeada a los resultados, que arrojan datos interesantes, respecto del caso NLP. En la secci´on del informe de resultados que se refiere a las estad´ısicas del modelo se revelan la dimensiones efectivas del modelo:
MODEL STATISTICS
BLOCKS OF EQUATIONS 2 SINGLE EQUATIONS 4 BLOCKS OF VARIABLES 2 SINGLE VARIABLES 4 NON ZERO ELEMENTS 15 NON LINEAR N-Z 9 DERIVATIVE POOL 10 CONSTANT POOL 18 CODE LENGTH 112
FIXED EQUATIONS 4 FREE VARIABLES 4
Figura 13.— Maximizaci´on de la Utilidad como un CNS: Estad´ısticas del
Empiece por notar que a los dosbloquesde ecuaciones, corresponden en reali-dad, cuatro ecuaciones individuales: las tres ecuaciones agrupadas en((foc x eq(k))), m´as la ecuaci´on de presupuesto. Al mismo tiempo, se han definido dosbloques
de ecuaciones que reunen en realidad cuatro variables: los cuatro elementos de
x(k)m´as el ingreso del consumidor,((m)). Al final, el n´umero de ecuaciones fijas (4) y el n´umero de variables libres (4) se˜nalan un hecho particular a observar cuando se formula un modelo bajo el formato CNS 5 que es el de la necesi-dad de que el modelosea cuadrado. En el Resumen de la Soluci´on se registra, adem´as del nombre del modelo, el tipo y el solucionador elegido, el status fi-nal de solucionador, —que en el caso de un procesamiento exitoso debe ser((1 Normal Completion))—, y el estatus final del modelo, que de ser resuelto en forma correcta, ha de ser((16 Solved)), en oposici´on a ((1 Optimal)) del caso LP y a((2 Locally Optimal))en los modelos NLP.
S O L V E S U M M A R Y
MODEL utilidad TYPE CNS
SOLVER PATH FROM LINE 59
**** SOLVER STATUS 1 Normal Completion **** MODEL STATUS 16 Solved
RESOURCE USAGE, LIMIT 0.024 1000.000 ITERATION COUNT, LIMIT 5 2000000000 EVALUATION ERRORS 0 0
Figura 14.— Resumen de Soluci´on
Finalmente, la forma de presentaci´on de las soluciones num´ericas, tambi´en var´ıa en relaci´on con los casos en los cuales existen funci´on y variable objetivo:
---- EQU foc_x_eq Funci´on Objetivo (Ecuaciones 11 a 13 en el texto)
LOWER LEVEL UPPER
1 . . .
2 . . .
3 . . .
LOWER LEVEL UPPER
---- EQU foc_m_eq 100.0000 100.0000 100.0000
foc_m_eq Restricci´on de Presupuesto (Ecuaci´on 14 en el texto)
---- VAR x Demanda de Mercanc´ıa k-´esima
LOWER LEVEL UPPER
1 -INF 50.0000 +INF
2 -INF 7.5000 +INF
3 -INF 6.6667 +INF
LOWER LEVEL UPPER
---- VAR lambda -INF 0.1891 +INF
Figura 15.— Soluciones Num´ericas en el Caso CNS
Por tratarse de un modelo que adopta una estrategia vectorial, ecuaciones y variables se reportan en bloques. En relaci´on con el conjunto de ecuaciones
((foc x eq(k))), las soluciones satisfacen completamente los requerimientos que las ecuaciones individuales imponen, que es la razon por la cual se reporta cero para cada una de ellas. En cuanto al segundo bloque de ecuaciones (la derivada parcial de la funci´on de Lagrange respecto del multiplicador dual), el valor reportado es el de la constante, que es el ingreso del condumidor. Llama la atenci´on que en el caso CNS las ecuaciones no tienen asociados variables de holgura o multiplicadores duales, en contraste con los formatos LP/NLP que si reportan bajo la columna ((MARGINAL)) valores distintos de cero cuando las restricciones est´an activas. En la soluci´on, los valores de las variables de elecci´on son, por supuesto, id´enticas a los de los formatos estudiados previamente mientras que la variable ((lambda)) recibe el valor que corresponde al marginal de la ecuacion((m eq))en la varsi´on NLP de este mismo modelo (cfr.Figura 11).
3.3.
Resolviendo dentro de un Ciclo
Suponga que se quieren obtener los niveles demanda por una (o varias) de las mercanc´ıas disponibles para distintos sistemas de precios. Una forma de obtener una lista completa de precios y las cantidades demandadas asociadas consiste en resolver en forma iterativa el modelo dentro de un ciclo definido por el analista. La funci´on((loop))ejecuta un conjunto de intrucciones definidas por el usuario para una serie de valores en un conjunto dado. Considere, por ejemplo, veinte iteraciones en cada una de las cuales el precio de la mercanc´ıa de inter´es se incrementa en un 5 %, el modelo es resuelto y los resultados se almacenan.
El procedimiento comienza definiendo el conjunto de iteraciones con el co-mando((set)) y declarando un nuevo par´ametro con el nombre((report)), que servir´a para almacenar los resultados del modelo en cada iteraci´on. Al interior del ciclo, que comienza con el verbo((loop)), se incluir´an instrucciones necesarias para los prop´ositos definidos.
parameter
report Un Reporte de Resultados;
loop(it,
p("1") = p("1")*1.05; solve utilidad using cns; report(it,"p1") = p("1"); report(it,"X1") = x.l("1"); );
display report;
Figura 17.— Soluci´on dentro de un Ciclo
La primera instrucci´on dentro del ciclo actualiza el precio de la mercanc´ıa 1 en 5 % en tanto que la segunda instrucci´on resuelve el modelo con la nueva in-formaci´on. Las dos instrucciones siguientes registran la informaci´on resultante en el par´ametro ((reporte)) definido previamente; observe que a´un cuando la declaraci´on del reporte no involucr´o la definici´on de sus dimensiones, en las in-strucci´ones dentro del loop se ha definido que el reporte contendr´a tres columnas: una primera que registrar´a el n´umero de la iteraci´on, que es un valor del conjun-toit, una segunda segunda registrar´a el precio en esa iteraci´on, y la tercera el nivel de la demanda por mercanc´ıa, dadoeseprecio, enesaiteraci´on. Finalizado el ciclo, ´el comando((display report))despliega la informaci´on almacenada en el par´ametro:
---- 97 PARAMETER report
p1 X1
Figura 18.— Resultados de Simulaci´on: Funci´on de Demanda
Toda informaci´on generada por un modelo en GAMS es susceptible de ser manipulada de distintas maneras. Existe la posibilidad de exportar los resultados a diversos formatos de datos al tiempo que tambi´en resulta bastante f´acil llamar rutinas y librerias de instrucciones para, por ejemplo, producir una gr´afica de la demanda por la mercanc´ıa 1 para el rango de precios especificado. El sitio web de GAMS contiene una secci´on decontribuciones y mejoras por terceros que pueden resultarle de gran ayuda6. Por lo pronto, la informaci´on arrojada por el par´ametro((report)) ha sido copiada y pegada en MS-Excel para crear una im´agen de la funci´on de demanda marshalliana que se deriva del ejercicio de sensibilidad que se acaba de realizar.
Figura 19.— La Funci´on de Demanda Ordinaria construida con los datos
simulados en el an´alisis de sensibilidad del modelo del consumidor.
4.
Muchos Agentes, Muchos Mercados
La b´usqueda de soluciones de complejos sistemas de ecuaciones que pre-tenden representar econom´ıas en las que interact´uan muchos agentes en muchos mercados, es una de las principales ocupaciones en econom´ıa computacional. En esta secci´on hacemos uso de versiones parametrizadas del modelo de equilibrio general competitivo comenzando por un esquema sencillo de una econom´ıa de
6http://interfaces.gams-software.com/doku.php?id=user:user_contributed_
intercambio7: econom´ıas en las que no existen posibilidades de producci´on. A diferencia del problema de elecci´on individual de la secci´on anterior en el que el consumidor, dados los precios, escoge el plan de consumo que maximiza su util-idad, el problema aqu´ı consiste en averiguar cu´ales son los precios a los que un conjunto de consumidores maximizadores de utilidad, est´an dispuestos a inter-venir en un intercambio mutuamente beneficioso. En forma alternativa, gracias
alPrimer Teorema del Bienestar el problema de asignaci´on subyacente puede
tratarse como el de un Planeador Cemtral que elige una cierta distribuci´on de los recursos disponibles en la econom´ıa, buscando maximizar el bienestar de la sociedad. Como se ver´a, las dos formas de tratar el mismo problema involu-cran dos formulaciones distintas pues, mientras en la primera, las variables de inter´es son de naturaleza end´ogena, en la segunda, estas mismas variables son los multiplicadores duales de las restricciones de recursos que enmarcan la de-cisi´on del Planeador Central. Las econom´ıas de intercambio son modelos que se concentran en el consumo, dejando la producci´on, que se considera ex´ogena, de lado. Sin embargo, la endogeneizaci´on de la producci´on es mas bien sencilla y no involucra complicaci´on adicional, como se ver´a en la segunda parte de esta secci´on, que se concentra en unaeconom´ıa con producci´on.
4.1.
Econom´ıas de Intercambio
En el contexto del Equilibrio General Competitivo considere una econom´ıa de intercambio con tres consumidores,i={1,2,3}que interact´uan en dos mer-cados, k = {A, B}. Las preferencias de los consumidores est´an representadas por funciones del tipo CES,
ui(xi1, xi2) = (δixρii1+ (1−δi)x
ρi i2)
1/ρi (16)
Las dotaciones de los consumidores vienen registradas en la matriz:
ωik=
1 3 3 2 2 3
mientras que los par´ametros de distribuci´on son:
δik=
0,3 0,7 0,5 0,5 0,6 0,4
Finalmente, los par´ametros de sustituci´on est´an dados por
ρi= 1,3 1,2 1,9
siendoρi=σiσ−i1 yσi es una medida de la elasticidad de sustituci´on entre pares
de bienes para el consumidori. Se plantean dos aproximaciones de soluci´on. La primera consiste en la soluci´on del sistema de ecuaciones de exceso de demanda:
aqu´ı las variables son los precios de las mercanc´ıas que vac´ıan todos los mercados. En la segunda se aprovecha el Primer Teorema del Bienestar para resolver el Problema del Planeador Central como la b´usqueda de una asigmacion Pareto ´
optima.
4.1.1. El Sistema de Exceso de Demanda
Bajo la aproximaci´on basada en el sistema de ecuaciones de exceso de de-manda el problema consiste en encontrar un vector p0 = (p1, p2, p3) de R`+ tal que z(p) = 0, p0z(p) = 0. Para la k-´esima mercanc´ıa, la ecuaci´on t´ıpica de exceso de demanda es:
zk(p) =X
i
xik(p)−X
i
ωik= 0 (17)
El sistema de ecuaciones resultantes estar´a compuesto por`de estas ecuaciones de demanda neta agregada en las`variables del sistema de precios correspondi-ente lo cual constituye, precisamcorrespondi-ente, un problema de la clase CNS. La demanda (´optima) por la k-´esima mercanc´ıa deli-´esimo consumidor es, en el caso CES en dos variables:
x∗ik= (δik/pk)σi Mi
P
kδ σi ik ·p
1−σi k
(18)
y el ingreso del consumidor viene dado por:
Mi=X
k
pk·ωik (19)
La implementaci´on GAMS describe el sistema de exceso de demanda in-cluyendo ecuaciones de definici´on para las demandas de los consumidores y para el ingreso de cada uno de ellos, que es el valor (precios por cantidades) de las dotaciones en la matrizωik. Una forma de parametrizar el modelo en GAMS es
la que aparece en la siguiente pieza de c´odigo en la cual se comienza por definir las dimensiones del modelo en t´erminos de los conjuntos de consumidores y mercanc´ıas:
*--- Dimensiones del Modelo
sets k Mercanc´ıas / 1, 2 / i Consumidores / A, B, C /;
alias(k,l);
*--- Datos de la Econom´ıa
table endow(i,k) Matriz de Dotaciones Iniciales
A 1 3
B 3 2
C 2 3;
table delta(i,k) Par´ametros de Distribuci´on -- Consumidores 1 2
A 0.3 0.7 B 0.5 0.5 C 0.6 0.4;
parameter sigma(i) Elasticidad de sustituci´on para el consumidor i / A 1.3
B 1.2 C 1.9 /;
*--- Computa alguntos par´ametros parameter
omega(k) Oferta total de la mercanc´ıa k en la econom´ıa u0(i) Utilidad Inicial del consumidor i;
omega(k) = sum(i, endow(i,k));
u0(i) = (sum(k, delta(i,k)*endow(i,k)**(1/rho(i)))/(1/rho(i)));
Dentro de la misma parametrizaci´on se computan algunos valores ´utiles al planteamiento del problema y a la valoraci´onex-postde soluciones alternativas. En efecto, el vector ((omegak)) calcula la oferta total de mercanc´ıa k-´esima en la econom´ıa, mientras que el vector((u0(i))) computa el bienestar del i-´esimo consumidor en la distribuci´on inicial, niveles que pueden ser posteriormente utilizados como base de comparaci´on respecto de las asignaciones de equilibrio competitivo.
El modelo se estructura sobre tres bloques de variables: el sistema de exceso de demanda (k ecuaciones), las definiciones funcionales de las demandas del consumidori-´esimo por laskdistintas mercanc´ıas (i×k) ecuaciones, y el vector de ingresos de losi consumidores (i ecuaciones), esto es, un total de k+ (i×
k) +i= 3 + (2×3) + 2 = 11 ecuaciones, sobre igual n´umero de variables: los precios de las k mercanc´ıas, las (i×k demandas de los consumidores, y los i
niveles de ingresos. Con esto, un equilibrio para esta econom´ıa es una tupla:
ˆ
= [(p1, p2, p3),(x11, x12, x21, x22, x31, x33),(M1, M2)]
que satisface los requerimientos te´oricos: los precios vac´ıan todos los mercados y las asignaciones maximizan la utilidad de todos los consumidores dadas las exis-tencias totales de mercacn´ıas en la econom´ıa. El c´odigo GAMS para representar el modelo descrito, dada la parametrizaci´on adoptada es:
variables
p(k) Precio de la Mercanc´ıa k-´esima
M(i) Ingreso del consumidor i equations
z_eq(k) Funci´on de Exceso de Demanda de la mercanc´ıa k x_eq(i,k) Definici´on de las Demandas de los Consumidores
m_eq(i) Definici´on del Ingreso del consumidor i;
z_eq(k).. sum(i, x(i,k)) =E= omega(k);
x_eq(i,k).. x(i,k) =E= (delta(i,k)/p(k))**sigma(i)*M(i)/ sum(l, delta(i,l)**sigma(i)*p(l) **(1-sigma(i)));
m_eq(i).. M(i) =E= sum(k, p(k)*endow(i,k));
Las soluciones se obtienen, una vez convenientemente inicializadas las variables relevantes con una orden sencilla:
solve AD using CNS;
en donde((AD))es el nombre del modelo que se ha declarado de acuerdo con las reglas ya definidas:
model AD /z_eq, x_eq, m_eq/;
Tras de lo cual, los usuales reportes de estad´ısticas del modelo, resumen de la soluci´on y de valores para ecuaciones y variables se registran en el archivo de salida. Por ejemplo, el reporte de estad´ısticas del modelo, da cuenta de las dimensiones del mismo, refrendando la contabilidad adelantada previamente sobre n´umero de ecuaciones y de variables:
MODEL STATISTICS
BLOCKS OF EQUATIONS 3 SINGLE EQUATIONS 11 BLOCKS OF VARIABLES 3 SINGLE VARIABLES 11 NON ZERO ELEMENTS 39 NON LINEAR N-Z 18 DERIVATIVE POOL 10 CONSTANT POOL 31 CODE LENGTH 241
FIXED EQUATIONS 11 FREE VARIABLES 11
---- EQU z_eq Funci´on de Exceso de Demanda de la mercanc´ıa k
LOWER LEVEL UPPER
1 6.0000 6.0000 6.0000 2 8.0000 8.0000 8.0000
---- EQU x_eq Definici´on de las Demandas de los Consumidores
LOWER LEVEL UPPER
A.1 . 1.7321730E-8 .
A.2 . . .
B.1 . . .
B.2 . . .
C.1 . . .
C.2 . . .
---- EQU m_eq Definici´on del Ingreso del consumidor i
LOWER LEVEL UPPER
A . . .
B . . .
C . . .
---- VAR p Precio de la Mercanc´ıa k-´esima
LOWER LEVEL UPPER
1 -INF 1.0335 +INF
2 -INF 1.0206 +INF
---- VAR m Ingreso del consumidor i
LOWER LEVEL UPPER
A -INF 4.0952 +INF
B -INF 5.1417 +INF
C -INF 5.1287 +INF
---- VAR x Demanda por mercanc´ıa k del consumidor i-´esimo
LOWER LEVEL UPPER
A.1 0.0001 0.4870 +INF A.2 0.0001 3.5195 +INF B.1 0.0001 2.4890 +INF B.2 0.0001 2.5175 +INF C.1 0.0001 3.0240 +INF C.2 0.0001 1.9630 +INF
Es necesario advertir que el sistema de exceso de demanda walrasiano adolece de un problema num´erico que obliga a resolver el sistema para`−1 ecuaciones sobre`−1 elementos del sistema p de precios por lo cual, en general, es necesario reducir las dimensiones del modelo mediante la eliminaci´on de una cualquiera de las ecuaci´on y la definici´on ex´ogena del precio del bien numerario8. Con esta ad-vertencia es de anotar que las actuales algoritmos de programaci´on matem´atica num´erica tratan cada vez con mayor exito casos en los cuales los jacobianos de los sistemas a tratar son aproximadamente singulares, como resulta con el modelo Arrow-Debreu por lo que el ejercicio adelantado pudo ser resuelto sin la reducci´on dimensional se˜nalada, si bien es de esperar que en sistemas m´as complejos requieran una manifestaci´on expl´ıcita de la Ley de Walras. Un una secci´on posterior se tratar´a este problema y se mostrar´a c´omo resolverlo con suceso.
4.1.2. El Planeador Central
De acuerdo con el teorema del bienestar, todo equilibrio competitivo es asig-naci´on Pareto Eficiente; como consecuencia, deber´a ser posible encontrar una asignaci´on de equilibrio competitivo como aquella que, a cargo de un planeador central, —un tirano benevolente—,busca el mayor bien para el mayor n´umero. Un programa matem´atico que expresa este problema de elecci´on es el propuesto por Negishi (1960), en los siguientes t´erminos (ver Ginsburgh & Keyzer, 1987: 35):
maxxiW(xi;θi) =
X
i
θiui(xi) xi≥0,∀i (20)
sujeta a:
X
i xik≤
X
i
ωik ⊥p (21)
La funci´onW es una agregaci´on´a l´a Bergson de las funciones de utilidad in-dividuales de losi= 1, . . . , mconsumidores con ponderadores fijosθi tales que
P
iθi= 1. Dada una distribuci´on inicial de recursos ωik un m´aximo para W
implica m´aximos individuales siempre que los ponderadoresθi resulten propor-cionales al ingreso de cada consumidor en el m´aximo nivel deW. El problema es un NLP cuya implementaci´on en GAMS replica la formulaci´on (16) y (17) sin modificar apenas la parametrizaci´on del modelo CNS:
variables
W Indicador de Bienestar economico agregado u(i) Utilidad del Consumidor i
x(i,k) Demanda por mercanc´ıa k del consumidor i-´esimo theta(i) Ponderadores (weights) de Negishi;
equations
w_eq Funci´on de Bienestar Eon´omico Agregado u_eq(i) Definici´on de la Utilidad del Consumidor i x_eq(k) Restricciones de Recursos
theta_eq Normalizaci´on de los Ponderadores de Negishi;
w_eq.. W =e= sum(i, theta(i)*log(u(i)));
u_eq(i).. u(i) =E= (sum(k, delta(i,k)*x(i,k)**rho(i)))**(1/rho(i));
x_eq(k).. sum(i, x(i,k)) =E= omega(k);
theta_eq.. sum(i, theta(i)) =E= 1;
La utilidad de los consumidores se especifica expl´ıcitamente en un bloque de ecuaciones aparte de la funci´on de bienestar agregado a efectos de facilitar la edici´on del programa; adem´as se introduce una restricci´on adicional que refleja la necesidad de que los ponderadores de la utilidad de cada consumidor en la funci´on de bienestar sumen 1. Por lo demas, las restricciones de recursos para las mercanc´ıas en cuesti´on, resultan id´enticas a las reunidas en la ecuaci´on de balance (17). Como es usual, se precisa inicializar las variables del modelo, teniendo en cuenta que los ponderadores de Negishi son fijos.
model Negishi / w_eq, u_eq, x_eq, theta_eq /;
theta.fx(i) = 1/3; u.lo(i) = u0(i); x.l(i,k) = endow(i,k);
solve Negishi using nlp maximizing W;
CNS NLP Diff
A.1 0,4870 0,6226 -0,1356 A.2 0,3520 0,3875 -0,0356 B.1 0,2489 0,2502 -0,0013 B.2 0,2518 0,2387 0,0130 C.1 0,3024 0,2875 0,0149 C.2 0,1963 0,1738 0,0225
Bajo esta asignaci´on los precios no pueden ser los de equilibrio competitivo y se puede esperar que los niveles de gasto nominal no coincidan con el val-or del ingreso. Para comprobar que bajo la soluci´on actual hay un desbalance de recursos para el i-´esimo consumidor se han computado los valores del in-greso y del gasto de cada uno de los consumidores tomando como precios los multiplicadores de Lagrange de las restricciones de recursos:
*--- Evaluaci´on del Ajuste del Gasto w.r.t. el ingreso parameters
p(k) Precio de la k-´esima mercanc´ıa m(i) Ingreso del Consumidor i e(i) Gasto del Consumidor i
dev(i) Diferencia entre el Gasto y el Ingreso del consumidor i maxdev;
p(k) = x_eq.m(k);
m(i) = sum(k, p(k)*endow(i,k)); e(i) = sum(k, p(k)*x.l(i,k)); dev(i) = e(i) - m(i);
display e, m, i;
El par´ametro((p(k)))guarda los precios de las mercanc´ıas que, seg´un se ha ya se˜nalado—, son los valores marginales (multiplicadores duales) de las ecuaciones de balance de recursos en tanto que el ingresom(i)es el valor de las dotaciones al sistema de preciosp(k)y el gasto es el valor de las demandas de los consumidores bajo dicho regimen de precios. El par´ametrodev(i)mide la discrepancia entre el ingreso y el gasto. La orden((display e, m, i;))despliega los resultados de estos c´alculos:
---- 98 PARAMETER e Gasto del Consumidor i
A 0.333, B 0.355, C 0.333
A 0.295, B 0.362, C 0.366
---- 98 PARAMETER dev Diferencia entre el Gasto y el Ingreso del consumidor i
A 0.039, B -0.006, C -0.032
La soluci´on del modelo propuesto es un vector de asignaciones de recursos sub´optimas desde la ´optica del equilibrio competitivo pues, a´un cuando esta asignaci´on maximiz la funci´on objetivo y la asignaci´on resultante es viable, los consumidores no observan sus restricciones de presupuesto individuales: en efecto, el consumidor 1 presenta un gasto mayor que su ingreso mientras que los consumidores 2 y 3 no agotan todo sus recursos. Una alternativa para avanzar hacia la soluci´on real del problema es la llamadaSequential Join Maximization
(SJM)9 que resuelve una secuencia de programas no lineales dadas revisiones de los ponderadores de Negishi. La idea es la siguiente: compute inicialmente el modelo con un valor tentativo para los ponderadores de Negishi; obtenga de las soluciones los precios relativos, —que son los multiplicadoresde Lagrange asociados a las restricciones de recursos— y compute con ellos el valor del ingreso (el valor de las dotaciones iniciales dado el sistema de precios de a soluci´on) de cada consumidor. Actualice los ponderadores de Negishi como las proporciones del ingreso total en la econom´ıa que representan los valores individuales del ingreso. Compute secuencialmente soluciones del modelo de tal forma que la diferencias entre el gasto y el ingreso de cada individuo se desvanezcan. La pieza de c´odigo a continuaci´on implementa esta propuesta.
*---*--- Sequential Join Maximization (SJM): Resuelve dentro de un loop el modelo *--- aproximando los valores de los ponderadores de Negishi hasta que la di-*--- -ferencia entre el ingreso y el gasto de los consumidores se desvance.
*---set it Iteraciones de Negishi / iter1 * iter1000 /;
parameter
report Reporte de Avance en las Iteraciones de Negishi alloc Reporte sobre asignaciones;
*--- Resuelve el modelo dentro de un loop con los nuevos pesos *--- calculados en la iteraci´on anterior;
theta.fx(i) = 1/3;
loop(it \$(abs(smax(i, dev(i))) gt 1e-5), solve Negishi using nlp maximizing W;
p(k) = x_eq.m(k);
m(i) = sum(k, p(k)*endow(i,k)); e(i) = sum(k, p(k)*x.l(i,k)); dev(i) = e(i) - m(i);
theta.fx(i) = m(i)/sum(k, p(k)*omega(k));
report(it,i,"theta") = theta.l(i); report(it,i,"u") = u.l(i);
report(it,i,"e") = e(i); report(it,i,"m") = m(i);
report(it,i,"|e-m|") = abs(dev(i)); );
El conjunto ((it)) contiene una serie de mil elementos, cada uno de los cuales representa una iteraci´on dentro del ciclo (loop) que a continuaci´on se define. En ausencia de condicionamiento se computan mil soluciones para el modelo; no obstante, parece razonable detener las computaciones cuando se satisfaga el cri-terio de b´usqueda que se basa en una medici´on de las diferencias entre ingresos y gastos para todosy cada uno de los consumidores. La instrucci´on condicional
((loop(it $(abs(smax(i, dev(i))) gt 1e-5))) introduce esta condici´on me-diante la verificaci´on del valor absoluto de los elementos que se registran en el vector ((dev(i))); el ciclo se detiene cuando el valor de los elementos en el vactor de diferencias resulta menor que 1×10−5. Mientras la diferencia entre ingresos y gastos sea mayor que ese valor, el ciclo computar´a una nueva soluci´on de la cual se derivan los precios de las mercanc´ıas del multiplicador dual de la restricci´on de recursos (17) y a partir de los cuales se calculan ingresos ((m(i)))
y gastos((e(i)))y se valora su diferencia, registrandola en((dev(i))). Un nuevo valor de θi se genera como la proporci´on del ingreso total que le corresponde al consumidori. En cada iteraci´on los valores obtenidos son almacenados en la matriz ((report)) cuyos resultados se despliegan una vez terminado el trabajo computacional. Los resultados de nuestro modelo son los siguientes:
---- 132 PARAMETER report Reporte de Progreso en Iteraciones de Negishi
theta u e m |e-m|
iter4.C 0.357 2.549 0.357 0.357 2.537138E-6 iter5.A 0.285 2.362 0.285 0.285 7.927984E-7 iter5.B 0.358 2.503 0.358 0.358 9.567755E-7 iter5.C 0.357 2.549 0.357 0.357 1.639771E-7
La primera columna del reportes combina informaci´on sobre la iteraci´on cursada y el indicador de cada consumidor mientras que la segunda columna presenta los valores deθi de cada agente. Las tres columnas siguientes contienen el indicador de bienestar, el valor gasto y el valor del ingreso individual. La columna al final muestra la diferencia absoluta entre ingreso y gasto de cada consumidor. el proceso de b´usqueda toma en total cinco iteraciones luego de las cuales, se puede estar seguro de que la soluci´on del problema, bajo el formato del Planeador Central es id´entica a la obtenida a trav´es de la evaluaci´on del sistema de ecuaciones de exceso de demanda, seg´un se puede comprobar a continuaci´on:
---- VAR x Demanda por mercanc´ıa k del consumidor i-´esimo
LOWER LEVEL UPPER MARGINAL
A.1 -INF 0.4870 +INF -2.209840E-9
A.2 -INF 3.5195 +INF .
B.1 -INF 2.4890 +INF -5.632539E-9
B.2 -INF 2.5175 +INF .
C.1 -INF 3.0240 +INF .
C.2 -INF 1.9630 +INF .
4.2.
Econom´ıas con Producci´
on
En una econom´ıa con producci´on, la funci´on de exceso de demanda es una funci´on vectorialz:R`+→R
` definida por:
z(p) =X
i
di(p)−X
i
ωi−X
j
sj(p) (22)
El k-esimo componente de este sistema `×` de ecuaciones de exceso de demanda es de la forma:
zk(p) =
X
i
dik(p)−
X
i ωik−
X
j
sjk(p) (23)
El mercado de lak-´esima mercanc´ıa estar´a en equilibrio si, dado un sistema de precios p∈ R` con p = (p1, p2,· · · , pk,· · ·, p`), se observa que zk(p)≤0 y
p·zk(p) = 0.
dik(p)≡x∗ik=argmax{u(x)|px≤pωi+Pn
Finalmente, p∈R`ser´a un vector de precios de equilibrio si bajo este sistema
z(p)≤0 y pz(p) = 0
Dondedi(p) es la demanda deli-´esimo consumidor por lak-´esima mercanc´ıa,
ωikson las dotaciones de esa mercacn´ıa del consumidor en cuesti´on, ysjk(p) es la oferta de
Adem´as de losi= 1,· · ·, mconsumidores, en unaeconom´ıa con producci´on, intervienenj= 1,· · ·, nproductores, cada uno de ellos dotado de una tecnolog´ıa representada por un subconjuntoYj deR`. De este conjunto, el productor elige
un plan de producci´on viable, yj para maximizar su beneficio neto, dado el
r´egimen de precios vigente. Las caracter´ısticas del conjunto Yj para el caso
de una econom´ıa de Mano Invisible han sido descritas en detalle en Arrow y Debreu (1954), Debreu (1959) y Arrow y Hahn (1971) entre muchos otros. Cada elementoyj ∈Yjes un vector neto de insumo-producto con entradas positivas en el caso de los productos y negativas en el caso de los insumos. El objetivo delj -´esimo empresario es maximizar su beneficio neto,pyj observando la restricci´ons de viabilidadyj ∈Yj, i.e., el problema del productor j-´esimo es:
maxyj∈Yjπj =pyj (24)
sujeto a:
yj ∈Yj (25)
El equilibrio del k-´esimo mercado en la econom´ıa, como en el caso de las econom´ıas de intercambio, sigue enfrentando ofertas y demandas. No obstante, la cosideraci´on expl´ıcita de las firmas implica la incorporaci´on de la posici´on de cada uno de estos tipos de agentes, respecto de una mercan´ıa determinada. Considere por ejemplo el mercado de factores
Haremos uso del modelo computable que Dinwiddy and Teal (1988:26) pre-sentan un modelo computable de equilibrio general con un consumidor que de-tenta la propiedad de dos factores productivos, –capital y trabajo–, utilizados por dos firmas encargadas de producir, cada una de ellas, una mercanc´ıa ´unica con la que el consumidor maximiza su utilidad. Las funciones de producci´on de las firmas son:
x1=k 1/4 1 l
1/2
1 (26)
en el caso de la firma 1, en tanto que, en el caso de la firma 2, esta funci´on es:
x2=k 1/2 2 l
1/4
2 (27)
Note que la producci´on en los dos casos se efect´ua bajo rendimientos decrecientes a escala; es f´acil demostrar que si a y b son los exponentes del capital y del trabajo en la funci´on de producci´on de cada una de las firmas, entonces las demandas condicionadas de factores son:
kj(pk, pl;xj) =
aj bj
pl pk
a+bb