You are on page 1of 37

Modeliavimas, optimizavimo

teorijos pagrindai
(3 paskaita)

doc. dr. Pavel Stefanovič


Modeliais grįstos SPS
• Modeliais grįstos SPS – tai tokios sistemos, kurios uždavinio
sprendimui naudoja tam tikrą matematinį modelį:
• Statistinį.
• Optimizavimo.
• Lošimų teorijos.
• Skaitinio modeliavimo.
• Modelis – tai bet koks realiosios tikrovės (tiriamojo objekto)
atvaizdas.
• Naudodami funkcijas, kintamuosius, lygtis, nelygybes bei kitus
matematinius simbolius užrašome uždavinio matematinį modelį.
• Matematinio modelio sudarymo procesą vadiname matematiniu
modeliavimu.
2
Modeliavimo etapai
Nagrinėjama aplinka ir identifikuojama probleminė situacija:
• Problemos klasifikavimas ir jos tipo nustatymas.
• Problemos dekomponavimas.
• Kintamųjų identifikavimas ir ryšių tarp kintamųjų nustatymas.
• Modelio sudarymas.
• Ribojimų (kraštinių sąlygų) nustatymas.
• Sprendimo metodo pasirinkimas.
• Sprendimas.
• Rezultatų analizė, modelio tikslinimas.
• Sprendimo priėmimas.

3
Modelių tipai (1)
• Statistiniai modeliai.
• Optimizavimo modeliai.
• Euristiniai modeliai.
• Aprašomieji modeliai (ne matematiniai).
• Paieškos modeliai (dirbtinis intelektas):
• Analitiniai.
• Lokalios paieškos.
• Euristiniai paieškos.
• Aklos paieškos.

4
Modelių tipai (2)

5
Optimizavimas
• Optimizavimas – paieška apibrėžtos aibės elemento, kuriam
tam tikro kriterijaus, vadinamo tikslo funkcija, reikšmė būtų
maksimali (kitais atvejais minimali).
• Matematikos šaka, nagrinėjanti tokių uždavinių sprendimą,
vadinama matematiniu programavimu. Pastarasis pavadinimas
kilęs iš to, kad šiais metodais buvo sudaromos ekonominės ir
kitokios programos (planai).
• Matematinio programavimo tipai:
• Tiesinis programavimas.
• Netiesinis programavimas.
• Dinaminis programavimas.

6
Uždavinių klasės (1)
• Paskirstymo uždaviniai. Juos sprendžiant, siekiama racionaliai
paskirstyti ribotus išteklius įvairiems darbams atlikti.
• Masinio aptarnavimo uždaviniai. Šiais uždaviniais modeliuojamos
situacijos, kuriose tam tikri nuolat atsirandantys darbai turi būti atliekami
keliais aptarnavimo kanalais. Sprendžiama kaip organizuoti aptarnavimą,
kad nuostoliai dėl eilių susidarymo ir kanalų prastovų būtų minimalūs.
• Pakeitimo ir remonto uždaviniai. Sprendžiant šiuos uždavinius
nustatomas optimalus įrengimų pakeitimo arba profilaktinių remontų laikas,
kad išlaidos remontams (pakeitimams) ir nuostoliai dėl avarinių prastovų
būtų minimalūs.
• Atsargų valdymo uždaviniai. Šiuose uždaviniuose nagrinėjamas
optimalios atsargų apimties nustatymas įvairiose ūkinės veiklos baruose.

