BehaviorSpace
Esta guía consta de tres partes:
- ¿Qué es Espacio-Conductual?: Describe la herramienta en términos generales, incluyendo las ideas y principios que la sustentan.
- Cómo funciona: Te guía en el uso de la herramienta y destaca sus funciones más utilizadas.
- Uso avanzado: Te indica cómo usar Espacio-Conductual desde la línea de comando o desde tu propio código de Java.
Se añadieron varias funciones nuevas en NetLogo 6.4:
- Sintaxis de subexperimento: Una sintaxis que permite ejecutar combinaciones de parámetros por separado, en lugar de expandirlos de forma combinatoria.
- Ejecutar indicadores cuando: Permite el uso de un reportero para registrar mediciones de manera condicional.
- Comandos pre-experimento: Se ejecutan antes del inicio del experimento.
- Comandos post-experimento: Se ejecutan cuando finaliza el experimento.
- Resultados estadísticos: La media y la desviación estándar de los datos de simulaciones pueden guardarse en un archivo de resultados.
- Resultados en lista: Los datos se pueden guardar en listas en un archivo, con un elemento de lista por celda.
- Importar y exportar: Los experimentos ahora pueden exportarse a un archivo XML que puede utilizarse al ejecutar en modo sin interfaz (headlessly). También es posible importar experimentos en un modelo.
- Experimentos pausados: Ahora es posible pausar y reanudar los experimentos.
- Opciones de ejecución: actualizar gráficos y monitores: Mejora el rendimiento en mayor medida si no se selecciona.
Más acerca de las modificaciones en Espacio-Conductual en NetLogo 6.4:
- Los experimentos creados en versiones anteriores a la 6.4 aún se pueden abrir, pero los creados con las nuevas funciones no son compatibles con versiones anteriores.
- Para información sobre cambios en archivos de resultados, consult Cambios en Archivos de Resultados.
- El cuadro de diálogo del experimento ahora usa mensajes emergentes debajo de cada elemento de entrada, en lugar de texto; consulta Creación de una configuración de experimentos.
- Experimentos que utilizan las nuevas funciones pueden encontrarse en el modelo Sample Models=>Biology=>Wolf Sheep Predation, con notas adicionales en la pestaña de información.
- Modificaciones menores adicionales pueden encontrarse en esta página, buscando (Desde 6.4).
¿Qué es Espacio-Conductual?
Espacio-Conductual es una herramienta de software integrada con NetLogo que permite realizar experimentos con modelos.
Espacio-Conductual ejecuta un modelo varias veces, variando sistemáticamente la configuración del modelo y registrando los resultados de cada ejecución. A este proceso a veces se le llama “exploración de parámetros”. Permite explorar el “espacio” de posibles comportamientos del modelo y determinar qué combinaciones de configuración provocan los comportamientos de interés.
Si la computadora tiene múltiples núcleos de procesador, puede especificarse cuántas ejecuciones del modelo ocurrirán en paralelo.
¿Por qué Espacio-Conductual?
La necesidad de este tipo de experimento se hace evidente a través de las siguientes observaciones. A menudo, los modelos tienen muchas configuraciones, cada una de las cuales puede tomar un rango de valores. Juntas, forman lo que en matemáticas se llama un “espacio de parámetros” para el modelo, cuyas dimensiones son el número de configuraciones, y en el cual cada punto es una combinación particular de valores. Ejecutar un modelo con diferentes configuraciones (y a veces incluso las mismas) puede llevar a un comportamiento drásticamente diferente en el sistema que se está modelizando. De modo que, ¿cómo saber qué configuración particular de valores, o qué tipos de configuraciones, producirán el tipo de comportamiento que nos interesa? Esto equivale a la pregunta: ¿dónde - en su enorme espacio de parámetros multidimensional- funciona mejor nuestro modelo?
Por ejemplo, supongamos que desea lograrse una sincronización rápida entre los agentes en el modelo Fireflies. El modelo tiene cuatro deslizadores: number, cycle-length, flash-length and flashes-to-reset, con aproximadamente 2000, 100, 10 y 3 valores posibles, respectivamente. Esto significa que, ¡hay 2000 _ 100 _ 10 * 3 = 6,000,000 posibles combinaciones de valores de los deslizadores! Probar combinaciones una por una, no es una forma remotamente eficiente de descubrir cuál provocará la sincronización más rápida.
Espacio-Conductual ofrece una forma mucho mejor de resolver este problema al muestrear el espacio de parámetros del modelo, no de manera exhaustiva, pero lo suficiente como para observar la formación de relaciones entre los diferentes valores de los deslizadores y el comportamiento del sistema. Una forma de hacerlo es especificar un subconjunto de valores dentro de los rangos de cada deslizador. Consulta Sintaxis combinatoria. Espacio-Conductual ejecutará el modelo con cada posible combinación de esos valores y registrará los resultados durante cada ejecución. Desde NetLogo 6.4, es posible especificar conjuntos no combinatorios de valores de los deslizadores. Consulta Sintaxis de subexperimento. Después de que todas las ejecuciones finalizan, se genera un conjunto de datos que se puede abrir en una herramienta diferente, como una hoja de cálculo, una base de datos o una aplicación de visualización científica, y explorarlos.
Al permitir explorar todo el “espacio” de comportamientos que un modelo puede exhibir, Espacio-Conductual puede ser un poderoso asistente para el modelador.
Cómo funciona
Para comenzar a usar Espacio-Conductual, abre el modelo y luego selecciona la opción “Espacio-Conductual” en el menú “Herramientas” de NetLogo.
Gestión de configuración de experimentos
El cuadro de diálogo que se abre permite crear, editar, duplicar, eliminar, importar, exportar y ejecutar configuraciones de experimentos. Los experimentos se enumeran por nombre y el número total de ejecuciones del modelo.
Las configuraciones de experimentos se consideran parte de un modelo de NetLogo y se guardan como componentes del modelo, pero también pueden exportarse como archivos individuales. Consulta Importar y exportar (Desde 6.4).
Para crear una nueva configuración de experimento, presiona el botón “Nuevo”. Para editar una configuración de experimento existente, presiona el botón “Editar”. El mismo cuadro de diálogo se utiliza en ambos casos, lo que difiere es la información que ya está incluida. El cuadro de diálogo no bloquea, lo que resulta útil si se desea copiar algo de la pestaña de “Código” o ver los deslizadores en la pestaña de “Ejecutar” (Desde 6.4).
Creación de una configuración de experimentos
A continuación se detalla la información que se puede incluir en el cuadro de diálogo del experimento. Ten en cuenta que no es necesario especificar todo; algunas partes pueden dejarse en blanco o con sus valores predeterminados. Si el nombre de una propiedad está subrayado, puedes desplazar el cursor sobre él para obtener más información sobre la propiedad y sobre cómo se utiliza, de modo que no tengas que visitar esta página con tanta frecuencia (Desde 6.4).
Nombre del experimento: Los experimentos de un mismo modelo deben tener nombres distintos. Si se abre un modelo que contiene experimentos con nombres duplicados, éstos se modificarán para garantizar que todos los nombres sean únicos (Desde 6.4).
Variar variables de la siguiente manera: En este apartado, se especifican las configuraciones que se desean modificar y los valores que deben tomar. Las variables pueden incluir deslizadores, interruptores, seleccionadores y cualquier variable global en el modelo. Es posible que la vista y los gráficos no coincidan con los valores en los elementos visuales una vez que finaliza el experimento. Esto se debe a que las variables globales controladas por los elementos visuales vuelven a su estado inicial al final del experimento. Para sincronizar la vista y los gráficos con los elementos visuales, se debe ejecutar el procedimiento que inicializa la vista.
También se pueden incluir en las variables max-pxcor, min-pxcor,
max-pycor y min-pycor, world-width,
world-height y random-seed. Estas no son variables, estrictamente
hablando, pero Espacio-Conductual permite variarlas como si así lo fueran.
Variar las dimensiones del mundo, permite explorar el efecto de su tamaño sobre
el modelo. Establecer world-width y world-height es
válido bajo dos circunstancias: 1) Si el origen está centrado en anchura o altura,
Espacio-Conductual lo mantendrá centrado en esa dimensión. Esto requiere que el/los
valor(es) correspondiente(s) de world-width y/o world-height
sea(n) impar(es). 2) Si uno de los límites es cero, se mantendrá en cero y el otro
límite se moverá. Por ejemplo, si se comienza con un mundo donde min-pxcor = 0
y max-pxcor = 10, y se varía world-width
de esta manera:
["world-width" [11 1 14]]
min-pxcor se mantendrá en cero y max-pxcor se
ajustará a 11, 12 y 13 en ejecuciones sucesivas. Si ninguna de estas
condiciones es cierta, no se podrá variar world-height o
world-width directamente, sino que se deberá variar max-pxcor,
max-pycor, min-pxcor y min-pycor
en su lugar.
Variar random-seed permite repetir ejecuciones al usar una semilla conocida para el
generador de números aleatorios de NetLogo. Considera que también se permite usar el comando
random-seed en la configuración de los comandos del experimento. Para más
información sobre semillas aleatorias, consulta la sección
Random Numbers de la Guía de
Programación.
Sintaxis combinatoria
Los valores pueden especificarse ya sea enumerando los que se desean utilizar, o
indicando que se desea probar cada valor dentro de un rango específico. Por ejemplo,
para asignar a un deslizador llamado number cada valor de 100 a 1000, en incrementos de
50, se ingresaría:
["number" [100 50 1000]]
O, para asignar únicamente los valores 100, 200, 400, and 800, se ingresaría:
["number" 100 200 400 800]
Atención con los corchetes. Observa que hay menos corchetes en el segundo ejemplo. La inclusión o no de este conjunto adicional de corchetes, es la forma en que se indica a Espacio-Conductual si se están enumerando valores individuales o se está especificando un rango.
También considera que las comillas en los nombres de las variables son requeridas.
Todas las combinaciones de los valores especificados se ejecutarán. Por ejemplo, si se tienen dos
valores para la variable a y tres valores para la variable b, se obtendrán seis ejecuciones.
[["a" 1 2]
["b" [2 6 10]]
Las seis ejecuciones creadas se organizarán de la siguiente manera:
| a | b |
|---|---|
| 1 | 2 |
| 1 | 6 |
| 1 | 10 |
| 2 | 2 |
| 2 | 6 |
| 2 | 10 |
Casilla de verificación para ejecutar combinaciones en orden secuencial Esta casilla está marcada de forma predeterminada y provoca que las variables especificadas posteriormente varíen más rápido que las especificadas anteriormente. Cuando la casilla está en blanco, se obtiene un orden no secuencial, con las variables especificadas anteriormente variando más rápido que las especificadas posteriormente. El orden no-secuencial para la especificación de variables anterior es:
| a | b |
|---|---|
| 1 | 2 |
| 2 | 2 |
| 1 | 6 |
| 2 | 6 |
| 1 | 10 |
| 2 | 10 |
Sintaxis de subexperimento
(Desde 6.4)
Para usuarios más avanzados, existe una tercera sintaxis disponible
para variar parámetros: la sintaxis de subexperimento. Por ejemplo, si se desea probar dos valores para una variable a
con un valor de una variable b, pero otros dos valores de a para un segundo valor de b,
se puede escribir de la siguiente manera:
[["a" 1 2]["b" 1]]
[["a" 3 4]["b" 2]]
Atención al uso de dobles corchetes anidados para separar cada variable dentro del subexperimento. Esto generará cuatro ejecuciones, organizadas de la siguiente manera:
| a | b |
|---|---|
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
| 4 | 2 |
La sintaxis de subexperimento también permite definir constantes utilizando la sintaxis
estándar. Estas constantes se aplicarán a cada subexperimento, a menos que se sobrescriban.
Siguiendo el ejemplo anterior, si se desea probar esas combinaciones de a y b
con un valor específico para una tercera variable c, se puede escribir de la siguiente manera:
["c" 5]
[["a" 1 2]["b" 1]]
[["a" 3 4]["b" 2]]
Esto fijaría el valor de c en 5 para los 4 subexperimentos, lo que resultaría en las siguientes ejecuciones:
| a | b | c |
|---|---|---|
| 1 | 1 | 5 |
| 2 | 1 | 5 |
| 3 | 2 | 5 |
| 4 | 2 | 5 |
También se puede sobreescribir una constante en un subexperimento, como se muestra en el siguiente ejemplo:
["a" 1]
["b" 2]
[["a" 2]]
Esto generaría una ejecución con la siguiente combinación:
| a | b |
|---|---|
| 2 | 2 |
Ten en cuenta que todos los valores constantes deben definirse antes de cualquier subexperimento.
Se pueden variar tantas configuraciones como se desee, incluyendo solo una o ninguna. Cualquier configuración que no varíe mantendrá su valor actual. No variar ninguna configuración es útil si simplemente desea ejecutarse el modelo con las configuraciones actuales.
El orden en que se enumeran las variables determina el orden de las ejecuciones.
Se probarán todos los valores de una variable posterior antes de pasar al siguiente valor
de una variable anterior. Por ejemplo, si se varía tanto x como y de 1 a 3, y x
se enumera primero, entonces el orden de las ejecuciones del modelo será: x=1 y=1, x=1 y=2,
x=1 y=3, x=2 y=1, y así sucesivamente.
Repeticiones: A veces, el comportamiento de un modelo puede variar mucho de una ejecución a otra - incluso si las configuraciones no cambian-, si el modelo utiliza números aleatorios. Si deseas ejecutar el modelo más de una vez en cada combinación de configuraciones, ingresa un número mayor. Con repeticiones en un orden secuencial, las repeticiones ocurren en ejecuciones secuenciales:
| a | b |
|---|---|
| 1 | 2 |
| 1 | 2 |
| 2 | 2 |
| 2 | 2 |
| 1 | 6 |
| 1 | 6 |
| 2 | 6 |
| 2 | 6 |
| 1 | 10 |
| 1 | 10 |
| 2 | 10 |
| 2 | 10 |
Con repeticiones en un orden no-secuencial, las repeticiones se realizan como un segundo grupo de ejecuciones:
| a | b |
|---|---|
| 1 | 2 |
| 2 | 2 |
| 1 | 6 |
| 2 | 6 |
| 1 | 10 |
| 2 | 10 |
| 1 | 2 |
| 2 | 2 |
| 1 | 6 |
| 2 | 6 |
| 1 | 10 |
| 2 | 10 |
Evaluar las ejecuciones utilizando estos reporteros: Aquí se especifica qué datos recopilar de cada ejecución. Por ejemplo, para registrar cómo la población de las tortugas aumentó y disminuyó durante cada ejecución, se incluiría:
count turtles
Se puede ingresar un reportero, varios o ninguno. Si se ingresan varios, cada reportero debe estar en una línea diferente, por ejemplo:
count frogs>count mice>count birds
Si no se ingresan reporteros, las ejecuciones aún se llevarán a cabo. Esto es útil
si deseas registrar los resultados a tu propia manera, como con el comando
export-world. Se pueden usar los reporteros que hayan sido definidos
en la pestaña “Código”. Los reporteros aparecerán como encabezados de columna.
Si se prefieren encabezados más compactos, se puede reemplazar count patches with [ pcolor = red ]
con un reportero red-patches definido en la pestaña “Código”
Ejecutar indicadores a cada paso: Normalmente, NetLogo evaluará las ejecuciones del modelo a cada paso, utilizando los reporteros ingresados en el cuadro previo. Si se está realizando una ejecución de modelo muy larga, es posible que no se deseen todos los datos. Si se desea evaluar el modelo solo al final de la ejecución, o si se desea especificar ciertas condiciones que indiquen cuándo evaluar el modelo, se debe dejar la casilla en blanco.
Ejecutar indicadores cuando
(Desde 6.4)
Este reportero se utilizará para determinar cuándo se deben registrar datos, si no se está evaluando a cada paso. Los datos siempre se obtendrán al final de cada ejecución del modelo, aún si este cuadro de texto está vacío, como sucedía cuando Evaluar ejecuciones a cada paso (ahora Ejecutar indicadores a cada paso) se dejaba en blanco. Por ejemplo ticks mod 10 = 0 registrará datos tanto en cada décimo tick, como en el último tick. Se pueden combinar múltiples reporteros usando and y or.
Comandos pre-experimento
Estos comandos se ejecutarán una vez, antes de que inicie el experimento.
Instrucciones de configuración inicial: Estos comandos se utilizarán para
iniciar cada ejecución del modelo. Por lo general, se ingresa el nombre de un
procedimiento que configure el modelo, como setup. Sin embargo, también es
posible incluir otros comandos. Si se desea obtener los mismos resultados cada
vez que se ejecuta un experimento, se puede utilizar algo como random-seed 473 setup.
Para obtener resultados diferentes en repeticiones, se puedes usar
random-seed (474 + behaviorspace-run-number) setup
Comandos go: Estos comandos se ejecutarán una y otra vez para avanzar el modelo
al siguiente ‘paso’. Por lo general, esto será el nombre de un procedimiento, como go,
pero se pueden incluir los comandos que se deseen.
Condición de finalización: Esto permite realizar ejecuciones del modelo de diferentes duraciones, finalizando cada una cuando se cumple una cierta condición. Por ejemplo, supongamos que se desea que cada ejecución dure hasta que ya no queden tortugas. En ese caso, se ingresaría:
not any? turtles
Si se desea que todas las ejecuciones tengan una duración fija, simplemente se deja en blanco.
La ejecución también puede detenerse debido a que los comandos go utilizan el comando stop
de la misma manera que stop se usa para detener un botón “Continuo”. El comando stop
puede usarse directamente en los comandos go o en un procedimiento llamado directamente por los
comandos go. (La intención es que el mismo procedimiento go funcione tanto en un botón como
en un experimento de Espacio-Conductual). Ten en cuenta que el paso en el que se utiliza stop
se considera como si hubiera sido interrumpido, por lo que no se registrarán resultados para ese paso.
Por lo tanto, la prueba de detención debería estar al principio de los comandos go,
o del procedimiento, no al final.
Comandos post-ejecución: Estos son cualquier comando adicional que se quiera ejecutar
cuando finaliza la ejecución. Generalmente se deja en blanco, pero pudiera usarse para llamar
al comando export-world o para registrar los resultados de la ejecución de
alguna otra manera.
Comandos post-experimento
Estos son cualquier comando adicional que se quiera ejecutar cuando finaliza el experimento, una vez que todas las ejecuciones han finalizado.
Límite de tiempo: Esto permite establecer una longitud fija máxima para cada ejecución. Cuando no se desea establecer un máximo, sino que se prefiere que la longitud de las ejecuciones esté controlada por la condición de detención, se ingresa 0.
Nota sobre comandos pre y post-experimento: Estos comandos se ejecutan fuera de las ejecuciones reales, por lo que no pueden afectar a las variables globales o a los agentes en el modelo (para eso se utilizan los comandos de configuración inicial y los comandos post-ejecución). Si se utilizan primitivas como file-open o la extensión CSV en los comandos previos o posteriores al experimento, su estado interno no se transferirá a las ejecuciones y es probable que ocurran errores si se utilizan ahí.
Importar y exportar
(Desde 6.4)
Aunque los experimentos están vinculados a un modelo y generalmente se guardan junto con el modelo, también se pueden importar y exportar de forma individual a archivos XML. Esto permite transferir fácilmente experimentos entre modelos y prepararlos para ejecuciones en modo sin interfaz. Después de exportar un experimento a un archivo XML, es posible editarlo manualmente o mediante otro script, no solo dentro de NetLogo.
El botón Importar permite importar experimentos desde un archivo XML. Los archivos seleccionados pueden contener múltiples experimentos, pero aquellos que no cumplan con el formato correcto no se cargarán. Si se importa un experimento que comparta el nombre con otro experimento existente, el nombre del experimento importado será ligeramente modificado para garantizar que los nombres sean únicos.
El botón Exportar permite exportar experimentos a un archivo XML. Se pueden seleccionar múltiples experimentos para ser exportados en una sola instancia, pero serán combinados en un único archivo de resultados.
Primitivas especiales para experimentos en Espacio-Conductual
Actualmente, sólo existen dos variables, behaviorspace-run-number y
behaviorspace-experiment-name. El número de ejecución reportado por la primera
primitiva coincide con el número de ejecución usado en los archivos de resultados
generados por Espacio-Conductual. El nombre del experimento reportado por la segunda
primitiva coincide con el nombre con el que se configuró el experimento.
Ejecutar un experimento
Cuando se completa la configuración de un experimento, se presiona el botón “OK”, y enseguida el botón “Ejecutar”. Aparecerá un cuadro de diálogo llamado “Opciones de ejecución”.
Opciones de ejecución: formatos
El cuadro de diálogo “Opciones de ejecución” permite la elección de archivos de resultados en dos formatos principales: Resultados tabulados y Resultados en hoja de cálculo. Si se elige uno o ambos formatos, también se pueden seleccionar los formatos adicionales Resultados en lista y Resultados estadísticos. Cada ruta de archivo puede ingresarse en su cuadro de texto correspondiente, o con el botón Examinar… a través del cuadro de diálogo del sistema de archivos. Si no se desea utilizar un formato en particular, se puede dejar en blanco el cuadro de texto del archivo, o hacer clic en el botón Desactivar y se limpiará automáticamente. La frecuencia de recopilación de datos se determina mediante la configuración de las opciones de Ejecutar indicadores a cada paso y Ejecutar indicadores cuando. Para los formatos de Resultados tabulados y Resultados en hoja de cálculo, se registra el estado inicial del sistema después de ejecutar el comando setup (o configuración inicial) pero antes de ejecutar el comando go por primera vez.
Después de seleccionar los formatos de resultados, Espacio-Conductual solicitará el nombre del archivo en el que se desea guardar los resultados. El nombre predeterminado termina en “.csv”. Se puede cambiar por el nombre que se prefiera, pero hay qué asegurarse de no omitir la parte “.csv”, ya que indica que el archivo es un archivo de valores separados por comas (CSV). Este es un formato de datos en texto plano que puede leerse con cualquier editor de texto, así como con la mayoría de los programas populares de hojas de cálculo y bases de datos.
Los cuatro formatos de resultados incluirán una sección de encabezado que contendrá filas para: 1) la versión de NetLogo utilizada, 2) el nombre del archivo del modelo de NetLogo utilizado, 3) el nombre del experimento de Espacio-Conductual utilizado, 4) la fecha y hora de inicio, y 5) las dimensiones iniciales del mundo.
Resultados tabulados
Este formato lista cada paso de medición de cada ejecución en su propia fila, con cada indicador en una
columna separada. Las filas de medición aparecerán en el orden en que ocurren en el tiempo real. Con la
opción de ejecuciones en paralelo las mediciones pueden aparecer en un orden mixto, ya que varias ejecuciones
pueden ocurrir simultáneamente. Para ayudar a identificar a qué ejecución pertenece una fila, hay una columna
titulada [run number] junto con una columna titulada [step] que indica el número de medición de esa ejecución.
Cada fila también incluye los valores utilizados para las variables durante la configuración inicial de la
ejecución; estos valores son los mismos para cada una de las filas de medición de esa ejecución. Los datos de
Resultados tabulados se escriben en el archivo a medida que cada ejecución se completa.
El formato de Resultados tabulados es útil si se desea procesar los datos con otra herramienta, como importarlos a una base de datos, un paquete estadístico o una aplicación de hoja de cálculo para su análisis.
En la siguiente imagen de muestra de Resultados tabulados, la sección de encabezado (header) está resaltada en rojo, las
columnas de número de ejecución ([run number]]) y paso ([step]) se resaltan en azul, los valores iniciales de las
variables para la ejecución se muestran en verde y los datos de indicadores de medición se muestran en morado.

