path-simulator
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
Wanderer, es gibt keine Straße, man macht seinen Weg zu Fuß* - Selbstorganisation von Trampelpfaden im Raum
Rieke Ammoneit und Chris Reudenbach 2020
Einleitung
Räumlich agiernde Akteure müssen eben diese Räume nutzen und erschließen. Geschieht diese Nutzung regelmäßig entstehen Wege. Diese erleichtern und optimieren, sei es operationalisiert in Form von Strassen und befestigten Wegen oder ungeregelt als Trampelpfade, Steige o.ä., die Nutzung des erdgebundenen Raumes. Wo es keine regelhafte Infrastruktur gibt, geschieht dies durch gemeinschaftliche Nutzung oder um es mit dem spanischen Dichter Antonio Machado auszudrücken: "Wanderer, es gibt keine Straße, man macht seinen Weg zu Fuß" [Machado 1917].
Folgt man Helbig (Helbing 1997) gibt es über die verschiedensten Disziplinen etwa der Stadtplanung, Verkehrsplanung, Archäologie, Geographie und Systemforschung ein breites Interesse an einem vertieften Verständis dieses Prozesses. Die Abstraktion solcher Systeme und die daraus abgeleitete Modellbildung kann theoretisch in der Selbstorganisation von Systemen und den daraus enstehenden ermergenten Strukturen begründet werden (Luhmann 1984). Einfach ausgedrückt enstehen Wege (wie Senor Machado sagt) durch die Wechselwirkung des Akteurs und seinen Bewegungsabsichten mit einem gegebenen Raum.
Gerade im planerischen Umfeld so z.B. bei Neu- oder Umplanunge von Stadtteilen, Parks etc. stellt sich häufig die Frage nach guten oder organischen Wegen [Molnar 1995, Schenk 1999 Schaber 2006]. Als gute Wege sollen in diesem Kontext Wege bezeichnet werden, die von den Fussgängern und anderen Nutzern des Raumes angenommen und aktiv genutzt werden. Sind regulär solche Wege nicht verfügbar oder werden als nicht nützlich empfunden, enstehen häufig wilde Wege also Trampelpfade, da Akteure diese Wege nutzen und durch eine unabgesprochene gemeinsame Bevorzugung häufig begangener Strecken diese zu einem Weg stabilisieren.
In der vorliegenden Studie soll die spontane Entstehung von Trampelpfaden in einem einfachen isomorphen Raum untersucht werden. Insbsondere ob und inwieweit die Anazhl und die Wahrnehmungsfähigkeit der Akteure eine Auswirkung auf die entstehenden Wegemuster haben. Hierzu sind insbesondere Modellsysteme wie NetLogo geeignet, da sie einen einfachen softwarebasierten Zugang zur Programmierung Und Validierung agentenbasierter Prozesse im Raum bieten (Uhrmacher & Weyns 2009, Gilbert & Bankes 2002, Wilensky 1999).
Fragestellung und Hypothese
Die einleitend dagestellte, grundlegende Beobachtung, dass Trampelpfade entlang gemeinsam zurückgelegter Routen selbstorganisert entstehen wird durch die Neigung begründet, Wege zwischen einem Hier und Dort zu optimieren. Es wird zudem beobachtet, dass weitere Akteure, sobald solche Spuren sichtbar sind, dazu neigen diese zu nutzen, was wierderum die Sichtbarkeit der Trittspuren erhöht (vgl. Molnar 1997, Helbing 1997). Aus den den einzelnen Trittspuren werden dann Trampelpfade die scheinbar spezifischen Regeln folgen. Die konkrete Frage dieser Untersuchung lautet also: Entstehen Wege aus der Neigung der Nutzer bereits sichtbare Trittmuster zu nutzen und inwieweit ist es von der Wahrnehmung der Nutzer abhängig wie die Struktur der Wege ist?
Zur Untersuchung werden folgende Hypothesen aufgestellt:
Orientieren sich die Akteure an der Höhe der Popularität eines Trampelpfadpatches, dann (1) sind die Verbindungen zwischen Zielen kürzer, (2) es entstehen mehr direkte Punkt zu Punkt Wege und es entstehen weniger Trampelpfadpatches als bei der Orientierung an beliebigen Trampelpfadpatches.
Je weitreichender die Wahrnehmung der Akteure ist, desto (1) stärker konvergieren Wege zu gemeinsam genutzten Pfaden mit (2) insgesamt mehr Nebenpfaden und (3) mehr Trampelpfadpatches als unter (1)
Methoden
Zur Abstraktion und Modellbildung wird aus obiger Fragestellung folgendes Wortmodell aufgestellt (Bossel 2004):
"Bei zufällig gegebenen festen Zielen in einem isomorphen Raum wird auf einer
approximativ linearen (direkten) Verbindung zwischen diesen Zielen durch wiederholte
Benutzung der gleichen Trittpatches ein Trampelpfad enstehen. Dieser direkte Weg
wird modifiziert, falls die Neigung der Akteure bereits existierende Wegstücke auf
dem Weg zum Ziel zu nutzen zunimmt. Je mehr dieser Wegstücke verfügbar sind und
eingesehen werden können, desto stäker wird eine Veränderung der geraden Wege zu
eher bogenförmig oder gekrümmten Wegen stattfinden."
Rahmenbedingungen des Modelllaufs
Die Hypothesenüberprüfung soll mit Hilfe einer iterativen Veränderung der relevanten Parameter Sichtweite und Poularitätsgewichtung erfolgen. Hierfür ist grundsätzlich der Ansatz einer Sensitivitätsstudie geeignet (Thiele et al. 2014). Bei Anwendung einer systematischen Untersuchung werden reproduzierbare Raumbedingnen (siehe Abbildung 1) mit einer vollständigen Kombinationen verschiedener Akteurseinstellungen in definierter Anzahl wiederholt. Erwartet wird, dass zu den jeweiligen Paramterkombinationen spezifische und vegleichbare Raumstrukturen entstehen.
Ziele und Raum
Der Akteursraum wird durch die Positioniereung der Scheitelpunkte eines auf einer isomorphen Fläche (grün) leicht rotierten gleichseitigen Dreiecks (vgl. a. Helbing (1997)) gebildet (siehe Abbildung 1).
Abbildung 1: Räumliche Positionen des Experiments. Die orangen Scheitelpunkte des Dreiecks (rot eingekreist) sind die wechselseitig zugelosten Ziele. Grüne Flächen sind Grünland. Trittspuren und Agenten sind nicht gezeigt.
Regeln aus dem Wortmodell
Aus dem obigen Wortmodell werden die folgenden Regeln abgeleitet:
Die Akteure (walkers) agieren nach den folgenden Regeln:
- haben immer ein bekanntes Ziel
- versuchen dieses Ziel auf direktem Weg zu erreichen
- identifizieren, je Schritt, ob eine Trittspur in Richtung zum Ziel erkennbar ist
- falls ja und so der Weg zum Ziel verkürzt wird, wählen sie die Richtung auf eine dieser Trittspuren
Die Raumeinheiten (patches) haben die folgenden Eigenschaften:
- Nutzung (Grünland [grün], Trittspur [grau je nach popularity], Ziel [orange])
Folgende Interaktion (Prozesse) finden statt:
- Die Anziehungskraft (popularity) einer Trittspur wird bei jedem Betreten durch einen Akteur um einen Punkt aufgewertet. Ab einem definierten Schwellwert der popularity wird aus Grünland eine sichtbare Trittspur.
Das Netlogo Modell
Das entwickelte NetLogo Modell "paths-simulater-2019" ist eine Weiterentwicklung des NetLogo-Library-Modells "paths" (Grider & Wilensky 2015). Die dort implementierte Optimierungsfunktion zur Wegfindung (best-way-to) wurde um die Funktionalität nach maximaler Popularität zu selektieren erweitert. Der Algorithmus analysiert die Distanz zum Ziel und innerhalb eines definierten Sichtradius die Distanz zu einem Trittpach das den Weg zum Ziel verkürzt (falls vorhanden). Im Falle eines vorhandnen Trittpatchs wird dieses angesteuert. Für die vorliegende Untersuchung wurden darüberhinaus das in Abbildung 1 gezeigte Ziel-Szenario Y in Anlehnung an Helbing (1997) Raumsetting implementiert und verwendet (vgl. Abbildung 1).
Zur praktischen Umsetzung wird das Behaviour-Space-Werkzeug der NetLogo Programmierumgebung verwendet. Die in diese Modelldatei integrierten Behaviour-Space Skripte "run12Y", _"run34Y"_ und "run5-7Y" starten insgesamt 35 Modelläufe, die die Grundlage der Untersuchung darstellen. (vgl. Tabelle 1).
Die Simulationen werden je Szenario in 5-facher Wiederholung mit je zehn zufällig in der Modellwelt eingesetzten Akteuren durchgeführt. Die Akteure streben den ebenfalls jeweils zufällig zugelosten Zielpunkten zu. Bei Erreichen erfolgt eine Neulosung des nächsten Zieles. Für die genauen Einstellung je Simulation sei auf den Behaviour Space verwiesen.
Tabelle 1: Matrix der Modellaufparameter. Jeder Modellauf (run) wurde 5-fach wiederholt. Siehe auch Abbildungspanel 2, 3 und 4.
run_1 | run_2 | run_3 | run_4 | run_5 | run_6 | run_7 | |
n-walkers | 10 | 50 | 10 | 10 | 10 | 10 | 10 |
walker-vis-dist | 1 | 1 | 25 | 50 | 1 | 25 | 50 |
max-pop | false | false | false | false | true | true | true |
Ergebnisse
Die Simulationsläufe wurden über 2500 Zeitschritte iteriert und dann abgebrochen. In allen Modelläufen enstanden zu dieser Laufzeit keine neuen Wegstrukturen.
Da in run_1 und _run_2 gut erkennbar ist, dass die grundsätzlichen Muster der patches mit einer Popularity > min-poplimit qualitativ übereinstimmend sind, werden exemplarisch die in Tabelle 1 gelisteten Läufe (runs) gezeigt. Dies vernachlässigt die Beobachtung, dass bei wenigen Akteuren und einer eingeschränkten Sicht (siehe run_3) zwar qualitativ ähnliche und vergleichbare Muster enstehen, diese jedoch in der endgültigen Ausprägung und vor allem räumlichen Lage sehr varierend sind. Dieser räumliche Effekt ist der initialen Verteilung der Akteure geschuldet und es darf angenommen werden, dass bei einer gleichmässigen Verteilung im Raum die Muster auch für Läufe mit eingeschränkterer Wahrnehmung räumlich stabil bleiben.
Modelläufe 1 und 2 - Fokussierte Orientierung
In Abbildungspanel 2 sind run_1 und run_2 (vgl. Tabelle 1) dargestellt. Beide Läufe sind mit einer minimalen walker-vis-dist mit dem Wert 1 durchgeführt worden. Gut zu erkennen sind die zwischen den Zielpunkten faktisch linearen und identischen Pfadmuster für Betretungshäufigkeiten größer des min-poplimit-Schwellenwertes. Auch gut zu erkennen ist die Verteilung der popularity, die einen massiven Peak im ersten Dezil aufweist und dann im 7 bis 9 Dezil einen leichten zweiten Peak produziert. Der erste Peak wird von den selten betretenen Patches erzeugt während der zweite Peak durch die Patches mit hohen (die Wege selber) aber nicht den höchsten (vor den Umkehrpunkten und "Eckentrittpatches" auf den Wegen) popularity-Werten der Patches gebildet wird.
Abbildung 2: Modelllauf 1 und 2 mit : walker-vision-dist = 1, n-walkers = 10/50, max-pop = false, Wiederholungsläufe 1-5. Schwarze Patches sind = min-poplimit häufig betreten worden. Größer min-poplimit wird die Farbe Magenta bis weiss je nach Wertebereich von maximum-popularity skaliert.
Die schwarz visualisierten Patches weisen eine Betretunghäufigkeit gleich des min-poplimit-Schwellenwertes aus. Sie markieren vor allem den Weg des walkers zum ersten Ziel. Es kann (eine Wiederholung >> 5 vorausgesetzt) erwartet werden, dass dieser Anteil im Verhältnis zu den patches mit einer popularity größer des min-poplimit-Schwellenwertes sich über viele Simulationen stabilisiert und ähnlich ist. Allerdings ist auch hier die Abhängigkeit von der initialen räumlichen Verteilung der Akteure ersichtlich. Diese Ahnahme bestätigen eingeschränkt die Quotienten des Verhältnis von popularity = min-poplimit / popularity > min-poplimit
Tabelle 2: Matrix der Quotienten von popularity = min-poplimit / popularity > min-poplimit (pop-ratio)
run_1_1 | run_1_2 | run_1_3 | run_1_4 | run_1_5 | run_2_1 | run_2_2 | run_2_3 | run_2_4 | run_2_5 | |
pop-ratio | 0.965 | 0.796 | 0.958 | 1.027 | 1.033 | 0.429 | 0.450 | 0.579 | 0.600 | 0.578 |
Modelläufe 3 und 4 - Flexible Orientierung
In Abbildungspanel 3 sind run_3 und run_4 (vgl. Tabelle 1) dargestellt. Die Läufe unterscheiden sich durch die erweiterte Wahrnehmung der walker (siehe Tabelle 1). Gut zu erkennen sind die für Betretungshäufigkeiten größer des min-poplimit-Schwellenwertes zwischen den Zielpunkten deutlich gekrümmten und aufgespreizten Trampelpfade. Vor allem im run_3 fällt die Variabilität des Hauptmusters auf. Hier ist die Reichweite der walker-vis-dist mit 25 deutlich eingeschränkter als im run_4 (50). Daher sind die resultierenden Muster abhängiger von der initialen Verteilung der Akteure. Im run_4 ist dieses Muster dank der größeren Reichweite der walker-vis-dist sichtbar stabiler und unabhängiger von der Erstverteilung der Akteure im Raum. Auch gut zu erkennen ist die Verteilung der popularity-Werte, die anders als zuvor in den ersten 3 Dezilen eine Häufung von Patches aufweist und dann quasi exponentiell abfällt. Die starke linksschiefe Verteilung wird durch das Aufspreizen der Wege und die hierdurch bedingte langsame Zunahme der Patches mit höherer Popularität erzeugt.
Abbildung 3: Modelllauf 3 und 4 für die Einstellungen siehe Tabelle 1. Schwarze Patches sind gleich min-poplimit häufig betreten worden. Größer min-poplimit wird die Farbe Magenta bis weiss je nach Wertebereich von maximum-popularity skaliert.
Modelläufe 5 - 7 - Fokussierte Orientierung auf maximale Popularität
In Abbildungspanel 4 sind run_5 bis _run_7 (vgl. Tabelle 1) dargestellt. Die Läufe unterscheiden sich durch die schrittweise erweiterte Wahrnehmung der walkers und ihrer Orientierung an Patches mit einer maximalen Popularität (siehe Tabelle 1). Die Läufe unterscheiden sich recht deutlich von den zuvor gezeigten Simulationen. Während _run_5 erwartungsgemäß und bedingt durch die Bedingung _walker-vis-dist = 1 als prinzipiell identisch mit run_1 betrachtet werden kann, weichen die Läufe run_5 und run_7 erheblich von den vergleichbaren walker-vis-dist-Simulationen mit nicht optimierter Fokussierung auf maximale Popularität ab. Zunächst zeigen sich wie bei run_1 und run_6 als Hauptmuster eindeutig die linearen Optimierungspfade zwischen den Zielen die entsprechend hohe Popularitätswerte aufweisen. Betrachtet man aber vor allem den run_6 zeigt sich, dass wenig oder nur einmalig benutzte Parallel-Pfade zu den optimierten Hauptpfaden entstanden sind. Sehr stark tritt dies in run_6 #1-3 und run_7 #2/#4 hervor.
Abbildung 4: Modelllauf 5 -7 für die Einstellungen siehe Tabelle 1. Schwarze Patches sind = min-poplimit häufig betreten worden. Größer min-poplimit wird die Farbe Magenta bis weiss je nach Wertebereich von maximum-popularity skaliert.
Diskussion
Betrachtet man die Ergebnisse vor dem Hintergrund der gestellten Hypothesen so können folgende Schlüsse gezogen werden:
Hypothese 1 wurde mit den Modellläufen run_1, run_5, run_6, run_7 untersucht. In run_1 und run_5 war die Wahrnehmung maximaler Popularität nicht eingestellt, allerdings wirkt die Wahrnehmungreichweite von 1 der walker, im Zusammenhang mit der zu jedem Zeitschritt aktiven Zielausrichtung, in vergleichbarer Weise. Die Läufe run_6 und run_7 hingegen zeigen eindeutig lineare Optimierungsmuster, die bei mittlerer Wahrnehmungsreichweite deutlicher sichtbar werden als bei höherer Reichweite. Alle Varianten führen zu linearen und, falls für das Optimierungsverhalten notwendig, parallelen Wegstrukturen, die hinsichtlich der Entfernung optimiert kurz sind. Folglich kann Hypothese 1 sowohl hinsichtlich der Kürze der Wegstrecke als auch der Häufung von direkten Punkt-zu-Punkt Wegen bestätigt werden
Mit den Läufen run_3 und run_4 kann gezeigt werden, dass abhängig von der Anzahl der für die Akteure sichtbaren Trittpatches, gekrümmte und breitere Wege entstehen. Diese Wege sind nicht hinsichtlich ihrer Distanz zwischen den Zielpunkten optimiert. Ihre Lage im Raum ist offensichtlich von der zufälligen Erstverteilung der Akteure abhängig (run_3) und wird mit zunehmender Wahrnehmungsreichweite bzw. Anzahl der Akteure stabiler reproduzierbar (run_4). Aufgrund dieser Beobachtung kann auch Hypothese 2 bestätigt werden, da mit zunehmender Wahrnehmung die Trampelpfade stärker konvergieren und zu gemeinsam genutzten Pfaden, zusätzlichen Nebenpfaden und weiteren Pfadstrukturen ausgebaut werden.
Auf Grundlage dieser Beobachtungen kann geschlossen werden, dass das vorliegende Modell in der Lage ist, die, auch von anderen Autoren (vgl. Molnar 1997, Helbing 1997) beobachteten, Strukturen zuverlässig wiederzugeben und als Grundlage für weitere Fragestellungen wie etwa Barrieren oder komplexere Raumstrukturen geeignet erscheint.
Referenzen
- Bossel, H, (2004), Systeme, Dynamik, Simulation : Modellbildung, Analyse und Simulation komplexer Systeme. Norderstedt, Books on Demand GmbH.
- Feistel,R. & Ebeling, W. (1989), Evolution of Complex Systems. Self-Organization, Entropy and Development. Kluwer, Dordrecht,1989.
- Gilbert N. & S. Bankes (2002), Platforms and methods for agent-based modeling. Proc. Natl. Acad.Sci. USA 99. Suppl 3.
- Grider, R. and U. Wilensky, U. (2015). NetLogo Paths model. (http://ccl.northwestern.edu/netlogo/models/Paths). Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.
- Helbing D., Keltsch & P. Molnar (1997), Modelling the evolution of human trail systems Nature Vol. 388.
- Henderson L.F. /1974), On the fluid mechanics of human crowd motion, Transportation Research, Volume 8, Issue 6, 1974, Pages 509-515 DOI.
- * Machado A.: "Campos de Castilla", 1917, zit nach URL, Zugriff: 28.01.2020
- Luhmann, N., (1984), Soziale Systeme: Grundriß einer allgemeinen Theorie, Frankfurt, Suhrkamp
- Molnar P. (1995), Modellierung und Simulation der Dynamik von Fußgängerströmen (Diss.), URL
- Schaber C. (2006), Space Syntax als Werkzeug zur Analyse des Stadtraums und menschlicher Fortbewegung im öffentlichen Raum unter besonderer Berücksichtigung schienengebundener Verkehrssysteme. Das Beispiel des Leipziger City-Tunnels. Masterarbeit. URL, Zugriff: 28.01.2020
- Schenk M. (1999), Optimierungsprinzipien der menschlichen Fortbewegung. URLZugriff: 28.01.2020
- Teahan T. (2010a), Artificial Intelligence: Exercises – Agents and Environments, Ventus Publishing ApS, ISSBN 978-87-7681-591-2, URL, Zugriff: 28.01.2020
- Teahan T. (2010b), Artificial Intelligence: Exercises – Agent Behaviour I, Ventus Publishing ApS, ISBN 978-87-7681-592-9, URL, Zugriff: 28.01.2020
- Thiele J. C., Kurtha W. & V. Grimm (2014), Facilitating Parameter Estimation and Sensitivity Analysis of Agent-Based Models: A Cookbook Using NetLogo and R, Journal of Artificial Societies and Social Simulation 17 (3) 11, URL, DOI, Zugriff: 28.01.2020
- Uhrmacher A. M. & D. Weyns (2009), Multi-Agent Systems: Simulation and Applications. (CRC Press, Inc., Boca Raton, FL, USA, 7.
- Wilensky, U. (1999). NetLogo. (http://ccl.northwestern.edu/netlogo/), Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.
Comments and Questions
; define turtles breed [ walkers walker ] ; define turtles and patches specific variables walkers-own [ goal ] patches-own [ popularity streets obstacle ] ; define global (observer) variables globals [ roads visible-routes gini-index-reserve lorenz-points ] ; setup procedure carried out once to setup clear-all set vis-pop false ask patches [ set pcolor green set obstacle 0 set popularity 0 ] ; call the experiment setup procedure make-experiment ; if no experiment is choosen stop if selected-experiment = "none" [ if message [user-message (word "Es wurde kein Szenario gewählt?!\n Zähle jetzt Schafe...")] ask n-of n-walker patches [sprout-walkers 1 [ set color white set size random 10 set shape "sheep" ] ] ] ; finsihed so reset ticks ; if you want to calculate a lorenz curve you need to uncomment this call ;update-lorenz-and-gini reset-ticks end ; procedure that controls the model run ; adapted from the original paths model to go ; for runtime scaling and graying the popularity patches ifelse not vis-pop [ask patches with [popularity >= pop-lowlimit and pcolor != orange and pcolor != red] [set pcolor gray]] [scale-p] ; main procedure that rules the movement move-walkers ; if you want to calculate a lorenz curve you need to uncomment this call ;update-lorenz-and-gini tick ; if you do not want to use the Behavoiur Space you may use the next to calls to dump out result files ;if ticks = 4000 [ ; export-world (word "results/results " behaviorspace-experiment-name behaviorspace-run-number ".csv") ; export-plot "number of patches per percentile" (word "results/results " behaviorspace-experiment-name behaviorspace-run-number "_number-of-patches-per-percentile.csv") ;] end ; procedure that calculate the attraction of a patch ; adapted from the original paths model to become-more-popular set popularity popularity + 1 ; if the increase in popularity takes us above the threshold, become a route ; current threshold is 1 times by a turtle if pcolor != orange [ if obstacle != 1 [ if popularity >= pop-lowlimit [ set pcolor gray ]] ] end ; procedure to control the movement of walkers ; adapted from the original paths model to move-walkers ask walkers [ if patch-here = goal [ if selected-experiment = "s-goal" [set goal one-of patches with [streets = 1] if show-goal [ ask goal [set pcolor yellow] ] ] if selected-experiment ="o-goal" or selected-experiment ="Y" or selected-experiment ="square" or selected-experiment ="houseOfSantaClaus" [set goal one-of patches with [pcolor = orange]] ] walk-towards-goal ] end ; procedure to control the popularity of patches, ; the destination of the next walkes step and the avoidance of obstacles ; adapted from the original paths model to walk-towards-goal ask patch-here [ become-more-popular ] face best-way-to goal avoid-patches end ; procedure that calculate and perfom the decison of the best direction ; adapted from the original paths model to-report best-way-to [ destination ] ; of all the visible route patches (=gray), select the ones ; that would take me closer to my destination let visible-patches patches in-radius walker-vision-dist ;let visible-routes visible-patches with [popularity >= pop-lowlimit] ifelse not max-pop [set visible-routes visible-patches with [ popularity >= pop-lowlimit] ;print "1" ] [set visible-routes visible-patches with-max [ popularity] ] ;print [popularity] of visible-routes let routes-that-take-me-closer visible-routes with [ distance destination < [ distance destination - 1] of myself ] ; decision ifelse any? routes-that-take-me-closer [ ; from those route patches, choose the one that is the closest to me report min-one-of routes-that-take-me-closer [ distance self ] ] [ ; if there are no nearby routes to my destination report destination ] end ; this procedure adapts the forward looking example of obstacles avoidance as presented by ; Vision Cone example of the Netlogo Lib in addition some ideas are taken from ; Thomas Christy at Bangor University 2009 and modified by William John Teahan ; http://files.bookboon.com/ai/index.html ; https://files.bookboon.com/ai/Obstacle-Avoidance-1.html ; found by google search "netlogo obstacle avoidance" page 3 to avoid-patches ; visualisation of cone of sight ; recolor all cone patches to the original colors ; we have to do so because otherwise the last cone will remain ask patches with [pcolor = sky] [ set pcolor green ] ask patches with [pcolor = pink] [ set pcolor red ] ask patches with [pcolor = cyan] [ set pcolor gray ] ; if visualisation of cones ist true ; color the cone depending on the underlying patch classes if vis-vision [ ask patches in-cone walker-vision-dist walker-v-angle [ if pcolor = green [ set pcolor sky ] if pcolor = gray [ set pcolor cyan] if pcolor = red [ set pcolor pink ] ] ] ; start of obstacle avoidance ; count patches in cone that are obstacles if there is at least one obstacle ; turn 12.5 degrees ; do this until there is no obstacle in cone while [count patches in-cone walker-vision-dist walker-v-angle with [obstacle = 1] > 0] [ rt 12.5 ] ; error workaround for touching the boundary of world that produces the "nobody" error ; we just check the patch in front and only if it is not nobody we head on let try one-of patches in-cone walker-vision-dist walker-v-angle with [obstacle != 1] if try != nobody ; turn to one of the patches in the cone WITHOUT (!=1) an obstacle [face one-of patches in-cone walker-vision-dist walker-v-angle with [obstacle != 1]] ; last check if there is no obstacle step 1 forward ; otherwise step 1 backwards and turn 90 deg ifelse [obstacle] of patch-ahead 1 != 1 [fd 1 ] [bk 1 lt 90] end ; ##################################################### ; create experiments ; this procedure creates some static road systems ; road width and geometry typ is defined by the GUI to create-roads if preset-roads = "triangle" [ set roads patches with [pxcor = -20 or pycor = 20 or pycor = pxcor - 2 ] ] if preset-roads = "square" [ set roads patches with [pxcor = -20 or pycor = 20 or pxcor = 20 or pycor = -20] ] if preset-roads = "X" [ set roads patches with [pxcor = pycor or (-1 * pxcor) = pycor ] ] ask roads [ paint-p patches in-radius road-width set pcolor gray ] set roads patches with [pcolor = gray] ask roads[ set popularity roads-pop set streets 1 ] display end ; this procedure creates some static road systems ; geometry is defined by the GUI to make-experiment ; triangle if selected-experiment = "Y" [ ; not rotated ;https://www.triangle-calculator.com/de/?what=vc&a=-40&a1=-40&3dd=3D&a2=0&b=0&b1=29.2825&b2=0&c=40&c1=-40&c2=0&submit=Berechnen&3d=0 ;[-40 -40] [0 29.2825] [40 -40] ;slightly rotated ;https://www.triangle-calculator.com/de/?what=vc&a=-40&a1=-40&3dd=3D&a2=0&b=4&b1=29&b2=0&c=35&c1=-43&c2=0&submit=Berechnen&3d=0 ;recolorize remaining orange patches back to green ask patches with [pcolor = orange] [set pcolor green] ;define goal patches and make them orange ask patches at-points [ [-40 -36] [4 27] [35 -43]] [ set pcolor orange] ; create walkers according to the settings ask n-of n-walker patches [sprout-walkers 1 [ if selected-experiment ="Y" [set goal one-of patches with [pcolor = orange]] set size 5 set color black set shape "stud_tri"] ] ] ; pentagle if selected-experiment = "houseOfSantaClaus" [ ask patches with [pcolor = orange] [set pcolor green] ask patches at-points [[-35 10] [-35 -40] [0 40] [35 10] [35 -40]] [ set pcolor orange] ask n-of n-walker patches [sprout-walkers 1 [ if selected-experiment ="houseOfSantaClaus" [set goal one-of patches with [pcolor = orange]] set size 4 set color 45 set shape "person student"] ] ] ; square if selected-experiment = "square" [ ask patches with [pcolor = orange] [set pcolor green] ask patches at-points [[-35 40] [-35 -40] [35 40] [35 -40]] [ set pcolor orange] ask n-of n-walker patches [sprout-walkers 1 [ if selected-experiment ="square" [set goal one-of patches with [pcolor = orange]] set size 4 set color 45 set shape "person student"] ] ] ; a street szenario is choosen and strets are the only places for goals and turles to be born if selected-experiment = "s-goal" [ if preset-roads != "none" [create-roads ; create walker and goals on structures (roads) ask n-of n-walker roads [ sprout-walkers 1 [ if selected-experiment = "s-goal" [set goal one-of patches with [streets = 1]] if show-goal [ask goal [set pcolor yellow]] set size 4 set color 45 set shape "person student" ] ] ] if preset-roads = "none" [ ask n-of n-walker patches [ sprout-walkers 1 [ set goal one-of patches if show-goal [ask goal [set pcolor yellow]] set size 4 set color 45 set shape "person student" ] ] if message [user-message (word "Es wurden keine vordefinierten Strassen gewählt.\n Bitte JETZT Strassen zeichnen!")] ] ] ; a free goal szenario is choosen (goals MUST be orange) if selected-experiment ="o-goal" [ if preset-roads != "none" [create-roads] ask n-of 4 patches with [pcolor = green][set pcolor orange] ask n-of n-walker patches [sprout-walkers 1 [ if selected-experiment ="o-goal" [set goal one-of patches with [pcolor = orange]] set size 4 set color 45 set shape "person student"] ] if message [user-message (word "Es wurden vier zufällige Ziele erzeugt. \nMit dem draw-world-items Button und der Farbauswahl orange können Weitere Ziele gesetzt werden.\n die Farbauswahl gray bzw. green erzeugt Strassen und Wiesen. ") ] ] end ;######################################################### ; reporter for analysis ; reports number of gray patches to-report trampling report count patches with [popularity >= pop-lowlimit] end ; reports number of patches with the pop-lowlimit value to-report popularity-minimum report count patches with [popularity = pop-lowlimit ] end ; reports teh average popularity value of all patches to-report popularity-average let psum sum [popularity] of patches with [popularity >= pop-lowlimit] let pcount count patches with [popularity >= pop-lowlimit] report psum / pcount end ;reports the maximum value of popularity to-report popularity-maximum let psum sum [popularity] of patches with-max [popularity] let pcount count patches with-max [popularity] report psum / pcount end ; reports the Gini Coefficient to-report gini-05 report gini-index-reserve / trampling end ; calls the help text not implemented yet to help clear-all import-drawing "images/help.png" if user-yes-or-no? "OK?" [ clear-all ] end ;; this procedure recomputes the value of gini-index-reserve ;; and the points in lorenz-points for the Lorenz and Gini-Index plots to update-lorenz-and-gini let sorted-popularity sort [popularity] of patches with [popularity >= pop-lowlimit] let total-popularity sum sorted-popularity let popularity-sum-so-far 0 let index 0 set gini-index-reserve 0 set lorenz-points [] ;; now actually plot the Lorenz curve -- along the way, we also ;; calculate the Gini index. ;; (see the Info tab for a description of the curve and measure) repeat count patches with [popularity >= pop-lowlimit] [ set popularity-sum-so-far (popularity-sum-so-far + item index sorted-popularity) set lorenz-points lput ((popularity-sum-so-far / total-popularity) * 100) lorenz-points ;print lorenz-points set index (index + 1) set gini-index-reserve gini-index-reserve + (index / count patches with [popularity >= pop-lowlimit]) - (popularity-sum-so-far / total-popularity) ] end ; function reports a list of the popuklarity values of all patches >= pop-lowlimit to-report spop report sort [popularity] of patches with [popularity >= pop-lowlimit] end ;; procedure to colorize the popularity ;; a linear approach from lowliomit to current max value is applied to scale-p if ticks > 10 [ let pmax max [popularity] of patches ;if pmax < pop-lowlimit [set pmax pop-lowlimit + pop-lowlimit] ;print pmax ask patches with [pcolor != orange and pcolor != green and pcolor != red] [ set pcolor scale-color magenta popularity pop-lowlimit pmax ] ] end ;######################################################### to paint-p [p] ask p [ set pcolor gray] end ; provides an simple way to draw new facilities to draw-world-items while [mouse-down?] [ create-turtles 1 [ setxy mouse-xcor mouse-ycor ask patches in-radius line-width [ set pcolor read-from-string p_color if pcolor = red [set obstacle 1 set streets 0] if pcolor = gray [set obstacle 0 set streets 1 set popularity roads-pop set popularity roads-pop] if pcolor = green [set obstacle 0 set streets 0 set popularity 0] ] die ] display ] end ; Copyright 2015 Uri Wilensky. ; See Info tab for full copyright and license.
There is only one version of this model, created over 5 years ago by Chris Reudenbach.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
path-simulator.png | preview | Preview for 'path-simulator' | over 5 years ago, by Chris Reudenbach | Download |
This model does not have any ancestors.
This model does not have any descendants.