输入:n个元素的M个有序元组的集合,其中每个元素都是一个集合,即:(A1, A2, ..., An),其中每个Ai都是一个集合
问题:将这些 n 元组组合在一起以创建最小的 n 元组集合。如果它们仅在一个位置不同,则可以将 2 个 n 元组组合在一起,即:
A = (A1, A2, ..., An) 和 B = (B1, B2, ..., Bn) 可以组合成 (A1, A2, ..., Ai U Bi, Ai+1, ... ., An) 当且仅当 Aj = Bj,对于每个 j != i。
示例: 输入:4 个 2 元组:({1}, {1}), ({1}, {2}), ({3}, {1}), ({3}, {2}) 输出: 一个 2 元组: ({1, 3}, {1, 2})
我的问题是:你将如何解决这个问题?你知道它是否可以简化为一个已知的 NP 问题吗?一个想法是将其建模为图形:如果元组 A 和 B 可以组合,则在它们之间用颜色 i 绘制一条彩色边(i = 它们不同的位置)。