Monte-Carlo-Simulation mit QGIS und pgRouting auf optimaler Gehwegkonstruktion

17

Ich bin neu in der räumlichen Analyse und würde eine allgemeine Anleitung für ein Projekt begrüßen, das ich versuche (ich fange bei Null an).

ZIEL: In meiner Heimatstadt finden Sie die besten Standorte für die Installation von 2000 Fuß Gehsteigen, um die meisten Haushalte mit dem Central Business District (CBD) zu verbinden. Ich habe Shapefiles mit vorhandenen Strukturen (Haushalten), Straßen und Gehwegen (bereits installiert).

Hier ist mein Lösungsvorschlag / Denkprozess:

  1. Konvertieren Sie das vorhandene Straßennetz in eine Datenbank mit Knoten, die durch Gewichte (dh Entfernungen) verbunden sind. Gibt es eine Möglichkeit, dies direkt in QGIS (oder einem anderen Programm) zu tun, indem Sie auf alle Schnittpunkte klicken?
  2. Berechnen Sie mithilfe der Routing-Funktionen von pgRouting oder etwas anderem die Anzahl der Haushalte, die sich im Umkreis von 2 Kilometern zum Central Business District befinden (z. B. ein Lat-Long-Punkt oder ein Polygon). Dies ist der Basiswert für den "Haushaltszugang".
  3. Platzieren Sie nach dem Zufallsprinzip weitere 2000 Fuß (z. B. in 10-Fuß-Segmenten) von Gehsteigen auf der Gehsteigschicht. Dies entspricht dem willkürlichen Bau einer Reihe neuer Bürgersteige.
  4. Berechnen Sie die Knoten und Gewichte unter Verwendung des neuen Fußgängernetzwerks wie in (1) neu und berechnen Sie dann die Anzahl der Haushalte, die sich jetzt innerhalb von 2 km Entfernung vom CBD befinden, wie in (2). Es sollte mit den zusätzlichen Bürgersteigen zunehmen. Speichern Sie die Positionen der zusätzlichen Bürgersteige und den zugehörigen Wert für den "Haushaltszugang" in einer Datei (z. B. einer Tabelle).
  5. Wiederholen Sie die Schritte (3) und (4) 10000 Mal, ähnlich wie bei einer Monte-Carlo-Simulation. Wählen Sie unter Verwendung der 10000 Datensätze die Standorte für die Bürgersteigplatzierung aus, die die Anzahl der Haushalte im Umkreis von 2 km um das CBD maximieren.

Klingt dieser Denkprozess realistisch? Hat jemand irgendwelche Vorschläge?

- Ich möchte dies mit einer Kombination aus QGIS und R erreichen, bin jedoch offen für das Erlernen von PostGIS und / oder Python (oder etwas anderem), um das Ziel zu erreichen.

baha-kev
quelle
1
Vielleicht möchten Sie stattdessen einen genetischen Algorithmus in Betracht ziehen. Das ist fast der Prozess, den Sie beschrieben haben. Ich bin mir ziemlich sicher, dass es Python-Bibliotheken gibt, die genetische Algorithmen unterstützen.
Chris
1
Es sieht so aus, als hätte R auch Bibliotheken für genetische Algorithmen.
Chris
6
Das ist ein großes Problem. Die meisten zufälligen Platzierungen von 200 Fuß-Bürgersteigsegmenten verbinden jedoch nichts mit etwas anderem. Sie werden so ungeleitet nicht an ein Optimum herankommen. Darf ich vorschlagen, Ihre ersten Überlegungen darauf zu konzentrieren, wie das Problem abstrakt formuliert werden kann (unabhängig von Datenstrukturen oder Programmierumgebungen), damit Sie (a) solche Probleme im Voraus identifizieren und (b) für das gesamte Spektrum der verfügbaren Lösungsmethoden offen bleiben können? Es erscheint verfrüht, eine bestimmte Lösungsmethode vorzuschlagen.
whuber
2
Verfrüht? Ich stimme nicht zu. In der Tat ist der oben skizzierte Denkprozess ein Ansatz; Ich hoffe, dass es das Brainstorming in den Mittelpunkt stellt und nützliche Rückmeldungen liefert. Trotzdem bin ich offen für die gesamte Palette der verfügbaren Lösungsmethoden. Die Segmente so zu beschränken, dass die Gehwege so platziert werden, dass sie immer miteinander verbunden sind, ist einfach zu implementieren und hilft bei der Suche nach einer Lösung. Danke für den Vorschlag.
baha-kev
6
Wenn Sie sich ein wenig zurückziehen und das Randomisierungsmaterial vergessen, stellen sich folgende Fragen: * Was für ein Optimierungsproblem ist das? Welche Eigenschaften hat es? (ZB Linearität, Konvexität, Quasikonvexität usw.). * Hat es äquivalente Formulierungen wie ein Dual? * Gibt es alternative Darstellungsmöglichkeiten, z. B. in Bezug auf Eigenschaften von Diagrammen oder mit Straffunktionen? Eine Doppelformulierung wäre beispielsweise, die Gesamtlänge der Bürgersteige zu minimieren, die einer bestimmten Bevölkerungsgruppe dienen. Dies könnte auf eine dynamische Programmierlösung hindeuten.
Whuber

Antworten:

1

Vielleicht möchten Sie die Solver-Erweiterung in Excel verwenden. Ich habe sie einige Male in der Linienprogrammierung verwendet.

Hier ist ein Link zu einem Crashkurs auf LP unter Verwendung von Solver:

http://www.economicsnetwork.ac.uk/cheer/ch9_3/ch9_3p07.htm

GISdork
quelle
2
Es ist eine nette Idee und kann nützlich sein, um mit kleinen Spielzeugproblemen zu spielen. Leider ist Excel dieser Aufgabe nicht gewachsen. Abgesehen davon, dass es ein viel zu großes Problem ist, um es zu handhaben, wäre es unerschwinglich schwierig, die Konnektivitätsbeschränkungen in Excel zu codieren: Sie müssen sicherstellen, dass die Bürgersteige tatsächlich Menschen mit dem CBD verbinden!
whuber