Original article: http://faculty.ucr.edu/~hanneman/spatial/intro.html
Problem
Ten mały projekt wyrósł z mojej frustracji związanej z próbą zintegrowania mojej wczesnej pracy, opartej na samodzielnym szkoleniu w zakresie „dynamiki systemów”, z nowszymi i powstającymi pracami opartymi na „złożonych systemach” i modelowaniu „opartym na agentach”.
„Dynamika systemów” to szczególna „szkoła” podejść nauk społecznych do zastosowania modelowania nieliniowych równań różniczkowych. Ta tradycja ma bogaty zestaw narzędzi do zrozumienia, poprzez modelowanie i eksperymenty symulacyjne, systemów, które wydają się być dość skomplikowane pod względem liczby zmiennych i skomplikowanych relacji funkcjonalnych między nimi. Ale tradycja ma silne nastawienie do pojmowania problemów jako „systemów zamkniętych”, a myślenie jest w dużej mierze „z góry na dół”.
W ostatnich latach większa część społeczności zajmujących się modelowaniem w naukach społecznych zaangażowała się w podejście „oparte na agentach”, ściśle powiązane ze wzrostem zainteresowania „złożonością” i „wyłanianiem się”. Modele tego ogólnego typu są „oddolne” i postrzegają wzorce makro jako wyłaniające się z ograniczonych i lokalnie kierowanych działań wielu połączonych aktorów. Aktorzy (lub podsystemy lub agenci) są zwykle postrzegani jako sami w sobie minimalnie złożeni (często ograniczają się do posiadania jednego lub dwóch atrybutów kategorycznych i prostych reguł działania). Złożone dynamiczne zachowanie jest konsekwencją topologii sprzężenia agentów.
Na najbardziej podstawowym poziomie nie ma różnicy między tymi dwoma podejściami. „Systemy” są często pożytecznie traktowane jako złożone z wielu oddziałujących na siebie „podsystemów”. Oznacza to, że wiele modeli systemów nie jest modelami pierwszego rzędu i może (i robi) wyświetlać złożoną dynamikę. Podobnie można łatwo myśleć o agentach jako o „podsystemach”. Który nacisk jest najbardziej użyteczny, prawdopodobnie zależy od problemu; modele agentów zwykle dają nam lepszy wpływ na problemy związane z pojawieniem się (i prawdopodobnie ewolucją) topologii sprzężenia; Modele systemowe zwykle dają nam lepszy wpływ na zrozumienie problemów związanych z zakresem ruchu i dynamiką historyczną.
Jako makrosocjolog interesuję się głównie dynamiką i ewolucją systemów o średniej skali (społeczności, organizacji, klas, społeczeństw). Zwykle jest tak, że tego typu „agenci” muszą mieć dość dużą liczbę atrybutów (zmiennych), a często dość skomplikowane (nieliniowe, opóźnione, warunkowe) reguły opisujące ich zachowanie. Potrzeby te predysponują makromodelarza do podejścia systemowego. Ale jest również bardzo jasne, że sprzężenie wielu oddziałujących na siebie makroagentów ma kluczowe znaczenie (moim innym głównym obszarem badań są sieci społecznościowe). Na dynamikę społeczności wpływa ich sąsiedztwo z innymi społecznościami; na wewnętrzną dynamikę państw narodowych wpływa sposób, w jaki są one osadzone w systemach z innymi państwami narodowymi. W jawnych makromodelach często występuje umiarkowanie duża liczba agentów, a topologie ich sprzężenia mogą być złożone. Tego rodzaju problemy predysponują modelarza do podejścia opartego na agentach.
W modelach rozwijanych w tym tekście zaczynamy łączyć obie tradycje, ponieważ odnoszą się one do dynamiki makrosocjologicznej. Będziemy pracować z kilkoma makroteoriami dotyczącymi procesów demograficznych, ekologicznych i polityczno-ekonomicznych. Teorie te są wyrażone jako nieliniowe modele równań różniczkowych opisujące wewnętrzną dynamikę anagent. Następnie połączymy szereg tych złożonych agentów w system makro. Pojmujemy sprzężenie agentów jako „przestrzenne” iw konsekwencji również czerpiemy pewne wskazówki z systemów fizycznych modelujących tradycje w ekologii i geografii. Modele dynamiki społecznej wymagają jednak elastycznych i wielorakich koncepcji „przestrzeni”. Przede wszystkim analiza sieci społecznościowych zapewnia sposoby konceptualizacji typologii sprzężeń złożonych systemów społecznych w sposób, który można uznać za „przestrzeń społeczną”.
Zagadnienia nauk społecznych
Odległości i powiązania między aktorami społecznymi (ludźmi, rodzinami, społecznościami, organizacjami, subpopulacjami) są oczywiście ważne w warunkowaniu wielu form działań społecznych. W wielu dziedzinach nauk społecznych dystans i powiązania regularnie pojawiają się w modelach dynamiki (np. demografia i ekologia, analiza sieci). Jednak wiele ważnych teorii w naukach społecznych przywiązuje zadziwiająco mało uwagi do przestrzeni – lub traktuje ją jako irytujące „zakłócenie”.
Pod wieloma względami przypomina to teoretyzowanie zasad dynamiki interakcji fizycznych przy założeniu „doskonałej próżni” i „powierzchni bez tarcia”. Są to założenia przydatne do zrozumienia podstawowych zasad teoretycznych, ale oczywiste ograniczenia z praktycznego inżynierskiego punktu widzenia. Bardziej niepokojąca jest możliwość, że ignorowanie lub nadmierne upraszczanie odległości i powiązań między aktorami społecznymi jest raczej próbą zredukowania dynamiki interakcji molekularnych do atrybutów atomów. To nie działa, nawet w teorii.
Assuming that distance doesn't matter in social relations may be reasonable for some dynamics -- if all we seek to understand is theoretical equilibrium outcomes; but distance can matter a great deal for any practical applications of social theories. But many social phenomena may be embedded in space in ways that can't be ignored, even in the abstract. The properties and dynamics of social structures may emerge in non-linear ways from the "coupling topology" or "connectedness" of the parts.
Naszym celem jest oczywiście użyteczna ogólna teoria działania społecznego. Odległość i połączenie mogą być warunkami brzegowymi lub wyraźnymi terminami w takich teoriach lub mogą być podstawowymi pojęciami. Aby zbudować teorie, które poważnie traktują dystans i powiązania, bardzo dobrą strategią jest przechodzenie między rozwijaną teorią a modelami analitycznymi, które są z nimi wyraźnie powiązane. Jednym z celów projektu jest próba bardziej wyraźnego ujęcia kwestii odległości i powiązań w niektórych bardzo podstawowych teoriach społecznych.
Nie jest to nowe ani unikalne przedsięwzięcie. Istnieje bardzo obszerna i znakomita literatura, która poważnie traktuje rolę dystansu w dynamice społecznej. Możemy dołożyć cegiełkę lub dwie do tego muru, ale głównym celem jest próba zaangażowania większej liczby naukowców społecznych, aby zaczęli myśleć i bawić się dynamiką przestrzenną w szerszym zakresie dziedzin i zastosowań.
Problemy techniczne
Istnieje wiele ważnych i użytecznych makromodeli w naukach społecznych, które obejmują wiele połączonych ze sobą złożonych agentów (na przykład: International Futures). Istnieje również wiele doskonałych modeli opartych na agentach, które obejmują wielu agentów (np. Sugarscape ). Budowa modeli tego typu była do niedawna poważnym przedsięwzięciem, ponieważ większość takich modeli była rozwijana bezpośrednio przy użyciu języków wysokiego poziomu. Większość naukowców społecznych (niestety) ma bardzo ograniczone przeszkolenie w programowaniu i dość podstawowej matematyce, które są niezbędne do tworzenia i eksperymentowania z systemami lub modelami agentów.
Istnieją przyjazne i dostępne narzędzia programowe zarówno do modelowania systemów (np. Stella, Madonna, Vensim , dodaj inne), jak i do modelowania agentów (np. Logo, Swarm, RePast, i inni). Tworzenie modeli o dowolnej złożoności w tych środowiskach jest żmudne i wymaga sporo nauki. Ale takie ławki programistyczne jak te sprawiają, że modelowanie jest dostępne dla większości naukowców społecznych. Modele, które prezentujemy na stronach tej witryny, zostały opracowane do pracy w środowisku Berkeley Madonna. Kod algorytmów został maksymalnie uproszczony, przejrzysty i przenośny. Środowisko oprogramowania Madonna jest dostępne bezpłatnie do przeglądania modeli (i jest bardzo tanie w przypadku pełnej wersji). Zdecydowaliśmy się na Madonnę jako naszą platformę, ponieważ ma ona bardzo dobre narzędzia do wprowadzania, wyprowadzania i tworzenia wykresów, prostą składnię do pisania programów, przydatne biblioteki funkcji oraz obsługę jedno- i dwuwymiarowych tablic — które są niezbędne do budowania modeli przestrzennych.
To, czego Madonna nie miała, a czego potrzebowaliśmy do naszej aplikacji, to narzędzia do obsługi złożonych topologii sprzęgających wśród dużej liczby agentów. Naszym głównym wkładem na poziomie technicznym jest to, że opracowaliśmy dość proste i przenośne moduły kodu, które można wykorzystać do radzenia sobie z niektórymi typowymi topologiami sprzężenia niezbędnymi dla makromodeli: sąsiedztwami, odległościami i sąsiedztwem sieci. Obsługa tablic w Madonnie może poradzić sobie z dużą liczbą wewnętrznie złożonych agentów. Dodaliśmy kilka narzędzi do obsługi niektórych połączeń dużej liczby agentów. Naszym celem jest ułatwienie tworzenia modeli złożonych agentów osadzonych w złożonych przestrzeniach, bez konieczności pisania mnóstwa kodu.
Kod w Madonnie dla wszystkich modelek na tej stronie można pobrać ze stron tej witryny. W większości przypadków sam kod jest dość prosty i staraliśmy się zapewnić wystarczającą dokumentację z komentarzami, aby zrozumieć, co robią programy. Używając środowiska Madonny i odrobiny programowania, większość modeli można opisać w zaskakująco niewielu liniach kodu. Naszym celem jest oczywiście zachęcenie was do zabawy i modyfikowania kodu w sposób, który uznacie za interesujący i użyteczny.
Nauczanie dynamiki
Pojęcie wyrażania teorii jako formalnych matematycznych modeli dynamiki jest powszechne w większości nauk fizycznych i przyrodniczych. W naukach społecznych nie jest to tak powszechne. Jest to niefortunne i może stworzyć coś w rodzaju „bariery językowej” między częściami społeczności naukowej. Jednak coraz większa liczba naukowców społecznych zaczyna rozumieć, doceniać i stosować te narzędzia; istnieje ciągły napływ personelu i pomysłów z nauk fizycznych i przyrodniczych do dziedzin nauk społecznych i działań interdyscyplinarnych, takich jak Instytut Santa Fe.
Jednym z naszych celów było zwiększenie zasobów dość łatwych w użyciu narzędzi do nauczania o dynamice, które „przemawiają” do badaczy społecznych. To nie jest wyjątkowy ani nowy cel. Od czasu do czasu matematyczni naukowcy społeczni dostarczali bardzo przydatnych tekstów (w socjologii niektóre przykłady to prace Farraro , Leika i Meekera, Colemana, Lave'a i Marcha). Od pewnego czasu dostępne są również praktyczne narzędzia do modelowania i oparte na teorii symulacje nauczania. Bardzo godnym uwagi wczesnym wysiłkiem w socjologii jest Laboratorium Socjologii Williama Simsa Bainbridge'a. Niedawno kilka interdyscyplinarnych społeczności zajmujących się modelowaniem podjęło bardzo poważne i pożyteczne wysiłki, aby zapewnić narzędzia i przykłady, które odnoszą się bezpośrednio do programów nauczania nauk społecznych (np. Ruth i Hannon's Modelling Dynamic ... Systems tomy, Logo, RePast i Swarm ) .
Podzielamy z tymi autorami ideę, że zestaw narzędzi wszystkich naukowców społecznych powinien obejmować docenienie systemów i modelowania agentów – nawet jeśli wielu naukowców społecznych rzadko wykonuje swoją główną pracę przy użyciu tych narzędzi. Udostępniając więcej narzędzi, które można wykorzystać w podstawowym nauczaniu teorii (i być może poszczególnych dziedzin merytorycznych), mamy nadzieję dalej zachęcać do wysiłków na rzecz uczynienia tego typu pracy „normalną” w naukach społecznych. Modele tutaj nie są „kursem”. Ale mogą być przydatne we wprowadzeniu kilku podstawowych idei i narzędzi do myślenia o roli dystansu i łączności w teoretyzowaniu nauk społecznych. Szczególne motywy odległościi powiązania nie są powszechne w istniejących materiałach pomocniczych do programów nauczania dla nauk społecznych (chociaż wiele z istniejących prac dotyczy niektórych z tych samych zagadnień).
Modele symulacyjne
Szczerze mówiąc, nie ma jednego, jasnego, logicznego porządku, który organizowałby większość materiałów na stronach tego serwisu. Rzeczywiście, mamy nadzieję, że w miarę pojawiania się interesujących problemów użytkownikom, którzy zechcą się nimi tutaj podzielić, zostanie opracowanych więcej krótkich modułów.
Prawdopodobnie będziesz chciał najpierw zrobić dwie rzeczy, a następnie pobrać próbkę z reszty, jak ci odpowiada.
Przejrzyj materiał „Pierwsze kroki” w pozostałej części tej strony. Na innych stronach podamy podstawowe informacje na temat pracy z oprogramowaniem i modelami.
Następnie spójrz na stronę „Dynamika przestrzenna pojedynczej populacji”. Ta strona i dołączone modele wyjaśniają nasze podstawowe podejście koncepcyjne do „przestrzeni”. Rozwija również podstawowe algorytmy obsługi sąsiedztwa, odległości i sieci, które zastosujemy w przykładach merytorycznych na innych stronach.
W takim razie, jeśli nadal jesteś z nami, nie ma prawdziwego porządku. Każda strona ma zajmować się zestawem ściśle powiązanych zagadnień, ale nie ma rzeczywistego liniowego porządku między samymi stronami.
Pierwsze kroki
Wszystkie modele, które omawiamy na stronach tej witryny, można pobrać (wszystkie są bardzo małymi plikami). Są w . mmd i są przeznaczone do użytku w środowisku symulacyjnym Berkeley Madonna . Możesz pobrać wersję Madonny, która umożliwi Ci oglądanie i eksperymentowanie z modelkami za darmo. Aby jednak tworzyć modele, musisz kupić oprogramowanie (wersja studencka kosztuje 99 USD).
Oprogramowanie można pobrać ze strony Berkeley Madonna:
http://www.berkeleymadonna.com/
Istnieje narzędzie do edycji schematów graficznych, które wymaga języka Java. Nie użyjemy tego narzędzia.
Jeśli chcesz dowiedzieć się więcej, możesz zajrzeć do instrukcji obsługi:
Podręcznik użytkownika Berkeley Madonna
Poniższa grafika przedstawia zrzut ekranu interfejsu użytkownika środowiska Madonna (wersja Windows).
Modele są budowane i modyfikowane w oknie równań i używają dość naturalnego języka. Dostępna jest pokaźna biblioteka funkcji . Wyniki przedstawiane są w postaci wykresów i tabel. Dane tabelaryczne mogą być eksportowane. Nasza grafika pokazuje również okno kontrolne symulacji.
Środowisko ma doskonałe narzędzia do eksperymentowania z modelami poprzez zmianę parametrów i wykonywania wielu przebiegów (albo dla losowych warunków początkowych, albo do badania wrażliwości modeli w różnych zakresach parametrów).
Jedna cecha Madonny jest raczej przydatna w przypadku modeli przestrzennych, które będziemy budować. Jest to możliwość wprowadzania parametrów i warunków początkowych z zewnętrznych plików. Załóżmy, że budujemy model przemieszczania się populacji ludzkiej i populacji zwierząt w przestrzeni (model drapieżnik-ofiara, który szczegółowo przeanalizujemy na innej stronie). Stworzymy populacje drapieżników (ludzi) i ofiar w każdym z dziewięciu obszarów przestrzennych, ułożonych w kwadratową siatkę. Można oczywiście chcieć stworzyć znacznie większe środowiska (powiedzmy 100 na 100).
Aby podać wartości liczby drapieżników i liczby ofiar w każdym z 9 kwadratów na początku symulacji, moglibyśmy napisać tylko mały kod w Madonnie. Prawdopodobnie łatwiej jest to zwizualizować i wdrożyć, budując „mapę” wartości początkowych, które chcielibyśmy. Następny rysunek przedstawia zrzut ekranu arkusza kalkulacyjnego programu Excel (zauważ, że arkusz został zapisany jako plik .csv , a nie jako arkusz programu Excel).
Pierwszy wiersz i pierwsza kolumna służą do podania numerów indeksów w celu identyfikacji lokalizacji dziewięciu obszarów przestrzennych. Wartości w komórkach wewnętrznych dostarczają wartości początkowych (w tym przypadku) liczby drapieżników. W przykładzie wskazaliśmy jako populację początkową 1000 drapieżników, wszystkie skupione w centrum przestrzeni. W razie potrzeby do inicjalizacji wielu zmiennych używanych jest wiele plików.
Po utworzeniu początkowej mapy wartości należy wykonać dwa dodatkowe kroki. Najpierw napisany jest mały kod programu w celu wywołania pliku. Oto przykład.
Pierwsza linia to komentarz. Drugi wiersz wskazuje , że inicjujemy zmienną „ pred_tmp ” w dwuwymiarowej tablicy o wymiarach „begin..end ” do „begin..end ”. Wartości „początek” i „koniec” są ustawione w innym miejscu programu na „1” i „3” (w tym przypadku), aby utworzyć siatkę 3 na 3. Mówimy programowi, że ta kwadratowa tablica ma zostać wypełniona danymi z zewnętrznego pliku (#) o nazwie „ pred ” (tego, który utworzyliśmy powyżej). Zewnętrzny plik należy odczytać z wierszem ( tj) i kolumny (j) odwrócone indeksy. Ten ostatni fragment jest szczególny — z jakiegoś powodu Madonna indeksuje tablicę danych według kolumn i wierszy. Chcemy, aby nasze zewnętrzne pliki danych wyglądały jak mapa wiersz po kolumnie przestrzeni, którą budujemy — dlatego potrzebne jest tłumaczenie.
W tym przykładzie wzywamy również inny plik, aby zainicjować liczbę ofiar w dziewięciu kwadratach siatki.
Kiedy ten kod jest już na swoim miejscu, musimy powiedzieć Madonnie (wystarczy to zrobić tylko raz), gdzie znaleźć dane i załadować je. Odbywa się to z menu Plik>Importuj zestaw danych. Użyj przeglądarki, aby znaleźć plik arkusza kalkulacyjnego i wybierz go.
Pojawi się poniższe okno dialogowe.
Ponieważ importujemy zestaw wartości początkowych, które chcemy odczytać jako tablicę dwuwymiarową, wybraliśmy przycisk radiowy „Matryca (2D)”. Możesz użyć dokładnie tej samej metody, aby zaimportować jeden lub więcej wektorów do swojego modelu — co czasami jest przydatne do ustawiania parametrów i innych zadań inicjalizacji.
Po utworzeniu lub otwarciu równań modelu i załadowaniu zewnętrznych plików danych (jeśli istnieją) można użyć narzędzi środowiska symulacji do eksperymentowania z modelem, tworząc wykres liniowy i tabelę wyników. Dane wyjściowe tabeli można wyeksportować do wykorzystania w innych programach.
Madonna nie ma „mapy”, takiej jak wyświetlanie siatki – jest to niefortunne ograniczenie dla rodzajów modeli, które chcemy zbudować. Nadal pracujemy nad tym problemem i mamy nadzieję stworzyć narzędzie lub znaleźć takie, które pozwoli na graficzną prezentację zmiennych w postaci macierzy kwadratowej - najlepiej z animacją.
To wystarczy na razie i wystarczy, aby zacząć. Spójrz na kilka stron tej witryny, przejrzyj instrukcję obsługi. Spójrz na kod kilku naszych modeli. Myślę, że przekonasz się, że nie będzie trudno nauczyć się mistrza umiejętności niezbędnych do tworzenia użytecznych modeli w Madonnie i używania jej środowiska symulacyjnego do eksperymentowania z nimi. Nie obiecujemy, że to żadna praca; ale uważamy, że jest to znacznie łatwiejsze niż większość obecnie dostępnych alternatyw do budowania modeli przestrzennych.