Algorithm 一种路由分配程序算法
我想做的是创建一个程序,为驾驶考试指定路线。将有三条不同的路线,在某些点连接在一起。在一个交叉点上不应该有一个以上的学生 解决这个问题的最佳方法是按时间安排这些连接点 这不是我唯一的问题,我需要将路线平均分配给考官。 因此,路线1将交给考官1 路线2-考官2 路线3-考官3 真正的鲍曼建议: 从开始计算碰撞时间 一号干线有6个点<代码>{A,B,C,D,E,F} 二号干线有5个点<代码>{A,F,G,H,I} 三号干线有6个点<代码>{A,H,K,L,M,N} 可能在以下位置发生碰撞:Algorithm 一种路由分配程序算法,algorithm,pseudocode,Algorithm,Pseudocode,我想做的是创建一个程序,为驾驶考试指定路线。将有三条不同的路线,在某些点连接在一起。在一个交叉点上不应该有一个以上的学生 解决这个问题的最佳方法是按时间安排这些连接点 这不是我唯一的问题,我需要将路线平均分配给考官。 因此,路线1将交给考官1 路线2-考官2 路线3-考官3 真正的鲍曼建议: 从开始计算碰撞时间 一号干线有6个点{A,B,C,D,E,F} 二号干线有5个点{A,F,G,H,I} 三号干线有6个点{A,H,K,L,M,N} 可能在以下位置发生碰撞:{A,F,H} 因此,您需要计算
{A,F,H}
因此,您需要计算以下时间:
路线1:A->F,A->A
路线2:A->F,A->H,A->A
路线3:A->H,A->A
从这里可以计算产生碰撞的时间差
如果从1A路到1F路和5路需要20分钟
从2A路到2F路只需几分钟,你就会知道发生了碰撞
如果在15分钟后开始2号路线的预约,则会发生
你在一号公路开始约会
然后会有一组非工作碰撞:
路线1和2在15、25、40时相撞
一号线和三号线在25点30分相撞
路线2和3在30,40,45时相撞
这一点我可以理解到一定程度。但就算法而言,我不知道从哪里开始。
如果有人能帮我编写一些伪代码,或者让我自己更清楚。这会有很大帮助。您应该能够从一开始就计算碰撞时间 路线1有6个积分<代码>{A,B,C,D,E,F} 路线2有5个积分<代码>{A,F,G,H,I} 三号干线有6个积分<代码>{A,H,K,L,M,N} 在:
{A,F,H}
因此,您需要计算以下时间:
路线1:A->F,A->A
路线2:A->F,A->H,A->A
路线3:A->H,A->A
从这里可以计算产生碰撞的时间差
如果您从1A路到1F路需要20分钟,从2A路到2F路需要5分钟,那么您知道,如果您在1号路开始约会15分钟后开始2号路约会,则会发生碰撞
然后会有一组非工作碰撞:
路线1和2在15、25、40时相撞
一号线和三号线在25点30分相撞
路线2和3在30,40,45时相撞
从这里开始,您应该可以非常轻松地创建日程安排,而不会产生冲突。我想您不是在询问编写超级duper算法的技巧,该算法可以同时解析数百条具有数千个交点的路径。听起来你需要一些简单和实用的东西,所以让我们瞄准这一点 首先,让我们简化这个问题。看地图,你真正想说的是这样的:如果一个学生早上8点开始走1号线,他将在8:03到8:05之间的某个时间在a交叉口,然后在8:07到8:09之间的某个时间在B交叉口 为了确保没有其他学生在交叉路口,你可以考虑第一个男生从8:03-8:05开始的交叉点“交叉”,B交叉路口“预订”类似于8:07:8:09。 每个交叉口都有自己的忙/闲表 每次你安排路线时,你都会在你认为学生会在其中的时间内预订适当的十字路口
当寻找路线的最早可用时间时,你会通过路线并考虑路线的开始时间X“可用”,如果你在路线上通过的每一个交叉点在你通过的时候都是可用的。p> 此外,学生是否可以同时离开和返回总部,或者这是否违反了您的交叉规则?“编写此代码的最佳方式是什么?”?当然不会让其他人替你想:)我还想提一下,你所有不与另一条路线相撞的点都不需要在那里。把它完全去掉。在路线一的情况下,您只需要从起点到第二个到最后一个点,再到终点(如果是顺时针走的话)。第二条路线只有3个点,第三条路线也是。从技术上讲,这只是一个数据更改,而不是算法更改,但这确实意味着您不再需要支持非冲突情况。如果您提到这是一个后续问题,那就太好了。我认为真正的鲍曼是某种奇特的算法。你正在变得越来越复杂。你知道哪些路线不能安排,因为它们可能会发生碰撞,尽管这完全取决于司机的速度。您在上一个问题上得到的答案为您提供了解决此问题所需的一切。交通灯会很有帮助的。谢谢你在这里花时间帮助我,也谢谢你在我心里把它简化了。如上所述,制定时间表是最好的前进方式。谢谢你的回复。谢谢你花时间回复,我认为这一次的日程安排将是前进的方向。