Está en la página 1de 25

Un entorno de programación orientado al mercado y

su aplicación a problemas distribuidos de flujos


multicommodity

Michael P. Wellman wellman@engin.umich.edu Universidad de Michigan: Departamento de


Ingeniería Eléctrica e Informática:

Ann Arbor: MI 48109 EE.UU.

Resumen

Los sistemas de precios de mercado constituyen una clase bien entendida de mecanismos que,
bajo ciertas condiciones, proporcionan una descentralización efectiva de la toma de decisiones
con una sobrecarga mínima de comunicación. En un enfoque de programación orientado al
mercado para la resolución de problemas distribuidos, derivamos las actividades y asignaciones de
recursos para un conjunto de agentes computacionales calculando el equilibrio competitivo de
una economía artificial. Walras proporciona construcciones básicas para definir estructuras de
mercado computacionales y protocolos para derivar sus correspondientes equilibrios de precios.
En una realización particular de este enfoque para una forma de problema de flujo multicomodity,
vemos que la construcción cuidadosa del proceso de decisión de acuerdo con los principios
económicos puede conducir a la asignación de recursos distribuidos eficiente, y que el
comportamiento del sistema puede ser analizado de manera significativa en términos económicos.

Planificación distribuida y economía

En un sistema de planificación distribuida o multiagente, el plan del sistema en su conjunto es una


combinación de planes elaborados por los agentes que lo componen. Estos planes pueden
interactuar significativamente tanto en los recursos requeridos por cada una de las actividades de
los agentes (precondiciones) como en los productos resultantes de estas actividades
(postcondiciones). A pesar de estas interacciones, a menudo resulta ventajoso o necesario
distribuir el proceso de planificación porque los agentes están separados geográficamente,
disponen de información diferente, poseen capacidades o autoridad distintas o han sido diseñados
e implementados por separado. En cualquier caso, dado que cada agente tiene una competencia y
un conocimiento limitados de las decisiones producidas por los demás, se requiere algún tipo de
coordinación para maximizar el rendimiento del sistema global. Sin embargo, la asignación de
recursos a través de un control central o de una amplia comunicación se considera inviable, ya que
viola las restricciones que dictaron la distribución de la tarea de planificación en primer lugar.
La tarea a la que se enfrenta el diseñador de un sistema de planificación distribuida es definir un
mecanismo de coordinación computacionalmente eficiente y su realización para una colección de
agentes. La configuración de los agentes puede venir dada o ser un parámetro de diseño. Con el
término agente me refiero a un módulo que actúa dentro del mecanismo según sus propios
conocimientos e intereses. Las capacidades de los agentes y su organización en una estructura
general de toma de decisiones determinan el comportamiento del sistema en su conjunto. Dado
que se trata del comportamiento colectivo de personas que toman decisiones en interés propio, el
diseño de esta estructura descentralizada es fundamentalmente un ejercicio de economía o
ingeniería de incentivos. El problema de desarrollar arquitecturas para la planificación distribuida
encaja en el marco del diseño de mecanismos (Hur- wicz, 1977; Reiter, 1986), y muchas ideas y
resultados de la economía son directamente aplicables. En particular, la clase de mecanismos
basados en sistemas de precios y competencia ha sido profundamente investigada por los
economistas, que han caracterizado las condiciones de su eficiencia

Oc 1993 AI Access Foundation y Morgan Kaufmann Publishers. Todos los derechos reservados.

y su compatibilidad con otras características de la economía. Cuando es aplicable, el mecanismo


competitivo logra la coordinación con unos requisitos de comunicación mínimos (en un sentido
preciso relacionado con la dimensionalidad de los mensajes transmitidos entre los agentes (Reiter,
1986)).

La teoría del equilibrio general (Hildenbrand y Kirman, 1976) proporciona los fundamentos para un
enfoque general de la construcción de sistemas de planificación distribuida basados en
mecanismos de precios. En este enfoque, consideramos a los agentes planificadores
constituyentes como consumidores y productores en una economía artificial, y definimos sus
actividades individuales en términos de producción y consumo de productos básicos. Las
interacciones entre los agentes se plantean como intercambios, cuyos términos están mediados
por el mecanismo económico subyacente, o protocolo. Especificando el universo de mercancías, la
configuración de los agentes y el protocolo de interacción, podemos lograr una variedad de
comportamientos descentralizados interesantes y a menudo eficaces. Además, podemos aplicar la
teoría económica al análisis de arquitecturas alternativas y explotar así una gran cantidad de
conocimientos existentes en el diseño de planificadores distribuidos.

Utilizo la expresión programación orientada al mercado para referirme al planteamiento general


de encontrar soluciones a los problemas de asignación de recursos distribuidos calculando el
equilibrio competitivo de una economía artificial.1 A continuación describo este planteamiento
general y un entorno de programación primitivo que permite la especificación de mercados
computacionales y la derivación de precios de equilibrio. Un ejemplo de problema de planificación
de transporte distribuido demuestra la viabilidad de descentralizar un problema con interacciones
no triviales y la aplicabilidad de los principios económicos a la resolución de problemas
distribuidos.
2. WALRAS: Un entorno de programación orientado al mercado

Para explorar el uso de mecanismos de mercado para la coordinación de módulos de planificación


distribuida, he desarrollado un entorno prototipo para especificar y simular mercados
computacionales. El sistema se llama Walras, en honor al economista francés del siglo XIX L'eon
Wal- ras, que fue el primero en imaginar un sistema de mercados interconectados en equilibrio de
precios. Walras proporciona mecanismos básicos que implementan varios tipos de agentes,
subastas y protocolos de puja. Para especificar una economía computacional, se define un
conjunto de bienes y se instancian una serie de agentes que producen o consumen dichos bienes.
Dependiendo del contexto, algunos de los bienes o agentes pueden fijarse exógenamente, por
ejemplo, podrían corresponder a bienes o agentes del mundo real que participan en el proceso de
planificación. Otros pueden ser completamente artificiales, inventados por el diseñador para
descentralizar el proceso de resolución de problemas de una manera determinada. Dada una
configuración de mercado, walras ejecuta entonces estos agentes para determinar una asignación
de equilibrio de bienes y actividades. Esta distribución de bienes y actividades constituye la
solución de mercado al problema de planificación.

1. El nombre se inspira en el uso que hace Shoham de la programación orientada a agentes para
referirse a una especialización de la programación orientada a objetos en la que las entidades se
describen en términos de conceptos de agente e interactúan mediante actos de habla (Shoham,
1993). La programación orientada al mercado es una especialización análoga, en la que las
entidades son agentes económicos que interactúan según los conceptos de mercado de
producción e intercambio. La frase también ha sido invocada por Lavoie, Baetjer y Tulloh (1991)
para referirse a los mercados reales de componentes de software.

2.1 Equilibrio general

El marco de Walras se inspira directamente en la teoría del equilibrio general. A continuación se


expone brevemente, sin entrar en muchos detalles; para más detalles, véase cualquier texto sobre
teoría microeconómica (por ejemplo, (Varian, 1984)).

Empezamos con k bienes y n agentes. Los agentes se dividen en dos clases generales. Los
consumidores pueden comprar, vender y consumir bienes, y sus preferencias por el consumo de
diversas combinaciones o paquetes de bienes vienen especificadas por su función de utilidad. Si el
agente i es un consumidor, su función de utilidad

función de utilidad, ui : Rk

--- R, clasifica los distintos paquetes de bienes en función de sus preferencias.

