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