7
Uždavinių klasės (2)
• Sutvarkymo ir tvarkaraščių teorijos uždaviniai. Šie uždaviniai
formuluojami ir sprendžiami, norint nustatyti optimalią tam tikrų darbų
atlikimo tvarką.
• Maršruto sudarymo ir tinklinio planavimo uždaviniai. Šie
uždaviniai sprendžiami, kai reikia susieti kelis punktus trumpiausia
arba pigiausia ryšių linija, nutiesti komunikacijas, suplanuoti
transporto srautus.
• Paieškos uždaviniai. Formuluojami ir sprendžiami, kai turint ribotus
laiko, darbo, įrengimų išteklius, reikia taip organizuoti paiešką, kad
tikimybė surasti ieškomą objektą būtų didžiausia.
• Konfliktinių situacijų uždaviniai. Sprendžiami, kai reikia priimti
sprendimą interesų nesutapimo sąlygomis
8
Matematinis programavimas (1)
• Dažnai optimizavimo uždaviniuose nagrinėjamoji aibė yra n-
matės Euklido erdvės poaibis. Tada galima kalbėti apie
vektoriaus su minimalia kriterijaus reikšme paieška.
• Optimizavimo uždaviny sudaro:
• Uždavinio kintamieji 𝑋 .

• Tikslo funkcija 𝑓 𝑥 , min 𝑓 𝑥 .


𝑋∈𝐴

• Aibė, kurioje patenkinamos uždavinyje apibrėžtos sąlygos, vadinama


leistina sritis:
𝐴 = 𝑋 ∈ 𝑅 𝑛 ∶ 𝑔1 𝑋 = 0, 𝑔2 𝑋 ≥ 0 9
Matematinis programavimas (2)
• Euklido erdvė – tai realiųjų skaičių vektorinė n-matė erdvė,
kurioje yra apibrėžta skaliarinė sandauga.
• Bet kokiam neneigiamam sveikam n egzistuoja n-matė
vektorinė erdvė 𝑅𝑛 , vadinama realiųjų koordinačių erdve 𝑅𝑛 .
• 𝑅𝑛 elementas gali būti užrašytas: 𝑥 = (𝑥1 , 𝑥2 , … , 𝑥𝑛 ).

10
Matematinis programavimas (3)
• Optimizavimo uždaviniuose ieškomi kintamieji apribojami būtent
tokiomis nelygybių sistemomis, kurių sprendinys (sankirta)
apibrėžia leistiną optimizacijos uždavinio kintamųjų sritį.
• Optimizacijos uždavinio sprendimas ir yra tokio kintamųjų
rinkinio iš leistinos srities suradimas, kuriam tikslo funkcija įgyja
ekstremalią (min arba max) reikšmę.
• Verslo srityje vykstantys procesai dažniausiai aprašomi
tiesinėmis tikslo ir apribojimų priklausomybėmis .
• Taigi bendru atveju galime suformuluoti tokį optimizavimo
matematinį uždavinį su n kintamųjų ir m apribojimų.
11
Pavyzdys 1
• Kokia turėtų būti stačiakampio gretasienio formos dėžė, kad
vienetiniam paviršiaus plotui jos tūris būtų maksimalus?
Kraštinės ilgiai 𝑥1 , 𝑥2 , 𝑥3 .

• Tikslo funkcija 𝑓 𝑋 = 𝑥1 𝑥2 𝑥3 .

• Leistina sritis:

𝐴 = 𝑋 ∈ 𝑅𝑛 ∶ 𝑥1 ≥ 0, 2𝑥1 𝑥2 + 2𝑥1 𝑥3 + 2𝑥3 𝑥2 = 1

12
Pavyzdys 2 (1)
• Įmonė gamina dviračius ir mopedus. Vadovas nori sudaryti
optimalų gamybos planą, kad būtų gautas didžiausias pelnas.
Vienas dviratis įmonei duoda 60 eurų pelno, mopedas – 220
eurų pelno. Įmonė turi šiuos resursus į kurių ribotumą reikia
atsižvelgti:

13
Pavyzdys 2 (2)
• Uždavinio matematinis modelis (kintamieji negali būti neigiami):

• Tikslo funkcija:
𝑚𝑎𝑥 𝑍 = 60𝑥1 + 220𝑥2
• Leistina sritis:

20𝑥1 + 25𝑥2 ≤ 800000;


0,5𝑥1 + 3𝑥2 ≤ 50000;
2𝑥1 + 2𝑥2 ≤ 80000;
1,8𝑥2 ≤ 30000;
0,2𝑥1 + 0,8𝑥2 ≤ 40000;
𝑥1 + 3𝑥2 ≤ 90000.

