Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 一种路由分配程序算法_Algorithm_Pseudocode - Fatal编程技术网

Algorithm 一种路由分配程序算法

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} 因此,您需要计算

我想做的是创建一个程序,为驾驶考试指定路线。将有三条不同的路线,在某些点连接在一起。在一个交叉点上不应该有一个以上的学生

解决这个问题的最佳方法是按时间安排这些连接点

这不是我唯一的问题,我需要将路线平均分配给考官。 因此,路线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}

因此,您需要计算以下时间:

路线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个点,第三条路线也是。从技术上讲,这只是一个数据更改,而不是算法更改,但这确实意味着您不再需要支持非冲突情况。如果您提到这是一个后续问题,那就太好了。我认为真正的鲍曼是某种奇特的算法。你正在变得越来越复杂。你知道哪些路线不能安排,因为它们可能会发生碰撞,尽管这完全取决于司机的速度。您在上一个问题上得到的答案为您提供了解决此问题所需的一切。交通灯会很有帮助的。谢谢你在这里花时间帮助我,也谢谢你在我心里把它简化了。如上所述,制定时间表是最好的前进方式。谢谢你的回复。谢谢你花时间回复,我认为这一次的日程安排将是前进的方向。