ok, hoy vamos a empezar a hablar de el segundo componente importante de un MBA
que es el medio ambiente del modelo
existe un número importante de formas en que podemos representar al medio ambiente
en un MBA
tenemos un par de ellas, y están o no relacionadas con la estructura real del
medio ambiente
por ejemplo, podemos tener los parches, donde el entorno está compuesto por un
número de espacios
cada uno de estos parches pueden tener sus propios atributos
y esa es la forma en que lo implementa NetLogo
uno puede imaginar también que el entorno es un espacio uniforme
y aquí el entorno como un todo puede tener sus propiedades
pero en algunos entornos de modelado se hace así pero en otros depende de la
decisión del autor
y esto está OK
o podemos imaginar que el entorno fue dibujado a partir de datos externos
tenemos datos de SIG, tenemos datos de una red social, uno tiene algo como eso que
vamos a usar como una influencia en nuestros modelos, a veces puede haber un
algoritmo que genera el entorno o algo parecido
yo les quise dar estos ejemplos, debido a que algunos de estos entornos los vamos a
ver como diferentes en términos de cómo representan lo que queremos modelizar
en el lenguaje determinado
ahora vamos a hablar de las estructuras de los entornos o topologías de interacción
sobre las cuales los modelos pueden correr
y son diferentes de las formas en que el modelo, entorno, puede ser construido
pero están relacionadas en muchos casos
uno puede tener entornos espaciales, que es la forma en la que a veces pensamos
en el entorno, que es la forma de un agente al lado de otro agente, y que
quiere decir que físicamente están uno al lado del otro en una representación del
espacio
podemos tener entornos basados en redes
este es un entorno en el cual
la topología de la interacción no está determinada por las ubicaciones físicas
dentro del entorno, sino que está determinado por los vínculos o relaciones
entre ellos en esa red
uno puede tener mundos en 3D
uno puede tener entornos espaciales que está en 3 dimensiones, de los que ya vamos
a hablar
y se pueden tener entornos SIG, que son sistemas de información geográficos
estos son entornos dibujados a partir de datos del mundo real que muestran como
existe realmente el mundo
podemos usar estos entornos como representación
etiqueté todos estos posibles entornos que podemos tener, hablamos un poco acerca de
las características del espacio que son una especie de entorno especial y de
otras cosas a lo largo de estas líneas
pero estos son los tipos de entorno más populares que uno encuentra en los MBA
hablemos un poco más acerca de los entornos espaciales
esencialmente hay dos tipos de entornos espaciales, uno puede tener espacios
discretos o podemos tener espacios continuos
en los espacios discretos representamos a veces lo que se denomina gráfico de
enrejado o gráfico de malla o gráfico de grilla
donde tenemos estas entidades que están una al lado de la otra
y la forma más común es el enrejado cuadrado
dado el enrejado cuadrado, del que vamos a hablar un poco más, hay otros tipos de
enrejados dando vueltas por ahí,
pero estas a veces son definidas como las reglas de interacción que tenemos entre
los vecinos en el entorno
podemos imaginar a un individuo en el medio de estas dos subsecciones pequeñas
del grafico, en las coordenadas 0,0
y ellos pueden interactuar, tanto como con sus 4 vecinos, arriba, abajo, izquierda o
derecha o los 4 vecinos más los vecinos de las diagonales
depende de como se describan estas interacciones, esta topología
cambia el tipo de medio ambiente en el que interactúan los agentes
entonces, en este contexto particular, este entorno que tiene 4 vecinos se llama
"vecindario de von Neumann" y en NetLogo el comando para obtener los 4 vecinos de
una grilla es neighbors4
y si tuviera 8 vecinos, se denomina "vecindario de Moore"
y ese comando en NetLogo es simplemente neighbors que llama a los 8 vecinos
a veces la gente dice cómo uno puede recordar la diferencia entre ellos
el de von Neumann, dicho sea de paso estamos hablando de John von Neumann
quien también fue uno de los más importantes arquitectos de la computación
moderna
y en este caso particular, es sencillo recordar la diferencia entre los
vecindarios de von Neumann y de Moore y es que el vecindario de Moore tiene
"más", hay "más vecinos" en el vecindario porque son 8 en vez de 4
resulta que la elección de estas configuraciones puede afectar muy
profundamente la forma en que,
el modelo va a correr, moviéndonos de un vecindario de 4, uno de von Neumann a uno
de Moore, puede generar efectos muy interesantes en el comportamiento total
del modelo, por ejemplo, si uno usa un autómata celular, puede llegar a cambiar
muy rápidamente como es que el modelo corre
podemos tener también grillas Hex
y una grilla Hex se supone que tiene una configuración de 8
es exactamente como suena, donde cada agente, cada posición en la grilla
está conectada a los otros 6 elementos de la grilla que están localizados al lado
el argumento que a veces se utiliza para usar una grilla Hex sobre una grilla
cuadrada, en la grilla cuadrada, si lo pensamos,
si estoy en el medio de esa posición en la grilla
y me quiero comunicar con un vecino que está en la esquina derecha superior
la distancia entre nosotros es mucho mayor que si quiero comunicarme con un vecino
que esta directamente encima mío
en una grilla Hex, todos mis vecinos están exactamente a la misma distancia que yo
es una propiedad interesante de la grilla Hex y porqué a veces es usada
para representar una estructura más uniforme
NetLogo no tiene en verdad grillas Hex donde poner los elementos, pero uno puede
hacerla, déjenme que les muestre
Aquí tengo el ejemplo de las celdas Hex y como pueden ver, nuestro espacio estándar
de NetLogo parece haber sido reemplazado por una grilla hexagonal
en la realidad los parches están todavía ahí, de hecho puedo mostrarles bien rápido
ask patches, set pcolor = pxcor + pycor
y podemos ver ahí que tenemos a los hexágonos puestos encima de ellos
ask patches pcolor black
y volvemos a como estábamos antes
cómo representamos hexágonos, si tenemos espacios cuadrados
resulta que lo que hacemos es asignamos la grilla
y creamos una celda arriba de cada parche y esta celda es esencialmente una tortuga
que representa una locación de la grilla hexagonal
lo que podemos hacer es básicamente, decirle que cada uno de sus vecinos
son los parches, basados en si queremos una locación par o no y podemos tener cada
agente en el espacio conectado a otros 6 agentes
otros 6 agentes en las locaciones que lo rodean
por ejemplo si tu agente par está conectado al agente que está justo frente
a vos, directamente a tu derecha, a tu, debajo a la derecha y así sucesivamente
a medida que avanzás por lo que queda
si es impar, estás conectado a un grupo diferente de parches
y esto nos permite una clase, si querés, falsa de hexágonos que se construye encima
del enrejado cuadrado
este es un ejemplo de como se puede construir grillas hexagonales
aún cuando el entorno por defecto es una grilla cuadrada
entonces, más allá del espacio discreto, podemos tener un espacio continuo
en el ejemplo previo
la grilla, tenía esencialmente elementos discretos, dentro o fuera
pero el espacio continuo significa que siempre estás en el espacio, de algún modo
uno puede moverse a cualquier lugar dentro de él
NetLogo es interesante porque hay un espacio continuo sobre la grilla discreta
que está arriba
y uno puede hablarle a los parches, que es esencialmente un espacio discreto
o podemos hablarle directamente a las coordenadas X e Y
que son un espacio continuo
es una buena manera de usar esa representación, uno obtiene los beneficios
de ambas grillas, la discreta y la continua
este un comando rápido que escribí solo para mostrarles como se ve una grilla de
esas y porque en verdad es distinta, pero si van a un elemento individual, esa
tortuga no está representada en el centro del parche, sino donde indican las
coordenadas X e Y sobre el parche
un espacio continuo construido sobre la grilla discreta que está por encima
recordemos cual entorno estamos usando si es un espacio discreto o continuo
necesitamos pensar en las condiciones de los bordes para el modelo
las condiciones de los bordes o lo que queremos decir con eso es
como interactúan los agentes con los límites del espacio que hemos establecido
y hay tres formas de hacerlo, hay una topología toroidal, una topología limitada
y una topología de plano infinito
en la topología toroidal, que es la que vemos en los MBA
el tope del modelo está conectado con la parte de abajo del modelo, y el borde
derecho del modelo con el izquierdo
esto se llama a veces encapsular, mundo encapsulado
a veces nos referimos a ella como la topología PAC-MAN, porque los PAC-MAN
iban a la izquierda y aparecían por la derecha
el modelo de la bandada es un muy buen ejemplo
en el modelo de la bandada de pájaros, si van hacia arriba, aparecen por debajo
si van hacia la izquierda, aparecen por la derecha y así sucesivamente
este es uno de los modos estándar para trabajar con las topologías y es una buena
razón para no tener los efectos de los bordes
el mundo es como es y los agentes pueden moverse con continuidad sin preocuparse
por los bordes
pero uno puede querer una topología que sea explícitamente limitada, donde vamos a
tener bordes en nuestro mundo
esto se describe a veces como si fuera un "laberinto", donde uno se encuentra
restringido a lo que puede hacer, dentro del espacio
el modelo de las hormigas usa este tipo de espacio, que pueden encontrar en la
biblioteca de NetLogo, dice que las hormigas no se puden mover más allá del
mundo, esas son las reglas para las hormigas, no hay que preocuparse mucho por
lo que sucede cuando interactúan con los bordes, porque constantemente chocan y
deben moverse y así se alejan del borde
en otros casos uno tiene que tener reglas explícitas, para ver que sucede cuando un
animal o un individuo o un agente en el modelo alcanza el borde, de hecho en el
modelo de los pájaros, si uno apaga la posibilidad del encapsulamiento
básicamente todos los pájaros se van a pegar a la pared y quedan ahí fijos
como resultado de ello hay que crear una regla especial y nueva que les diga, ok si
una tortuga alcanza la pared, no se si sería el caso, como si los pájaros
estuvieran volando en una habitación cerrada
si uno llega a la pared, uno tendría que decirle que la evite como hace con otros
pájaros
la última topología, que se utiliza a veces es el plano infinito, este es un
ejemplo simple donde los agentes pueden ir a donde quieren
no hay límites, el mundo es infinito
y esto puede ser armado de diferentes formas
uno puede reescalar el mundo
o se puede hacer que los agentes vayan fuera del mundo, que se escondan de otros
agentes y mantener una traza de donde se encuentran
asumiendo que estamos mirando al mundo es solo una ventana dentro de ese mundo
infinito, una ventana discreta
y eso es lo que el modelo de caminata al azar de 360 hace, les voy a mostrar un
poco de lo que es ese mundo particular porque creo que es interesante
aquí tenemos el modelo de caminata al azar de 360
podemos asignar estos valores y lo que realmente quiero mostrarles es
lo que es verdaderamente interesante es que si hacemos caminatas al azar
cual es la distribución de las tortugas en el mundo a medida que continuamos
corriéndolo, no está destinado a a describir en verdad un plano infinito
pero si dejamos que siga corriendo, veremos que algunas de las tortugas se van
y luego vuelven, algunas vuelven
del espacio, lo que verdaderamente están haciendo es tener
el espacio que vemos como una ventana a un lugar infinito
si miramos el código fuente
notaremos que las tortugas tienen estas propiedades extra, xc e yc que son las
coordenadas xcor e ycor pero ilimitadas
estas son las distancias verdaderas a las que están, debido a que si nos movemos por
fuera del espacio, podemos aún seguir viéndolas
podemos ver que si el parche al que se movieron no existe, en otras palabras se
encuentra por fuera del mundo
entonces las tortugas quedarán escondidas
nos previene de poder verlas, pero mantenemos la traza de donde están
sin usar las coordenadas xcor e ycor
en vez de eso, mantenemos la traza usando las coordenadas xc e yc, que nos permite
determinar donde están, aún cuando se muevan por fuera del mundo
y cuando vuelven, las mostramos de nuevo con estas coordenadas, es decir que sólo
las usamos xcor e ycor cuando xc e yc son espacios que están fuera del mundo
esto es un ejemplo de como hacer un plano infinito en NetLogo
en la próxima clase vamos a hablar de las topologías de red