S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Urheiluturnausten ja viihdetapahtumien skedulointi 1/2
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Motivaatio
• Halutaan löytää n:n joukkueen sarjalle/turnaukselle aikataulu, jossa kaikki joukkueet pelaavat toisiaan vastaan
• Mahdollisia aikatauluja karsivat tietyt asetelmaan liittyvät rajoitteet
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Sisältö
• Turnausasetelman kuvaus
• Matemaattinen formulointi
• Kokonaislukuoptimointitehtävä
• Rajoiteohjelmointitehtävä
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Lähtökohdat
• n kappaletta joukkueita
• Yhden kokonaiskierron turnaus: kaikki pelaavat kaikkia vastaan kerran (kotona tai vieraissa)– Jos n parillinen => n-1 kierrosta, jos pariton =>
n kierrosta (1 joukkue lepää joka kierroksella)
• Kahden kokonaiskierron turnauksessa vastaavasti 2n-2 kierrosta (n pariton) tai 2n kierrosta (n parillinen)
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Perustehtävä
• Yhden kokonaiskierron turnaus
• n parillinen eli n-1 kierrosta– Kullakin kierroksella n/2 ottelua
• Olkoon kierrosindeksi t ja binäärimuuttuja x
ijt
– Saa arvon 1, jos joukkue i pelaa joukkuetta j vastaan kotona kierroksella t. Muulloin x
ijt = 0
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Rajoitukset
• Rajoitukset:– j pelaa jotain joukkuetta vastaan joka
kierroksella
– i pelaa j:tä vastaan täsmälleen kerran
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Rajoitukset II
• Usein myös muita rajoitteita– Parien muodostaminen, otteluiden
jonoistaminen
• Rajoitteita mahdollisesti paljon => käyvän aikataulun löytäminen voi olla vaikea tehtävä– Tyydytään siihen, että sellainen löydetään
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Terminologiaa
• Voi olla, että halutaan optimoida jotain kohdefunktiota => tarvitaan terminologiaa
• Joukkueen otteluiden jonoistaminen
• Kotipeli := H (home), vieraspeli := A (away)
• Esimerkkikaavio i. joukkueelle HAHAA
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Katkos• Kaavion toivotaan alternoivan: joukkue pelaa
vuoroin kotona, vuoroin vieraissa
• Jos kaksi peräkkäistä kotona/vieraissa hetkillä t-1 ja t => kaaviossa katkos kohdassa t
• Yleinen kohde: turnauksen katkosten kokonaismäärän minimointi
• Skedulointiteoria: n (n parill.) joukkuetta => 1 kokonaiskierron turnauksessa väh. n-2 katkosta
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Esimerkki 10.2.1
• n = 6, kierrosten määrä 5
• Jos joukkue i pelaa joukkuetta j vastaan vieraissa kierroksella t => merkitään i:nnelle riville t. sarakkeeseen j
• Jos joukkue i pelaa joukkuetta j vastaan kotona kierroksella t => merkitään i:nnelle riville t. sarakkeeseen –j
• Merkitään katkoksia **
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Esimerkki 10.2.1
• 6 katkosta, minimitapauksessa olisi 4
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Lepovuoro
• Olkoon n pariton => vähintään n-1 kierrosta joista jokaisella väh. 1 joukkue lepää– Merkitään B (bye)
– Tietyn joukkueen kaavio saadaan A:sta, B:sta ja H:sta => esimerkiksi HAHABA
• B ei välttämättä katkos– HBH vs. HHH vs. HH (vähemmän paha?)
– Sakot/kustannukset => HBH:lla pienin?
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Graafin väritys
• 1 kierroksen turnaus (n pariton tai parillinen)
• Graafin väritystehtävä (vertaa aikataulutus)
• Suunnattu graafi G = (N,B), jossa N muodostuu n kpl solmusta, jotka ovat yhteydessä kaarilla toisiinsa– Kaaret alkuun suuntaamattomia
• Jos kaikki solmut liittyvät toisiinsa, kyseessä on täydellinen graafi (clique, complete graph)
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Graafin väritys
• Graafin eli kaarien värittäminen, kaikki tiettyyn solmuun liittyvät eri värisiä => minimoidaan värien kokonaismäärä
• n solmun ”clique” => n värin graafi mahdollinen
• Aligraafi = kaarijoukko, jolla oma väri– 1 reunakaari, muut sisäkaaria
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Täydellisen graafin väritys
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Graafin väritys vs. aikataulutus• Yhden kokonaiskierron tehtävä: aligraafi
vastaa yhtä ottelukierrosta, oma väri
• Kysymys: Miten jako aligraafeihin tapahtuu?
• Koti- ja vieraspelin erotus saadaan suunnatuilla kaarilla– i pelaa j:n luona => kaari i -->-- j
• Katkosten välttäminen: kaksi aligraafia muodostaa suunnatun Hamiltonin polun– Jokaisessa solmussa enint. 1 sis.meno/ulostulo
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Suunnattu Hamiltonin polku
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Käyvät aikataulut
• Standardi runko käypien aikataulujen löytämiseksi
• Kaavio verrannollinen kirjainjonoon, jossa kirjaimia A, H ja B– Kirjainjonon pituus parillisessa tapauksessa n-1
ja parittomassa n
• Koti-vieraskaavio (home-away pattern HAP)
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Algoritmi
• 3 vaihetta, 1 kokonaiskierron turnauksille
• Vaihe I (Kokoa HAP:t)– Etsi kokoelma, jossa n erilaista koti-vieras –
kaaviota
– Tämä kokoelma muodostaa kaaviojoukon
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Algoritmi • Vaihe II (luo aikataulu):
– Määrää ottelu jokaiseen kaaviojoukon kohtaan
– Tuloksena aikataulu
• Vaihe III (määrää joukkueet kaavioihin)– Aseta kuhunkin kaavioon joukkue
– Yhdessä aikataulun kanssa muodostaa 1 kokonaiskierron turnauksen
• Vaihe IV (Mahdollinen peilaus)– Kahden kierroksen turnaus peilaamalla
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Esimerkki 10.2.3• n = 4, 3 kierrosta
• Askel I: 4 kaavion luonti joukkueille (a,b,c,d)
• (1, 2, 3, 4) “place holdereita”, ei vielä tietoa mikä joukkue milläkin paikalla
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Esimerkki 10.2.3
• Askel II: määrätään peliparit ja aikataulu– (j) : joukkue vierailee joukkueen j luona
– (-j) : joukkue isännöi joukkuetta j
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Esimerkki 10.2.3
• Askel III: määrätään joukkueet kaavioihin– Huomioidaan preferenssit
– d -> 1, b -> 2, a -> 3, c -> 4
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Esimerkki 10.2.3
• Askel IV: Peilataan, jos halutaan 2 kiertoa
• 6 katkosta, keskinäisten kohtaamisten välinen etäisyys aina 3 kierrosta
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Algoritmista
• Usein käytetään soveltaen -> luodaan enemmän kuin n kaaviota, jolloin yli 1 kaaviojoukkoa– Antaa vaihtoehdoille sijaa
• Paljon joukkueita -> vaatii laskentatehoa
• Jokaisessa vaiheessa joko kokonaislukuoptimointi tai rajoiteohjelmointi
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Optimointi
• Askel 1: Luodaan useita kaaviojoukkoja– Ensin sellaiset, joissa A ja H alternoivat
– Vaihtoehtoiset, joissa 1-2 katkosta per kaavio
– Ylimääräiset joukot sis. esim. n-2 kaaviota ilman katkoksia ja 2 kaaviota 1-2 katkoksella
– Mahdollisten kaaviojoukkojen määrä edelleen suhteellisen pieni
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Optimointi
• Askel II: Luodaan aikataulut– Kukin kaavio linkittyy toiseen kullakin kierr.
• S olkoon n kaavion joukko, T kierrosten joukko
• xklt
: kuvaa sitä, että k. kaavion joukkue pelaa j.
kaavion joukkuetta vastaan kierroksella t– Saa arvon 1, jos pelaa vieraissa, muuten 0
• F = käypien (k,l,t)-triplettien joukko
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Optimointi
• Kokonaislukutehtävä
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Optimointi
• Kohdefunktio keinotekoinen, halutaan löytää ratkaisu, jolle rajoitteet toteutuvat
• 1. rajoite: tasan 1 ottelu k:n ja l:n välillä
• 2. rajoite: enintään 1 ottelu joukkueelle k kullakin kierroksella– Jos n parillinen, ehto muotoa “=“
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Optimointi
• Askel III: joukkueet kaavioihin
• Binäärimuuttuja yik
: onko joukkue i
kaaviossa k
• Kustannus cik : joukkueen i sijoittamisesta
kaavioon k (preferenssit)
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Optimointi
• “1 joukkue per kaavio, 1 kaavio per joukkue”
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Rajoiteohjelmointi• Poikkeaa edeltävästä täysin
• Soveltuu ongelmaan hyvin, aikatauluilla usein useita rajoitteita– Katkosrajoitteet (esim. ≤ 3 peliä putkeen H/A)
– Ensimmäiset kierrokset (≥ 2 koti- tai lepokierrosta 4 ensimmäisellä kierroksella)
– Ei kahta viimeistä kierrosta vieraissa
– Peli- tai joukkuespesifiset rajoitteet
– “constraint store”
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Rajoiteohjelmointi
• Nyt n pariton ja kahden kierron sarja => 2n kierrosta
• Esitelty algoritmi voidaan toteuttaa myös rajoiteohjelmointitapauksessa
• at, h
t ja b
t kuvaavat mitä joukkue tekee
kierroksella t– a
t=1: joukkue pelaa kierroksella t vieraissa
• ν = käypien HAP:n määrä
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Rajoitukset
• Näiden perusteella käyvät kaaviot
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Vaihtoehtoinen tapa
• Askel 1: Käyvät kaaviojoukot
• ν*2n – matriisit H, A, B
• Apubinäärimuuttuja xk ,joka kuvaa, onko k.
kaavio mukana kaaviojoukossa– Arvo 1 jos on
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Formulointi
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Rajoiteohjelmointi, vaihe II• Uusi rajoitejoukko
• n×2n-matriisit H*, A*, B*– Näissä alkiot ja , jotka kuvastavat
koti-, vieras – ja lepokierroksia k:nteen kaavioon kierroksella t
• Binäärimatriisit H**, A**, B** vastaavasti
• Muuttuja , jolla rangi 1,…, n– Jos joukkue i pelaa rivillä *-matriiseissa
hkt* ,
akt*
bkt*
i
i
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Rajoiteohjelmointi, vaihe II• n×2n matriisi T kuvastaa tavoiteaikataulua
– Tämän alkiot git määräävät i:n vastustajan
• Muuttuja I(x=y)– Saa arvon 1, jos x = y, muulloin 0
• Muuttuja I(x D) vastaavasti– Saa arvon 1, jos x kuuluu joukkoon D
• Alldifferent( ): eriävät kokonaisluvut
• Element( ):
x1,..., xm
k,v , l
l v k
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Rajoiteohjelmoinnin tehtävä
• H*, A* ja B* kiinteitä => hakustrategia läpikäy , jolloin H**, A**, B** vaiheittain
1,...,m
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 8 – Reda Guerfi
Optimointiopin seminaari - Syksy 2009
Rajoiteohjelmoinnin tehtävä
• Johdonmukaisesti huomioiden rajoitteet jo kiinnitetyistä muuttujista hakupuu mahdollista tutkia melko lyhyessä ajassa
• Lopulta git:t haetaan, myös tässä puu
harvenee kun edetään johdonmukaisesti