Resultados en hoja de cálculo
Este formato lista los números de paso, así como cada indicador de cada ejecución en una columna separada,
con cada fila correspondiente a un paso de medición, aplicable a todas las ejecuciones. Si una ejecución
termina antes que otra debido a una condición de finalización, entonces sus números de paso después de
ese punto estarán en blanco. En la parte superior del archivo hay una fila [run number] que tendrá el
número de ejecución, repetido para cada indicador. Enseguida, se incluyen filas para los valores
iniciales dados a cada variable para la ejecución. Los resultados en hoja de cálculo también calculan los valores
mínimo, promedio, máximo y final para los números de paso y para cada indicador, y los lista después de los valores
iniciales, y antes de las mediciones individuales de cada ejecución. Luego, se indica el número real de
pasos completados durante la ejecución, en la fila [total steps].
Los datos de Resultados en hoja de cálculo simplifican la comparación entre las ejecuciones, ya que se alinean verticalmente al importarlos a una aplicación de hoja de cálculo. Además, esta alineación facilita la creación de gráficos comparativos de los resultados, con cambios en las variables iniciales en diferentes ejecuciones.
Es importante destacar que los datos no se escriben en los Resultados en hoja de cálculo hasta que finaliza el experimento. Dado que estos datos se almacenan en la memoria hasta que se completa el experimento, es posible que experimentos muy extensos agoten la memoria disponible. Se recomienda desactivar Resultados en hoja de cálculo a menos que sea absolutamente necesario. Además, si el experimento se interrumpe por cualquier motivo, no se registrará ningún resultado. Las posibles fuentes de interrupciones pueden incluir: errores en tiempo de ejecución en el modelo, agotamiento de recursos de memoria, fallos del sistema o cortes de energía. Para experimentos prolongados, se recomienda habilitar el formato Resultados tabulados como medida de precaución, en caso de que ocurra un problema y no se obtengan Resultados en hoja de cálculo; así al menos se conservarán los datos parciales.
En la siguiente imagen de muestra de Resultados en hoja de cálculo, la sección de encabezado está resaltada en rojo,
las columnas de número de ejecución ([run number]) se resaltan en azul, los valores iniciales de las variables se
muestran en verde,
los indicadores adicionales calculados se muestran en anaranjado, y los datos de medición de indicadores se encuentran
en morado.

