Saludos!, Aquí John Balwit en el curso de complejidad Voy a repasar algunas soluciones del conjunto final de problemas y soluciones del nivel avanzado y esto también será divertido cuando construyamos una aplicación netlogo desde el inicio y veremos cuál es mi aproximación a la construcción de modelos obviamente hay diferentes maneras de hacerlo y una de las cosas importantes es que cuando empiecen a programar exploren no tengan miedo de cometer errores porque esa es la mejor manera de aprender de cientos de errores he revisado estos modelos cientos y cientos de veces y estoy seguro que voy a cometer errores construyendo éste pero es parte de programar. Nivel Avanzado: voy a hacer un modelo que usa el crecimiento de poblacion basada en agentes que no se basa en ecuaciones, de hecho vamos a hacer pequeñas entidades que se reproducen y vamos a ver si este comportamiento creado es lo que dice el modelo logístico de población o que reporta que se comporta asi que vamos de un modo obtener este comportamiento derivado del comportamiento actual de los agentes que es de hecho interesante filosóficamente que este tipo de modelamiento es de bajo nivel y que el comportamiento real emerge de las propiedades e interacciones de los agentes, asi que empecemos: este es logo y esto es lo que se obtiene cuando empiezas, una interfaz simple ... cuando empiezo un nuevo modelo siempre pongo un boton de setup (inicio) y usualmente un boton de steps (pasos) en un modelo como éste y un botón de go (ir) obviamente estos botones se refieren a procedimientos que aún no escribo y también son cuidadoso de alinear todos los elementos con la misma cantidad de espacios entre los botones es solo mi manera de hacerlo también pongo etiquetas en mis modelos así puedo recordar que son en el futuro, así que ahí vamos. eso es lo basico y ahora estoy interesado en tomar un modelo y ahora veamos que necesitamos crear un conjunto de agentes y queremos que se reproduzcan y entonces vamos a graficarlos en un gráfico para poder ver la curva sigmoidal, así que vamos a plotearlos vamos a sacar lo básico fuera del camino y vamos a llamar a este gráfico "population" (población) ... sabemos que va a haber un eje de población versus tiempo y es siempre una buena idea etiquetar inmediatamente el eje, así no se olvida ... ... ok ya los preliminares están listos lo que vamos a hacer ahora en inicializar el modelo y vamos a crear algunos agentes así que vamos al código y les escribimos "to setup" y empezamos a escribir. Sabemos que necesitamos crear un número definido inicialmente. Probablemente necesitemos una barra (slider) para eso, pero podemos empezar hagámos una barra inmediatamente, y así podemos ya quitarnos esto por ahora volvemos a la interfaz y hacemos una barra y la llamamos "initialpop" (población inicial) usualmente copio eso y vamos a crear una cantidad de población inicial en el modelo y entonces cuando tengamos la oportunidad le voy a asignar a estas entidades nuevas algunas propiedades como por ejemplo, el color a verde asignar la forma a digamos un círculo y definir su tamaño inicialmente viene con un tamaño definido de 1 Ahora voy .. Existe un problema ahora con esto y voy a mostrarles esto porque La inicialización (setup) funciona y vamos a crear 50 individuos por defecto, asi que lo que tengo en mente es Se dieron cuenta que tenemos 20 ahí y parece que hay solo 1 agente creado, pero hay 27 que están todos ahí pero estan todos unos encima de otros para moverlos entre si tendremos que hacer lo que haremos es decirles a cada uno que avanzaran 10 unidades a posiciones aleatorias y veremos que ahora están dispersos de manera aleatoria Aun así no es completamente lo que queremos, aún parece demasiado ordenado, como artificial, y además aún no nos hemos sacado el agente inicial (del centro) lo que me recuerda que siempre que inicializamos siempre debemos inicializar con la palabra "clear-all" (limpiar todo) cuyo abreviatura es simplemente la palabra "CA" que lo limpa todo y en vez de usar este comando "create" (crear) que es la manera mas fácil de crear una población de agentes vamos a usar algo diferente y este es el modo de pedir por parches (patches) y pedir por un numero específico de parches si tienen suficiente en la población inicial para preguntar cuantos parches se crearán y por supuesto una vez que me decido a quién me refiero, me refiero a parches y porqué les pido que hagan este modo de crear, es como decir: "oigan 12 parches cada uno de ustedes va a contener 1 agente y entonces decirle a ese agente que ponga el color a verde, la forma de circulo que se mueva 10 hacia adelante" ahora no necesitamos este avance de 10 así que veamos si esto funciona nos aseguramos que asigne aleatoriamente los parches cada vez que lo pedimos y aleatoriamente solicite un cierto numero de parches 27 en este caso u 80 en otro caso Ahora voy a poner una población inicial de parches que podemos controlar con esa línea de código Oks, asi que en el próximo paso voy a es pensar "que es lo que queremos hacer con los agentes" y preguntarles a estos parches (agentes) o puntos verdes y que lo que queremos es básicamente hacer y necesitamos es que sean capaces de "morir" y no queremos que tengamos una reproducción que no se "sobreponga" así tener una generación padre que de a luz a otra generación y si otras generaciones padres mueren debemos tener los medios de tener traza de generaciones asi que también vamos a necesitar que se creen dispersas, así no van a terminar todas una encima de la otra y será facil mantener traza de éstas visualmente si necesitamos que estén en su propio parche okay, no necesitamos tener cualquier tipo de crianza posible, pero no queremos hacerlo mas complicado, pero queremos ver como lo podemos hacer vamos a decir que en cada paso en el tiempo se reproducirán vamos a poner "step" para hacer todas las cosas que necesitamos hacer así que esto es de algún modo un pseudocódigo voy a decir que necesitamos reproducir padres necesitan morir y los que queden se deben dispersar así que ya estamos estos van a ser nombres de procedimentos que no he escrito así que este procedimiento en este paso (step) va a llamar a estos procedimientos, entonces pensemos como la reproducción va a trabajar