14
Uždavinių klasifikacija (1)
• Optimizavimo uždaviniai klasifikuojami priklausomai nuo tikslo
funkcijos ir leistinos srities savybių:
• Kai ieškomas objektas yra funkcija, turime optimizaciją funkcijų
erdvėse. Tokie uždaviniai nagrinėja funkcionalų ekstremumus ir
vadinami variacinio skaičiavimo uždaviniais.
• Kai ieškomas objektas yra parametrų vektorius, t. y. tikslo funkcija
yra apibrėžta n-matėje erdvėje, turime daugiamatės (kelių kintamųjų
funkcijos) optimizacijos uždavinį.
• Atskiras atvejis, kai ieškomas vienas parametras (t. y. n = 1), turime
vienmatį (vieno kintamojo funkcijos) optimizacijos uždavinį.

15
Uždavinių klasifikacija (2)
• Jei leistina sritis sutampa su tikslo funkcijos apibrėžimo sritimi,
turime optimizavimo uždavinį be apribojimų. Priešingu atveju –
uždavinį su apribojimais.
• Jei leistina sritis yra suskaičiuojama aibė (baigtinė arba
begalinė), tai uždavinys vadinamas diskretaus optimizavimo
(programavimo) uždaviniu.
• Jei kintamieji nėra diskretus (leistina sritis yra kontinuumo galios
aibė), tai bendru atveju toks optimizavimo uždavinys vadinamas
tiesiniu arba netiesiniu programavimu.
• Jei tikslo funkcija yra tiesinė, o leistina sritis nusakyta tiesinėmis
lygybėmis ir nelygybėmis, tai optimizavimo uždavinys vadinamas
tiesiniu programavimu.
16
Uždavinio sprendimo etapai
• Problemos formulavimas. Šiame etape būtina kuo smulkiau
išnagrinėti situaciją, nuspręsti į kokius dalinius uždavinius verta
padalinti visą sprendimą.
• Modelio sudarymas. Reikia apsispręsti dėl modelio tipo ir jo
nežinomųjų.
• Sprendimas. Šiame etape reikia išsiaiškinti sprendimo metodus,
juos pateikti aiškių algoritmų pavidalu. Šiame etape turi būti surinkti
visi reikalingi duomenys.
• Modelio tyrimas. Šiame etape tiriama, ar modelis pakankamai gerai
atvaizduoja modeliuojamą situaciją. Patikrinamas jo jautrumas.
• Įdiegimo etapas. Pagrįstos ir detaliai išnagrinėtos rekomendacijos
apsvarstomos ir pradedamos įgyvendinti.

17
Sprendimo metodai
• Tiesinio programavimo uždavinių sprendimo metodai:
• Geometrinė interpretacija. Sudaromas leistinų vektorių aibės
daugiakampis, tuomet gradiento vektoriaus bei lygio tiesės pagalba
randama daugiakampio viršūnė, tenkinanti sprendinio sąlygas.
• Simplekso metodas. Simplekso metodo esmė – tam tikra tvarka
peržiūrėti leistinos srities viršūnes, kol nebus rastas ekstremumo
taškas.
• Elipsoidų metodas. Šio algoritmo metu generuojama elipsoidų seka,
kurių tūris eksponentiškai mažėja kiekvieno žingsnio metu.
• Vidinio taško metodai. Algoritmas sukuria taškų seką, su mažėjančios
tikslo funkcijos reikšmėmis. Paskutiniame žingsnyje reikia nustatyti
funkcijos reikšmę lygią nuliui arba nustatyti, kad taškas neegzistuoja.
18
Gamybos planavimo uždavinys (1)
• Nagrinėkime įmonę, kuri gali gaminti n skirtingų produktų tipų,
naudodama m išteklių rūšių.

• Laikysime, kad yra žinoma:


• 𝑏1 , 𝑏2 , … , 𝑏3 – visų išteklių apimtys;
• 𝑎𝑖𝑗 – kiek i-tojo ištekliaus vienetų reikia j-tojo produkto vienetui pagaminti, kur
𝑖 = 1, … , 𝑚 ir j = 1, … , 𝑛;
• 𝑐𝑗 – kiek pelno duoda j-tojo produkto 1 vnt. gamyba.

• Reikia surasti leistiną gamybos planą, duodantį maksimalų pelną


nurodytomis sąlygomis. Ieškomas gamybos planas yra vektorius
𝑥1 , 𝑥2 , … , 𝑥𝑛 .

19
Gamybos planavimo uždavinys (2)
• Gamybos planavimo uždavinio matematinis modelis (kintamieji
teigiami):

• Tikslo funkcija:
𝑐1 𝑥1 + 𝑐2 𝑥2 + ⋯ + 𝑐𝑛 𝑥𝑛 → 𝑚𝑎𝑥(𝑚𝑖𝑛)

• Leistina sritis:
𝑎11 𝑥1 + 𝑎12 𝑥2 + ⋯ + 𝑎1𝑛 𝑥𝑛 ≤ 𝑏1
𝑎21 𝑥1 + 𝑎22 𝑥2 + ⋯ + 𝑎2𝑛 𝑥𝑛 ≤ 𝑏2

𝑎𝑚1 𝑥1 + 𝑎𝑚2 𝑥2 + ⋯ + 𝑎𝑚𝑛 𝑥𝑛 ≤ 𝑏𝑚

20
Gamybos planavimo uždavinys (3)
• Geometriškai interpretuosime tiesinio programavimo uždavinį su
dviem nežinomaisiais, nes tik tokį uždavinį galima atvaizduoti
plokščiame dvimačiame brėžinyje.

• Sakykime turime gamybos planavimo uždavinį:


𝑓 𝑥1 , 𝑥2 = 2𝑥1 + 3𝑥2 → min(𝑚𝑎𝑥)

2𝑥1 + 𝑥2 ≤ 10
−2𝑥1 + 3𝑥2 ≤ 6
𝑥1 + 2𝑥2 ≥ 4
𝑥1 , 𝑥2 ≥ 0

21
Sprendimas (1)
• Nubraižome ribines apribojimų linijas ir gauname uždarą leistinų
x ir y reikšmių sritį, t. y. sudarome leistinų vektorių aibės
daugiakampį. Tikslo funkcijos minimumas (maksimumas)
pasiekiamas kažkurioje leistinos srities viršūnėje.

22
Sprendimas (2)
• Randame gradiento vektorių (šio vektoriaus koordinatės yra tikslo
funkcijos koeficientai). Gradientas nurodo tikslo funkcijos didėjimo kryptį.
𝜕𝑓 𝜕𝑓
, = (2, 3)
𝜕𝑥1 𝜕𝑥2
• Nubrėžiame tikslo funkcijos lygio linija 𝑓 𝑥1 , 𝑥2 = 0 (eina per koordinačių
pradžią).
• Nubrėžiame tikslo funkcijos lygio linijas (t. y. tieses lygiagrečias 𝑓 𝑥1 , 𝑥2 =
0), einančias per lestinos srities viršūnes. Minimumo (maksimumo) taškai
yra viršūnės, kuriuose visa leistina sritis yra vienoje pusėje atitinkamos
lygio linijos (taškai A ir B grafike).
• Minimumo taškas – kuriame tikslo funkcijos gradiento vektorius
nukreiptas į leistinos srities vidų.
• Maksimumo taške gradientas nukreiptas nuo leistinos srities.

23
Sprendimas (3)
• Minimumo (maksimumo) taško koordinates randame išsprendę
lygčių sistemą, sudarytą iš susikertančių tame taške apribojimų
tiesių.

−2𝑥1 + 3𝑥2 = 6
Minimumas: ቊ , 𝑥1 , 𝑥2 = 0, 2 , 𝑓𝑚𝑖𝑛 = 6.
𝑥1 + 2𝑥2 = 4

