模拟城市中文网

 找回密码
 入住
搜索
查看: 10833|回复: 31

首发!关于寻路系统的一点研究。有图有真相。

[复制链接]
发表于 2009-7-29 20:38 | 显示全部楼层 |阅读模式
我翻了不少帖子,发现还没人研究过这个,本着对SC4交通系统的兴趣,做了一点研究,发现了很有趣的现象。
发出来和大家讨论下。

首先准备个沙盘:


所有的初级商业到住宅区的道路距离相同。

好,开始测试:

测试1: 路程相同时候是否随机选择商业区?

每次测试均先删除住宅区,然后让它自己长出来,看是固定选择还是会随机选择商业区工作。

结果:非常惊人,每次都是同一个商业区!!!







很奇怪吧,本来我的猜想是随机选择的,毕竟路程相同。

好,等我进一步试验看看。

测试2: 路程不同时候先选择路程短的么?

结果:在路程相同的地方拉条捷径看看。





果然,选了路程短的,和预期一样。

测试2说明在寻路时候,路程短是一个考虑因素。

但是,测试1说明有一个因素的优先级比路程还高


好,我继续研究。


这次,我把那个一直被电脑选用的商业区铲掉,看会发生什么事。


结果:




电脑换了旁边的一个商业区,并且一直选用这个商业区。。。。。


似乎还没有任何头绪。。。。。继续看下去。。。。。


这次,我把电脑一直选的2个商业区的路都断掉看看。。。

结果:



电脑又换回了左边的一个商业区,并一直是那个商业区!


越来越没头绪拉

继续看。。。。

我决定狠点,  断开4条路看看。。。。


结果:



电脑依然偏爱左边的。。。


为什么。。。。神啊。。。。。

于是我决定换个方案看看。让路连着,但是加长那个刚刚开始时候电脑一直选的商业区的路程。
上图:


惊人发现来了,电脑竟然选了条远的路!!!

这说明了路程长远最多只是个第二优先级的条件。。。。

这次, 我让所有的路都连上看看会怎么样。


奇怪的又来了,电脑又选回一条短的路,这次,我把通勤也show出来。可以看见通勤时间是12多点。

好,我把这个选择弄掉看看电脑会选哪个。



电脑又选了那条长的路,看通勤时间超过了20。。。。

电脑依然抛弃其余几条路程短的路。。。。


进一步说明,通勤时间并不决定一切。。。。


我继续断开路看看结果如何.


这次看见,电脑又选了右边第一条道路。。。  从时间上看到,通勤时间也是12多点,和其他道路是一样。。。

猜想,结论请看2楼。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?入住

x

评分

参与人数 1威望 +1 模拟币 +35 收起 理由
wukebnu + 1 + 35 内容独特

查看全部评分

 楼主| 发表于 2009-7-29 20:38 | 显示全部楼层
猜想:

电脑首先是看看那些是可能到达和可以满足需求的商业区,意思就是有路连着又不会超出6分钟的那些。

然后看看哪个和出发地的直线距离最近,然后按从西到东的顺序(圆型?我猜)扫过来看看,第一个扫到的就是电脑的选择。
这个是我猜想的最高优先级。

例子可以参考1楼中, 当所有路程相同时候,电脑总是选那个商业区满足:”直线距离最近,从西向东的扫到的第一个“ 这个优先级决定条件。

反而,大家常认为的选路程短的论点并不是十分正确。

而且,最好的例子就是当我延长路程时候,电脑依然选了那个直线距离最近,从西向东的扫到的第一个商业区。

对于当所有路连的时候,电脑选择了左边第2近的情况,我的观点是,电脑按第一优先级的情况扫了下,发现了那个路程长,直线近的。

但电脑同时扫到了一个路程短,直线距离差不多的。

这个时候,路程短就发挥了第二优先级的作用,于是乎,电脑就选了左边那个路程短的了。
顺带一提,从测试2也可以看出,路程短是第二优先级的作用


为什么我这样描述,因为不可能知道电脑扫的时候是用半径扫还是其他方式。。。。我只能先猜是半径类的扫。。。

进阶测试: 在多路线情况下,电脑的寻路系统是怎么运作的。在我的试验里,我只测试了全部走一条路线的情况,但是我猜想,从程序设计上的方便看,多路线应该只是单路线模式的一种重复而已。因此,我推论,首先选那个按第一和第二优先级扫出来的,如果那个建筑满足不了全部的需求,电脑会第一和第二优先级继续扫下一个,这时候,原来那个就变成不能满足需求的建筑而被排除在外了,因此不会再次扫到它。

欢迎大家拍砖

寻路系统补完计划 传送门

[ 本帖最后由 0gps0 于 2009-8-31 22:41 编辑 ]
发表于 2009-7-29 20:51 | 显示全部楼层
很好很强大
发表于 2009-7-29 20:52 | 显示全部楼层
将继续关注
 楼主| 发表于 2009-7-29 20:59 | 显示全部楼层
提醒下,纯水会扣分分
发表于 2009-7-29 21:00 | 显示全部楼层
这个沙盘有创意
发表于 2009-7-29 21:11 | 显示全部楼层
电脑的选择是看哪个直线距离最近就选哪个,不考虑路程,以前看过验证这个的帖子
不过二级因素还真没研究过,支持LZ
 楼主| 发表于 2009-7-29 21:16 | 显示全部楼层
