Najlepsze praktyki dotyczące opisywania modeli opartych na agentach


14

Pracuję dość intensywnie w biologii matematycznej / epidemiologii, gdzie większość prac związanych z modelowaniem / naukami obliczeniowymi jest nadal zdominowana przez zestawy ODE, co prawda czasami dość skomplikowane zestawy. Jedną z zalet tych modeli jest to, że można je łatwo opisać i powielić. Tabela wartości parametrów i same równania, a dałeś komuś wszystko, czego potrzeba, aby powielić twoje badania w dowolny sposób, w jaki chcieliby je wdrożyć.

Ale nieco bardziej złożone modele zaczęły być bardziej popularne. Modele oparte na agenta, w szczególności, wydają się być trudniejsze do opisania zarówno w publikacji, a trudniejsze do replikacji, ponieważ nie są koniecznie doskonale opisane przez zestaw równań różniczkowych zwyczajnych. Czy istnieją jakieś wytyczne - lub po prostu praktyczne doświadczenie - za opisywaniem tych modeli w sposób, który czytelnicy rozumieją, co się stało, i czynią je stosunkowo łatwymi do replikacji?


1
Rozumiem, że formalnie opisany model oparty na agentach jest równie deterministyczny i łatwy do odtworzenia, jak dobrze zachowane zwykłe równanie różniczkowe. Czy możesz wskazać konkretne przykłady w literaturze?
Aron Ahmadia,

@AronAhmadia Wiele modeli opartych na agentach opiera się na komponentach niedeterministycznych. Na przykład twórcy biblioteki symulacyjnej MASON uznali, że losowość jest na tyle ważna, że ​​obejmuje ich własną implementację generatora liczb losowych ...
Michael McGowan

@MichaelMcGowan - Martwiłem się tym. Symulacje prowadzone przez generatory liczb losowych powinny być możliwe do posiewu w ramach strategii odtwarzalności, ale teraz naukowcy muszą polegać na statystykach, aby wyciągać wnioski.
Aron Ahmadia,

@AronAhmadia Część tego problemu polega na tym, że nigdy nie widziałem zbyt wielu założeń dotyczących formalnego opisu ABM. I to pozostawia na boku kwestię stochastyczności.
Fomite,

Odpowiedzi:


4

Nie pracuję w tym biznesie, ale naiwnie uważam, że pełny opis składa się z trzech części

  1. Opis krajobrazu danych, w którym żyją. Opisz to w kategoriach struktury danych (wykres (skierowany lub niekierowany, ważony lub nieważony); drzewo; tablica; ...) oraz dane powiązane z każdym węzłem. Zanotuj specjalne przypadki postępowania, takie jak okresowe warunki brzegowe lub stan przyjęty dla sąsiadów poza obszarem testowym. Przypuszczalnie ma to dość wyraźny związek z twoją domeną problemową.

  2. Opis wewnętrznego stanu agenta i sposobu podejmowania decyzji. Ponownie, mam nadzieję, że ma to dość jasną interpretację.

  3. Opis względnego czasu i / lub synchronizacji akcji i aktualizacji między agentami a krajobrazem; oraz między parą lub grupami agentów.

Pomoże w tym pseudo-kod (a nawet prawdziwy kod, jeśli nie jest zbyt zanieczyszczony szczegółami implementacji).


2

Istnieje coś takiego, jak protokół ODD (przegląd, projektowanie i szczegóły), zaproponowany przez Volkera Grimm i innych do opisu modelu opartego na agentach. Składa się z listy elementów potrzebnych do zrozumienia funkcjonowania ABM i ma na celu ujednolicenie opisów takich modeli.

Lista kontrolna tego, co należy opisać, obejmuje:

Przegląd

  1. Cel, powód
  2. Podmioty, zmienne stanu i skale
  3. Przegląd i planowanie procesu

Projekt

  1. Podstawowe zasady
  2. Powstanie
  3. Adaptacja
  4. Cele
  5. Uczenie się
  6. Prognoza
  7. Wyczuwanie
  8. Interakcja
  9. Stochastyczność
  10. Kolektywne
  11. Obserwacja

Detale

  1. Inicjalizacja
  2. Dane wejściowe
  3. Submodele

Więcej informacji można znaleźć w

Grimm, V., Berger, U., DeAngelis, DL, Polhill, JG, Giske, J., i Railsback, SR (2010). Protokół ODD: przegląd i pierwsza aktualizacja. Modelowanie ekologiczne, 221, 2760–2768.


1

Jak dotąd najlepszym sposobem jest dołączenie całego kodu jako materiału uzupełniającego. Jeśli to możliwe, dołącz także pliki z odpowiednimi losowymi nasionami potrzebnymi do odtworzenia wyników. Pozwala to nie tylko na odtworzenie twoich wyników (na których możesz się nie przejmować), ale także na łatwiejsze kontynuowanie tam, gdzie zostało przerwane. Pozwala to na współpracę i cytowanie nowych prac. Niestety, wiąże się to z trudnością zmuszania do wyczyszczenia kodu i upewnienia się, że nie zawiera błędów. Dlatego jest to ideał bardziej niż to, co jest zwykle stosowane w praktyce. Ale przynajmniej powinieneś zarchiwizować wersję kodu używaną do tworzenia wyników, w ten sposób, jeśli inny badacz poprosi o kod, możesz go wygenerować.

Jeśli chodzi o opis w twoim artykule, skoncentrowałbym się na wysokim poziomie, niezależnym od implementacji opisie kluczowych nowatorskich cech modelu (jest to część praktyczna, którą osiąga najwięcej dobrych artykułów). Skoncentruj się na funkcjach, które jakościowo zmienią wynik, jeśli zostaną poprawione. Większość modeli, z którymi pracuję, daje wyniki ilościowe, ale konkretne wielkości zwykle nie są interesujące, a jedynie zachowanie jakościowe (ponieważ parametry są zwykle dalekie od parametrów możliwych do zaobserwowania). Dlatego skupiam się na opisaniu części modelu, które jeśli zostaną zmienione, zmienią jakościowe zachowanie systemu. Jeśli ten sposób myślenia zmusza mnie do opisania każdego ostatniego szczegółu mojego modelu aż do implementacji, to wiem, że mój model nie jest bardzo solidny i dlatego powinien zostać złomowany.

Dobrym sposobem na sprawdzenie, czy Twój opis w formie papierowej jest wystarczający, jest poproszenie przyjaciela (lub studenta), który nie pracował z tobą nad tym projektem, o opisanie, w jaki sposób mogą zaimplementować twój model, to pseudo-kod. Jeśli nie utkną podczas próby (jak w przypadku otrzymania szkicu modelu, który powinien dać takie same wyniki jakościowe), to wiesz, że dobrze spisałeś się.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.