You are on page 1of 43

Tiesinis matematinis

programavimas
(4 paskaita)

doc. dr. Pavel Stefanovič


Matematinis programavimas (1)
• Optimizavimo uždavinys – tai funkcijos, kurią vadiname tikslo
funkcija, minimumo (arba maksimumo) radimas kurioje nors galimų
reikšmių srityje.

• Optimizavimo uždavinį sudaro:


• Uždavinio kintamieji 𝑋;
• Tikslo funkcija 𝑓(𝑋).

• Leistina sritis 𝐴:

𝐴 = 𝑋 ∈ 𝑅 𝑛 ∶ 𝑔1 𝑋 = 0, 𝑔2 𝑋 ≥ 0

2
Matematinis programavimas (2)
• Norint suformuluoti uždavinį matematiškai, reikia sudaryti
taikomojo uždavinio matematinį modelį.
• Tai svari ir sudėtinga formalizuojamo uždavinio sprendimo
grandis, nuo kurios labai priklauso sprendimo greitis ir gautų
rezultatų kokybė. Sudarant matematinį modelį:
• reikia turėti pakankamai žinių apie taikomąją sritį, kad būtų galima
sudaryti algoritmą tikslo funkcijos ir ribojimus apibrėžiančių funkcijų
reikšmėms apskaičiuoti;
• reikia išsiaiškinti, kokį kriterijų tikslinga optimizuoti, kokie uždavinio
parametrai gali būti keičiami ir kokioje srityje jie gali kisti, t. y. apibrėžti
kintamąjį vektorių, bei tikslo funkciją ir galimų sprendinių sritį.
• uždavinio sprendimui pasirinkti tinkamą optimizavimo metodą.

3
Geometrinė interpretacija

4
Transporto uždavinys (1)
• Turime vienodų resursų krovinį, kuris paskirstytas tarp m
sandėlių 𝐴1 , 𝐴2 , … , 𝐴𝑚 taip, kad juose yra atitinkamai
𝑎1 , 𝑎2 , … , 𝑎𝑚 resursų vienetų. Į n vietų 𝐵1 , 𝐵2 , … , 𝐵𝑛 reikia
pristatyti krovinį taip, kad juose būtų atitinkamai 𝑏1 , 𝑏2 , … , 𝑏𝑛 šio
krovinio vienetų. Sakykime, kad krovinio vieneto transportavimo
kaina iš sandėlio 𝐴𝑖 į vietą 𝐵𝑗 yra 𝑐𝑖𝑗 .
• Rasti tokį krovinio transportavimo planą, kad įvykdžius visus
užsakymus, transportavimo kaštai būtų mažiausi. Tai ir yra
transporto uždavinys.

5
Transporto uždavinys (2)
• Suformuluokime šį uždavinį matematiškai. Tegul 𝑥𝑖𝑗 , 𝑖 = 1, … , 𝑚,
o 𝑗 = 1, … , 𝑛, yra krovinio kiekis, pervežamas iš sandėlio 𝐴𝑖 į
vietą 𝐵𝑗 . Šie kiekiai (𝑥𝑖𝑗 ) vadinami pervežimais, o šių pervežimų
visuma 𝑥 = {𝑥𝑖𝑗 } vadinama pervežimų planu arba tiesiog planu.

6
Transporto uždavinys (3)

7
Transporto uždavinys (4)
• Transporto uždavinio sprendinys vadinamas optimaliu planu.
Jeigu visų paraiškų suma lygi visų resursų sumai:
𝑚 𝑛

෍ 𝑎𝑖 = ෍ 𝑏𝑗
𝑖=1 𝑗=1

Teorema 1. Transporto uždavinys turi leistiną planą tada ir tik


tada, kai jis subalansuotas.
Teorema 2. Subalansuotas transporto uždavinys visada
išsprendžiamas.

