如何调用以下问题以及哪些算法可以解决此问题?
设置:我有一组项目(即标志),每个项目由几个未排序的元素(即颜色)组成。
问题:如何找到最小的元素集,使每个项目在我的最小集合中至少有一个元素?即给我最少数量的颜色,这样每个标志至少有一种颜色与我的最小颜色相同。
这与this问题类似或相同,尽管(对我而言)答案并未提供可行的算法。
我们假设我们有三个标志,并且让颜色的阴影处理为相同的颜色:
保加利亚,巴林和牙买加
可能的解决方案是:
答案 0 :(得分:2)
这是minimum hitting set问题,它是NP完全的。它相当于Set cover problem(即两者可以相互converted)。
由于它是NP完全的,因此没有已知的多项式算法。维基百科提供了greedy algorithm来获得近似结果。对于确切的最小值,您可能必须使用指数时间解决方案,例如枚举所有可能性。