Los consumidores también pueden partir de una asignación inicial de bienes, denominada
dotación. Sea ei,j la dotación del agente i del bien j, y xi,j la cantidad de bien j que finalmente
consume. El objetivo del consumidor i es elegir un conjunto factible de bienes, (xi,1,... , xi,k) (en
notación vectorial, xi), para maximizar su utilidad. Un paquete es factible para el consumidor i si su
coste total a los precios vigentes no supera el valor de su dotación a dichos precios. La elección del
consumidor puede expresarse como el siguiente problema de optimización con restricciones:

max ui(xi) s.t. p . xi ::: p . ei, 1


xi

donde p = (p1,... , pk) es el vector de precios de los k bienes.

Los agentes del segundo tipo, los productores, pueden transformar unos tipos de bienes en otros,
según su tecnología. La tecnología especifica las combinaciones factibles de insumos y productos
para el productor. Consideremos el caso especial en el que hay un bien de salida, indexado j, y el
resto de bienes son insumos potenciales. En ese caso, la tecnología del productor i puede
describirse mediante una función de producción,

yi = -xi,j = f i ( x i, 1 ,... , xi,j-1, x i ,j +1 ,... , xi,k),

especificando la producción máxima producible a partir de los insumos dados. (Cuando un bien es
un insumo en su propia producción, la función de producción caracteriza la producción neta). En
este caso, el objetivo del productor es elegir un plan de producción que maximice los beneficios en
función de su tecnología y del precio de sus productos e insumos. Esto implica elegir un nivel de
producción, yi, junto con los niveles de insumos que pueden producir yi al mínimo coste. Sean xi,J-
y pJ- el consumo y los precios, respectivamente, de los bienes de entrada. Entonces, el problema
de optimización restringida correspondiente es maximizar los beneficios, la diferencia entre
ingresos y costes:

- -
max pjyi - min pJ- . xi,J- s.t. yi ::: fi(xi,J-)
o equivalentemente,

min p . xi s.t. - xi,j ::: fi(xi,J-). (2)


xi

Un agente actúa competitivamente cuando toma los precios como dados, despreciando cualquier
impacto de su propio comportamiento sobre los precios. La formulación anterior asume
implícitamente la competencia perfecta, en el sentido de que los precios son parámetros de los
problemas de optimización restringidos de los agentes. La competencia perfecta refleja de forma
realista la racionalidad individual cuando existen numerosos agentes, cada uno de ellos pequeño
con respecto al conjunto de la economía. Sin embargo, incluso cuando no es el caso, podemos

comportamiento competitivo en los agentes individuales si así lo deseamos. Las implicaciones de


la restricción a la competencia perfecta se discuten más adelante.

Un par (p, x) de un vector de precios y un vector de demandas para cada agente constituye un
equilibrio competitivo para la economía si y sólo si:

1. Para cada agente i, xi es una solución a su problema de optimización restringido -(1) o (2)- a
precios p, y

2. la cantidad neta de cada bien producido y consumido es igual a la dotación total,

Xx = Xe , for j = 1 ,. .. , k.
n n

i,j i,j (3)

En otras palabras, la cantidad total consumida es igual a la cantidad total producida (contabilizada
como cantidades negativas en los paquetes de consumo de los productores), más la cantidad total
con la que partía la economía (las dotaciones).
Bajo ciertos supuestos "clásicos" (esencialmente continuidad, monotonicidad y concavidad de las
funciones de utilidad y producción; véase, por ejemplo, (Hildenbrand & Kirman, 1976; Varian,
1984)), existen equilibrios competitivos, y son únicos dado el rigor de estas condiciones. Desde la
perspectiva del diseño de mecanismos, los equilibrios competitivos poseen varias propiedades
deseables, en particular, los dos teoremas fundamentales de bienestar de la teoría del equilibrio
general: (1) todos los equilibrios competitivos son óptimos de Pareto (ningún agente puede
hacerlo mejor sin que otro lo haga peor), y (2) cualquier óptimo de Pareto factible es un equilibrio
competitivo para cierta asignación inicial de las dotaciones. Estas propiedades parecen ofrecer
exactamente lo que necesitamos: un límite en la calidad de la solución, además de la perspectiva
de que podemos lograr el comportamiento más deseado mediante una cuidadosa ingeniería de la
configuración del mercado computacional. Además, en equilibrio, los precios reflejan exactamente
la información necesaria para que los agentes distribuidos evalúen de forma óptima las
perturbaciones en su comportamiento sin recurrir a la comunicación o a la reconsideración de
todo su conjunto de posibilidades (Koopmans, 1970).

2.2 Cálculo de los equilibrios competitivos

Los equilibrios competitivos también se pueden calcular y se han desarrollado algoritmos basados
en métodos de punto fijo (Scarf, 1984) y técnicas de optimización (Nagurney, 1993). En efecto,
ambos tipos de algoritmos funcionan recopilando y resolviendo las ecuaciones de equilibrio
simultáneas (1), (2) y (3)). Sin embargo, sin una formulación expresamente distribuida, estas
técnicas pueden violar las consideraciones de descentralización que subyacen en nuestro contexto
de resolución de problemas distribuidos. Esto es bastante aceptable para los fines para los que se
diseñaron originalmente estos algoritmos, a saber, analizar estructuras descentralizadas
existentes, como industrias de transporte o incluso economías enteras (Shoven y Whalley, 1992).
Pero como nuestro propósito es implementar un sistema distribuido, debemos obedecer
restricciones de distributividad computacional que no son relevantes para los propósitos
habituales del análisis de equilibrio general aplicado. En general, el examen explícito del espacio
de asignaciones de paquetes de productos en la búsqueda del equilibrio socava nuestro motivo
original para descomponer actividades complejas en consumo y producción de bienes separados.

Otra restricción importante es que los detalles internos del estado de los agentes (como las
funciones de utilidad o producción y la política de ofertas) deben considerarse privados para
maximizar la modularidad y permitir la inclusión de agentes que no estén bajo el control directo de
los diseñadores. Una consecuencia de esto es que la explotación computacional de las
propiedades globales que surgen de las características especiales de los agentes no sería
generalmente permisible para nuestros propósitos. Por ejemplo, la restricción de que los
beneficios sean cero es una consecuencia del comportamiento competitivo y de la tecnología de
producción de rendimiento constante. Dado que la información sobre la forma de la tecnología y
la política de ofertas es privada para los agentes productores, podría considerarse un engaño
incluir la condición de beneficio cero en el procedimiento de derivación del equilibrio.

El procedimiento de Walras es un método de relajación descentralizado, similar al mecanismo de


tatonnement esbozado originalmente por L'eon Walras para explicar cómo se pueden derivar los
precios. En el método básico de tatonnement, se parte de un vector inicial de precios, pO. Los
agentes determinan sus demandas a esos precios (resolviendo sus correspondientes problemas de
optimización con restricciones) y comunican las cantidades demandadas al "subastador".
Basándose en estos informes, el subastador ajusta iterativamente los precios al alza o a la baja a
medida que se produce un exceso de demanda o de oferta, respectivamente. Por ejemplo, un
ajuste proporcional al exceso podría modelarse mediante la ecuación de diferencia

Xx - Xe ).
n n

pt+1 = pt - L( i i
i=1 i=1

Si la secuencia pO, p1,... converge, entonces el exceso de demanda en cada mercado se aproxima
a cero, y el resultado es un equilibrio competitivo. Sin embargo, es bien sabido que los procesos de
tatonnement no convergen al equilibrio en general (Scarf, 1984). La clase de economías en las que
funciona el tatonnement son aquellas con los llamados equilibrios estables (Hicks, 1948). Una
condición suficiente para la estabilidad es la sustituibilidad bruta (Arrow y Hurwicz, 1977): si el
precio de un bien sube, la demanda neta de los demás bienes no disminuye. Intuitivamente, la
sustituibilidad bruta se violará cuando existan complementariedades en las preferencias o en las
tecnologías, de forma que la reducción del consumo de un bien provoque también una reducción
del consumo de otros (Samuelson, 1974).

2.3 Protocolo de licitación WALRAS

El método empleado por walras calcula sucesivamente un precio de equilibrio en cada mercado
separado, de la manera que se detalla a continuación. Al igual que el tatonnement, implica un
ajuste iterativo de los precios basado en las reacciones de los agentes del mercado. Sin embargo,
difiere de los procedimientos tradicionales de tatonnement en que (1) los agentes presentan
curvas de oferta y demanda en lugar de cantidades puntuales para un precio concreto, y (2) la
subasta ajusta los precios individuales para compensar, en lugar de ajustar todo el vector de
precios mediante algún incremento. (normalmente una función de estadísticas resumidas como el
exceso de demanda).2

Walras asocia una subasta a cada bien distinto. Los agentes actúan en el mercado presentando
ofertas a las subastas. En walras, las pujas especifican una correspondencia entre precios y
2. Este enfoque general recibe el nombre de equilibrio progresivo de Dafermos y Nagurney (1989),
que lo aplicaron a un problema concreto de equilibrio de una red de transporte. Aunque este
modelo de dinámica de mercado no parece haber sido investigado muy a fondo en la teoría del
equilibrio general, sí parece coincidir con el tipo de proceso de ajuste de precios previsto por Hicks
en su estudio pionero sobre dinámica y estabilidad (Hicks, 1948).

cantidades del bien que el agente ofrece a la demanda o a la oferta. La oferta por un bien concreto
corresponde a una dimensión de la demanda óptima del agente, que está parametrizada por los
precios de todos los bienes relevantes. Sea xi(p) la solución de la ecuación (1) o (2), según
corresponda, para los precios p. Un agente walras puja por el bien j bajo el supuesto de que los
precios del resto de bienes están fijos en sus valores actuales, pJ-. Formalmente, la oferta del
agente i por el bien j es una función xi,j : R+ --- R, de precios a cantidades que satisface

xi,j (pj) = xi(pj , pJ-)j ,

donde el subíndice j en el lado derecho selecciona la cantidad demandada del bien j del vector de
demanda global. El agente calcula y envía esta función (codificada en una variedad de formatos) a
la subasta del bien j.

A partir de las ofertas de todos los agentes interesados, la subasta obtiene un precio de equilibrio
del mercado, en el que la cantidad demandada iguala a la ofertada, dentro de un margen de
tolerancia preestablecido. Este precio de equilibrio es simplemente el punto cero de la función de
demanda agregada, que es la suma de las demandas de todos los agentes. Dicho cruce por cero
existirá siempre que la demanda agregada se comporte suficientemente bien, en particular, si es
continua y decreciente en precio. La sustituibilidad bruta, junto con las condiciones clásicas de
existencia de equilibrio, es suficiente para garantizar la existencia de un precio de compensación
en cualquier fase del protocolo de licitación. Walras calcula el cruce por cero de la función de
demanda agregada mediante una búsqueda binaria. Si la demanda agregada no se comporta bien,
el resultado de la subasta puede ser un precio de no compensación.

Cuando el precio actual se despeja con respecto a las pujas actuales, decimos que el mercado de
esa mercancía está en equilibrio. Decimos que un agente está en equilibrio si su conjunto de
ofertas pendientes se corresponde con la solución de su problema de optimización a los precios
vigentes. Si todos los agentes y mercados de bienes están en equilibrio, la asignación de bienes
dictada por los resultados de la subasta es un equilibrio competitivo.

La figura 1 presenta un esquema del proceso de licitación de walras. Hay una subasta para cada
bien distinto, y para cada agente, un enlace a todas las subastas en las que tiene interés. También
existe un "tablero" con los precios actuales, que se mantiene actualizado gracias a las distintas
subastas. Sin embargo, dado que las notificaciones de cambios de precios se transmiten
explícitamente a los agentes interesados, se podría prescindir fácilmente de esta información
central.

Cada agente mantiene una agenda de tareas de puja, especificando los mercados en los que debe
actualizar su puja o calcular una nueva. En la Figura 1, el agente Ai tiene tareas pendientes para
presentar ofertas a las subastas G1, G7 y G4. El proceso de puja está muy distribuido, en el sentido
de que cada agente sólo necesita comunicarse directamente con las subastas de los bienes que le
interesan (los que están en el dominio de su función de utilidad o producción, o para los que tiene
dotaciones distintas de cero). Cada una de estas interacciones se refiere a un único bien; las
subastas nunca se coordinan entre sí. Los agentes no necesitan negociar directamente con otros
agentes, ni siquiera conocer la existencia de los demás.

A medida que se reciben nuevas ofertas en la subasta, el precio de adjudicación calculado


anteriormente queda obsoleto. Periódicamente, cada subasta calcula un nuevo precio de
adjudicación (si se han recibido ofertas nuevas o actualizadas) y lo publica en el tablón de
anuncios. La actualización de un precio puede invalidar algunas de las pujas pendientes de un
agente, ya que éstas se calcularon suponiendo que los precios de los bienes restantes se habían
fijado en los valores anteriores. Al enterarse

Figura 1: Proceso de licitación de Walras. Gj es la subasta por el j-ésimo bien, y Ai es el i-ésimo


agente comercial. Un punto j] en la agenda de tareas indica una tarea pendiente para calcular y
presentar una oferta por el bien j.

Cuando se produce un cambio de precio, un agente aumenta su agenda de tareas para incluir las
pujas potencialmente afectadas.

En todo momento, walras mantiene un vector de precios y cantidades que se intercambiarían a


esos precios. Mientras los agentes tienen agendas de pujas no vacías o las subastas nuevas pujas,
algunos o todos los bienes pueden estar en desequilibrio. Sin embargo, cuando todas las subastas
se resuelven y todas las agendas se agotan, la economía se encuentra en equilibrio competitivo
(hasta cierta tolerancia numérica). Utilizando un resultado reciente de Milgrom y Roberts (1991,
Teorema 12), puede demostrarse que la condición suficiente para la convergencia del
tatonnement -la sustituibilidad bruta- es también suficiente para la convergencia del proceso de
ajuste de precios de Walras. La observación clave es que en el equilibrio progresivo (sincrónico o
no) el precio en cada momento se basa en un conjunto de ofertas previas de oferta y demanda.

Aunque no dispongo de resultados precisos al respecto, el esfuerzo computacional necesario para


la convergencia a una tolerancia fija parece muy sensible al número de bienes, y mucho menos al
número de agentes. Eydeland y Nagurney (1989) han analizado en detalle el patrón de
convergencia de los algoritmos de equilibrio progresivo relacionados con walras para casos par-
ticulares especiales, y han encontrado un crecimiento aproximadamente lineal en el número de
agentes. Sin embargo, es difícil extraer conclusiones generales, ya que el coste de calcular el
equilibrio para una economía computacional concreta puede depender de la interconexión y la
fuerza de las interacciones entre agentes y bienes.

2.4 Programación orientada al mercado

Como se ha descrito anteriormente, walras permite especificar configuraciones de mercado y


calcular su equilibrio competitivo. También podemos considerar walras como un entorno de
programación para procedimientos descentralizados de asignación de recursos. El entorno
proporciona construcciones para especificar varios tipos de agentes y definir sus interacciones a
través de sus relaciones con productos comunes.

relaciones con los bienes comunes. Tras establecer la configuración inicial, se puede ejecutar el
mercado para determinar el nivel de equilibrio de las actividades y la distribución de los recursos
en toda la economía.

Para plantear un problema de planificación distribuida como un mercado, es necesario identificar


