Introducción al modelado basado en agentes.
Extensión GIS
Voy a hablarles un poco acerca de la extensión NetLogo GIS, ¿de acuerdo?
El modelo del que les quiero hablar está en la librería de modelos bajo el libro de texto IBM,
capítulo 8 y se titula "NetLogo ticket" o "Venta de boletos".
De acuerdo.
Y está inspirado en la disertación de Tseng, quien fue estudiante en Maryland mientras estaba ahí.
Y estaba interesada en trabajar con su asesora Wendy Moe, tratando de entender cómo la venta de boletos de un evento en vivo les afectaba.
Este modelo nunca logró explorar esa pregunta al detalle desde un modelo basado en agentes.
De nuevo, su disertación es mucho mejor en eso, pero no es basada en agentes.
Pero sí examina, en una primera prueba, el intento de llegar a ese punto, ¿de acuerdo?
Así que, en este modelo, notarás que toma un poco ajustarlo e iniciar
y eso es porque lo que vamos a hacer es
poner información acerca de espacios geográficos reales.
Y esta información fue obtenida del Gobierno Federal
de los Estados Unidos en sus censos. Básicamente dibujados desde Tiger que es
la herramienta que provee información gratuita acerca del censo que cualquiera que vaya puede acceder, en esencia.
Ahora, para algunos datos tienes que pagar por ello y cosas así, pero
la mayoría es gratis.
Así que lo que he hecho es arrastrar un mapa de Manhattan con los límites de censo
fuera de ello y después poblé cada uno de esos límites del censo
con un agente representativo para cada casa. De hecho, creo que es como 1
por cada 10 casas las que están en ese segmento particular del censo.
Es algo interesante solo ver esto ahora mismo.
Primero, no hay nadie viviendo en Central Park, que corre justo debajo
del centro, como puedes imaginar. Y luego, también tengo una sede
que está localizada en el mundo. Y lo que esto te permite hacer entonces es
explorar cómo la gente decide qué hacer o no entre esta sede u otra
sede y usando datos demográficos reales de un área en particular.
Así que, en este caso, todos esos agentes deciden si vale el tiempo y
el dinero asistir.
Y puedes entender
qué tantas sedes diferentes
puedes tener y eventualmente si te gustaría tener
dos sedes que compitan entre una y otra
y quizá proveer descuentos y ofertas
y cosas como esas. Así es como se corre el modelo.
Vamos a pausarlo un segundo y te voy a mostrar
cómo funciona realmente el código.
Así que, para leer en una extensión de NetLogo,
tienes que empezar el código del modelo con extensiones y
nombrar la extensión. Y ya viste esto
un poco en la unidad 4 donde revisamos cómo
construir un modelo viral de marketing.
Entonces, en este caso particular, voy a leerlo en la
extensión GIS. Y esa extensión GIS es una de las
que se construyen en el paquete de NetLogo cuando lo descargas.
Y la primera cosa que hace es ajustar los comandos de mapas, y
muestra la carga usando el comando GIS, carga esos shapefiles
del directorio de data/roads.shp y data/tracts.shp
y va a ponerlos como variables.
Shapefiles, para aquellos que nunca lo han
usado anteriormente, es una forma GIS
de describir polígonos, puntos y líneas
y cómo describen el espacio del mundo.
Así que esto describe los caminos y las vías para que puedas ver qué está pasando.
La siguiente cosa que tenemos que hacer es...
como la forma en que GIS trabaja es que tienes todos los datos sobre el mundo completo
pero solo quieres mirar en un punto particular de ello porque
no quieres mirar al mundo entero cuando estudias Manhattan
así que, lo que vamos a hacer es ajustar el mundo
que es llamado "envoltura" (el espacio que envuelve al mundo) y
vamos a ajustar esa envoltura a la unión de los caminos y segmentos del censo.
Esas son envolturas específicas, así que hay algo que ajusta
los límites externos de los caminos y los
límites externos de los segmentos del censo. Así que vamos a tomar eso y a
usarlo para crear la unión de nuestro sistema y crear la envoltura.
Y vamos a mostrar los caminos y los trayectos
y vamos hacerlo dibujando
ajustando el color a rojo y mostrando los caminos en las líneas donde intersecta
y diciéndole a NetLogo que lo dibuje con una linea con grosor de 1.
Y lo que hace es dibujar líneas rojas
que ves acá atrás. Y, de hecho, podemos
activarlo y desactivarlo por la manera
en que especificamos el código.
Ahora esto está en la capa de dibujo
así que hay algunas maneras de interactuar con él.
Podemos visibilizar los trayectos e ilustrarlos también
y te mostraré cómo interactuar en un momento.
Una de las cosas que hacemos, y aquí es donde
hacemos la interacción, es donde decimos por cada una de las vías
preguntamos los parches que se intersectan con esas vías
Para ajustar su ID de vía en el parche del GIS
propiedad STFID, que es el valor del ID de vía
que se guarda en la base de datos.
Ahora que hemos hecho eso, cada parche sabe a qué vía
está conectada al conjunto de datos del GIS
y cuando cargamos la información del parche, vamos al
archivo doméstico, que contiene la población
de los hogares en cada extensión.
Pero lo más importante es que leamos en esa población doméstica
y resulta que este geo_id2 especifica la vía del censo que
la población describe. Así que podemos preguntar a los parches
que tienen el ID de vía que combine el censo para
ajustar su población y leer desde el hilo de esa población.
Ahora, hay un pequeño problema con eso. Podría haber
múltiples parches en cada extensión del censo que no queremos tener.
No queremos tener múltiples cuentas teniendo la población en cada una de ellas.
Así que la siguiente línea aborda eso. Dice que pregunte a los parches con
población > 0, ajustar su población a la población dividida
entre el número de parches con los que tiene la misma ID de vía.
Así que si tiene 2 parches que están en esa vía porque
tienen la misma ID, entonces separa la población
en dos partes.
Así que, ahora, usando la intersección final, hemos intersectado
la capa de dibujo en términos de extensiones con los parches actuales.
Es esta intersección GIS la que determina eso por nosotros.
Después de eso, el resto del código es muy estándar.
El código de modelado basado en agentes va a
determinar los consumidores que vienen de alguna sede
y después toma la decisión de compra
en base a eso.
Así que eso es todo respecto a la extensión GIS.
En la próxima charla, hablaremos sobre la extensión de red.