Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Экзамен ОТУ-ответы.docx
Скачиваний:
28
Добавлен:
23.09.2019
Размер:
726.29 Кб
Скачать

2. Решение задачи о пошаговом распределении ресурсов на основе принципа оптимальности Беллмана.

Для исследования процедур, допускающих принятие решений по шагам или этапам, используется динамическое программирование. Эффективное применение нашел принцип оптимальности Беллмана, который послужил основой метода динамического программирования. Появление метода динамического программирования связано с исследованием процессов управления, в которых фактор времени рассматривался явно. Однако он может применяться и в таких задачах, где фактор времени вообще не фигурирует. Метод может быть эффективно применен в следующих ситуациях.

  1. Постановка задачи интерпретируется как пошаговый (поэтапный) процесс принятия решения.

  2. Задача должна быть определена на каждом шаге и ее структура не должна меняться с изменением числа шагов.

  3. На каждом k-ом шаге должен быть задан параметр, характеризующий состояние системы, называемый параметром состояния

  4. На каждом k-ом шаге имеется одно или несколько значений переменной, называемой управляющей переменной.

  5. Оптимальные значения управляющей переменной зависят от параметров состояния системы на предыдущем шаге.

  6. Решение для k-шаговой задачи получается из решения для (k-1)-шаговой путем добавления k-го шага и использования результата, полученного для (k-1) шагов.

Если эти условия выполнены, то решение m-шаговой оптимизационной задачи может быть сведено к решению последовательности задач: сначала одношаговой, затем двухшаговой, трехшаговой и далее, вплоть до m-шаговой.

Задача о двух предприятиях. Пусть имеется система из двух предприятий , описываемых в начале каждого года состояниями, определяющими имеющийся объем средств и приносимый доход. Изначально дано определенное количество средств (ресурсов) , которые мы в течение m лет должны распределить между двумя предприятиями. Пусть X средства, вкладываемые в первое предприятие, тогда за год получается доход f(X), при этом вложенные средства частично тратятся, так что к концу каждого года от них остается в деле (в виде денег, зданий, машин и т.п.) какая-то часть . Аналогично средства , вложенные во второе дело, приносят доход и уменьшаются до уровня . По истечению первого года (шага), средства оставшиеся от заново перераспределяются и т.д. Таким образом, можно сформулировать следующую постановку задачи.

  1. Состояние системы перед i-ым шагом характеризуется параметром K – количеством средств, сохранившихся после предыдущих i-1 шагов. Управление на каждом шаге состоит в том, что выбирается , .

  2. Общий доход на i-ом шаге определяется как .

  3. Под влиянием управления на i-ом шаге система переходит в состояние K’ . Требуется найти управление за m шагов, при котором суммарный доход, приносимый обоими предприятиями, максимизируется , .

Поставленную задачу можно решать по разному: или строить сразу оптимальное управление u, или строить его постепенно, шаг за шагом, оптимизируя на каждом этапе расчеты только на один шаг вперед. Однако такое пошаговое управление не может оптимизироваться независимо от других, то есть без учета всех последствий принятых решений на всех будущих шагах. Из этого правила есть исключение: последний шаг, так как его можно планировать без оглядки на будущее. Другими словами, на последнем шаге используется такое управление, чтобы он принес наибольшую выгоду. Спланировав этот последний шаг, можно к нему пристраивать предпоследний, затем еще один и т.д. Поэтому процесс динамического программирования разворачивается от конца к началу. При этом для последнего шага вводится условное оптимальное управление с функцией условно оптимального выигрыша на последнем шаге .

. Далее на предпоследнем шаге определяется

. Аналогично вводится условно оптимальное управление и условный выигрыш на всех шагах, вплоть до первого . В результате получается совокупность условно оптимальных управлений .Тем самым, на каждом шаге ищется такое управление, которое обеспечивает оптимальное продолжение относительно достигнутого в данный момент состояния. Если условное управление на каждом шаге найдено, то можно теперь найти не условное, а оптимальное управление для известного начального состояния системы . Для этого надо пройти все состояния в прямом направлении (из начального состояния в конечное). При этом вычисляются величины

    1. – состояние после первого шага.

  1. , – состояние после второго шага.

  1. = – состояние после i-го шага.

Соответствующая многошаговая цепочка состояние-управление выглядит следующим образом:

Величина будет представлять количество средств, оставшихся после последнего шага, а – доход, полученный при оптимальном управлении на m-ом шаге.Исходя из вышеизложенного, основное функциональное уравнение динамического программирования может быть записано в виде ,

– частный выигрыш на i-ом шаге; – выигрыш после i-го шага с учетом изменения состояния системы. Таким образом, процесс оптимизации управления методом динамического программирования при многошаговом развитии системы (в дискретном времени) осуществляется в два прохода: от конца к началу с нахождением совокупности условно-оптимальных управлений и условных выигрышей на всех шагах; от начала к концу при известном начальном состоянии, что позволяет в итоге определить уже не условное, а реально-оптимальное управление.

Контрольно-измерительный материал № 20