Mavzu. Dinamik dasturlashtirishning amaliy masalalari.
Dinamik dasturlashning asosiy masalasi.
Ma'lum bir boshqaruv jarayoni boshlang‘ich vektor bilan xarakterlanuvchi boshlang‘ich holatda turibdi deb faraz qilaylik. Boshlang‘ich holatlar to‘plamini orqali belgilaymiz. Vaqt o‘tishi bilan jarayon o‘zgaradi va oxirgi holatga o‘tadi. Oxirgi holatlar to‘plamini orqali belgilaymiz. holatdan ga o‘tish jarayoni N ta bosqichga bo‘linib ketadi. Jumladan, agar jarayon i-bosqichda holatda bo‘lsa, uning i+1 bosg‘ichdagi holati nafaqat holatlar vektori, balki i-bosqichdagi topilgan yechimi orqali aniqlanadi. Bundan kelib chiqib, keyingi bosqich holatlarining vektorini orqali ifodalash mumkin. Yechim esa har bir bosqichda mavjud yechimlarning to‘plamidan olinib va maqsad funksiyasining qiymatini aniqlaydi. f(S) maqsad funksiyasini funksiyalar yig‘indisi ko‘rinishida tasvirlaymiz, ularning qiymati bosqichdan bosqichiga o‘tganda o‘zgaradi:
` (6.1) U holda dinamik dasturlashning asosiy masalasi shundan iborat bo‘ladiki, u mavjud yechimlarning to‘plamidan shunday U* yechimni topishi kerakki, bu yechim jarayonni boshlang‘ich holatdan ga o‘tkazganda, maqsad funksiyasi shartlar bajarilganda ekstremal qiymatlar qabul qilishiga imkon yaratishi kerak.
Yechish paytida dinamik dasturlash masalasi soddaroq bo‘lgan masalalarga ajratib yuboriladi (tabiiy yoki sun'iy usulda). Har bir bosqichda ushbu masalalarning biron biri yechiladi, jumladan optimal yechim kelajakni hisobga olgan holda tanlanadi, ya'ni har bir bosqichda jarayonni optimallashtirib, keyingi bosqichlar haqida unutmaslik kerak.
Oxirgi bosqich, (N-1)-si kelajakka bog‘liq emas, shuning uchun bu bosqichda maqsad funksiyasining ekstremal qiymatini beruvchi yechim olinadi. N-bosqichda optimal yechimni olish uchun tizimning (N-1)-bosqichdagi holatini bilish kerak. (N-1)-bosqichda jarayonning holati noma'lum bo‘lgani uchun, jarayonlarning berilgan bosqichdagi mumkin bo‘lgan holatlari haqida turli xil farazlar qilinadi va har bir faraz uchun N-bosqichdagi optimal yechim tanlanadi. Shunday qilib, N-bosqichdagi optimal yechim topildi. Endilikda, bosqichda olingan optimal yechimni hisobga olib, (N-1) bosqichdagi optimal yechim topiladi va h.k. Natijada jarayonning boshlang‘ich holatiga kelinadi.
Birinchi bosqich uchun jarayonning mavjud holatlari haqida farazlar qilinmaydi, chunki holat ma'lum. Birinchi bosqichning optimal yechimi ikkinchi bosqichda olingan optimal yechimdan kelib chiqqan holda topiladi. Butun jarayonning optimal yechimi hamma bosqichlarda ( dan gacha) olingan optimal yechimlarni ko‘rib chiqilib xulosa qilish orqali olinadi.
Dinamik dasturlash masalalarini yechishning asosiy usuli funksional tenglamalar usulidir. Dinamik dasturlashning funksional tenglamasi har bir masalasi uchun W funksiyaning o‘ziga xos ko‘rinishi va S,U kattaliklar bilan xarakterlanuvchi xususiy ko‘rinishga ega. Dinamik dasturlash masalasining funksional tenglamasini umumiy ko‘rinishda ham yozib olish mumkin. Dinamik dasturlash masalalari oxiridan qarab boshiga yechilgani uchun, oxirgi bosqich (N=1) dagi funksional tenglama quyidagi ko‘rinishga ega:
. (6.2)
Bu yerda - - oxirgi holatdan boshlab maqsad funksiyasining nol bosqichlaridagi ekstremal qiymati. Yakuniy holat chegaralaridan tashqarida jarayon ko‘rib chiqilmagani uchun, .
N-bosqich uchun funksional tenglama quyidagi ko‘rinishda yoziladi:
(6.3)
Bu yerda - holatdan boshlab hamma N bosqichlar uchun maksad funksiyasining ekstremal qiymatidir; - holatdan boshlab hamma N-1 bosqichlar uchun maksad funksiyasining ekstremal qiymatidir; - qabul qilingan yechim natijasida holatdan boshlab N -bosqichda olingan maksad funksiyasining qiymati.
Dinamik dasturlash masalasi funksional tenglamalar usulida quyidagi ketma-ketlik bo‘yicha yechiladi:
1) Yakuniy holat (N=1 bosqich uchun) (6.2) funksional tenglama yozib olinadi. bo‘lgani uchun . Belgilangan holatlar va yechimlar hamda ularga javob beruvchi qiymatlar ko‘rib chiqiladi. Yechimlar orasida shunday tanlashadiki, u ) ni ta'minlaydi;
2) Keyingi, oxirgidan bitta oldingi (N=2) bosqichga o‘tiladi. Berilgan bosqich uchun funksional tenglama quyidagi qiymat qabul qiladi:
.
Har bir mavjud holat uchun mavjud yechimga qarab qiymat topiladi. So‘ngra yig‘indi (unda oxirgi bosqichning qiymatlari hisobga olingan) lar solishtiriladi va har bir uchun ekstremal yig‘indi va optimal yechim topiladi, ya'ni funksiya ekstremal qiymat qabul qiluvchi yechim topiladi. Xuddi shu tarzda (N=3, N=4, va h.k) bosqichdan (N=N) bosqichgacha o‘tiladi;
3) (6.3) funksional tenglamani birinchi N=N bosqich uchun yozib olishadi. Berilgan bosqichda jarayonning mavjud holatlari haqida faraz qilinmaydi, chunki holat ma'lum. Bu holat uchun optimal qiymatni ikkinchi bosqichning hamma shartli-optimal yechimlarini hisobga olgan holda aniqlash kerak;
4) Butun jarayonni to‘g‘ri yo‘l bo‘ylab dan ga qarab o‘tiladi va butun jarayon uchun maqsad funksiyasiga ekstremal qiymat beruvchi optimal qiymat tanlashadi.
Misol. Yukni 1 punktdan 14 punktga ko‘chirish kerak. 6.1 rasmda yo`llar tuguni hamda tugunning alohida punktlari orasida birlik yukni ko‘chirish narxi ko‘rsatilgan (mos qirralarga qo‘yilgan). 1 punkt bilan 14 punkt orasida eng kam xarajat ketadigan yo‘nalishni topish talab etilmoqda.
6.1 Rasm
Yechish. 1 punktdan 14 punktga yukni yetkazish jarayonini alohida bosqichlarga ajratib yuboramiz. Birinchi bosqichda yukli transport bevosita 2,3,4 punktlarga ko‘chiradi; ikkinchi bosqichda 2;3;4 punktlardan- 5;6;7;8 ga; uchinchi bosqichda -5;6;7;8 dan 9;10;11; to‘rtinchi bosqichda -9;10;11 dan 12;13 punktlarga va oxirgi bosqichda 12;13 dan-14 punktga;
Belgilash kiritamiz: N-bosqich nomeri (N=1;…;5); i-yuk o‘tkazilayotgan punkt (i=1;…;13); j-yuk yetkazilayotgan punkt (j=2;…14); -yukni i punktdan j punktga o‘tkazish narxi; - agar oxirgi punktgacha N ta bosqich qolgan bo‘lsa, u holda i punktdan oxirigacha yukni o‘tkazish uchun ketgan minimal xarajatlar.
Oxirgi bosqich uchun funksional tenglamani yechib olaylik (N=1):
.
14 punktga yuk yoki 12 punktdan, yoki 13 punktdan yetkazilishi mumkin, shuning uchun
larni hisoblaymiz.
Oxirgidan bitta oldingi (N=2) bosqich uchun funksional tenglamaning ko‘rinishi quyidagicha: . Uchinchi bosqichning hamma natijalarini ko‘rib chiqamiz (yuk 9;10;11 punktlarning birida bo‘ldi). Faraz qilaylik yuk 9 punktga kelib qoldi. Bu punktdan yoki 12 yoki 13 punkt orqali yurish mumkin, va . Demak 9 punktdan 14 punktga o‘tishning shartli optimal yo‘li 13 punktdan o‘tadi, jumladan minimal xarajatlar 13 ni tashkil etadi. Agar yuk 10 punktda to‘xtasa, u holda . , ushbu punkt uchun shartli-optimal yo‘nalish 10-12-14 ni tashkil etadi va harajatlar 10 ni tashkil etadi. 11 punkt uchun ya'ni bu punkt uchun optimal yo‘nalish 11-12-14 ni tashkil etadi va harajatlar 10 ni tashkil etadi.
Keyingi bosqichga o‘tamiz (N=3). Berilgan bosqichda shartli optimal yechimni olish uchun to‘rtinchi bosqichning hamma natijalarini ko‘rib chiqamiz (bunda yuk 5;6;7;8 punktda bo‘lib qolishi mumkin). 5 punkt uchun Bu punkt uchun optimal yo‘nalish 5-11-12-14 ni tashkil etadi. 6 punkt uchun Bu punkt uchun optimal yo‘nalish 6-11-12-14 ni tashkil etadi. 7 punkt uchun Bu punkt uchun optimal yo‘nalish 7-10-12-14 ni tashkil etadi.
8 punkt uchun Bu punkt uchun optimal yo‘nalish 8-10-12-14 ni, minimal harajatlar esa 19 ni tashkil etadi. Keyingi bosqichni ko‘rib chiqamiz (N=4). Birinchi bosqichdan so‘ng (N=5) yuk quyidagi punktlarning birida bo‘lib qolishi mumkin: 2;3;4, ya'ni , Bu degani, 2 punkt uchun optimal marshrut 2-5-11-12-14 (harajatlar 22 birlik), 3 punkt uchun 3-8-10-12-14 (harajatlar 21 birlik), 4 punkt uchun 4-5-11-12-14 (harajatlar 16 birlik) bo‘ladi.
6.2 Rasm
Va nihoyat birinchi bosqichga o‘tamiz (N=5). Bu punkt uchun optimal yo‘nalish 1-4-5-11-12-14 ni tashkil etadi, jumladan bundagi harajatlar minimal (24 birlik) bo‘ladi. Berilgan bosqichda biz 1-4 marshrutni tanladik, undagi harajatlar 1-2 marshrutdagidan 2.67, 1-3 marshrutdagidan 1.6 baravar ortiq. Lekin nafaqat birinchi balki butun marshrutni optimallashtirish nuqtai nazaridan kelishilgan yechimni birinchi bosqichda qabul qilish kerak, chunki buning natijasida 1 punktdan 14 punktga yukni yetkazish harajatlari minimallashtiriladi, ya'ni har bir bosqichda butun jarayondagi umumiy foydani hisobga olib turish kerak.
Topilgan yechim nafaqat 1 dan 14 ga yukni yetkazishning optimal marshrutini balki berilgan yo‘l tuguni uchun optimal marshrutlar to‘plamini o‘rnatishga imkon beradi (6.2 rasm).
Do'stlaringiz bilan baham: |