You are on page 1of 127

Luento 1: Optimointimallin muodostaminen;

optimointiteht
avien luokittelu
Merkint
oj
a
:=
s.e.

@
AT

vasen puoli maaritellaan oikean puolen lausekkeella


ehdolla; siten etta (engl. subject to, s.t.)
vasemman puolen lausekkeesta seuraa oikean puolen lauseke
vasemman puolen lauseke on yhta pitava oikean puolen lausekkeen kanssa
on voimassa jokaisella
on olemassa
ei ole olemassa
matriisin A transpoosi

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

Tehtavan ratkaisu: x = y = L/4.

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

missa X Rn sisaltaa muotoa ai xi bi i olevia rajoituksia ja f , gi ja


hi mahdollisesti epalineaarisia funktioita Rn R.
Epalineaarisen tehtavan erikoistapauksena on konveksi optimointitehtava,
jossa f ja gi :t ovat konvekseja ja hi :t lineaarisia.
3

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.

Optimointitehtavat ratkaistaan numeerisesti iteroimalla


xk+1 = f (xk , xk1 , . . .).
Historiallisista syista tiettyja numeerisia ratkaisumenetelmia kutsutaan ohjelmoinniksi. Lineaarisella ohjelmoinnilla tarkoitettiin alunperin lineaarisen
optimoinnin simplex-menetelmaa. Nykyaan lineaarinen ohjelmointi ja lineaarinen optimointi ovat synonyymeja. Dynaamisella ohjelmoinnilla tarkoitetaan dynaamisen optimointitehtavan ratkaisemista rekursiolla siten, etta
jokaisessa vaiheessa ns. Bellmannin optimaalisuusperiaate toteutuu.
Yleensa teknillistaloudellisiin jarjestelmiin liittyvat suuret optimointimallit
muodostetaan yhdessa OR-asiantuntijan ja asiakkaan valisena vuorovaikutteisena prosessina (OR := Operations Research = Operaatiotutkimus).
Optimointimallia, mutta myos muita matemaattisia malleja, muodostettaessa on hyva pitaa mielessa ainakin seuraavat mallinrakennuksen vaiheet:
(1)
(2)
(3)
(4)
(5)

Tehtavan sanallinen maarittely


Mallin muodostaminen matematiikan ja laskennan kielelle
Mallin numeerinen ratkaiseminen
Validointi
Ratkaisun kayttoonotto

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

tuotto (1000 e/tonni)

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

Ei-negatiivisuusrajoitukset (nonnegativity constraints):


x1 , x 2 0
Maalitehtaan optimointimalli.
max z = 5x1 + 4x2
st.
6x1 + 4x2
x1 + 2x2
x1 + x2
x2
x1 , x 2

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

Kuva 1: Optimointitehtavan kaypien pisteiden joukko.


Kuvassa 1 on esitetty maalitehtaan optimointimallin kaypien pisteiden joukko. Kaypaan joukkoon kuuluvat ne pisteet, joissa kaikki rajoitusehdot toteutuvat.
2

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.

Kuva 2: Optimointitehtavan graafinen ratkaisu


Kuvasta 2 nahdaan, etta optimiratkaisu on pisteessa C, eli rajoitussuorien
(1) ja (2) leikkauspisteessa.


6x1 + 4x2 = 24 (1)
x1 = 3 tn

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

Kuva 3: Optimiratkaisu silloin, kun kohdefunktiota z minimoidaan.

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

Talloin tuotantotasolla x1 , x2 minimituotantomaara ylitetaan ylijaamamuuttujan s2 ilmoittamalla maaralla


x1 + x2 s2 = 2, s2 0.
Rajoittamaton muuttuja (unrestricted variable)
Jokainen muuttuja x R voidaan esittaa kahden ei-negatiivisen luvun erotuksena, esitys ei ole yksikasitteinen:
x R x = x+ x , x+ , x 0.
Esimerkiksi,
5 = x+ x , x+ = 0, x = 5;
5 = x+ x , x+ = 5, x = 0.

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

D = (2, 2), G = (6, 0)


z

=
=
=
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

1 tonnin muutos M1:ssa, alueella 20 M 1 36, aiheuttaa z:n optimiarvoon


muutoksen 750 e. Ko. alueen maaritelmassa on oleellista, etta tehtavan ratkaisu pysyy pisteessa C, eli suorien (1) ja (2) leikkauspisteessa vaikka raakaaineen M1 arvo muuttuu.

Kuva 4: Ekstreemipiste C sailyy optimina, kun z:n kulmakerroin pysyy pisteessa C leikkaavien rajoitussuorien kulmakertoimien valissa

Kuva 5: Kun raaka-aineen M1 saatavuus vaihtelee valilla 20 tn - 36 tn, liukuu


optimiratkaisu C pitkin janaa DG. Mikali M1:n saatavuus ei ole ko. valilla,
piste C (rajoitussuorien (1) ja (2) leikkauspiste) ei kuulu kaypaan joukkoon.
Resurssin M 2 = x1 + 2x2 yhden yksikon arvoksi optimipisteessa C saadaan
samaan tapaan:
y2 =

z(H) z(B)
e
z
=
= 500
M 2
M 2(H) M 2(B)
tn

Tama on voimassa alueella 4 M 2 20/3, ks. kuva 6. Sen sijaan


y3 , . . . , y6 = 0, mika tarkoittaa, etta rajoitukset (3) (6) eivat ole aktiivisia.
Esimerkiksi rajoitussuoran 3 oikea puoli voi vaihdella valilla [ 32 , ], vaikuttamatta kohdefunktion z arvoon.
Muista. Kertoimia yi kutsutaan ko. tehtavan duaalimuuttujiksi. Myohemmin osoitetaan lisaksi, etta yi on rajoitusehtoa i vastaava Lagrangen kerroin.

Kuva 6: Kun resurssi 2 vaihtelee valilla M 2, liukuu optimiratkaisu C pitkin


janaa HB.

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

rajoitettu s.e. xi 0, maaritellaan xi = x+


a x+
i xi , miss
i , xi 0.
(2) Jokainen epayhtalorajoitus (paitsi muuttujien positiivisuusrajoitukset)
muutetaan yhtalorajoitukseksi lisaamalla tarvittavat alijaama- tai ylijaamamuuttujat. Jokaisen rajoitusyhtalon oikean puolen taytyy olla positiivinen. Jos nain ei ole, yhtalo kerrotaan -1:lla.
(3) Kohdefunktiota voidaan joko maksimoida tai minimoida.
Muista: max f (x1 , . . . , xn ) = min f (x1 , . . . , xn )
Standardia LP-tehtavaa vastaavan yhtaloryhman, eli ns. simplex-taulukon,
kayvat kantaratkaisut (basic feasible solutions) vastaavat kayvan alueen ekstreemipisteita.

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.


x1 + x2 + 4x3 + 2x4 + 3x5 = 8


4x1 + 2x2 + 2x3 + x4 + 6x5 = 4

m = 2, n = 5 korkeintaan

5!
3!2!

= 10 kantaratkaisua.

Tapaus 1. Kaypa kantaratkaisu. Valitaan nollamuuttujat (x2 , x4 , x5 ).



x1 + 4x3 = 8
Yhtalot ovat
4x1 + 2x3 = 4
Ratkaisu: Yksikasitteinen x1 = 0, x3 = 2
Tapaus 2. Ei-kaypa kantaratkaisu. Nollamuuttujat: (x3 , x4 , x5 )

x1 + x2 = 8
Yhtalot ovat
4x1 + 2x2 = 4
Ratkaisu: Yksikasitteinen x1 = -6, x2 = 14
areton maara ratkaisuja. Nollamuuttujat: (x1 , x2 , x5 )
Tapaus 3. A

4x3 + 2x4 = 8
Yhtalot:
2x3 + x4 = 4
Ratkaisu: Ei yksikasitteista ratkaisua, koska yhtalot ovat lineaarisesti riippuvia.
Tapaus 4. Ei ratkaisua. Nollamuuttujat: (x1 , x3 , x4 )

x2 + 3x5 = 8
Yhtalot:
2x2 + 6x5 = 4
Ratkaisu: Ratkaisua ei ole, silla yhtalot ovat ristiriitaiset.

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

0 x + (d ca1 b)y = f ca1 e | (d ca1 b)1



1 x + a1 by = a1 e
| +(a1 b) Y 2

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)

0 x + 1 y = (d ca1 b)1 (f ca1 e)



1 x + 0 y = (ad bc)1 [de bf ]

0 x + 1 y = (ad bc)1 [ce + af ]


 

 
x
d b e
1
I
= (ad bc)
y
c a
f


a b
A=
; det A = ad bc
c d


d b
1
1
A = (det A)
c a


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

Huomaa: Kohdefunktiota, eli z-rivia, vastaa yhtalo z 5x1 4x2 = 0.


Aloituskantaratkaisu. Valitaan x1 ja x2 nollamuuttujiksi, x1 = 0, x2 = 0,
jolloin taulukosta voi suoraan lukea kayvan kantaratkaisun s1 = 24, s2 =
6, s3 = 1, s4 = 2. Geometrisesti ratkaisu vastaa origoa ja vastaava kohdefunktion z arvo on 0.
Ratkaisu ei ole optimiratkaisu, koska z:n arvoa voidaan kasvattaa liikkumalla
positiiviseen suuntaan pitkin x1 -akselia tai pitkin x2 -akselia.
Valitaan uudeksi kantamuuttujaksi, ns. tuleva muuttuja (entering variable),
x1 , koska z kasvaa jyrkimmin x1 :n suuntaan. Saanto on, etta tuleva muuttuja
on se, jolla on z-rivilla pienin negatiivinen kerroin: z 5x1 4x2 = 0 x1
on tuleva muuttuja.

Kuva 1: Simplex-iteraation eteneminen optimointitehtavassa: ABC


Kuvan 1 mukaan x1 :n arvoa voidaan kasvattaa siirtymalla pisteesta A = (0,0)
pisteeseen B = (4,0).
Algebrallisesti piste B saadaan jakamalla ratkaisusarakkeen luvut vastaavilla
x1 -sarakkeen luvuilla, jolloin saadaan rajoitussuorien ja x1 -akselin leikkauspisteiden koordinaatit.

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)

Ainoastaan pienin positiivinen suhde vastaa kaypaa pistetta, eli pistetta B =


(4,0). Kohdefunktion arvo kasvaa 5 4 :lla yksikolla, kun siirrytaan origosta
pisteeseen B.
Maarataan seuraavaksi kannasta lahteva muuttuja, eli ns. lahteva muuttuja
(leaving variable), joka saa arvon nolla, kun x1 :sta tulee uusi kantamuuttuja. Koska s1 = 0 vastaa pieninta positiivista suhdetta, eli pistetta B, on s1
lahteva muuttuja. Uusi kantaratkaisu on siis (x1 , s2 , s3 , s4 ) ja se lasketaan
soveltaen Gaussin eliminointia aloitustaulukkoon.
Maaritellaan pivot-sarake, pivot-rivi ja pivot-alkio ao. taulukosta:
kanta

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)

Pivot-rivi on s2 -rivi ja pivot-sarake on x2 -sarake. Pivot-alkio on 43 .


Gaussin eliminointi tuottaa nyt seuraavan taulukon:
kanta z x1 x2
z

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

Koska kummankaan nollamuuttujan s1 , s2 rivin z kerroin ei ole negatiivinen,


