Romlig dynamikk av menneskelige bestander: noen grunnleggende modeller

Original English version: https://faculty.ucr.edu/~hanneman/spatial/intro.html

Robert A. Hanneman
([email protected])

Institutt for sosiologi
Universitet i California, Riverside

2005


Introduksjon


  • Problemet
    • Samfunnsfaglige problemstillinger
    • Tekniske problemer
    • Undervisning om dynamikk
  • Simuleringsmodellene
  • Starter

Problemet

Dette lille prosjektet vokste ut av min frustrasjon over å prøve å integrere mitt tidlige arbeid, basert på egentrening i “systemdynamikk”, med nyere og gryende arbeid basert på “komplekse systemer” og “agentbasert” modellering.

“Systemdynamikk” er en spesiell “skole” av samfunnsvitenskapelige tilnærminger til anvendelse av ikke-lineær differensiallikingsmodellering. Denne tradisjonen har et rikt verktøysett for å forstå, ved modellering og simulering eksperimenter, systemer som har en tendens til å være ganske kompliserte med tanke på antall variabler og kompliserte funksjonelle relasjoner mellom dem. Men tradisjonen har en sterk skjevhet mot å tenke problemer som “lukkede systemer”, og tenkningen er i stor grad “topp-ned.”

De siste årene har flere av samfunnsvitenskapelige modelleringssamfunn engasjert seg i “agentbaserte” tilnærminger, tett knyttet til veksten av interesse for “kompleksitet” og “fremvekst.” Modeller av denne generelle typen er “bottom-up” og ser makromønstre som dukker opp fra de avgrensede og lokalt rettede handlingene til antall koblede skuespillere. Skuespillerne (eller undersystemene, eller agentene) blir vanligvis nærmet som minimalt komplekse i seg selv (ofte begrenset til å ha en eller to kategoriske attributter og enkle handlingsregler). Den komplekse dynamiske oppførselen til er konsekvensen av agentens koblingstopologi.

På det mest grunnleggende nivået er det ingen forskjell mellom de to tilnærmingene. “Systemer” blir ofte anvendelig behandlet som sammensatt av flere interaktive “undersystemer.” Det vil si at mange systemmodeller ikke er første-ordens, og kan (og gjøre) vise kompleks dynamikk. Tilsvarende kan man lett tenke på agenter som “undersystemer.” Hvilken vektlegging som er mest nyttig, avhenger sannsynligvis av problemet; agentmodeller har en tendens til å gi oss bedre gearing over problemer som håndterer fremvekst (og muligens evolusjon) av koblingstopologi; systemmodeller har en tendens til å gi oss bedre innflytelse overfor å forstå problemstillinger av bevegelse og historisk dynamikk.

Som makrososiolog er mine viktigste interesser dynamikken og utviklingen av moderat store skala-systemer (samfunn, organisasjoner, klasser, samfunn). Det er vanligvis slik at “agenter” av denne typen trenger å ha ganske store antall attributter (variabler), og ofte ganske kompliserte (ikke-lineære, lagede, kontingente) regler som beskriver deres oppførsel. Disse behovene forhåndsdisponerer makromodelleren til en systemtilnærming. Men det er også veldig tydelig at koblingen av flere interaktive makroagenter er kritisk (mitt andre hovedfelt av studier er sosiale nettverk). Dynamikken i lokalsamfunn påvirkes av deres tilhørighet til andre samfunn. Den interne dynamikken i nasjonalstater påvirkes av måten de er innebygd i systemer med andre nasjonalstater på. Det er ofte moderat stort antall agenter i eksplisitte makromodeller, og topologiene for deres kobling kan være komplekse. Disse slags problemer disponerer modellereren til agentbaserte tilnærminger.