(1) los bienes objeto de comercio, (2) los agentes que comercian y (3) el comportamiento de los
agentes a la hora de pujar. Estos pasos de diseño dependen de la serie, ya que la definición de lo
que constituye un bien intercambiable o producible restringe severamente el tipo de agentes que
tiene sentido incluir. Y como ya se ha mencionado, a veces tenemos que tomar como fijos algunos
agentes y bienes del mundo real presentados como parte de la especificación del problema. Una
vez determinada la configuración, puede resultar ventajoso ajustar algunos parámetros generales
del protocolo de pujas. A continuación, ilustro la tarea de diseño con una formulación walras del
problema de flujo multicommodity.

2.5 Implementación
Walras se implementa en Common Lisp y en el Sistema de Objetos Common Lisp (CLOS). La
versión actual proporciona la infraestructura básica para ejecutar economías computacionales,
incluyendo el protocolo de pujas subyacente y una biblioteca de clases CLOS que implementan una
variedad de tipos de agentes. La implementación orientada a objetos permite el desarrollo
progresivo de configuraciones de mercado. En concreto, los nuevos tipos de agentes pueden
definirse a menudo como ligeras variaciones de los tipos existentes, por ejemplo modificando
características aisladas del comportamiento de la demanda, las estrategias de puja (por ejemplo,
la gestión de la agenda de tareas) o el formato de las pujas. Wang y Slagle (1993) presentan un
caso detallado del uso de lenguajes orientados a objetos para representar modelos de equilibrio
general. El sistema que proponen es similar a walras en lo que respecta a la formulación, aunque
está diseñado como interfaz para los paquetes convencionales de resolución de modelos, más que
para soportar directamente un cálculo descentralizado del equilibrio.

Aunque modela un sistema distribuido, walras se ejecuta en serie en un único procesador. Las
restricciones de distribución sobre la información y la comunicación se imponen mediante
convenciones de programación y especificación más que por mecanismos fundamentales del
entorno de software. La asincronía se simula aleatorizando las secuencias de ofertas para que los
agentes sean llamados de forma impredecible. De hecho, la sincronización artificial puede dar
lugar a una oscilación indeseable en los precios de compensación, ya que los agentes compensan
colectivamente los desequilibrios de la iteración anterior.3

El sistema experimental actual ejecuta modelos de transporte del tipo descrito anteriormente, así
como algunas economías de intercambio y producción abstractas con funciones de utilidad y
producción parametrizadas (incluidos los ejemplos expositivos de Scarf (1984) y Shoven y Whalley
(1984)). No ha sido necesario personalizar el protocolo básico de pujas. En el proceso de conseguir
que walras funcione con estos ejemplos, he añadido algunos bloques de construcción
genéricamente útiles a las bibliotecas de clases, pero se necesita mucho más para completar una
taxonomía completa de agentes, estrategias de puja y políticas de subasta.

3. Ejemplo: Flujo multicommodity

En una versión simple del problema de flujo multicommodity, la tarea consiste en asignar un
conjunto dado de movimientos de carga a través de una red de transporte determinada. La red de
transporte es una colección de ubicaciones, con enlaces (aristas dirigidas) que identifican las
operaciones de transporte factibles. Cada enlace lleva asociado un coste de transporte de la carga.
Suponemos además que la carga es homogénea y que las cantidades de carga son arbitrariamente
divisibles. Una necesidad de movimiento asocia una cantidad de carga a un par origen-destino. El
problema de planificación consiste en determinar la cantidad a transportar en cada enlace para
mover toda la carga con el mínimo coste. Esta simplificación ignora aspectos destacados de la
planificación real del transporte. Por ejemplo, este modelo es completamente atemporal, por lo
que es más adecuado para planificar flujos estacionarios que para planificar movimientos
dinámicos.

Una versión distribuida del problema descentralizaría la responsabilidad de transportar elementos


de carga separados. Por ejemplo, los módulos de planificación correspondientes a unidades
geográfica u organizativamente dispares podrían organizar el transporte de la carga dentro de sus
respectivas esferas de autoridad. O la actividad de toma de decisiones podría descomponerse a lo
largo de niveles jerárquicos de abstracción, características funcionales brutas o de acuerdo con
cualquier otra distinción relevante. Esta descentralización puede ser el resultado de la distribución
real de la autoridad dentro de una organización humana, de asimetrías informativas y barreras de
comunicación inherentes, o de la modularidad impuesta para facilitar la ingeniería de software.

Consideremos, por ejemplo, la red abstracta de transporte de la Figura 2, tomada de Harker


(1988). Hay cuatro ubicaciones, con enlaces dirigidos como se muestra. Consideremos dos
requisitos de movimiento. La primera es transportar la carga desde la ubicación 1 a la ubicación 4,
y la segunda en sentido inverso. Supongamos que deseamos descentralizar la autoridad para que
agentes separados (llamados cargadores) decidan cómo asignar la carga para cada movimiento. El
primer cargador decide cómo repartir sus unidades de carga entre los trayectos 1 --- 2 --- 4 y 1 --- 2
--- 3 --- 4, mientras que el segundo calcula el reparto entre los trayectos 4 --- 2 --- 1 y 4 --- 2 --- 3 ---
1. Obsérvese que estos últimos trayectos para cada cargador comparten un recurso común: el
enlace 2 --- 3.

Debido al solapamiento de sus demandas de recursos, las decisiones de los cargadores parecen
estar necesariamente entrelazadas. En una red congestionada, por ejemplo, el coste de
transportar una unidad de carga a través de un enlace aumenta con el uso global del enlace. Un
cargador que planifique sus movimientos de carga como si fuera el único usuario de la red
subestimaría sus costes y podría asignar mal los recursos de transporte.

Para el análisis de redes como ésta, los investigadores del transporte han desarrollado conceptos
de equilibrio que describen el comportamiento colectivo de los cargadores. En un sistema de
equilibrio, el transporte global de mercancías se desarrolla como si hubiera un planificador central
omnisciente que dirigiera el movimiento de cada envío para minimizar el coste total de satisfacer
las necesidades. En un equilibrio de usuario, la asignación global de movimientos de carga es tal
que cada cargador minimiza su propio coste total, compartiendo proporcionalmente el coste de
los recursos compartidos. El equilibrio del sistema es, pues, un óptimo global, mientras que el
equilibrio del usuario corresponde a una composición de soluciones localmente óptimas de
subproblemas. También existen algunas posibilidades intermedias, que corresponden a conceptos
de equilibrio de la teoría de juegos como el equilibrio de Nash, en el que cada cargador se
comporta de forma óptima dadas las políticas de transporte de los demás cargadores (Harker,
1986).4

Desde nuestra perspectiva como diseñadores del planificador distribuido, buscamos un


mecanismo de descentralización que alcance el equilibrio del sistema, o se acerque lo más posible
dada la estructura de toma de decisiones distribuida. En general, sin embargo, no podemos
esperar obtener un equilibrio del sistema o una solución globalmente óptima sin un control
central. Los límites a la coordinación y la comunicación pueden impedir que la asignación
distribuida de recursos aproveche todas las oportunidades y que los agentes actúen de forma
contradictoria. Pero, en determinadas condiciones, la toma de decisiones puede descentralizarse
eficazmente a través de mecanismos de mercado. El análisis de equilibrio general puede
ayudarnos a reconocer y aprovechar estas oportunidades.

Obsérvese que para el problema del flujo multicommodity, existe una solución distribuida efectiva
debida a Gallager (1977). Una de las estructuras de mercado descritas a continuación imita esta
solución, a pesar de que el algoritmo de Gallager no se formuló expresamente en términos de
mercado. No se trata de descifrar un problema de optimización distribuida no resuelto hasta ahora
(aunque estaría bien), sino de ilustrar un enfoque general sobre una tarea sencilla pero no trivial.