z:n arvoa ei enaa voida kasvattaa. Taulukko vastaa siis optimiratkaisua.
Optimiratkaisu on x1 = 3, x2 = 32 , z = 21.
Slack-muuttujien optimiarvot ovat s1 = 0, s2 = 0, s3 = 52 , s4 = 12 . Naiden
tulkinta on seuraava. Raaka-aineet M1 ja M2 kaytetaan optimituotannossa
kokonaan. Sanotaan, etta ko. resurssit ovat niukkoja (scarce resource). Sen
sijaan kysyntarajoituksissa slack-muuttujat ovat positiivisia. Sanotaan, etta
resurssi on runsas (abundant resource) naiden rajoitusten suhteen.
Huomaa. Optimointitehtavassa kohdefunktiota z maksimoitiin. Jos z:aa minimoidaan, muuttuu simplex-menetelma seuraavasti. Koska min z = max (z), uusi tuleva muuttuja on aina se nollamuuttuja, jonka z-rivin kerroin on
suurin positiivinen luku. Taulukko vastaa optimiratkaisua, kun kaikki z-rivin
kertoimet ovat 0.
Saantoja, joilla uusi tuleva- ja lahteva muuttuja valitaan, sanotaan optimaalisuus- ja kaypyysehdoiksi.
Optimaalisuusehto. Kun kohdefunktiota maksimoidaan (minimoidaan) uusi
tuleva muuttuja on se, jolla on pienin negatiivinen (suurin positiivinen) kerroin. Taulukko vastaa optimiratkaisua, kun jokainen z-rivin kerroin 0 (
0).
Kaypyysehto. Kun kohdefunktiota maksimoidaan tai minimoidaan, uusi lahteva muuttuja on se, jota vastaava suhde on pienin ei-negatiivinen luku.
Menetelm
a. Yleiskuvaus.
0. Valitaan kaypa aloituskantaratkaisu.
1. Valitaan tuleva muuttuja kayttaen optimaalisuusehtoa. Lopeta, jos tulevaa muuttujaa ei ole.
2. Valitaan lahteva muuttuja kayttaen kaypyysehtoa.
3. Lasketaan uusi kantaratkaisu Gaussin eliminointia kayttaen. Siirrytaan
vaiheeseen 1.

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

Tehtava muutetaan standardimuotoon lisaamalla ylijaamamuuttuja (surplusvariable) s1 ja alijaamamuuttuja (slack-variable) s2 :


min z = 4x1
s.e.
3x1
4x1
x1

+ x2
+ x2
+ 3x2
+ 2x2

s1

+ s2
x2 , x 1 , s 2 , s 1

=
=
=

3
6
4
0

Toisin kuin maalitehtaan optimointitehtavassa, tasta standardimuodosta ei


suoraan saada kaypaa aloituskantaratkaisua, koska ensimmaisessa ja toisessa
rajoitusyhtalossa ei ole slack-muuttujia, joiden kannasta ratkaisu loytyisi.
Nain ollen rajoitusyhtaloihin on lisattava keinotekoiset muuttujat R1 ja R2 ,
ajamaan slack-muuttujien asiaa.
Koska keinomuuttujat ovat kuitenkin alkuperaisen tehtavan kannalta lisamuuttujia, toisin kuin ali- ja ylijaamamuuttujat, jotka eivat muuta alkuperaisen tehtavan ratkaisua, halutaan varmistaa, etta niiden arvo iteroinnin
paattyessa on nolla. Tama tehdaan siten, etta kohdefunktioon lisataan (vahennetaan, kun maksimoidaan) sakkotermi M Ri kutakin keinomuuttujaa Ri
kohti. Tassa M on riittavan suuri luku, jotta sakkotermi toimii. Toisaalta
liian suuri M saattaa aiheuttaa numeerisissa laskuissa hankaluuksia, pyoristysvirheiden takia.
Nain saadaan LP-tehtava:
min z = 4x1
s.e.
3x1
4x1
x1

+ x2
+ x2
+ 3x2 s1
+ 2x2

+
+
+ s2
x1 , x 2 , s 1 ,

M R1
R1

s2 ,

M R2

R2

R1 ,

R2

=
=
=

3
6
4
0

Nyt kaypa aloituskantaratkaisu loytyy kannasta R1 , R2 , s2 , eli pisteesta


[x1 , x2 , s1 , R1 , R2 , s2 ] = [0,0,0,3,6,4]. Tehtava on kirjoitettu alla olevaan simplextaulukkoon. z-sarake on jatetty pois taulukosta, koska sen arvot eivat muutu
iteraatioissa.
kanta x1
z
R1
R2
s2

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

Taulukon z-rivin ratkaisu-sarakkeen mukaan kohdefunktion arvo pisteessa


[0,0,0,3,6,4] on 0. Sijoittamalla muuttujien arvot kohdefunktioon huomataan
kuitenkin, etta z:n oikea arvo pisteessa on 9M. Tama epajohdonmukaisuus
johtuu siita, etta osalla kantamuuttujista on z-rivilla nollasta poikkeava kerroin. Ongelma poistuu, kun suoritetaan seuraava laskutoimitus.
Uusi z-rivi = vanha z-rivi + (M R1 -rivi + M R2 -rivi)
10

Talla operaatiolla eo. taulukko muuttuu muotoon


kanta

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

Nyt iteraatio etenee normaalin simplex-menetelman tapaan, kunnes z-rivilla


ei ole enaa positiivisia kertoimia (minimointi). On tarkeaa huomata, etta M
on suuri positiivinen luku. Nain ollen esim. eo. taulukosta tulevaksi muuttujaksi valitaan x1 , silla 4 + 7M on z-rivin kertoimista suurin positiivinen
luku. Ensimmainen iteraatio johtaa taulukkoon
kanta x1
z

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

Seuraavaan iteraatioon valitaan x2 tulevaksi ja R2 lahtevaksi muuttujaksi.


Kolmannella iteraatiokierroksella loydetaan optimi x1 = 2/5, x2 = 9/5, z =
17/5. Kuten esimerkista huomataan, keinotekoiset muuttujat poistuvat kannasta ensimmaisilla iteraatiokierroksilla. Tama johtuu siita, etta niita sakotettiin suurilla kertoimilla M kohdefunktiossa.

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

Vaihe 1. Ensimmaisessa vaiheessa rajoitusehtoihin lisataan keinotekoiset


muuttujat R1 ja R2 samoin kuin M-menetelmassa, mutta nyt minimoidaan
naiden keinotekoisten muuttujien summaa. Eli ensimmaisen vaiheen tehtava
on muotoa
min r =
s.e.
3x1 + x2
4x1 + 3x2 s1
x1 + 2x2

R1
R1

R2

+ R2
+ s2
x1 , x 2 , s 1 , s 2 , R 1 , R 2

=
=
=

3
6
4
0

Tehtavaa vastaava simplex-taulukko on


kanta x1 x2

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

Kahden normaalin simplex-iteraation jalkeen paadytaan optimiin ja seuraavaan taulukkoon.


kanta x1 x2
r

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

Koska optimissa r = 0, olemme loytaneet kayvan aloituskantaratkaisun (x1


= 3/5, x2 = 6/5, s2 = 1), ja voimme siirtya vaiheeseen 2. Mikali optimiratkaisussa patisi r > 0, tarkoittaisi se, etta alkuperaisella tehtavalla ei ole
kaypaa ratkaisua. Tasta eteenpain keinotekoisille muuttujille (R1 , R2 ) ei ole
enaa kayttoa, joten niita vastaavat sarakkeet voidaan jattaa pois seuraavista
taulukoista.
Vaihe 2. Lahdetaan siis liikkeelle vaiheessa 1 loydetysta kayvasta aloituskantaratkaisusta, mutta kohdefunktion paikalle laitetaan nyt alkuperainen
kohdefunktio z. Nain saadaan muodostettua seuraava taulukko.
kanta x1
z
x1
x2
s2

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

Luento 4: Lineaarisen teht


av
an duaali
Kasittelemme seuraavaksi lineaarisen optimoinnin duaaliteoriaa. Kuten luennossa 2 esitettiin, kohdefunktion optimiarvon herkkyys z, kun rajoitusyhtalon i, 1 i m, oikea puoli bi muuttuu maaralla bi , maariteltiin ns.
duaalimuuttujalla yi : yi := z/bi , missa bi on kyllin pieni. Maarittelemme nyt alkuperaisen LP-tehtavan, eli ns. primaali-LP:n, duaali-LP:n, jonka
ratkaisuna saadaan ko. duaalikertoimet yi .

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

missa A on m n-matriisi Aij := aij , b := [b1 , . . . , bm ]T , ja x 0


xi 0 i; 1 i m, 1 j n.
Duaali-LP

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.

Duaalin muodostamisen muistis


a
ann
ot
A on siis m n-matriisi. Merkitaan A:n riveja aTi , 1 i m, ja sarakkeita
aj , 1 j n. Muistisaannot saadaan seuraavasta taulukosta:
Primaali

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

max z = 5x1 +12x2 +4x3


max z = 5x1 +12x2 +4x3 +0x4
s.e.
x1 +2x2 +x3 10 s.e.
x1 +2x2 +x3 +x4 = 10
2x1
x2 +3x3 = 8
2x1
x2 +3x3 +0x4 = 8
x1 ,
x2 ,
x3 0
x1 ,
x2 ,
x3 ,
x4 0
Duaali
min w = 10y1 +8y2
s.e.
y1 +2y2 5
2y1 y2 12
y1 +3y2 4
y1 + 0 y2 0
y1 , y2 rajoitteeton


(y1 0, y2 rajoitteeton)

Esimerkki 2
Primaali

Standardi primaali

min z = 15x1 +12x2


s.e.
x1 +2x2
2x1 4x2
x1 ,
x2

min z = 15x1 +12x2 +0x3 +0x4


3 s.e.
x1 +2x2 x3
= 3
5
2x1 4x2
+x4 = 5
0
x1 ,
x2 ,
x3 ,
x4 0

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

Ensimmaisesta ja toisesta rajoitteesta seuraa yhtalo. Jokaista rajoitteetonta


primaalin muuttujaa vastaa aina yhtalomuotoinen duaalin rajoitus, ja painvastoin.

Primaalin ja duaalin ominaisuuksia


Ominaisuus (a)

Duaalin duaali on primaali.

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

Kun ominaisuutta (c) sovelletaan optimitaulukkoon, eli iteraation 3 muuttujiin x4 ja R, saamme:

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

Soveltamalla ominaisuutta (c) iteraation 3 x1 - ja x3 -sarakkeisiin, saamme


yhtalot:

y1 +2y2 5 = 0
y1 +3y2 4 = 3/5
Tasta saamme edelleen saman ratkaisun: y1 = 29/5 ja y2 = -2/5.
Ominaisuus (d) Jos x on primaalitehtavan (kun maksimoidaan) kaypa
piste ja y on duaalitehtavan kaypa piste, niin
cT x bT y.
Lisaksi cT x = bT y x ja y ovat optimaalisia ratkaisuja.
Ominaisuus (e) Jos si on primaalin i:nnen rajoitusehdon slack-muuttuja,
ja yi on vastaava duaalimuuttuja, niin optimissa on voimassa ns. komplementaarinen slackness-ehto: si yi = 0. Sama patee duaalin j:nnen rajoitusehdon
slack-muuttujalle vj ja primaalimuuttujalle xj : vj xj = 0.

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

kayvalle x R , y R . Yhtasuuruus voimassa vain, kun x ja y optimaalisia. Kaytetaan dimensioanalyysia yhtaloon z = w:


kok.tuotto(e) =

m
X

(resurssi i (kg)) ( ? )

i=1

yi :n dimensio on e/kg, eli yi on resurssin i yksikkoarvo optimissa.


yi :ta kutsutaan resurssin i duaali- tai varjohinnaksi (dual price, shadow
price).
Ei optimaaliselle kayvalle pisteelle z < w, eli kok.tuotto < resurssien todellinen arvo. Siis niin kauan, kun resurssia ei taysin hyodynneta, tuotto ei voi
olla optimaalinen.
LP-malli voidaan siis tulkita input-output, eli panos-tuotos mallina, missa resurssi vastaa input-muuttujaa ja tuotto output-muuttujaa. Systeemi on epastabiili niin kauan, kuin input > output. Kun input = output, niin systeemi
on stabiili.
Eo. sanasto on peraisin vuoden 1975 taloustieteen Nobelin palkinnon saajilta venalaiselta Leonid Kantorovichilta ja hollantilaiselta Tjalling C. Koopmansilta, jotka sovelsivat LP:n duaaliteoriaa kansantalouden input-output
kuvaukseen.

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)

