Lineaarprogrammeerimine
Lineaarprogrammeerimine (ka lineaarne planeerimine) on matemaatikas optimeerimise meetod, millega leitakse sihifunktsiooni muutujate väärtused, mille puhul funktsiooni väärtus on minimaalne või maksimaalne. Sealjuures võivad muutujatele kehtida võrratussüsteemina esitatavad kitsendused. Nii sihifunktsioon kui ka kitsenduste võrratused peavad olema lineaarsed.
Probleemi esitamine standardkujul
[muuda | muuda lähteteksti]Lineaarprogrammeerimisega lahendatavaid probleeme saab esitada standardkujul, mis koosneb kolmest osast:
- Sihifunktsioon, mida maksimeerida, nt
- Kitsendused muutujatele, esitatuna võrratussüsteemina, nt
- Muutujate mitte-negatiivsuse tingimus, nt
on sihifunktsiooni argumendid ehk muutujad, mille väärtusi otsitakse. , ja on väärtused, mis tulenevad probleemipüstitusest.
Sõltuvalt lahendamise meetodist võib olla otstarbekas kasutada teistsugust standardkuju. Näiteks simpleksmeetodi puhul tuleb kitsendused viia võrdusmärgiga kujule, nt
Näide
[muuda | muuda lähteteksti]Kondiitril on varutud 12 kg kohupiima ja 3 kg suhkrut, millest tuleb valmistada kg kooki ja kg torti nii, et saadav kasum oleks maksimaalne. Ülejäänud koostisaineid on piiramatus koguses.
- Üks kg kooki müüakse 11 € eest ja selle valmistamiseks kulub 500 g kohupiima ning 100 g suhkrut.
- Üks kg torti müüakse 16 € eest ja selle valmistamiseks kulub 400 g kohupiima ja 200 g suhkrut.
Antud ülesande saab esitada standardkujul:
Maksimeerida: | (müügist saadav kasum) | |
Sealjuures: | (kohupiim) | |
(suhkur) | ||
(negatiivset kogust ei saa valmistada). |
Teisendamine standardkujule
[muuda | muuda lähteteksti]- Minimeerimisprobleemi saab teisendada maksimeerimisprobleemiks, muutes sihifunktsiooni märki, nt
→
- -märgiga kitsenduse saab teisendada võrduseks, lisades mitte-negatiivse tundmatu muutuja, nt
→
Lisatud muutuja väljendab võrratuse vasaku poole ja selle suurima lubatud väärtuse vahet. See võib tähendada näiteks ressurssi, mida optimaalse lahenduse puhul ei kasutata.
Lahendamine
[muuda | muuda lähteteksti]Lineaarprogrammeerimise probleeme saab lahendada näiteks simpleksmeetodi või sisepunkti meetodi abil.