今天的算法挑战

Today's algorithmic challenge

我目前正在研究一种算法来安排 pub-crawling(虽然它可以更通用地应用)。 这是已知的:

我认为这是旅行推销员问题和一些花名册规划之间的混合体,但现在我尝试使用蛮力来实现它,因为我不知道如何实现上述混合体。我期望的结果可能是这样的:

蛮力正在起作用,但它太慢了。当所有的行和列都是唯一的时,就会找到一个解决方案——就像数独一样。然后可以将数字映射到特定柱的时间 intervals/arrival 和出发时间。 我正在寻找想法和建议,但也非常欢迎实现 (C#)。

目前我正在通过以下方式进行暴力破解:

最后,我需要提到的是,当这可以足够快地完成时,将引入更多一层复杂性。为特定团队选择的路线必须是最优的,这意味着所有团队都必须采用关于旅行时间的最佳路线 - 为此,我将使用 Google 地图 API。我想如果算法的第一部分相对较快,则可以强制进行距离优化。

期待创造性的解决方案!

看来你应该先解决最优路径问题。如果这样做,那么您可以在解决方案的第一个栏开始第一个团队,在第二个栏开始第二个团队,等等,就像您在示例中所做的那样。

因此,如果您确定通过条形图的最佳(或几乎最佳)路径是 B4、B3、B1、B2、B6、B5,那么您只需重新排列 table 中条形图的顺序 header 来匹配。所以在第一个时间段内,团队 1 将访问 bar 4 等