¿Qué software puedo usar para modelar sistemas complejos?

Esta es una excelente pregunta que merece ser respondida con suficiente profundidad. En realidad, ¡puede llevar años convertirse en un profesional en la programación de modelos de sistemas complejos! Esta publicación debe entenderse como su acceso directo al modelado avanzado. Con suerte, puede salvar sus años de pruebas y errores.

  1. Esta respuesta no aspira a cubrir todo el software disponible. Se enfoca principalmente en permitir que todos penetren rápidamente en el quid del diseño de modelos de sistemas complejos. Entonces puedes comenzar a orientarte dentro del campo con mucha facilidad 🙂
  2. Para comenzar con el modelado de sistemas complejos es una buena idea estudiar NetLogo (página de inicio de NetLogo) pero no es un código fuente abierto. NetLogo le permite ajustarse rápidamente con el modelado de sistemas complejos. Tenga en cuenta que es el entorno de modelado basado en el agente.
  3. Hay una trampa en el uso de NetLogo. No le permite ver cómo está programado su motor. Para comprender los niveles más profundos del modelado de sistemas complejos, debe ingresar a la programación de un motor. Hacerlo por su cuenta sin ninguna experiencia es una tarea difícil. Lo hice hace muchos años yo mismo.
  4. Solo para explicar cómo se construye el software que simula sistemas complejos . Por lo general, consta de dos partes: un motor y una regla. Simplemente dicho, el motor está simulando el “mundo” donde opera la simulación. Por ejemplo, en los autómatas celulares, el ‘mundo’ se crea a partir de una red de cuadrados (hexágonos, triángulos) en un espacio bidimensional. El motor maneja la actualización de todos los sitios de red en paralelo en pasos de tiempo discretos.
  5. No se recomienda escribir un motor entrelazado y gobernar por varias razones: (i) es difícil de entender incluso para el autor, (ii) es casi imposible encontrar errores y mantenerlo, (iii) conduce a un código de espagueti.
  6. Hasta ahora, estamos hablando de una forma general de cómo programar modelos de sistemas complejos. Mostramos un entorno de simulación basado en agentes disponible al público, NetLogo. Es un hecho bien conocido que los autómatas celulares pueden servir como prototipo de todos los modelos de sistemas complejos. Hay buenas razones para ello.
  7. Si planea programar sus propios modelos de sistemas complejos utilizando Autómatas Celulares, entonces puede explorar códigos de código abierto disponibles libremente diseñados para penetrar fácilmente en el quid de la modelización de Autómatas Celulares de Sistemas Complejos: fue la principal motivación para crearlos. . Este software se presenta en los siguientes dos elementos.
  8. El primer software de código abierto simula la recristalización dinámica de metales https://www.researchgate.net/pub…. Un video que muestra una ejecución de prueba está disponible aquí https://www.researchgate.net/pub…. Es un software que muestra cómo se implementa un modelo de sistemas complejos de un proceso físico en un software que utiliza el lenguaje de programación C ++ y Qt como herramienta de visualización.
  9. El segundo código abierto demuestra cómo se puede programar una autoorganización en el caso cuando un dominio arbitrario se divide automáticamente en N dominios suizos de igual tamaño. El código se puede encontrar aquí https://www.researchgate.net/pub… y el video que muestra una ejecución de simulación está aquí https://www.researchgate.net/pub….
  10. Aquellos que deseen profundizar en la comprensión del software y los temas resueltos pueden leer Ph.D. tesis y documentos relevantes sobre la recristalización dinámica, un autómata celular controlado por difusión en mi perfil de ResearchGate.

Para la introducción en el modelado de autómatas celulares de sistemas complejos, consulte la introducción al tema https://www.researchgate.net/pub…, que escribí en el libro de Springer https://www.researchgate.net/pub….

Esta publicación merece más ejemplos, pero esto inevitablemente conduciría a un texto muy complejo que será demasiado difícil de entender.

Esperemos que tenga suficiente información para comenzar a programar sus propios modelos de sistemas complejos. Buena suerte en eso 😉

Esta pregunta puede responderse de manera diferente según su problema. Supongo que estás hablando de analizar la dinámica de los sistemas:

Utilicé stella y es muy práctico analizar sistemas complejos.

Eso depende del tipo de sistema que pretendes modelar.

Para modelar las interacciones entre un pequeño número de variables, recomendaría las siguientes dos:

iThink y Stella

sistemas isee: sistemas isee

Insight Maker

Insight Maker: simulación y modelado gratuitos en su navegador

Para modelar la interacción de una gran cantidad de objetos, recomendaría un paquete de modelado basado en agente:

NetLogo: Página de inicio de NetLogo

Si eres nuevo en esto, NetLogo es un lugar común para principiantes.

Puede obtener una exposición práctica a NetLogo rápidamente a través del curso archivado Introducción a la Complejidad del Complexity Explorer (Instituto Santa Fe), dirigido por Melanie Mitchell. (Este curso volverá a funcionar en vivo este verano, lo que significa que puede realizar los cuestionarios y obtener un certificado si cumple con los criterios). El curso de William Rand sobre Modelado basado en agentes está programado para comenzar este verano.

Nota: El libro Introducción a la Complejidad de Melanie Mitchell sirve como un compañero útil para su curso introductorio en línea mencionado anteriormente.

Además: puede probar la toma de decisiones en un mundo complejo, un curso en línea gratuito de la Universidad de Groningen en los Países Bajos. Parte del curso proporciona una introducción a NetLogo.

Otra opción gratuita, que tiene tanto la dinámica del sistema como las opciones de modelado basadas en agentes, es Insightmaker: Simulación y modelado gratuitos en su navegador