Categorías: Squeak | Sistemas Multiagente

Imagen/borrador-avatar.png

Esta sección es un esbozo en construcción. Se aprecian tus aportes y paciencia ;)

Modelo de segregación de Schelling

El modelo de segregación de Schelling describe la forma en que dos poblaciones interactuan y cómo se forman gethos de acuerdo a la intolerancia de cada uno de los miembros de las poblaciones a estar rodeados de vecinos que sean de otra población.

Para mayor información se recomienda visitar:

1. Implementación

Para implementar el modelo de segregación hacemos lo siguiente:

En cada ciclo de ejecución el agente realiza tres acciones principales:

El algoritmo en Squeak que guíará todo el proceso es algo así:

attachment:algoritmoInicial.png

Vamos a implementar cada uno de los métodos y variables que hacen que ese algoritmo funcione. Primero crearemos dichos métodos vacios y en la medida en que vamos avanzando los llenaremos de contenido.

Empezamos arrastrando guiones desde la categoría de guiones del agente rojo al mundo y les colocamos los siguientes nombres: probarSatisfacción, mover, y marcarPresencia. Estos guiones a su vez dependen de otros que iremos mostrando en la medida en que los vayamos desarrollando.

1.1. Implementando "probarSatisfaccion"

Para calcular la satisfacción el agente:

Por lo pronto mostraremos una captura de pantalla del código que implementa el método anterior, sin entrar en más detalles (veremos si es posible hacia futuro)

attachment:probarSatisfaccion.png

1.2. Implementando mostrarInsatisfecho

attachment:mostrarInsatisfecho.png

1.3. Implementando mostrarSatisfecho

attachment:mostrarSatisfecho.png

1.4. Desplazamiento

Esta función de desplazamiento evita que dos agentes se superpongan. Para esto necesitaremos un nuevo parche que se encargue de controlar las posiciones (a fin de evitar colisiones). Arrastramos un nuevo parche desde el mundo Kedama y le llamamos posicionamiento. Luego implementamos el método mover, que explicamos a continuación

1.4.1. Mover

attachment:mover.png

1.4.2. MoverBis

attachment:moverBis.png

1.5. Interacción con el entorno

1.5.1. Marcar Presencia

Para esto se usa la función de difusión de un parche. Cuando se invoca dicha función sobre un valor presente en un parche, esta difunde el valor número entre sus vecinos. Por ejemplo si invocamos la función en una grilla con la siguiente disposición:

     000 
     090
     000

El resultado será:

     111
     111 
     111

Más aún, si hay dos elementos juntos, es decir con una vecindad compartida, los elementos de la vecidad se ven influenciados por la difusión de los elementos centrales, así, difundir una grilla con el patrón:

     00000 
     09090 
     00000

Produce:

      11211 
      11211 
      11211

Usaremos entonces la función de difusión sobre dos parches para indicar la presencia de un elemento de cada color (los de la población roja y los de la población azul) de este modo:

attachment:marcarPresencia.png

1.5.2. Marcar la posición

Esto se hace mediante la función iniciar que explicaremos después. Por lo pronto una captura de pantalla:

attachment:iniciar.png

Kedama/SegregacionSchelling (last edited 2008-04-20 14:40:20 by localhost)