4 Taller 4: Buscando Hongos

4.1 Taller 4: Setup

Construiremos de manera incremental un modelo para responder a la siguientes preguntas:

  • ¿Cuanto tiempo demoran un conjunto de agentes recogiendo hongos en un bosque?
  • ¿Mejora el tiempo si los agentes tienen memoria?
  • ¿ y si los agentes pueden compartir la memoria con otros agentes?

La metodología que usaremos será ir construyendo modelos de manera incremental y probarlos paso a paso

Incialmente usaremos dos tipos de agentes en nuestro modelo: buscadores y Hongos:

breed [buscadores buscador]  ; agentes que recojen hongos
breed[hongos hongo]     ; hongos

A los agentes les colocaremos color verde y forma de flecha, a los hongos color blanco y forma de círculo

Configuremos el mundo (setup), colocaremos simplemente buscadores y hongos de manera aleatoria:

to setup
  clear-all
  setup-hongos
  setup-buscadores
  reset-ticks
end
 
to setup-hongos
  ask n-of num-hongos patches
    [
      sprout-hongos 1
      [ set shape "circle"
        set color white
      ]
    ]
end
   
to setup-buscadores
  ask n-of num-buscadores patches
    [
      sprout-buscadores 1
       [
        set shape "arrow"
        set color green
       ]
    ]
end

El setup limpia el mundo inicialmente (clear-all), luego llama dos procedimientos (setup-buscadores y setup-hongos) que se encargaran de colocar los buscadores y hongos en el mundo, finalmente colocamos cronómetros en cero (reset-ticks).

(Nota: El número de buscadores para colocar en el mundo está determinado por el deslizador num-agentes y un número de hongos por el deslizador num-hongos)

Finalmente debemos definir en la interfaz el botón setup y los deslizadores y el modelo queda de la siguiente manera:


Ensaye el modelo varias veces para verificar que funciona correctamente.

4.2 Taller 4: Go

Pasamos ahora a deginir la interacción del modelo (go) inicialmente cada buscador va recorriendo el mundo al azar (wiggle) y cuando encuentre un hongo lo recoje (die), todo esto mientras exitan hongos en el mundo (any? hongos):

to go
  if not any? hongos [stop]
    ask buscadores [ recoja ]
    tick
    end

El procedimiento recoja es el siguiente:

to recoja
  if any? hongos-here
    [ ask hongos-here [die]]
  wiggle
end

to wiggle
 move-to one-of neighbors
end

si el agente encuentra hongos en su parcela los recoje (el hongo “muere”), sino se mueve al azar (wiggle). Esto es todo.

Falta solo definir en la interfaz los botones botón go (continuamente) y el botón step (paso a paso):

Ensaye el modelo varias veces para verificar que funciona correctamente.