Проблема Я наткнулся на это следующим образом:Доказательство оптимальности жадного алгоритма
Мы имеем п задачи с l_i
и w_i
быть время и вес задачи i
завершения. Придумайте алгоритм, который минимизирует sum for all i of f_i * w_i
, где f_i
- это время, когда задача i
была закончена. Если, например, некоторая задача i запланирована сначала, то f_i = t_i
, а затем вторая, а затем f_i = t_i + t_(first task)
.
я провел некоторое время на это, я сначала подумал, что просто делает список задач, выбирая задания от старшего веса до самого низкого веса будет достаточно хорошо, но понял, что это неправильно, например, если у нас есть 2 задачи:
1 задача: w_i = 10, l_i = 100
2 задача: w_i = 9, l_i = 1
, если мы выбрали один с w_i 10 первого, то мы получили бы 10 * 100 + 9 * 101 = 1909, но если мы выбрали его второй мы получим 9 * 1 + 10 * 101 = 1019.
Теперь я думаю, что оптимальный алгоритм - это тот, который планирует задачи с самого высокого отношения w_i/l_i к самому низкому, но я не уверен, как это доказать. Может ли кто-нибудь помочь с этим?
сделать название более точным: добавить имя алгоритма к нему. –