8
Pavyzdys
• Kasdien dvi transporto įmonės 𝐴1 ir 𝐴2 į reisą išleidžia 1100
vienetų sunkvežimių. Įmonė 𝐴1 išleidžia 600, o įmonė 𝐴2
išleidžia 500 mašinų. Visos mašinos siunčiamos į tris prekių
sandėlius 𝐵1 , 𝐵2 , 𝐵3 , kuriems kasdien reikia atitinkamai 250,
450 ir 400 sunkvežimių. Atstumai 𝑐𝑖𝑗 (km) nuo įmonės 𝐴𝑖 iki
sandėlio 𝐵𝑗 duoti.
• Reikia sudaryti tokį sunkvežimių paskirstymo planą, kad
automašinų vykimo į sandėlius visa tuščioji rida būtų mažiausia.

9
Nesubalansuotas uždavinys (1)
• Praktikoje dažniausiai naudojami nesubalansuoti uždaviniai t. y.
atsargos ir poreikiai nesutampa.
• Tokiais atvejais transporto uždavinyje nagrinėjamas vadinamasis
fiktyvus tiekėjas arba gavėjas. Jei atsargos viršija poreikius, tai
transporto uždavinys papildomas fiktyviu gavėju (n+1), kurio poreikis
lygus atsargų pertekliui.
𝑚 𝑛 𝑚 𝑛

෍ 𝑎𝑖 > ෍ 𝑏𝑗 𝑏𝑛+1 = ෍ 𝑎𝑖 − ෍ 𝑏𝑗
𝑖=1 𝑗=1 𝑖=1 𝑗=1

• Fiktyviam gavėjui iš visų tiekėjų pervežimo kaina 𝑐𝑖,𝑛+1 = 0, kur 𝑖 =


1, … , 𝑚. Faktiškai niekas nepervežama.

10
Nesubalansuotas uždavinys (2)
• Jei poreikiai didesni už atsargas, tai uždavinys papildomas
fiktyviu tiekėju (m+1), patenkinančiu trūkstama poreikių apimtį.
𝑚 𝑛 𝑛 𝑚

෍ 𝑎𝑖 < ෍ 𝑏𝑗 𝑎𝑚+1 = ෍ 𝑏𝑗 − ෍ 𝑎𝑖
𝑖=1 𝑗=1 𝑗=1 𝑖=1

• Pervežimo kaina iš fiktyvaus tiekėjo gavėjams 𝑐𝑚+1,𝑗 = 0, kur


𝑗 = 1, … , 𝑛. Produkto apimtis, pervežama iš kurio nors tiekėjo
fiktyviam gavėjui, paprasčiausiai lieka pas šį tiekėją.

11
Uždaviniai su papildomais apribojimais
• Uždrausti srautai, kai yra draudimai susieti kai kuriuos tiekėjus su
gavėjais.

Sprendimas: nustatoma labai didelė pervežimo kaina tarp nurodytų


tiekėjų ir gavėjų (𝑐𝑖𝑗 = ∞).

• Nelygiaverčiai tiekėjai/gavėjai. Nesubalansuoto uždavinio pavyzdys:

• 7-ajam tiekėjui suteikiame prioritetą, iš jo visus produktus išvežame visada.


Tad turime: 𝑐7,𝑛+1 = ∞.
• Jeigu norima, kad 5 gavėjas visada gautų viską, tai nustatome kainą 𝑐𝑚+1,5 =
∞.
12
Gamybos pajėgumų išdėstymas (1)
• Gamybinių pajėgumų išdėstymo (paskyrimo) uždavinys ir jo ryšys su
transporto uždaviniu.
• Turim n įrengimų, kuriuos reikia paskirti į n darbo vietų. i-tasis
įrengimas, paskirtas į j-tają vietą. Tam reikia išlaidų 𝑐𝑖𝑗 eur.

Tikslas: taip paskirstyti įrengimus, kad bendros eksploatavimo


išlaidos būtų minimalios.

• xij reikšmės gali būti {0,1}. Tai rodo, ar i-tasis įrengimas priskirtas į j-tąją darbo
vietą ar ne.
• xij = 0, jeigu nepriskirtas.
• xij = 1, jeigu priskirtas.

13
Gamybos pajėgumų išdėstymas (2)
𝑛 𝑛

• Tikslo funkcija: 𝑚𝑖𝑛 ෍ ෍ 𝑐𝑖𝑗 𝑥𝑖𝑗


