您是由一家拥有N名员工的小公司的董事雇用的,以便在员工之间建立网络,这些员工必须将每周报告作为不同的部分发送给每个其他员工,或者他们的报告对每个员工都很重要,根据他们工作的重要性,他们必须每周发送一次报告Ki次数
您已衡量每两位员工之间传递邮件所需的时间 由于预算削减,网络将只与他们的员工之间建立N-1连接,并且由于您在发送一条消息时使用的技术简单,整个网络必须等待它被传送(一次只有1条消息) )
你得到的是N-雇员数量,你得到的Ki是每周发送一份工作人员报告的次数,Tij表示消息从员工i到雇员j的时间 1 <= N <= 13
0℃; =&淇LT = 10 ^ 3
0℃; =&TIJ LT = 10 ^ 3
Tij = Tji,Tii = 0
起初我认为最优的网络将是一个星(树),它所需要的只是确定哪个节点位于中心,因为我们被限制为N最多13个我决定只是暴力它尝试了所有,但尝试失败,因为显然这不是最优的网络配置(或者测试用例告诉我) 然后我想也许这可以通过找到最小生成树或从员工制作的每个完整图表来解决,但是因为有多个最小生成树而且并非所有这些都非常适合这个已经在纸上失败的问题
我目前有点想法,所以关于我应该朝哪个方向发展的暗示会很棒
答案 0 :(得分:0)
在最小生成树中,所有连接必须形成连接树。在这个问题中,我们没有这样的限制。因此,对于每个顶点,您可以将其连接到顶点j,使得T(i,j)最小。这将保证没有循环,并且每个顶点将具有至少1个边缘,因此总共将具有小于N-1个边缘,如所需。
答案 1 :(得分:0)
在13个节点上有13 ^ 11~1.8e12的生成树,因此蛮力是不可能的。我相信预期的解决方案是动态编程。对于由非空节点子集和属于子集(根节点)的区分节点组成的每对,计算子问题的最优解,其中根表示子集之外的所有节点以及自身。单节点集是一个明显的基本情况。对于更大的子问题,使用给定集合的所有分区减去根的动态子程序进行优化。在组合子解决方案之上增加的成本是从根到其子节点的链接的成本,使用这些链接的通信数加权。