我试图找到是否有任何解决方案,我有问题。 我有X个人和Y位置来放置他们。有时可能会有更多的人比位置,但在默认情况下X == Y。 我想分配人员,使任何一个人必须移动的距离最小化。 所以,如果我不得不让人1-5和立场AE:最大限度地减少移动的最大距离
1 2 3 4 5
A B C D E
的简单的实现我已经被分配{A2,B3,C4,D5,E1},导致在电子商务活动远远超出其他任何人,当我更喜欢比赛是{A1,B2,C3,D4,E5},这意味着每个人都会进一步移动,但最坏的情况要小得多。
我正在为每个人创建一个数组,包含每个位置,按距离排序(升序)。然后,我将所有人的阵列进行反向排序,使距离他最佳位置的距离最远的球员成为第一名。我将他分配到一个位置,然后从每个其他玩家的名单中删除该位置,并反向排序并重复,直到所有位置都被填满。
这给我合理的结果,但似乎非常低效的(除去各阵元和每次诉诸)
显然这个问题不必与人打交道和距离的位置,但也可说分配资源,其中每个资源都可以执行具有某种适应性的任务,并且我想避免使用严重不适合于给定任务的工具,即使这意味着每个工具都在执行稍微不合适的任务说得通。
我怀疑这里有一些经典的优化问题,但我不知道是哪一个。
这里的距离是什么意思? – PengOne 2011-06-17 02:09:36