ja vastaavasti toiselle yritykselle


2 (q1 , q2 ) := q2 (a (q1 + q2 ) c) .

(2)

Yritykset maksimoivat omaa hyotyaan, kun toisen yrityksen tuotantomaara


oletetaan ratkaistavaksi samanlaisesta tehtavasta. Lasketaan
max 1 (q1 , q2 ),

q1 Q1

missa Q1 on yrityksen 1 kaypien strategioiden joukko, esimerkiksi Q1 = [0, a].


Oletataan, etta c < a. Samalla tavalla yritykselle 2.
Eo. tehtavan valttamaton ehto on:

1 (q1 , q2 )
= a 2q1 q2 c = 0
q1
1
q1 = (a q2 c).
2
1

(3)

Vastaavasti toiselle yritykselle:

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)

Tarkastellaan seuraavaksi tehtavan ratkaisemista graafisesti. Kaava (3) antaa


parhaan vasteen (best response), eli reaktion, yritykselle 1 annetulla yrityksen
2 tuotantomaaralla; ks. kuva 1.
Reaktiosuorien, q1 = 21 (a q2 c) ja q2 = 12 (a q1 c) leikkauspiste vastaa
Nashin tasapainoratkaisua.
Seuraavaksi tarkastelemme tilannetta, missa yritykset tekevat yhteistyota.
Kilpailulainsaadanto pyrkii yleensa estamaan tallaisen yhteistyon, eli ns. kartellien muodostumisen, kovin sakoin. Nyt yritykset valitsevat tuotantomaarat
siten, etta yhteinen hyoty
1 (q1 , q2 ) + 2 (q1 , q2 ) = 12 (q1 , q2 ) = q1 (a (q1 + q2 ) c) + q2 (a (q1 + q2 ) c)
maksimoituu. Taman tehtavan ratkaisu on:

Kuva 1: Reaktiosuorat ja Nashin tasapaino

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)

Talla strategialla molempien yritysten tuotoksi saadaan (sijoitus kaavoihin


(3) ja (4))
1
1 = 2 = (a c)2 .
8
Verrattaessa tata tulosta ensimmaisen tilanteen tulokseen, kaava (6), huomataan, etta tekemalla yhteistyota voidaan saavuttaa suurempi hyoty kuin
ilman yhteistyota. Siksi kartelleja pyrkii syntymaan. Kartellien muodostuminen ei ole kuitenkaan kuluttajan kannalta edullinen, koska talloin tuotteen
hinta nousee.

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

missa pelaajalla 1 on kolme strategiaa T, M, B ja pelaajalla 2 strategiat L, C,


R. Nashin tasapaino voidaan maarittaa tulostaulukosta tarkastelemalla strategioita pareittain. Jos pelaaja 2 pelaa strategiaa L, pelaajan 1 paras vaste
on strategia T. Alleviivataan tama tulos taulukkoon. Tehdaan tama operaatio molemmille pelaajille kaikilla strategiapareilla. Jos taulukosta loytyy alkio, jonka molemmat tulokset on alleviivattu, tama strategiapari on Nashin
tasapaino. Tassa pelissa Nashin tasapainoiksi saadaan (B,R) ja (T,L).

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

Talle pelille ei loydy Nashin tasapainoa puhtailla strategioilla, Kruuna ja


Klaava. Tasapaino loytyy kuitenkin ns. sekastrategioilla. Oletetaan, etta
pelaaja 1 pelaa kruunaa todennakoisyydella p ja klaavaa 1 p ja pelaaja
2 kruunaa todennokoisyydella q ja klaavaa 1 q. Pelaaajien hyotyjen odotusarvot ovat:
E[1 ] = p [q + (1 q)] + (1 p) [q (1 q)] = 4pq + 2p + 2q 1
E[2 ] = 4pq 2p 2q + 1.
Voidaan todeta, etta strategiat, missa molemmat pelaajat pelaavat kruunaa
todennakoisyydella 0.5 ja klaavaa todennakoisyydella 0.5 on Nashin tasapaino, eli ko. strategiat toteuttavat epayhtalot (8) ja (9) hyotyjen odotusarvoille.
Puhtaat strategiat ovat sekastrategioiden erikoistapaus, toiseen strategiaan
liittyy todennakoisyys 1 ja toiseen 0.

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:

(a) Riippumattomuus yksikoista, joilla hyotyja mitataan: olkoot 1 0 ja


2 0 vakioita. Merkitaan S := {(1 u1 , 2 u2 ) | (u1 , u2 ) S}. Talloin
NB
B
F (S) = (1 uN
1 , 2 u2 ).
(b) F on symmetrinen: jos S on symmetrinen joukko suoran u2 = u1 suhB
B
teen uN
= uN
2
1 .
(c) F on riippumaton epaoleellisista vaihtoehdoista: jos S 0 S ja
F (S) S 0 F (S 0 ) = F (S).
NB
B
Nash osoitti lisaksi, etta annetulla S neuvotteluratkaisu (uN
1 , u2 ) saadaan
ratkaisemalla optimointitehtava

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

:= tuoton odotusarvo; maksimoidaan


:= tuoton varianssi; minimoidaan

Lisaksi voisi olla muitakin kriteereita, esimerkiksi:


f3

:= sijoitusajanjakson osingot; maksimoidaan

Esimerkki. Vesiston optimaalisessa (vuotuisessa) saannostelyssa kriteereina


voivat olla:
f1 := vesivoiman vuotuinen tuotto; maksimoidaan
f2 := vuotuiset saannostelykustannukset; minimoidaan
f3 := veneily- ja muu virkistyskaytto (paivaa/vuosi); maksimoidaan
f4 := kalojen kutualueet (hehtaaria); maksimoidaan
Tehtavassa esimerkiksi valtio tai kunta voisi olla paatoksentekija eo. kriteerein. Voisi myos olla, etta kutakin kriteeria vastaa ao. intressiryhma, esim.
kriteeria f3 veneilijat ja mokkeilijat, jolloin kyseessa on neljan paatoksentekijan monitavoiteoptimointitehtava.
Teht
av
a 1. Kirjoitetaan monitavoitetehtatava muotoon
max{f1 (x), . . . , fm (x)}
s.e. x X Rn ,
missa X on kaypien paatosvaihtoehtojen joukko.
Huomaa. Yleensa ei ole olemassa x X, joka maksimoisi kaikki funktiot
f1 , . . . , fm samanaikaisesti. Minkalainen optimiratkaisu edella olevalle tehtavalle olisi mielekas? Tata tutkimme seuraavassa.
Olkoon aluksi n = 2, m = 2. Alla olevat maaritelmat on helppo yleistaa
tapaukseen n, m 2.
1

Kuva 1: Kayvan alueen Pareto-optimaaliset pisteet.


Olkoon x X ja merkitaan z := [z1 , z2 ]T = [f1 (x), f2 (x)]T . Joukon X
kuvajoukko F := {(f1 (x), f2 (x)) | x X} on piirretty kuvaan 1. Otetaan
z-karkisen kartion, , jonka sivut ovat koordinaattiakselien suuntaiset, ja
joukon F leikkaus. Naissa pisteissa, paitsi z:ssa, f1 :n ja f2 :n arvot ovat joko
aidosti parempia, tai toinen aidosti parempi ja toinen vahintaan yhta hyva,
kuin z:ssa, ellei z P , jolloin ko. alue sisaltaa vain pisteen z. Oletamme
aluksi, etta joukko F on konveksi, eli F sisaltaa kaikkien pisteidensa z0
F, z00 F valisen janan, eli joukon
L = { z | z = z0 + (1 )z00 ; [0, 1]}.
Konveksisuutta kasitellaan lahemmin luennolla 12. Lisaksi oletamme, etta
joukon F reunapisteiden joukko eli reuna kuuluu joukkoon F .
Siis jos z = [f1 (x), f2 (x)]T F , z
/ P , voidaan f1 :n ja f2 :n arvoja aina
parantaa, ja toista aidosti, siirtymalla johonkin joukon F pisteeseen.
Jos sen sijaan siirrytaan pisteesta z P johonkin toiseen F :n pisteeseen, niin
aina ainakin toisen komponentin arvo aidosti huononee.
F :n pisteita z P kutsutaan tehtavan Pareto-optimaalisiksi- tai Paretotehokkaiksi pisteiksi, tai vain Pareto-pisteiksi. Vastaavat x:t, eli x:t, joille
[f1 (x), f2 (x)]T P , ovat Pareto-optimaalisia vaihtoehtoja.
Huomaa. Ajatellaan tehtavaa, missa F on kuten kuvassa 2. Pareto-pisteiden
joukko on P , kun funktioita f1 ja f2 maksimoidaan, ja P 0 silloin, kun niita
minimoidaan.
a
aritelm
a. Olkoon X Rn ja f := [f1 , . . . , fm ]T . Piste x X on ParetoM
optimaalinen, jos ei ole olemassa x X s.e. fi (x0 ) fi (x), 1 i m, ja
2

Kuva 2: Pareto-pisteet P maksimointitehtavassa ja Pareto-pisteet P 0 minimointitehtavassa.


ainakin yksi epayhtalo on aito. Kriteerivektori z F on Pareto-optimaalinen,
eli z P , jos z = [f1 (x), . . . , fm (x)]T jollakin x X, ja x on Paretooptimaalinen.
M
a
aritelm
a. Monitavoiteoptimointitehtavan ratkaisun muodostavat tehtavan Pareto-optimaaliset vaihtoehdot x X.
Maaritellaan viela Pareto-optimaalisuuden rinnalle ns. heikko Pareto-optimaalisuus.
M
a
aritelm
a. Piste x X on heikosti Pareto-optimaalinen, jos ei ole olemassa toista pistetta x X s.e. fi (x0 ) fi (x), 1 i m. Kriteerivektori z
F on heikosti Pareto-optimaalinen, jos sita vastaava kayvan joukon piste
x X on heikosti Pareto-optimaalinen.
Kuvassa 3 on esimerkki heikosti Pareto-optimaalisten kriteerivektoreiden joukosta. Huomaa, etta Pareto-optimaalisten kriteerivektoreiden joukko P on
heikosti Pareto-optimaalisten pisteiden osajoukko.
Pareto-pisteiden laskeminen
Muista: w = [w1 , w2 ]T on suoran w1 z1 + w2 z2 = vakio gradientti ja ilmaisee
funktion wT z kasvusuunnan, kuva 4.
Painokertoimia w1 , w2 > 0, w1 + w2 = 1, vastaava Pareto-piste saadaan
ratkaisemalla tehtava 2.
Huomaa. Jos w1 tai w2 = 0 ja tehtavan ratkaisu yksikasitteinen, kyseessa
on myos Pareto-piste.
3

Kuva 3: Heikosti Pareto-optimaalisten pisteiden joukko.

Kuva 4: Konveksin joukon F Pareto-pisteet. Reunimmaiset pisteet saadaan


painokertoimien (w1 , w2 ) arvoilla (1,0) ja (0,1).

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

wi = 1, ovat annettuja painokertoimia.

Menetelman yleisyytta ei heikenna se, etta painot on normeerattu siten, etta


niiden summa on yksi. Tehtava ratkaistaan sopivalla yhden funktion optimoinnin menetelmalla. Seuraavat lauseet ovat voimassa.
Lause. Olkoon x X tehtavan ratkaisu. Talloin x on heikosti Paretooptimaalinen.
Lause. Olkoon x tehtavan ratkaisu siten, etta wi > 0, 1 i m. Talloin x
on Pareto-optimaalinen.
Todistus. Vastaoletus: oletetaan, etta x ei ole Pareto-optimaalinen. Talloin on olemassa x0 X siten, etta fi (x0 ) fi (x), 1 i m, ja ainakin
yksi epayhtaloista on aito. Koska kaikilla i patee wi > 0, P
niin wi fi (x0 )
0
wi fi (x), 1 i m, ja jokin epayhtaloista on aito. Talloin m
i=1 wi fi (x ) >
P
m
a on ristiriidassa sen kanssa, etta x on painokerrointehtai=1 wi fi (x), mik
van ratkaisu. Siis x on Pareto-optimaalinen. 
Lause. Tehtavan ratkaisu on Pareto-optimaalinen, jos se on yksikasitteinen.
Lause. Olkoon F konveksi joukko, joka sisaltaa reunansa. Jos x X on
Pareto-optimaalinen,
niin talloin on olemassa painokerroinvektori w, wi
P
0, 1 i m; m
w
a x on tehtavan ratkaisu.
i=1 i = 1, siten, ett
Tavallisesti matemaatikko ratkaisee monitavoitetehtavan vuorovaikutteisesti paatoksentekijan kanssa. Talloin seuraavat lahestymistavat ovat yleisesti
kaytossa:
5

