2

したがって、これはトリッキーなものです。多少単純化されていますが、メモリの最適化に関する現実世界の問題に基づいています (宿題ではありません)。

2 つの日付の間の期間であるとします (2013 年 1 月 1 日から 2013 年 1 月 31 日など)。これで、それぞれが日付と色を含む一連の日付エントリが与えられます。日付ごとに最大 1 つのエントリがありますが、すべての日付にエントリがない場合があります。

例えば:

2013-01-01 イエロー

2013-01-02 ブルー

2013-01-03 赤

2013-01-05 イエロー

ここに画像の説明を入力

など

ここで、開始日と終了日、色を含むスパンがあるとします。オプションの曜日フィルターもあり、宣言されている場合は、1 つまたは複数の曜日を含めることができます。そのような場合、スパンはその日だけ「アクティブ」になります。

たとえば、以下の例では次のようになります。

スパン #1: 2013-01-01 - 2013-01-06 青

スパン #2: 2013-01-13 - 2013-01-27 RED 月

スパン #3: 2013-01-08 - 2013-01-26 CYAN 水 火 土 日

など

問題は、実行可能なアルゴリズムを考え出すことです (パフォーマンス、メモリの観点から、および量子コンピューターを使用しない場合:) 与えられた期間を説明する最小量のスパンを考え出す (保証された最小量を持たない)ただし、それがいいとしても:)。スパンが重複する場合があります。

ブルートフォーシングはかなり厄介なように見えますが、エレガントな解決策があるはずです

4

1 に答える 1

0

この問題は、カルノー マップを使用した回路の最小化といくつかの類似点があります。この問題は NP 困難であることが知られているため、Quine–McCluskey アルゴリズムのようなアルゴリズムの実行時間は指数関数的です。

したがって、私の意図は、あなたの問題に対して効率的なアルゴリズムがないことを私に伝えています。頂点カバーセット カバーなど、他にもかなりの数のカバー問題があり、それらもすべて非常に難しい問題です。セットカバーを問題に還元して、問題をNP困難にすることもできることを示したいと思います。

于 2013-01-08T19:21:31.753 に答える