Resultados estadísticos
(Desde 6.4)
Si se habilita la opción de Resultados estadísticos, los datos obtenidos, ya sea en Resultados tabulados, o bien en Resultados en hoja de cálculo, se utilizan para calcular la media y la desviación estándar de cada indicador numérico a lo largo de las repeticiones de cada paso. Estos cálculos se realizan al final del experimento y los resultados estadísticos se guardan en el archivo especificado. Es importante destacar que los indicadores que pueden generar mediciones no numéricas, como cadenas de texto, no se incluyen en las estadísticas. Si los indicadores generan listas, los cálculos estadísticos se realizan para los elementos con el mismo índice en cada lista. Las estadísticas no se calculan para indicadores que generan listas que contienen elementos no numéricos. Además, el tipo de medición debe mantenerse constante. Por ejemplo, no se calcularán estadísticas si un indicador genera mediciones que pueden ser tanto listas como números. Es importante tener en cuenta que la desviación estándar puede ser “N/A”, lo que significa que se recopilaron dos o menos mediciones para esa combinación de paso y parámetro, lo que produce un resultado no bien definido. El experimento debe utilizar una configuración de repeticiones de 3 o más para obtener valores de desviación estándar.
En la siguiente imagen de muestra de Resultados estadísticos, la sección de encabezado está resaltada en rojo,
las combinaciones de parámetros en verde, las columnas de número de paso ([step]) en azul, y los datos estadísticos
morado.

