Предоставляется множество заданий, в которых каждое задание имеет крайний срок и соответствующую прибыль, если задание завершено раньше указанного срока. Также считается, что каждая работа занимает одну единицу времени, поэтому минимальный возможный срок для любой работы — 1. Как максимизировать общую прибыль, если одновременно можно запланировать только одну работу.
Примеры:
Input: Four Jobs with following deadlines and profits JobID Deadline Profit a 4 20 b 1 10 c 1 40 d 1 30 Output: Following is maximum profit sequence of jobs c, a Input: Five Jobs with following deadlines and profits JobID Deadline Profit a 2 100 b 1 19 c 2 27 d 1 25 e 3 15 Output: Following is maximum profit sequence of jobs c, a, e
Простое решение состоит в том, чтобы сгенерировать все подмножества заданного набора заданий и проверить отдельные подмножества на предмет выполнимости заданий в этом подмножестве. Отслеживайте максимальную прибыль среди всех возможных подмножеств. Временная сложность этого решения является экспоненциальной.
Это стандартная проблема алгоритма жадности. Ниже приводится алгоритм.
1) Sort all jobs in decreasing order of profit.
2) Initialize the result sequence as first job in sorted jobs.
3) Do following for remaining n-1 jobs
…….a) If the current job can fit in the current result sequence without missing the deadline, add current job to the result. Else ignore the current job.
Ниже приведена реализация вышеуказанного алгоритма.
|
python3
|
Выход:
Following is maximum profit sequence of jobs c a e
Временная сложность вышеуказанного решения составляет O (n 2 ). Его можно оптимизировать с помощью структуры данных Disjoint Set. Пожалуйста, смотрите ниже пост для деталей.
Проблема последовательности работы | Набор 2 (Использование несвязанного набора)
Эта статья предоставлена Shubham . Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.
Рекомендуемые посты:
- Проблема последовательности работы | Набор 2 (Использование несвязанного набора)
- Проблема последовательности заданий — минимизация потерь
- Проблема с разделами | DP-18
- Проблема с подключением к воде
- Проблема капли воды
- Проблема пролета запаса
- Введение проблемы максимального потока
- N Queen Проблема | Откат-3
- Проблема с монтажными полками
- Дробный рюкзак
- Кратчайшая проблема суперструн
- Задайте проблему с крышкой | Набор 1 (жадный приближенный алгоритм)
- K Центры Проблема | Набор 1 (жадный приближенный алгоритм)
- Проблема упаковки бункера (свести к минимуму количество используемых бинов)
- Приложения задачи минимального остовного дерева
0.00 (0%) 0 votes