给定数字线上的一组间隔,找到“覆盖”所有间隔的最小点(有效地优化解决方案)?

时间:2018-12-21 19:12:39

标签: complexity-theory graph-theory intervals np clique-problem

我一直在尝试找到一种有效的方法来解决这个发现“最小”(不是最小)时间点的问题,但是不确定是否那么简单。我尝试将其建模为最小边覆盖问题(“ P”多项式时间复杂度:间隔是顶点,间隔之间的交点是边),但这不起作用,因为最佳解决方案中的1个时间点可能是多个边。 / p>

我开发了一个贪婪的解决方案:将间隔按其结束时间的升序排序。然后按顺序遍历间隔。如果尚未将时间点插入涵盖当前时间间隔的解决方案中,则将其插入并从考虑中删除它涵盖的所有时间间隔。继续直到没有间隔。例如:(0,10),(3,12),(11,15)

在解决方案中添加时间10。从考虑中删除(0,10)和(3,12)。将时间15添加到解决方案。从考虑中移除(11,15)。最终解决方案的大小为2。(时间10和15)。

我不能证明它是最佳的,因为它没有建模为边缘覆盖或顶点覆盖或已知的图形问题。我尝试将其建模为“最小集团覆盖问题”,但不确定是否可行。

  • 如何正确建模以了解其复杂性(P与NP复杂性)?
  • 如何知道上述解决方案是否最佳?

0 个答案:

没有答案