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?
źródło
Odpowiedzi:
Nie pracuję w tym biznesie, ale naiwnie uważam, że pełny opis składa się z trzech części
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ą.
Opis wewnętrznego stanu agenta i sposobu podejmowania decyzji. Ponownie, mam nadzieję, że ma to dość jasną interpretację.
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).
źródło
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
Projekt
Detale
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.
źródło
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ę.
źródło