ok, dejamos en que íbamos a construir la 1ra versión del modelo y como les dije que
hay 3 metas importantes, bueno 2 metas a seguir; 1ro crear los agentes y luego
hacer que adopten; es parte importante comprender las submetas, es decir la
habilidad para adoptar y que tengan la propiedad de poder adoptar
vamos y comencemos agregando un deslizador así ya lo tenemos, voy a crear un
deslizador que voy a llamar "Num Agents" y voy a hacer que vaya desde 0 hasta 100,
está bien y comencemos con 15, está bien para mi y voy a cambiar a 15 en este punto
y ahora, la otra cosa que no les mencioné, pero que probablemente necesiten tener,
será que a las rutinas de setup y go hay que agregarles los botones necesarios
voy a crearlos también al mismo tiempo, entonces setup
y go
el botón es uno "para siempre" ya que en general nos gusta que siga corriendo hasta
que lo apaguemos de nuevo
lo acomodo un poquito; una cosa que ya les mencioné, pero que forma parte del estilo
de NetLogo es que cuando creamos estos modelos, si queremos un parámetro que sea
asignado antes de que corramos el modelo suele ponerse arriba de los botones de
setup y go, si es un parámetro que puede cambiar durante la corrida del modelo
entonces lo ponemos debajo del botón de setup, pero, otra vez, quiero enfatizar
que esto es el estilo de NetLogo, no es de ninguna manera obligatorio en NetLogo,
pero se darán cuenta que casi todos los modelos en NetLogo y en la librería de
modelos siguen este estilo; ok entonces tenemos los botones de setup y go en
NetLogo y por supuesto que por ahora no hacen nada, excepto resetear los ticks,
que ya prendimos y luego llenaremos el código; entonces en el código la 1ra cosa
que vamos a hacer es la creación de los agentes, entonces creemos, voy a cambiar
este comentario y poner crea los agentes basado en el deslizador
crear, crt, es el apócope para ello num-agents, con eso creamos el nro de
agentes, basados en el valor del deslizador, implícitamente empecés a poner
estos corchetes, todavía no le agregamos nada, pero ustedes saben, acá decimos que
queremos la propiedad de la adopción inicializada
la propiedad de la adopción es inicializada, pero no tenemos todavía una
propiedad de adopción, entonces 1ro tenemos que agregarla
vamos a llamarla "adopt" y como ya comentamos antes cualquier cosa que lleve
un signo de pregunta en NetLogo es una variable booleana (por estilo) y entonces
podemos tener "adopt" o "adopted", puede que sea más explicativa de que ya
adoptaron la información que se difunde a través de la red, llamamos a esta
propiedad que está relacionada con la adopción
ahora podemos seguir adelante y crear un número de agentes y podemos inicializar la
propiedad de la adopción, probablemente a falso; un par de cosas más que vamos a
mencionar, es que por ahí ustedes quieran separar a las tortugas en el espacio así
podemos inicialmente asignar las coordenadas X e Y en forma aleatoria como
ya lo hicimos en el pasado; puede que querramos darle una apariencia consistente
podemos entonces asignar un color, puede ser blanco en forma inicial, tenemos que
el fondo es negro, ya que así es la configuración estándar
y puede que querramos modificar su forma a persona; vamos adelante y verifiquemos si
hicimos todo, ahora, todavía no hicimos nada relacionado con la adopción, pero
podemos ir y ver si todo está funcionando y seguro podemos hacer click sobre setup
muchas veces y vemos los diferentes agentes por todo el mundo
ahora la última cosa, oh podemos hacer una doble verificación para estar seguro de
que hicimos todo en forma correcta e inspeccionar una de estas tortugas
y ver si tienen la propiedad de adopción y ahí vemos que la tienen
ahora por supuesto, podemos en el mismo punto ir y mirar la adopción, si realmente
adoptaron
casi todas las rutinas de go que se escriben en NetLogo tienen un comando ask
turtles en algún lado y lo básico es que todos tienen que decirles a los agentes
que realicen alguna tarea en particular, en este caso la tarea será decidir si
vamos a llamar a algo que se llama decidir si adoptan o simplemente adoptar, no
importa demasiado, en este caso voy a llamarlo adoptar y voy a crear otro
procedimiento para adoptar
tanto setup como go se explican bastante bien por sí mismas en términos de lo que
hacen, pero cualquier otro procedimiento necesita que lo definamos;
este procedimiento determinará si se adopta o no
en este caso en particular vamos a hacer algo muy simple, vamos a hacer que la
adopción sea al azar, digamos que si al azar de 10 es igual a 1 entonces vamos a
asignar la adopción a verdadero
ahora sabemos que, ahora sabemos que hemos creado código para hacer esto, pero si
vamos para atrás y vemos la interfaz, setup y go, no podemos decir nada
parcialmente eso se debe a que, vamos a inspeccionar a alguna de las tortugas
la propiedad de adopción está en verdadero debido a que corrimos el modelo por un
rato, pero no muestra nada, una cosa que podemos hacer es agregar un elemento para
asegurarnos que sea claro que los agentes lo han adoptado, lo que podemos hacer es
que una vez que adoptaron podemos asignar su color a rojo
probamos y hacemos click en setup y en go y todo funciona; ahora
otra cosa que mencioné es que hemos reiniciado los ticks, pero ahora los ticks
está todavía en 0 y eso es porque olvidamos de decirle a NetLogo cuando debe
actualizar los ticks; NetLogo no sabe
tenemos que decirle que cada vez que se ejecuta el go tiene que ocurrir un tick y
ahora si hacemos click en setup y en go, ahora nos muestra el número de ticks y
podemos ver cuántos agentes adoptaron en ese tiempo en particular
esto es todo para el modelo 1, espero que lo hayan disfrutado viéndolo en
profundidad; cuando regrese vamos a hablar un poco acerca de como crear las metas
para el modelo 2
para el modelo 2 quiero que pensemos un poco en cómo podemos hacer para que se
adopten las reglas en una forma más específica y más relacionada con el
problema; entonces lo que quiero que hagan es que pensemos en cómo podemos agregar
una influencia global y una influencia social en forma de deslizadores; tener a
los agentes que adoptan en base al modelo Bajo o algo parecido, podemos llamarla la
influencia de los medios, no estoy muy preocupado por el nombre en particular,
pero me gustaría agregar un par de parámetros y tenemos a los agentes que
adoptan basados en el modelo Bajo, en la misma forma que lo hacen en ese modelo,
tenemos el caso donde los agentes adoptan o bien la influencia global o la
influencia social multiplicado por la fracción de adoptadores
uno puede pensar en muchas otras relgas diferentes de adopción si ustedes quieren
es una opción; para ello ustedes pueden usar a Granovetter o Watts y otros que
plantean la regla del umbral o si quieren pueden mirar a los trabajos de Goldenberg
y otros y de la regla de la cascada independiente y otras reglas que pueden
ser usadas por los adoptadores en este modelo; esto va más allá del alcance de la
construcción de este modelo en particular pero podemos discutirlas
cuando hablamos de construir estas reglas de adopción qué tenemos que tener en
cuenta; tenemos que modificar la adopción tenemos que modificar el procedimiento de
adopción que hicimos en el último modelo y luego tendremos que pensar acerca de usar
cosas como la sentencia "if" que nos permite hacer cosas basadas en "si algo es
verdadero" y puede que quieran pensar en imitar por ejemplo o usar probabilidades o
algo similar a los efectos de la probabilidad; en ese caso la probabilidad
va siempre entre 0 y 1 y se puede usar para realizar todos los cálculos
espero que les sirva
cuando vuelva vamos a hablar de como se ve este modelo desde mi perspectiva