算法处理学生考试中心

时间:2012-11-24 14:25:53

标签: algorithm graph

情况如下。 假设我们有x个学生编号1,2 ... x住在城市的固定位置。 有y个考试中心,分别为1,2,3 ...... y 有能力'i-can-hold [y]'分别。 学生到考试中心j的距离是'我要走路[i] [j]'

您能否建议一种确保总距离的算法 旅行最少? (即每个学生与考试中心的距离之和)

显然我能坚持[1] + i-can-hold [2] + ... + i-can-hold [y]> x

我正在考虑创建一个能够实现最少的程序 进行考试的麻烦。 借助googlemap可以实现实用。

1 个答案:

答案 0 :(得分:4)

一般而言,在没有任何距离和容量限制的情况下,这是最小成本的最大流量问题。

  • 每个学生和城市都是一个顶点。
  • 每个学生都连接到容量为1,成本为0的源。
  • 每个城市都连接到一个容量为i-can-hold,费用为0.
  • 的接收器
  • 每个学生都与一个容量为1的城市相关联,费用为i-have-to-walk

Ford-Fulkerson算法可用于查找最大流量,但不考虑成本。虽然通过更简单的例子来了解流网络,但学习它可能会有所帮助。

有许多不同的算法可以降低成本。一个是“连续的最短路径”。我们的想法是重复找到从剩余网络中的源到接收器的最小成本路径,并沿此路径添加流,直到找不到更多路径。

例如:

Flow Network

a)标记每个顶点的流网络(成本,容量)。包含连接到2个中心列的3名学生列。

b)在剩余网络中沿着最短路径(可以在Bellman-Ford中找到)添加流量。剩余网络是根据可用容量(容量减去每个方向的流量)创建的图表。

c)沿另一条道路添加更多流量。

d)最佳流量。沿着改变已添加流量的路径添加了流量。这是允许的,因为剩余网络的容量与流量的方向相反。

另见: