時間間隔のリストが与えられた場合、オーバーラップしない最大間隔のセットを見つける必要があります。例えばインターバルツリー内のオーバーラップしないインターバルの最大値
、
我々は次のような間隔を持っている場合:
[0600, 0830], [0800, 0900], [0900, 1100], [0900, 1130],
[1030, 1400], [1230, 1400]
また、それはその時与えられた範囲[0000, 2400]
にする必要があります。
最大オーバーラップしないインターバルのセットは[0600, 0830], [0900, 1130], [1230, 1400]
です。
最大セット梱包はNP完全であることを理解します。私の問題(開始時刻と終了時刻のみを含む間隔)もNP-Completeであるかどうか確認したい。
もしそうなら、指数関数的な時間で最適解を見つける方法がありますが、よりスマートな前処理と枝刈りデータがあります。または、固定パラメータの扱いやすいアルゴリズムを実装するのが比較的簡単な場合。私は近似アルゴリズムに行きたくありません。
「最大」は、間隔の最大_番号または間隔の最長_合計持続時間を意味しますか?あなたのソリューションの例は3つのインターバルで、合計6.5時間です。それを最大にするのは、3または6.5ですか? –