ok ya tenemos a nuestros influenciadores, tenemos nuestros regulares, están todos
dicho sea de paso, deben saber que tanto los influenciadores y los regulares pueden
también adoptar los diferentes aspectos ahora mismos; como dijimos lo que queremos
hacer es refinar la regla de la adopción de forma que los influenciadores sólamente
adopten basados en otro influenciador y que los regulares adopten basados en los
regulares o en los consejos de los influenciadores; pero tienen un peso que
es lo que opone a los influenciadores con los regulares
podemos agregar un nuevo deslizador al que llamaremos "peso de los influenciadores"
y este es probablemente una fracción, debido a que es una fracción de cuánto
pesan los influenciadores frente a los regulares
podemos hacer que vaya entre 0 y 1, 1 significa que sólo se confia en los
influenciadores y 0 significa que no se confía para nada
si confian en los influenciadores más que en los regulares, así podemos asignar el
peso de estos influenciadores en 0.7 o algo por el estilo
podemos volver al código y podemos empezar a modificar la regla de adopción ahora
basados en esto
lo que podemos hacer, vamos a adoptar
lo que queremos es que los influenciadores se manejen en forma diferente de los
que llamamos regulares en nuestro modelo
esto sólo va a afectar la influencia social, la influencia de los medios no la
vamos a tocar, sin importarnos; pero la influencia social se va a manejar en
forma diferente
una cosa que podemos hacer es que le podemos pedir que si
nuestro linaje igual al de los influenciadores, son iguales, empecemos
por uno solo, influenciador
entonces quiero que hagan algo y si son iguales a los regulares quiero que hagan
algo diferente; entonces si el linaje es de los influenciadores, entonces solo vas
a ser afectado por los influenciadores, entonces en el vecindario de adopción, con
los vínculos con los que adoptaron y influ de n breed es igual a los influenciadores
porque sólo vas a adoptar, el único efecto es si viene de estos vecinos, que ya
adoptaron y que son influenciadores y el vínculo en tu vecindario total sólamente
va a ser de aquellos que son influenciadores de verdad, debido a que no
conocés en este mundo, no te importa qué sucede con los regulares
lo que hemos hecho y el resto del código ya no funciona porque va a contar a las
tortugas que estén en 0, si adoptaron, entonces la influencia social se
multiplica por los vecinos que adoptaron y esto es porque en verdad está haciendo
nuevos vínculos con los vecinos
si nuestro, queremos hacer algo un poco diferente
si nosotros estamos basados en
los influenciadores y nosotros somos regulares, influenciadores si somos
regulares
y debe haber algo esperando, la influencia de nuestros vecinos influenciadores y de
nuestros vecinos regulares, copio y pego este código de abajo
acá vamos a permitirles a los vecinos que adopten, ahora vamos a tener 2 conjuntos
de vecinos que adoptaron, los vecinos que adoptaron quienes son regulares vs los
vecinos que adoptaron y que son influenciadores
pensemos en como vamos a querer hacer eso voy a chequearlo, ya volveremos sobre eso
tenemos a los vecinos que adoptan
ok tenemos a los vecinos que adoptan basados en los influenciadores pero con un
peso sobre los regulares; una forma en la que fácilmente podemos hacer esto es que
podemos contar la influencia social de nuestros vecinos regulares y contar la
influencia social de nuestros vecinos influenciadores y entonces ponderar entre
ambos
esto va a ser la forma en que los vecinos influenciadores puedan adoptar, vamos a
mirar son nuestros vecinos influenciadores los que adoptan y ese es el vínculo de los
que adoptan en el linaje de los influenciadores y vamos a hacer lo mismo
para nuestros vecinos regulares, los vecinos regulares que adoptan
dejemos que el linaje de los regulares primero contamos el número de los vecinos
influenciadores que adoptan y el total de los vecinos influenciadores y de los
vecinos regulares que adoptan y el total del número de los vecinos regulares
y en vez de
dicho sea de paso, ir a este si el valor al azar es menos que esto y hacer toda
esta comparación; lo que podemos hacer empezar a simplificar este cálculo un poco
podemos decir
primero que nada vamos a verificar que tenemos, que no estamos dividiendo por 0
si el total de los vecinos influenciadores
es, la cantidad de los vecinos influenciadores es mayor que 0
vamos a dejar
influenciadores
sociales
la influencia de los influenciadores
la influencia de los vecinos
que adoptan dividido por el total de vecinos influenciadores
y vamos a hacer lo mismo para los vecinos regulares
dejemos que los regulares influencien
vecinos regulares que adoptaron dividido por el total de vecinos
y ahora, todo lo que tenemos que hacer es sumar todo y entonces
la influencia de los vecinos
la influencia de los influenciadores multiplicado por el peso de los
influenciadores más la influencia de los regulares multiplicado por el peso de los
regulares, el peso de los regulares es definido, pero lo podemos definir rápido
el peso de los regulares es igual a 1 menos el peso de los influenciadores
verifiquemos
oh! básicamente cometimos un pequeño error, queremos que esto sea "si es igual
a los influenciadores"
oh, olvidé lo de los vecinos totales
algunos typos
no hay nada que sea influencia de los influenciadores
oh! está bien!, veamos algo que nos permita controlar cuando definimos una
variable dentro de, en verdad eso va a esa área en particular, entonces vamos a en
vez de usar "set" y luego vamos a definir la variable usando "let" por fuera de ello
entonces, digamos asignamos la influencia de los influenciadores que sea 0 y la
influencia de los regulares que sea 0, esto es algo que se usa mucho, en verdad
ahora debido a que ahora siempre tienen un valor para la influencia de los
influenciadores y para la influencia de los regulares; ok entonces ahora, luego de
todo esto
tenemos ahora una forma de ponderar la influencia de los vecinos, vamos a tomar
la influencia de los influenciadores y la vamos a multiplicar por el peso de la
influencia más la influencia de los regulares multiplicado por el peso de los
regulares; en este punto, ya tenemos nuestra verificación para ver si el total
de los vecinos es mayor que 0 y si no lo es, entonces le asignamos 0 de esa forma
particular; podemos en este punto eliminar este comando; esta especie de verificación
en el número de vecinos
podemos ir y verificar y decir ok si no están adoptando, entonces finalice el
valor al azar si es menor que la influencia social multiplicada
por la influencia de los vecinos
luego asignamos verdadero a la variable de adopción
vamos a hacer un breve resumen; básicamente lo que hicimos fue contar el
número de vecinos influenciadores y el número, el número total de los vecinos
influenciadores que adoptaron, el número de los vecinos regulares, el número de los
vecinos regulares que adoptaron; incluimos una nueva variable que guarda la
influencia y la asignamos esa influencia al número de los que adoptaron dividido
por los que quedaron libres; primero que nada verificamos que exista ese valor de 0
así no nos da el error de dividir por 0, lo vamos a usar como una nueva forma
de ponderar la fracción de la adopción, que será esta influencia de los vecinos
que es igual a la influencia de los influenciadores multiplicada por el peso
de la influencia más la influencia de los regulares multiplicada por el peso de los
regulares
basados en todo eso ahora tenemos a los influenciadores y a los regulares que
adoptan en formas distintas, podemos hacer click en setup y luego go; ah! por
supuesto como esperábamos obtuvimos un error muy pequeño, pero qué es esto? dice
que la división espera un parámetro de entrada que sea un número pero en vez
obtuvo un conjunto de agentes; esto se debe a que en realidad tenemos definido a
la influencia total de los vecinos como un conjunto de agentes y no como un número
podemos rápidamente cambiar todo esto por "count" en vez de usar el conjunto de
agentes
setup, click en go y ahora funciona
por supuesto tenemos que asegurarnos que este modelo esté funcionando, tenemos que
pasar algún tiempo escribiendo algún código para debuguear y asegurarnos que
los cálculos para estos individuos son diferentes que para este que está acá y
así sucesivamente
dado que esta charla está llegando a su fin, les voy a dejar eso como ejercicio,
pero vamos a hablar un poco más cuando nos enfrentemos con la verificación y con la
validación de los modelos