4. Mercado de transporte WALRAS

En esta sección, presento una serie de tres estructuras de mercado de transporte implementadas
en walras. El primer modelo, el más sencillo, comprende los agentes básicos de transporte de
mercancías y cargadores, que se amplían en los modelos siguientes para incluir otros tipos de
agentes. El análisis comparativo de las tres estructuras de mercado revela los comportamientos
económicos y computacionales cualitativamente distintos realizados por las configuraciones
alternativas de walras.

4.1 Modelo de cargador básico

El recurso de interés primordial en el problema del flujo multicommodity es el movimiento de


carga. Dado que el valor y el coste de un movimiento de carga dependen de la ubicación,
designamos como un bien distinto la capacidad en cada par origen-destino de la red (véase la
Figura 2). Para captar el coste o el insumo necesario para mover la carga, definimos otro bien que
denota los recursos genéricos de transporte. En un modelo más concreto, éstos podrían consistir
en vehículos, combustible, mano de obra u otros factores que contribuyan al transporte.

Para descentralizar la toma de decisiones, identificamos cada necesidad de movimiento con un


agente cargador distinto. Estos cargadores, o consumidores, tienen interés en mover varias
unidades de carga entre orígenes y destinos especificados.La interconexión de agentes y
mercancías define la configuración del mercado. La figura 3 representa la configuración de walras
para el modelo básico de expedidor correspondiente a la red de ejemplo de la figura 2. En este
modelo hay dos cargadores, S1,4 y S4,1, donde Si,j denota un cargador con la necesidad de mover
mercancías desde el origen i hasta el destino j. Los cargadores se conectan a mercancías que
podrían servir a sus objetivos: en este caso, el movimiento a lo largo de enlaces que pertenecen a
algún camino simple desde el origen del cargador hasta su destino. En el diagrama, Gi,j denota el
bien que representa una cantidad de carga movida a través del enlace i --- j. GO denota el bien
especial de recursos de transporte. Obsérvese que los únicos bienes de interés para ambos
cargadores son el GO, para el que ambos tienen dotaciones, y G2,3, el transporte en el enlace que
sirve a ambos pares origen-destino.

El modelo que empleamos para los costes de transporte se basa en una red con congestión, por lo
que presenta deseconomías de escala. En otras palabras, los costes marginales y medios (en
términos de recursos de transporte necesarios) aumentan con el nivel de servicio de un enlace.
Según los datos de Harker, los costes son cuadráticos. El modelo de costes cuadráticos se plantea
simplemente por concreción, y no representa ninguna afirmación sustantiva sobre las redes de
transporte. La característica cualitativa importante de este modelo (y la única necesaria para que
el ejemplo funcione) es que presenta rendimientos decrecientes, una característica definitoria de
las redes congestionadas. Obsérvese también que el modelo de Harker se refiere a costes
monetarios, mientras que nosotros introducimos un bien de entrada abstracto.

Sea ci,j(x) el coste en recursos de transporte (bien GO) necesarios para transportar x unidades de
carga en el enlace de i a j. Las funciones de coste completas son:
2
c1,2(x) = c2,1(x) = c2,4(x) = c4,2(x) = x - 20x,
2
c3,1(x) = c2,3(x) = c3,4(x) = 2x - 5x.

Por último, el objetivo de cada cargador es transportar 10 unidades de carga desde su origen hasta
su destino.

En el modelo de cargador básico, suponemos que los cargadores pagan proporcionalmente (en
unidades de GO) el coste total de cada enlace. Esto equivale a una política de precios de coste
medio. Consideramos que el objetivo del cargador es enviar tanto como sea posible (hasta su
necesidad de movimiento) de la manera menos costosa. Nótese que este objetivo no es
expresable en términos del problema de optimización del consumidor, ecuación (1), y por tanto
este modelo no es técnicamente una instancia del marco de equilibrio general.

Dada una red con precios en cada enlace, el movimiento de carga más barato corresponde al
camino más corto del grafo, en el que las distancias se equiparan a los precios. Así, para un enlace
determinado, un cargador preferirá enviar toda su cuota por el enlace si éste se encuentra en el
camino más corto, y cero en caso contrario. En caso de empate, es indiferente entre las posibles
asignaciones. Para pujar por el enlace i, j, el cargador puede deducir el precio umbral que
determina si el enlace está en el camino más corto tomando la diferencia en la distancia del
camino más corto entre las redes en las que la distancia del enlace i, j� se fija en cero e infinito,
respectivamente.

Al modificar sus ofertas de forma incremental, el cargador también debe tener en cuenta sus
ofertas pendientes y los precios actuales. El valor de reservar capacidad en un enlace concreto es
cero si no puede obtener servicio en los demás enlaces del trayecto. Del mismo modo, si ya se ha
comprometido a transportar carga por una ruta paralela, no ganará nada obteniendo más
capacidad (aunque sea a un precio inferior) hasta que retire esas otras ofertas.5 Por lo tanto, la
política de demanda real de un cargador es gastar sus ingresos no comprometidos en el aumento
potencial de flujo (derivado de los cálculos de flujo máximo) que podría obtener comprando
capacidad en el enlace en cuestión. Está dispuesto a gastar hasta el valor umbral del enlace, tal y
como se ha descrito anteriormente. Esto determina un punto de su curva de demanda. Si tiene
alguna necesidad insatisfecha e ingresos no comprometidos, también indica que está dispuesto a
pagar un precio más bajo por una mayor cantidad de capacidad. Los puntos límite como éste
sirven para poner en marcha la economía; a partir de las condiciones iniciales, suele darse el caso
de que ningún enlace individual contribuya al flujo global entre el origen y el destino del
expedidor. Por último, la curva de demanda se completa con una operación de suavizado en estos
puntos.

Los detalles de los puntos límite y de la operación de suavizado son bastante arbitrarios, y no
pretendo afirmar que esta política de oferta en particular sea ideal o que garantice su
funcionamiento para una amplia clase de problemas. Este enfoque tosco parece suficiente para el
presente ejemplo y otros similares, siempre que las políticas de los cargadores sean más precisas a
medida que los precios se acercan al equilibrio.

Walras calcula con éxito el equilibrio competitivo para este ejemplo, que en el caso del modelo
básico del cargador corresponde a un equilibrio del usuario (UE) para la red de transporte. En el
UE de la red de ejemplo, cada cargador envía 2,86 unidades de carga por el enlace compartido 2
--- 3, y el resto de la carga por el enlace directo desde la ubicación 2 hasta el destino. Esta
asignación es ineficiente, ya que su coste total es de 1143 recursos.

unidades, que es algo superior a la solución global de coste mínimo de 1136 unidades. En términos
económicos, la causa de la ineficiencia es una externalidad con respecto al uso del enlace
compartido. Como a los cargadores se les cobra el coste medio -que en el caso de rendimientos
decrecientes es inferior al coste marginal-, el precio al que se enfrentan no refleja el coste social
incremental total del uso adicional del recurso. De hecho, el uso incremental del recurso por parte
de un agente está subvencionado por el otro. Cuanto más pronunciados sean los rendimientos
decrecientes, más incentivos tendrán los agentes para sobreutilizar el recurso6 .
El remedio clásico a este tipo de problemas es internalizar la externalidad asignando la propiedad
del recurso compartido a algún responsable de la toma de decisiones que tenga los incentivos
adecuados para utilizarlo de forma eficiente. Podemos aplicar una solución de este tipo en walras
aumentando la estructura de mercado con otro tipo de agente.

