ok, estamos de vuelta con nuestro modelo y esta vez vamos a empezar a agregar algunas estructuras de red diferentes la 1ra cosa que tenemos que hacer es probablemente volver sobre la extensión de NetLogo y ver la forma en que estas estructuras son generadas si miran, vamos abajo a donde se ve como se generan una cosa que obviamente queremos es llamar a la generación al azar, esto es algo que ya estamos haciendo, entonces miremos un poco eso 1ro, debido a que podemos recrear lo que estamos haciendo; si lo miran, generar el azar en nw, va a tomar a un linaje de tortuga, un linaje de vínculo, el número de nodos, la probabilidad de la conexión y un comando de bloques opcionales y el comando de bloques opcionales es simplemente la misma cosa es crear 100 o lo que sea que se quiera crear y dicho sea de paso, para todas las extensiones, uno las llama por su nombre, esto es lo que se llama nw y tenemos que usarla con esa extensión luego que llamamos al comando, tenemos que llamar al generador de nw aleatorio y en este caso las tortugas serán 100 y estarán coloreadas en rojo, veamos que podemos hacer con esto y ver como funciona, ya que es básicamente la misma cosa que ya estuvimos haciendo; acá tenemos nuestra red, el modelo de nuevo y la 1ra cosa que debemos hacer antes que nada para, vamos a comenzar a trabajar con las extensiones, tenemos que llamarla, tenemos que decirle a NetLogo que queremos cargar la extensión entonces al comienzo de todo, tenemos que poner el comando extensions y dentro de los corchetes, escribimos nw y podemos chequear si lo está cargando en forma correcta y parece que todo anda bien, debido a que lo encontró de nuevo ahora queremos reemplazar, como dijimos la generación actual con ésta, entonces tenemos la generación de la red aquí, podemos comentarla por ahora probablemente la borremos, de la forma en que lo estuvimos haciendo antes y lo que es interesante es que cuando usamos estos comandos de generación de redes, nos generan la red completa con sus nodos y todo lo demás, entonces es casi como crear 100 o lo que sea, en este caso el comando es create num-agents; podemos deshacernos de este create num-agents ahora y la forma de hacerlo es simplemente comentando todo eventualmente lo vamos a borrar, pero por ahora lo voy a comentar y ahora podemos ir arriba y podemos decir nw generate random, que es el nombre del comando con el que vamos a trabajar y necesita el linaje de las tortugas, que en este caso son las tortugas, el linaje de los vínculos que en este caso son los vínculos y luego el número de nodos que es el número de agentes y la densidad, la probabilidad de conexiones, ahora bien antes, tenemos que enfocarnos en 1 solo nodo, pero aquí vamos a especificar una probabilidad, así podemos decir que en .1 lo que eso implica es que aproximadamente cada agente estará conectado con el 10% de los otros agentes en la red, ok? podemos hacer eso y luego igual que cuando creamos los 100 vamos a agregar en estos corchetes podemos poner todos nuestros comandos estándar allí mismo, ok? podemos contar, volver a lo que teníamos antes y simplemente cortar y pegar, podemos pegar y asignar la adopción a falso, podemos pegar aquí vamos, el valor de xy al azar y podemos pegarlo y ahora veamos con el botón de check si todo anda ok, parece que sí, entonces vamos adelante, click en setup y veamos que pasa, oh! parece que está funcionando ahora hay más nodos de los que esperábamos perdón más vínculos de los que teníamos antes debido a que la densidad es un poco más alta de lo que era antes, de hecho podemos decir que si contamos las tortugas hay 50 tortugas y podemos pedirle que cuente los vínculos y hay 121 vínculos, ahora si pensamos el modo en que las redes aleatorias funcionan 10% significa que el 10% de todos los posibles vínculos existen, el número de vínculos que pueden existir es 50 veces 50 debido a que cada nodo puede estar vínculos conectado con todos los otros nodos, menos con sí mismo, o 50 veces, 49 técnicamente que es 50 por 49 lo que da 2450; ahora el 10% de 2450 es obviamente 245 no 121, entonces por qué sólo tenemos 121? bueno si lo pensamos, las 50 x 49 asume que el nodo, que los vínculos son directos, es decir que tienen 2 sentidos en realidad lo que necesitamos, el número final para vínculos no direccionados es 50 x 49, que es el número de lazos que pueden tener sobre todo, pero luego dividido por 2, debido a que sólo podemos tener 1 lazo entre 2 nodos cualesquiera, podemos tener 1 lazo que va en ambos sentidos y entonces el número real de vínculos que podemos esperar, si cada nodo está conectado con otro nodo deberá ser de 1225, el 10% de ello es aproximadamente 121 y otra vez, saben esto es debido a que es una red aleatoria, entonces se pueden obtener diferentes valores; mostramos los vínculos de nuevo y tenemos 121; entonces parece que está funcionando, pero esta es sólo 1 red, simplemente estamos recreando lo que ya hicimos antes, queremos agregar otra estructura de red; entonces miremos a la red de nuevo y veamos si estamos en el lugar correcto y una forma simple para trabajar es la red de la conexión preferencial y una red de conexión preferencial es una red en la cual la probabilidad de estar conectado, cada vez que un nodo ingresa a la red o es generado en la red, la probabilidad de estar conectado a otro nodo depende del número de nodos, está relacionado con el número de vínculos que esos nodos ya poseen, entonces, uno puede pensar en una red donde los ricos se hacen más ricos, donde 1 nodo tiene muchos vínculos, eso hace que la probabilidad sea mayor de tener aún más vínculos en el futuro; probemos con una de ellas, pero antes de hacer eso, necesitamos agregar un elemento en la interfaz que nos permita elegir entre estas 2 redes diferentes; bajamos un poco esto y agregamos un elemento seleccionador al que vamos a llamar, lo vamos a llamar redes vamos a tener 2 opciones, aleatoria y conexión preferencial; podríamos poner algo más simple como CP, pero está bien así; vamos a mover esto un poquito para arriba, para que se ajuste bien y ahora podemos ir ahí a la rutina de setup, podemos usar los comentarios, crear los agentes basados en el seleccionador, oh crear la red basado en el seleccionador si la red es igual al azar, entonces hacemos lo que hacíamos antes vamos a verificar que todo ande, esto debería estar haciendo lo mismo que venía haciendo, seleccionamos al azar, setup y parece que sí, que está haciendo lo mismo son 111 en este caso, lo mismo que hacía antes; parece que está funcionando ahora vamos a agregar la nueva, pero antes de hacerla limpiemos el código un poco, ya que tenemos la red para que se seleccione ahora, podemos ir y podemos agregar la de conexión preferencial, entonces creamos la red, crear la red basado en el seleccionador, basado en la red al azar para esta y crear la red basados en la red de conexión preferencial si la red es igual a la de conexión preferencial entonces hagamos algo lindo, jaja, en este caso hacer algo lindo es generar la conexión preferencial, recordemos cual es esa, cualquier linaje de tortuga, linaje de vínculo, nodos nombrados, entonces a mi me gusta la red al azar la red de conexión preferencial no toma el parámetro de la densidad de la red y por lo tanto no tenemos; esta sola, en verdad existe algo como un parámetro de la densidad que se usa en general en las redes de conexión preferencial que describen la K, que es el número mínimo de conexiones que puede tener un nodo cualquiera, pero la versión del modelo de NetLogo no lo tiene implementado, entonces si quieren y están interesados lo pueden implementar por ustedes mismos; ok es muy similar, de otra manera puedo decir que los vínculos de la tortuga, número de agentes, tiene un valor de 0.1 que está ahí y en el azar hagamos un comentario acerca de esto, siempre es bueno hacer un comentario cuando tenemos estas diferencias en el setup; entonces vamos a decirle que ignore el deslizador de la densidad, de esa forma si alguien busca en nuestro código más adelante, podrán ver que no nos olvidamos y que en realidad acá está y además de esto, todo el resto del código es básicamente el mismo que como era antes entonces podemos copiar y pegar; de hecho si fuéramos realmente inteligentes y quisiéramos mantener nuestro código en el mínimo, podemos simplemente hacerlo de una vez por fuera, ya que les pedimos a las tortugas que se asignen a los valores x e y que vienen por defecto, etc. luego de que generemos todas las redes veamos si funciona, primero que nada, parece que todo está correcto, sintácticamente correcto, ahora tenemos una red aleatoria y luego veamos si podemos tener nuestra red de conexión preferencial; seguro que sí, ustedes pueden ver que obviamente mirando es un poco diferente en realidad me doy cuenta, que ya creamos el deslizador de la densidad, lo tenemos cableado, pero podemos decirle que para la red de conexión preferencial es un poco diferente, debido a que si elegimos la red al azar, con el valor cableado de 0.1 se ve como una densidad de red; entonces tomemos todo esto y lo bajamos un poco y le vamos a agregar un deslizador para la densidad, así podemos controlar en forma directa desde 0.5 hasta 1.0 lo alineamos un poco, ahora podemos reemplazar este 0.1 por la densidad es siempre muy útil hacer un doble chequeo para asegurarnos que el resultado es el mismo; entonces asignemos el valor a 0.1 y veamos si se comporta de manera similar, lo hace y si le pedimos que nos muestre la cantidad de vínculos es aproximadamente igual; esto significa que está funcionando, así que ahora tenemos una red aleatoria, que tiene un deslizador para la densidad que nos permite controlar la densidad de la red y ya fue verificada; si incrementamos este deslizador, lo que obtendremos son más cantidad de vínculos y seguramente ahí los estamos viendo y si vamos acá podemos verificarlo y ahí están; ahora como ya les mencioné, cuando construimos la conexión preferencial se ignora el deslizador de la densidad; así que como pueden ver, aún cuando la densidad sea alta, no se agregarán más vínculos hacemos una doble verificación rápida para asegurarnos de que nuestro código está funcionando de manera apropiada, ahora una de las cosas lindas acerca de la conexión preferencial es que debería formar una estructura con concentradores; un tipo de conexión preferencial; pero lo que podemos ver ahora debido a que nuestros agentes están distribuídos por todas partes; una de las cosas que tal vez quieran hacer cuando trabajan con estructuras de red es agregar algo de código para poder acomodar la estructura de la red un poco mejor y hay muchos comandos que están construídos en NetLogo para trabajar con ello y no son parte de la extensión de la red sino que son comandos estándar, uno de ellos es por ejemplo se denomina layout spring y lo podemos buscar en google ustedes pueden ver que permite acomodar a las tortugas, donde básicamente dependiendo de la idea, los vínculos pueden estirarse y se pueden posicionar de acuerdo a sus atributos y hay distribuciones detalladas que nos indican qué significa esto, pero este es el algoritmo estándar para estas redes y hay un montón de otros algoritmos, si van para atrás, podemos ir simplemente a ver el algoritmo del diseño y el diseño afecta a las tortugas toda clase de diferentes parámetros, simplemente copio y pego desde la documentación, de hecho si copio y pego toda la cosa, repeat 30, layout spring etc puedo atraparlo, ir a mis modelos antes de hacer el texto, puedo pegar ahí y esto me mostrará el modelo, la red se va a ver mejor, hacemos setup ahora y pueden ver que se ve un poco mejor la estructura y funciona para la red aleatoria, la red aleatoria puede ser muy compacta con esto podemos verla de una manera más abierta pero si quieren verla, haciendo todo lo que haya que hacer, ustedes pueden también copiar y pegar nuevamente apagar el deslizador y colocar en el observador y ver como se mueve de manera lenta y de hecho para este diseño, que se ve como si lo usáramos muy a menudo en cualquier caso, la doble verificación nos permite ver que la difusión está funcionando perfectamente, setup y go déjenme acelerarlo un poco, setup y go, setup y go, parece estar funcionando hay diferencias entre las redes? puede que sí, puede que sí, tengo la densidad que es bastante similar, es un poco más lento, voy a bajar la densidad un poco para el azar uh! esto pasa cada vez que, ya hablaremos de ello, pero esto es un lindo caso de un problema de dimensiones, en este caso en particular, nosotros generamos un agente, otros agentes que no están conectados a la red podemos simplemente ignorarlos, como lo voy a hacer ahora y podemos correr el modelo de nuevo o una mejor forma de lidiar con ello puede ser que tengamos a la influencia social en 0, si no estás conectado a la red y lo voy a dejar así y se los voy a dar como tarea para el hogar esto es todo para este modelos, cuando volvamos voy a hablar acerca de que quiero que hagan para el modelo 7, nos vemos en el modelo 7 quiero expandir el modelo de nuevo y esta vez quiero crear nuevos tipos de agentes para el modelo, ok? en el modelo actual, todos los agentes son lo mismo, en términos de su conducta, hacen las mismas cosas, pero lo que quiero hacer en el modelo 7 es crear un nuevo tipo de agente que se llamará "influenciador", ustedes pueden pensar en un clase de mirada estándar que hay influenciadores e imitadores cuando hablamos de difusión, especialmente en la difusión de innovaciones; lo que vamos a hacer es agregar esta noción de influencia pero obviamente el influenciador va a tener que ser diferente en algún sentido de los otros agentes y la forma en que son diferentes es que van a tener una etiqueta más grande por sobre los otros agentes y esos otros agentes tendrán potencialmente menos influencia sobre ellos, ok? entonces quiero agregar un "peso" que permita controlar cuanta influencia tienen los influenciadores y luego, la otra cosa que quiero hacer es graficar la adopción que hizo cada tipo de agente en forma separada de cada uno; ese es el objetivo para el modelo 7, ustedes pueden pensar en hacerlo en muchas formas diferentes, yo les recomiendo que miren un poco en, puede ser en algunos de los códigos que andan por ahí y que les permiten controlar a los agentes diferentes y en particular, algo de lo que ya hablamos, que son los linajes y los linajes te permiten de tener clases de agentes, más allá de las tortugas, no es necesario trabajar con las tortugas, ustedes pueden usar diferentes tipos de linajes, construídas sobre las tortugas miren un poco el tema de los linajes y cuando volvamos les voy a mostrar como lo hice