Реферат: Динамическое программирование (задача о загрузке)
Состояние на этапе j можно описать с помощью переменной zj , которая выражает количество имеющихся к концу этапа j овец для распределения на этапах j+1, j+2, ..., n, или с помощью переменной xj , которая выражает количество имеющихся к началу этапа j+1 овец, обусловленное принятыми на этапах 1,2,...,j решениями. Первое определение ориентировано на построение рекуррентного соотношения
для процедуры обратной прогонки, тогда как второе определение приводит к использованию алгоритма прямой прогонки.
Алгоритм обратной прогонки
Обозначим через fi (zi ) максимальную прибыль, получаемую на этапах j,j+1,…,n, при заданном zj . Рекуррентное соотношение имеет следующий вид:
Заметим, что yj и zj - неотрицательные целые числа. Кроме того, уj (количество овец, проданных в конце периода j) должно быть меньше или равно zj . Верхней границей для значений zj , является величина 2j k (где k- исходный размер стада), которая соответствует отсутствию продажи.
Алгоритм прямой прогонки
Обозначим через gj (xj ) максимальную прибыль, получаемую на этапах 1,2,...,j при заданном xj , (где xj — размер стада к началу этапа J+1). Рекуррентное соотношение записывается в следующем виде:
- целое.
Сравнение двух формулировок показывает, что представление xj -1 через xj создает более существенные препятствия для вычислений, чем представление zj +1 через zj .
В замене xj -1 =(xj +yj )/2 подразумевается целочисленность правой части, тогда как на равенство zj +1 =2(zj -yj ) такое требование не накладывается. Таким образом в случае процедуры прямой прогонки значения yj и xj , связанные неравенством
Yj <=2j k -Xj ,
должны дополнительно удовлетворять условию целочисленности их полусуммы, связанному с видом зависимости хj -1 от xj ,. Рассмотренный пример иллюстрирует трудности вычислительного характера, которые обычно возникают при использовании алгоритма прямой прогонки.
2.3 Решение задачи о загрузке
Контрольная работа содержит вопросы по N различным темам. Каждый вопрос типа i имеет вес Vi(i=1,2,…N), а также время, отводимое на ответ Wi. Максимально время, которое может затратить студент на контрольную работу W. Требуется определить максимальное количество баллов (вес), которое может набрать студент за отведенное время W=30. Данные приведены в таблице:
I | Wi | Vi |
15 2 6 34 43 5 66 75 87 |
2 3 1 4 7 5 3 2 |
2 3 2 4 К-во Просмотров: 423
Бесплатно скачать Реферат: Динамическое программирование (задача о загрузке)
|