我有一个问题听起来像这样:一家公司在4个不同的(A B C D)地点有4辆出租车。 4人(W X Y Z)打电话给公司他们需要一辆出租车。我需要找到出租车能够到达他们的人的最快方式,知道出租车只能为1人出租车,每辆出租车都在其目的地和人民目的地之间分配了价值。
我正在考虑使用所有可能的组合构建一棵树:AW-BX-CY-DZ或AX-BW-CY-DZ等,并找到每种树的最低成本,但我需要使用DFS或贪婪的BFS方法。任何想法如何工作?我无法想象它。
我只想知道如何使用DFS / GBFS解决这个问题。由于我正在寻找最小距离,我无法弄清楚它将如何发展或搜索何时结束
答案 0 :(得分:1)
这是assignment problem的一个实例,它在加权的二分图中找到最大/最小权重匹配。用于解决此类问题的最常见算法是Hungarian Algorithm,在O(n ^ 3)中解决它。有一个实现它的Python模块 - munkres。
然而,如果你真的想要使用DFS / BFS你可以想到一些天真的算法创建每个可能的解决方案,然后使用DFS / BFS搜索解决方案空间,但它将是非常不理想的。