我遇到了以下在网络中的多台机器上分配负载的问题。问题是一个面试问题。候选人应该指定哪种算法和哪些数据结构最适合这个问题。
我们在一个网络中有 N 台机器。每台机器最多可以接受 5 个单位的负载。请求的算法接收机器列表及其当前负载(范围为 0-5)、机器之间的距离矩阵以及我们要在网络上分配的新负载 M 作为输入。
该算法返回可以为 M 个负载单位提供服务并具有最小集体距离的机器列表。集体距离是结果列表中机器之间距离的总和。
例如,如果结果列表包含三台机器 A、B 和 C,这些机器可以共同服务 M 个负载单位(如果 M=5,A 可以服务 3,B 可以服务 1,C 可以服务 1)和距离总和SUM = AB + BC 是可以共同为 M 个负载提供服务的最小路径。
你对如何处理它有什么建议吗?