I modellene som er utviklet i denne teksten, begynner vi å samle de to tradisjonene, slik de gjelder for makrososiologisk dynamikk. Vi vil jobbe med flere makroteorier knyttet til demografiske, økologiske og politiske økonomiske prosesser. Disse teoriene er uttrykt som ikke-lineære differensiallikingsmodeller som beskriver den indre dynamikken til et middel. Vi vil deretter koble et antall av disse komplekse midlene til et makrosystem. Vi tenker oss koblingen av midler som “romlig”, og trekker følgelig også en viss retning fra fysiske systemer som modellerer tradisjoner innen økologi og geografi. Modeller av sosial dynamikk krever imidlertid fleksible og flere forestillinger om “rom.” Det mest bemerkelsesverdige gir sosiale nettverksanalyser måter å konseptualisere koblingstypologiene til komplekse sosiale systemer på måter som kan tenkes å være “sosiale rom.”


Samfunnsvitenskapelige spørsmål

Avstandene mellom og forbindelser mellom sosiale aktører (mennesker, familier, lokalsamfunn, organisasjoner, underpopulasjoner) er åpenbart viktige for å kondisjonere mange former for sosial handling. I mange samfunnsvitenskapelige områder regnes avstand og sammenheng regelmessig med modeller av dynamikk (f.eks. Demografi og økologi, nettverksanalyse). Mange viktige teorier innen samfunnsvitenskapene legger imidlertid bemerkelsesverdig lite oppmerksomhet på rommet – eller behandler rom som en irriterende “forstyrrelse.”

På mange måter er dette som teoretiserende prinsipper for dynamikken i fysisk samhandling under forutsetning av “et perfekt vakuum” og “friksjonsfrie flater.” Dette er nyttige forutsetninger for å få kjerneteoretiske prinsipper, men åpenbare begrensninger fra et praktisk ingeniørsynspunkt. Mer urovekkende er muligheten for å ignorere eller overforenkle avstandene og forbindelsene mellom sosiale aktører, snarere som å forsøke å redusere dynamikken i molekylær interaksjon til atomenes attributter. Dette fungerer ikke, selv ikke i teorien.

Å anta at avstand ikke spiller noen rolle i sosiale relasjoner, kan være rimelig for en viss dynamikk – hvis alt vi prøver å forstå er teoretiske likevektsresultater; men avstand kan bety mye for alle praktiske anvendelser av sosiale teorier. Men mange sosiale fenomener kan være innebygd i rommet på måter som ikke kan ignoreres, selv i det abstrakte. Egenskapene og dynamikken til sosiale strukturer kan dukke opp på ikke-lineære måter fra “koblingstopologi” eller “sammenkobling” av delene.

Målet vårt er selvfølgelig nyttig generell teori om sosial handling. Avstand og tilknytning kan være grensevilkår eller eksplisitte vilkår i slike teorier, eller de kan være kjernebegrep. For å bygge teorier som tar avstand og sammenheng på alvor, er en veldig god strategi å bevege seg frem og tilbake mellom vår utviklingsteori og analytiske modeller som eksplisitt er knyttet til dem. Et mål med prosjektet er å prøve å bringe avstand og tilknytningsproblemer mer eksplisitt inn i noen helt grunnleggende sosiale teorier.

Dette er ikke et nytt eller unikt foretak. Det er veldig store og utmerkede litterater som tar rollen som distanse på alvor i sosial dynamikk. Vi kan legge en murstein eller to til den veggen, men hovedmålet er å prøve å engasjere flere samfunnsvitere til å begynne å tenke på, og å spille med romlig dynamikk i et bredere spekter av underfelt og applikasjoner.


Tekniske problemer

Det er en rekke viktige og nyttige samfunnsvitenskapelige makromodeller som involverer flere komplekse agenter, koblet sammen (for eksempel: Internasjonale futures). Det finnes også en rekke utmerkede agentbaserte modeller som involverer flere midler (f.eks. Sugarscape). Å bygge modeller av denne typen har inntil nylig vært et viktig selskap – ettersom de fleste slike modeller ble utviklet direkte ved bruk av høyt nivå språk. De fleste samfunnsvitere har (dessverre) veldig begrenset opplæring i programmering og den ganske grunnleggende matematikken som er nødvendig for å utvikle og eksperimentere med enten systemer eller agentmodeller.

Vennlige og tilgjengelige programvareverktøy finnes for både systemmodellering (f.eks. Stella, Madonna, Vensim, legg til andre) og for agentmodellering (f.eks. Logo, Swarm, RePast og andre). Å utvikle modeller for en hvilken som helst kompleksitet i disse miljøene, er slitsomme og krever litt læring. Men arbeidsbenker som disse gjør modellering tilgjengelig for de fleste samfunnsvitere. Modellene som vi presenterer på sidene på dette nettstedet er utviklet for å kjøre i Berkeley Madonna-miljøet. Koden for algoritmene er gjort så enkel, gjennomsiktig og bærbar som mulig. Madonna-programvaremiljøet er tilgjengelig gratis for visning av modeller (og er veldig billig for en fullversjon). Vi slo oss til ro med Madonna som vår plattform fordi den har veldig fine inngang-, produksjon-og grafiske verktøy, en enkel syntaks for å skrive programmer, nyttige biblioteker med funksjoner, og støtte for en og todimensjonale matriser – som er essensielle for å bygge romlige modeller.

Det Madonna ikke hadde, som vi trengte for applikasjonen vår, er verktøy for å håndtere komplekse koblings topologier blant et stort antall agenter. Vårt viktigste bidrag på det tekniske nivået er at vi har utviklet ganske enkle og bærbare kodemoduler som kan brukes til å håndtere noen vanlige koblings-topologier som er nødvendige for makromodeller: nabolag, avstander og nettverksnødvendighet. Utvalget håndtering av Madonna kan håndtere et stort antall internt komplekse agenter. Vi har lagt til noen verktøy for å håndtere noe av koblingen sammen av et stort antall agenter. Målet vårt er å gjøre det lettere å utvikle modeller av komplekse agenter innebygd i komplekse rom, uten å måtte skrive mye kode.

Koden, i Madonna, for alle modellene på dette nettstedet kan lastes ned fra sidene på nettstedet. I de fleste tilfeller er koden i seg selv ganske enkel, og vi har prøvd å gi tilstrekkelig dokumentasjon med kommentarer for å forstå hva programmene gjør. Ved å bruke Madonna-miljøet og bare litt programmering, kan de fleste modeller oppgis i overraskende få kodelinjer. Målet vårt er selvfølgelig å oppfordre deg til å leke med og endre koden på måter du synes er interessante og nyttige.


Lærer om dynamikk

Forestillingen om å uttrykke teorier som formelle matematiske modeller for dynamikk er vanlig i de fleste fysiske og biovitenskapelige fag. Det er ikke så vanlig i samfunnsfagene. Dette er uheldig, og kan skape en slags “språkbarriere” mellom deler av det vitenskapelige samfunnet. Men stadig flere samfunnsforskere kommer til å forstå, verdsette og ta i bruk disse verktøyene; og det er en kontinuerlig flyt av personell og ideer fra fysikk og biovitenskap til samfunnsvitenskapelige felt og til tverrfaglig innsats som Santa Fe Institutt.

Et av målene våre var å øke lageret av ganske brukervennlige verktøy for å lære om dynamikk som “snakker med” samfunnsvitere. Dette er neppe et unikt eller nytt mål. Matematiske samfunnsvitere har gitt svært nyttige tekster fra tid til annen (i sosiologi er noen eksempler verk av Farraro, Leik og Meeker, Coleman, Lave og mars). Praktiske modelleringsverktøy og teoriinformerte undervisningssimuleringer har også eksistert i noen tid. En veldig bemerkelsesverdig tidlig innsats i sosiologi er William Sims Bainbridges sosiologilaboratorium. Nylig har flere tverrfaglige modelleringssamfunn gjort veldig seriøs og nyttig innsats for å gi verktøy og eksempler som snakker direkte til samfunnsvitenskapelige læreplaner (f.eks. Ruth og Hannons modelleringsdynamiske… Systemvolumer, Logo, RePast og Swarm).