Resultados en lista
(Desde 6.4)
Este formato es un complemento de los otros dos formatos principales, en lugar de ser un formato completo de recopilación de datos. Si existen reporteros que retornan una lista, el formato Resultados en lista puede ser empleado para obtener resultados con formato adecuado para esos reporteros. Tanto en los formatos Resultados en hoja de cálculo como en Resultados tabulados, las listas generadas por los reporteros serán comprimidas en una sola celda, en lugar de desplegar sus elementos en celdas separadas con un valor por celda. Si los valores de la lista se requieren en celdas ndividuales, se selecciona el formato Resultados en lista junto con uno o ambos de los otros formatos.
Es importante destacar que el formato Resultados en lista, al igual que el formato Resultados en hoja de cálculo, no contendrá datos hasta que el experimento esté completo. También es importante tener en cuenta que el formato Resultados en lista debe utilizarse en conjunto con otro formato, no puede usarse de manera independiente.
En la siguiente imagen de muestra de Resultados en lista, la sección de encabezado está resaltada en rojo,
el nombre del reportero en anaranjado, las columnas de número de ejecución ([run number]) y de número de paso
([step])
en azul, los valores iniciales de las variables en verde, y la lista expandida de datos en morado.

Cambios en archivos de resultados
(Desde 6.4)
- Los archivos de resultados tienen números de versión.
- Los resultados en hoja de cálculo siempre incluyen información sobre los pasos.
- El encabezado de columna
[initial & final values]en los resultados en hoja de cálculo se cambió por el más preciso[final value]. - Se añadió Resultados estadísticos.
- Se añadió Resultados en lista.
Opciones de ejecución: actualizar gráficos y monitores
El cuadro de diálogo “Opciones de ejecución” ofrece la opción de actualizar o no los gráficos y monitores. El
rendimiento mejora si se deja en blanco. Es importante destacar que (Desde 6.4), si se comienza el experimento
con la casilla en blanco, no se podrá alternar entre activar o desactivar esta casilla de verificación en el cuadro
de diálogo “Ejecutando experimento”. Esto proporciona una mejora de rendimiento aún mayor que la obtenida antes
de NetLogo 6.4, cuando dicha alternancia era posible. Selecciona la casilla si es necesario exportar datos de
gráficos mediante primitivas como: export-interface (guarda la interfaz completa en un archivo PNG),
export-plot (guarda datos de gráficos en un archivo), export-all-plots (guarda
todos los gráficos en un archivo), y export-world (guarda todo el estado del modelo en un archivo).
Opciones de ejecución: ejecuciones en paralelo
El cuadro de diálogo “Opciones de ejecución” también permite seleccionar si se desean ejecuciones múltiples del modelo en paralelo y, en tal caso, cuántas pueden estar activas simultáneamente. Tanto el número predeterminado como el máximo recomendado de ejecuciones en paralelo se indican debajo del cuadro de texto (Desde 6.4). La elección de la cantidad de ejecuciones en paralelo se mantiene de un experimento a otro (Desde 6.4).
Es importante considerar algunas precauciones con las ejecuciones en paralelo.
Primera: si hay múltiples ejecuciones activas, solo una de ellas estará en el “primer plano” y generará la actualización de la vista y los gráficos. Las demás ejecuciones ocurrirán en segundo plano de manera invisible.
Segunda: las ejecuciones en segundo plano invisibles no pueden utilizar primitivas que solo funcionan en la interfaz gráfica (GUI). Por ejemplo, una ejecución en segundo plano no puede crear una película.
Tercera: dado que las ejecuciones en paralelo avanzan de forma independiente, el formato Resultados tabulados puede
contener datos entrelazados y fuera de orden. Al analizar los datos de la tabla, se recomienda ordenarlos por número de
ejecución. (El formato Resultados en hoja de cálculo no se ve afectado por esto, puesto que se escribe hasta que el
experimento se completa o se interrumpe).
Cuarta: el uso de todos los núcleos del procesador disponibles puede hacer que la computadora sea lenta para otras tareas mientras se ejecuta el experimento, o que las ejecuciones sean lentas ya que se produce una competencia por la memoria entre las propias ejecuciones. Si el modelo utiliza una gran cantidad de memoria, es posible que reducir el número de ejecuciones permita que estas se completen en menos tiempo, ya que el sistema puede mantener disponible la memoria para cada ejecución. Un buen punto de partida podría ser el valor predeterminado que se muestra en “Opciones de ejecución”, y a partir de ahí, ajustar hacia arriba o hacia abajo para encontrar el punto óptimo en términos de tiempo, para completar todas las ejecuciones.
Quinta: realizar ejecuciones en paralelo aumentará significativamente los requerimientos de memoria del experimento. Puede ser necesario ajustar el límite de memoria de NetLogo (consultar this FAQ entry). Por defecto, NetLogo no utilizará más del 50% de la memoria del sistema.
Sexta: cada ejecución en paralelo tiene su propio mundo en el que se ejecuta el modelo. Este mundo no se borra automáticamente
por Espacio-Conductual si una ejecución en paralelo se reutiliza para otra repetición, lo que ocurre con bastante frecuencia. Esto
significa, por ejemplo, que si se ejecuta ask patches [ set pcolor red ] en una ejecución y no se utiliza clear-all o clear-patches
en los comandos de configuración de la siguiente ejecución, entonces las parcelas seguirán siendo rojas. En general, usar clear-all
antes de cada ejecución sería una buena práctica, pero hay momentos en los que no es necesario, como cuando se cargan datos desde
un archivo que no cambia de ejecución en ejecución. En otras palabras, es importante tener cuidado con los datos que no se borran.
Séptima: hay una posibilidad extremadamente pequeña de que, al iniciar múltiples ejecuciones en paralelo al mismo tiempo,
éstas puedan terminar con el mismo estado del generador de números aleatorios. Esto significaría que las ejecuciones producirían
resultados idénticos en todas las operaciones aleatorias y, probablemente, resultados iguales en general. Esto podría ocurrir al
ejecutar en procesadores muy rápidos y con muchas ejecuciones en paralelo al mismo tiempo. Si se desea garantizar que esto no afecte
los resultados, puede agregarse el comando random-seed new-seed a los comandos de configuración para generar una nueva semilla
aleatoria única en cada ejecución. De hecho, guardar new-seed como una variable global permitiría volver a ejecutar una ejecución
en otro momento, utilizando ese valor para establecer random-seed manualmente.
Observación de ejecuciones
Después de configurar las “Opciones de ejecución”, aparecerá otro cuadro de diálogo llamado “Ejecutando experimento”. En este cuadro, se presenta un informe de progreso que indica cuántas ejecuciones se han completado hasta el momento y el tiempo transcurrido. Si se han definido reporteros para medir las ejecuciones y se ha seleccionado la casilla “Ejecutar indicadores a cada paso”, se mostrará un gráfico que representa la variación de los mismos, a lo largo de cada ejecución.
También es posible observar las ejecuciones en la ventana principal de NetLogo. Si el cuadro de diálogo “Ejecutando experimento” obstaculiza la vista, simplemente se puede mover a otra ubicación en la pantalla. Si no es necesario visualizar las actualizaciones de los gráficos, puede desactivarse esta función utilizando las casillas de verificación en el cuadro de diálogo “Ejecutando experimento”. Esto acelerará el experimento. Sin embargo, si ya ha se desactivado la actualización de gráficos y monitores en el cuadro de diálogo “Opciones de ejecución”, esta casilla permanecerá deshabilitada (Desde 6.4).
Si se quiere detener un experimento antes de que haya finalizado, existen dos opciones. Para detenerlo después de que las ejecuciones actuales hayan concluido y guardar el progreso para más tarde, se presiona el botón “Pausar” (Desde 6.4). Para detener el experimento de inmediato, sin esperar a que las ejecuciones actuales se completen, se presiona el botón “Interrumpir”. Cualquier resultado generado hasta ese momento se guardará, pero ten en cuenta que presionar “Interrumpir” puede generar datos fragmentados, por lo que los experimentos interrumpidos no pueden reanudarse.
Cuando todas las ejecuciones se han completado, el experimento finaliza. En este punto se generarán los formatos de Resultados en hoja de cálculo, en lista y estadísticos.
Experimentos pausados
(Desde 6.4)
Los experimentos pausados en la ventana de Espacio-Conductual, aparecerán con la leyenda “En progreso”. Para reanudar un experimento desde el punto donde se pausó, selecciónalo y presiona el botón “Ejecutar”. Para restablecer un experimento pausado a su estado inicial, selecciónalo y presiona el botón “Interrumpir”.
Si se está utilizando la opción de “Resultados en hoja de cálculo”, se escribirá un archivo que contendrá
los datos generados hasta el momento en que el experimento se pausa. Estos datos se utilizarán como parte de la
creación de un archivo completo de hoja de cálculo. Es importante tener en cuenta que si el experimento
está escribiendo en su propio archivo externo, es posible que se requieran algunos cambios para que la pausa
funcione correctamente. Por ejemplo, se debe utilizar file-flush o file-close al final de cada ejecución
para asegurarse de que todos los datos se escriban en el archivo. Además, se debe utilizar file-open antes
de realizar cualquier escritura durante una ejecución. Al abrir un archivo en modo de escritura, todos los
nuevos datos se agregarán al final del archivo original, lo cual probablemente es el comportamiento deseado.
Es importante tener en cuenta que mover o eliminar archivos de resultados antes de reanudar un experimento pausado, provocará un error. Así también, si se generan nuevos datos en un archivo asociado con un experimento pausado, también podría causar un error al reanudar dicho experimento.
Uso avanzado
Ejecutar desde la línea de comando
Es posible ejecutar experimentos de Espacio-Conductual desde la línea de comandos, sin ninguna interfaz gráfica de usuario (“headless”). Esto resulta útil para automatizar ejecuciones en una sola máquina o en un conjunto de máquinas.
No se requiere programación en Java. Las configuraciones de experimentos pueden crearse en la GUI y luego ejecutarse posteriormente desde la línea de comandos, o, si se prefiere, se pueden crear o editar configuraciones de experimentos directamente utilizando XML.
Cómo se usa
Se ejecuta NetLogo usando la aplicación NetLogo_Console con el argumento de línea de comandos --headless
Ésta se encuentra en el directorio principal de la instalación de NetLogo. El script NetLogo_Console es
compatible con los siguientes argumentos:
--headless: activa el modo sin interfaz para ejecutar un experimento de Espacio-Conductual (obligatorio, de lo contrario se abrirá la interfaz gráfica).--model <ruta>: ruta de archivo del modelo a abrir (obligatorio).--setup-file <ruta>: lee las configuraciones de experimentos desde este archivo en lugar del archivo del modelo.--experiment <nombre>: nombre del experimento a ejecutarse.--table <ruta>: ruta para enviar resultados tabulados (o-para resultados estándar).--spreadsheet <ruta>: ruta para enviar resultados en hoja de cálculo (o-para resultados estándar)--lists <ruta>: ruta para enviar resultados en lista (o-para resultados estándar), no puede utilizarse sin--tableo--spreadsheet.--stats <ruta>: ruta para enviar resultados estadísticos (o-para resultados estándar), no puede utilizarse sin--tableo--spreadsheet--threads <número>: utiliza esta cantidad de hilos para realizar ejecuciones de modelo en paralelo, o 1 para desactivar ejecuciones en paralelo. El valor predeterminadao esfloor(0.75 * <number of processors>).--update-plots: habilita las actualizaciones de gráficos. Se incluye si se desea exportar datos de gráficos o se excluye para mejorar el rendimiento.--min-pxcor <número>: reemplaza la configuración de tamaño del mundo en el archivo del modelo.--max-pxcor <número>: reemplaza la configuración de tamaño del mundo en el archivo del modelo.--min-pycor <número>: reemplaza la configuración de tamaño del mundo en el archivo del modelo.--max-pycor <número>: reemplaza la configuración de tamaño del mundo en el archivo del modelo.
--model es obligatorio. Si no se especifica --experiment, se debe especificar
--setup-file. Por defecto, no se generan resultados, por lo que generalmente se deberá
especificar --table o --spreadsheet, o ambos. Si se especifica alguna de las dimensiones
del mundo, se deben proporcionar las cuatro.
Es importante tener en cuenta que antes de NetLogo 6.3.0, las indicaciones recomendaban el uso de
netlogo-headless.sh (o netlogo-headless.bat en Windows) junto con una instalación independiente de Java
en el sistema para llevar a cabo experimentos de Espacio-Conductual. El script netlogo-headless.sh aún se
incluye en NetLogo y puede seguir utilizándose como antes, lo que puede ser preferible en entornos de servidor,
donde la versión de Java instalada está estrictamente controlada. Sin embargo, en una computadora personal, el
método recomendado es utilizar la aplicación NetLogo_Console --headless. Dado que NetLogo_Console emplea la
versión de Java que se incluye con NetLogo, no es necesario realizar una instalación adicional de software ni
configuraciones especiales.
Ejemplos
Resulta más conveniente crear previamente la configuración de un experimento en la interfaz gráfica,
de modo que quede guardada como parte del modelo. Para ejecutar una configuración de experimento que
se haya guardado en un modelo, se presenta un ejemplo de línea de comandos que debe ejecutarse
desde la carpeta de instalación de NetLogo 7.0.1, de modo que las rutas a la aplicación
NetLogo_Console y al modelo Wolf Sheep Simple 5.nlogo sean correctas.
Las siguientes instrucciones deberían funcionar tal cual en una terminal en macOS y Linux. En Windows,
en el símbolo del sistema, puede usarse ^ en lugar de \ para dividir el comando en varias líneas
o simplemente colocar el comando en una sola línea.
./NetLogo_Console --headless \
--model "models/IABM Textbook/chapter 4/Wolf Sheep Simple 5.nlogo" \
--experiment "Wolf Sheep Simple model analysis" \
--table -
Después de que el experimento nombrado se haya ejecutado, los resultados se envían tabulados en
formato estándar, como CSV. El guión - es la forma de especificar el formato estándar en lugar
de un archivo de resultados.
Al ejecutar NetLogo en modo sin interfaz, se establece la propiedad de sistema java.awt.headless
como verdadera. Esto indica a Java que funcione en modo sin interfaz gráfica, permitiéndo que NetLogo
se ejecute en máquinas donde no se dispone de una pantalla gráfica.
El argumento obligatorio --model se utiliza para especificar el archivo del modelo que se desea
abrir.
El argumento --experiment se utiliza para indicar el nombre del experimento que se desea
ejecutar. (En el momento en que se crea una configuración de experimento en la GUI, se le asigna un
nombre).
A continuación, se presenta otro ejemplo que muestra algunos argumentos adicionales, opcionales:
./NetLogo_Console --headless \
--model "models/IABM Textbook/chapter 4/Wolf Sheep Simple 5.nlogo" \
--experiment "Wolf Sheep Simple model analysis" \
--max-pxcor 5 \
--min-pxcor -5 \
--max-pycor 5 \
--min-pycor -5
Observa el uso de los argumentos opcionales --max-pxcor, --max-pycor, etc., para
especificar un tamaño de mundo diferente al que está guardado en el modelo. (También es
posible que la configuración del experimento especifique valores para las dimensiones
del mundo; si se especifican en la configuración del experimento, no es necesario indicarlos
en la línea de comandos).
Ya que no se especifica ni --table ni --spreadsheet, no se generarán resultados.
Esto es útil si la configuración del experimento genera todos los resultados necesarios
de alguna otra manera, como exportar archivos del mundo o escribir en un archivo
de texto.
Otro ejemplo adicional:
./NetLogo_Console --headless \
--model "models/IABM Textbook/chapter 4/Wolf Sheep Simple 5.nlogo" \
--experiment "Wolf Sheep Simple model analysis" \
--table wsp5-table-output.csv \
--spreadsheet wsp5-spreadsheet-output.csv \
--lists wsp5-lists-output.csv \
--stats wsp5-stats-output.csv
El argumento opcional --table <nombre de archivo> indica la geneneración de archivos con
formato Resultados tabulados, que se escriben en el archivo especificado como datos CSV. Si se
indica - como nombre de archivo, los archivos de resultados se generan con formato estándar.
Los datos de la tabla se escriben a medida que se generan, cuando se completa cada ejecución.
El argumento opcional --spreadsheet <nombre de archivo> indica la generación de archivos
con formato Resultados en hoja de cálculo, que se escriben en el archivo especificado como datos CSV.
Si se indica - como nombre de archivo, los archivos de resultados se generan con formato
estándar. Los datos de la hoja de cálculo se escriben una vez que finalizan todas las ejecuciones
del experimento.
El argumento opcional --lists <nombre de archivo> indica la generación de archivos
con formato Resultados en lista, que se escriben en el archivo especificado como datos CSV.
Si se indica - como nombre de archivo, los archivos de resultados se generan con formato
estándar. Los datos de la lista se escriben una vez que finalizan todas las ejecuciones
del experimento.
El argumento opcional --stats <nombre de archivo> indica la generación de archivos
con formato Resultados estadísticos, que se escriben en el archivo especificado como datos CSV.
Si se indica - como nombre de archivo, los archivos de resultados se generan con formato
estándar. Los datos estadísticos se escriben una vez que finalizan todas las ejecuciones
del experimento.
Ten en cuenta que es válido indicar tanto --table como --spreadsheet, y de ser así,
se generarán ambos tipos de archivos de resultados. Si se utiliza --lists o --stats,
al menos una de las opciones --table o --spreadsheet debe ser utilizada.
Enseguida se muestra un ejemplo que muestra cómo ejecutar una configuración de experimento
almacenada en un archivo XML separado, en lugar de en el archivo del modelo (consulta más
abajo para obtener información adicional sobre el formato del archivo XML). Esto asume que
se ha creado un archivo my-wsp-setups.xml con un experimento “My WSP Exploration” y se ha
colocado en el directorio de inicio. La forma más sencilla de crear un archivo de configuración
es crear un experimento utilizando Espacio-Conductual en la interfaz gráfica de NetLogo y utilizar
la opción “Exportar”.
./NetLogo_Console --headless \
--model "models/IABM Textbook/chapter 4/Wolf Sheep Simple 5.nlogo" \
--setup-file ~/my-wsp-setups.xml \
--experiment "My WSP Exploration"
Si el archivo XML contiene más de una configuración de experimento, es necesario utilizar
el argumento --experiment para especificar el nombre de la configuración que se utilizará.
Para ejecutar un experimento NetLogo 3D en modo sin interfaz, utiliza el argumento --3D,
por ejemplo:
./NetLogo_Console --headless \
--3D \
--model "models/3D/Sample Models/GasLab/GasLab Free Gas 3D.nlogo3d" \
--experiment "100 runs" \
--table -
Ten en cuenta que se debe proporcionar un modelo 3D, y también que hay argumentos para modelos 3D.
--max-pzcor <número> and --min-pzcor <número>.
La próxima sección contiene información sobre cómo crear archivos de configuración de experimento en modo autónomo, utilizando XML.
Configuración de experimentos en XML
Aún no contamos con documentación detallada sobre cómo crear configuraciones de experimentos en XML. Sin embargo, si se tiene familiaridad con XML, los siguientes consejos pueden ayudar a comenzar.
La estructura de las configuraciones de experimentos de Espacio-Conductual en XML se
define mediante un archivo de Definición de Tipo de Documento (DTD). El DTD se
encuentra en NetLogo.jar como system/behaviorspace.dtd. (Los archivos JAR son
también archivos ZIP, por lo que puede extraerse el DTD del JAR utilizando la
utilidad “jar” de Java o cualquier programa que gestione el formato ZIP).
La forma más sencilla de aprender cómo se ven las configuraciones en XML, es crear
algunas en la interfaz gráfica de Espacio-Conductual, guardar el modelo, exportarlas
(Desde 6.4), y luego examinar el o los archivos .xml resultantes en un editor de texto.
También puedes encontrar las configuraciones de experimentos al final del archivo
.nlogo, en una sección que comienza y termina con la etiqueta experiments. Por ejemplo:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE experiments SYSTEM "behaviorspace.dtd">
<experiments>
<experiment name="My WSP Exploration" repetitions="5" runMetricsEveryStep="false">
<setup>setup</setup>
<go>go</go>
<timeLimit steps="2000"/>
<metric>count wolves</metric>
<metric>count sheep</metric>
<metric>sum [grass-amount] of patches</metric>
<enumeratedValueSet variable="energy-gain-from-grass">
<value value="2"/>
</enumeratedValueSet>
<steppedValueSet variable="number-of-wolves" first="5" step="1" last="15"/>
<enumeratedValueSet variable="movement-cost">
<value value="0.5"/>
</enumeratedValueSet>
<enumeratedValueSet variable="energy-gain-from-sheep">
<value value="5"/>
</enumeratedValueSet>
<enumeratedValueSet variable="number-of-sheep">
<value value="500"/>
</enumeratedValueSet>
<enumeratedValueSet variable="grass-regrowth-rate">
<value value="0.3"/>
</enumeratedValueSet>
</experiment>
</experiments>
En este ejemplo, se muestra solo una configuración de experimento, pero pueden incluirse
tantas como se deseen entre las etiquetas de inicio y finalización experiments
Al observar la DTD y los ejemplos creados en la interfaz gráfica, esperamos que sea evidente cómo utilizar las etiquetas para especificar diferentes tipos de experimentos. La DTD especifica cuáles etiquetas son obligatorias y cuáles son opcionales, cuáles pueden repetirse y cuáles no, entre otros detalles.
Si se desea crear un archivo de configuración para NetLogo 6.3.0 y versiones anteriores, para las cuales Exportar no está disponible, debe tenerse en cuenta que en un archivo de modelo, el XML para configuraciones de experimentos no comienza con encabezados XML, ya que no todo el archivo es XML, solo una parte. Por lo tanto, si se crea manualmente un archivo separado para las configuraciones de experimentos, la extensión del archivo debe ser .xml y no .nlogo. Además, se debe iniciar el archivo con los encabezados XML adecuados, como se muestra a continuación:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE experiments SYSTEM "behaviorspace.dtd">
La segunda línea debe incluirse tal como se muestra. En la primera línea, puede especificarse
una codificación diferente a UTF-8, como ISO-8859-1.
Ajuste de parámetros de la JVM
Al abrir el script de inicio de NetLogo Headless, verás las opciones utilizadas
para iniciar Java al ejecutar NetLogo en modo sin interfaz. Pueden ajustarse varios parámetros
de la JVM en este script. También pueden pasarse propiedades de Java que comiencen con -D
al lanzador.
NetLogo asigna un máximo de la mitad de la memoria total del sistema para ejecutar el modelo, según sea necesario. Si desea establecerse
una cantidad máxima de memoria para el uso de Espacio-Conductual, puede utilizarse la configuración -Xmx para especificar
el tamaño del heap
Observa el uso de -Dfile.encoding=UTF-8. Esto obliga a todos los archivos de E/S a utilizar
la codificación UTF-8. Al hacerlo, se garantiza que NetLogo pueda cargar todos los modelos
de manera coherente y que las primitivas de archivo file-* funcionen de manera uniforme en todas
las plataformas, incluyendo modelos que contengan caracteres Unicode.
Control API
Si Espacio-Conductual no es suficiente para tus necesidades, una posible alternativa es utilizar nuestra API de Control, que permite escribir código en Java para controlar NetLogo. La API permite ejecutar experimentos de Espacio-Conductual desde el código en Java, o bien escribir código personalizado que controle NetLogo de manera más directa para realizar tareas similares a las de Espacio-Conductual. Consulta la sección Control del Manual del Usuario para obtener más detalles sobre ambas posibilidades.