projektų ir operaci jų optimizavimas
DESCRIPTION
Projektų ir operaci jų optimizavimas. Optimizavimo metodai. Klasikinė optimizavimo teorija Optimizavimas be apribojimų Optimizavimas su apribojimais Matematinis programavimas Tiesinis programavimas Dinaminis programavimas ir kiti ... Evoliucinis programavimas Dirbtinis intelektas - PowerPoint PPT PresentationTRANSCRIPT
Projektų ir Projektų ir operacioperacijų jų optimizavimasoptimizavimas
Optimizavimo metodaiOptimizavimo metodai• Klasikinė optimizavimo teorija
– Optimizavimas be apribojimų– Optimizavimas su apribojimais
• Matematinis programavimas– Tiesinis programavimas– Dinaminis programavimas– ir kiti ...
• Evoliucinis programavimas– Dirbtinis intelektas– Neuroniniai tinklai– Genetiniai algoritmai
Apibrėžimai 1Apibrėžimai 1• Pagrindiniai aspektai:
– Sprendimo alternatyvos– Sprendimo apribojimai– Alternatyvų įvertinimo kriterijai
• Srityje yra susitarta, jog:– Sprendimo alternatyvos yra vadinamos sprendimo
kintamaisiais– Apribojimai yra vadinami rėžiais (constraints)– Kriterijus yra vadinamas tikslo funkcija
Apibrėžimai 2Apibrėžimai 2
• Sprendimo kintamieji aprašo optimizavimo objektą
• Rėžiai apriboja sprendimų erdvę kurioje mes galime pasirinkti sprendimo kintamųjų reikšmes
• Tikslo funkcija apibrėžia sąryšį tarp sprendimo kintamųjų ir objektyvaus pasirinkimo kriterijaus
• Optimizavimo metu siekiama maksimizuoti arba minimizuoti tikslo funkciją
Bendra optimizavimo problemaBendra optimizavimo problema
max (arba min) z = f(X)
(A,I)X b
Tikslo Tikslo funkcijafunkcija
Vertinimo kriterijusVertinimo kriterijus
Sprendimo kintamSprendimo kintamūjų ūjų matricamatricaKoeficientų matricaKoeficientų matrica
Konstantų vektoriusKonstantų vektoriusApribojimaiApribojimai
NeaprNeaprėžtas optimizavimas 1ėžtas optimizavimas 1
Tarkime: f(x) - optimizuojama funkcija x* - f(x) optimumas Tuomet f’(x*) = 0 Jei f’’(x*) > 0, turime minimumą Jei f’’(x*) < 0, turime maksimumą Jei f’’(x*) = 0, optimumo neturime, x* yra
funkcijos f(x) vingio taškas
NeaprNeaprėžtas optimizavimas 2ėžtas optimizavimas 2
Jei turime daugelio kintamųjų funkciją: x = [x1, x2, …, xn] Tuomet optimumas bus taške, kuriame
visos dalinės išvestinės yra lygios 0:
0)(,...,0)(,0)(
21
nxxf
xxf
xxf
Pavyzdys: metinių gyvavimo ciklo Pavyzdys: metinių gyvavimo ciklo kaštų optimizavimas 1kaštų optimizavimas 1
• ALCC = vidutiniai metiniai gyvavimo ciklo kaštai• P = investicijos• n = gyvavimo laikas (metais)• O = pastovios eksploatacijos išlaidos• M = eksploatacijos kaštų prieaugis
• Tikslas: rasti optimalų sistemos gyvavimo laiką, kad ALCC būtų minimalūs
Metinių gyvavimo ciklo kaštų Metinių gyvavimo ciklo kaštų optimizavimas 2optimizavimas 2
22*
2*
02
2)1(
2
MOPMALCC
MPn
MnP
dndALCC
MnOnPALCC
Metinių gyvavimo ciklo kaštų Metinių gyvavimo ciklo kaštų optimizavimas 3optimizavimas 3
00 11 22 33 44 55 66 77 88 99
5,0005,000
$20,000$20,000
15,00015,000
10,00010,000
Vidu
tinia
i kaš
tai
Vidu
tinia
i kaš
tai
Metai Metai
Vidutiniai bendri kaštaiVidutiniai bendri kaštai
Vidutiniai investicijų kaštaiVidutiniai investicijų kaštai
Vidutiniai eksploatacijos kaštaiVidutiniai eksploatacijos kaštai
Optimumo taškasOptimumo taškas
Gyvavimo ciklo kaštų optimizavimas Gyvavimo ciklo kaštų optimizavimas naudojant lentelinį metodą 1 naudojant lentelinį metodą 1
$5,800 5,772 5,762 5,765 5,785
$1,000 1,142 1,294 1,455 1,624
$4,800 4,630 4,468 4,310 4,161
$1,000 1,300 1,655 2,065 2,530
$12,000 9,000 6,000 3,000 0
12345
Metiniai gyvavimo
ciklo kaštai
Kasmetiniai sistemos aptarna-
vimo kaštai
Metiniai ekvivalentūs
sistemos kaštai
Sistemos eksploa-tacijos kaštai
Sutaupomi kaštai jei
atsisakome sistemos
Metai
• Taikoma netiesinių arba trūkių funkcijų optimizavimuiTaikoma netiesinių arba trūkių funkcijų optimizavimui
Gyvavimo ciklo kaštų optimizavimas Gyvavimo ciklo kaštų optimizavimas naudojant lentelinį metodą 2naudojant lentelinį metodą 2
11 22 33 44 55
$12,000$12,000
$15,000$15,000
$9,000$9,000
$1,000$1,000$1,300$1,300
$1,655$1,655
$6,000$6,000
$2,065$2,065
$3,000$3,000
$2,530$2,530
InvesticijaInvesticija
Eksploatacijos kaštaiEksploatacijos kaštai
Tiesinis programavimas (TP)Tiesinis programavimas (TP)
kai
kurP - tikslo funkcija,{xi, i=1,...,m} nepriklausomi kintamieji, cj - kintamųjų svoriai,bi - resursai,aij - resursų vartojimo greitis.
n
jjj xcP
1
max
n
jijij mibxa
1
,,1,
mjx j ,,1,0
TP sprendimo metodaiTP sprendimo metodai
• Grafinis metodas (tik 2 kintamųjų problemoms)• Lentelinis metodas• Simplekso metodas (plačiai naudojamas)• ir kiti ...
Pavyzdys: TP grafinis sprendimasPavyzdys: TP grafinis sprendimas
• Duota:Žaliavų naudojimas Produktui 1
Žaliavų naudojimas Produktui 2
Žaliavos 1 dienai
Žaliava M1 6 4 24
Žaliava M2 1 2 6
Pelnas vienetui $5 $4
• Tikslas: rasti pelningiausią produktų derinį
TP: Grafinis sprendimasTP: Grafinis sprendimas
• Sprendimo kintamieji: • x1 = Produkto 1 kiekis
• x2 = Produkto 2 kiekis• Tikslo funkcija maksimizuoja pelną:
Max z = 5x1 + 4x2
• Apribojimai: 6x1 + 4x2 < 24
1x1 + 2x2 < 6
x1, x2 > 0
Grafinė sprendimo interpretacijaGrafinė sprendimo interpretacija• Kiekvienas rėžis gali būti
atvaizduojamas tiese• Sprendimų erdvė yra
apribota daugiakampiu• Optimalus sprendimas
visada yra daugiakampio viršūnėje
-
xx11 = 3 = 3xx22 = 1.5 = 1.5z = 5(3) + 4(1.5) = $21z = 5(3) + 4(1.5) = $21
Simplekso metodasSimplekso metodas
• Pagrindinis metodas taikomas TP• Algebriškai aprašoma kaip ekstremumų paieška
n-matėje erdvėje• Iteracijų metu pereinama nuo vieno ekstremumo
iki kito pagal optimalumo sąlygas• Optimalus sprendimas identifikuojamas jei šalia
esantys ekstremumo taškai nepagerina sprendimo
TP taikymo aspektaiTP taikymo aspektai
• TP pranašumai– Lengva sudaryti– Platus taikymas– Efektyvūs algoritmai– Gerai suprantamas
• TP trūkumai– Netinka netiesinėms
problemoms– Ne dinaminis– Ne stochastinis– Nevisada pateikia
sveikaskaitinius sprendimus
Sveikaskaitinis programavimas (Integer Programming)
• Nuo tiesinio programavimo skiriasi tuo, jog visi sprendimo kintamieji gali įgyti tik sveikas reikšmes
• Netinka didelėms problemoms spręsti
Tikslo programavimasTikslo programavimas
• Naudojamas optimizuojant su daugeliu konfliktuojančių tikslo funkcijų
• Sprendžiant tikslo funkcijos yra suvedamos į vieną tikslo funkciją
• Gautas sprendimas yra vadinamas efektyviu sprendimu, bet ne optimaliu, nes jis gali būti neoptimalus kitų tikslo funkcijų atžvilgiu
Netiesinis programavimas (NP)Netiesinis programavimas (NP)
Šiuo atveju tikslo funkcija ir apribojimai yra apibrėžiami taip:
min F(X)kai
kur F yra netiesinė tikslo funkcija, hi ir gi yra apribojimai, o X=[xi,…,xn]T n-matis vektorius nusakantis nepriklausomus kintamuosius.
mixhi ,...,1,0)(
rixg i ,...,1,0)(
Dinaminis Programavimas (DP)Dinaminis Programavimas (DP)
• Apsprendžia optimalų sprendimą n-kintamųjų problemai ir išskaidyti ją į n stadijų, kurių kiekviena turi po 1 kintamąjį
• DP gali kartu spręsti deterministines ir stochastines problemas
• Skaičiavimai atliekami rekursyviai - optimalus sub-problemos sprendimas yra panaudojamas kaip įėjimas sekančiai problemai
• Didelėms problemoms spręsti netinka
Dinaminio programavimo modelis 1Dinaminio programavimo modelis 1
Tegul: N - veiklų skaičius xi - veiklai i reikalingų resursų skaičius
gi(xi) - pagamintos produkcijos kiekis Bendras pagamintos produkcijos kiekis: R (x1, x2,..., xN) = g1(x1) + g2(x2) +…+ gN(xN) Resursų kiekis yra ribotas: Q = x1 + x2 +…+ xN; xi >= 0 Tikslas - maksimizuoti R
Dinaminio programavimo modelis 2Dinaminio programavimo modelis 2
Tikslo funkcija: fN(Q) = max {R (x1,x2,..., xN) } xi
Kadangi resursai turi būti paskirstyti laike, tikslo funkciją galima užrašyti rekursyviai:
fN(Q) = max { gN(xN) + fN-1(Q-xN) } 0<=xN<=Q
kur: f1(Q) = g1(Q)
Dinaminio programavimo pavyzdys 1Dinaminio programavimo pavyzdys 1• Optimalaus maršruto parinkimas• Sprendimas suvedamas į atskirų optimalios
trajektorijos dalių analizę
1 3
2
7
6
5
9
810
4
1234
55
7766
33 44
7722
55
Dinaminio programavimo pavyzdys 2Dinaminio programavimo pavyzdys 2• Optimalaus maršruto parinkimas• Sprendimas suvedamas į atskirų optimalios
trajektorijos dalių analizę
1 3
2
7
6
5
9
810
4
234
55
33
22
55
Dinaminio programavimo pavyzdys 3Dinaminio programavimo pavyzdys 3• Optimalaus maršruto parinkimas• Sprendimas suvedamas į atskirų optimalios
trajektorijos dalių analizę
1 3
2
7
6
5
9
810
4
34
5522
Netiesinio programavimo Netiesinio programavimo naudojimo problemosnaudojimo problemos
• Jei sistema turi kartotinius optimumo taškus, tai naudojant gradientinės paieškos NP įmanoma gauti vietinį optimumą vietoj globalaus. Daugumai netiesinių sistemų NP sprendinys stipriai priklauso nuo pradinio taško.
• Kai kurioms sudėtingoms pramoninėms sistemoms sunku sukurti netiesinį matematinį modelį.
• Taikant NP praktikoje sunku apdoroti “kokybinę”, “netikslią” ir/arba “nepilna” informaciją ir žinias.
Kiti optimizavimo metodaiKiti optimizavimo metodai
• Genetiniai algoritmai• Evoliucinis programavimas• Neuroniniai tinklai• Modeliuojamas grūdinimas
(simulated annealing)
Ačiū už dėmesį !Ačiū už dėmesį !