Kuva 5: Ei-konveksin joukon Pareto-pinta P1 P2 P3 . Joukon P2 pisteita


ei voida loytaa millaan painokertoimilla.
(a) Paatoksentekija valitsee painokertoimet. Esimerkiksi jos kriteeri f1 on
kaksi kertaa tarkeampi kuin f2 , niin kahden kriteerin tehtava on: max
2f1 + f2 , tai max 23 f1 + 31 f2 .
(b) Matemaatikko laskee koko P :n, josta paatoksentekija valitsee mieluisimman vaihtoehdon.

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

si 0. Muuttuja kuvaa paljonko tavoite i ylitetaan.


si :t ovat ns. poikkeamamuuttujia.
Painokertoimet kertovat tavoitteiden keskinaisen tarkeyden. Tavoitteita voidaan ylittaa ja alittaa, esimerkiksi sopivan optimoitavan funktion maaraa6

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

missa x S, S on kaypien vaihtoehtojen joukko; s+


i , si 0.

Minimoidaan poikkeamia tavoitteista tai poikkeamien painotettua summaa,


jolloin saadaan tavoiteoptimoinnin tehtava:
m
X

min
(wi+ s+
i + wi si )
i=1

s.e. eo. yhtalorajoitukset voimassa, x S; s+


i , si 0

missa wi+ , wi 0, ovat painokertoimia.


Erikoistapaus:
tavoite 1: z1 = cT1 x = b1
tavoite 2: z2 = cT2 x = b2
missa z F ja F on kuvassa 5 oleva joukko.
Tavoitepiste b = [b1 , b2 ]T on ns. utopiapiste, jota ei voi saavuttaa. Talloin
voidaan valita esimerkiksi sellainen piste z0 F , etta z0 on minimietaisyydella pisteesta b jonkin sopivan normin suhteen; so. z0 ratkaisee tehtavan
min k z b k.
zF


wi+ s+
aaksi tallaiseksi normiksi.
i + wi si voidaan tulkita er

Esimerkki. Euklidinen minimietaisyys :


p
d = min k z b k := min (z1 b1 )2 + (z2 b2 )2
zF

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)

Olkoon riippuvuussuhde sellainen, etta joko molemmat tai ei kumpikaan


vaihtoehdoista x ja y voivat tapahtua. Riippuvuussuhde voidaan mallintaa
rajoitusehdolla (2)
xy =0

(2)

Toisin sanoen tama on paatosmuuttujien valinen ekvivalenssirelaatio, x y:


jos x = 0, niin y = 0 ja jos x = 1, niin y = 1. Vastaavasti implikaatio (x y)
voidaan mallintaa rajoitusehdolla (3)
xy

(3)

Jos x = 0, niin y = 0 tai y = 1, ja jos x = 1, niin y = 1. Olkoon z


riippuvainen binaarimuuttujasta x:sta siten, etta jos x = 0 z = 0, muutoin
0 z u, u R. Tama suhde voidaan esittaa seuraavan epayhtaloryhman
avulla
z ux 0
z 0

(4)

Esitellaan nyt muutamia kokonaislukuoptimoinnin sovelluksia.

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

Rajoitteella (b) saadaan varmistettua, etta jokaisella tyontekijalla on vain


yksi pari.

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

Rajoitteella (b) varmistetaan etta asiakkaiden kysynnat tulee tyyydytettya.


Tehtaan kapasiteetin ylittyminen saadaan estettya rajoitteella (c). Se myos
kertoo sen, etta jos paikkaan j ei tule tehdasta (xj = 0), tavaravirtaus paikasta j on nolla.

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

xij > |S| 1, on joukossa S keha,

(i,j)(S)

jolloin on siis muodostunut alireitti. Ilman rajoitetta (d) ratkaisu voisi olla
kuvan 1 mukainen.

Kuva 1: Esimerkki kahdesta alireitista 9-kaupungin TSP:ssa.

Joukon peitto-, pakkaus- ja ositusteht


