¿Cuáles son las buenas técnicas para el modelado y simulación basados ​​en agentes?

Esta es una pregunta increíblemente amplia, así que solo voy a enumerar un montón de términos para ayudarlo a obtener la corriente correcta de literatura. Supongo que está buscando un buen lugar para comenzar y es capaz de buscar en Google estos términos, comentar o hacer preguntas adicionales de Quora para obtener los detalles.

Enfoques generales de ABM

  • Técnicas de modelo iterativo (la mayoría de los ABM deberán ser iterativos)
  • Monte Carlo o Markov (dependiendo de lo que estés haciendo)
  • Algoritmos genéticos
  • Modelado de redes sociales (usando ciencia de redes y ciencias sociales para construir simulaciones de comunidades de agentes)
  • Modelado de sistemas dinámicos / adaptativos complejos

Pasos para construir una ABM / simulación desde la experiencia personal

  1. Reúna mucha investigación sobre los dominios (el tema de lo que está simulando).
    1. Descubra quiénes son los principales académicos, de qué tratan las teorías en competencia, cuáles son los supuestos comunes.
    2. En mi caso, esto fue fonética, cambio de idioma y adquisición de idioma (como ejemplo).
  2. Obtenga una idea clara de los resultados que espera simular.
    1. Establezca algunas suposiciones claras sobre qué partes del modelo se idealizarán y cuáles se modelarán a lo esencial.
    2. Si el modelo es un sistema complejo, determine cuáles deberían ser las propiedades macroscópicas y microscópicas del modelo.
  3. Profundice en la investigación con un enfoque más estrecho basado en el paso anterior.
    1. Busque específicamente documentos / proyectos que hayan hecho cosas relacionadas con lo que va a construir. Ignora las cosas que estarás idealizando o dejando de lado.
    2. Averigüe qué teorías tienen pruebas sólidas y cuáles son más especulativas (es fácil suponer que las cosas de los periódicos, etc. se pueden dar por sentado, pero TENGA CUIDADO ya que esto NO ES DEMASIADO CIERTO Y PUEDE CONDUCIR)
    3. Averigüe qué tipo de modelo desea construir, qué técnicas usar, qué lenguaje / entorno de programación, etc.
    4. Busque ayuda profesional (de académicos y maestros, etc., expertos en el campo).
    5. Este es probablemente el paso más importante. Debe determinar los primeros principios del dominio, de lo contrario tendrá una base débil y su modelo podría terminar peor que inútil.
  4. Construye el modelo.
    1. Gime / cruje los dientes cuando se da cuenta de lo difícil que va a ser lo que pensaba.
    2. Busque más ayuda profesional según sea necesario.
    3. Durante esta etapa, es más importante que el programa sea flexible que rápido. Probablemente tendrá que hacer muchos cambios y reemplazar los mecanismos con frecuencia. Puede optimizar más tarde durante las pruebas.
  5. Prueba el modelo.
    1. Muestra tus resultados a los profesionales que te han estado ayudando.
    2. Compare los resultados con sus objetivos originales y con los resultados de otros estudios.
    3. Repita los pasos 3 a 5 hasta que esté satisfecho o muerto.