Simulasi Monte Carlo menggunakan QGIS dan pgRouting pada konstruksi trotoar yang optimal

17

Saya baru dalam analisis spasial dan akan menghargai beberapa arahan umum pada proyek yang saya coba, diuraikan di bawah ini (saya mulai dari awal).

TUJUAN: Untuk menemukan lokasi terbaik untuk memasang trotoar sepanjang 2000 kaki di kota asal saya untuk menghubungkan sebagian besar rumah tangga ke Kawasan Pusat Bisnis (CBD), di mana "terhubung" berarti dalam jarak 1,2 mil dari CBD. Saya memiliki shapefile yang menunjukkan struktur yang ada (rumah tangga), jalan, dan trotoar (sudah terpasang).

Inilah solusi / proses pemikiran yang saya usulkan:

  1. Ubah jaringan trotoar in-place menjadi basis data node yang terhubung dengan bobot (yaitu jarak). Apakah ada cara untuk melakukan ini secara langsung di QGIS (atau program lain) dengan mengklik semua persimpangan?
  2. Hitung jumlah rumah tangga yang berada dalam jarak 1,2 mil dari Central Business District (misalnya titik laten atau poligon) menggunakan kemampuan routing pgRouting atau yang lainnya. Ini akan menjadi nilai dasar "akses rumah tangga".
  3. Menggunakan lapisan jalan sebagai panduan, tempatkan secara acak 2000 kaki tambahan (katakanlah, dalam segmen 10 kaki) trotoar ke lapisan trotoar. Ini sama dengan membangun banyak trotoar baru secara sewenang-wenang.
  4. Hitung kembali node dan bobot menggunakan jaringan pejalan kaki baru seperti pada (1), dan kemudian hitung kembali jumlah rumah tangga yang sekarang berada dalam 1,2 mil dari CBD seperti pada (2). Itu harus meningkat dengan trotoar tambahan. Simpan lokasi trotoar tambahan dan nilai "akses rumah tangga" yang terkait ke file (misalnya spreadsheet).
  5. Ulangi langkah (3) dan (4) 10.000 kali, mirip dengan simulasi Monte Carlo. Dengan menggunakan 10000 set titik data, pilih lokasi penempatan trotoar yang memaksimalkan jumlah rumah tangga dalam 1,2 mil dari CBD.

Apakah proses pemikiran ini terdengar realistis? Adakah yang punya saran?

- Saya ingin menyelesaikan ini menggunakan beberapa kombinasi QGIS dan R, namun saya terbuka untuk mempelajari PostGIS dan / atau Python (atau apa pun) untuk mencapai tujuan.

baha-kev
sumber
1
Anda mungkin ingin mempertimbangkan algoritma genetika sebagai gantinya. Itu hampir proses yang telah Anda jelaskan. Saya cukup yakin ada pustaka python yang mendukung algoritma genetika.
Chris
1
Sepertinya R memiliki pustaka algoritma genetika juga.
Chris
6
Ini masalah besar. Namun, sebagian besar penempatan acak segmen trotoar 200 10 'tidak akan menghubungkan apa pun dengan yang lain; Anda tidak akan mendekati optimal dengan cara yang tidak terarah. Bolehkah saya menyarankan memfokuskan pemikiran awal Anda tentang bagaimana merumuskan masalah secara abstrak (terlepas dari struktur data atau lingkungan pemrograman apa pun) sehingga Anda dapat (a) mengidentifikasi masalah seperti itu sebelumnya dan (b) tetap terbuka untuk berbagai metode solusi yang tersedia? Tampaknya terlalu dini untuk mengusulkan satu metode solusi tertentu.
whuber
2
Prematur? Saya tidak setuju. Memang, proses pemikiran yang diuraikan di atas adalah satu pendekatan; Saya berharap ini akan memfokuskan setiap brainstorming dan menghasilkan umpan balik yang bermanfaat. Yang mengatakan, saya terbuka untuk berbagai metode solusi yang tersedia. Membatasi segmen sehingga trotoar akan ditempatkan sedemikian rupa karena mereka selalu menghubungkan hal-hal akan mudah untuk diterapkan, dan membantu dengan menemukan solusi. Terima kasih untuk sarannya.
baha-kev
6
Nah, jika Anda sedikit mencadangkan dan melupakan hal-hal pengacakan, jenis pertanyaan yang muncul di benak Anda meliputi: * Apa jenis masalah optimasi ini? Properti apa yang dimilikinya? (Misalnya, linearitas, konveksitas, quikiconvexity, dll.). * Apakah ia memiliki formulasi yang setara, seperti dual? * Apakah ada cara alternatif untuk mewakilinya, seperti dalam hal properti grafik atau dengan fungsi penalti? Sebagai contoh, satu formulasi rangkap adalah meminimalkan panjang total trotoar yang melayani populasi tertentu. Ini mungkin menyarankan solusi pemrograman dinamis.
whuber

Jawaban:

1

Anda mungkin ingin memanfaatkan ekstensi Solver di excel, saya telah menggunakannya beberapa kali dalam pemrograman liner.

di sini ada tautan pada kursus kilat pada LP, memanfaatkan Solver:

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

GISdork
sumber
2
Itu ide yang bagus dan mungkin berguna untuk bermain dengan masalah mainan kecil. Sayangnya, Excel tidak memenuhi tugas ini. Selain masalah yang terlalu besar untuk ditangani, akan sangat sulit untuk mengkode kendala konektivitas di Excel: Anda harus memastikan bahwa trotoar benar-benar menghubungkan orang ke CBD!
Whuber