根据其容量分配总线到路线
我在面向路线分配总线时遇到问题。我有四辆巴士和四条路线。根据其容量分配总线到路线
总线容量是每辆公共汽车的座位数量。路线容量是路线每个停靠点上的人数。路线实际上是多个站点的组合。
单个测试情况的一个例子是:
BUS CAPACITY ROUTE CAPACITY
BUS 1 44 Seats Route 1 30 Peoples
BUS 2 63 Seats Route 2 50 Peoples
BUS 3 14 Seats Route 3 40 Peoples
BUS 4 17 Seats Route 4 17 Peoples
有很多的试验例针对此问题的多种组合。路线和巴士的数量总是相等的。
我正在寻找一种算法,帮助解决这个问题的最佳。
尝试
https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm
或
https://en.wikipedia.org/wiki/Euclidean_distance
方法基本上你正在寻找最佳匹配。
通俗地说,你可能想要做的是找到一条公交车的最佳匹配路线,其中最佳匹配定义为公交线路的容量最佳,即busCapacity - routeCapacity为最低正数。
一旦你找到这样的匹配,他们将从问题世界中消除。
然后对剩余的世界重复这一点。
最终产品是一切都匹配。
但是准备意想不到的: -
您可能会用尽所有可能的组合和左小容量和大容量的路由。在这种情况下,您可以查找routeCapacity - busCapacity之间的差异,作为最佳匹配。
这是这样,你给的人的数量知道他们不能服务是最小的。
当我告诉多个测试案例这意味着给定的例子可以有各种这并不意味着我必须从多个测试用例中选择最佳匹配。你提到的算法对于这样的问题是有好处的,但是在我正在研究的那个上,我必须找到最适合个人测试用例的方式,比如说给定的一个我必须找到最佳匹配。如果你发现对这样的问题有任何想法,那意味着很多我。对不起,任何误导。 –
我建议你描述一下没有用的测试用例,但更重要的是你试图解决这个问题。因为在你的问题中,你基本上要求'我在分配公共汽车到路线时遇到问题'。我提出的算法是一般性地解决这个问题。我们大多数人都非常注重代码,所以我们可以帮助完善或修复一些代码。请不要担心误导。 – bhantol
我还没有为此编写代码,因为我在制作逻辑时卡住的很糟糕,我所尝试的实际上是减去容量,然后找到最近的距离,以便我可以将总线分配给路线,但是我不满足于此解决方案,需要任何其他方式来做到这一点。我已经看了你的建议算法教程,其中组织问题已经解决。可能你对这个问题很熟悉,我不认为它可以帮助我。事实上,我没有得到关于我的问题的欧几里德方程。如果您可以将给定的数据设置为等式,以便我能理解它。 –
你实际上并没有说这里有什么最佳方法,这可能会改变最佳解决方案,但我会倾向于对路线和巴士进行排序,然后将最大的巴士分配给最多的路线等待的人数,等待次数最多的路线中次最大的公共汽车,等等。
如果一条路线被分配了一条公共汽车,但没有足够的座位给路线上的人,但在这项任务中,所有拥有更多座位的公共汽车都会被分配到更多人的路线等一等,所以给一辆更大的公共汽车,至少可以让没有座位的其他人也能享受到。
匹配人民和公共汽车的一个更复杂的方式看https://en.wikipedia.org/wiki/Assignment_problem
的最佳定义是如何改变的事情的一个例子是,如果你不关心的人恼火的数目,但对于路由的数量人们没有座位。在这种情况下,如果你有2,3,5,9人在等候的路线和可以搭载1,2,4,8人的公共汽车,那么将它们分配为2人-2座位,3人-4座位,5人8座,9人1座,8人无座位而不是4人,但所有这8人只有一条路线。
您的问题显示路线1四次?你试图优化什么成本或优点功能?你有什么试图解决你的问题? –
我通过寻找最近的公共汽车和路线之间的差异,然后指定最近的巴士路线,但它没有帮助,需要任何其他解决方案是有道理的 –