−2𝑥1 + 3𝑥2 = 6
Maksimumas: ቊ , 𝑥1 , 𝑥2 = 3, 4 , 𝑓𝑚𝑖𝑛 = 18.
2𝑥1 + 𝑥2 = 10
24
Sprendimas (4)

https://www.desmos.com/calculator

25
Tiesinio programavimo uždavinys

26
Simplekso metodas
Simplekso metodas sprendžia kanoninį tiesinio programvimo
uždavinį su m apribojimų (sąlygų) ir n nežinomųjų.
1.Pradedam nuo kokio nors atraminio plano ir peržiūrim visus
„kaimyninius” atraminius planus.
2. Jei tarp jų nėra geresnio (su didesne tikslo funkcijos reikšme) turimas
atraminis planas optimalus.
3. Jei geresnis planas atsiranda, pereiname prie jo ir visą procesą
kartojame iš naujo.
4. Taip per baigtinį žingsnių skaičių pasiekiamas optimalus planas (arba
įrodoma, kad jo nėra).
5. Šis optimalus atraminio plano paieškos procesas vadinamas
simpleksiniu metodu.

27
Simplekso metodo pavyzdys (1)
• Išspręsti standartinį uždavinį, kai duota:
• Tikslo funkcija: max −2𝑥1 − 𝑥2 + 2𝑥3 + 𝑥4 .
• Apribojimai:

• Pasinaudoję papildomais kintamaisiais 𝑥5 , 𝑥6 , standartinį


uždavinį keičiame į kanonį.

28
Simplekso metodo pavyzdys (2)

29
Simplekso metodo pavyzdys (3)

30
Simplekso metodo pavyzdys (4)

31
Simplekso metodo pavyzdys (5)

32
Simplekso metodo pavyzdys (6)

33
Gamybos uždavinys (1)
• Įmonė gamina 2 tipų kėdes „Kapitonas“ ir „Partneris“. „Kapitoną“
parduoda už 50 €, „Partnerį“ už 90 €. Jų gamybai naudojame
metalinius ir plastikinius profilius, „Kapitonui“ reikia 2 metalinių ir
3 plastikinių profilių, o „Partneriui“ atitinkamai 4 ir 1. Jų tiekimas
yra ribotas ir sudaro 70 ir 62 vnt. pamainai. Rinkos tyrimai rodo,
kad neapsimoka gaminti daugiau nei 10 „Partnerio“ tipo kėdžių
per pamainą.
• Sudaryti optimalų gamybos planą, kad gautas pelnas būtų
didžiausias.

34
Gamybos uždavinys (2)
• Užrašykime tikslą ir visus apribojimus matematiškai:

𝑃 𝑥, 𝑦 = 50𝑥 + 90𝑦 → 𝑚𝑎𝑥

2𝑥 + 4𝑦 ≤ 70
3𝑥 + 𝑦 ≤ 62
𝑦 ≤ 10
𝑥, 𝑦 ≥ 0

35
Uždavinio sprendimas „MS Excel“

36
Apibendrinamieji klausimai?
• Kas yra modelis? Matematinis modeliavimas?
• Kokie yra modeliavimo etapai?
• Įvardinkite bent kelis modelių tipus ir jų tikslą.
• Kas yra optimizavimas?
• Kokie yra matematinio programavimo tipai?
• Įvardinkite bent kelias optimizavimo uždavinių klases ir ką jie sprendžia?
• Kokie esminiai komponentai apibrėžia optimizavimo uždavinį?
• Nuo ko priklauso optimizavimo uždavinių klasifikavimas? Įvardinkite bent kelis variantus.
• Kokie galimi tiesinio programavimo uždavinių sprendimo metodai ir kuo jie pasižymi?
• Savais žodžiais apibrėžkite kas yra gamybos uždavinys ir ką jis sprendžia?
• Mokėti apibrėžti gamybos uždavinį matematiškai paprastam pavyzdžiui.

37

You might also like