4.2 Agentes transportistas

Ampliamos el modelo básico de cargador introduciendo transportistas, agentes de tipo productor


que tienen la capacidad de transportar unidades de carga por enlaces especificados, dadas
cantidades variables de recursos de transporte. En el modelo aquí descrito, asociamos un
transportista a cada enlace disponible. La función de producción de cada transportista es
simplemente la inversa de la función de costes descrita anteriormente. Para lograr un movimiento
global de la carga, los cargadores obtienen servicios de transporte de los transportistas a cambio
de los recursos de transporte necesarios.

Cada transportista Ci,j está conectado a la subasta de Gi,j, su producto de salida, junto con GO, su
insumo en el proceso de producción. Los agentes cargadores también están conectados a GO, ya
que están dotados de recursos de transporte para intercambiarlos por servicios de transporte. La
figura 4 muestra la estructura del mercado de Walras cuando los transportistas están incluidos en
la economía.

n el caso de una tecnología de rendimientos decrecientes, el problema de optimización del


productor (transportista) tiene una solución única. El nivel óptimo de actividad maximiza los
ingresos menos los costes, lo que ocurre en el punto en el que el precio de producción es igual al
coste marginal. A partir de este resultado, los transportistas presentan ofertas de oferta que
especifican los servicios de transporte en función de los precios de los enlaces (con el precio de los
recursos fijo), y ofertas de demanda que especifican los recursos necesarios en función de los
precios de los insumos (para el nivel de actividad calculado con el precio de producción fijo).

Por ejemplo, consideremos el transportista C1,2. Con un precio de salida p1,2 y un precio de
entrada pO, el beneficio del transportista es

p1,2y - pOc1,2(y),
donde y es el nivel de servicio que decide suministrar. Dada la función de costes anterior, esta
expresión se maximiza en y = (p1,2 - 20pO)/2pO. Tomando pO como fijo, el transportista presenta
una oferta de suministro con y en función de p1,2. Por el lado de la demanda, el transportista
toma p1,2 como fijo y presenta una oferta de demanda por suficiente mercancía GO para producir
y, donde y se trata como una función de pO.

Con la configuración revisada y los comportamientos de los agentes descritos, walras obtiene el
equilibrio del sistema (SE), es decir, la asignación de carga que minimiza los costes totales de
transporte. Los movimientos de carga derivados son correctos con una precisión del 10% en 36
ciclos de subasta y del 1% en 72, en los que cada agente presenta una oferta media en cada ciclo.
El coste total (en unidades de GO), su división entre gastos de los cargadores y beneficios de los
transportistas, y los precios de equilibrio se presentan en la Tabla 1. Para comparar, se incluyen los
datos de la solución UE del modelo de cargador binario. El hecho de que el proceso
descentralizado produzca un óptimo global es perfectamente coherente con el comportamiento
competitivo: los transportistas fijan el precio de sus productos al coste marginal y las tecnologías
son convexas.

Tabla 1: Equilibrios derivados por walras para el ejemplo del transporte. TC, MC y AC significan
coste total, marginal y medio, respectivamente. CT = gasto del cargador - beneficio del
transportista.

Como simple comprobación de los precios de la Tabla 1, podemos verificar que p2,3 - p3,4 = p2,4 y
p2,3 - p3,1 = p2,1. Ambas relaciones deben cumplirse en equilibrio. Ambas relaciones deben
cumplirse en equilibrio (suponiendo que todos los enlaces tengan movimientos distintos de cero),
ya que de lo contrario un cargador podría reducir su coste desviando parte de la carga. De hecho,
para un ejemplo sencillo (pequeño y simétrico) como éste, es fácil derivar el equilibrio
analíticamente utilizando ecuaciones globales como éstas. Pero, como ya se ha dicho, sería
impropio explotar estas relaciones en la aplicación de un proceso de decisión verdaderamente
distribuido. La lección de este ejercicio es que podemos obtener resultados cualitativamente
distintos mediante variaciones simi

La lección de este ejercicio es que podemos conseguir resultados cualitativamente distintos con
simples variaciones en la configuración del mercado o en las políticas de los agentes. Desde la
perspectiva de nuestros diseñadores, preferimos la configuración que conduzca a la SE más
eficiente desde el punto de vista del transporte. El examen de la Tabla 1 revela que podemos
alcanzar este resultado permitiendo que los transportistas obtengan beneficios distintos de cero
(desde el punto de vista económico, se trata en realidad de rentas sobre el factor fijo
representado por el canal congestionado) y redistribuyendo los beneficios entre los transportistas.
congestionado) y redistribuyendo estos beneficios a los cargadores para cubrir sus mayores
gastos. (En el modelo de equilibrio general con producción, los consumidores participan en los
beneficios de los productores. De este modo se cierra el círculo, de modo que todo el valor se
realiza en última instancia en el consumo. Podemos especificar estas participaciones como parte
de la configuración inicial, al igual que la dotación). En este ejemplo, distribuimos los beneficios
por igual entre los dos cargadores.

4.3 Agentes arbitrajistas

Los resultados anteriores demuestran que los walras sí pueden implementar una solución
descentralizada al problema del flujo multicommodity. Pero la estructura de mercado de la Figura
4 no es tan distribuida como podría ser, en el sentido de que (1) todos los agentes están
conectados a GO, y (2) los cargadores necesitan conocer todos los enlaces que potencialmente
sirven a su par origen-destino. El primero de estos problemas tiene fácil solución, ya que la
elección de un único recurso de transporte es completamente arbitraria. Por ejemplo, sería
sencillo considerar un conjunto de recursos (combustible, mano de obra, vehículos, etc.) y dotar a
cada cargador sólo de algunos de ellos.

La segunda preocupación también puede abordarse dentro de walras. Para ello, introducimos otro
tipo de agente productor. Estos nuevos agentes, denominados arbitrajistas, actúan como
intermediarios especializados, supervisando partes aisladas de la red en busca de ineficiencias. Un
arbitrajista Ai,j,k produce transporte de i a k comprando capacidad de i a j y de j a k. Su función de
producción simplemente especifica que la cantidad de su bien de salida, Gi,k, es igual al mínimo de
sus dos inputs, Gi,j y Gj,k. Si pi,j - pj,k < pi,k, su producción es rentable. Su política de oferta en
walras consiste en incrementar su nivel de actividad en cada iteración en una cantidad
proporcional a su rentabilidad actual (o decremento proporcional a la pérdida). Este
comportamiento incremental es necesario para todos los productores de rendimiento constante
en walras, ya que el problema de maximización de beneficios no tiene solución interior en el caso
lineal.7

Para incorporar a los arbitrajistas en la estructura del mercado de transporte, primero creamos
nuevas mercancías correspondientes al cierre transitivo de la red de transporte. En la red del
ejemplo, esto da lugar a mercancías para cada par de ubicaciones. A continuación, añadimos un
arbitrajista Ai,j,k para cada par de ubicaciones que (1) i --- j esté en la red original, y (2) exista un
camino de j a k que no atraviese la ubicación i. Estas dos condiciones garantizan que exista un
arbitrajista Ai,j,k para cada par i, k conectado por un camino con más de un enlace, y eliminan
algunas combinaciones que son redundantes o claramente no rentables.
La estructura de mercado revisada para el ejemplo en curso se representa en la Figura 5, con los
nuevos bienes y agentes sombreados. Algunos bienes y agentes inactivos en la solución de
mercado se han omitido del diagrama para evitar confusiones.

Obsérvese que en la figura 5 la conectividad de los cargadores se ha reducido considerablemente,