𝑖=1 𝑗=1

• Užrašytas uždavinys yra transporto uždavinys. Sąlygos 1-3


garantuoja, kad jo sprendinys tenkina apribojimus 0 ≤ xij ≤ 1.
Sprendinys sveikas skaičius.

14
Atsargų valdymo uždavinys (1)
• Atsargų valdymo uždavinys kaip transporto uždavinys.
• Įmonė planuoja darbą m dienų į priekį. Per šias dienas ji gali
pagaminti a1, a2, ..., am tam tikrų produktų vienetų. Vartotojams
pateikti per šias dienas būtina b1, b2, ..., bm šio produkto vienetų
(paklausa).

Prielaida: gamybos pajėgumai pakankamai dideli ir visas


vartotojų poreikis gali būti patenkintas:
𝑚 𝑛

෍ 𝑎𝑖 > ෍ 𝑏𝑗
𝑖=1 𝑗=1
15
Atsargų valdymo uždavinys (2)
• Produkto vieneto gamyba i-tąją dieną kainuoja gi eurų, o
sandėliavimo nuo i-tosios iki j-tosios dienos išlaidos sudaro si(j - i)
eurų (j ≥ i , i, j=1,..., m).

• Tikslas: sudaryti optimalų gamybos planą (paklausa patenkinta,


sandėliavimas ir gamybos kaina minimali) xij – apimtis produkto,
gaminamo i-tąją dieną ir skirto j-tosios dienos poreikiams patenkinti.

• Laikysime, kad i ≤ j, nes „įsiskolinti” neleidžiama: galima gaminti tik


atsargai.

16
Atsargų valdymo uždavinys (3)
• Įvedame fiktyvią m + 1 dieną, kurią naudojama produkto apimtis,
tad tuomet gamybos perteklius:
𝑚 𝑚

𝑏𝑚+1 = ෍ 𝑎𝑖 + ෍ 𝑏𝑗
𝑖=1 𝑗=1

• Matematinis modelis:
𝑚 𝑚+1

• Tikslo funkcija: 𝑚𝑖𝑛 ෍ ෍ 𝑐𝑖𝑗 𝑥𝑖𝑗


𝑖=1 𝑗=1

𝑚 𝑚+1

• Leistinoji sritis: ෍ 𝑥𝑖𝑗 = 𝑏𝑗 , ෍ 𝑥𝑖𝑗 = 𝑎𝑖𝑗 ,


𝑖=1 𝑗=1
17
Atsargų valdymo uždavinys (4)
• Šiame uždavinyje nėra nežinomųjų xij, kai j < i, nes negalima
patenkinti poreikio „atgaline“ data.
• Įtrauksime į uždavinį trūkstamus nežinomuosius, bet
uždrausime jiems įgyti teigiamas reikšmes.
• Tai galime padaryti, suteikę cij (j < i) labai dideles reikšmes. Taip
pereiname prie įprasto transporto uždavinio.

18
Pradinio plano radimo metodai
• Transporto uždavinio bet kuris kintamasis yra tik dviejose
apribojimų sistemos lygtyse, ir koeficientai lygūs vienetui.
• Sprendžiant transporto uždavinį, iš pradžių reikia rasti atraminį
pervežimo planą, o po to optimalų.
• Panagrinėsime du metodus:
• Šiaurės vakarų kampo metodas.
• Mažiausio elemento metodas.

19
Šiaurės vakarų kampo metodas (1)
• Imkime subalansuotą transporto uždavinį. Uždavinio sąlygas
užrašome į lentelę.
• Paeiliui pildomi lentelę, rašydami atraminio plano X0 reikšmes į
atitinkamus langelius.

Eiga:

• Iš pradžių pildome lentelės kairįjį viršutinį langelį (1; 1). Šį langelį


atitinka siuntimo punktas 𝐴1 ir paskirties punktas 𝐵1 . Langelyje
įrašome mažesnį skaičių:
0
𝑥11 = min(𝑎1 ; 𝑏1 )
20
Šiaurės vakarų kampo metodas (2)
• Jei a1 > b1, tai gavėjo 𝐵1 poreikiai visiškai patenkinti. Siuntimo punkte
𝐴1 liko a1 – b1vienetų krovinio. Išbraukiame pirmąjį stulpelį.

