Задача динамического программирования
Для увеличения объемов выпуска вычислительной техники, изготовляемой филиалами предприятия, выделены капиталовложения в объеме S тыс. руб. Использование i-м филиалом xi тыс.руб. из указанных средств обеспечивает прирост выпуска продукции. Найти распределение капиталовложений между филиалами предприятия, обеспечивающее максимальное увеличение выпуска вычислительной техники.
Таблица 3.1
Объем капиталовложений Xi (тыс. руб.) |
Прирост выпуска продукции f(Xi) в зависимости от объема капиталовложений (тыс. руб.) |
||
предприятие 1 |
предприятие 2 |
предприятие 3 |
|
0 |
0 |
0 |
0 |
100 |
30 |
50 |
40 |
200 |
50 |
80 |
50 |
300 |
90 |
90 |
110 |
400 |
110 |
150 |
120 |
500 |
170 |
190 |
180 |
600 |
180 |
210 |
220 |
700 |
210 |
220 |
240 |
Т
аблица
3.2
U F1(U) F2(U) F3(U)
0 0 0 0
100 30 50 40
200 50 80 50
300 90 90 110
400 110 150 120
500 170 190 180
600 180 210 220
700 210 220 240
Управляемая система в данном случае – капитал, который распределяется по филиалам предприятия. Состояние системы перед каждым шагом характеризуется одним числом – количество еще не распределенной суммы денег. Шаговым управлением является сумма денежных вложений U0, U1…U7. Требуется найти такое оптимальное соотношение чисел U0*, U1*…U7*, которое даёт максимальное повышение уровня объемов выпуска вычислительной техники.
Начнем оптимизацию третьего предприятия. Пусть остаток капитала к этому шагу S необходимо передать предприятию F3.
Соответственно условное оптимальное управление на третьем шаге =S, а условный оптимальный выигрыш W3(S)=F3(S).
Таблица 3.3
S i=3 i=2 i=1
U3(S) W3(S) U2(S) W2(S) U1(S) W1(S)
0 0 0 0 0 0 0
100 100 40 100 50 0 50
200 200 50 100 90 100 130
300 300 110 200 120 200 150
400 400 120 100 160 0 160
500 500 180 200 190 100 260
600 600 220 100 230 0 230
700 700 240 100 270 0 270
S=0
U2(0)=0, W2(0)=F2(0)+W3(0)=0+0= 0
S=100
U2(0)=0, W2(100)=F2(0)+W3(100)=0+40=40
U2(100)=1, W2(100)=F2(100)+W3(0)=50+0=50
S=200
U2(200)=0, W2(200)=F2(0)+W3(200)=0+50=50
U2(200)=1,W 2(200)=F2(100)+W3(100)=50+40=90
U2(200)=2, W2(200)=F2(200)+W3(0)=80+0=80
S=300
U2(300)=0, W2(300)=F2(0)+W3(300)=0+110=110
U2(300)=1, W2(300)=F2(100)+W3(200)=50+50=100
U2(300)=2, W2(300)=F2(200)+W3(100)=80+40=120
U2(300)=3, W2(300)=F2(300)+W3(0)=90+0=90
S=400
U2(400)=0, W2(400)=F2(0)+W3(400)=0+120=120
U2(400)=1, W2(400)=F2(100)+W3(300)=50+110=160
U2(400)=2, W2(400)=F2(200)+W3(200)=80+50=130
U2(400)=3, W2(400)=F2(300)+W3(100)=90+40=130
U2(400)=4, W2(400)=F2(400)+W3(0)=150+0=150
S=500
U2(500)=0, W2(500)=F2(0)+W3(500)=0+180=180
U2(500)=1, W2(500)=F2(100)+W3(400)=50+120=170
U2(500)=2, W2(500)=F2(200)+W3(300)=80+110=190
U2(500)=3, W2(500)=F2(300)+W3(200)=90+50=140
U2(500)=4, W2(500)=F2(400)+W3(100)=150+40=190
U2(500)=5, W2(500)=F2(500)+W3(0)=190+0=190
S=600
U2(600)=0, W2(600)=F2(0)+W3(600)=0+220=220
U2(600)=1, W2(600)=F2(100)+W3(500)=50+180=230
U2(600)=2, W2(600)=F2(200)+W3(400)=80+120=200
U2(600)=3, W2(600)=F2(300)+W3(300)=90+110=200
U2(600)=4, W2(600)=F2(400)+W3(200)=150+50=200
U2(600)=5, W2(600)=F2(500)+W3(100)=190+40=230
U2(600)=6, W2(600)=F2(600)+W3(0)=210+0=210
S=700
U2(700)=0, W2(700)=F2(0)+W3(700)=0+240=240
U2(700)=1, W2(700)=F2(100)+W3(600)=50+220=270
U2(700)=2, W2(700)=F2(200)+W3(500)=80+180=260
U2(700)=3, W2(700)= F2(300)+W3(400)=90+120=210
U2(700)=4, W2(700)= F2(400)+W3(300)=150+110=260
U2(700)=5, W2(700)= F2(500)+W3(200)=190+50=240
U2(700)=6, W2(700)= F2(600)+W3(100)=210+40=250
U2(700)=7, W2(700)= F2(700)+W3(0)=220+10=230
S=0
U1(0)=0, F1(0)+W2(0)=0+0=0
S=100
U1(0)=0, W1(100)=F1(0)+W2(100)=0+50=50
U1(100)=1, W1(100)=F1(100)+W2(0)=30+0=30
S=200
U1(200)=0, W1(200)=F1(0)+W2(200)=0+90=90
U1(200)=1, W1(200)=F1(100)+W2(100)=30+100=130
U1(200)=2, W1(200)=F1(200)+W2(0)=50+0=50
S=300
U1(300)=0, W1(300)=F1(0)+W2(300)=0+120=120
U1(300)=1, W1(300)=F1(100)+W2(200)=30+90=120
U1(300)=2, W1(300)=F1(200)+W2(100)=50+100=150
U1(300)=3, W1(300)=F1(300)+W2(0)=90+0=90
S=400
U1(400)=0, W1(400)=F1(0)+W2(400)=0+160=160
U1(400)=1, W1(400)=F1(100)+W2(300)=100+120=220
U1(400)=2, W1(400)=F1(200)+W2(200)=50+90=140
U1(400)=3, W1(400)=F1(300)+W2(100)=90+50=140
U1(400)=4, W1(400)=F1(400)+W2(0)=110+0=110
S=500
U1(500)=0, W1(500)=F1(0)+W2(500)=0+190=190
U1(500)=1, W1(500)=F1(100)+W2(400)=100+160=260
U1(500)=2, W1(500)=F1(200)+W2(300)=50+120=170
U1(500)=3, W1(500)=F1(300)+W2(200)=90+90=180
U1(500)=4, W1(500)=F1(400)+W2(100)=110+100=210
U1(500)=5, W1(500)=F1(500)+W2(0)=170+0=170
S=600
U1(600)=0, W1(600)=F1(0)+W2(600)=0+230=230
U1(600)=1, W1(600)=F1(100)+W2(500)=30+190=220
U1(600)=2, W1(600)=F1(200)+W2(400)=50+160=210
U1(600)=3, W1(600)=F1(300)+W2(300)=90+120= 210
U1(600)=4, W1(600)=F1(400)+W2(200)=110+90=200
U1(600)=5, W1(600)=F1(500)+W2(100)=170+50=220
U1(600)=6, W1(600)=F1(600)+W2(0)=180+0=180
S=700
U1(700)=0, W1(700)=F1(0)+W2(700)=0+270=270
U1(700)=1, W1(700)=F1(100)+W2(600)=30+230=260
U1(700)=2, W1(700)=F1(200)+W2(500)=50+190=240
U1(700)=3, W1(700)=F1(300)+W2(400)=90+160=250
U1(700)=4, W1(700)=F1(400)+W2(300)=110+120=230
U1(700)=5, W1(700)=F1(500)+W2(200)=170+90=260
U1(700)=6, W1(700)=F1(600)+W2(100)=180+50=230
U1(700)=7, W1(700)=F1(700)+W2(0)=210+0=210
Ответ: Первой организацией получено - 0 рублей, второй организацией получено - 100 тысяч рублей, третьей организацией получено – 600 тысяч рублей.
