路径分配程序算法

时间:2012-02-02 15:35:39

标签: algorithm pseudocode

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

enter image description here

解决这个问题的最佳方法是按时间安排这些交互点。

这不是我唯一的问题,我需要将路线平均分配给审查员。 因此,路线1将被提供给审查员1 路线2 - 考官2 路线3-考官3 ...

皇家鲍曼建议:

  

从开始计算碰撞时间。

     

1号线有6分。 {A,B,C,D,E,F}

     

2号线有5分。 {A,F,G,H,I}

     

3号线有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路线的分钟,然后你就知道发生了碰撞   如果在路线2开始预约15分钟后将会发生   你开始在1号公路预约。

     

然后你会有一组非工作碰撞:

     

1号线& 2碰撞:15,25,40

     

1号线& 3碰撞:25,30

     

2号线& 3碰撞:30,40,45

我可以理解这一点。但就算法而言,我不知道从哪里开始。 如果有人可以帮助我使用一些伪代码来解决问题,或者在我自己的脑海中让它更清晰。它会有很大的帮助。

2 个答案:

答案 0 :(得分:4)

您应该能够从开始计算碰撞时间。

路线1 有6分。 {A,B,C,D,E,F}

路线2 有5分。 {A,F,G,H,I}

路线3 有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分钟,那么您知道如果在您开始预约后15分钟就开始预约路线2将发生碰撞在路线1预约。

然后你会有一组非工作碰撞:

1号线& 2碰撞:15,25,40

1号线& 3碰撞:25,30

2号线& 3碰撞:30,40,45

从这里开始,您应该可以轻松地创建日程安排而不会发生冲突。

答案 1 :(得分:4)

我假设你没有要求提供关于编写超级算法的技巧,这种算法可以同时解决数千条交叉路口的数百条路径。听起来你需要一些简单易用的东西,所以让我们瞄准它。

首先,让我们简化问题。看看地图,你真正说的是这样的:如果一个学生在早上8点开始路线1,他将在8:03到8:05之间的交叉点A,然后在交叉点B的某个时间在8点之间:07和8:09。

为了确保没有其他学生在十字路口,你可以考虑第一个人从8:03-8:05“预订”交叉口A,并且从8:07-8:09类似地预测交叉口B“预订”

每个十字路口都有自己的忙/自由表。

每次安排路线时,都会在您认为学生进入路线时预订适当的路口。

当寻找路线的最早可用时间时,如果您在路线上经过的每个交叉路口都可用,则通过路线并考虑该路线的起始时间X“可用” d穿过他们。