Domanda

Vorrei sapere che tipo di toolkit, lingue, librerie esistono per la modellazione basata su agenti e quali sono i loro pro / contro?

Alcuni esempi di ciò a cui sto pensando sono Swarm , Repast e MASS .

È stato utile?

Soluzione

Ho trovato un sondaggio di giugno 2009 che ha risposto alla tua domanda:

Indagine sugli strumenti di modellazione e simulazione basati su agenti

Au. R.J. Allan

  

Riepilogo
  La modellazione e la simulazione basate sugli agenti è un calcolo   tecnica impegnativa basata sulla simulazione di eventi discreti e con la sua   origini negli algoritmi genetici. È una tecnica potente per   simulare sistemi complessi dinamici e osservare comportamenti "emergenti".   Gli usi più comuni di ABMS sono nella simulazione sociale e nell'ottimizzazione   problemi, come flusso di traffico e catene di approvvigionamento. Investigheremo   altri usi nella scienza computazionale e ingegneria. ABMS è stato   adattato per funzionare su nuove architetture come GPGPU (ad es. utilizzando nVidia   CUDA). Argonne National Laboratory ha un sito Web su Exascale ABMS   e hanno eseguito modelli su IBM BlueGene con finanziamenti da SciDAC   Programma. Abbiamo in programma di organizzare un seminario sulle metodologie e   applicazioni nell'estate del 2009. Modellazione basata su agenti di parole chiave,   Archeologia

http://epubs.cclrc.ac.uk/bitstream/3637 /ABMS.pdf

Altri suggerimenti

Consiglio anche NetLogo . È un ambiente IDE + ambiente + linguaggio di programmazione basato sul logo (basato su Lisp) che consente di creare modelli multi-agente estremamente velocemente. Ho scoperto che posso riprodurre (simulare) algoritmi da articoli di ricerca in un paio d'ore, algoritmi che avrebbero impiegato settimane per implementarsi con altre librerie.

Puoi controllare alcuni dei miei modelli su questa pagina.

Mi è stato presentato Dramatis a OSCON 2008, è un framework basato su agenti per Ruby e Python. L'autore (Steven Parkes) ha alcuni riferimenti nel suo blog e sta lavorando alla gestione di una lingua agnostica Elenco discussioni attori .

Questa pagina su erights.org ha una grande serie di riferimenti a, quali Penso che lo siano, i documenti chiave che introducono ed esplorano il modello di passaggio dei messaggi degli attori.

C'è anche un link abbastanza buono in Wikipedia:

http://en.wikipedia.org/wiki/Comparison_of_agent-based_modeling_software

Dal punto di vista della modellazione, dai un'occhiata a FAML, un linguaggio di modellazione orientato agli agenti. Questo è un bel documento accademico, ma può aiutare a seconda dei tuoi interessi: http://ieeexplore.ieee.org/xpl/freepre_abs_all.jsp?isnumber=4359463&arnumber=4967615

So che questo è un vecchio thread, ma ho pensato che non sarebbe male aggiungere alcune informazioni extra. Esiste un fantastico nuovo sito Web dedicato alla modellazione basata su agenti . Il sito contiene collegamenti a documenti, esercitazioni, strumenti, risorse e ricercatori che lavorano sulla modellazione basata su agenti in numerosi campi.

dovresti anche dare un'occhiata a Madkit e Turtlekit

Discussione precedente, ma per completezza esiste anche Anylogic e pyabm che può essere utilizzato per gli ABM.

Ho esperienza nella programmazione di modelli basati su agenti in diversi ambienti / lingue. La mia opinione è che se si desidera implementare un modello relativamente semplice, utilizzare Netlogo. È anche possibile utilizzare Netlogo anche per modelli pesanti (l'ho fatto con successo), ma ad un certo punto la flessibilità di un linguaggio di programmazione come java / python / c ++ supera la convenienza dei metodi nativi disponibili in Netlogo, in particolare quando le prestazioni diventano un grosso problema.

Repast sta diventando un po 'gonfio. Se sei un programmatore esperto, tutto ciò di cui hai veramente bisogno per iniziare a costruire un ABM è la capacità di pianificare eventi e disegnare numeri casuali. Il resto (definendo agenti / ambienti e i loro comportamenti) che puoi creare da solo. Quando si tratta di gestire gli oggetti nel modello, utilizzare le normali strutture dati a cui si è abituati (array / hash / alberi / ecc.). A tal fine, sto sviluppando una libreria Java molto leggera chiamata " ABMUtils " (su github) che implementa uno scheduler e avvolge un generatore di numeri casuali. Questo è nella fase iniziale di sviluppo, ma mi aspetto di perfezionare le cose (rendendolo semplice) nei prossimi mesi.

Se sei un economista evoluzionista puoi anche controllare Laboratory for Simulation Development (LSD) .

Gli sviluppatori PHP e Java dovrebbero dare un'occhiata a KATO .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top