Respuesta corta: que depende del paradigma de programación o lenguaje que desea utilizar, y el diseño que desea para sus agentes:
si quieres una entrada baja - lenguaje de alto techo que permite prototipos rápidos pero simulaciones sofisticadas, y están dispuestos a aprender un nuevo paradigma (evitando bucles) use NetLogo. Buena documentación.
Si desea hacer una aplicación real para usar en racimos paralelizados altamente o simplemente desea utilizar Java Groovy o si necesita una biblioteca específica de Java para su propósito, utilizar Repast o mejor Repast for High Performance Computing (pero evite ReLogo que es muy lento) Documentación leve
Si se desea modelar agentes cognitivos (en vez de reactiva) con las comunicaciones del FIPA, mejor usar Jason o mejor JaCaMo que apoya AgentSpeak + Java (por lo que también puede utilizar sus bibliotecas favoritas Java), y no hay maravilloso requerido. Mala documentación (muchas características y comandos no detallados y ejemplos incorrectos demasiado complejos no comentados).
Respuesta larga: responsabilidad: tengo más experiencia con NetLogo sino también utilicé Repast y algunos otros como Jason.
Básicamente, la diferencia entre NetLogo y Repast es que con NetLogo tendrá un marco más simple, pero tendrá que aprender a programar en un paradigma orientado a tortuga y parche, mientras que en Repast tendrá que aprende que + los mecanismos detrás de Java Groovy pero eventualmente obtendrás más flexibilidad. La velocidad no es realmente un criterio aquí (ver más abajo).
Para ser más claros, puede programar de manera eficiente en NetLogo si usa al máximo las funciones nativas de las tortugas y los parches. Por ejemplo, si se desea implementar A *, en lugar de implementar una lista de nodos, se debe utilizar directamente los parches y filtrarlos utilizando telas de esta manera:
ask patchs with [criteria1 = value and criteria2 = value2] [do-some-stuff]
ask patchs with-min [criteria][do]
let var [somevalue] of min-one-of patches [criteria]
Además, si usted no puede encontrar una manera de haga lo que quiera de manera eficiente, asegúrese de marcar if maybe an extension exists (consulte también here en Librerías y Herramientas) para su propósito, como la extensión de matriz ahora nativa que me permitió hacer un efficient neural network in NetLogo.
Por otro lado, Repast es potencialmente más flexible que NetLogo (ya que tiene acceso a toda la gama de bibliotecas Java), pero es un poco más complejo ya que debe saber cómo manejar Groovy.
Si solo está interesado en la velocidad, NO use ReLogo (sintaxis similar a NetLogo para Repast) que ha demostrado ser mucho más lenta que NetLogo (consulte el documento 2012 a continuación). En cualquier caso, su mejor opción sería probar una implementación con NetLogo utilizando los trucos anteriores, o si desea utilizar su aplicación para real posterior, también hay una distribución llamada Repast para computación de alto rendimiento que elimina la mayor parte del sobrecarga que vienen con objetos de tortugas y parches, y por lo tanto se puede usar para aplicaciones reales. A similar extension exists for NetLogo para calcular en clústeres con paralelización pero no es una distribución oficial.
Si desea mas informaciones sobre las diversas plataformas, aquí es una buena revisión de 2006:
Railsback, S. F., Lytinen, S. L., & Jackson, S. K. (2006). Agent-based Simulation Platforms: Review and Development Recommendations. SIMULATION, 82(9), 609-623.
y una versión actualizada de este documento en 2012 frente a NetLogo vs ReLogo:
Lytinen, S. L., & Railsback, S. F. (2012, April). The evolution of agent-based simulation platforms: A review of netlogo 5.0 and relogo. In Proceedings of the Fourth International Symposium on Agent-Based Modeling and Simulation.
/EDITAR: He citado a Jason pero no dio más detalles. Si desea modelar agentes cognitivos (en lugar de agentes reactivos), puede hacerlo en NetLogo utilizando el BDI extension no oficial que funciona bien pero es un poco limitado (pero es fácilmente extensible ya que es NetLogo puro), pero su mejor opción es usar un marco diseñado específicamente para modelar el agente cognitivo con soporte completo de AgentSpeak.
Jason es muy agradable ya que tiene acceso a un lenguaje AgentSpeak completo + JAVA para implementar el aspecto técnico. De hecho, puede hacer proyectos completos usando solo AgentSpeak (lo cual hice), pero también puede hacer más versiones orientadas a Java, depende de usted cómo quiera diseñar su programa, el resultado será más o menos el mismo. Esto le ofrece mucha flexibilidad en su flujo de trabajo de diseño.
Consejo: busque "Jason internal actions" en la documentación para obtener una buena descripción de los comandos AgentSpeak disponibles.
Además, si usted está interesado en Jason, que podría estar interesado en JaCaMo (= Jason + Cartago + Moise) que es el resultado de la cooperación de los tres autores de proyectos para hacer un marco agentes cognitiva de pleno derecho, que también puede modelar entornos complejos (con teoría de artefactos) y organizaciones de agentes múltiples (roles, grupos, misiones, etc.).
Un último framework que conozco pero que no tuve la oportunidad de probar es Mason que admite entornos 2D y 3D. Nunca tuve la oportunidad de probar este, así que no sé cómo se compara con los demás, pero puedes probarlo.
Para obtener más información sobre Jason, sugiero utilizar el libro: Programación de sistemas multi-agente en AgentSpeak con Jason http://jason.sourceforge.net/jBook/jBook/Home.html –