av
at. Huutokauppateht
av
a
Olkoon M = {1, . . . , m} ja N = {1, . . . , n}. Olkoon M1 , M2 , . . . , Mn kokoelma joukon M osajoukkoja. Jokaiselle osajoukolle Mj on liitetty kustannus,
tai arvo, cj . Joukon N osajoukko F on peite (cover) M :lle, jos
[
Mj = M .
jF

F on pakkaus (packing), jos


Mj Mk = ,

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

Kuvassa 2 on havainnollistus peitteesta, osituksesta ja pakkauksesta.


Joukon peittotehtavassa (set-covering problem, SCP) etsitaan kokonaiskustannuksen minimoiva peite F , pakkaustehtavassa (set-packing problem, SPP)
kokonaiskustannuksen maksimoiva pakkaus F ja ositustehtavassa (set-partitioning problem, SPP) kokonaiskustannuksen minimoiva (maksimoiva) ositus
F.
Olkoon aij = 1, jos i Mj , ja muuten nolla; ja xj = 1, jos j F . Maaritellaan vektorit x = (x1 , . . . , xn ), ja e = (1, . . . , 1), jonka dimensio on m, seka
matriisi A, (A)ij = aij . F on peite, pakkaus tai ositus jos ja vain jos
Ax e,

Ax e,
6

Ax = e.

Kuva 2: Peite, ositus ja pakkaus.


Huutokauppateht
av
a
Olkoon internetissa toimivalla huutokauppiaalla M tuotetta (esim. jonkin
asuinkiinteiston huonekalut). Huutokaupan periaate on seuraava: jokainen
asiakas tekee M :n osajoukosta (osajoukoista) Mj tarjouksen tietamatta toisten tekemista tarjouksista. Olkoon b(Mj ) korkein osajoukolle Mj tehdyista
tarjouksista ja N osajoukkojen Mj indeksijoukko. Keille asiakkaille huutokauppiaan kannattaa myyda tuotteet tarjouksien jalkeen, jotta voitto maksimoituisi? Tama tehtava on joukon pakkaustehtava. Olkoon aij = 1, jos
i Mj , muuten nolla; ja xj = 1, jos osajoukko Mj myydaan. Huutokauppiaan tehtava on siten:
P
max
b(Mj )xj
(a)
jeN
P
s.e.
aij xj

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

kaytettava paaoma (ME) 25

Mitka projektit tulisi toteuttaa? Maaritellaan binaarimuuttujat xj seuraavasti:


(
1, jos projekti j toteutetaan
xj =
0, jos projektia j ei toteuteta
Kylla - ei -rajoitus toteutetaan siis 0 tai 1 arvoisilla muuttujilla.
Nyt ILP-tehtava saa muodon
max z =
s.t.

20x1
5x1
x1
8x1

+ 40x2 + 20x3 + 15x4 + 30x5


+ 4x2 + 3x3 + 7x4 + 8x5
+ 7x2 + 9x3 + 4x4 + 6x5
+ 10x2 + 2x3 +
x4 + 10x5
x1 , x2 , x3 , x4 , x5 {0, 1}

25
25
25

Tama tehtava voidaan ratkaista esim. Excel in solverilla. Ratkaisuksi saadaan


x1 = x2 = x3 = x4 = 1, x5 = 0 ja kohdefunktiolle arvo z = 95 (milj. E). Eli
projektit 1-4 toteutetaan.
ILP-tehtavan ratkaisua on mielenkiintoista verrata vastaavaan jatkuvien muuttujien, 0 xj 1, j , LP-tehtavaan. Ratkaisu on tassa tapauksessa x1 =
0.5789, x2 = x3 = x4 = 1, x5 = 0.7368, ja z = 108.68. Tulos on merkitykseton, koska x1 ja x5 ovat desimaalilukuja eivatka nain ollen vastaa kylla ei kysymykseen. Jos taas koitetaan pyoristysta, saadaan xj = 1 , j , joka ei
vastaa optimiratkaisua.
Esimerkki 2 Joko - tai -rajoitus. Yritys kayttaa yhta konetta kolmen eri
8

tyotehtavan suorittamiseen. Tehtavien suoritusajat, erapaivat ja myohastymissakot on annettu taulukossa.


tyo suoritusaika (paiva)
1
2
3

erapaiva (paiva)

myohastymissakko (E/paiva)

25
22
35

19
12
34

5
20
15

Tehtavana on maarittaa toiden suorituksen aloituspaivat s.e. maksettava


myohastymissakko minimoituu.
Kaytetaan seuraavia merkintoja:
pj = tehtavan j suoritusaika
dj = tehtavan j erapaiva
Maaritellaan paatosmuuttujat:
xj = tehtavan j aloituspaiva
Tehtavassa tarvitaan kahdenlaisia rajoitusehtoja:
1. On estettava toiden yhtaaikainen suorittaminen.
2. Erapaivarajoitus.
Toita i ja j ei suoriteta yhtaaikaa, jos patee:
joko xi xj + pj , tai xj xi + pi
Matemaattisiin algoritmeihin ei tallaista joko - tai -ehtoa voi tallaisenaan
syottaa. Se on muunnettava kahdeksi aina voimassa olevaksi rajoitukseksi.
Tahan tarvitaan seuraavia apumuuttujia:
(
1, jos i suoritetaan ennen j:ta
yij =
0, jos j suoritetaan ennen i:ta
Nyt voidaan muodostaa rajoitukset
M yij + (xi xj ) pj , ja M (1 yij ) + (xj xi ) pi ,
9

missa M on riittavan suuri luku.


Nyt patee: Jos j on ennen i:ta yij = 0, joten xi xj pj ; mutta myos
M + xj xi pi , kunhan M on riittavan suuri luku.
Erapaivaa vastaava rajoitus on
xj + p j + s j = d j .
Jos sj 0, saadaan tyo valmiiksi ennen erapaivaa. Jos taas sj 0, joudutaan
sakkoa maksamaan sj :na paivana.
Muuttujanvaihdolla

sj = s+
j sj ; sj , s j 0

rajoitusehto saadaan muotoon:

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}

Valitsemalla M :n arvoksi esimerkiksi M = 1000, voidaan tehtava ratkaista


jollain kokonaislukuohjelmoinnin algoritmilla. Optimiratkaisu on x1 = 20, x2
= 0, x3 = 25, eli tyo 2 aloitetaan heti, tyo 1 paivana 20 ja tyo 3 paivana 25.
Myohastymissakkoja joudutaan talloin maksamaan 5 34e = 170e.

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+

Kuva 3: Alkuperaisen ILP-tehtavan kaypa joukko, seka LP-relaksaation LP0


optimiratkaisu.

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.

Kuva 4: LP0:sta muodostetaan relaksaatiot LP1 ja LP2 lisaamalla rajoitukset


x1 3 ja x1 4.
Valitaan sattumanvaraisesti ensin tutkittavaksi LP1. Tehtava on
12

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

Kuva 5: Algoritmin muodostama puu, kun tarkastellaan ensin aliongelmaa


LP2. Numerot laatikoiden ylla kertovat tehtavien ratkaisujarjestyksen.
ha alaraja.
Jos kaikki alitehtavat on tutkittu, on voimassa olevaa alarajaa vastaava piste
ILP-tehtavan optimi ja algoritmi paattyy. Jos alitehtavia on viela tutkimatta,
valitaan niista yksi tutkittavaksi ja siirrytaan vaiheen 2 alkuun.
Mikali loydetty ratkaisu ei toteuta kokonaislukurajoituksia, on myos kaksi
vaihtoehtoa
1. Jos ratkaisu on parempi kuin voimassa oleva alaraja, siirrytaan vaiheeseen 3.
2. Jos ratkaisu on huonompi kuin voimassa oleva alaraja, valitaan uusi
tutkimaton alitehtava ja siirrytaan vaiheen 2 alkuun. Jos kaikki alitehtavat on tutkittu, on voimassa olevaa alarajaa vastaava piste ILPtehtavan optimi ja algoritmi paattyy.
3. Valitaan yksi muuttuja xi , jonka arvo tutkittavan LP-tehtavan optimissa ei
14

ole kokonaisluku. Muodostetaan LP-tehtavasta kaksi alitehtavaa lisaamalla


tata muuttujaa koskevat rajoitukset
xi a ja xi a + 1,
missa a Z ja muuttujan xi arvolle LP-tehtavan optimissa xi patee a < xi <
a + 1. Valitaan alitehtavista toinen tutkittavaksi ja siirrytaan vaiheeseen 2.

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

Kaytamme vektorille x = (x1 , . . . , xn ) myos matriisimerkintaa:



x1


..
x = . ; xT = x1 xn ,
xn
jolloin x y = xT y .
x:n pituus eli normi:
v
u n

uX
x2i = xT x .
||x|| := t
i=1

Schwartzin epayhtalo: |x y| ||x|| ||y||.


Kolmioepayhtalo: ||x + y|| ||x|| + ||y||.
Normi maaraa metriikan, eli etaisyyden d:
v
u n
uX
d(x, y) := ||x y|| = t (xi yi )2
i=1

on x:n ja y:n valinen etaisyys.


Vektoriavaruus Rn varustettuna metriikalla d on n-ulotteinen euklidinen avaruus.

Funktion maksimi ja minimi


Olkoon f : Rn R; f (x) = f (x1 , . . . , xn ). Maaritellaan:
x on lokaali minimi, jos r > 0 s.e. f (x) f (x + h) h Rn , ||h|| < r.
x on globaali minimi, jos f (x) f (x + h) h Rn .
Vastaavasti maaritellaan lokaali- ja globaali maksimi.
Minimi- tai maksimipistetta x sanotaan myos optimipisteeksi.
Funktion arvoa f (x) optimipisteessa x sanotaan minimi- tai maksimiarvoksi,
tai optimiarvoksi.

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

Mielivaltainen kahden muuttujan neliomuoto voidaan kirjoittaa seuraavasti:



 
1
1
1
x1
[x1 x2 ]
= x21 + x1 x2 + x22
x2
2
2
2

 

 

4 6
2
Q=
=
,c=
, d = 1.

6 10
4
2
Q Rnn on
positiivisesti definiitti, jos xT Qx > 0 x Rn , x 6= 0.
positiivisesti semidefiniitti, jos xT Qx 0 x Rn .
negatiivisesti definiitti ja negatiivisesti semidefiniitti maaritellaan vastaavasti, mutta < ja merkeilla.
Huomaa Q Rnn positiivisesti definiitti Q:n kaikki ominaisarvot > 0.
Vastaavasti muille definiittisyyksille ominaisarvot ovat 0, < 0, 0.
Huomaa Q on positiiviseti- tai negatiivisesti definiitti kaanteismatriisi
Q1 .
Esimerkki Olkoon f (x) = 21 xT Qx, ja Q positiivisesti definiitti x = 0
on f :n yksikasitteinen globaali minimi. Jos Q on positiivisesti semidefiniitti
x = 0 on globaali minimi, mutta ei valttamatta yksikasitteinen.
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

Huomaa, etta Hf (x)T = Hf (x).

f1 (x)

Olkoon f: Rn Rm , f (x) = ... .


fm (x)
Funktion f Jacobin matriisi pisteessa x on

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

= f (x) + f (x)T h + 12 hT Hf (x)h,


missa x, h Rn ja z = x + h, jollekin , 0 < < 1. On likimaarinmerkinta
= tarkoittaa: vasen puoli miinus oikea puoli saadaan mielivaltaisen pieneksi, kun vain ||h|| on riittavan pieni. Tama patee, jos Hf on x:n
ymparistossa jatkuva.

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,

kun > 0 on riittavan pieni. Talloin f (x + h) < f (x), mika on ristiriita.


2
Lause Olkoon f : Rn R kahdesti differentioituva x:ssa. Talloin
(a) x on lokaali minimi f (x) = 0 ja Hf (x) on positiivisesti semidefiniitti.
(b) f (x) = 0 ja Hf (x) positiivisesti definiitti x on yksikasitteinen
lokaali minimi.
Vastaavasti lokaalille maksimille: (a) f (x) = 0 ja Hf (x) on negatiivisesti
semidefiniitti, (b) f (x) = 0 ja Hf (x) negatiivisesti definiitti.
2
Huomaa Ehdon f (x) = 0 toteuttava piste x voi olla myos ns. satulapiste,
tai k
aannepiste. Esimerkiksi f (x) = x3 , x = 0 on kaannepiste.
Esimerkki
f (x) = x1 + 2x3 + x2 x3 x21 x22 x23

f /x1 (x) = 1 2x1 = 0


f (x) = 0 f /x2 (x) = x3 2x2 = 0

f /x3 (x) = 2 + x2 2x3 = 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.

Funktion f : R2 R graafinen esitys


Funktion f vakiokayra, tai kayra, x1 x2 -tasossa on niiden pisteiden (x1 , x2 )
joukko, jotka antavat f :lle saman arvon. Siis, kun c R, joukko {(x1 , x2 )
R2 | f (x1 , x2 ) = c } on f :n arvoon c liittyva kayra.

Lause f (x) on kohtisuorassa kayran tangenttia vastaan pisteessa x, ja


osoittaa f :n noususuunnan pisteessa x.
Todistus Olkoon x ja x + h samalla f :n kayralla.

0 = f (x + h) f (x) = f (x)T h + ||h||(x, h)


h
f (x)T
+ (x, h) = 0.
||h||
Nyt h/||h|| on yksikkovektori, joka lahenee kayran tangentin suuntaista yksikkovektoria u, kun ||h|| 0. Lisaksi (x, h) 0, kun ||h|| 0. Koska
mielivaltaisen lahella u:ta on olemassa vektori h/||h||, s.e. f (x)T (h/||h||)
saadaan mielivaltaisen pieneksi, on ilmeista, etta
f (x)T u = 0.
Lisaksi vektori d := f (x) 6= 0 on f :n noususuunta pisteessa x. Tama seuraa
alla olevista lasku- ja noususuuntia koskevista tarkasteluista.
2
M
a
aritelm
a Rn :ssa vektori d on f :n laskusuunta pisteessa x, jos
> 0 s.e. f (x + d) < f (x) (0, ).
Lause f (x)T d < 0 d on f :n laskusuunta x:ssa.
Todistus
f (x + d) f (x)
= f (x)T d + ||d||(x; d) < 0

jokaisella riittavan pienella > 0. Koska f (x)T d ei riipu :sta, ja


(x; d) 0,
kun 0, niin f (x)T d < 0 f (x + d) < f (x) jokaisella riittavan
pienella luvulla , > 0.
2
Vastaavasti, f (x)T d > 0 d on f :n noususuunta, eli

> 0 s.e. f (x + d) > f (x) (0, ).


Jos f (x) 6= 0, niin d = f (x) on f :n laskusuunta pisteessa x:
f (x)T d = f (x)T f (x) = ||f (x)||2 < 0.
Samoin d = f (x) 6= 0 on noususuunta. Itse asiassa f (x) 6= 0 on f :n
jyrkimman nousun (steepest ascent) suunta pistessa x. Todistus menee seuraavasti.
Olkoon d mielivaltainen noususuunta. Valitaan ||d|| 1. Schwartzin epayhtalosta
0 < f (x)T d ||f (x)|| ||d|| = ||f (x)||.
= f (x)/||f (x)||, niin ||d||
= 1, ja f (x)T d
= ||f (x)||,
Toisaalta, jos d
T
T
joten f (x) d f (x) d jokaiselle d, jolle ||d|| 1.
f (x) f (x + d) f (x) d, jolle ||d|| 1, ja riittavan
f (x + d)
pieni.
2
Samassa mielessa f (x) on f :n jyrkimman laskun suunta pisteessa x.
Esimerkkej
a Seuraavissa kuvissa on piirretty eri funktioiden
f : R2 R
vakiokayria (contour of objective function). Esimerkiksi toisen asteen funktion kayrat ovat yleisessa tapauksessa ellipsipintoja, ks. kuva 3. Vakiokayrien
tuttu sovellus on kartoissa kaytettavat maaston korkeuskayrat, kuva 4. Numeeristen iterointien etenemista voidaan havainnollistaa vakiokayrien muodostamaan maastoon syntyvina polkuina.

x2
c1

f(x0)

c2

c3

x0

tg(x0 )

x1
Kuva 1: Funktion f kayria: c1 > c2 > c3 .

x2

f(x)

minimi
x1

Kuva 2: Funktion f (x) = 1/2(x1


a)2 + 1/2(x2 b)2 arvoon c liittyva kayra
on (a,b)-keskinen ympyra, sade 2c.

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.

Kuva 4: Kartan korkeuskayrat ovat maastonkorkeuden h(x, y) vakiokayria,


missa h:n arvoon 0 liittyva kayra esittaa merenpinnan tasoa.

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)

Olkoon (x, y) tehtavan ratkaisu. Talloin g(x, y) = 0. Ratkaistaan yhtalo


g(x, y) = 0 muuttujan y suhteen eraassa x:n ymparistossa. Tama voidaan
tehda, jos g(x, y)/y 6= 0. Merkitaan ratkaisua y(x):lla. Se on yksikasitteinen ja derivoituva (muista: luennossa 8 oletimme, etta kaikki tarkasteltavat osittaisderivaatat ovat jatkuvia; ominaisuus seuraa tasta). Talloin
g(x, y(x)) = 0 x, x:n ymparistossa, ja y(x) = y.
Nyt tehtavan minf (x, y(x)) ratkaisu on myos x.
x

d
f
f
dy
f (x, y(x)) =
(x, y) +
(x, y) (x) = 0.
dx
x
y
dx

(2)

Derivoidaan yhtaloa g(x, y(x)) = 0 puolittain x:n suhteen:


d0
g g dy
+
=
= 0 x,
x y dx
dx
x:n ymparistossa. Erityisesti
g
dy
g
(x, y) +
(x, y) (x) = 0.
x
y
dx

(3)

Maaritellaan: := (f (x, y)/y)(g(x, y)/y)1 , jolloin


f
g
(x, y) + (x, y) = 0.
y
y

(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:

Siis: Olkoon (x, y) optimointitehtavan (1) ratkaisu. Talloin on olemassa ns.


Lagrangen kerroin R s.e

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.

Lagrangen kerroin - yleinen tapaus


Olkoon nyt f : Rn R ja g : Rn Rm , m < n. Tutkitaan tehtavaa
min f (x)

g1 (x)

s.t. g(x) := ... = 0


gm (x)

Merkitaan tehtavan minimia x := (x1 , . . . , xn ). Talloin on voimassa


Lause Lagrangen valttamattomat ehdot optimille. Olkoon x minimi. Talloin
Lagrangen kerroin Rm s.e.
(
P
f (x) + m
i=1 i gi (x) = 0
g(x) = 0

(6)
2

Huomaa Yhtaloryhmassa (6) on n + m epalineaarista algebrallista yhtaloa,


joista tuntemattomat x ja voidaan ratkaista.
Huomaa Ns. Lagrangen funktion L(x, ) := f (x) + T g(x) avulla tehtavan
valttamattomat ehdot voidaan kirjoittaa muodossa:
(
L(x, ) = 0
g(x)
=0
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

Merkitaan fe(z) := f (y(z), z). Lisaksi gradienttia z:n suhteen merkitaan




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

Toisaalta: g(y(z), z) = 0, z:n ymparistossa, joten derivoimalla saadaan


Jgy (y, z) Jyz (z) + Jgz (y, z) = 0.
| {z }
| {z } | {z }
mm

m(nm)

m(nm)

Huomaa Edella 0 on m (n m) nollamatriisi.

(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)

jolloin yhtaloista (7),(8) ja (9) saadaan yhtalot:

z f (y, z) + Jgz (y, z)T = 0


y f (y, z) + Jgy (y, z)T = 0

(10)
(11)

Yhtalot (10) ja (11) vastaavat yhtaloa


f (x) + Jgx (x)T = 0,
joka edelleen vastaa yhtaloa (6).
2
Liite p
a
attyy

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)

missa on minimointitehtavan Lagrangen kerroin, kun b = b, kuten seuraavassa liitteessa osoitetaan.


Liite alkaa Olkoon tehtavan
min f (x)
s.t. g(x) = b

(14)

ratkaisu x ja Lagrangen kerroin . Talloin

f (x) + Jgx (x)T = 0


g(x) = b

(15)

Soveltamalla derivoinnin ketjusaantoa funktioihin f (x(b)), g(x(b)), ja yhtaloon g(x(b)) = b, saadaan

b f (x(b))|b=b = Jxb (b)T f (x)


b g(x(b))|b=b = Jxb (b)T Jgx (x)T
= Jbb (b) = I,

(16)
(17)
(18)

missa I on m m yksikkomatriisi ja x(b) = x. Kun yhtalo (15) kerrotaan


vasemmalta matriisilla Jxb (b)T , ja kaytetaan edellisia yhtaloita, paadytaan
yhtaloon (13).
2
Liite p
a
attyy

Herkkyysyhtalot (12) ja (13) voidaan nyt kirjoittaa muodossa


T
f (x(b + b)) f (x(b))
b
=
Pm
= i=1 i bi ,

(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)

Olkoon tehtavalla minimi x, s.e. x > 0.


Merkitaan
L(x, ) = cT x + T (Ax b).
Lagrangen valttamattomat ehdot minimille ovat:


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)

missa f, gi ja hi ovat differentioituvia.


Olkoon

L(x, u, v) := f (x) +

m
X
i=1

ui gi (x) +

l
X

vi hi (x)

i=1

tehtavan Lagrangen funktio, missa u := [u1 , . . . , um ]T ja v := [v1 , . . . , vl ]T


ovat epayhtalo- ja yhtalorajoituksia vastaavat Lagrangen kertoimet.
Lause Karush-Kuhn-Tuckerin valttamattomat ehdot optimille; KKT-ehdot.
Olkoon x lokaali minimi skalaarit ui , 1 i m, ja vi , 1 i l, s.e.
L(x, u, v)
ui gi (x)
ui
hi (x)

=
=

0
0 1im
0 1im
0 1il

Lisaksi lauseen oletuksissa vaaditaan, etta vektorit


gi (x), 1 i m, hi (x), 1 i l,
ovat lineaarisesti riippumattomia.
2
Ylla on n + m + l epalineaarista algebrallista yhtaloa, ja n + m + l tuntematonta, x ja Lagrangen kertoimet u ja v. Yhtaloryhman suoran ratkaisun
tekee vaikeaksi ehto ui 0 i.
Esimerkki
min 12 xT Qx + cT x
s.t. Ax = b,
missa Q on positiivisesti definiitti, jolloin Q1 on olemassa, ja symmetrinen.
Matriisin A Rmn vaakavektorit ovat lineaarisesti riippumattomia, jolloin
[AQ1 AT ]1 on olemassa. Nyt
1
L(x, v) = xT Qx + cT x + vT (Ax b)
2
ja optimin valttamattomat ehdot ovat:


L(x, v) = Qx + AT v + c = 0
Ax b = 0

Ratkaistaan ensimmaisesta yhtalosta x:


x = Q1 AT v Q1 c
Toisesta yhtalosta saadaan:

AQ1 AT v AQ1 c b = 0
v = [AQ1 AT ]1 [AQ1 c + b]

Sijoitetaan lopuksi x:n lausekkeeseen, jolloin

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)

=
=
=
=
=

[2x1 6, 2x2 4]T


[2x1 , 2x2 ]T
[1, 0]T
[0, 1]T
[1, 2]T

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)

