hoy vamos a hablar de dos versiones interesantes acerca de cómo usar los MBA
y agregar componentes adicionales; el primer caso del que vamos a hablar es el
de la "Simulación participante", que es la habilidad que tienen los seres humanos de
interactuar con los MBA; el segundo caso del que vamos a hablar es el que mezcla
los MBA con los MSD, que es una forma diferente de modelizar; empecemos por la
"simulación participante". La simulación participante es la idea de que se puede
crear una simulación que posee tanto agentes humanos y agentes simulados que se
encuentran operando lado a lado; en particular en NetLogo esto está
implementado por intermedio del protocolo HubNet, que vamos a explorar un poco
cuando lleguemos a los ejemplos; por ejemplo en el modelo de las enfermedades
del HubNet, uno puede automáticamente tener a los agentes de la enfermedad o a
los factores de la enfermedad dando vueltas y luego se puede tener a algunas
personas que estén controladas por otros humanos dando vueltas también y se puede
ver como interactúan entre sí o tenemos un juego que se llama el juego de Rupier, en
ese caso se pueden tener personas tomando decisiones y observar que dinámicas se
aplican. Cuando creamos una arquitectura basada en HubNet, lo que hay que recordar
es que la arquitectura básica tiene a una computadora funcionando como un servidor
y que las otras computadoras tienen que estar en la misma red de área local (LAN);
otras computadoras o terminales se conectan a esta computadora en una
arquitectura del tipo cliente - servidor
en este caso en particular generalmente son máquinas diferentes, y entonces cada
uno tiene su propia máquina; se pueden tener varios clientes en la misma máquina
pero se puede tener también, si uno está jugando y configurando todo uno mismo
simplemente se puede usar una máquina sola una sola computadora para el cliente y el
servidor
hay básicamente tres pasos que se necesitan programar; 1) hay que iniciar el
HubNet, ya hablaremos de cómo se hace y cómo funciona; 2) hay que "escuchar" a los
clientes, uno puede preguntar si se recibe el mensaje y si lo hace se puede capturar
ese mensaje; 3) se debe procesar ese mensaje y hay un número de diferentes
mensajes que se pueden procesar, algunos estándares son: HubNet entrada, HubNet
salida, que indican si el cliente está ingresando a la simulación de HubNet o
está saliendo; la fuente así se puede conocer cuál es la fuente de los mensajes;
la etiqueta, se pueden adjuntar etiquetas y ver cuál es la etiqueta del mensaje que
se está mandando
A veces uno hace esto mapeando a un cliente particular en el mundo del HubNet,
las tortugas de nuestro modelo, por ejemplo en el modelo de las enfermedades
cada cliente está representando a un ser humano que se mueve por allí y que en
potencia puede ser un hospedador de la enfermedad a medida que se mueve
y esto se consigue configurando las variables de las tortugas, creamos un ID
para cada uno de los diferentes agentes humanos que sea coincidente con el ID del
HubNet; se agrega alguna forma programática de enviar los mensajes desde
el servidor a los clientes, esto sirve si queremos alguna retroalimentación, si va
en la dirección adecuada, diferentes clases de elementos, cuán bien lo está
haciendo en el juego y entonces podemos hacer que el HubNet envíe esos mensajes
uno puede también configurar lo que cada cliente puede ver y esto se puede hacer o
bien forzando la mirada del cliente para que siga a un cliente en particular en el
gráfico del HubNet o haciendo lo que se denomina anulación de cliente, que implica
bloquear partes de la pantalla así el cliente, sólo puede ver algunas zonas en
particular
no podemos ver todas las formas posibles pero lo que sí quiero hacer es usar en los
próximos instantes el modelo de la enfermedad, para mostrarles paso a paso
como funcione en verdad en el modelo
ok, ya abrí la biblioteca de NetLogo, en verdad re abrí el modelo de las
enfermedades, que tenía en el fondo, pero sólo para mostrarles cuál es, si miran en
la biblioteca de modelos y bajan hasta la sección se que se llama "actividades en
HubNet", ahí van a ver un montón de modelos pero el que vamos a ver hoy es el
de las enfermedades, y es el que vamos a entender; lo abrimos, ustedes van a notar
dicho sea de paso, que levanta un centro de control del HubNet y que está aquí
ese es, esencialmente, el control del servidor para el modelo
el modelo de las enfermedades se usa para dar clases, por lo que viene con
instrucciones muy detalladas para poder conectarse, verlo en profundidad y
leer el modelo, pero yo los quiero llevar hacia algo más específico
hablemos un poco de cómo se ve, ahora mismo si presionamos en "setup", no pasa
nada, porque tenemos que agregar un cliente al modelo, no hay nadie que pueda
tener el control, podemos agregar clientes en una de dos formas, podemos crear un
cliente local, y este es nuestro propio espacio local para hacer pruebas y no se
va a ver de ninguna otra computadora o bien si tenemos otra computadora podemos
ir a la misma ventana de NetLogo, en la carpeta de NetLogo y encontraremos el
cliente de HubNet y podemos cargarlo y si estamos en la misma red local podemos
escribir el nombre y la dirección del servidor que tenemos en la ventana del
centro de control del HubNet
una vez que hicimos eso, ya puedo agregar, tengo dos clientes locales y habilitados
ahora puedo hacer click en "setup"
y clickear en "go" y lo podemos ver, en el modelo, dicho sea de paso
si volvemos vemos que los dos están ahí
y ahora puedo en verdad mover estos agentes, usando, haciendo click, ok, o
pudo usar las teclas "a", "y", "k", "o", dicho sea de paso, esta es una
característica del NetLogo que está muy buena, se hace configurando los botones
particulares y entonces puedo moverlos
si voy aquí, puedo hacer exactamente lo mismo, ahora bien con dos de nosotros no
se pone interesante, podemos agregar más y veremos como se mueven al azar por el
mundo y finalmente para tener una verdadera sensación de enfermedad podemos
infectar a uno de los agentes y podemos intentar, todo lo que podamos, evitar esa
infección, evitaremos el agente amarillo y así sucesivamente y podemos explorar
como el número de androides afecta la simulación y como la gente interactúa con
este problema de navegación de la enfermedad
este es el modelo básico, un modelo muy simple, ups el cliente se acaba de
infectar, pero pueden tener una idea de que es lo que te permite hacer el HubNet
déjenme parar esta simulación e ir al código
veamos el código, esperen que apago el "go" y en el código actual, lo primero que
voy a buscar es lo que se llama la rutina de arranque y si recuerdan de otras
discusiones, "startup" corre cuando el modelo arranca, sin importar qué botón se
apretó y lo primero que hace es ejecutar este comando para indicar que se va a usar
la plataforma de HubNet, re asignar y todo luego hay que configurar las variables,
configurar el comienzo rápido, así todo puede funcionar, eso es todo
veamos ahora qué es lo que en verdad está sucediendo en la vida diaria; la primera
cosa que se nota es listen-clients (escuchar-clientes), de la que ahora vamos
a entrar en detalle, pero luego viene el comando every 0.1; every 0.1 significa que
se va a programar algo para que suceda cada 0.1 segundos y por cada décima parte
de un segundo, se ejecutará esta función wander (deambular) en los androides y
luego vamos a contar cuántos están enfermos y cosas así; pero la parte
importante para el HubNet es esta función del cliente que escucha, veámosla un poco
qué es lo que hace listen-clients? lo que hace es: si hay una espera masiva, si es
verdadero, entonces atrape el mensaje y si el mensaje llega a un estudiante, luego
remueva a ese estudiante de la clase, de otro modo lo estándar es que se remueva al
estudiante de la simulación, pregúntale al estudiante, cuál es su ID de usuario y si
es coincidente con el mensaje del HubNet otra vez los mensajes entrantes del HubNet
pueden crear un nuevo estudiante, va a ser coincidente en el ID con la fuente en
particular de ese ID
Y luego, encuentre esos estudiantes y luego ejecute este comando, por supuesto
ahora buscamos el comando de ejecución este comando de ejecución dice que si el
comando dice UP (arriba), entonces execute -move, DOWN, execute-move 180 y así sigue
uno puede cambiar la apariencia y que haya otro personaje; lo que hace el comando
execute-move es direccionar hacia donde estaba direccionado, arriba es 0, derecha
es 90, abajo es 180, izquierda es 270; todos los agentes en el Hub de la
enfermedad no son rotables, es decir que no rotan en función de seguir la dirección
sólo se mueven en esas direcciones, hay también un envío desde el HubNet, que
vuelve al cliente y que indica donde los agentes están en verdad, el punto azul
está en 2, recuerden que 0-0 es el medio, 2, -5
esto es un ejemplo de cómo se puede usar todas las características del HubNet
juntas y en este modelo en particular hay una cosa más que quiero chequear
básicamente dice que si estoy infectado entonces tengo que dispersar la enfermedad
si hay otras tortugas aquí puede que caiga enfermo, basado en la potencia de la
transmisión. Les dí entonces un rápido pantallazo sobre cómo se puede configurar
las simulaciones del HubNet, si es que están interesados en ello, tengo que
recomendarles, si están interesados, que en verdad buceen en alguno de los modelos
previos como el de la enfermedad para entender qué está sucediendo, esto fue
todo sobre la simulación participante