Estoy trabajando en un modelo en Netlogo y tengo problemas para entender cómo configurar un "experimento". En mi modelo, tengo una matriz que tiene todos los valores que me interesan (6 en total) y la matriz se actualiza cada vez que se cumple una condición (cada vez que se matan X tortugas) básicamente capturando una instantánea de la modelo en ese punto. Los valores anteriores en la matriz se borran, por lo que la matriz es una matriz 1x6, no una matriz 10000x6 con solo una línea que se actualiza para cada instantánea.
Lo que me gustaría hacer es configurar un experimento para ejecutar mi modelo varios cientos de veces, recolectando esta matriz cada vez para el primer número X de instantáneas o hasta que se produzcan los tics Y. ¿Pero no puedo ver una manera de hacerlo en la configuración del experimento?
¿Es esto posible, o tendría que crear 100x6 (100 instantáneas) y luego exportar esa matriz a un CSV de alguna manera?
Nunca he configurado un experimento en Netlogo, por lo que puede ser muy fácil de hacer o simplemente imposible.
Respuestas:
Si entiendo su pregunta correctamente, entonces desea que se reporten 6 valores en tics específicos durante la ejecución. Esos ticks se eligen cumpliendo una condición en lugar de un cierto número de ticks. NetLogo tiene una herramienta de gestión de experimentos llamada BehaviorSpace. Es sencillo configurar sus cientos de ejecuciones (potencialmente con diferentes valores para cualquier entrada en controles deslizantes, etc.). No es tan sencillo emitir solo en ciertos ticks.
El cuadro de diálogo BehaviorSpace tiene una marca de verificación para cada marca o solo al final. Si lo tiene configurado en cada marca, entonces puede exportar sus seis números cada marca automáticamente. En su caso, es probable que sea más fácil hacer eso que intentar y solo generar resultados ocasionalmente. Podría agregar un séptimo reportero que sea verdadero / falso para determinar si la matriz se está restableciendo con esta marca. Entonces, todo lo que tiene que hacer en el procesamiento posterior es seleccionar las líneas donde ese séptimo reportero es verdadero.
Si desea ejecutar el modelo para exactamente N instantáneas, también necesitará configurar una variable global que se incremente en cada punto de instantánea. La configuración de BehaviorSpace usaría ese contador para la condición de detención.
fuente
No estoy seguro de entender su pregunta, pero por lo general tendrá una función de configuración y una función de ejecución, ¿correcto? Así que supongo que la estructura del código a continuación debería ser lo que estás buscando. No he usado netlogo en un tiempo, así que el código exacto de la matriz tendrá que averiguarlo usted mismo.
fuente