Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 在尽可能少的组中匹配兼容的个体_Algorithm_Sorting_Grouping_Combinatorics - Fatal编程技术网

Algorithm 在尽可能少的组中匹配兼容的个体

Algorithm 在尽可能少的组中匹配兼容的个体,algorithm,sorting,grouping,combinatorics,Algorithm,Sorting,Grouping,Combinatorics,我正在寻找一种算法来解决以下问题 假设我有n个人。我有一个矩阵,它描述了所有个体之间的关系。例如,单个1与单个2兼容,这在矩阵中给出了1。单个2与3不兼容,这在矩阵中给出了0。例如,不相容性是“它们放在一起时会打架” 现在,我必须把这些人分成几个小组,让他们乘公共汽车旅行。我希望1组中的所有人都能相互兼容。唯一让我感兴趣的是尽量减少组的数量。那么,是否有一种算法可以将兼容的人分组到尽可能少的组中 我知道这类似于许多现有的分组算法(如稳定婚姻算法和sortalikes),但我找不到一种算法来最小化

我正在寻找一种算法来解决以下问题

假设我有n个人。我有一个矩阵,它描述了所有个体之间的关系。例如,单个1与单个2兼容,这在矩阵中给出了1。单个2与3不兼容,这在矩阵中给出了0。例如,不相容性是“它们放在一起时会打架”

现在,我必须把这些人分成几个小组,让他们乘公共汽车旅行。我希望1组中的所有人都能相互兼容。唯一让我感兴趣的是尽量减少组的数量。那么,是否有一种算法可以将兼容的人分组到尽可能少的组中

我知道这类似于许多现有的分组算法(如稳定婚姻算法和sortalikes),但我找不到一种算法来最小化组的数量


有人有主意吗

支持大卫的评论。每个人都是一个节点,两个人之间的边表示他们不兼容。用尽可能少的颜色给图表上色;每种颜色都是一组。@斯塔克:仅当图形为平面时。如果每个人都讨厌对方(完整的图形,而不是平面),他们都必须乘坐自己的巴士。感谢各位,引入了图形着色算法,结果非常好。