• Jei a1 < b1, tai iš sandėlio 𝐴1 visiškai išvežti kroviniai. Gavėjui 𝐵1


trūksta b1 – a1 vienetų krovinio. Išbraukiame pirmąją eilutę.

• Jei a1 = b1, tai iš sandėlio 𝐴1 visiškai išvežti kroviniai ir gavėjo 𝐵1


poreikiai patenkinti. Išbraukiame pirmąją eilutę.

• Ciklą kartojame pasirinkdami kitą langelį (1, 2) arba (2, 1).

21
Šiaurės vakarų kampo metodas (3)

22
Šiaurės vakarų kampo metodas (4)

𝐹 𝑥 = 10 × 20 + 6 × 20 + 7 × 5 + 9 × 20 + 7 × 5 + 6 × 40 + 5 × 10 + 8 × 50 = 1260
23
Pavyzdys (1)

24
Pavyzdys (2)

𝐹 𝑥 = 5,925 €
25
Mažiausio elemento metodas (1)
• Sudarydami pradinį atraminį planą, neatsižvelgta į krovinio
perveržimo kainą.
• Todėl ieškant optimaliojo plano reikia atlikti daug iteracijų.
• Įteracijų skaičius būna mažesnis, kai pradinį planą randame
mažiausio elemento metodu.
• Taikant šį metodą, kiekviename žingsnyje pildomas langelis,
kurį atitinka mažiausia pervežimo kaina tarp neužpildytų
langelių. Po to išbraukiama atitinkama eilutė arba stulpelis.

26
Mažiausio elemento metodas (2)

𝐹 𝑥 = 5 × 45 + 4 × 20 + 5 × 15 + 6 × 20 + 7 × 20 + 4 × 20 + 5 × 20 + 6 × 10 = 940

27
Potencialų metodas (1)
• Potencialų metodu sprendžiamas subalansuotas transporto
uždavinys.
• Sprendimo žingsniai:
• Potencialų skaičiavimas.
• Laisvųjų langelių įvertinimo skaičiavimas.
• Geresnio atraminio plano sudarymas.

28
Potencialų metodas (2)
1. Surandame siuntimo punkto A ir paskirties punkto B potencialus;
2. Pagal didžiausią teigiamą įvertinimą parenkame laisvąjį langelį (i,
j). Jei visi įvertinimai neneigiami, tai atraminis planas optimalus.
3. Priskyrę langeliui (i, j) pliuso ženklą, sudarome ženklintą ciklą ir
apskaičiuojame skaičių O.

𝑂 = min 𝑥𝑖𝑗 = 𝑥𝑖𝑟,𝑗𝑟

4. Po to atlikę poslinkį skaičiumi O, gauname kitą lentelę ir ją


atitinkantį atraminį planą x1.
5. Skaičiavimus tęsiame naujo atraminio plano x1 atžvilgiu.

29
Pavyzdys (1)
1. Rasti pradinį planą (pvz. šiaurės vakarų kampo metodu).

30
Pavyzdys (2)
2. Siuntėjų potencialai eilutės (žymėsime u), gavėjų potencialai
stulpeliai – v.

31
Pavyzdys (3)
3. Surandame siuntimo punkto A ir paskirties punkto B potencialus.

• Kadangi nežinomųjų yra 5, o lygtys 4, tai vieną iš nežinomųjų


prilyginame nuliui, t. y. u1 = 0.
• Kiti potencialai apskaičiuojami pagal jau surastus:
𝑣2 = 15, 𝑣3 = 13, 𝑢2 = −2, 𝑣1 = 10

32
Pavyzdys (4)
4. Gautus potencialus surašome į naują lentelę.
• Apskaičiuojame laisvųjų langelių (kintamųjų (1,3) ir (2,1)) įvertinimus:

• Parenkame didžiausią teigiamą įvertinimą. Šį įvertinimą atitinka