ya que ahora sólo necesitan conocer la mercancía que sirve directamente a su par origen-destino.
Esto simplifica enormemente su problema de oferta, ya que pueden evitar todo el análisis de la
red de precios. La estructura en su conjunto parece más distribuida, ya que ningún agente se
ocupa de más de tres mercancías.

A pesar del comportamiento simplificado de los cargadores, walras sigue convergiendo a la SE, o
solución óptima, en esta configuración. Aunque la asignación de recursos resultante es idéntica,
un cambio cualitativo en la estructura del mercado corresponde aquí a un cambio cualitativo en el
grado de descentralización.

De hecho, el comportamiento de walras en la configuración de mercado con arbitrajistas es


virtualmente idéntico al de un algoritmo distribuido estándar (Gallager, 1977) para flujo
multicommodity (retraso mínimo en redes de comunicación). En el algoritmo de Gallager, los
módulos distribuidos diferencian expresamente la función de coste para obtener el coste marginal
de aumentar el flujo en un enlace de comunicación. Los flujos se ajustan al alza o a la baja para
igualar los costes marginales a lo largo de subtrayectos competidores. Este procedimiento
converge de forma demostrable a la solución óptima siempre que el parámetro de ajuste iterativo
sea suficientemente pequeño. Del mismo modo, la convergencia en walras para este modelo
requiere que los arbitrajistas no ajusten sus niveles de actividad demasiado rápido en respuesta a
oportunidades de beneficio o situaciones de pérdida.

4.4 Resumen
En las secciones anteriores se han desarrollado tres configuraciones de mercado progresivamente
elaboradas para el problema del flujo multicommodity. La Tabla 2 resume el tamaño y la forma de
la configuración para una red de transporte con V ubicaciones y E enlaces, y M requisitos de
movimiento. El modelo básico del cargador da como resultado el equilibrio del usuario, mientras
que los dos modelos aumentados producen el equilibrio global óptimo del sistema. El modelo de
transportista requiere E nuevos agentes productores para obtener un resultado superior. El
modelo del arbitrajista añade O(V E) productores más y, potencialmente, también algunos bienes
nuevos, pero reduce el número de bienes de interés para cualquier agente individual de O(E) a una
pequeña constante.

Estos modelos de mercado representan tres puntos cualitativamente distintos en el espectro de


configuraciones potenciales. También se pueden concebir modelos híbridos, por ejemplo, en los
que se incluya un conjunto parcial de arbitrajistas, tal vez organizados en una jerarquía o en algún
otro sistema regular.

Cuadro 2: Número de bienes y agentes para las tres configuraciones de mercado. Para cada tipo de
agente, la cifra entre paréntesis indica el número de bienes por los que puja cada individuo.

estructura. Yo esperaría que tales configuraciones mostraran comportamientos intermedios a los


modelos específicos estudiados aquí, tanto en lo que se refiere al equilibrio producido como al
grado de descentralización.

5. Limitaciones

Una seria limitación de walras es el supuesto de que los agentes actúan de forma competitiva.
Como se ha mencionado anteriormente, este comportamiento es racional cuando hay muchos
agentes, cada uno de ellos pequeño respecto al conjunto de la economía. Sin embargo, cuando un
agente individual es lo suficientemente grande como para afectar a los precios de forma
significativa (es decir, posee poder de mercado), pierde utilidad o beneficios al no tener esto en
cuenta. Existen dos enfoques para paliar la restricción de la competencia perfecta en una
economía computacional. En primer lugar, podríamos simplemente adoptar modelos de
competencia imperfecta, quizás basados en formas específicas de imperfección (por ejemplo,
competencia monopolística espacial) o en modelos generales de teoría de juegos. En segundo
lugar, como arquitectos, podemos configurar los mercados para fomentar el comportamiento
competitivo. Por ejemplo, reducir el tamaño de grano de los agentes y permitir su libre entrada
aumentaría el grado de competencia. Quizá lo más interesante sea que, controlando el
conocimiento que los agentes tienen de la estructura del mercado (mediante técnicas estándar de
encapsulación de la información), podemos reducir su capacidad para explotar el poder de
mercado que posean. Se ha demostrado que la incertidumbre aumenta la competitividad entre los
agentes con aversión al riesgo en algunos modelos formales de licitación (McAfee y McMillan,
1987), y en un entorno informático tenemos un control sustancial sobre esta incertidumbre.

La existencia de equilibrios competitivos y de asignaciones de mercado eficientes también


depende en gran medida de la hipótesis de rendimientos de escala no crecientes. Aunque la
congestión es un factor real en las redes de transporte, por ejemplo, para muchos modos de
transporte suele haber otras economías de escala y densidad que pueden dar lugar a rendimientos
crecientes en general (Harker, 1987). Obsérvese que las interacciones estratégicas, los
rendimientos crecientes y otros factores que degradan la eficacia de los mecanismos de mercado
también inhiben la descentralización en general, por lo que habría que abordarlos directamente
en cualquier planteamiento.

Una vez definidas las walras como un entorno general para la planificación distribuida, es natural
preguntarse hasta qué punto es universal la "programación orientada al mercado" como
paradigma computacional. Podemos caracterizar la potencia computacional de este modelo con
bastante facilidad, por correspondencia con la clase de problemas de programación convexa
representados por economías que satisfacen las condiciones clásicas. Sin embargo, la cuestión más
interesante es hasta qué punto el marco conceptual del equilibrio de mercado se corresponde con
las características más destacadas de la economía de mercado.

equilibrio del mercado corresponde a las características más destacadas de los problemas de
planificación distribuida. Aunque es demasiado pronto para hacer una afirmación definitiva al
respecto, parece claro que muchas tareas de planificación son fundamentalmente problemas de
asignación de recursos, y que las unidades de distribución suelen corresponderse bien con las
unidades de agencia. La economía ha sido el enfoque más destacado (y posiblemente el más
exitoso) para modelar la asignación de recursos con la toma de decisiones descentralizada, y es
razonable suponer que los conceptos que los economistas encuentran útiles en el contexto social
resultarán igualmente útiles en nuestro contexto computacional análogo. Por supuesto, al igual
que la economía no es ideal para analizar todos los aspectos de la interacción social, cabe esperar
que muchos aspectos de la organización de la planificación distribuida no queden bien reflejados
en este marco.

Por último, el modelo de red de transporte presentado aquí es una versión muy simplificada del
problema real de planificación en este ámbito. Un tratamiento más realista abarcaría múltiples
tipos de mercancías, movimientos discretos, extensión temporal, estructura jerárquica de la red y
otras características críticas del problema. Algunas de estas características se pueden captar
mediante ampliaciones graduales del modelo simple, quizás aplicando elaboraciones desarrolladas
por la comunidad científica del transporte. Por ejemplo, muchos modelos de transporte (incluida
la formulación más elaborada de Harker (Harker, 1987)) tienen en cuenta la oferta y la demanda
variables de productos básicos y relaciones más complejas entre transportistas y cargadores. Los
conceptos de equilibrio espacial de precios, basados en los mercados de materias primas en cada
lugar, parecen ofrecer el enfoque más directo para ampliar el modelo de transporte dentro de
walras.

6. 6. Trabajos relacionados

6.1 Optimización distribuida

Las técnicas y modelos aquí descritos se basan, obviamente, en numerosos trabajos de economía,
ciencias del transporte e investigación operativa. La contribución de investigación que se pretende
hacer aquí no es en estos campos, sino más bien en su aplicación a la construcción de un marco
computacional para la toma de decisiones descentralizada en general. No obstante, conviene
hacer algunas observaciones sobre la relación entre el enfoque aquí descrito y los métodos
existentes de optimización distribuida.