Vi deler med disse forfatterne ideen om at verktøysettet til alle samfunnsvitere burde inkludere en forståelse av systemer og agentmodellering – selv om mange samfunnsforskere sjelden vil gjøre sitt viktigste arbeid ved å bruke disse verktøyene. Ved å gjøre flere verktøy tilgjengelige som kan brukes i grunnleggende instruksjoner i teori (og kanskje spesielle materielle felt), håper vi å oppmuntre til ytterligere arbeid for å gjøre arbeid av denne typen “normalt” i samfunnsvitenskapene. Modellene her er ikke et “kurs.” Men de kan være nyttige når du introduserer noen grunnleggende ideer og verktøy for å tenke på rollen som distanse og tilkobling i samfunnsvitenskapsteoretisering. De spesielle temaene for avstand og tilknytning er ikke noe vanlig i eksisterende læreplanstøttemateriell for samfunnsvitenskapene (selv om mange av de eksisterende arbeidene adresserer noen av de samme problemene).


Simuleringsmodellene

For å være helt ærlig, er det ingen klar, logisk rekkefølge som organiserer det meste av materialet på sidene på dette nettstedet. Vi håper faktisk at flere korte moduler vil bli utviklet etter hvert som det oppstår interessante problemer for brukere som ønsker å dele dem her.

Du vil sannsynligvis ønske å gjøre to ting først, og deretter prøve fra resten slik det passer deg.

Se gjennom “Komme i gang”-materialet på resten av denne siden. Vi vil gi grunnleggende informasjon om hvordan du jobber med programvaren og modellene på de andre sidene.

Deretter kan du se på siden “Romlig dynamikk for enkeltpopulasjon.” Denne siden, og de vedlagte modellene, forklarer vår grunnleggende konseptuelle tilnærming til “rom.” Den utvikler også de grunnleggende algoritmer for håndtering av nabolag, avstander og nettverk som vi vil bruke i de materielle eksemplene på andre sider.

Hvis du fremdeles er med oss, er det ingen ordentlig ordre. Hver side er ment å håndtere et sett med nær beslektede problemer, men det er ingen reell lineær rekkefølge blant sidene selv.


Starter

Alle modellene som vi diskuterer på sidene på dette nettstedet kan lastes ned (de er veldig små filer). De er i .mmd-format, og er designet for bruk med simuleringsmiljøet Berkeley Madonna. Du kan laste ned en versjon av Madonna som lar deg se og eksperimentere med modeller gratis. For å lage modeller må du imidlertid kjøpe programvaren (studentversjonen er $99).

Du kan laste ned programvaren fra nettstedet Berkeley Madonna:

http://www.berkeleymadonna.com/

Det er et grafisk redigeringsverktøy for flytdiagrammer som krever at Java skal brukes. Vi bruker ikke dette verktøyet.

Hvis du vil vite mer, kan det være lurt å se på bruksanvisningen:

Berkeley Madonna Brukerhåndbok

Grafikken nedenfor viser et skjermbilde av brukergrensesnittet til Madonna-miljøet (Windows-versjon).

Modeller er bygget og modifisert i ligningsvinduet, og bruker et ganske naturlig språk. Et betydelig bibliotek med funksjoner er tilgjengelige. Resultatene er produsert i diagrammer og tabeller. Tabelldata kan eksporteres. Grafikken vår viser også et simuleringskontrollvindu.

Miljøet har utmerkede verktøy for å eksperimentere med modeller ved å variere parametere og utføre flere kjøringer (enten for tilfeldige startbetingelser, eller for å undersøke følsomheten til modellene på tvers av parametere).

En funksjon av Madonna er ganske nyttig for de slags romlige modeller som vi skal bygge. Dette er muligheten til å legge inn parametere og startbetingelser fra eksterne filer. Anta at vi bygde en modell for bevegelser av en menneskelig befolkning og en dyrepopulasjon over verdensrommet (rovdyr-byttemodellen som vi vil undersøke i detalj på en annen side). Vi vil lage bestander av rovdyr (mennesker) og byttedyr i hvert av ni romlige områder, ordnet som et firkantet rutenett. Man kan selvfølgelig ønske å skape mye større miljøer (si 100 til 100).