LS在哪看过?有传送门么?我翻了很久都没见到过。
研究这是为了规划的时候防止出现电脑就是选条长路程也不选短路的情况的出现。。
发表于 2009-7-29 21:16 | 显示全部楼层
LZ很强大,强烈支持
发表于 2009-7-29 21:33 | 显示全部楼层
很厉害,研究得很透彻
发表于 2009-7-29 21:51 | 显示全部楼层
原帖由 0gps0 于 2009-7-29 21:16 发表
LS在哪看过?有传送门么?我翻了很久都没见到过。
研究这是为了规划的时候防止出现电脑就是选条长路程也不选短路的情况的出现。。

记得那是一个研究sim们喜欢选择铁路还是公路的帖子,经过不同路程的比较偶然发现了这个规律
后来找过,但是链接我也找不到了……
发表于 2009-7-29 23:32 | 显示全部楼层
是不是用了lefthand就去右边的商业了
发表于 2009-7-30 01:02 | 显示全部楼层

回复 8# 的帖子

在本区搜索Hakkk,具体哪个贴时间长了我也忘了
发表于 2009-7-30 08:38 | 显示全部楼层
竟然研究第二优先条件,
我觉得不该是由半径扫的形式,可能应该为交叉式扫,不然看么会老在左边??
还是佩服LZ的钻研精神!!!
发表于 2009-8-7 21:12 | 显示全部楼层
原帖由 0gps0 于 2009-7-29 21:16 发表
LS在哪看过?有传送门么?我翻了很久都没见到过。
研究这是为了规划的时候防止出现电脑就是选条长路程也不选短路的情况的出现。。

问题是如何解决这种情况,太难精确到每一个住宅区了~~
用大众捷运 能解决问题吗?应该能缩短一点时间吧~~
发表于 2009-8-9 12:07 | 显示全部楼层
lz码这么多字不容易啊,真强大
发表于 2009-8-31 21:49 | 显示全部楼层
这方面我深入研究过,实际游戏中通勤时间基本上占影响因素9成,关于交通真正的课题是如何设计规划使得sims们按照自己安排的路线和流量通勤,围绕3个关键词:通勤时间,通勤路线,分流。有时间我整理一下发个帖子
回复 支持 反对

使用道具 举报

发表于 2009-8-31 22:23 | 显示全部楼层
很有新意,研究的比较仔细,但我觉得通勤时间,通勤路线,分流还是要考虑的,你的例子是一个住宅区应对n个商业区,那么n个住宅区和n个商业区之间的选择呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-31 22:43 | 显示全部楼层
原帖由 碧玉萧 于 2009-8-31 22:23 发表
很有新意,研究的比较仔细,但我觉得通勤时间,通勤路线,分流还是要考虑的,你的例子是一个住宅区应对n个商业区,那么n个住宅区和n个商业区之间的选择呢? ...


关于多点的寻路系统,个人猜想只是一个住宅区应对n个商业区的多次计算结果而已。。。可以参考下我的寻路系统补完计划。
回复 支持 反对

使用道具 举报

发表于 2009-9-23 08:20 | 显示全部楼层
楼主有心了。辛苦
回复 支持 反对

使用道具 举报

发表于 2009-9-23 17:12 | 显示全部楼层
分析透彻,学习中!
回复 支持 反对

使用道具 举报

发表于 2009-9-26 12:32 | 显示全部楼层
好帖子,必须得支持,关于自动寻路,我也一直百思不得其解……
回复 支持 反对

使用道具 举报

发表于 2009-9-28 16:23 | 显示全部楼层
这个就是电脑编程的实际结果,在有路的前提下找直线距离最近的
回复 支持 反对

使用道具 举报

发表于 2009-9-30 03:25 | 显示全部楼层
在中文网看贴不回也是美德

评分

参与人数 1模拟币 -10 收起 理由
伊比利亚魂 -10 可你回了……(不要打擦边球) ...

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2009-10-1 20:23 | 显示全部楼层
专业~
回复 支持 反对

使用道具 举报

发表于 2009-10-7 21:03 | 显示全部楼层
还是不明白,住宅区、工作区分别建在地图哪个位置最有利?
困惑的黑楼现象时常出现,但地铁利用都没满。
回复 支持 反对

使用道具 举报

发表于 2009-10-7 21:23 | 显示全部楼层

回复 26# 的帖子

这个要看具体城市的具体规划,没有固定位置的
黑楼不仅仅可能由于通勤过长,通勤也并不只包括地铁
回复 支持 反对

使用道具 举报

发表于 2009-10-12 15:12 | 显示全部楼层
非常感谢哦
回复 支持 反对

使用道具 举报

发表于 2009-10-12 21:43 | 显示全部楼层
假如,没有路,只有铁路或者渡船才能到呢?

SC4的训路算法始终是个谜,在simtropolis的精华贴里也有各类似本贴的试验,证明了通勤时间最短决不是唯一条件,也不一定是第一优先条件。很奇怪的。
回复 支持 反对

使用道具 举报

发表于 2011-5-14 16:55 | 显示全部楼层
厉害  支持!!
回复 支持 反对

使用道具 举报

发表于 2011-8-17 15:25 | 显示全部楼层
暴强!称赞lz的敬业精神!
回复 支持 反对

使用道具 举报

发表于 2023-4-8 17:37 来自手机 | 显示全部楼层
天啊,隔座山必须得挖隧道,不然跑死我的市民
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 入住

本版积分规则

小黑屋|手机版|模拟城市中文网

GMT+8, 2024-4-25 19:44 , Processed in 0.055733 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表