让我举个例子来说明我的问题。我有4个处理器1-4。他们中的任何两个都得做些交流所以为了节省时间,我们可以如下进行。
时间1:(1,2)(3,4)
时间2:(1,3)(2,4)
时间3:(1,4)(2,3)
所以我们可以看到,对于偶数n,我们可以用n-1次完成这个通信。
但是,当处理器n的数量变大时,要找到一个算法来确保每次都没有空闲的处理器是不容易的。
如果n等于6以下不是一个好的选择:
时间1:(1,2)(3,4)(5,6)
时间2:(1,3)(2,4)……(5和6已经相互通信,因此它们在时间2是自由的)。
尽管我的专业是电磁学,但我还是查阅了许多关于组合数学的书但我还是找不到答案。有人能把我引向正确的方向吗?

最佳答案

这个问题等价于具有偶数个顶点的完全图的边着色。每个顶点对应于某个“处理器”,每个颜色对应于原始问题的“时间”。
Wikipedia article on edge coloring针对这种情况提出了一种简单的算法:
在规则(n-1)边多边形的顶点和中心放置n个点对于每个颜色类,包括从中心到一个多边形顶点的一条边,以及连接一对多边形顶点的所有垂直边。

08-06 04:46