Symulacja Monte Carlo z wykorzystaniem QGIS i pgRouting na optymalnej konstrukcji chodnika


17

Jestem nowy w analizie przestrzennej i doceniłbym ogólny kierunek projektu, który próbuję, opisany poniżej (zaczynam od zera).

CEL: Znaleźć najlepsze lokalizacje do zainstalowania 2000 stóp chodników w moim rodzinnym mieście, aby połączyć większość gospodarstw domowych z Central Business District (CBD), gdzie „połączone” oznacza w odległości 1,2 mili spaceru od CBD. Mam pliki kształtów pokazujące istniejące konstrukcje (gospodarstwa domowe), drogi i chodniki (już zainstalowane).

Oto moje proponowane rozwiązanie / proces myślowy:

  1. Przekształć lokalną sieć chodników w bazę danych węzłów połączonych wagami (tj. Odległościami). Czy istnieje sposób, aby to zrobić bezpośrednio w QGIS (lub innym programie), klikając wszystkie skrzyżowania?
  2. Oblicz liczbę gospodarstw domowych, które znajdują się w promieniu 1,2 km od centralnej dzielnicy biznesowej (np. Punkt długości lub wielokąta), korzystając z możliwości routingu pgRouting lub czegoś innego. Będzie to podstawowa wartość „dostępu dla gospodarstw domowych”.
  3. Używając warstwy drogi jako przewodnika, losowo umieść dodatkowe 2000 stóp (powiedzmy, w 10-stopowych odcinkach) chodników na warstwie chodnika. Jest to odpowiednik arbitralnej budowy szeregu nowych chodników.
  4. Ponownie oblicz węzły i ciężary, korzystając z nowej sieci dla pieszych, jak w (1), a następnie ponownie oblicz liczbę gospodarstw domowych, które znajdują się w promieniu 1,2 km od CBD jak w (2). Powinien wzrosnąć wraz z dodatkowymi chodnikami. Zapisz lokalizacje dodatkowych chodników i związaną z nimi wartość „dostępu do gospodarstwa domowego” do pliku (np. Arkusz kalkulacyjny).
  5. Powtórz kroki (3) i (4) 10000 razy, podobnie jak w symulacji Monte Carlo. Korzystając z 10000 zestawów punktów danych, wybierz lokalizacje chodników, które maksymalizują liczbę gospodarstw domowych w promieniu 1,2 km od CBD.

Czy ten proces myślowy brzmi realistycznie? Czy ktoś ma jakieś sugestie?

- Chciałbym to osiągnąć za pomocą kombinacji QGIS i R, jednak jestem otwarty na naukę PostGIS i / lub Pythona (lub cokolwiek innego), aby osiągnąć cel.


1
Zamiast tego możesz rozważyć algorytm genetyczny. To prawie proces, który opisałeś. Jestem prawie pewien, że istnieją biblioteki Pythona obsługujące algorytmy genetyczne.
Chris

1
Wygląda na to, że R ma również biblioteki algorytmów genetycznych.
Chris

6
To świetny problem. Jednak większość losowych miejsc na 200 10 'segmentach chodnika nie łączy niczego z niczym innym; nie zbliżysz się do optymalnego w tak niekierowany sposób. Czy mogę zasugerować wstępne rozważania na temat abstrakcyjnego formułowania problemu (niezależnie od jakichkolwiek struktur danych lub środowiska programistycznego), abyś mógł (a) wcześniej zidentyfikować takie problemy i (b) pozostawać otwarty na jak najszerszy zakres dostępnych metod rozwiązania? Proponowanie jednej konkretnej metody rozwiązania wydaje się przedwczesne.
whuber

2
Przedwczesny? Nie zgadzam się. Rzeczywiście, opisany powyżej proces myślowy jest jednym podejściem; Mam nadzieję, że skupi się na każdej burzy mózgów i przyniesie użyteczne informacje zwrotne. To powiedziawszy, jestem otwarty na najszerszy zakres dostępnych metod rozwiązania. Ograniczenie segmentów w taki sposób, aby chodniki były ustawione w taki sposób, aby zawsze łączyły rzeczy, byłoby łatwe do wdrożenia i pomogło w znalezieniu rozwiązania. Dzieki za sugestie.
baha-kev

6
Cóż, jeśli cofniesz się trochę i zapomnisz o przypadkach losowych, na myśl przychodzą następujące pytania: * Co to za problem z optymalizacją? Jakie to ma właściwości? (Np. Liniowość, wypukłość, quasiconvexity itp.). * Czy ma równoważne formuły, takie jak dual? * Czy istnieją alternatywne sposoby jego przedstawienia, na przykład pod względem właściwości grafów lub funkcji karnych? Na przykład jednym podwójnym sformułowaniem byłoby zminimalizowanie całkowitej długości chodników obsługujących daną populację. Może to sugerować dynamiczne rozwiązanie programistyczne.
whuber

Odpowiedzi:


1

możesz chcieć wykorzystać rozszerzenie Solvera w programie Excel, użyłem go kilka razy w programowaniu liniowym.

oto link do kursu awaryjnego na LP, wykorzystującego Solver:

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


2
To fajny pomysł i może być przydatny do zabawy z małymi problemami z zabawkami. Niestety program Excel nie spełnia tego zadania. Oprócz tego, że jest to zbyt duży problem, aby można go było obsłużyć, niezwykle trudno byłoby kodować ograniczenia łączności w programie Excel: musisz upewnić się, że chodniki faktycznie łączą ludzi z CBD!
whuber
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.