Kuva 1: Kuva esimerkin tilanteesta.

Huomaa Jos jokin gi (x) < 0 optimipisteessa x niin ui = 0.


Kokeillaan. Olkoon g2 (x), g3 (x) < 0. Talloin u2 , u3 = 0.

u1 6= 0, u4 6= 0

x21 +x22 5 = 0
x1 +2x2 4 = 0

joten x = (2, 1) on kandidaattiratkaisu. Sijoitetaan x yhtaloon (23):





 
 

2
4
1
u1 =
+ u1
+ u4
=0
u4 =
2
2
2

1
3
2
3

Siis ui 0 i ja KKT-ehdot toteutuvat.


2

10

KKT-ehdot toteuttava piste on hyva kandidaatti optimipisteeksi. Seuraava


lause takaa, etta kyseessa todella on optimipiste.
Lause KKT riittavat ehdot. Olkoon tehtava muotoa
min f (x)
s.t. gi (x) 0,
1im
Ax b = 0, A Rln
x Rn ,
Oletetaan, etta x toteuttaa KKT-ehdot. Jos Hf (x) positiivisesti definiitti
ja Hgi (x) i ovat positiivisesti semidefiniitteja matriiseja, kyseessa on lokaali
minimi.
2
Esimerkki
Edella





2 0
2 0
g1
H =
, H =
0 2
0 2
f

ja Hg2 = Hg3 = Hg4 = 0 ovat kaikki positiivisesti semidefiniitteja matriiseja,


ja Hf lisaksi positiivisesti definiitti, joten x = (2, 1) on lokaali minimi.
2

11

Luento 10: Optimointiteht


avien numeerinen ratkaiseminen; optimointi ilman rajoitusehtoja
Seuraavassa esitetaan optimointitehtavien numeerisia ratkaisumenetelmia, eli
optimointialgoritmeja, keittokirjamaisesti. Jos ratkaisumenetelmassa ratkaistaan tehtavan valttamattomia ehtoja, esim. Lagrangen valttamattomia ehtoja, jolloin esiintyy vain yhtalorajoituksia, puhumme ep
asuorista ratkaisumenetelmista. Jos taas optimipistetta etsitaan suoraan, esim. lasku- tai
noususuuntia kayttaen, kyseessa on suora menetelm
a. Talloin voimme kayttaa luennoilla 8 ja 9 esitettya teoriaa, esim. valttamattomia ja riittavia ehtoja, menetelmien suppenemistarkasteluissa, jotka tassa sivuutetaan.
Monet mutkikkaammat optimointialgoritmit ovat yhdistelmia yksinkertaisemmista perusalgoritmeista. Esimerkiksi, melkein kaikissa n-ulotteisissa algoritmeissa on osana jonkinlainen 1-ulotteinen haku, jolla maarataan perusmenetelman optimaalinen askelpituus.

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.

Kun etsitaan funktion f minimia valilla [a , b ], ko. valia kutsutaan ep


avarmuusvaliksi, se on siis vali, missa f :n minimi x taman hetkisen tiedon nojalla
on. Luku l = b a on epavarmuusvalin pituus.
y

f
11
00
00
11

11
00
00
11

Kuva 1: Kvasikonveksi funktio


Lause Olkoon f aidosti kvasikonveksi ja , [a , b ], < . Lasketaan
f () ja f (). Talloin:
(a) f () > f () uusi epavarmuusvali on [ , b ].
(b) f () f () uusi epavarmuusvali on [a , ].
Todistus Ks. Kuva 2.
2
11f()
00

1
0f( )
0f()
1

00f( )
11

000
111
000
111
000
111

000
111
000
111
000
111

uusi epvarmuusvli

Kuva 2: Epavarmuusvalin kutistuminen


Esitetaan puolitusmenetelma numeerisen algoritmin muodossa, jonka voi koodata esimerkiksi Matlabilla.
2

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

2. f (x1 ) > f (x2 ) a = x1 , b = b


f (x1 ) f (x2 ) a = a, b = x2 .
Mene kohtaan 1.
2
Kultaisen leikkauksen menetelm
a (golden section method)
Kultaisen leikkauksen suhde on:
a/(a + b) = b/a =
2 + 1 = 0
0.618
Valitaan iteroinnilla k:
k = ak + (1 )(bk ak )
k = ak + (bk ak ),
missa [ak , bk ] on k:s vali, ja k ja k uudet laskentapisteet.
Patee: bk+1 ak+1 = (bk ak ). Siis: kun k = 1 lasketaan f (1 ), f (1 ),
ja kun k > 1 lasketaan vain 1 arvo: joko f (k ) tai f (k ), silla on joko
k+1 = k tai k+1 = k .

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

Kuva 3: Kultaisen leikkauksen menetelma

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 +

Lisaksi joko k+1 = k tai k+1 = k .


Toisin kuin kultaisen leikkauksen menetelmassa, f :n arvon laskujen lukumaara n pitaa kiinnittaa etukateen. Jos esim. halutaan tarkkuus l, pitaa n valita
s.e. (b1 a1 )/Fn < l.

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:

0 = q (xk+1 ) = f (xk ) + f (xk )(xk+1 xk )


f (xk )
xk+1 = xk
f (xk )

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 )

Newtonin iterointi dierenssiapproksimaatiolla


