Максимальные непересекающиеся интервалы в дереве интервалов
Учитывая список интервалов времени, мне нужно найти набор максимальных непересекающихся интервалов.
Например,
если у нас есть следующие интервалы:
[0600, 0830], [0800, 0900], [0900, 1100], [0900, 1130],
[1030, 1400], [1230, 1400]
Также дается, что время должно быть в диапазоне[0000, 2400]
.
Максимальный непересекающийся набор интервалов[0600, 0830], [0900, 1130], [1230, 1400]
.
Я понимаю, что максимальная комплектация NP-Complete. Я хочу подтвердить, что моя проблема (с интервалами, содержащими только время начала и окончания) также является NP-Complete.
И если так, есть ли способ найти оптимальное решение в экспоненциальном времени, но с более разумной предварительной обработкой и сокращением данных. Или, если есть относительно простой в реализации алгоритм с фиксированными параметрами. Я не хочу идти на алгоритм приближения.