For å angi verdiene for antall rovdyr og antall byttedyr i hver av de 9 rutene i begynnelsen av simuleringen, kunne vi skrive bare en liten kode i Madonna. Det er sannsynligvis lettere å visualisere, og å implementere dette ved å lage et “kart” over startverdiene vi ønsker. Den neste figuren viser et skjermbilde av et Excel-regneark (legg merke til at arket er lagret som en .csv-fil, ikke som et Excel-regneark).

Den første raden og kolonnen brukes til å angi indeksnumre for å identifisere plasseringene av de ni romlige områdene. Verdiene i de indre cellene gir startverdiene for (i dette tilfellet) antall rovdyr. I eksemplet har vi indikert at det er en begynnende befolkning på 1000 rovdyr, alle konsentrert i sentrum av rommet. Flere filer brukes til å initialisere flere variabler etter behov.

Når det opprinnelige verdikartet er opprettet, er det to ekstra trinn. Først skrives det litt programkode for å ringe etter filen. Her er et eksempel.

Den første linjen er en kommentar. Den andre linjen indikerer at vi initialiserer variabelen “pred_tmp” på tvers av en todimensjonal matrise som har dimensjonene “begin..end” av “begin..end.”  Verdiene av “begin” og “end” er satt et annet sted i programmet til “1” og “3” (i dette tilfellet) for å lage et 3 av 3-rutenett.  Vi forteller programmet at dette firkantede arrayet skal fylles med data fra en ekstern fil (#) som heter “pred” (den vi opprettet ovenfor).  Den eksterne filen skal leses med raden (i) og kolonnen (j) indeksene reversert.  Denne siste lille biten er særegen – av en eller annen grunn indekserer Madonna datasettet etter kolonner og rader. Vi vil at våre eksterne datafiler skal se ut som rad for kolonnekart over plassen vi bygger – så en oversettelse er nødvendig.

I eksemplet ber vi også om en annen fil for å initialisere antall byttedyr over de ni rutenettene.

Når denne koden er på plass, må vi fortelle Madonna (du trenger bare å gjøre dette en gang) hvor du kan finne dataene og laste dem inn. Dette gjøres fra menyen Fil>Importer datasett. Bruk nettleseren til å finne regnearkfilen, og velg den.
Dialogen nedenfor vises.

Siden vi importerer et sett med innledende verdier som vi vil lese som en todimensjonal matrise, har vi valgt alternativknappen “Matrix (2D).” Du kan bruke nøyaktig samme metode for å importere en eller flere vektorer til modellen din – noe som noen ganger er nyttig for å stille inn parametere og andre initialiseringsoppgaver.

Når du har opprettet eller åpnet modellens ligninger, og lastet de eksterne datafilene (hvis noen), kan du bruke verktøyene i simuleringsmiljøet til å eksperimentere med modellen, og produsere linjediagram og tabellutgang. Tabellutgangen kan eksporteres for bruk i andre programmer.

Madonna har ikke et “kart” som nettdisplay for utdata – dette er en uheldig begrensning for hva slags modeller vi ønsker å bygge. Vi jobber fortsatt med dette problemet, og håper å enten lage et verktøy eller finne et som vil tillate grafiske presentasjonsvariabler i kvadratmatriseform – helst med animasjon.

Dette er ganske nok for nå, og nok til å komme i gang. Se på noen få sider på dette nettstedet, se gjennom brukerhåndboken. Se på koden for noen få av våre modeller. Jeg tror du vil finne at det ikke vil være vanskelig å lære en mestre de nødvendige ferdighetene for å lage nyttige modeller i Madonna, og bruke dets simuleringsmiljø for å eksperimentere med dem. Vi lover ikke at det ikke er noe arbeid; men vi tror at dette er mye enklere enn de fleste alternativer som er tilgjengelige for å bygge romlige modeller.