Simulación Gestión Empresarial
Semanas 13 y 14
Departamento de Administración de Empresas
Facultad de Ciencias Económicas y Administrativas
Pontificia Universidad Javeriana
Simulación basada en agentes
• Perspectiva computacional que permite diseñar modelos
centrado en el comportamiento e interacciones del individuo
(en contraste con la dinámica de sistemas que enfatiza la
relación de variables).
• Permite la representación de sistemas complejos:
comportamiento individual + interacción (o
interdependencias) con el comportamiento de otros
individuos.
Agentes
• Agencia: Capacidad de un individuo para tomar acciones
• Los individuos toman decisiones afectados por / afectando las decisiones que
otros toman
• Comportamiento micro + interacción con otros propiedades emergentes a
nivel macro
• Un modelo de simulación basado en agentes es un programa computacional que
representa individuos tomando decisiones (reglas de acción) de acuerdo a una
serie de aspectos internos o del entorno (variables de estado)
Interdependencias: Evacuación de Houston
(Huracán Rita, 2005)
Fuente: AFP / Getty Images
Características de los agentes
• Actúan de acuerdo a reglas (o heurísticas)
• Actúan en conformidad a variables de estado (p. ej., nivel de
satisfacción, escasez de recursos, creencias, etc.)
• Razonamiento inductivo / racionalidad limitada
• Aprendizaje: Capacidad de reconocer patrones y de reforzar,
actualizar o modificar sus creencias de acuerdo a nueva información
(Arthur 1994)
Simulación basada en agentes
Agentes
Interacciones
(enlaces)
Razonamiento deductivo
vs.
Razonamiento inductivo
Razonamiento deductivo
• En el comportamiento deductivo, un individuo tiene
creencias precisas sobre el comportamiento de otros
individuos
• Suponga la existencia de un juego donde los rivales
saben que los demás son “maximizadores” de
beneficios y donde el conjunto de estrategias es
conocido junto con sus pagos.
El juego de entrada al mercado (teoría de
juegos)
Firma 1
No entrar Entrar
Firma 2
0
2 Competir Coludir
-1 1
-1 1
El juego de entrada al mercado
• Dado que la firma 1 entra al mercado, la firma 2 siempre escogería
coludir, estrategia con la cual obtendría mayores pagos.
• Dado lo anterior, a la firma 1 le conviene entrar al mercado, ya que de
otra forma obtendría pagos de cero.
• Entonces el equilibrio seria (entrar, coludir).
Razonamiento inductivo
• En la realidad, los individuos no conocen con precisión las creencias /
preferencias de otros individuos ni los pagos asociados a cada
estrategia.
• Además, la complejidad de los problemas / situaciones obliga a los
individuos a adoptar heurísticas de acción.
• Sin embargo, el ser humano tiene la gran capacidad de reconocer
patrones y la capacidad de reforzar, actualizar o modificar sus
creencias de acuerdo a nueva información (Arthur 1994)
Razonamiento inductivo
Mercado 3
Mercado 2
Mercado 4
Mercado 5
Mercado 1
Espacio de 33 x 33 posiciones
m = 5 mercados
n = 50 firmas
Ishibushi et al. (2001) Horizonte de tiempo = T iteraciones (t = 1, 2,…, T)
Razonamiento inductivo
• Cada firma debe escoger un único mercado competir
• Si muchas firmas compiten en un mercado, la oferta aumenta y el precio
disminuye. Idealmente, una firma quiere establecerse en un mercado
atractivo que no sea atractivo para otras firmas.
• Cada firma puede tener una estrategia diferente de explorar mercados
(ejemplo: mínima distancia, aleatorio, aprendizaje por refuerzo, etc.)
• En cada ronda t de competencia (t = 1, 2,…, T), las firmas observan sus
utilidades y de acuerdo a su estrategia deciden nuevamente en qué
mercado competir
Modelo de segregación espacial de Schelling
• Muestra como un sistema puede mostrar segregación
aun cuando los individuos no intenten explícitamente
segregarse.
• El modelo supone una ciudad en forma de cuadrícula,
donde en cada celda tiene la posibilidad de contener o
no un agente (es decir, pueden existir celdas vacías).
• Existen dos tipos (etnias) de agentes en el modelo.
Modelo de segregación espacial de Schelling
• Cada celda tiene un conjunto de vecinos (ocho) con
los cuales interactúa.
o o
x o o x
o x
o x o x x
o o
Modelo de segregación espacial de Schelling
• Cada agente quiere tener al menos una cantidad de agentes de su
mismo tipo in su vecindario. Supongamos que hay un valor de umbral T
común a todos los agentes, el cual denota la proporción (%) mínima de
agentes de su tipo necesaria para estar satisfecho.
• Si un agente descubre que hay una proporción menor a T de agentes de
su tipo, se encontrará insatisfecho.
• Sin un agente está insatisfecho, salta hacia otro punto de la ciudad en
busca de un mejor vecindario.
Ejemplo (T = 0.6)
El agente de color rojo o o
observa que en su vecindario x o o x
sólo el 50% son de su tipo , mientras o x
que el valor mínimo para sentirse o x o x x
satisfecho es T = 60%. o o
El agente se declara insatisfecho y decide o o
buscar otra posición en la red x o o x
o x
o x o x x
o o
El agente se reubica y redefine su nuevo o o
vecindario. x x o o x
o x
o x o x
o o
Dinámica del modelo de Schelling
• En el tiempo t, se determinan aquellos agentes insatisfechos.
• Cada agente insatisfecho se mueve (de forma aleatoria) a una nueva
posición desocupada.
• Se recalculan los índices de insatisfacción por agente. Se cierra el
proceso en el tiempo t.
• El tiempo se incrementa a t+1 y se repite el proceso nuevamente.
Problemas de agregación: Paradoja de
Simpson
Dos posibles tratamientos (A y B) contra los cálculos de riñón
[Link]
Problemas de agregación: Paradoja de
Simpson
• El tratamiento A es más sofisticado que el B.
• El tratamiento A es más efectivo cuando hay cálculos pequeños (93%
contra 73%); sin embargo, en agregado (sumando tratamientos de
cálculos grandes y pequeños), el B es más efectivo (83% contra 78%).
• La paradoja se resuelve considerando el efecto de tamaño: Los
médicos tienden a usar el tratamiento A solo en los casos más
severos. Cuando el tratamiento menos sofisticado (B) es aplicado a
más casos menores, pareciera que es más efectivo.
[Link]
Introducción a Netlogo
Instalación de Netlogo
[Link]
Introducción a Netlogo
- Turtles (tortugas).
- Patches (celdas).
- Links (relaciones entre tortugas).
• Netlogo también tiene un Observer (observador), el cual tiene la
propiedad de crear y destruir agentes, de dotar o modificar
propiedades a los agentes, etc.
• El comando clear-all borra todo.
Turtles / Links
Creación de agentes (turtles) desde el
“Observador”
• Comando para crear 100 tortugas en la misma posición
create-turtles 100
• El mismo comando, pero abreviado
crt 100
• Crea 100 tortugas en posiciones aleatorias
create-turtles 100 [set xcor random-xcor set ycor random-ycor]
• El mismo comando, pero abreviado
crt 100 [setxy random-xcor random-ycor]
Primitivas básicas de las tortugas
• forward o fd: avanzar
• back o bk: retroceder
• left o lt: giro a la izquierda, sin cambiar de coordenadas
• right o rt: giro a la derecha, sin cambiar de coordenadas
• repeat: repetir un conjunto de instrucciones
• pen-up o pu: subir el lápiz (los agentes no dejan trazos al moverse)
• pen-down o pd: bajar el lápiz (los agentes dejan trazos al moverse)
• clear-all o ca: borrar todo.
Propiedades de las tortugas
• who: identificador (no se puede modificar)
• color: color
• heading: orientación
• xcor: coordenada x
• ycor: coordenada y
• shape: forma
• label: etiqueta
• label-color: color de la etiqueta
• breed: raza
• hidden?: ¿visible o no visible?
• size: tamaño
• pen-size: tamaño del trazo al desplazarse (cuando pen-mode = down)
• pen-mode: ¿dejar trazo al desplazarse o no?
Patches
Propiedades de las celdas
• pxcor: coordenada x de la celda
• pycor: coordenada y de la celda
• pcolor: color de la celda
• plabel: etiqueta de la celda
• plabel-color: color de la etiqueta
Creando agentes
• clear-all ;; (equivalente: ca)
crt 1 ;; creamos 1 tortuga
ask turtles [pd fd 5 rt 90 fd 5 rt 90 fd 5 rt 90 fd 5 pu]
• clear-all ;; (equivalente: ca)
crt 10 ;; creamos 10 tortugas
ask turtles [pd repeat 4 [fd 5 rt 90] pu]
Propiedades de los agentes
Ejercicio: qué hace el siguiente código
to comenzar
ca
ask patches [set pcolor blue]
crt 2
ask turtle 0 [set xcor 5 set ycor 10 set color
orange set heading 0]
ask turtle 1 [setxy random-xcor random-ycor
set color green set heading 90]
ask turtles [pd repeat 4 [fd 5 rt 90] pu]
end
Respuesta
to comenzar
ca ;; clear-all
ask patches [set pcolor blue] ;; mundo azul
crt 2 ;; creamos una tortuga
ask turtle 0 [set xcor 5 set ycor 10 set color orange
set heading 0] ;; color naranja, orientación “arriba”
ask turtle 1 [setxy random-xcor random-ycor set
color green set heading 90] ;; color verde, orientación
“derecha”
ask turtles [pd repeat 4 [fd 5 rt 90] pu] ;;
dibujamos el cuadrado
end
Discriminación por propiedades:
ask “agentes” with [“propiedad”] [“acciones”]
to comenzar
ca ;; clear-all
crt 10
ask turtles [setxy random-xcor random-ycor]
ask turtles with [xcor > 5] [set size 5]
;; ask “agentes” with [“propiedad”] [“acciones”]
end
Sentencias if / ifelse
if {condición}
[
{acción}
]
ifelse condición
[
{acción si condición se cumple}
]
[
{acción si condición no se cumple}
]
Sentencias if / ifelse (Ejemplo)
if xcor > 0
[
set color blue
]
ifelse pxcor > 0
[
set pcolor blue
]
[
set pcolor red
]
Bucles (while / repeat / for)
while [condición]
[
;; comandos
]
repeat n ;;n es el número de repeticiones
[
;;comandos
]
Modelo de difusión
Algoritmo de inicialización (setup)
• (Crear propiedad en las “tortugas” que indique si es un
individuo adoptante o no adoptante)
• Hacer que todas las celdas tomen el color blanco
• En cada celda, crear una tortuga
• Escoger un individuo aleatoriamente y convertirlo en el
primer adoptante (“semilla”); cambiar su color a rojo
• Fijar el tiempo de inicio (t = 0).
Algoritmo de ejecución (go)
• Paso inicial: Preguntar a las “tortugas” si todas han
adoptado. En caso afirmativo, detener la simulación; si no,
continuar.
• Si la simulación continúa, preguntarle a cada tortuga lo
siguiente:
• Preguntarle a cada uno de sus vecinos si es adoptante
• Si el vecino es adoptante, hacer que la tortuga que preguntó
primero (“myself”) se convierta también en adoptante (con una
probabilidad prob-contagion y cambie su color a rojo
• Avanzar el tiempo t t + 1 y repetir el algoritmo (volver al paso
inicial).
Explorar el modelo
•¿Qué pasaría si la probabilidad de
contagio cambia?
•¿Qué pasaría si no todas las celdas están
ocupadas (distanciamiento social)?