Eo. iterointikaavoissa voidaan kayttaa erilaisia dierenssiarvioita:
f (x + h) f (x)
f (x)
, h > 0 ja pieni
=
h
g(x + h) g(x)
f (x)
; g := f (x)
=
h
f (x + h) + f (x h) 2f (x)
f (x)
=
h2
Sekanttimenetelm
a
Sekanttimenetelmassa iteraatiossa k+1 Newtonin menetelman [f (xk )]1 korvataan arviolla, joka lasketaan xk :n ja xk1 :n avulla; ks. myos n-ulotteinen
sekanttimenetelma myohemmin:
[

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

missa L = { | 0} tai { | a b} tai joku muu sopiva joukko.


Huomaa () := f (xk + dk ) () = f (xk + dk )T dk , ja () = 0,
jos minimi L:n sisapisteessa.
Gradienttimenetelm
a (steepest descent method)
xk+1 = xk k f (xk ) ja k on optimaalinen askelpituus. Muista luennon 8
lopusta, etta suunta dk = f (xk ) on lokaalissa mielessa jyrkimman laskun
suunta.
Siis:
0. Valitaan > 0, x1 , k = 1
1. dk := f (xk ), k ratkaisee tehtavan min f (xk + dk )
0

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 .

Yleisimmin kaytetyt sekanttimenetelmat ovat DFP- ja BFGS-menetelmat,


jotka kuuluvat ns. Broydenin perheeseen. (DFP = Davidon-Fletcher-Powell;
BFGS = Broyden-Fletcher-Goldfarb-Shanno)
Esimerkki Davidon-Fletcher-Powell-menetelma.
Valitaan B1 = I ja
Bk+1 = Bk +

Bk sTk sk Bk
yk ykT

, k = 1, 2, . . .
ykT sk
sTk Bk sk

yk := xk+1 xk , sk := f (xk+1 ) f (xk )


2
Konjugaattigradienttimenetelm
a (Fletcher-Reevesin menetelm
a)
Olkoon H Rnn positiivisesti deniitti. Vektorit d1 , . . . , dn ovat H-konjugaatteja,
jos dTi H dj = 0 , i = j. H positiivisesti deniitti, d1 , . . . , dn lineaarisesti
riippumattomia.
Minimoitaessa 2. asteen funktiota f (x) = 21 xT H xk + cT x menetelmalla
xk+1 = xk + k dk , missa dk :t ovat H-konjugaatteja minimi loytyy viimeistaan n:nnella askeleella riippumatta aloituspisteesta x1 .
Fletcher-Reevesin menetelmassa valitaan suunnat dk seuraavasti:

d1 := f (x1 ) (= H x1 c, jos f on yo. muotoa)


dk := f (xk ) + k dk1
||f (xk )||2
k :=
, k = 2, 3, . . . , n
||f (xk1 )||2
Jos jatketaan (esim. numeerinen viivahaku ei koskaan ole tarkka minimin
laskeminen voi vieda yli n askelta; tai jos minimoidaan ei-kvadraattista funktiota eo. menetelmalla), aloitetaan alusta, ja valitaan dn+1 := f (xn+1 ),
jne . . .
Myos DFP-menetelma tuottaa (minimoitaessa eo. 2. asteen funktiota) Hkonjugaatteja suuntia.

Luento 11: Rajoitusehdot. Ulkopistemenetelm


at ja sis
apistemenetelm
at
Lagrangen v
altt
am
att
omien ehtojen ratkaiseminen Newtonin menetelm
all
a
Jos tehtavassa on vain yhtalorajoituksia, voidaan minimipistekandidaatteja etsia ratkaisemalla tehtavan valttamattomat ehdot numeerisesti. Olkoon
tehtava:

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

missa g := [g1 , . . . , gm ]T . Yhteensa n + m yhtaloa, joista tuntemattomat


x1 , . . . , xn , 1 , . . . , m voidaan ratkaista. Yhtalot (1) ja (2) muodostavat epalineaarisen yhtaloryhman, jonka kirjoitamme lyhyesti muodossa:
F(x, ) = 0,

(3)

missa F : Rn Rm Rn Rm ja 0 on Rn+m :n nollavektori. F:n komponentit


ovat siis (1):n ja (2):n n + m yhtaloa.
Voimme nyt kirjoittaa Newtonin menetelman yhtalon (3) ratkaisemiseksi;
vastaa 1-dimensioista Newtonin menetelmaa, ks. luento 10, sivu 5.
Olkoon JF
a (x, ); derivointi seka x:n
x, (x, ) F:n Jacobin matriisi pisteess
etta :n suhteen. Kysymyksessa on (n+m) (n+m) matriisi. Oletetaan, etta

1
kaanteismatriisi on olemassa; merkitaan JF
. Newtonin menetelma
x, (x, )
yhtalon (3) ratkaisemiseksi on:


  

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

f (x) min f (x) + h2 (x)


x

h(x) = 0
min

f (x) min f (x) + [max{0 , g(x)}]2


x

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.

Olkoon tehtavassa rajoitukset


gi (x) 0 , 1 i m ; hi (x) = 0 , 1 i l
Talloin sopiva sakkofunktio on

(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

missa X on tehtavan maarittelyjoukko. Esimerkiksi X = Rn , tai X voi sisaltaa


rajoitusehtoja, joita ei ole sisallytetty sakkofunktioon; esim.
X = {x Rn | 0 x L}.
Esimerkki
min x
s.t. x + 2 0
xR
Tehtavan minimi on x = 2, ja
(
0
(x) := [max{0 , g(x)}]2 =
( x + 2)2

, x2
, x<2

Tehtavan min f (x) + (x) ratkaisu on x() := 2 1/2, joka x, kun


xR
.
3

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

Lisaksi x() x ja (x()) 0, kun .


2
Sakkofunktiomenetelm
a
0. Valitaan x1 X, > 0, 1 > 0, > 1, k = 1, mene kohtaan 1.
1. Ratkaistaan min f (x) + k (x) aloituspisteena xk . Olkoon minimi
xX

xk+1 , mene kohtaan 2.


2. k (xk+1 ) < lopeta; muuten k+1 = k , k k + 1, mene
kohtaan 1.
2

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

ja ns. taydennetty (augmented) Lagrangen funktio

L(x, v) := f (x) +

m
X
i=1

vi hi (x) +

l
X

h2i (x) + termeja epayhtalorajoituksille;

i=1

vi on Lagrangen kertoimen arvio, jota laskun kuluessa sopivasti paivitetaan.


2
Liite p
a
attyy

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.

Olkoon B : G R estefunktio: B jatkuva, B(x) 0 G:ssa, ja B(x) ,


kun x G:n reunaa. Esimerkkeja sopivista B:ista:

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

2. k B(xk+1 ) < lopeta. Jos ei k+1 = k , k k + 1, mene


kohtaan 1.
2

Primal-Dual Path-Following Algorithm for LP: Sis


apistemenetelm
a LP:lle
Lineaarinen optimointitehtava standardimuodossa:
min cT x
s.t. Ax = b
x0

Olkoon x 0 tehtavan ratkaisu. Talloin on olemassa Lagrangen kertoimet


u ja v s.e.

Ax b = 0

(4)

AT v + u c = 0

(5)

u x = 0, u 0

(6)

Toisaalta, jos yhtaloilla (4)-(6) on ratkaisu (x, u, v) s.e. x 0 ja u 0,


toteutuvat tehtavan KKT-ehdot, silla yhtalosta (6) seuraa ui xi = 0 i. Kyseessa on talloin myos LP:n ratkaisu, silla KKT-ehdot ovat tassa tapauksessa
myos riittavat.
Tutkitaan sitten estefunktiotehtavaa
P
min cT x nj=1 ln xj
s.t. Ax = b
x Rn , x > 0
Taman KKT-ehdot ovat : x > 0 ja v s.e.


Ax b = 0
AT v
= c [1/x1 , . . . , 1/xn ]T

(7)

Merkitaan u := [1/x1 , . . . , 1/xn ]T . Talloin yhtalosta (7) saadaan:

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.

Lause Oletetaan, etta yhtaloilla (8) ja (9) on olemassa ratkaisu


x0 > 0, u0 > 0, v0 .
Talloin yhtaloilla (8)-(10) on annetulla > 0 tasmalleen yksi ratkaisu
w() := (x(), u(), v()). Lisaksi
w() (x, u, v) ; uT ()x() 0, kun 0+ .
2
Esimerkki Kvadraattisen ohjelmoinnin tehtava (quadratic programming
problem)
min 12 xT Qx + cT x
s.t. Ax = b
x0
voidaan ratkoa saman tyyppisella sisapistealgoritmilla.
2
Liite alkaa

Toistettu kvadraattinen optimointi (Sequential Quadratic Programming = SQP)


min f (x)
s.t. gi (x) 0 ; 1 i m
hi (x) = 0 ; 1 i l
Huomaa Jos ylla on vain yhtalorajoituksia, voidaan KKT-ehtoihin soveltaa
suoraan Newtonin menetelmaa sekanttiapproksimaatiolla tuntemattomien x
ja v ratkaisemiseksi. Parempi tapa on kayttaa suoraan ao. SQP:ta talloinkin.

Menetelmassa epalineaarisen tehtavan Lagrangen funktiota


L(x, u, v) = f (x) + uT g(x) + vT h(x)
arvioidaan iteratiivisesti kvadraattisella mallilla. Ideana on muodostaa jono
kvadraattisia tehtavia s.e. xk , uk , vk alkuperaisen tehtavan ratkaisua, kun
k . Askeleella k ratkaistaan suunnanhakutehtava

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

Luento 12: Duaaliteht


av
a. Tarkennuksia Lagrangen kertoimen tulkintaan. Hajautettu optimointi.
Konveksisuus
Muista x + d, 0, on pisteesta x Rn alkava puolisuora, joka on
vektorin d suuntainen. Samoin x2 + (x1 x2 ), 0, on pisteesta x2
alkava, vektorin x1 x2 suuntainen puolisuora.
M
a
aritelmi
a
Pisteiden x1 ja x2 valinen jana on joukko {x1 + (1 )x2 | [0, 1]}, jota
lyhyesti merkitaan x1 + (1 )x2 , [0, 1]. Huomaa, etta = 1 ja = 0
vastaavat janan paatepisteita x1 ja x2 , vastaavasti.
Rn :n joukko S = on konveksi, jos
x1 , x2 S : x1 + (1 )x2 S [0, 1]
Kuvan 1 ensimmainen joukko on konveksi ja toinen ei.

Kuva 1: Konveksi ja ei-konveksi joukko.


Olkoon S Rn , S = , konveksi ja f : S R. Funktio f on konveksi, jos
x1 , x2 S:
f (x1 + (1 )x2 ) f (x1 ) + (1 )f (x2 ) [0, 1]
f : S R on konkaavi, jos f on konveksi.
1

f( x 1 ) + (1) f( x 2)

f( x 1 + (1) x 2 )

x1

x2

x 1 + (1) x 2

Kuva 2: Konveksi funktio.

Lagrangen duaalisuus geometrisesti

Kuva 3: Lagrangen duaalisuus.

Olkoon S Rn suljettu ja konveksi joukko ja y


/ S. Pisteen y et
aisyys
joukosta S on luku > 0,
:= min ||y x|| = ||y x||
xS

(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 :

||yx|| = max {min ||yx|| | H on y:n ja x :n valista kulkeva taso}. (2)


xH

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 X Rn konveksi, f ja gi :t konvekseja funktioita X R, ja


A Rln , b Rl vakioita.

Maaritellaan nyt funktio : Rm+l R seuraavasti:


(u, v) := min {f (x) + uT g(x) + vT (Ax b)},
xX

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 {f (x) | g(x) 0, Ax b = 0, x X}


= max {(u, v) | u Rm , v Rl , u 0}.
Olkoot x, ja u, v vastaavat minimi- ja maksimipisteet, eli f (x) = (u, v).
Talloin (b)
u T g(x) = 0
ja x minimoi Lagrangen funktion
L(x, u, v) := f (x) + u T g(x) + v T (Ax b)
yli x X.
(c) x, u, v toteuttaa tehtavan P KKT-ehdot.
4

Esimerkki LP:n duaali


P:

min cT x
s.t. Ax = b
x0

D:

max (v)
s.t. v Rm

missa, nyt X = {x Rn | x 0},

(v) = min {cT x + vT (Ax b) | x X}


[
]
= min (cT + vT A)x vT b
xX
{
vT b , cT + vT A 0
=

, 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.

Resurssinjako, hajautettu optimointi, ja Arrowin hintakoordinointi


Tutkitaan seuraavaksi erasta taloustieteessa keskeista resurssinjakoon liittyvaa optimointitehtavaa, missa Lagrangen kerrointa sopivasti paivittamalla
paadytaan optimiin.

Resurssinjako Resurssi, maara x0 , on jaettava N:n agentin kesken, s.e.


agenttien kokonaishyoty maksimoituu. i:nnen agentin hyoty jaolle xi on gi (xi ).
Tehtava on siis:

max

s.t.

i=1
N

gi (xi )
xi = x0 , xi 0 i

i=1

Ratkaisu Jatetaan ehto xi 0 pois, koska se on asian kannalta epaoleellinen;


osoittautuu, etta xi > 0 i, kun gi :t jarkevia hyotyfunktioita. Tehtavan
valttamattomat ehdot ovat:
{
gi (xi ) =
N
i=1 xi = x0

, 1iN

Ylla on N +1 yhtaloa ja N +1 tuntematonta optimiratkaisun xi , 1 i N,


loytamiseksi. Oletetaan, etta gi on aidosti kasvava i, joten
gi (xi ) = > 0.
Tutkitaan sitten tehtavaa, missa resurssille on asetettu hinta p = ja
kysytaan, paljonko resurssia agentti i ottaa ko. hinnalla. Vastaus saadaan
ratkaisemalla

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 !

Paljonko resurssia otat,


jos hinta on p

xi (p)

x0

xi (p)

p
YKSIKKO 1:

YKSIKKO i:

...

max g i(x)px
x

YKSIKKO N:

...

vastaus: xi(p)

Paivityskaava p:lle on esimerkiksi sekanttimenetelma:


[

pk+1

]1
s(pk ) s(pk1 )
= pk
s(pk )
pk pk1
N

s(pk ) :=
xi (pk ) x0
i=1

Kun muistetaan, etta p on on alkuperaisen tehtavan Lagrangen kerroin,


ylla oleva paivityskaava on tehtavan Lagrangen kertoimen paivityskaava.

Luento 13: Geneettiset Algoritmit


Geneettiset algoritmit ovat luonnon evoluutiomekanismeja imitoivia heuristisia optimointimenetelmia. Ne soveltuvat tehtaviin, joissa ratkaisuavaruus
on hyvin suuri (esim. suuret kombinatooriset tehtavat) ja joissa likimaarainenkin optimi riittaa ratkaisuksi. Tietokoneiden laskentakapasiteetin nopean
kasvun myota geneettisten algoritmien sovellusmahdollisuudet ovat laajentuneet suuresti viimeisen vuosikymmenen aikana.
Geneettisissa algoritmeissa optimointitehtavan mahdolliset ratkaisut esitetaan
merkkijonoina, jotka vastaavat kromosomeja. Merkkijonojen alkiot ovat binaariarvoisia, mutta tietyissa tapauksissa merkkijonojen alkiot voivat saada useampiakin arvoja. Mahdollisista merkkijonoista muodostetaan aluksi satunnainen alkupopulaatio. Tasta alkupopulaatiosta aletaan kehittaa uusia sukupolvia
imitoimalla luonnonvalintaa. Tama tarkoittaa sita, etta uusi sukupolvi muodostuu edellisen sukupolven parhaiden yksiloiden jalkelaisista. Jalkelaisten
syntymista imitoidaan ns. geneettisill
a operaattoreilla, jota esitellaan kappaleessa . Uusia sukupolvia luodaan niin kauan, kunnes on loydetty riittavan
hyva ratkaisu.
Geneettiset algoritmit voidaan luokitella heuristisiin optimointimenetelmiin.
Toinen esimerkki heuristisesta optimointimenetelmasta on simuloitu j
aa
hdytys [10], joko tietyilta osin muistuttaa geneettista algoritmia. Siina ratkaisua
muutetaan satunnaisesti geneettisissa algoritmeissakin kaytettavilla mutaatioilla (ks. kappale ), kunnes on loydetty riittavan hyva ratkaisu. Erona
nailla menetelmilla on se, etta simuloidussa jaahdytyksessa kehitetaan ainoastaan yhta ratkaisua, kun genettisissa algoritmeissa kehityksen kohteena
on ratkaisupopulaatio. Kolmas esimerkki heuristisista menetelmista on ant
colony optimization, joka imitoi muurahaisten kaytosta reitinvalinnassa (ks.
esim. [6]).
Useat tutkijat julkaisivat evoluution numeerista simulointia kasittelevia papereita 1950-luvulta lahtien (ks. esim. [4]). Geneettisten algoritmien kayton

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.

Geneettisen algoritmin rakenne


Geneettisissa algoritmeissa ratkaisuavaruuden alkiot muutetaan geneettiseksi koodiksi (esim. jonoksi bitteja), siten etta jokaista mahdollista ratkaisua
vastaa tietty merkkijono. Merkkijonoja kutsutaan kromosomeiksi ja kromosomien alkioita geeneiksi, geenien mahdollisia arvoja kutsutaan alleeleiksi.
Taman jalkeen luodaan halutun kokoinen alkupopulaatio, jonka kromosomit
valitaan sattumanvaraisesti. Jokainen populaation kromosomi arvioidaan hyvyysfunktion avulla, jonka jalkeen muodostetaan uusi populaatio geneettisill
a
operaattoreilla, jotka imitoivat evoluution ja perinnollisyyden periaatteita.
Tama prosessi imitoi luonnonvalintaa, jossa hyodylliset ominaisuudet siirtyvat seuraaviin sukupolviin ja huonot ominaisuudet katoavat. Geneettisen
algoritmin iteraatioita kutsutaan sukupolviksi. Uusia sukupolvia muodostetaan, kunnes ratkaisu suppenee. Geneettisissa algoritmeissa populaation koko
sailyy vakiona koko iteraation ajan.
Tyypillinen geneettinen algoritmi muodostuu seuraavista vaiheista:
1. Muodosta ratkaisuavaruuden kromosomeista alkupopulaatio sattumanvaraisesti.
2

2. Arvioi kromosomit hyvyysfunktion avulla.


3. Muodosta uusi populaatio soveltamalla geneettisia operaattoreita.
4. Toista vaiheita 2 ja 3, kunnes lopetusehto toteutuu.
Yleensa geneettisia algoritmeja iteroidaan ennalta maaratty maara sukupolvia
ja lopetusehto on naissa tilanteissa iteraatiokierrosten tayttyminen. Lopetusehto voidaan kuitenkin tarvittaessa maarittaa myos muilla tavoin. Voidaan
asettaa hyvyysfunktiolle kynnysarvo, jonka ylittyessa iterointi lopetetaan.
Toisaalta voidaan myos tarkastella niiden iteraatiokierrosten lukumaaraa,
joiden aikana paras ratkaisu ei ole parantunut. Joissain tapauksissa tarkastellaan myos populaatioiden monimuotoisuutta ja lopetetaan iterointi, kun populaatio on riittavan homogeeninen.
Avain toimivaan algoritmiin on ratkaisujen kromosomiesityksen ja kaytettavien geneettisten operaattoreiden huolellisessa valinnassa.

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

fi kertoo kunkin kromosomin todennakoisyyden tulla valituksi,

kun seuraavaan sukupolveen valitaan uusi kromosomi.


4

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

Kaikille uuteen populaatioon valituille kromosomeille ei tehda mutaatioa,


vaan mutaation todennakoisyyden maaraa parametri mutaatiotodenn
ak
oisyys
pm .

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

c) Jos pm > rand[0, 1], sovella mutaatio-operaattoria naihin alkioihin.


d) Lisaa saadut kaksi alkiota uuteen populaatioon.
Merkinta rand[0, 1] tuottaa valille [0,1] tasajakautuneen satunnaisluvun.

Esimerkki jatkuvan funktion maksimoinnista


Alla esitettava esimerkki havainnollistaa, kuinka monihuippuisen funktion
optimointitehtava voidaan ratkaista geneettisella algoritmilla. Esimerkki, laskut
ja tulokset on esitetty kirjassa [1].
Olkoon tehtavana maksimoida funktiota
f (x) = 0.4 + sinc(4x) + 1.1sinc(4x+2) + 0.8sinc(6x2) + 0.7sinc(6x4)
valilla x [2, 2], missa

1
sinc(x) =
sin(x)
x

kun x = 0
kun x 6= 0

Funktio on esitetty kuvassa 1. Globaali maksimi on pisteessa x = 0.507179,


missa funktio saa arvon 1.501564. Jotta optimointitehtava voitaisiin ratkaista
geneettisilla algoritmeilla, on x:n arvot valilla [2, 2] esitettava kromosomeina.
16-alkioisella binaarivektorilla voidaan esittaa kokonaisluvut valilta [0,65535].
Tarkastelualue x [2, 2] voidaan nyt diskretoida 65535:ksi tasavalein jakautuneeksi pisteeksi, asettamalla
x = 2 +

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

Kuva 1: Funktion f (x) kuvaaja alueessa x [2, 2].


Seuraavassa on esitetty kaksi 16-bittista binaarivektoria ja niita vastaavat
pisteet x-akselilla:
v1 = (1 0 1 1 1 0 1 1 1 1 1 0 0 1 1 0)

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

missa (i) tarkoittaa kaupungin i seuraajaa reitilla .


Seuraavassa esitetaan eras tapa koodata kauppamatkustajan ongelma geneettisen algoritmin vaatimaan muotoon. Keskeinen vaatimus on, etta kahden kromosomin, eli kahden eri reitin, risteyttaminen tuottaa kaypia kromosomeja, eli uudet reitit. Emme voi siis esimerkiksi soveltaa mutaatioa siten,
etta satunnaisesti valittu kaupunki muutetaan toiseksi kaupungiksi, koska
talloin syntyva reitti ei enaa kulje kaikkien kaupunkien kautta.
Valitaan jokin reitti, joka kulkee kaikkien kaupunkien kautta. Pidetaan tata
vakioj
arjestyksen
a, esimerkiksi (a, b, c, d, e). Mika tahansa reitti, esimerkiksi
1

Esim. 39! 2.0 1046

(a, c, e, d, b), koodataan seuraavasti: poistetaan vakiojarjestyksessa olevasta


listasta kaupungit sita mukaa kun ne esiintyvat reitissa ja otetaan ylos kukin
esiintymispaikka listassa:
Kaupunki Vakiolista

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

Kuvat tehtiin Joseph Kirkin kirjoittamalla Matlab-algoritmilla [9]

10

Paras reitti, 20 iteraatiota

Paras reitti, 1 iteraatio


10

10
32

22
2934

8
4
19

5
25

38 24

20

22

10

26
4

Paras reitti, 50 iteraatiota

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

Paras reitti, 400 iteraatiota


10

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

Kuva 2: Geneettisen algoritmin generoimia reitteja, kun iteraatiokierroksien


maara vaihtelee. Jokaisessa kuvassa populaatio koostuu 80:sta kromosomista.

Parhaan reitin pituus


200
180
160

Reitin pituus

140
120
100
80
60
40
20
0

50

100

150

200
Sukupolvi

250

300

350

400

Kuva 3: Kunkin sukupolven lyhimman reitin pituus kuvan 2 400:n iteraation


tapauksessa.
11

mika strategia tuotti keskimaarin parhaat tulokset.


Vangin dilemma on tunnettu peliteoreettinen malli, jossa kaksi pelaajaa valitsee yhta aikaa kahden vaihtoehdon valilla. Vaihtoehtoja kutsutaan yhteisty
oksi (engl. Cooperate) ja loikkaukseksi (engl. Defect) ja niista kaytetaan lyhenteita C ja D. Pelaajien saamat hyodyt riippuvat molempien pelaajien valinnoista. Peli voidaan esittaa alla olevan taulukon avulla, jossa kirjaimet T, R,
P ja S viittaavat pelaajien saamiin hyotyihin.

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

64-alkioisena vektorina, joka liittaa kuhunkin kolmen kierroksen historiaan


jonkin reaktion.
Ylla mainitut 64 strategiaa liittyvat erilaisiin kolmen edellisen siirron historioihin. Pelin ensimmaisilla kolmella kierroksella tata historiaa ei kuitenkaan
ole olemassa. Naita kierroksia varten taytyy siis luoda omat strategiat. Ensimmaista kierrosta varten tarvitaan yksi strategia, silla sita ennen ei ole
mitaan historiaa. Toisella kierroksella mahdollisia historioita on 22 = 4 (CC,
CD, DC, DD), joita kutakin varten tarvitaan oma strtegia. Kolmannen kierroksen strategiat perustuu kahden ensimmaisen kierroksen historiaan, joka
tarkoittaa etta erilaisia mahdollisuuksia on 24 = 16 kappaletta.
Nain ollen koko pelistrategia voidaan esittaa vektorilla, jossa on 64 + 1 +
4 + 16 = 85 alkioita.3 Taulukko 1 havainnollistaa kuinka pelistrategia liittaa
jonkin reaktion kaikkiin mahdollisiin historioihin.
Geneettisten algoritmien kaytto on tassa tilanteessa tarpeellista, silla erilaisia strategiavaihtoehtoja on yhteensa 285 3.9 1025 kappaletta. Kaikkien
strategioiden lapikayminen on nykyisillakin tietokoneilla mahdotonta.

Alkuperaisessa tutkimuksessaan Axelrod liitti ensimmaisten kolmen kierroksen strate-

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

[5] G.B. Dantzig, R. Fulkerson, and S.M. Johnson. Solution of a large-scale


traveling salesman problem. Operations Research, 2:393410, 1954.
[6] M. Dorigo and T. St
utzle. Ant Colony Optimization. The MIT Press,
2004.
[7] R. Gibbons. A Primer in Game Theory. Prentice Hall, 1992.
[8] J. H. Holland. Adaptation in Natural and Artificial Systems. The MIT
Press, 1975.
[9] J.

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

You might also like