Urheiluturnausten ja viihdetapahtumien skedulointi 12 S ysteemianalyysin Laboratorio
Urheiluturnausten ja viihdetapahtumien skedulointi 1/2 S ysteemianalyysin Laboratorio Teknillinen 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 ysteemianalyysin Laboratorio Teknillinen korkeakoulu Esitelmä 8 – Reda Guerfi Optimointiopin seminaari - Syksy 2009
Sisältö • • Turnausasetelman kuvaus Matemaattinen formulointi Kokonaislukuoptimointitehtävä Rajoiteohjelmointitehtävä S ysteemianalyysin Laboratorio Teknillinen 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 2 n-2 kierrosta (n pariton) tai 2 n kierrosta (n parillinen) S ysteemianalyysin Laboratorio Teknillinen 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 xijt – Saa arvon 1, jos joukkue i pelaa joukkuetta j vastaan kotona kierroksella t. Muulloin xijt = 0 S ysteemianalyysin Laboratorio Teknillinen 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 ysteemianalyysin Laboratorio Teknillinen 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 ysteemianalyysin Laboratorio Teknillinen 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 ysteemianalyysin Laboratorio Teknillinen 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 ysteemianalyysin Laboratorio Teknillinen 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 ysteemianalyysin Laboratorio Teknillinen korkeakoulu Esitelmä 8 – Reda Guerfi Optimointiopin seminaari - Syksy 2009
Esimerkki 10. 2. 1 • 6 katkosta, minimitapauksessa olisi 4 S ysteemianalyysin Laboratorio Teknillinen 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. HH (vähemmän paha? ) – Sakot/kustannukset => HBH: lla pienin? S ysteemianalyysin Laboratorio Teknillinen 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 ysteemianalyysin Laboratorio Teknillinen 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 ysteemianalyysin Laboratorio Teknillinen korkeakoulu Esitelmä 8 – Reda Guerfi Optimointiopin seminaari - Syksy 2009
Täydellisen graafin väritys S ysteemianalyysin Laboratorio Teknillinen 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 ysteemianalyysin Laboratorio Teknillinen korkeakoulu Esitelmä 8 – Reda Guerfi Optimointiopin seminaari - Syksy 2009
Suunnattu Hamiltonin polku S ysteemianalyysin Laboratorio Teknillinen 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 ysteemianalyysin Laboratorio Teknillinen 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 ysteemianalyysin Laboratorio Teknillinen 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 ysteemianalyysin Laboratorio Teknillinen 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 ysteemianalyysin Laboratorio Teknillinen 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 ysteemianalyysin Laboratorio Teknillinen 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 ysteemianalyysin Laboratorio Teknillinen 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 ysteemianalyysin Laboratorio Teknillinen 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 ysteemianalyysin Laboratorio Teknillinen 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 ysteemianalyysin Laboratorio Teknillinen 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 ysteemianalyysin Laboratorio Teknillinen korkeakoulu Esitelmä 8 – Reda Guerfi Optimointiopin seminaari - Syksy 2009
Optimointi • Kokonaislukutehtävä S ysteemianalyysin Laboratorio Teknillinen 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 ysteemianalyysin Laboratorio Teknillinen 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 ysteemianalyysin Laboratorio Teknillinen korkeakoulu Esitelmä 8 – Reda Guerfi Optimointiopin seminaari - Syksy 2009
Optimointi • “ 1 joukkue per kaavio, 1 kaavio per joukkue” S ysteemianalyysin Laboratorio Teknillinen 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 ysteemianalyysin Laboratorio Teknillinen korkeakoulu Esitelmä 8 – Reda Guerfi Optimointiopin seminaari - Syksy 2009
Rajoiteohjelmointi • Nyt n pariton ja kahden kierron sarja => 2 n kierrosta • Esitelty algoritmi voidaan toteuttaa myös rajoiteohjelmointitapauksessa • at, ht ja bt kuvaavat mitä joukkue tekee kierroksella t – at=1: joukkue pelaa kierroksella t vieraissa • ν = käypien HAP: n määrä S ysteemianalyysin Laboratorio Teknillinen korkeakoulu Esitelmä 8 – Reda Guerfi Optimointiopin seminaari - Syksy 2009
Rajoitukset • Näiden perusteella käyvät kaaviot S ysteemianalyysin Laboratorio Teknillinen korkeakoulu Esitelmä 8 – Reda Guerfi Optimointiopin seminaari - Syksy 2009
Vaihtoehtoinen tapa • Askel 1: Käyvät kaaviojoukot • ν*2 n – matriisit H, A, B • Apubinäärimuuttuja xk , joka kuvaa, onko k. kaavio mukana kaaviojoukossa – Arvo 1 jos on S ysteemianalyysin Laboratorio Teknillinen korkeakoulu Esitelmä 8 – Reda Guerfi Optimointiopin seminaari - Syksy 2009
Formulointi S ysteemianalyysin Laboratorio Teknillinen korkeakoulu Esitelmä 8 – Reda Guerfi Optimointiopin seminaari - Syksy 2009
Rajoiteohjelmointi, vaihe II • Uusi rajoitejoukko • n× 2 n-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 S ysteemianalyysin Laboratorio Teknillinen korkeakoulu Esitelmä 8 – Reda Guerfi Optimointiopin seminaari - Syksy 2009
Rajoiteohjelmointi, vaihe II • n× 2 n 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( • Element( ): eriävät kokonaisluvut S ysteemianalyysin Laboratorio Teknillinen 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 S ysteemianalyysin Laboratorio Teknillinen 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 S ysteemianalyysin Laboratorio Teknillinen korkeakoulu Esitelmä 8 – Reda Guerfi Optimointiopin seminaari - Syksy 2009
Kotitehtävä • Kirjan tehtävä 10. 4. • Löydätkö esimerkistä 10. 2. 1 aikataulun, jossa vähemmän kuin 6 katkosta? S ysteemianalyysin Laboratorio Teknillinen korkeakoulu Esitelmä 8 – Reda Guerfi Optimointiopin seminaari - Syksy 2009
- Slides: 41