Моделювання в Монте-Карло за допомогою QGIS та pgRouting на оптимальній конструкції тротуару


17

Я новачок в просторовому аналізі і буду вдячним за загальний напрям проекту, який я намагаюся, викладений нижче (я починаю з нуля).

МЕТА: Знайти найкращі місця для встановлення 2000 футів тротуарів у моєму рідному місті для того, щоб підключити більшість домогосподарств до Центрального ділового округу (CBD), де «підключений» означає, що в 1,2 милі ходить від КБР. У мене є формні файли, що показують існуючі споруди (домогосподарства), дороги та тротуари (вже встановлені).

Ось моє запропоноване рішення / думка-процес:

  1. Перетворіть локальну тротуарну мережу в базу даних вузлів, пов'язаних між собою вагами (тобто відстанями). Чи є спосіб зробити це безпосередньо в QGIS (або іншій програмі), натиснувши на всі перехрестя?
  2. Обчисліть кількість домогосподарств, які знаходяться в межах 1,2 км ходьби від Центрального ділового округу (наприклад, довга точка або полігон), використовуючи можливості маршрутизації pgRouting або щось інше. Це буде базовим значенням "доступ до дому".
  3. Використовуючи дорожній шар як орієнтир, випадковим чином розмістіть додаткові 2000 футів (скажімо, в 10 футових сегментах) тротуарів на шар тротуару. Це еквівалент побудови купу нових тротуарів довільно.
  4. Повторно обчисліть вузли та ваги, використовуючи нову пішохідну мережу, як у (1), а потім перерахуйте кількість домогосподарств, які зараз знаходяться в межах 1,2 милі від КБР, як у (2). Він повинен збільшуватися з додатковими тротуарами. Збережіть розташування додаткових тротуарів та пов’язане з ним значення "доступ для дому" у файл (наприклад, електронну таблицю).
  5. Повторіть кроки (3) та (4) 10000 разів, подібно до моделювання в Монте-Карло. Використовуючи 10000 наборів точок даних, виберіть місця розміщення тротуару, які максимізують кількість домогосподарств в межах 1,2 милі від КБР.

Чи реально цей процес мислення звучить реалістично? Хтось має якісь пропозиції?

- Я хотів би досягти цього, використовуючи комбінацію QGIS і R, проте я відкритий для вивчення PostGIS та / або Python (або будь-чого іншого) для досягнення мети.


1
Ви можете замість цього розглянути генетичний алгоритм. Це майже процес, який ви описали. Я впевнений, що є бібліотеки python, які підтримують генетичні алгоритми.
Кріс

1
Схоже, R має також генетичні бібліотеки алгоритмів.
Кріс

6
Це велика проблема. Однак більшість випадкових місць розміщення 200 10 'сегментів тротуару не підключать нічого до іншого; ви не наблизитесь до оптимуму таким некерованим способом. Чи можу я запропонувати зосередити свої початкові думки на тому, як сформулювати проблему абстрактно (незалежно від будь-яких структур даних чи середовища програмування), щоб ви могли (а) заздалегідь визначити такі проблеми та (б) залишатися відкритими для повного спектру доступних методів рішення? Занадто рано пропонувати один конкретний метод рішення.
whuber

2
Передчасна? Я не згоден. Дійсно, описаний вище процес мислення - це один підхід; Я сподіваюся, що це зосередить будь-який мозковий штурм і призведе до корисних відгуків. З огляду на це, я відкритий для найбільш широкого спектру доступних методів рішення. Обмеження сегментів таким чином, щоб тротуари були розміщені таким чином, оскільки вони завжди з'єднують речі, було б просто втілити в життя і допомогти в пошуку рішення. Дякую за пропозицію.
baha-kev

6
Що ж, якщо ви трохи створили резервну копію і забули речі про рандомізацію, то такі питання, які вам спадають на думку, включають: * Що це за проблема оптимізації? Які властивості він має? (Наприклад, лінійність, опуклість, квазісупучесті тощо). * Чи є у нього еквівалентні рецептури, такі як подвійний? * Чи існують альтернативні способи їх відображення, наприклад, за властивостями графіків або за допомогою штрафних функцій? Наприклад, одна подвійна рецептура - мінімізувати загальну довжину тротуарів, які обслуговують дану популяцію. Це може запропонувати динамічне рішення програмування.
whuber

Відповіді:


1

ви можете скористатися розширенням Solver у excel, я його кілька разів використовував у лінійному програмуванні.

ось посилання на аварійний курс на LP, використовуючи Solver:

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


2
Це гарна ідея і може бути корисною для гри з невеликими проблемами з іграшками. На жаль, Excel не вирішує це завдання. Окрім того, що це занадто велика проблема для вирішення, було б надзвичайно важко кодувати обмеження підключення в Excel: ви повинні переконатися, що тротуари насправді підключають людей до КБР!
whuber
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.