laisvasis langelis (1,3) ir sudarome ciklą langeliui (1,3) priskirę +:

(1,3)+  (1,2)-  (2,2)+  (2,3)- 33


Pavyzdys (5)
5. Randame skaičių:
𝑂 = min{𝑥𝑖𝑗} = min{350,400} = 350.

• Atliekame poslinkį t.y. prie langelių, pažymėtų „+“ pridedame 350, o iš


langelių, pažymėtų „–“ atimame 350. Tuo būdu gauname kitą pagerintą
planą.

34
Pavyzdys (6)
6. Surandame sekančius siuntimo punkto A ir paskirties punkto B
potencialus.

Kai u1 = 0, tai 𝑣2 = 10, 𝑣3 = 8, 𝑢2 = 3, 𝑣1 = 10

35
Pavyzdys (7)
7. Gautus potencialus surašome į naują lentelę.
• Apskaičiuojame laisvųjų langelių (kintamųjų (1,2) ir (2,1)) įvertinimus:

• Parenkame didžiausią teigiamą įvertinimą. Šį įvertinimą atitinka


laisvasis langelis (2,1) ir sudarome ciklą langeliui (2,1) priskirę +:

(2,1)+  (2,3)-  (1,3)+  (1,1)- 36


Pavyzdys (8)
8. Randame skaičių:
𝑂 = min{𝑥𝑖𝑗} = min{250,50} = 50.

• Atliekame poslinkį t. y. prie langelių, pažymėtų „+“ pridedame 50, o iš


langelių, pažymėtų „–“ atimame 50. Tuo būdu gauname kitą pagerintą
planą.

37
Pavyzdys (9)
9. Surandame sekančius siuntimo punkto A ir paskirties punkto B
potencialus.

Kai u1 = 0, tai 𝑣2 = 14, 𝑣3 = 8, 𝑢2 = -1, 𝑣1 = 10

38
Pavyzdys (10)
10. Gautus potencialus surašome į naują lentelę.
• Apskaičiuojame laisvųjų langelių (kintamųjų (1,2) ir (3,1)) įvertinimus:

• Kadangi nėra teigiamų įvertinių, tai gautas planas yra optimalus.

39
Pavyzdys (11)
11. Apskaičiuojame:
𝐹 𝑥 = 10 × 200 + 8 × 400 + 9 × 50 + 13 × 450 = 11500

12. Optimalus pervežimo planas:

40
Transporto uždavinio pavyzdys
• Įmonė turi mineralinio vandens gręžinius Druskininkuose, Pasvalyje ir
Birštone. Per savaitę turimi pajėgumas leidžia išpilstyti vandens kraunamo
ant 140, 160 ir 60 padėklų atitinkamai. Vilniaus didmenininkas užsakė 150,
o Kauno – 130 padėklų per savaitę.
• Padėklo transportavimo kaštai (eurais) pateikti lentelėje.
• Reikia nustatyti, po kiek vandens padėklų reikia vežti iš kiekvienos jo
pilstymo vietos į Vilnių ir Kauną, kad suminiai transporto kaštai būtų
mažiausi, t. y. sudaryti optimalų transportavimo grafiką.
Vilnius Kaunas
Druskininkai 18 20
Pasvalys 16 22
Birštonas 10 8 41
Uždavinio sprendimas „MS Excel“

42
Apibendrinamieji klausimai?
• Kas yra optimizavimo uždavinys ir kas jį sudaro?
• Savais žodžiais pakomentuokite kuo skiriasi lokalus minimumas nuo
globalaus minimumo (arba maksimumo).
• Kas yra transporto uždavinys?
• Su kokia sąlyga transporto uždavinys turi optimalų planą?
• Kuo pasižymi nesubalansuotas transporto uždavinys?
• Kokius pradinio plano radimo metodus žinote?
• Mokėti išspręsti šiaurės vakarų kampo metodu elementarų pavyzdį.
• Mokėti išspręsti mažiausio elemento metodu elementarų pavyzdį.
• Mokėti išspręsti potencialų metodu elementarų pavyzdį.
43

You might also like