使用QGIS和pgRouting在最佳人行道上进行蒙特卡洛模拟


17

我是空间分析的新手,不胜感激我正在尝试的一个项目的总体指导,概述如下(我从头开始)。

目标:在我的家乡寻找在2000英尺长的人行道上安装最佳位置的位置,以便将最多的家庭与中央商务区(CBD)连接,此处的“连接”意味着距CBD的步行距离为1.2英里。我有shapefile,其中显示了现有的结构(房屋),道路和人行道(已安装)。

这是我建议的解决方案/思考过程:

  1. 将就地人行道网络转换为通过权重(即距离)连接的节点的数据库。是否可以通过单击所有路口在QGIS(或其他程序)中直接执行此操作?
  2. 使用pgRouting或其他路由功能计算距离中央商务区1.2英里(例如,经纬度或多边形)步行距离内的家庭数。这将是基本情况下的“家庭访问”值。
  3. 使用路层作为指导,将另外2000英尺(例如10英尺长)的人行道随机放置到人行道层上。这相当于任意构造一堆新的人行道。
  4. 使用(1)中的新行人网络重新计算节点和权重,然后使用(2)重新计算现在距离CBD 1.2英里以内的住户数量。它应该随着人行道的增加而增加。将其他人行道的位置和关联的“家庭访问”值保存到文件(例如电子表格)中。
  5. 重复步骤(3)和(4)10000次,类似于Monte Carlo模拟。使用10000个数据点集,选择人行道放置位置,以在距CBD 1.2英里范围内的住户数量最大化。

这种思考过程听起来是否现实?有没有人有什么建议?

-我想使用QGIS和R的某种组合来实现这一点,但是我愿意学习PostGIS和/或Python(或其他任何东西)以实现目标。


1
您可能要考虑使用遗传算法。这几乎就是您描述的过程。我很确定有支持遗传算法的python库。
克里斯

1
看起来R也具有遗传算法库。
克里斯

6
这是一个很大的问题。但是,大多数200个10'人行道路段的随机放置不会将任何其他东西连接起来。您不会以这种无引导的方式接近最佳状态。我是否可以建议您将最初的思想集中在如何抽象地(与任何数据结构或编程环境无关)抽象地解决问题上,以便您可以(a)事先确定此类问题,并且(b)对所有可用的解决方法保持开放状态?提出一种特定的解决方法似乎为时过早。
Whuber

2
早产吗 我不同意。确实,上面概述的思考过程是一种方法。我希望它能集中精力进行任何头脑风暴并提供有用的反馈。也就是说,我对所有可用的解决方案方法持开放态度。约束这些路段,以便将人行道始终保持连接的方式放置起来很容易实现,并有助于寻找解决方案。谢谢你的建议。
baha-kev 2012年

6
好吧,如果您稍微备份一下而忘记了随机化问题,那么想到的问题包括:*这是哪种优化问题?它有什么特性?(例如,线性,凸度,拟凸度等)。*它是否具有等效的公式,例如对偶?*是否有其他方式来表示它,例如在图的属性或惩罚函数方面?例如,一种双重表述将使服务于给定人口的人行道的总长度最小化。 这可能建议使用动态编程解决方案。
Whuber

Answers:


1

您可能想在excel中使用Solver扩展程序,我在线性编程中使用了几次。

这是使用规划求解的LP速成课程的链接:

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


2
这是一个好主意,可能对于玩小玩具问题很有用。不幸的是,Excel无法完成此任务。除了要处理的问题太大以外,在Excel中编写连接约束的代码也将非常困难:您必须确保人行道实际上将人们连接到CBD!
Whuber
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.