鉴于下面这个互锁图,我需要什么算法才能找到两点之间(可能是最短的)允许路径?我对这个理论感兴趣,例如Dijkstra可以处理这个,它是否必须是有向图,可能还有其他约束......
更多上下文 .
红色按钮定义路径的开始/结束,如果它有效* .
绿色指示灯如果亮起,则显示任何活动路线 .
黄色指示灯如果亮起,则显示每个开关的位置 .
*定义"valid route":列车必须通过的任何数量的开关,而不改变方向,以达到其目标轨道 .
上面的例子:列车进入主轨道#200并且将被移动到轨道#12,或者相反 .
Invalid route example (需要改变方向):
Two valid routes (绿色路线有利):
我在学校接触过Dijkstra,但这已经超出了我的想象 . 欢迎任何指示 .
TL; DR:问题:
-
我应该使用哪种算法?
-
边缘重量?
-
定向边缘?
-
......