Файл: Индивидуальная практическая работа Динамическое программирование.docx
Добавлен: 05.12.2023
Просмотров: 87
Скачиваний: 3
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Рис. 2.1
Уравнения состояний в данной задаче имеют вид k = k–1– xk, k=1, 2, 3, 4, где k – параметр состояния – количество средств, оставшихся после k–го шага, т.е. средства, которые остается распределить между оставшимися 4–k предприятиями.
Zk*(k–1) – условная оптимальная прибыть, полученная от k–го, (k+1)–го, …, 4 предприятий, если между ними оптимальным образом распределялись средства k–1. Допустимые управления на k–м шаге удовлетворяют условию 0 хkk–1.
Уравнения Беллмана имеют вид:
к = 4, 4=0 Z4*(3)=max f4(x4), 0 x43;
Z3*(2)=max {f3(x3) + Z4*(3)}, 0 x32;
Z2*(1)=max {f2(x2) + Z3*(2)}, 0 x21;
Z1*(5)=max {f1(x1) + Z2*(1)}, 0 x3 5.
4 шаг (k = 4). В табл. 2.1 f4(x) прибыли монотонно возрастают, поэтому все средства, оставшиеся к IV шагу, следует вложить в 4–е предприятие. Для возможных значений 3 = 0, 1, 2, 3, 4, 5 получим Z4*(3)=f4(3) и x4*(3)=3.
Таблица 2.2
k–1 | xk | k | k=3 | k=2 | k=1 | ||||||||
| | | f3(x3)+ Z4*(3) | Z3*(2) | x3*(2) | f2(x2)+ Z3*(2) | Z2*(1) | x2*(1) | f1(x1)+ Z2*(1) | Z1*(0) | x1*(0) | ||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||
1 | 0 1 | 1 0 | 0+4=4 3+0=3 | 4 | 0 | 0+4=4 6+0=6 | 6 | 1 | 0+6=6 8+0=8 | 8 | 1 | ||
2 | 0 1 2 | 2 1 0 | 0+6=6 3+4=7 4+0=4 | 7 | 1 | 0+7=7 6+4=10 9+0=9 | 10 | 1 | 0+10=10 8+6=14 10+0=10 | 14 | 1 | ||
3 | 0 1 2 3 | 3 2 1 0 | 0+8=8 3+6=9 4+4=8 7+0=7 | 9 | 1 | 0+9=9 6+7=13 9+4=13 11+0=11 | 13 | 1 2 | 0+13=13 8+10=18 10+6=16 11+0=11 | 18 | 1 | ||
4 | 0 1 2 3 4 | 4 3 2 1 0 | 0+13=13 3+8=12 4+6=10 7+4=11 11+0=11 | 13 | 0 | 0+13=13 6+9=15 9+7=16 11+4=15 13+0=13 | 16 | 2 | 0+16=16 8+13=21 10+10=20 11+6=17 12+0=12 | 21 | 1 | ||
5 | 0 1 2 3 4 5 | 5 4 3 2 1 0 | 0+16=16 3+13=16 4+8=12 7+6=13 11+4=16 18+0=18 | 18 | 5 | 0+18=18 6+13=19 9+9=18 11+7=18 13+4=17 15+0=15 | 19 | 1 | 0+19=19 8+16=24 10+13=23 11+10=21 12+6=18 18+0=18 | 24 | 1 |
3 шаг (k = 3). Делаем все предположения относительно остатка средств 2 к 3 шагу, т.е. после выбора x1 и x2. 2 = 0, 1, 2, 3, 4, 5 (0 – все средства отданы 1 и 2–му предприятиям, 5 – 1–е и 2–е предприятия ничего не получили и т.д.) В зависимости от этого выбираем 0 x32, находим 3=2 – x3и сравниваем для разных x3при фиксированном 2 значения суммы f3(x3)+Z4*(3). Для каждого 2наибольшее из этих значений есть Z3*(2) – условная оптимальная прибыль, полученная при оптимальном распределении 2 между 3–м и 4–м предприятиями. Оптимизация приведена в табл. 6.2 при k = 3.
2 шаг. Условный оптимум приведен в той же таблице и для k = 2. Для всех возможных значений 2значения Z2*(1) и Х2*(1) находятся в столбцах 8 и 9 соответственно; первые слагаемые в столбце 7 – значения f2(x2) взяты из табл. 6.2, а вторые слагаемые взяты из столбца 5 табл. 6.2 при 2=1–x2.
1 шаг. Условный оптимум приведен и для k = 1 при 0 = 5.
Итак, максимум суммарной прибыли Zmax=Z1*(5)=24 у. е. при
x1*=x1*(5)=1
1*=5–1=4 x2*=x2*(4)=2
2*=4–2=2 x3*=x3*(2)=1
3*=2–1=1 x4*=x4*(1)=3*=1.
Выделение средств различным предприятиям:
1–му выделена 1 у. е.
2–му выделены 2 у. е.
3–му выделена 1 у. е.
4–му выделена 1 у. е.
Замечания.
Решение четырехмерной задачи на определение условного экстремума сведено фактически к решению четырех одномерных задач: на каждом шаге определялась одна переменная х.
Из разобранной задачи видно, что метод ДП безразличен к виду и способу задания функции: fk(x) были заданы таблично, поэтому Zk*() и Хk*() принимали дискретные значения, представленные в таблице.
Достоинством метода является возможность анализа решения на чувствительность к изменению 0
и n. Проведенные расчеты можно использовать для изменившихся начального состояния 0 и числа шагов n. Например, пусть в задаче произошло уменьшение начальных средств на 1 у.е. Для 0 = 4 достаточно в таблицу добавить расчеты при k= 1. Получаем в этом случае Zmax = 21 у.е. при распределении:
x1*=11*=4–1=3 x2*=1, или x2*=2
2*=3–1=2, или 2*=3–2=1 x3*=1, или x3*=0
3*=2–1=1, или3*=1–0=1, x4*=1.
В результате найдены два оптимальных решения: (1,1,1,1) и (1,2,0,1). Если начальные средства увеличились, например, на 1 у.е., 0 = 6, а функции прибыли fk(x) остались прежними, то в таблицу достаточно добавить раздел для 0 = 6 при k= 3, 2, 1; этот фрагмент расчетов помещен в табл. 2.3.
Таблица 2.3
6 | 0 1 2 3 4 5 | 6 5 4 3 2 1 | 0+0=0 3+16=19 4+13=17 7+8=15 11+6=17 18+4=22 | 22 | 5 | 0+22=22 6+18=24 9+13=22 11+9=20 13+7=20 15+4=19 | 24 | 1 | 0+24=24 8+19=27 10+16=26 11+13=24 12+10=22 18+6=24 | 27 | 1 |
Получаем Zmax=27 у.е. при распределении:
x1*=11*=6–1=5 x2*=12*=5–1=4 x3*=0 3*=4–0=4 x4*=4.
Оптимальное решение (1,1,0,4).
Если принято решение распределить средства 0 = 5 между 2–, 3– и 4–м предприятиями, то задача уже решена. В разделе k= 2 табл. 6.2 находим Zmax=Z2*(5)=19 при условии, что x2*=1, x3*=0, x4*=4.
Наконец, если увеличилось количество предприятий (число шагов), то схему можно дополнить, присоединяя шаги с номерами k= 0,–1,… и т.д. Например, пусть средства в размере 6 у.е. распределяются между пятью предприятиями. Функция прибыли для пятого предприятия задана формулой f(x) = 3x+1, если х и f(0) = 0. Присвоим 5–му предприятию номер
k= 0, тогда х0 = 0 – средства, выделенные этому предприятию. Обозначим через Z0*(6) оптимальную прибыль, полученную от пяти предприятий:
Z0*(6)= Z3*(2)=max {f0(x0) + Z1*(1)}, 0 x0 6,
а 1= 6 – х0. Условная оптимизация 0–го шага дана в табл. 2.4.
Таблица 2.4
x0 | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
1= 6 – х0 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
f(0) = 0 | 0 | 4 | 7 | 10 | 13 | 16 | 19 |
Z1*(1)(приk=1) | 27 | 24 | 21 | 18 | 14 | 8 | 0 |
f(x0) + Z1(1) | 27 | 28 | 28 | 28 | 27 | 24 | 19 |
Следовательно, Zmax=28, а оптимальных решений четыре: (1,1,2,1,1), (2,1,1,1,1), (2,1,2,0,1), (3,1,1,0,1). ▼
-
2.2. Задача об оптимальном распределении ресурсов между отраслями
на n лет
Планируется деятельность двух отраслей производства на n лет. Начальные ресурсы 0. Средства х, вложенные в 1–ю отрасль в начале года, дают в конце года прибыль f1(x) и возвращаются в размере q1(x)
Требуется распределить имеющиеся средства 0 между двумя отраслями производства на n лет так, чтобы суммарная прибыль от обеих отраслей за n лет оказалась максимальной.
Необходимо:
-
построить модель ДП для задачи и вычислительную схему; -
решить задачу при условии, что 0 = 10000 у.е., n = 4, f1(x) = 0,6x, q1(x) = 0,7x, f2(x) = 0,5x, q2(x) = 0,8x.
Решение. Процесс распределения средств между двумя отраслями производства разворачивается во времени, решения принимаются в начале каждого года, следовательно, осуществляется деление на шаги: номер шага – номер года. Управляемая система – две отрасли производства, а управление состоит в выделении средств каждой отрасли в очередном году. Параметры состояния к началу k–го года — k–1 (k = 1,…,n) – количество средств, подлежащих распределению. Переменных управления на каждом шаге две: хk — количество средств, выделенных 1 отрасли, и yk — 2 отрасли. Но так как все средства k–1 распределяются, то уk = k–1 – xk, и поэтому управление на k–м шаге зависит от одной переменной xn, т.е. Хk (хk, k–1 – xk).
Уравнения состояний выражают остаток средств, возвращенных в конце k–го года k = q1(xk) + q2(k–1 – xk).
Показатель эффективности k–го шага — прибыль, полученная в конце k–го года от обеих отраслей: f1(xk) + f2(k–1 – xk).
Суммарный показатель эффективности — целевая функция задачи — прибыль за n лет: Z = + f2(k-1 - xk).
Пусть Z*k(k–1) — условная оптимальная прибыль за n – k + 1 лет, начиная с k–го года до n–го года включительно, при условии, что имеющиеся на начало k–го года средства k–1 в дальнейшем распределялись оптимально. Тогда оптимальная прибыль за n лет Zmax = Z*1(0).
Уравнения Беллмана имеют вид:
Z*n(n–1) = max {f1(xn) + f2(n–1 – хn)},0 хnn–1;
Z*k(k–1) = max {f1(xk) + f2(k–1 – хk) + Z*k+1(k)} , 0 хkk–1,
(k = n–1, n–2, …, 2).
Используем конкретные данные.
Уравнение состояний примет вид
k = 0,7xk + 0,8(k–1 – xk) или k = 0,8k–1 –0,1xk.
Целевая функция k–го шага 0,6xk + 0,5(k–1 – xk) = 0,1xk + 0,5k–1.
Целевая функция задачи Z = + 0,1xk..
Z*4(3) = max {0,53 + 0,1x4} 0 х43;
Z*k(k–1) = max {0,1xk + 0,5k–1 + Z*k+1(k)}, 0 хkk–1.
Проводим условную оптимизацию.
4 шаг. Используем уравнение Z*4(3) = max {0,53 + 0,1x4},0 х43. Обозначим Z4 = 0,1х4 + 0,53; Z4 линейная, возрастающая, так как угловой коэффициент 0,1 больше нуля. Поэтому максимум достигается на конце интервала [0;3]. Следовательно, Z*4(3)= 0,63 при х*4(3)= 3.
3 шаг. Уравнение Z*3(2) = max {0,1x3 + 0,52 + 0,63}, 0 х32.
Найдем 3 из уравнений состояний: 3 = 0,82 – 0,1x3 и, подставив его выражение в правую часть уравнения, получим
Z*3(2) = max {0,1x3 + 0,52 + 0,6(0,82 – 0,1x3)} = max {0,04x3 + 0,982}, 0 х32.
Как и в предыдущем случае, максимум достигается при х3=2; т.е. Z*3(2)= 1,022 при х*3(2)= 2.
2 шаг. Из уравнения состояния: 2 = 0,81 – 0,1x2. Уравнение при k=2 примет вид Z*2(1) = max {1,3161 – 0,002x2}, 0 х21. Линейная функция Z*2 = 1,3161 – 0,002x2 относительно х2 убывает на отрезке [0;1], и поэтому ее максимум достигается при х2=0: Z*2(1)= 1,3161 при х*2(1)= 0.
1 шаг. 1 = 0,81 – 0,1x1. Уравнение при k=1 имеет вид
Z*1(0) = max {1,55280 – 0,031x1}, 0 х10.
Как и в предыдущем случае, максимум достигается в начале отрезка, т.е. Z*1(0)= 1,55280 при х*1(0)= 0.
На этом условная оптимизация заканчивается. Используя ее результат и исходные данные, получим Zmax = Z*1(10000), Zmax = 15528.
х*1 = 0, у*1 = 0 = 10000
*1 = 0,8*10000 –0,1*0 = 8000 х*2 = 0, у*2 = 8000
*2 = 0,8*8000 –0,1*0 = 6400 х*3 = 6400, у*3 =0
*3 = 0,8*6400 –0,1*6400 = 4480 х*4 = 4480, у*4 =0.
Оптимальная прибыль за 4 года, полученная от двух отраслей производства при начальных средствах 10000 у.е., равна 15528 у.е. при условии, что 1 отрасль получает по годам (0;0;6400;4480), а 2 отрасль – соответственно (10000;8000;0;0).