优化日历块算法

时间:2013-01-08 18:34:31

标签: algorithm optimization

所以这是一个棘手的问题,它有点简化,但是基于一个关于内存优化的真实世界问题(它不是作业)

假设您是两个日期之间的时期(例如2013-01-01至2013-01-31)。现在,您将获得一组日期条目,每个日期条目都包含日期和颜色。每个日期最多只有一个条目,但所有日期可能没有条目。

例如:

2013-01-01黄色

2013-01-02 Blue

2013-01-03 Red

2013-01-05黄色

enter image description here

等等

现在说我们有一个包含开始日期和结束日期的颜色。我们还有一个可选的星期几过滤器,如果声明,可以包含一周中的一天或几天。在那些情况下,跨度仅对那些日子“有效”。

例如,在下面的例子中我们可能有:

跨度#1:2013-01-01 - 2013-01-06蓝色

跨度#2:2013-01-13 - 2013-01-27 RED Mon

跨度#3:2013-01-08 - 2013-01-26 CYAN周三周六周日太阳

等等

问题是提出一个可行的算法(从性能,内存的角度来看,没有定量计算机:),它提供了最少量的跨度来描述给定的时间段(没有是保证最低金额,但即使这样会很好:)。跨度可能重叠。

暴力强迫看起来很讨厌,但应该有一个优雅的解决方案

1 个答案:

答案 0 :(得分:0)

问题与使用circuit minimizationKarnaugh maps有一些相似之处。已知此问题是NP难的,因此像Quine–McCluskey algorithm这样的算法具有指数运行时。

因此我的意图告诉我,你的问题没有有效的算法。还有很多其他问题,例如vertex coverset cover,它们也都是非常棘手的问题。我会尝试表明,套装可以减少你的问题,使你的问题也很难。