Professional Documents
Culture Documents
optimointiteht
avien luokittelu
Merkint
oj
a
:=
s.e.
@
AT
Optimointimallin muodostaminen
Esimerkki. Paatoksenteko-ongelma. Sinulla on viiden viikon tyosopimus Jyvaskylassa ja asut Helsingissa. Lennat Jyvaskylaan maanantaina ja palaat
Helsinkiin keskiviikkona. Lentolippuvaihtoehtoja: meno-paluu lippu 100 e;
jos meno- ja paluupaivan valiin jaa viikonloppu 20 %:n alennus; pelkka
menolippu (paluulippu) 70 e. Kuinka ostaa liput?
Optimointimallissa maaritellaan tehtavan
(1) p
aatosvaihtoehdot eli optimointimuuttujat
(2) rajoitusehdot
(3) kohdefunktio vaihtoehtojen arvioimiseksi
Paatosvaihtoehdot ovat tassa erilaisia lippuvaihtoehtoja:
A: 5 meno-paluu lippua Helsinki-Jyvaskyla-Helsinki
B: 1 Helsinki-Jyvaskyla; 4 Jyvaskyla-Helsinki-Jyvaskyla yli viikonlopun;
1 Jyvaskyla-Helsinki
C: 1 Helsinki-Jyvaskyla-Helsinki (1. maanantai, 5. keskiviikko); 4 JyvaskylaHelsinki-Jyvaskyla yli viikonlopun
Rajoitusehdot: yllaolevissa lippuvaihtoehdoissa on jo huomioitu rajoitus, jonka mukaan kunakin viikkona lahdetaan Helsingista maanantaina ja palataan
keskiviikkona.
Kohdefunktio: vaihtoehdon kustannus.
Paras vaihtoehto pienin kustannus
vaihtoehto A: kustannus = 5 100 e = 500 e
vaihtoehto B: kustannus = 70 e + 4 0,8 100 e + 70 e = 460 e
vaihtoehto C: kustannus = 5 (0,8 100 e) = 400 e
Vaihtoehto C on siis optimaalinen vaihtoehto ja 400 e on tata vastaava optimikustannus.
Optimointimalli muodostuu paatosvaihtoehtojen eli optimointimuuttujien joukosta, naita koskevista rajoituksista ja kohdefunktiosta. Mallin ratkaisu antaa sen paatosmuuttujan arvon, joka optimoi (maksimoi tai minimoi) kohdefunktion arvon ja toteuttaa rajoitukset. Sanomme, etta optimointimuuttuja
on k
aypa, kun se toteuttaa rajoitusehdot.
Esimerkki. Optimaalinen suunnittelu (optimal design): L pituisesta rautalangasta on vaannettava suorakaide, jonka pinta-ala on suurin mahdollinen.
(1) optimointimuuttujat (paatosvaihtoehdot):
x := leveys
y := korkeus
(2) rajoitukset:
2(x + y) = L
x, y 0
(3) kohdefunktio:
f (x, y) := xy
Optimointimalli:
maksimoi
xy
ehdolla 2(x + y) = L
x, y 0
(yhtalorajoitus)
(epayhtalorajoitus)
Kirjoitetaan muotoon:
max
f (x, y)
x,y
s.e.
:= xy
2(x + y) =
x, y
L
0
Optimointiteht
avien luokittelu
Lineaarinen teht
av
a (ks. MS-E2140 Linear Programming)
Kohdefunktio ja rajoitukset lineaarisia
P
min cT x = ni=1 ci xi
s.e. Ax = b
x 0
x1
missa xi :t ovat optimointimuuttujia, x := ... , ja x 0 (merkinta tarkoittaa, etta
xn
c1
b1
..
..
xi 0 i); c := . , b := . ja mn matriisi A ovat vakioita.
cn
bm
Ep
alineaarinen teht
av
a (ks. MS-E2139 Nonlinear Programming)
Kohdefunktio ja rajoitukset epalineaarisia
min
st.
f (x)
gi (x) 0, i = 1,...,m
hi (x) = 0, i = 1,...,l
x X
Monitavoiteteht
av
a (ks. MS-E2153 Multiple Criteria Optimization)
Optimoitavana on samanaikaisesti monta kohdefunktiota.
Esimerkki: Portfolion eli arvopaperien i = 1, . . . , n optimointi. Olkoon ci satunnaismuuttuja, joka kuvaa arvopaperin i tuottoa per sijoitettu rahayksikko
ko. aikavalilla. Olkoon E(ci ) sen odotusarvo, ja E(c)T := [E(c1 ), . . . , E(cn )].
Olkoon V satunnaisvektori c:n kovarianssimatriisi.
Nyt voidaan maksimoida hyodyn odotusarvoa f1 (x) := E(c)T x, missa xi on
kohteeseen i sijoitettu rahamaara, i = 1, . . . , n; tai minimoida pelkastaan
ci :den varianssista aiheutuvaa riskia f2 (x) := xT Vx; tai voidaan samanaikaisesti yrittaa seka maksimoida hyotya, etta minimoida riskia, jolloin saadaan
monitavoitetehtava. Monitavoiteoptimointia kasitellaan luennossa 6, ja portfolion optimointia laskuharjoituksessa 12.
Kokonaislukuteht
av
a (ks. MS-E2146 Integer Programming)
Talloin osa optimointimuuttujista vai saada vain kokonaislukuarvoja, esim.
xi on on-off muuttuja xi {0, 1}. Kokonaislukutehtavia kasitellaan luennossa
7.
Verkkoteht
av
a (ks. MS-E2143 Network Optimization)
Tyypillisesti tehtava on samaa muotoa kuin lineaarinen tehtava. Lisaksi on
mukana yleensa kokonaislukumuuttujia. Perinteisia verkkotehtavia syntyy,
kun tiettyja paikkoja linkitetaan optimaalisesti joihinkin toisiin paikkoihin;
maarataan kahden kaupungin valinen lyhin reitti tieverkostossa; tai maksimivirtaus putkiverkostossa; tai tuotteiden minimikustannuskuljetukset tehtaista kauppoihin. Verkkotehtavia ratkaistaan eri tehtavatyyppeihin kehitetyilla
verkkoalgoritmeilla.
Dynaaminen teht
av
a (ks. MS-E2148 Dynamic Optimization)
Esimerkki: Maaraa L pituisen koyden x(s) rajoittama maksimipinta-ala s.e.
koyden paat ovat pisteissa a ja b, x(a) = x(b) = 0.
Tama on Tyyrian prinsessa Didon ongelma. Kerrotaan, etta prinsessa ratkaisi
ongelman ja sai eraalta heimopaallikolta Pohjois-Afrikan rannikolta maapalstan, jolla oli ko. maksimipinta-alaominaisuus. Nain syntyi muinainen Karthago eli nykyinen Tunisia.
Vaiheet (1), (2) ja (5) muodostavat mallinrakennuksen ns. art -osan. Tallainen osaaminen tulee yleensa vain kokemuksen myota. Vaiheet (3) ja (4) vaativat melko suoraviivaista science osaamista, jota opitaan mm. talla kurssilla.
Luento 2: Optimointiteht
av
an graafinen
ratkaiseminen. LP-malli.
LP-malli
Esimerkki. Maalitehdas valmistaa ulko- ja sisamaalia raaka-aineista M1 ja
M2. Sisamaalin maksimikysynta on 2 tonnia/paiva. Sisamaalin kysynta on
lisaksi korkeintaan 1 tonni/paiva suurempi kuin ulkomaalin kysynta. Maalitehdas maksimoi kokonaistuottoaan.
raaka-aine (tonni)/maali (tonni)
ulkomaali
sisamaali
paivittainen saatavuus
raaka-aine M1
raaka-aine M2
6
1
4
2
24
6
Muuttujat:
x1 = valmistettu ulkomaali tonnia/paiva
x2 = valmistettu sisamaali tonnia/paiva
Kohdefunktio: maksimoi paivittainen kokonaistuotto maksimoidaan funktiota
z = 5x1 + 4x2
Rajoitukset. Ensin raaka-ainerajoitukset:
M1: 6x1 + 4x2
M2: x1 + 2x2
Kysyntarajoitukset:
(
x2 x1 + 1
x2 2
24
6
24
6
1
2
0
(1)
(2)
(3)
(4)
Kyseessa on lineaarinen optimointitehtava, eli lineaarisen ohjelmoinnin tehtava, eli LP-tehtava (LP = Linear Programming).
Graafinen ratkaisu
Kohdefunktion z gradientti z := [z/x1 , z/x2 ]T = [5, 4]T on kohtisuorassa suoraa z = 5x1 +4x2 = vakio vastaan ja ilmaisee funktion z noususuunnan. Katso kuva 2.
z = 21000 e
x1 + 2x2 = 6
(2)
x2 = 1.5 tn
Kun kohdefunktiota maksimoidaan haetaan vakiokayralle z = vakio maksimiarvo kayvalla alueella kulkemalla gradientin suuntaan. Kuvassa 3 kohdefunktiota z = x1 + 4x2 minimoidaan, jolloin z:aa pienennetaan z:n
suuntaan. Muista myos, etta
min z
max -z
:=
x1 + 4x2
:= x1 4x2
3
Slack-, ylij
a
am
a- ja rajoittamattomat muuttujat
Slack-muuttuja, tai alij
a
am
amuuttuja (slack-variable)
Lisataan tyyppia () olevaan rajoitukseen.
Ajatellaan, etta tuotantoyksikko (activity) 1 tuottaa ulkomaalia maaran x1
ja tuotantoyksikko 2 sisamaalia maaran x2 , ja
6x1 + 4x2 24.
Talloin resurssia jaa kayttamatta slack-muuttujan s1 verran:
6x1 + 4x2 + s1 = 24, s1 0.
Ylij
a
am
amuuttuja (surplus-variable)
Lisataan tyyppia () olevaan rajoitukseen.
Tehtavassa voisi lisaksi esiintya paivittainen minimituotantorajoitus
x1 + x2 2.
4
Graafinen herkkyysanalyysi
Esimerkki. Kuinka paljon kohdefunktion z kertoimet voivat muuttua ilman,
etta ratkaisu muuttuu?
z = c1 x 1 + c2 x 2
c2 /c1 on gradientin kulmakerroin, ja c1 /c2 on suoran z = vakio kulmakerroin.
Kuvan 4 mukaan ratkaisu ei muutu, jos suoran z = vakio kulmakerroin pysyy
rajoitussuorien (1) ja (2) kulmakertoimien valissa, eli jos
tai
4
c2
2
,
6
c1
1
c1 6= 0
1
c1
6
,
2
c2
4
c2 6= 0
Esimerkki. Mika on resurssiyksikon arvo optimiratkaisussa? Eli, kuinka paljon esimerkiksi 1 tonnin muutos resurssin paivittaisessa saatavuudessa muuttaa optimiarvoa? Merkitaan M 1 = 6x1 + 4x2 . Katso kuva 5.
5
y1 =
z : n muutos D G
z
=
M 1
M1:n muutos D G
=
=
=
M 1 =
=
=
y1 =
z(D) z(G)
5 2 + 4 2 (5 6 + 4 0)
12000 e
M 1(D) M 1(G)
20 36
16 tn
12000 e
3000 e
e
=
= 750
16 tn
4 tn
tn
Kuva 4: Ekstreemipiste C sailyy optimina, kun z:n kulmakerroin pysyy pisteessa C leikkaavien rajoitussuorien kulmakertoimien valissa
z(H) z(B)
e
z
=
= 500
M 2
M 2(H) M 2(B)
tn
Luento 3: Simplex-menetelm
a
Kuten graafinen tarkastelu osoittaa, LP-tehtavan ratkaisu on aina kulmapisteessa, eli ekstreemipisteessa (extreme point). Simplex-menetelmassa ekstreemipisteita, ja tehtavan ratkaisua, etsitaan algebrallisesti Gaussin eliminointia kayttaen. Lahtokohtana on LP-tehtava standardimuodossa (standard LP
form), joka saadaan seuraavasti:
(1) Kaikki muuttujat muutetaan positiivisiksi: Jos xi :ta ei ole tehtavassa
Kantaratkaisujen laskeminen
Simplex-taulukossa on m lineaarista yhtaloa ja n tuntematonta, m < n. Valitaan (n-m):n muuttujan arvoksi nolla, ns. nollamuuttujat ja ratkaistaan
yhtaloryhma m:n muuttujan suhteen, ns. kantamuuttujat. Jos ratkaisu on
yksikasitteinen, ko. ratkaisua kutsutaan kantaratkaisuksi.
Jos kantaratkaisun jokainen komponentti 0, sanomme etta ratkaisu on
kayp
a (vastaa geometrista ekstreemipistetta); muuten sanomme etta ratkaisu
ei ole kaypa, tai on ei-kaypa.
Kantaratkaisujen maksimilukumaara on
n
n!
=
m!(n m)!
m
Esimerkki.
m = 2, n = 5 korkeintaan
5!
3!2!
= 10 kantaratkaisua.
Gaussin eliminointi
1 x + a1 by = a1 e
Y 1 : ax + by = e | a1
Y 2 : cx + dy = f
cx +
dy = f
| +(c) Y 1
1x +
a1 by = a1 e
1 1
1
0 x + 1 y = (d ca b) (f ca e)
1 x + 0 y = a1 e a1 b(d ca1 b)1 (f ca1 e)
Gaussin eliminointi: Ax = b I x = A1 b
Optimointiteht
av
an ratkaiseminen Simplex-menetelm
all
a
Maalifirman optimointimallin standardimuoto:
max z = 5x1
s.e.
6x1
x1
x1
+ 4x2
+ 4x2 + s1
+ 2x2
+ x2
x2
s2
+
s3
+ s4
x1 , x 2 , s 1 , s 2 , s 3 , s 4
= 24
= 6
= 1
= 2
0
Aloitus simplex-taulukko:
kanta
x1
x2
s1
s2
s3
s4
ratkaisu
-5
-4
z-rivi
s1
s2
s3
s4
0
0
0
0
6
1
-1
0
4
2
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
24
6
1
2
s1 -rivi
s2 -rivi
s3 -rivi
s4 -rivi
kanta x1
s1
s2
s3
s4
6
1
-1
0
ratkaisu
24
6
1
2
suhde
24/6 = 4 (minimi)
6/1 = 6
1/(-1) = -1 (ei-kaypa)
2/0 = (ei-kaypa)
x1
x2
s1
s2
s3
s4
ratkaisu
-5
-4
s1
s2
s3
s4
0
0
0
0
6
1
-1
0
4
2
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
24
6
1
2
pivot-rivi
pivotsarake
Pivot-sarake on tulevaa muuttujaa vastaava sarake ja pivot-rivi lahtevaa
muuttujaa vastaava rivi. Pivot-alkio on alkio jossa pivot-sarake ja pivot-rivi
leikkaavat, eli tassa tapauksessa 6.
Uusi kantaratkaisu saadaan soveltamalla Gaussin eliminointia tekemalla seuraavat laskut
1. Pivot-rivi:
uusi pivot-rivi = (nykyinen pivot-rivi) / (pivot-alkio)
2. Muut rivit:
uusi rivi = (nykyinen rivi) - (rivin pivot-sarakkeen alkio) (uusi pivotrivi)
Kun laskut suoritetaan ensimmaisen kerran, paadytaan taulukkoon, jossa
tuleva muuttuja x1 korvaa lahtevan muuttujan s1 . Seuraava taulukko vastaa
siis kantaratkaisua (x1 , s2 , s3 , s4 ):
kanta z x1
x2
s1
5/6
2/3
x1
s2
s3
s4
0
0
0
0
1
0
0
0
2/3
4/3
5/3
1
s2 s3 s4 ratkaisu
0
20
1/6 0
1/6 1
1/6 0
0
0
0
0
1
0
0
0
0
1
4
2
5
2
Samoin kuin aloituskantaratkaisu luettiin aloitustaulukosta, voidaan uusi kantaratkaisu nyt lukea uudesta taulukosta, kun nollamuuttujat saavat arvon 0,
x2 = s1 = 0. Uusi kantaratkaisu on x1 = 4, s2 = 2, s3 = 5, s4 = 2, ja uusi z:n
arvo on 20.
Uusi taulukko ei viela anna optimiratkaisua, koska nollamuuttujan x2 kerroin z-rivilla on negatiivinen. Kirjoitetaan z-rivi muotoon z = 23 x2 65 s1 + 20,
jolloin nahdaan etta lisaamalla x2 :n arvoa sen nykyisesta arvosta nolla, voidaan z:n arvoa kasvattaa. x2 on siis uusi tuleva muuttuja. Lasketaan seuraava
simplex-taulukko samaan tapaan kuin edellinen taulukko laskettiin aloitustaulukosta. s2 on uusi lahteva muuttuja, silla sita vastaa pienin positiivinen
suhde ( 23 ) ao. taulukossa. Kohdefunktion z arvo kasvaa maaralla 32 32 = 1,
jolloin uusi z:n arvo on z = 20 + 1 = 21.
kanta
x2
ratkaisu suhde
x1
s2
s3
s4
2/3
4/3
5/3
1
4
2
5
2
6
3/2
3
2
(minimi)
x1
x2
s3
s4
0
0
0
0
1
0
0
0
0
1
0
0
s1
s2
3/4
1/2
1/4 1/2
1/8 3/4
3/8 5/4
1/8 3/4
s3 s4 ratkaisu
0
21
0
0
1
0
0
0
0
1
3
3/2
5/2
1/2
Uusi simplex-taulukko muodostetaan kayttaen aina samoja laskuja ja saantoja. Simplex-menetelma on siis iteratiivinen menetelma ja perakkaisia taulukoita kutsutaan Simplex-iteraatioiksi.
Kuvasta 1 nahdaan, etta iteraatiot alkavat ekstreemipisteesta A ja jatkuvat
ekstreemipisteen B kautta ekstreemipisteeseen C. Simplex-iteraatiot kulkevat aina kayvan alueen ekstreemipisteiden kautta. Simplex-menetelma ei siis
tuota iteraation aikana kayvan alueen sisapisteita, kuten ns. sisapistemenetelm
a, josta puhutaan luennolla 11.
M-menetelm
a
Kun LP-tehtavan kaikki rajoitukset ovat muotoa () ja rajoitusehtojen oikeat puolet ovat ei-negatiivisia, loytyy kaypa aloituskantaratkaisu helposti
slack-muuttujien kannasta (xi = 0, si 0). Kun alkuperainen tehtava sisaltaa myos (=) ja/tai () rajoituksia, standardimuodossa ei ole kayvan aloituskantaratkaisun maarittamiseen tarvittavia slack-muuttujia. Nain ollen tehtavaan lisataan keinotekoisia muuttujia ajamaan tarvittavien slack-muuttujien
asiaa ensimmaisissa iteraatiossa. Tata samaa periaatetta hyodyntavat hiukan
eri tavoin M-menetelma ja kaksivaihemenetelma.
M-menetelman toiminta on esitetty seuraavan esimerkin avulla:
Olkoon LP-tehtava muotoa:
min z = 4x1
s.e.
3x1
4x1
x1
+ x2
+ x2
+ 3x2
+ 2x2
x1 , x 2
3
6
4
0
+ x2
+ x2
+ 3x2
+ 2x2
s1
+ s2
x2 , x 1 , s 2 , s 1
=
=
=
3
6
4
0
+ x2
+ x2
+ 3x2 s1
+ 2x2
+
+
+ s2
x1 , x 2 , s 1 ,
M R1
R1
s2 ,
M R2
R2
R1 ,
R2
=
=
=
3
6
4
0
x2
s1
4 1
3
4
1
1
3
2
0
1
0
R1
R2
M M
1
0
0
0
1
0
s2 ratkaisu
0
0
0
1
3
6
4
x1
x2
s1
R1 R2 s2 ratkaisu
4 + 7M 1 + 4M M
z
R1
R2
s2
3
4
1
1
3
2
0
1
0
9M
1
0
0
0
1
0
0
0
1
3
6
4
x1
R2
s2
1
0
0
x2
s1
R1
(1 + 5M)/3 M (4 7M )/3
1/3
5/3
3/5
0
1
0
1/3
4/3
1/3
R2 s2 ratkaisu
0
4 + 2M
0
1
0
0
0
1
1
2
3
Kaksivaihemenetelm
a
M-menetelman numeerinen ratkaisu saattaa karsia pyoristysvirheista, jotka
aiheutuvat suurten ja pienten kertoimien yhtaaikaisesta kasittelysta. Tata ongelmaa ei ole kaytettaessa kaksivaihemenetelmaa, jonka ensimmaisessa vaiheessa etsitaan kaypa aloituskantaratkaisu ja toisessa vaiheessa sovelletaan
normaalia simplex-menetelmaa lahtien ensimmaisessa vaiheessa loydetysta
pisteesta.
Ratkaistaan nyt edellisen kohdan ongelma kaksivaihemenetelmalla.
11
R1
R1
R2
+ R2
+ s2
x1 , x 2 , s 1 , s 2 , R 1 , R 2
=
=
=
3
6
4
0
s1
R1
1 1
R1
R2
s2
3
4
1
1
3
2
0
1
0
1
0
0
R2 s2 ratkaisu
0
1
0
0
0
1
3
6
4
Samoin kuin M-menetelman tapauksessa, tassa taulukossa osalla kantamuuttujista on nollasta poikkeava kerroin r-rivilla. Ongelma poistuu seuraavalla
laskutoimituksella.
Uusi r-rivi = vanha r-rivi + (1 R1 -rivi + 1 R2 -rivi)
Nyt saadaan seuraava taulukko.
kanta x1 x2
s1
R1 R2 s2 ratkaisu
R1
R2
s2
3
4
1
1
3
2
0
1
0
1
0
0
0
1
0
0
0
1
3
6
4
x1
x2
s2
1
0
0
0
1
0
s1
R1
R2
s2 ratkaisu
0
0
1
3/5
6/5
1
1/5
3/5 1/5
3/5 4/5 3/5
1
1
1
12
x2
s1
s2 ratkaisu
4 1
1/5
3/5
1
0
0
1
3/5
6/5
1
1
0
0
0
1
0
Jalleen kantamuuttujien arvot z-rivilla poikkeavat nollasta, joten taytyy tehda seuraava laskutoimitus.
Uusi z-rivi = vanha z-rivi + (4 x1 -rivi + 1 x2 -rivi)
Nain saamme muodostettua seuraavan taulukon, josta loydamme alkuperaisen tehtavan optimin yhdella simplex-iteraatiolla.
kanta x1 x2
z
x1
x2
s2
1
0
0
0
1
0
s1
1/5
s2 ratkaisu
0
18/5
1/5 0
3/5 0
1
1
3/5
6/5
1
13
Kanooninen primaali-duaalipari
Primaali-LP
max z = c1 x1 +
s.e.
a11 x1 +
..
.
am1 x1 +
x1 ,
eli
+ cn x n
+ a1n xn
b1
+ amn xn bm
, xn
0
max z = cT x
s.e.
Ax b
x 0
eli
min w = b1 y1 +
s.e.
a11 y1 +
..
.
+ bm y m
+ am1 ym c1
a1n y1 +
y1 ,
+ amn ym cn
, ym
0
min w = bT y
s.e.
AT y c
y 0
1
Standardimuotoinen primaali-duaalipari
Primaali-LP
max(min) z = cT x
s.e.
Ax = b
x 0
Ylla epayhtalorajoitukset on muutettu yhtalorajoituksiksi lisaamalla tarvittavat slack- ja ylijaamamuuttujat. Lisaksi muuttujat xj on tarvittaessa kor
vattu positiivisilla muuttujilla x+
aksi,
j , xj . Standardimuodossa oletetaan lis
etta bi , 1 i m, on ei-negatiivinen, eli 0, mika saadaan aikaan, kun
yhtalo kerrotaan tarvittaessa -1:lla.
Duaali-LP
min(max) w = bT y
s.e.
AT y () c
y rajoitteeton
Kun siis primaalissa on max, niin duaalissa on min ja ; ja kun primaalissa on min, niin duaalissa on max ja .
Huomioita.
Duaali-LP on lineaarinen optimointitehtava, joka voidaan ratkaista simplexmenetelmalla, tai erityisella ns. duaalisimplex -menetelmalla.
Kun primaalissa on n muuttujaa ja m rajoitusehtoa, niin duaalissa on m
muuttujaa ja n rajoitusehtoa.
Jokaista primaalin rajoitusehtoa i kohden on olemassa duaalimuuttuja yi , 1
i m. Duaalissa yi :n kerroin kohdefunktiossa on primaalin rajoitusehdon i
oikean puolen arvo bi .
Jokaista primaalin muuttujaa xj , 1 j n, kohden on olemassa duaalin
rajoitusehto j, jonka oikean puolen arvo on xj :n kerroin cj primaalin kohdefunktiossa.
Duaali
Kohdefunktio
max
Rajoitusehdot
Muuttujat
Pn
j=1 cj xj
min
aTi x bi
aTi x bi
aTi x = bi
xj 0
xj 0
xj rajoitteeton
Pm
i=1 bi yi
yi 0
Muuttujat
yi 0
yi rajoitteeton
yT aj cj
Rajoitusehdot
yT aj cj
yT aj = cj
Esimerkki 1
Primaali
Standardi primaali
(y1 0, y2 rajoitteeton)
Esimerkki 2
Primaali
Standardi primaali
Duaali
max w =
s.e.
3y1 +5y2
y1 +2y2
2y1 4y2
y1
y2
y1 ,
y2
15
12
0 (tai y1 0)
0
rajoitteettomia (ei merkitysta, silla y1 0, y2 0)
Esimerkki 3
Primaali
max z =
s.e.
5x1
x1
x1
4x1
x1
Standardi primaali
+6x2
+2x2
=
+5x2
+7x2
x2
rajoitteeton
max z = 5x+
5x
1
1
5 s.e.
x+
x
1
1
3
x+
+x
1
1
8
4x+
4x
1
1
0
x+
,
x
1
1,
+6x2
+2x2
=
+5x2 x3
=
+7x2
+x4 =
x 2 , x3 ,
x4
Duaali
min w = 5y1 +3y2 +8y3
s.e.
y1 y2 +4y3
5
y1 +y2 4y3 5
2y1 +5y2 +7y3 6
y2
0
y3 0
y1
y2 , y 3
(y1 y2 + 4y3 = 5)
(y2 0)
rajoitteeton
rajoitteettomia (ei merkitysta)
4
5
3
8
0
Ominaisuus (b) Jos primaalilla ei ole kaypaa pistetta, on duaalin optimiarvo , ja painvastoin.
Ominaisuus (c) Primaalin ja duaalin simplex-iteraatioille on voimassa:
Primaalin simplex-iteraatiolla muuttujan j kerroin simplex taulukon zrivilla = duaalitehtavan rajoitteen j vasen puoli miinus oikea puoli.
Ajatellaan ominaisuuden (c) sovelluksena tehtavaa, jossa on 100 muuttujaa ja
500 rajoitetta. Talloin on helpompaa ensin ratkoa ko. tehtavan duaali, jossa
on 500 muuttujaa ja 100 rajoitetta. Alkuperaisen tehtavan ratkaisu saadaan
suoraan ominaisuuden (c) perusteella.
Esimerkki 4
Lasketaan Esimerkin 1 simplex-iteraatiot primaalitehtavalle. Kayvan aloitusratkaisun loytamiseksi lisaamme yhtalorajoitukseen keinomuuttujan R;
kohdefunktioon lisaamme termin M R (max-tehtava), missa M on riittavan iso luku. Saamme seuraavat iteraatiot:
Iter. 0:
Iter. 1:
Iter. 2:
Iter. 3:
kanta
x1
x2
x3
x4
R
ratkaisu
z
5 2M 12 + M 4 3M
0
0
8M
x4
1
2
1
1
0
10
R
2
1
3
0
1
8
z
7/3
40/3
0
0
4/3 + M
32/3
x4
1/3
7/3
0
1
1/3
22/3
x3
2/3
1/3
1
0
1/3
8/3
z
3/7
0
0
40/7 4/7 + M 368/7
x2
1/7
1
0
3/7
1/7
22/7
x3
5/7
0
1
1/7
2/7
26/7
z
0
0
3/5
29/5 2/5 + M 274/5
x2
0
1
1/5
2/5
1/5
12/5
x1
1
0
7/5
1/5
2/5
26/5
Muuttujat
x4
z-yhtalon kerroin (iteraatio 3)
29/5
y1 0
Vastaava duaalirajoite
Ominaisuudesta (c) seuraa:
y1 0 = 29/5
R
2/5 + M
y2 M
y2 (M ) = 2/5 + M
Duaaliteht
av
an taloudellinen tulkinta
Primaali-LP:
Pn
max z =
cx
Pnj=1 j j
s.e.
a
j=1 ij xj = bi
xj
0
1im
1jn
Duaali-LP:
min w =
s.e.
yi
Pm
Pmi=1 bi yi
i=1 aij yi cj
rajoitteeton,
6
1jn
1im
Primaali-LP:n tulkinta.
Olkoon n agenttia eli tuotantoyksikkoa, eli aktiviteettia (activity), ja m resurssia.
Agentti j tuottaa tuotetta j maaran (esim. kilogrammoissa) xj .
cj on agentin j yksikkotuotto (esim. e/kg).
z on kaikkien agenttien kokonaistuotto (e).
aij on se osa resurssia i (resurssi kg/tuote kg), jonka agentti j kayttaa yhden
yksikon valmistamiseen tuotetta j.
bi on maara (kg) resurssia i.
Duaali-LP:n tulkinta.
Ominaisuus (d)
z=
n
X
cj x j
j=1
n
m
X
bi y i = w
i=1
m
X
(resurssi i (kg)) ( ? )
i=1
Luento 5: Peliteoriaa
Tassa kappaleessa tutustutaan lyhyesti peliteoriaan. Peliteorian ratkaisukasite on Nashin tasapaino, jonka jo Augustin Cournot esitti duopolimallinsa
ratkaisuna v. 1838.
Cournotn duopolimalli
Tarkastellaan Cournotn duopolimallia. Mallissa on kaksi yritysta, jotka tuottavat homogeenista tuotetta samoille markkinoille. Merkitaan yrityksen yksi
tuotantomaaraa q1 :lla ja yrityksen kaksi q2 :lla. Olkoon kummankin yrityksen
yksikkotuotantokustannus c. Tuotteen hinta maaraytyy yleisin ehdoin seuraavasti: P (q1 , q2 ) = a (q1 + q2 ), missa a on positiivinen vakio. Hintaan siis
vaikuttavat molempien yritysten tuotantomaarat.
Tarkastellaan pelitilannetta, jossa yritykset valitsevat tuotantomaarat samanaikaisesti. Merkitaan yritysten saamaa hyotya :lla. Ensimmaisen yrityksen saama hyoty on
1 (q1 , q2 ) := q1 P (q1 , q2 ) q1 c = q1 (a (q1 + q2 ) c) ,
(1)
(2)
q1 Q1
1 (q1 , q2 )
= a 2q1 q2 c = 0
q1
1
q1 = (a q2 c).
2
1
(3)
2 (q1 , q2 )
=0
q2
1
q2 = (a q1 c).
2
(4)
Lasketut strategiat ovat todella maksimistrategiat, koska molempien hyotyfunktioiden toinen derivaatta on negatiivinen,
2 i (q1 , q2 )
= 2 < 0.
qi2
Yhtaloparin ratkaisu on
ac
.
(5)
3
Tama strategia on siis molemmille yrityksille optimaalinen, kun toinen yritys pelaa omaa optimistrategiaansa. Sijoittamalla tulos kaavoihin (1) ja (2)
saadaan molempien yritysten hyodyksi
q1 = q2 =
1
i (q1 , q2 ) = (a c)2 .
9
(6)
12 (q1 , q2 )
= a 2(q1 + q2 ) c = 0
q1
12 (q1 , q2 )
= a 2(q1 + q2 ) c = 0
q2
ac
q1 = q2 =
.
4
(7)
Nashin tasapaino
Strategiapari (q1N , q2N ) on Nashin tasapaino, jos
1 (q1N , q2N ) (q1 , q2N ), q1 Q1 ,
(8)
2 (q1N , q2N )
(9)
(q1N , q2 ), q2
Q2 .
Nashin tasapainostrategia on pelaajan paras strategia silloin, kun toinen pelaaja pelaa omaa tasapainostrategiaansa.
Vaikka yhteistyotulos on parempi kuin Nashin tasapainotulos, pelaajalla on
houkutus poiketa yhteistyosta omaksi edukseen, koska yhteistyoratkaisu ei
yleensa toteuta tasapainoehtoja.
Sekastrategia
Tarkastellaan seuraavaksi kahden pelaajan peleja, joissa pelit esitetaan tulostaulukkona. Tama on mahdollista, kun pelaajien strategioita on aarellinen
maara. Taulukon alkio aij on strategiaparin (i, j) tulos. Esimerkiksi peli voisi
olla seuraavanlainen:
Pelaaja1
Pelaaja2
L
C
R
T 5,4 4,0 5,3
M 4,0 0,4 5,3
B 3,5 3,5 6,6
Nollasummapelissa pelaajien intressit ovat vastakkaiset, siis alkion aij tulokset summautuvat nollaksi. Esimerkkina kolikkojen sovittamispeli:
Pelaaja1
Pelaaja2
q
1-q
Kr Kl
Kr -1,1 1,-1
Kl 1,-1 -1,1
p
1-p
Vangin ongelma
Kasper ja Jesper ovat tehneet kuutamokeikkoja Otaniemen ostarilla ja ovat
jaaneet siita kiinni. Poliisilla ei ole riittavasti todisteita pidattaa poikia, ellei
ainakin toinen heista tunnusta. Poliisi pistaa pojat eri selleihin ja pyytaa
heita tunnustamaan (C), tai sitten ei (N). Poliisi sanoo: Jos kumpikaan
teista ei tunnusta, olette molemmat tarkkailtavina putkassa yhden paivan,
tulos kummallekin -1. Jos te molemmat tunnustatte, saatte olla putkassa 6
paivaa. Jos sen sijaan toinen teista tunnustaa, mutta toinen ei, ensin mainittu
paasee vapaaksi ja toinen saa olla putkassa 9 paivaa. Peli, jota Kasper ja
Jesper pelaavat poliisin valityksella on seuraava:
Kasper
Jesper
N
C
N -1,-1 -9,0
C 0,-9 -6,-6
N : ei tunnusta
C : tunnustaa
Pelin rationaalinen ratkaisu on vaajaamatta (C,C), eli kumpikin on putkassa 6 paivaa: Pojat jotk ei tulleet hyviks, nyt on jauhettuna jyviks. Tulos
(1, 1) ei tule valituksi, koska se ei ole Nashin tasapaino, eli kummankaan
pelaajan kannalta rationaalinen ratkaisu, kun pelia pelataan vain kerran. Jos
pelia sen sijaan toistetaan, myos tama tulos voi tulla kyseeseen, kun pelaajat
pelaavat toistettua pelia esim. ns. Tit for Tat -strategialla: pelaa ensimmaisella kierroksella N; pelaa seuraavissa peleissa aina, kuten vastaustaja pelasi
edellisessa pelissa.
Nashin neuvotteluratkaisu
Cournotn duopolimallissa tutustuimme ns. yhteisoptimiin, eli funktion
1 + 2
yhteisoptimiin. Sinansa melkein mika tahansa ns. tehokas, tai Pareto-optimaalinen piste voisi olla yhteistyoratkaisu. Piste on Pareto-optimaalinen, jos siirtyminen johonkin toiseen pisteeseen huonontaa aidosti ainakin toisen pelaajan hyotya. Eli piste ei ole Pareto-optimaalinen, jos molempia hyotyja
voidaan parantaa, ja toista aidosti, siirtymalla johonkin toiseen pisteeseen.
Luennolla 6 osoitetaan, etta jokainen Pareto-piste saadaan maksimoimalla
funktio
1 + (1 )2 ,
missa painokerroin , 0 1. John Nash esitti v. 1950, etta lukuisista hyvista yhteistyopisteista voidaan valita yksi ratkaisu ns. neuvotteluratkaisuksi.
Tutkitaan kahden pelaajan valisia, kaypia hyotypareja (u1 , u2 ). Oletetaan,
etta nama pisteet kuuluvat kompaktiin ja konveksiin neuvottelujoukkoon S.
Olkoon (0,0) ristiriitatulos, tai neuvottelun referenssipiste. Nash oletti neuvotteluratkaisun toteuttavan Pareto-optimaalisuuden lisaksi kolme oikeudenmukaisuusaksioomaa, ja osoitti, etta nama maaraavat yksikasitteisesti kun6
NB
B
kin neuvottelujoukon S neuvotteluratkaisun F (S) := (uN
1 , u2 ). Ko. aksioomat ovat:
max u1 u2 .
(u1 ,u2 )S
Luento 6: Monitavoiteoptimointi
Monitavoiteoptimointitehtavassa on useita optimoitavia kohdefunktioita eli
ns. kriteereita : f1 , . . . , fm . Esimerkiksi opiskelija haluaa oppia mahdollisimman hyvin ja paljon mahdollisimman lyhyessa ajassa ja saada samalla sivuansioista mahdollisimman paljon rahaa siten, etta vapaa-aikaakin jaisi mahdollisimman paljon. Optisessa teollisuudessa kameran linssi halutaan tehda mahdollisimman laadukkaaksi ja edulliseksi. Siltainsinoori haluaa rakentaa sillan
kestavaksi, halvaksi ja maisemaan sopivaksi. Yhteista kaikille edella mainituille ongelmille on se, etta niissa on useita tavoitteita, jotka tulisi saavuttaa
yhtaaikaisesti ja mahdollisimman hyvin.
Esimerkki. Portfolion eli arvopaperijoukon optimoinnissa:
f1
f2
Teht
av
a 2.
max wT z
s.e. z F
Edella oletettiin, etta F :n pinta on konveksi. Yleisesti patee: Jos z0 on tehtavan 2 ratkaisu ja w1 , w2 > 0, niin z0 on Pareto-piste. Katso myos kuva
5.
Tutkitaan nyt monitavoitetehtavaa muodossa
max
m
X
wi fi (x)
i=1
s.e. x X Rn ,
missa wi 0,
Pm
i=1
Tavoiteoptimointi
Tavoiteoptimoinnissa (Goal programming) pyritaan etsimaan ratkaisu, joka
tayttaa tietyt tavoitteet. Mikali kaikkia tavoitteita ei pystyta tayttamaan,
minimoidaan poikkeamaa tavoitteista.
Joukko tavoitteita. tavoitteelle i:
s+
aadaan.
i 0. Muuttuja kuvaa paljonko tavoitteesta i j
malla tavalla.
Tavoitetehtava on muotoa:
tavoite 1:
..
.
cT1 x b1
..
.
cT1 x + s+
1 s1 = b 1
..
.
tavoite i:
..
.
cTi x bi
..
.
cTi x + s+
i s i = bi
..
.
tavoite j:
..
.
cTj x = bj
..
.
cTj x + s+
j s j = bj
..
.
tavoite m: cTm x = bm
cTm x + s+
m s m = bm
wi+ s+
aaksi tallaiseksi normiksi.
i + wi si voidaan tulkita er
zF
Luento 7: Kokonaislukuoptimointi
Lineaarisessa optimointitehtavassa (LP) kaikki muuttujat ovat jatkuvia. Kokonaislukuoptimoinnin (ILP = Integer LP) tehtavassa kaikilla muuttujilla on
kokonaislukurajoitus (xi Z, i). Sekalukutehtavassa kokonaislukurajoitus
on osalla muuttujista. Binaaritehtavassa (BILP) kaikki muuttujat saavat arvon joko nolla tai yksi.
Yleisimmin kaytetty ja luotettavin menetelma ILP-tehtavan ratkaisuun on
branch-and-bound algoritmi.
Leikkaavien tasojen menetelm
at (cutting-plane methods) ovat myos kaytettyja, mutta vaikeampia ja epavarmempia. Niiden kaytossa esiintyy myos ongelmallisia pyoristysvirheita.
Valintamuuttuja
Bina
arimuuttujan yleinen kayttokohde on binaarinen valinta, jossa tehdaan
valinta kahden paatosvaihtoehdon valilla. Tama valinta voidaan mallintaa
binaarimuuttujalla x
(
1, paatos 1
x=
0, paatos 2,
eli asetetaan x joko nollaksi tai ykkoseksi riippuen paatosvaihtoehdosta.
P
a
at
osmuuttujien riippuvuuksia
Binaariset paatosvaihtoehdot voivat olla riippuvaisia toisistaan. Rajoitteella
(1) voidaan rajata, etta paatosmuuttujista xi enintaan a kappaletta saa arvon
1. Jos halutaan, etta muutttujista xi tasmalleen a kappaletta saa arvon 1,
muutetaan epayhtalo yhtalorajoitteeksi.
n
X
xi a,
a {0, 1, ..., n}
i=1
(1)
(2)
(3)
(4)
Selk
arepun t
aytt
oongelma
Selk
arepun tayttoongelma (Knapsack Problem) kuvaa eramaavaeltajan vaikeutta valita tarpeellisimmat esineet reppuunsa vaellusta varten. Vaeltaja
voi kantaa vain K kilogramman kuorman. Hanen on valittava mukaansa osa
esineista kaikkiaan n esineen joukosta, joista jokaisella esineella j on massa
mj ja hyoty cj matkan aikana. Vaeltajan tarkoitus on maksimoida esineista
saatava kokonaishyoty.
Binaarimuuttuja xi saa arvon yksi, jos esine i otetaan mukaan, muuten nolla.
Vaeltajan ongelma voidaan esittaa binaaritehtavana muodossa
n
P
max
x
cj x j
(a)
j=1
n
P
mj xj
s.e.
(b)
{0, 1} j
(c)
(5)
j=1
xj
Ty
onjako-ongelma
Tyonjako-ongelmassa (AP = Assignment Problem) yhtiolla on n tyotehtavaa ja m tyontekijaa tai konetta, missa n m. Jokainen tyo tehdaan yhden
tyontekijan voimin ja jokainen tyontekija voi suorittaa korkeintaan yhden
tyotehtavan. Kaikki tyotehtavat on suoritettava. Jos tyontekija i tekee tyotehtavan j, siita aiheutuu kustannus cij . Tarkoituksena on minimoida kokonaiskustannus.
Binaarimuuttuja xij saa arvon yksi, mikali tyotehtavan j suorittaa tyontekija
i, muuten nolla. Tehtava on kokonaisuudessaan muotoa
min
x
s.e.
m P
n
P
cij xij
i=1 j=1
m
P
i=1
n
P
(a)
xij
j = 1, . . . , n
(b)
xij
i = 1, . . . , m
(c)
xij
{0, 1}
i, j
(d)
(6)
j=1
Rajoiteella (b) saadaan varmistettua, etta jokainen tyotehtava j tulee suoritetuksi ja rajoitteella (c) saadaan huomioitua, etta jokainen tyontekija i voi
suorittaa korkeintaa yhden tyotehtavan.
T
aydellinen sovitusongelma
Sovitusongelmassa (Perfect Matching Problem) yrityksella on tyontekijoita
parillinen maara 2n ja tehtavana on muodostaa tyontekijoista tyopareja kokonaistehokkuus maksimoiden. Olkoon cij tyontekijoiden i ja j valinen yhteistyotehokkuus. ja binaarimuuttuja xij saa arvon yksi, kun tyontekijat i ja
j muodostavat tyoparin, muuten nolla. Tehtava on muotoa
3
max
x
s.e.
2n1
P
2n
P
cij xij
i=1 j=i+1
i1
2n
P
P
xki +
k=1
(a)
xik =
i = 1, ..., 2n
(b)
i, j
(c)
(7)
k=i+1
{0, 1}
xij
Tehtaan sijoitusongelma
Tehtaan sijoitusongelmassa (Facility Location Problem) on joukko asiakkaita I = {1, . . . , m} ja joukko mahdollisia tehtaan sijoituspaikkoja J =
{1, . . . , n}. Tehtaan sijoittaminen paikkaan j tuottaa kustannuksen cj , j J,
ja asiakkaan i kysynnan tyydyttaminen paikasta j tuottaa kustannuksen dij .
Tarkoituksena on valita sopivat tehtaiden sijoituspaikat s.e. kokonaiskustannus minimoituu.
Binaarimuuttuja xj saa arvon yksi, jos tehdas sijoitetaan paikkaan j, muuten
nolla. Olkoon paikkaan j sijoitetun tehtaan kapasiteetti uj ja asiakkaan i kysynta bi . Maaritellaan lisaksi jatkuva muuttuja yij , joka osoittaa toimitusten
maaraa paikasta j asiakkaalle i. Tehtava on muotoa
min
x,y
s.e.
n
P
j=1
cj x j +
m P
n
P
dij yij
i=1 j=1
n
P
j=1
m
P
(a)
yij
iI
(b)
yij
u j xj , j J
(c)
0,
{0, 1}
(d)
(e)
bi ,
(8)
i=1
yij
xj
i, j
j
Kauppamatkustajan ongelma
Kauppamatkustajan ongelma (TSP = Traveling Salesman Problem) on ehka tunnetuin kombinatorinen optimointitehtava. Kauppamatkustaja aloittaa
matkustamisen kotipaikkakunnalta, vierailee etukateen maaritellyissa kaupungeissa ja palaa takaisin lahtopaikkaan. TSP:ssa on tarkoitus loytaa kokonaiskustannuksen minimoiva reitti siten, etta jokaisessa kaupungissa on
vierailtu tasmalleen kerran.
Olkoon kaupunkien joukko N = {1, ..., n} ja cij kaupunkien i ja j valisen kaaren, esimerkiksi tien tai lentoreitin kustannus. Kustannuksena voi olla etaisyys, raha, aika tai naiden kombinaatio. Jos cij = cji , tehtava on symmetrinen, muuten ei-symmetrinen. Olkoon binaarimuuttuja xij yksi, jos kauppamatkustaja jatkaa kaupungista i kaupungiin j, muuten nolla. Olkoon kauppamatkustajan kotipaikkakunta kaupunki 1. Tehtavan formulointi on
min
x
s.e.
n P
n
P
cij xij
i=1 j=1
n
P
i=1
n
P
(a)
xij
1,
j = 1, ..., n
(b)
xij
1,
i = 1, ..., n
(c)
j=1
P
xij
|S| 1,
S N,
S 6= N,
(9)
(d)
i,j(S)
xij
{0, 1}
(e)
Rajoitteilla (b) ja (c) huolehditaan siita, etta jokaiseen kaupunkiin saavutaan ja sielta poistutaan. Alireittien muodostuminen estetaan rajoitteella (d),
missa joukko S on kaupungeista N valittu ei-tyhja osajoukko ja itseisarvolla
tarkoitetaan tassa yhteydessa S:n alkioiden lukumaaraa. (S) maaritellaan
seuraavasti:
(S) = {(i, j) |i S, j S }
(10)
Jos kaupunkien joukossa S patee
(i,j)(S)
jolloin on siis muodostunut alireitti. Ilman rajoitetta (d) ratkaisu voisi olla
kuvan 1 mukainen.
j, k F,
j 6= k.
F on M :n ositus (partition), jos se on seka peite etta pakkaus M :lle. Osajoukon F kokonaiskustannus on
X
cj .
jF
Ax e,
6
Ax = e.
1
i M (b)
(11)
jN
xj
{0, 1} j N
(c)
Esimerkkej
a
Esimerkki 1 Budjetointi. Kylla - ei -rajoitus.
Paaoma budjetoidaan viiteen projektiin, joista kunkin kesto on 3 vuotta.
Projektien odotetut tuotot ja kustannukset seka kaytossa oleva paaoma ovat
ao. taulukossa. Yritys maksimoi kokonaistuottoaan.
kustannukset (ME)/vuosi
projekti
tuotto (ME)
1
2
3
4
5
5
4
3
7
8
1
7
9
4
6
8
10
2
1
10
20
40
20
15
30
25
25
20x1
5x1
x1
8x1
25
25
25
erapaiva (paiva)
myohastymissakko (E/paiva)
25
22
35
19
12
34
5
20
15
sj = s+
j sj ; sj , s j 0
xj + s +
j sj = dj pj .
Koska tavoiteena on minimoida myohastymissakoista muodostuvat kustannukset, voidaan muodostaa seuraava ILP-tehtava.
min z = 19s
1 + 12s2 + 34s3
s.e.
x1
x2
+M y12
x1
x2
M y12
x1
x3
+M y13
x1
+x3
M y13
x2 x3
+M y23
x2 +x3
M y23
x1
+s+
1 s1
x2
+s+
2 s2
x3
+s+
3 s3
+ +
x1 , x2 , x3 , s+
1 , s1 , s2 , s2 , s3 , s3 0
y12 , y13 , y23 {0, 1}
10
20
5M
15
5M
15
20 M
= 25 5
= 22 20
= 35 15
Branch-and-bound menetelm
a (B & B - menetelm
a)
Branch and bound menetelma on luotettava menetelma ILP-tehtavien ratkaisemiseen. Siina alkuperaisen kokonaislukutehtavan kaypa joukko, joka siis
muodostuu kokonaislukuvektoreista, muutetaan jatkumoksi, jolloin saadaan
ILP:n sisaltava LP-tehtava, ns. ILP:n LP-relaksaatio. Ko. LP-tehtava ratkaistaan. Jos ratkaisu ei ole kokonaislukuvektori, tehtavaan lisataan erityisrajoitukset, jolloin LP-tehtava muutetaan kahdeksi uudeksi LP-tehtavaksi,
jotka kuitenkin sisaltavat alkuperaisen ILP-tehtavan kayvat kokonaislukupisteet. Ko. LP-tehtavat ratkaistaan ja menetelmaa toistetaan kunnes ILPtehtavan ratkaisu loytyy. Menetelman toiminta kuvataan seuraavan esimerkin avulla.
Esimerkki
Olkoon ratkaistava ILP-tehtava
max z =
s.t.
5x1 +4x2
x1 +x2 5
10x1 +6x2 45
x1 , x2 Z+
11
Kuvaan 3 merkityt pisteet muodostavat ILP-tehtavan kayvan joukon. ILPtehtavasta muodostetaan LP-relaksaatio poistamalla kokonaislukurajoitukset. Olkoon LP0 alkuperaisen tehtavan LP-relaksaatio.
LP0:n ratkaisu on x1 = 3.75, x2 = 1.25, z = 23.75. Tama ratkaisu ei ole kokonaislukuarvoinen. Valitaan jompikumpi luvuista xj , joka ei ole kokonaisluku,
esimerkiksi x1 . Alueella 3 < x1 < 4, LP0:n kayvassa joukossa ei ole yhtaan
kokonaislukuratkaisua, joten ko. aluetta ei tarvitse huomioida ILP-tehtavan
ratkaisua haettaessa. Seuraavaksi muodostetaan LP0:sta kaksi alitehtavaa
LP1 ja LP2 seuraavasti:
LP1:n rajoituehdot = LP0:n rajoituehdot + (x1 3)
LP2:n rajoituehdot = LP0:n rajoituehdot + (x1 4)
LP1:n ja LP2:n kayvat joukot on esitetty kuvassa 4. LP1:ta ja LP2:ta tutkitaan erillisina tehtavina.
max z =
s.t.
5x1 + 4x2
x1 + x2 5
10x1 + 6x2 45
x1
3
x1 , x2 0
Tehtavan ratkaisuksi saadaan x1 = 3, x2 = 2, z = 23, mika tayttaa myos kokonaislukurajoitukset. Nyt LP1:n kaypaa joukkoa ei enaa tarvitse tutkia, silla
sielta ei voi loytya tata parempaa kokonaislukuratkaisua. Emme kuitenkaan
voi viela pitaa loydettya ratkaisua alkuperaisen ILP-tehtavan ratkaisuna, silla
LP2:n kayvasta joukosta saattaa loytya viela parempi kokonaislukuratkaisu.
Saatu ratkaisu on kuitenkin eras alaraja (lower bound) ILP-tehtavan kohdefunktion optimiarvolle. Alarajaa paivitetaan algoritmin edetessa sita mukaa,
kun parempia kokonaislukuratkaisuja loytyy.
Nyt on tutkittava, loytyyko LP2:n kayvasta joukosta parempaa kokonaislukuratkaisua. Havaitaan, etta tehtavan LP0 optimiratkaisussa z=23.75, kohdefunktion kertoimet ovat kokonaislukuja. Nain ollen z=23 on suurin kohdefunktion arvo, mita kokonaislukuratkaisulla voidaan saavuttaa. Voimme
siis todeta, tutkimatta tehtavaa LP2, etta piste x1 = 3, x2 = 2, z = 23 on
alkuperaisen ILP-tahtavan ratkaisu.
Jos olisimme alkaneet tutkia LP2:ta ennen LP1:ta, ja jakaneet LP2:ta aliongelmiin kunnes loytyy kokonaislukuratkaisu ja vastaava alaraja, olisi algoritmi edennyt kuvassa 5 esitetyn puun mukaan.
B & B-algoritmin vaiheet:
Maksimointitehtava, alaraja alussa (minimoinnissa alaraja korvataan
ylarajalla, ylaraja alussa ).
1. Muodostetaan ILP-tehtavasta LP-tehtava poistamalla kokonaislukurajoitukset. Siirrytaan vaiheeseen 2.
2. Ratkaistaan tutkittava LP-tehtava.
Mikali ratkaisu on kokonaislukuvektori, on kaksi vaihtoehtoa
1. Jos ratkaisu on parempi kuin voimassa oleva alaraja, korvataan alaraja
talla kohdefunktion arvolla.
2. Jos ratkaisu on huonompi kuin voimassa oleva alaraja, sailytetaan van13
15
Luento 8: Ep
alineaarinen optimointi
Vektoriavaruus Rn
n kpl.
z
}|
{
Rn on kaikkien n-jonojen x := (x1 , . . . , xn ) joukko. Siis Rn := R R.
Maaritellaan nollavektori 0 = (0, . . . , 0).
Reaalisten m n-matriisien joukkoa merkitaan Rmn .
Rn on vektoriavaruus, kun maaritellaan yhteenlasku ja skalaarilla kertominen:
x + y = (x1 , . . . , xn ) + (y1 , . . . , yn ) := (x1 + y1 , . . . , xn + yn ), ja
x = (x1 , . . . , xn ) := (x1 , . . . , xn ) .
Rn on sisatuloavaruus, kun maaritellaan sisatulo:
x y :=
n
X
xi y i .
i=1
uX
x2i = xT x .
||x|| := t
i=1
Kvadraattinen funktio
Funktio f : Rn R on lineaarinen, jos f (x) = cT x.
1P P
qij xi xj +
Kvadraattinen funktio f : Rn R on muotoa f (x) =
2 i j
P
i ci xi + d, eli matriisimuodossa
1
f (x) = xT Qx + cT x + d,
2
missa Q Rnn ja Q on symmetrinen, eli Q=QT .
Huomaa Mika tahansa neliomuodon keskella oleva neliomatriisi A voidaan
aina muuttaa symmetriseksi matriisiksi Q:
skalaari
z }| {
xT Ax = (xT Ax)T = xT AT x
Siis xT Ax = xT 1/2(A + AT )x, missa Q = (A + AT ) on symmetrinen.
Esimerkki Hae funktion f (x) kvadraattinen esitys.
f (x) = (x1 x2 )2 + (x1 + 2x2 + 1)2 8x1 x2
= 2x21 6x1 x2 + 5x22 + 2x1 + 4x2 + 1
2
Differentioituvuus
M
a
aritelmi
a:
Olkoon f : Rn R.
T
f (x) := f /x1 (x), , f /xn (x)
on f :n gradientti pisteessa x. Gradientti ajatellaan siis pystyvektorina. Funktion f Hessen matriisi pisteessa x on
2 f /x21 (x)
2 f /x1 xn (x)
..
..
nn
..
Hf (x) :=
R .
.
.
.
2 f /xn x1 (x)
2 f /x2n (x)
3
f1 (x)
f1 (x)T
f1 /x1 (x) f1 /xn (x)
..
..
..
mn
..
Jf (x) :=
.
=
R
.
.
.
.
fm (x)T
fm /x1 (x) fm /xn (x)
Funktio f on differentioituva x:ssa, jos
f (x + h) f (x) = f (x)T h + ||h||(x; h) h Rn ,
missa funktio (x; ) : Rn 7 R on sellainen, etta limkhk0 (x; h) = 0; kaytamme raja-arvosta myos merkintaa (x; h) 0, kun h 0.
Huomaa Vaikka f :n osittaisderivaatat ovat olemassa pisteessa x, sen ei silti
tarvitse olla differentioituva. Kuitenkin patee: jos f :lla on jatkuvat osittaisderivaatat pisteessa x, se on (jatkuvasti) differentioituva x:ssa.
Huomaa Tasta lahtien oletamme aina, etta kaikki osittaisderivaatat ovat
jatkuvia ko. tarkastelupisteessa.
Taylorin kaava: Jos f on kahdesti differentioituva x:ssa, on voimassa:
f (x + h) = f (x) + f (x)T h + 21 hT Hf (z)h
Optimin v
altt
am
att
om
at- ja riitt
av
at ehdot
Lause Olkoon x funktion f lokaali optimipiste.
f (x) = 0;
eli valttamattomat ehdot lokaalille optimille ovat: f (x)/xi = 0, i.
Todistus Olkoon esimerkiksi x lokaali minimi. Talloin h Rn , > 0, on
voimassa:
f (x + h) f (x) = f (x)T h + ||||h||(x, h).
Vastaoletus. Olkoon f (x) 6= 0. Valitaan h s.e. f (x)T h < 0.
f (x + h) f (x)
= f (x)T h + ||h||(x, h) < 0,
Yhtaloryhman ratkaisu on x = (1/2, 2/3, 4/3). Onko tama maksimi tai minimi?
2 0
0
Hf (x) = 0 2 1
0
1 2
Huomaa Kvadraattiselle f :lle Hf (x) ei riipu x:sta. Jos f :ssa on xi :n korkeampia potensseja mukana, Hf (x) riippuu yleensa x:sta.
Ratkaistaan Hf (x):n ominaisarvot:
2
0
0
f
2
1
det(H (x) I) = 0
0
1
2
= (2 + )3 + 2 + = (2 + )[(2 + )2 1] = 0
1 = 2, 2 = 3, 3 = 1
Siis Hf (x) on negatiivisesti definiitti, joten kyseessa on lokaali maksimi.
2
Derivoimiss
a
ant
oj
a
f (x) = cT x =
Pn
i=1 ci xi ;
f (x) =
f
(x)
x1
...
iT
f
(x)
xn
= [c1 , . . . , cn ]T = c.
f (x) = Ax;
aT1
A = ... Rmn , missa aTi on A:n i:s vaakavektori.
aTm
[aT1 x]T
aT1
..
..
Jf (x) =
= . = A.
.
[aTm x]T
aTm
f (x) = 12 xT Qx;
vakio
z }| {
vakio
z}|{
1
1
f (x) = xT Q x + xT Q x
2
2
vakio
vakio
z }| {
1 T
1 z T}| T{
= x Qx + x Q x
2
2
1 T
1
= Q x + Qx
2
2
= Qx, jos Q on lisaksi symmetrinen.
Huomaa Joissain kirjoissa f (x) maaritellaan vaakavektorina, jolloin:
[cT x] = cT
ja [xT Qx] = xT Q + xT QT .
Esimerkki
1
f (x) = xT Qx + cT x + d,
2
QT = Q, ja Q positiivisesti definiitti, eli Q1 on olemassa.
f (x) = Qx + c = 0
x = Q1 c
Nyt Hf (x) = Q on positiivisesti definiitti, joten x = Q1 c on yksikasitteinen lokaali, itse asiassa globaali, minimi.
x2
c1
f(x0)
c2
c3
x0
tg(x0 )
x1
Kuva 1: Funktion f kayria: c1 > c2 > c3 .
x2
f(x)
minimi
x1
10
2
1.5
1
0.5
f(x)
0
0.5
1
1.5
2
3
2
3
2
1
1
0
0
x2
2
3
x1
Kuva 3: Funktiolla f (x) = 21 x21 12 x22 on satulapiste pisteessa x=0. x1 x2 tasossa nakyy f :n vakiokayria satulapisteen ymparistossa.
11
Luento 9: Yht
al
orajoitukset optimoinnissa
Lagrangen kerroin
Oletetaan aluksi, etta f, g : R2 R. Merkitaan (x1 , x2 ) := (x, y) ja johdetaan Lagrangen kerroin tehtavalle
min f (x, y)
s.t. g(x, y) = 0
(1)
d
f
f
dy
f (x, y(x)) =
(x, y) +
(x, y) (x) = 0.
dx
x
y
dx
(2)
(3)
(4)
f
f
dy
dy
g
(2)
(4) g
(3)
(x, y) = (x, y) (x) = (x, y) (x) = (x, y).
x
y
dx
y
dx
x
(5)
Saadaan:
f /x(x, y) + g/x(x, y) = 0
f /y(x, y) + g/y(x, y) = 0
=0
g(x, y)
Saatiin kolme yhtaloa ja kolme tuntematonta (x, y, ) optimipisteen (x, y)
maaraamiseksi.
g1 (x)
(6)
2
Huomaa Tekstissa olevat liitteet ovat lisatietoa asian tiimoilta, eika niiden
asiaa kysyta tentissa.
Liite alkaa Merkitaan
x = (x1 , . . . , xm , xm+1 , . . . , xn )
:= (y, z) = (y1 , . . . , ym , z1 , . . . , znm )
Ratkaistaan g(x) = g(y, z) = 0, y:n suhteen.
y = y(z) g(y(z), z) = 0.
Olkoon y(z) yksikasitteinen ratkaisu. Merkitaan (y, z) = x. Koska x on
minimointitehtavan ratkaisu, on g(x) = 0 = g(y, z). Eli y = y(z).
Alkuperainen tehtava on siis minf (y(z), z), jolla on ratkaisu z.
z
z :=
,...,
z1
znm
T
Vastaavasti y on gradientti y:n suhteen. Merkinta Jgy (y, z) tarkoittaa funktion g : Rn 7 Rm Jacobin matriisia, missa derivointi on y:n suhteen, laskettuna pisteessa x = (y, z). Muut tarvittavat merkinnat ovat analogisia.
Koska z minimoi funktion fe(z) := f (y(z), z), saadaan derivoinnin ketjusaantoa soveltaen:
z fe(z) = Jyz (z)T y f (y, z) +z f (y, z) = 0
| {z } | {z }
(nm)m
(7)
m1
m(nm)
m(nm)
(8)
Tehdaan nyt seuraava oletus: Jgy (y, z)1 on olemassa, ja jatkuva pisteessa(y, z).
Tama oletus riittaa myos siihen, etta yhtalo g(y, z) = 0 voidaan ratkaista yksikasitteisesti y:n suhteen eraassa z:n ymparistossa. Tama oleutus ilmaistaan
ns. implisiittifunktiolauseessa seuraavasti: g(x) on jatkuvasti differentioituva
ja Jgy (y, z)1 on olemassa.
Lagrangen lauseen todistus Maaritellaan
:= [Jgy (y, z)T ]1 y f (y, z),
(9)
(10)
(11)
Herkkyysyht
al
ot
Tutkitaan tehtavaa
min f (x)
s.t. g(x) = b,
missa f : Rn R, g : Rn Rm ja b Rm on vakiovektori. Tutkimme,
miten kohdefunktion minimiarvo muuttuu, kun vakiovektoria b muutetaan
vektorin b, ||b|| pieni, verran. Merkitaan tehtavan ratkaisua annetulla b,
x(b); ratkaisu on siis b:n funktio. Jos b = b + b, missa ||b|| on pieni,
niin differentioituvuuden perusteella on
f (x(b + b)) f (x(b))
= b f (x(b))T |b=b b,
4
(12)
jos ||b||(b, b) oletetaan paljon pienemmaksi kuin (12):n oikea puoli; mika voidaan tehda, kunhan ||b|| on kyllin pieni.
Mutta nyt
b f (x(b))|b=b = T ,
(13)
(14)
(15)
(16)
(17)
(18)
(19)
missa siis on minimointitehtavan (14) Lagrangen kerroin. Yhtalo (19) kertoo, miten f :n optimiarvo f (x(b)) muuttuu pisteen b ymparistossa.
Sovelletaan nyt saatua tulosta lineaariseen optimointitehtavaan
min cT x
s.t. Ax = b
(20)
L(x, ) = c + AT = 0
Ax b = 0
(21)
Lasketaan sitten kohdefunktion z = cT x optimiarvon cT x muutos, kun resurssin b i:s komponentti muuttuu bi :n verran, eli b muuttuu muotoon
(b1 , . . . , bi + bi , bi+1 , . . . , bm ).
Kaavan (19) mukaan saadaan
z
= i .
bi
Nyt kuitenkin yhtalo (19) on tarkka, koska aina lineaariselle kohdefunktiolle
(x, h) 0 differentioituvuuden maaritelmassa.
Kun viela muistetaan Luennosta 4, etta z/bi on yhta kuin i:s duaalimuuttuja, saadaan duaalimuuttujien yi ja Lagrangen kerrointen valille yhteys:
yi = i , i.
Palaamme tahan kysymykseen viela Luennolla 12, jolloin johdamme yo. tuloksen suoraan duaalisuuden geometrisesta maaritelmasta.
Ep
ayht
al
orajoitukset
Olkoon tehtavassa nyt m epayhtalorajoitusta ja l yhtalorajoitusta. Olkoon
tehtava
min f (x)
s.t. gi (x) 0, 1 i m
,
hi (x) = 0, 1 i l
x Rn
(22)
L(x, u, v) := f (x) +
m
X
i=1
ui gi (x) +
l
X
vi hi (x)
i=1
=
=
0
0 1im
0 1im
0 1il
L(x, v) = Qx + AT v + c = 0
Ax b = 0
AQ1 AT v AQ1 c b = 0
v = [AQ1 AT ]1 [AQ1 c + b]
x = Q1 AT (AQ1 AT )1 [AQ1 c + b] Q1 c
= Q1 [I AT (AQ1 AT )1 AQ1 ]c + Q1 AT (AQ1 AT )1 b
2
Esimerkki
min f (x) = (x1 3)2 + (x2 2)2
s.t. g1 : x21
+x22 5
g2 : x1
0
g3 :
x2 0
g4 : x1
+2x2 4
Lasketaan f :n ja gi :den gradientit:
f (x)
g1 (x)
g2 (x)
g3 (x)
g4 (x)
=
=
=
=
=
KKT-ehdot ovat:
2x1 6
2x1
1
0
1
+ u1
+ u2
+ u3
+ u4
=0
2x2 4
2x2
0
1
2
u1 (x21 + x22 5)
u2 x1 = u3 x2
u4 (x1 + 2x2 4)
u1 , u 2 , u 3 , u 4
=
=
=
0
0
0
0
(23)
(24)
(25)
(26)
x21 +x22 5 = 0
x1 +2x2 4 = 0
2
4
1
u1 =
+ u1
+ u4
=0
u4 =
2
2
2
1
3
2
3
10
2 0
2 0
g1
H =
, H =
0 2
0 2
f
11
1-ulotteiset optimointialgoritmit
Menetelmat, joissa ei kayteta derivaattoja: esim. tasahaku, puolitusmenetelma eli dikotoominen haku, kultaisen leikkauksen menetelma, Fibonaccin
menetelma seka neliollinen ja kuutiollinen sovitus. Derivaattoja kayttavia
menetelmia ovat Newtonin menetelma ja sen johdannaiset.
Puolitusmenetelm
a
Oletetaan yksinkertaisuuden vuoksi, etta f : [a , b ] R on aidosti kvasikonveksi : z, , [a , b ] ja z ( , ) on
f (z) < max{f (), f ()}.
Jos edella on -merkki, sanomme, etta f on kvasikonveksi, ks. kuva 1.
Huomaa, etta aidosti kvasikonveksi funktio ei voi olla vakio millaan valilla,
sen sijaan kvasikonveksi funktio voi olla vakio.
Funktio f : [a , b ] R on kvasikonkaavi, jos f on kvasikonveksi.
Tutkimme seuraavassa numeerisesti aidosti kvasikonveksin funktion minimointia tai aidosti kvasikonkaavin funktion maksimointia.
f
11
00
00
11
11
00
00
11
1
0f( )
0f()
1
00f( )
11
000
111
000
111
000
111
000
111
000
111
000
111
uusi epvarmuusvli
Puolitusmenetelm
a:
0. Valitaan > 0, ja lopullisen epavarmuusvalin pituus l > 0; molemmat
pienia. Olk. [a , b ] alkuperainen vali.
1. b a < l, lopeta. Minimi valilla [a , b ]. Muuten lasketaan
x1 = a +
ba
,
2
2
x2 = a +
ba
+
2
2
0
1
0
1
0
1
ak
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
a k+1
0
1
0
1
0
1
k
1
0
0
1
0
1
0
1
0
1
0
1
a k+1
1
0
0
1
k+1
bk
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
k+1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
k+1
1
0
0
1
k+1
1
0
0
1
0
1
0
1
0
1
0
1
b k+1
f( k ) > f( k )
f( k ) < f( k )
11
00
b k+1
Fibonaccin menetelm
a
Kuten kultaisen leikkauksen menetelmassa, 1. kerralla lasketaan 2 funktion
arvoa, mutta seuraavilla kerroilla tarvitsee laskea vain 1 uusi funktion arvo.
Menetelma perustuu ns. Fibonaccin lukujen ominaisuuksiin, jotka maaritellaan rekursiivisesti:
Fn+1 = Fn + Fn1 ; n = 1, 2, . . .
F0 = F1 = 1
Ensimmaiset F-luvut ovat siis: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,. . .
Iteroinnoilla k valitaan:
Fnk1
(bk ak )
Fnk+1
Fnk
k = ak +
(bk ak )
Fnk+1
Fnk
bk+1 ak+1 =
(bk ak )
Fnk+1
k = a k +
Newtonin menetelm
a
Pisteesta xk tiedetaan f (xk ), f (xk ), f (xk ). f :n kvadraattinen approksimaatio on
1
q(x) := f (xk ) + f (xk )(x xk ) + f (xk )(x xk )2
2
Saadaan estimaatti xk+1 , f (x):n minimille:
q (x)
f (x)
g (x k )
g (x)
x k+1 x k
x k+1
xk
Kuva 4: Funktion minimointi Newtonin menetelmalla; funktion 0-kohdan etsinta Newtonin menetelmalla.
Muista Newtonin menetelma yhtalon g(x) = 0, esimerkiksi g = f , ratkaisemiseksi; ks. kuvan 4 oikea puoli.
Kuvasta 4:
g(xk )
g(xk )
= g (xk ) xk+1 = xk
xk xk+1
g (xk )
xk+1
f (xk ) f (xk1 )
= xk
xk xk1
|
{z
=f (xk )1
]1
f (xk )
n-ulotteiset derivaattoja k
aytt
av
at menetelm
at
Jos f : Rn R, ns. suorat haut ovat yleisesti muotoa:
0. Valitse alkupiste x1 , ja k = 1
1. Generoi laskusuunta dk ; noususuunta, kun maksimoidaan
Laske askelpituus k
xk+1 = xk + k dk
2. Lopputesti: esim. ||xk+1 xk || < . Jos jatketaan k k + 1; mene
kohtaan 1.
2
Muista
d laskusuunta, f (x)T d < 0, f (x+d) < f (x) (0, ), jollakin
> 0 f vahenee ko. suunnassa.
d noususuunta, f (x)T d > 0, f (x+d) > f (x) (0, ), jollakin
> 0 f kasvaa ko. suuntaan.
Optimaalinen askelpituus saadaan, kun lasketaan ao. tehtavan ratkaisu
k :
min f (xk + dk ),
L
xk+1 = xk + k dk
2. ||dk+1 || < lopeta; muuten k k + 1, mene kohtaan 1.
2
Huomaa Kun f :aa maksimoidaan, valitaan dk :ksi noususuunta f (xk ). Talloin gradienttimenetelmasta kaytetaan nimea steepest ascent method.
Newtonin menetelm
a
Funktion f : Rn R kvadraattinen approksimaatio on:
1
q(x) := f (xk ) + f (xk )T (x xk ) + (x xk )T H(xk )(x xk )
2
q:n minimin valttamaton ehto:
0 = q(xk+1 ) = f (xk ) + H(xk )(xk+1 xk )
xk+1 = xk H(xk )1 f (xk )
Lause Jos f (x) = 0 , f kahdesti jatkuvasti dierentioituva, ja H(x) positiivisesti deniitti H(x)1 eraassa x:n ymparistossa, ja menetelma on
talloin hyvin maaritelty. Lisaksi
||xk x|| 0, k , ja c > 0 s.e. ||xk+1 x|| < c ||xk x||2 ,
kun k on riittavan suuri. Talloin sanotaan, etta menetelman konvergenssiaste,
iteraatiota kohti, on vahintaan 2 (order two rate of convergence).
Sekanttimenetelm
at
Newtonin menetelmassa suunta dk valitaan s.e. dk = H(xk )1 f (xk ) ja
viivahakua ei yleensa suoriteta: xk+1 = xk + dk .
Sekanttimenetelma, eli kvasi-Newton-menetelm
a, eli Broydenin menetelm
a
sopii erityisesti tilanteisiin, joissa f :n Hessen matriisi, tai sen kaanteismatriisi,
on vaikea tai raskas laskea.
Sekanttimenetelmassa H(xk )1 :lle muodostetaan arvio Bk pelkkien gradienttien avulla. Muista ns. 1-ulotteinen sekanttimenetelma aiemmin.
Nyt valitaan dk = Bk f (xk ), missa Bk on symmetrinen ja positiivisesti
deniitti dk laskusuunta, so. f (xk )T dk = f (xk )T Bk f (xk ) < 0.
Lisaksi Bk :n tulee toteuttaa ns. sekanttiehto:
B1
k (xk xk1 ) = f (xk ) f (xk1 )
Sekanttimenetelmassa on lisaksi viivahaku suuntaan dk .
Bk sTk sk Bk
yk ykT
, k = 1, 2, . . .
ykT sk
sTk Bk sk
min f (x)
s.t. gi (x) = 0 , 1 i m,
missa x Rn . Lagrangen valttamattomat ehdot ovat:
f (x) +
m
X
i gi (x) = 0
(1)
g(x) = 0,
(2)
i=1
(3)
1
xk+1
x
= k JF
(x
,
)
F(xk , k )
k
k
x,
k+1
k
1
1
(x
,
)
:lle voidaan lisaksi kayttaa samantapaista sekanttipaivitysJF
k
k
x,
ta kuin kaytettiin H(xk )1 :lle; ks. sivu 7, luento 10. Sekanttiehto on tassa
tapauksessa:
B1
k
xk xk1
= F(xk , k ) F(xk1 , k1 )
k k1
Sakkofunktiomenetelm
a eli ulkopistemenetelm
a
Sakko- ja estefunktiomenetelmissa (penalty and barrier function methods)
rajoitusehtoja sisaltava optimointitehtava muutetaan rajoitusehtoja sisaltamattomaksi tehtavaksi, jossa kohdefunktioon on lisatty sopivalla sakkoparametrilla painotettuna rajoitusehdon rikkomisesta tuleva kustannus. Sakko- ja
estefunktiomenetelmat, varsinkin logaritminen estefunktio, ovat osoittautuneet erinomaisiksi menetelmiksi ratkottaessa erittain suuria, muuttujia n. 10
000 - useita miljoonia, esimerkiksi lineaarisia optimointitehtavia. Sakkofunktiomenetelmassa optimipistetta lahestytaan iteratiivisesti kayvan alueen ulkopuolelta ja estefunktiomenetelmassa taas kayvan alueen sisapuolelta. Tasta
nimitykset ulko- ja sisapistemenetelma.
Olkoon tehtavassa aluksi 1 rajoitus. Sakkofunktiomenetelmassa korvataan
min
h(x) = 0
min
g(x) 0
missa on riittavan suuri luku, sakkoparametri. Huomaa: [max{0 , g(x)}]2
on derivoituva funktio, jos g on, ja [max{0 , g(x)}] on jatkuva, jos g on;
tatakin voisi kayttaa sakkofunktiona.
(x) :=
m
X
(gi (x)) +
i=1
l
X
(hi (x)),
i=1
missa
(
0
, y0
(y) :=
>0 , y>0
(
0
, y=0
(y) :=
> 0 , y 6= 0
Voidaan esimerkiksi valita (y) = [max{0, y}]p ; (y) = |y|p , p 1. Sakkotehtavana on siis
min f (x) + (x),
xX
, x2
, x<2
Esimerkki
min x21 + x22
s.t. x1 + x2 1 = 0
(x1 , x2 ) R2
Tehtavan minimipiste on x = [ 12 , 21 ]T ja f (x) = 21 .
Tehtavan min x21 + x22 + (x1 + x2 1)2 valttamattomat ehdot ovat:
(
x1 + (x1 + x2 1) = 0
x2 + (x1 + x2 1) = 0
Ratkaisu on
1
x1 () = x2 () = /(2 + 1) = 1/(2 + 1/), joka , kun .
2
Merkitaan () := f (x()) + (x()), missa x() ratkaisee sakkotehtavan
parametrilla . Oletetaan, etta pisteet x() , 0 , kuuluvat Rn :n kompaktiin osajoukkoon. Merkitaan alkuperaisen tehtavan ratkaisua x:lla.
Lause Olkoot f ja jatkuvia funktioita X R. Talloin
f (x) := min {f (x) | g(x) 0 , h(x) = 0} = lim ().
xX
Liite alkaa
Eksaktit sakkofunktiot
Edella alkuperaisen tehtavan optimi saavutetaan, kun . Laskenta
voi vaikeutua suurilla :n arvoilla, ja viivahausta seuraavilla pienilla askelpituuksilla. Ns. eksakteilla sakkofunktioilla optimi saavutetaan aarellisella :n
arvolla. Tallaisia ovat itseisarvosakkofunktio
FE (x) := f (x) + [
m
X
max{0 , gi (x)} +
i=1
l
X
|hi (x)|]
i=1
L(x, v) := f (x) +
m
X
i=1
vi hi (x) +
l
X
i=1
Estefunktiomenetelm
a eli sis
apistemenetelm
a
Olkoon tehtava
min f (x)
s.t. g(x) 0
xX
missa g = [g1 , . . . , gm ]T . Tassa X = Rn , tai X = {x Rn | x 0} ja X voi
lisaksi sisaltaa esimerkiksi tehtavan yhtalorajoitukset. Olkoon x tehtavan
ratkaisu. Merkitaan G := {x Rn | g(x) < 0}, ja oletetaan, etta G 6= .
Alla oleva lause vaatii lisaksi oletuksen: x:n ymparistossa on piste x s.e.
x G. On huomattava, etta yleensa x on G:n reunapiste.
B(x) :=
m
X
i=1
X
1
; B(x) :=
ln [gi (x)]
gi (x)
i=1
Tutkitaan estefunktiotehtavaa
min f (x) + B(x)
s.t. x X G
Lause Olkoon yo. tehtavan ratkaisu annetulla > 0, x(). Oletetaan, etta
pisteet x() kuuluvat X G:n kompaktiin osajoukkoon. Talloin x()
x ; f (x()) + B(x()) f (x), kun 0+ .
2
Estefunktiomenetelm
a
0. Valitaan x1 X G, > 0, 1 > 0, (0, 1), k = 1.
1. min f (x) + k B(x); aloituspiste xk . Olkoon ratkaisu xk+1 .
xS
Ax b = 0
(4)
AT v + u c = 0
(5)
u x = 0, u 0
(6)
Ax b = 0
AT v
= c [1/x1 , . . . , 1/xn ]T
(7)
Ax b = 0
(8)
A v+uc=0
(9)
u [1/x1 , . . . , 1/xn ]T = 0
(10)
Otetaan yhtalon (10) pistetulo x:n kanssa, jolloin saadaan uT x = n. Mutta koska n 0, kun 0+ , saadaan, etta yhtaloiden (8)-(10) ratkaisu
lahenee LP-tehtavan ratkaisua, kun 0+ . LP-tehtava voidaan siis ratkoa
estefunktiomenetelmalla, missa estefunktiotehtavan ratkaisu annetulla > 0
saadaan yhtaloista (8)-(10) esimerkiksi Newtonin menetelmalla ja sekanttipaivityksella.
1
QP (xk , uk , vk ) : minn dT Bk d + f (xk )T d
dR 2
gi (xk ) + gi (xk )T d 0 , 1 i m,
hi (xk ) + hi (xk )T d = 0 , 1 i l,
missa Bk on DFP-arvio Lagrangen funktion Hessen matriisille pisteessa xk ;
sijoita DFP-paivityskaavaan
yk1 := xk xk1 , sk1 := L(xk , uk , vk ) L(xk1 , uk , vk ).
Jos dk ratkaisee QP (xk , uk , vk ):n Lagrangen kertoimilla uk+1 , vk+1 , ja jos
dk = 0 xk , uk+1 , vk+1 on alkuperaisen tehtavan KKT-piste. Muuten
xk+1 = xk + k dk , missa k minimoi itseisarvosakkofunktion FE , suunnassa
dk , so. k ratkaisee
min FE (xk + k dk );
0
FE maaritelty edellisessa liitteessa. SQP lienee kaytannossa merkittavin epalineaaristen tehtavien ratkaisumenetelma. Melkein kaikki ohjelmistot sisaltavat jonkin SQP-toteutuksen; mm. Matlabin Optimization Toolboxissa ainoa
menetelma rajoitetuille tehtaville.
2
Liite p
a
attyy
f( x 1 ) + (1) f( x 2)
f( x 1 + (1) x 2 )
x1
x2
x 1 + (1) x 2
(1)
Weierstrassin lauseesta seuraa, etta minimoiva vektori x S on aina olemassa. Lisaksi patee:
x S on yhtalon (1) minimoiva vektori (y x)T (x x) 0, x S.
Katsotaan sitten edella olevan minimointitehtavan duaalitehtavaa. Tutkitaan
pisteiden x ja y valista kulkevia tasoja H. R2 :ssa tallaisen tason yhtalo on
muotoa p1 x1 + p2 x2 = , missa p = [p1 , p2 ]T on ko. tason, tassa tapauksessa
suoran, normaali ja sopiva luku. Rn :ssa H := {x Rn |pT x = }, missa p
on kiintea vektori ja jokin luku. Lasketaan nyt y:n etaisyys y:n ja x:n valista kulkevasta tasosta ja otetaan naista luvuista maksimi. Tulos on yhtalon
(1) kohdefunktion minimiarvo :
Huomaa Yhtalossa (2) riittaa tutkia vain niita y:n ja x:n valista kulkevia
tasoja, jotka tangeeraavat joukkoa S.
Duaaliteht
av
a
Olkoon alkuperainen tehtava, ns. primaali-tehtava (P) muotoa:
min
s.t.
f (x)
gi (x) 0
Ax = b
x X,
1im
missa g := [g1 , . . . , gm ]T .
Annetulla (u, v) Rm+l , (u, v) on tehtavan Lagrangen funktion minimiarvo, missa minimointi on yli x X. Jos ajatellaan f (x):n esittavan hypoteettisen pisteen y (esim. f :n minimipiste x X:n suhteen) etaisyytta g:n, A:n
ja b:n maarittelemasta kayvasta joukosta, huomataan pienen pohdinnan jalkeen analogia geometrisen duaalisuuden kanssa. Tehtavan (P) duaalitehtava
on:
max (u, v)
s.t. u Rm , v Rl
u0
Lause (u, v) on konkaavi Rm+l :ssa.
2
Lause Oletetaan: x
siten, etta g(
x) < 0 ja A
x= b, ja piste 0 Rl on
joukon {Ax b | x X} sisapiste. Talloin (a),
min cT x
s.t. Ax = b
x0
D:
max (v)
s.t. v Rm
, muulloin
Joten duaalitehtava D saa muodon
max
s.t.
(v)T b
AT (v) c
v Rm
Tehtavan D ratkaisu antaa tehtavan P rajoitukseen Ax = b liittyvan Lagrangen kertoimen v. Luennosta 9 muistamme, etta v esittaa P:n kohdefunktion optimiarvon muutosta z resurssimaaran b muuttuessa. Jos nyt
D:ssa maaritellaan uusi muuttuja y := v, paadytaan luennon 4 duaalisuusformulointiin.
max
s.t.
i=1
N
gi (xi )
xi = x0 , xi 0 i
i=1
, 1iN
max gi (x) p x
x
gi (x) = p
Huomaa Edella on oletettu, etta gi :t ovat myos konkaaveja funktioita, jolloin
KKT-ehdot ovat myos riittavia lokaalille optimille.
Kenneth Arrow esitti 1950-luvulla Nobel-palkintoon johtaneet mikrotaloustieteen tasapainoteorian perusteesit seuraavasti:
(a) Resurssilla on hinta p, joka tyhjentaa markkinat; so. kysynta = tarjonta.
(b) Hintaa p vastaava jako johtaa agenttiporukan yhteisoptimiin, eli ns.
sosiaaliseen optimiin.
Hajautettu optimointi
Edella olevan tehtavan tyyppisia optimointitehtavia voidaan ratkoa hajautetusti ns. koordinointimuuttujan p avulla seuraavan kaavion mukaisesti:
KOORDINAATTORI:
paivita !
xi (p)
x0
xi (p)
p
YKSIKKO 1:
YKSIKKO i:
...
max g i(x)px
x
YKSIKKO N:
...
vastaus: xi(p)
pk+1
]1
s(pk ) s(pk1 )
= pk
s(pk )
pk pk1
N
s(pk ) :=
xi (pk ) x0
i=1
optimointimenetelmana esitteli kuitenkin ensimmaisena John H. Holland klassikkokirjassaan vuonna 1975 [8].
Talla luennolla esitellaan geneettisten algoritmien yleinen toimintaperiaate
seka havainnollistetaan menetelman toimintaa tunnettujen esimerkkien avulla. Esimerkit osoittavat kuinka monipuolisesti geneettisia algoritmeja voidaan
soveltaa optimoinnissa. Esimerkeissa naytetaan, kuinka kombinatoorisen optimoinnin tunnettu tehtava, kauppamatkustajan ongelma, voidaan ratkaista
geneettisten algoritmien avulla. Lisaksi esitellaan Robert Axelrodin kehittama menetelma, jossa toistetun vangin dilemma -pelin pelistrategia muodostetaan geneettisten algoritmien avulla.
Rakennuspalikkahypoteesi
Geneettiset algoritmit perustuvat rakennuspalikkahypoteesiin:
Hyvi
a ratkaisuja yhdist
am
all
a on mahdollista l
oyt
aa
viel
a parempia ratkaisuja.
Geneettisissa algoritmeissa ratkaisujen (kromosomien) ajatellaan siis koostuvan rakennuspalikoista (geeneista). Hyvissa ratkaisuissa nama rakennuspalikat ovat parempia kuin huonoissa ratkaisuissa. Kun hyvien ratkaisujen
rakennuspalikoita yhdistellaan geneettisilla operaattoreilla, on mahdollista
etta onnistutaan muodostamaan viela parempia ratkaisuja.
Geneettisi
a operaattoreita
Geneettiset operaattorit luovat kromosomeja imitoimalla evoluutiota ja perinnollisyytta. Operattoreiden kirjo on suuri, mutta seuraavat kolme operaattoria ovat yksinkertaisimpia ja ovat tuottaneet hyvia tuloksia [1].
1. Uudelleenvalinta (engl. reproduction).
2. Risteytys (crossover).
3. Mutaatio (mutation).
Uudelleenvalinta
Uudelleenvalinnassa uuteen populaatioon valitaan edellisen sukupolven kromosomeja s.e. paremman hyvyysfunktion arvon omaavilla kromosomeilla on
suurempi todennakoisyys tulla valituksi uudelleen.
Esim. Populaatio muodostuu kuudesta kromosomista, joiden hyvyysfunktion
arvot on esitetty alla. (Huomaa, etta populaatiossa voi olla useita samoja
kromosomeja.)
P
Kromosomi (i) Hyvyysfunktion arvo (fi ) ValintaTN fi / i fi
A
25
0.5
10
0.2
0.12
0.12
0.04
0.02
Summa
50
Suhde fi /
P
i
Uusi populaatio voidaan siis muodostaa esim. jakamalla vali (0,1) todennakoisyyksien mukaan kromosomeja vastaaviin alueisiin [A=(0, 0.5), B=(0.5,
0.7), C=(0.7, 0.94), D=(0.94, 0.98), E=(0.98, 1)] ja luomalla kuusi valille
(0,1) tasajakautunutta satunnaislukua. Uuden populaation kromosomit valitaan sen mukaan, mita kromosomia vastaaviin alueisiin satunnaisluvut kuuluvat.
Risteytys
Risteytysoperaattori luo kahdesta kromosomista kaksi uutta kromosomia vaihtamalla osan geeneista keskenaan. Ajatuksena on, etta hyvien alkioiden geeneja sekoittamalla voidaan loytaa viela parempia alkioita. Risteytysoperaattorin toiminnassa on kaksi vaihetta:
1. Valitse sattumanvaraisesti katkaisukohta, josta risteytettavat kromosomit jaetaan kahteen osaan.
2. Vaihda kromosomien loppuosat kekenaan.
Toisin kuin uudelleenvalinnassa, risteytyksen avulla uuteen populaatioon syntyy alkioita, joita edellinen populaatio ei sisaltanyt. Risteytyksen avulla voidaan
siis muodostaa uusia ratkaisuvaihtoehtoja, jotka voivat olla parempia kuin
edellisen populaation ratkaisut.
Kaikkia uuteen populaatioon valittuja kromosomeja ei risteyteta. Risteytyksen todennakoisyyden maaraa parametri risteytystodenn
ak
oisyys pc .
Ennen risteytysta
XXXX
XXXXX
YYYY
YYYYY
Risteytyksen jalkeen
XXXXYYYYY
YYYYXXXXX
Katkaisukohta
5
Mutaatio
Kaikki uudelleenvalinnalla tai risteytyksella saatavat geenit periytyvat tavalla tai toisella edellisesta populaatiosta. Nain ollen iteraatio voi helposti paatya johonkin lokaaliin optimiin, silla alkupopulaatio ei valttamatta sisaltanyt
kaikkia globaalin optimin geeneja.
Mutaatio-operaattori valitsee kromosomista sattumanvaraisesti geenin, ja vaihtaa sen alleelin toiseksi.
Ennen mutaatioa
XXXXXXXXX
Mutaation jalkeen
XXYXXXXXX
Mutaatiokohta
Mallialgoritmi
Geneettinen algoritmi, joka kayttaa edella esiteltyja geneettisia operaattoreita, voisi koostua seuraavista vaiheista.
1. Luo alkupopulaatio, jossa on m alkiota.
2. Toista vaihetta 3, kunnes lopetusehto toteutuu.
3. Luo uusi m:n kromosomin populaatio toistamalla seuraavia vaiheita
a) Valitse uudelleenvalintaoperaattorilla kaksi alkiota.
b) Jos pc > rand[0, 1], sovella risteytysoperaattoria naihin alkioihin.
6
1
sinc(x) =
sin(x)
x
kun x = 0
kun x 6= 0
4b
,
65535
missa b on binaarivektorilla esitetty kokonaisluku valilta [0, 65535]. Nain esitettyjen pisteiden diskretointivali x-akselilla on 4/65535 0.000061.
Huom. esimerkiksi binaarivektori v = (1 0 1 0) vastaa kokonaislukua
b = 1 23 + 0 22 + 1 21 + 0 20 = 10.
7
1.6
1.4
1.2
f(x)
0.8
0.6
0.4
0.2
0
2
1.5
0.5
0.5
1.5
b1 = 48102
x1 = 0.935958
v2 = (0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 0)
b2 = 13310
x2 = 1.18761
Nyt voimme soveltaa edellisessa kappaleessa esitettya geneettisen algoritmin mallia, loytaaksemme optimaalisen binaarivektorin, ja nain ollen varsin
tarkan likiarvon finktion f (x) maksimille.
Kirjassa on valittu seuraavat parametrien arvot:
Populaation koko m = 30.
Risteytystodennakoisyys pc = 0.3.
Mutaatiotodennakoisyys pm = 0.01.
Kun algoritmi ajettiin 100 kertaa erilaisilla satunnaisesti valituilla alkupopulaatioilla, optimiratkaisu loytyi 80 kertaa alle 400:lla iteraatiolla.
8
Kauppamatkustajan ongelma
Kauppamatkustajan ongelmalla tarkoitetaan tehtavaa, jossa on etsittava lyhin reitti annettujen kaupunkien valille, siten etta kaikissa kaupungeissa kaydaan kerran ja lopuksi palataan lahtokaupunkiin. Kaupunkien valiset yhteydet ovat tiedossa, joten kyseessa on tyypillinen kombinatoorinen tehtava.
Geneettiset algoritmit soveltuvat hyvin kauppamatkustajan ongelman approksimatiiviseen ratkaisemiseen, vaikka ongelma ratkeaa varsin tehokkaasti
myos muilla optimointimenetelmilla, kuten lineaarisella ohjelmoinnilla [5] ja
simuloidulla jaahdytyksella [10]. Seuraavassa esitetaan matemaattinen malli
kauppamatkustajan ongelmalle.
Olkoon annettu n kaupunkia ja symmetrinen n n matriisi D, jonka alkiot
kuvaavat etaisyyksia kaupunkiparien (a, b) valilla, a, b 1, 2, . . . , n. Reitilla tarkoitetaan suljettua polkua, joka kay kussakin kaupungissa tasmalleen
kerran.
Tehtavan ratkaisuavaruutena on kaupunkien syklisten permutaatioiden
joukko, jossa on (n 1)! eri mahdollisuutta1 . Minimoitavana kustannusfunktiona on reitin pituus eli
f () =
n
X
di,(i) ,
i=1
Jarjestysnumero
(a, b, c, d, e)
(b, c, d, e)
(b, d, e)
(b, d)
(b)
Siten reitin (a, c, e, d, b) koodivektori on (1, 2, 3, 2, 1). Talla tavalla koodattujen reittien risteytykset ovat myos reitteja, joten risteytysoperaattoria voidaan
kayttaa aiemmin esitetylla tavalla.
Kromosomin i:nnen geenin mahdolliset alleelit ovat {1, 2, . . . , n + 1 i}. Mutaatiossa valitaan sattumanvarainen geeni ja korvataan se satunnaisesti valitulla kayvalla alleelilla.
Kauppamatkustajan ongelman ratkaiseva geneettinen algoritmi voidaan nyt
muodostaa aiemmin esitetyn mallialgoritmin pohjalle.
Kuvassa 2 on esitetty geneettisen algoritmin tuottamia reitteja neljankymmenen kaupungin valille2 . Kaupunkien sijainnit poikkeavat toisistaan eri kuvissa. Kuva 3 nayttaa, kuinka paras ratkaisu kehittyy iteraatiokierrosten aikana.
Axelrodin koe
Robert Axelrod Michiganin yliopistosta jarjesti vuonna 1984 toistettuun vangin dilemma -peliin (ks. [7]) liittyvan kilpailun. Eri alojen tutkijoita pyydettiin kehittamaan pelistrategia, jossa toiminta perustuu kolmen edellisen kierroksen pelihistoriaan. Axelrod peluutti naita strategioita vastakkain ja tutki
2
10
10
32
22
2934
8
4
19
5
25
38 24
20
22
10
26
4
36
29
6
7
1
25
16
17 34
32
28
9
8
10
36
13
31
29
6
1 4
17
20
26
38
12
33
18
40
32
21
30
31
13
1
0
23
22
4
19
27 30
14
24
35
16
37
35
34
39
38
28
8 25
5
4 26
10
33
20
10 22
12
11
19
27
24
40
7
6
37
23
15
25
6
18
39
14
21
12
36
10
9
16
28
915
1
2
40
20
31
40
21
0
4
38
10
31
11
26
35
24
39
17
39
27
13
12 1
37
27
33
6 23
17 2
18
11
15
14
36
8
13 30
9
35
37
5
23
32
34
14
30
10
8 19
29
28
16 18
7
6
33
15
3
21
11
0
10
10
Reitin pituus
140
120
100
80
60
40
20
0
50
100
150
200
Sukupolvi
250
300
350
400
C R,R S,T
D T,S P,P
Ylla esitetty peli on vangin dilemma, mikali hyodyt toteuttavat ehdot
T >R>P >S
seka
2R > T + S.
Jalkimmaisen ehdon tulee patea silloin kun pelia toistetaan useammin kuin
kerran. Tama ehto selitetaan tarkemmin myohemmin tassa kappaleessa.
M
a
aritelm
a 0.1 Pelin Nashin tasapaino on strategiakombinaatio, jossa yksik
a
an pelaaja ei voi parantaa hy
oty
a
an vaihtamalla yksin strategiaansa.
Mikali pelia pelataan yhden kerran, sen Nashin tasapaino (ks. [7]) on tilanne
jossa kumpikin pelaaja valitsee D:n. Tama johtuu siita, etta riippumatta
vastustajan valinnasta pelaaja saa aina suuremman hyodyn valitsemalla D:n,
kuin valitsemalla C:n.
Pelin dilemma on siina, etta vaikka vaikka sen Nashin tasapaino on molempien pelaajien loikkaus (merkitaan DD), molemmat pelaajat saisivat suuremman hyodyn jos molemmat valitsisivat C:n.
12
Tilanne muuttuu, kun pelia toistetaan useammin kuin kerran. Talloin valinnassa ei tule huomioida ainoastaan parhaillaan pelattavasta kierroksesta saatavaa hyotya, vaan myos tulevien kierrosten hyodyt. Nain ollen Nashin tasapaino ei olekaan enaa itsestaan selva lopputulos, silla pelaajien on huomioitava pelin dynamiikka, eli se kuinka hanen valintansa vaikuttaa vastustajan
valintoihin tulevilla kierroksilla.
Toistettuun peliin liityva ehto 2R > T + S tarkoittaa, etta pelaaja saa suuremman hyodyn kahdelta CC-kierrokselta, kuin CD- ja DC-kierroksilta yhteensa. Nain ollen pelaajien yhteenlaskettu hyoty toistetussa pelissa maksimoituu, kun molemmat valitsevat jokaisella kierroksella C:n.
Turnauksessa kaytetty vangin ongelma -peli on esitetty alla:
C 3,3 0,5
D 5,0 1,1
Turnaukseen osallistui todella monimutkaisia strategioita, mutta voittajaksi
selviytyi yksinkertainen potut pottuina -strategia (engl. TIT FOR TAT), jossa pelaaja toimii kullakin kierroksella samoin kuin vastustaja toimi edellisella kierroksella. Axelrod kasittelee turnauksen tulosten laajempaa filosofista
merkitysta yksityiskohtaisesti kirjassaan The Evolution of Co-operation [3].
Pelistrategian kehitt
aminen geneettisell
a algoritmilla
Vuonna 1987 Axelrod paatti kokeilla pelistrategian kehittamista geneettisen
algoritmin avulla, katso viite [2].
Pelin saantoihin kuului, etta strategian tulee perustua kolmen edellisen kierroksen historiaan. Koska kolmen edellisen kierroksen historia voidaan esittaa
kuuden binaarisen merkin avulla (esim. CC CD CC), on mahdollisia historioita yhteensa 26 = 64 kappaletta. Nain ollen pelistrategia voidaan esittaa
13
giat vain vastustajan pelihistoriaan. Nain ollen nama historiat voitiin kasitella seitsemalla
(1 + 21 + 22 = 7) strategialla. Malli kuitenkin paranee kun se huomioi myos omat alkusiirrot.
14
Historia
Strategia
Ensimmainen siirto
CC
CD
DC
DD
CC CC
CC CD
..
.
D
..
.
DD DC
DD DD
CC CC CC
CC CC CD
CC CC DC
..
.
C
..
.
DD DD DC
DD DD DD
Taulukko 1: Taulukossa on esitetty, kuinka strategia liittaa kuhunkin vektoriin jonkin reaktion. Oikeanpuoleinen sarake kuvaa strategiavektoria.
Taulukon reaktiot noudattavat potut pottuina -strategiaa, jossa kunkin kierroksen reaktio on sama kuin vastustajan valinta edellisella kierroksella.
15
Axelrodin tulokset
Geneettisessa algoritmissaan Axelrod peluutti luotuja strategioita kahdeksaa
kilpailuun osallistunutta strategiaa vastaan. Optimoitavana hyvyysfunktiona
(engl. fitness function) kaytettiin kaikilta pelikierroksilta, kaikkia vastustajia
vastaan, saatua kokonaishyotya.
Kokeessa jokaista pelia pelattiin 151 kierrosta, alkupopulaatioon kuului 20
strategiaa ja algoritmia iteroitiin 50 sukupolvea. Alkupopulaation strategiat
valittiin taysin satunnaisesti.
Koe tuotti merkittavia tuloksia: Algoritmi kehitti populaation, jonka keraaman
kokonaishyodyn mediaani oli yhta hyva kuin turnauksen voittaneella potut
pottuina -strategialla. Geneettisen algoritmin luomat strategiat olivat itse
asiassa ominaisuuksiltaan hyvin lahella potut pottuina -startegiaa.
Tuloksia tarkastellessa on hyva muistaa, etta geneettisen algoritmin tuottama
optimistrategia riippuu voimakkaasti niista strategioista joita vastaan sita
peluutetaan. Valitsemalla vastustajien strategiat toisin saataisiin siis myos
toisenlaisia optimistrategioita.
Viitteet
[1] N. Ansari and E. Hou. Computational Intelligence for Optimization.
Kluwer Academic Publishers, 1997.
[2] R. Axelrod. The evolution of strategies in the iterated prisoners dilemma. In L. Davis, editor, Genetic algorithms and simulated annealing.
Pitman, 1987.
[3] R. Axelrod. The Evolution of Cooperation. Penguin Books, 1990.
[4] N.A. Barricelli. Numerical testing of evolution theories. part ii. preliminary tests of performance, symbiogenesis and terrestrial life. Acta
Biotheoretica, 16:99126, 1963.
16
Kirk.
Traveling
salesman
problem
genetic
algorithm.
http://www.mathworks.com/matlabcentral/fileexchange/
loadFile.do?objectId=13680&objectType=file.
[10] S. Kirkpatrick, C.D. Gelatt, and M.P. Vecchi. Optimization by simulated
annealing. Science, 220:671680, 1983.
17