У меня есть сценарий, в котором каждый временной интервал имеет прибыль и многословие на выбор. Мне нужно выбрать задания в каждом временном интервале, чтобы получить максимальную максимальную прибыль. Мне нужна максимальная полученная прибыль и график.Максимизируйте прибыль, Расписание работы
Единственное, что я могу придумать, это попытаться для каждого comibnation, используя bruteforce. Как я могу эффективно решить эту проблему. Есть ли способ сделать это лучше, используя конкретный алгоритм или структуру данных?
В приведенном ниже примере любое задание J1, J2, J4 может быть выбрано для временного интервала 1. Аналогично для других временных интервалов может быть выбрано любое или любое из заданий. Только одно задание может быть выбрано для определенного временного интервала. Если задание выполняется в один временной интервал, это невозможно сделать снова.
Например. Если j1 делается в TS1, он не может быть выбран снова в TS2
+----------+--------+----------------------+
| TimeSlot | Profit | Possible Job |
+----------+--------+----------------------+
| 1 | 50 | J1 or J2 or J4 |
| 2 | 100 | J1 |
| 3 | 20 | J2 |
| 4 | 60 | J5 or J4 |
| 5 | 15 | J1 or J2 or J3 or J6 |
+----------+--------+----------------------+
Можете ли вы быть более точным в этом примере? TS1 => J4, TS2 => J1, TS3 => J2, TS4 => J5, TS5 => J3 или J6? –
Я думаю, что это линейное программирование, а не динамическое программирование. Существует много библиотек линейного программирования и библиотек оптимизации, но вы не отметили язык на этом, поэтому я не могу вам предложить что-либо –
. Говоря об этом, должно быть либо связанная стоимость с заданием, либо лимит на число заданий в временном интервале, в противном случае ответ, очевидно, помещает все задания во временный интервал 2, так как он дает наибольшую прибыль. –