Aunque el modelo walras más elaborado es esencialmente equivalente a los algoritmos existentes
para el flujo multicommodity distribuido (Bertsekas & Tsitsiklis, 1989; Gallager, 1977), el marco de
mercado ofrece un enfoque hacia extensiones más allá del ámbito estricto de este problema de
optimización en particular. Por ejemplo, podríamos reducir el número de arbitrajistas, y aunque
esto eliminaría las garantías de optimalidad, aún podríamos tener una expectativa razonable de
degradación elegante. Del mismo modo, podríamos realizar ampliaciones conceptuales de la
estructura del problema, como la producción distribuida de bienes además de la trans- portación,
añadiendo nuevos tipos de agentes. Para cualquier ampliación, es muy posible que exista un
algoritmo de optimización distribuida personalizado que supere al mercado computacional, pero
es probable que la creación de este algoritmo implique un análisis completamente nuevo. No
obstante, hay que señalar que las especulaciones sobre las ventajas metodológicas del marco
orientado al mercado no son más que especulaciones en este momento, y que la relativa
flexibilidad de las aplicaciones que se programan en este paradigma deberá demostrarse
empíricamente en última instancia.

Por último, existe una amplia literatura sobre métodos de descomposición para problemas de
programación matemática, que es quizás el enfoque más común de la optimización distribuida.
Muchas de estas técnicas pueden interpretarse en términos económicos, utilizando la estrecha
relación entre los precios y los multiplicadores de Lagrange. De nuevo, la principal distinción del
enfoque que aquí se defiende es conceptual. En lugar de tomar un problema de optimización
global y descentralizarlo, nuestro objetivo es proporcionar un marco para formular una tarea de
forma distribuida en primer lugar.

6.2 Computación basada en el mercado

La idea básica de aplicar mecanismos económicos para coordinar la resolución de problemas


distribuidos no es nueva en la comunidad de la IA. A partir de la red de contratos (Davis y Smith,
1983), muchos han encontrado atractiva la metáfora de los mercados y han construido sistemas
organizados en torno a ellos o a mecanismos similares (Malone, Fikes, Grant y Howard, 1988). En
realidad, la red de contratos original no incluía ninguna noción económica en su mecanismo de
puja, pero los trabajos recientes de Sandholm (1993) han demostrado que el coste y el precio
pueden incorporarse al protocolo de la red de contratos para asemejarlo más a un verdadero
mecanismo de mercado. Miller y Drexler (Drexler & Miller, 1988; Miller & Drexler, 1988) han
examinado en profundidad el enfoque basado en el mercado, presentando algunos fundamentos
subyacentes y abordando cuestiones específicas destacadas en un entorno computacional.
Waldspurger, Hogg, Huberman, Kephart y Stornetta (1992) profundizaron en estos conceptos
aplicando mecanismos de mercado para asignar recursos informáticos en un sistema operativo
distribuido. Los investigadores en informática distribuida (Kurose y Simha, 1989) también han
aplicado algoritmos especializados basados en análisis económicos a problemas específicos de
asignación de recursos que surgen en los sistemas distribuidos. Para más información sobre esta
línea de trabajo, véase (Wellman, 1991).

Recientemente, Kuwabara e Ishida (1992) han experimentado con métodos de ajuste de la


demanda para una tarea muy similar al problema de flujo multicommodity considerado aquí. Una
diferencia significativa es que su método consideraría cada camino en la red como un recurso
separado, mientras que las estructuras de mercado aquí manipulan sólo enlaces o pares de
ubicaciones. Aunque no plantean su sistema en un marco de equilibrio competitivo, los resultados
son congruentes con los obtenidos por Walras.

Walras se distingue de estos esfuerzos anteriores en dos aspectos principales. En primer lugar,
está estructurado expresamente en términos de conceptos de la teoría del equilibrio general, para
promover el análisis matemático del sistema y facilitar la aplicación de los principios económicos al
diseño arquitectónico. En segundo lugar, walras está diseñado para servir como entorno de
programación general para implementar economías computacionales. Aunque no se ha
desarrollado específicamente para asignar recursos computacionales, no hay razón para que no
puedan incluirse en estructuras de mercado configuradas para dominios de aplicación concretos.
De hecho, la idea de basar las medidas del valor de la computación en valores del mundo real (por
ejemplo, movimientos de carga) se deriva naturalmente de la visión de equilibrio general de los
mercados interconectados, y es una de las perspectivas más interesantes para futuras aplicaciones
de walras a la resolución de problemas distribuidos.
Los teóricos de la organización han estudiado los mercados como mecanismos de coordinación de
actividades y asignación de recursos dentro de las empresas. Por ejemplo, Malone (1987) modela
los requisitos de información, flexibilidad y otras características de rendimiento de una variedad
de estructuras de mercado y no de mercado. En su terminología, walras implementa un mercado
centralizado, donde

la asignación de cada bien está mediada por una subasta. Utilizando tales modelos, podemos
determinar si esta forma bruta de organización es ventajosa, dada la información sobre el coste de
la comunicación, la flexibilidad de los módulos individuales y otras características relacionadas. En
este trabajo examinamos con más detalle el proceso de coordinación en los mercados
computacionales, profundizando en los criterios para diseñar mecanismos de asignación
descentralizados. Tomamos la restricción de distributividad como una imposición exógena; cuando
la restricción es relajable, tanto el análisis organizativo como el económico iluminan las
compensaciones subyacentes al problema del diseño de mecanismos.

Por último, la programación orientada al mercado comparte con la programación orientada a


agentes de Shoham (Shoham, 1993) la opinión de que los módulos de resolución de problemas
distribuidos se diseñan y entienden mejor como agentes racionales. Los dos enfoques apoyan
diferentes operaciones de los agentes (transacciones frente a actos de habla), adoptan diferentes
criterios de racionalidad y hacen hincapié en diferentes descriptores de los agentes, pero en
última instancia están dirigidos a lograr el mismo objetivo de especificar el comportamiento
complejo en términos de conceptos de agentes (por ejemplo, creencia, deseo, capacidad) y
organizaciones sociales. La combinación de la racionalidad individual con las leyes de la interacción
social proporciona quizás el enfoque más natural para generalizar la idea del "análisis del nivel de
conocimiento" de Newell (Newell, 1982) a la computación distribuida.

7. Conclusión

En resumen, walras representa un enfoque general para la construcción y el análisis de sistemas


de planificación distribuida, basado en la teoría del equilibrio general y en mecanismos
competitivos. El enfoque funciona derivando el equilibrio competitivo correspondiente a una
configuración particular de agentes y mercancías, especificado utilizando las estructuras básicas de
walras para definir estructuras de mercado computacionales. En una realización particular de este
enfoque para una forma simplificada de planificación del transporte distribuido, vemos que las
diferencias cualitativas en la estructura económica (por ejemplo, el reparto de costes entre los
cargadores frente a la propiedad de los recursos compartidos por los transportistas que maximizan
los beneficios) corresponden a comportamientos cualitativamente distintos (equilibrio del usuario
frente a equilibrio del sistema). Este ejercicio demuestra que un diseño cuidadoso de la estructura
de decisión distribuida según los principios económicos puede conducir a veces a una
descentralización eficaz, y que los comportamientos de sistemas alternativos pueden analizarse de
forma significativa en términos económicos.

La contribución del trabajo que aquí se presenta reside en la idea de programación orientada al
mercado, un algoritmo para el cálculo distribuido de equilibrios competitivos de economías
computacionales y una ilustración inicial del enfoque en un problema sencillo de asignación de
recursos distribuidos. Se requerirá una gran cantidad de trabajo adicional para comprender las
capacidades y limitaciones precisas del enfoque, y para establecer una metodología más amplia
para la configuración de economías computacionales.

También podría gustarte