1 / 41

Urheiluturnausten ja viihdetapahtumien skedulointi 1/2

Urheiluturnausten ja viihdetapahtumien skedulointi 1/2. Motivaatio. Halutaan löytää n:n joukkueen sarjalle/turnaukselle aikataulu, jossa kaikki joukkueet pelaavat toisiaan vastaan Mahdollisia aikatauluja karsivat tietyt asetelmaan liittyvät rajoitteet. Sisältö. Turnausasetelman kuvaus

Download Presentation

Urheiluturnausten ja viihdetapahtumien skedulointi 1/2

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Urheiluturnausten ja viihdetapahtumien skedulointi 1/2

  2. Motivaatio Halutaan löytää n:n joukkueen sarjalle/turnaukselle aikataulu, jossa kaikki joukkueet pelaavat toisiaan vastaan Mahdollisia aikatauluja karsivat tietyt asetelmaan liittyvät rajoitteet

  3. Sisältö Turnausasetelman kuvaus Matemaattinen formulointi Kokonaislukuoptimointitehtävä Rajoiteohjelmointitehtävä

  4. 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)

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

  6. Rajoitukset • Rajoitukset: • j pelaa jotain joukkuetta vastaan joka kierroksella • i pelaa j:tä vastaan täsmälleen kerran

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

  8. Terminologiaa Voi olla, että halutaan optimoida jotain kohdefunktiota => tarvitaan terminologiaa Joukkueen otteluiden jonoistaminen Kotipeli := H (home), vieraspeli := A (away) Esimerkkikaavio i. joukkueelle HAHAA

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

  10. 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 **

  11. Esimerkki 10.2.1 • 6 katkosta, minimitapauksessa olisi 4

  12. 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?

  13. 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)

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

  15. Täydellisen graafin väritys

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

  17. Suunnattu Hamiltonin polku

  18. 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)

  19. Algoritmi • 3 vaihetta, 1 kokonaiskierron turnauksille • Vaihe I (Kokoa HAP:t) • Etsi kokoelma, jossa n erilaista koti-vieras – kaaviota • Tämä kokoelma muodostaa kaaviojoukon

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

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

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

  23. Esimerkki 10.2.3 • Askel III: määrätään joukkueet kaavioihin • Huomioidaan preferenssit • d -> 1, b -> 2, a -> 3, c -> 4

  24. Esimerkki 10.2.3 Askel IV: Peilataan, jos halutaan 2 kiertoa 6 katkosta, keskinäisten kohtaamisten välinen etäisyys aina 3 kierrosta

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

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

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

  28. Optimointi Kokonaislukutehtävä

  29. 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 “=“

  30. Optimointi Askel III: joukkueet kaavioihin Binäärimuuttuja yik : onko joukkue i kaaviossa k Kustannus cik : joukkueen i sijoittamisesta kaavioon k (preferenssit)

  31. Optimointi “1 joukkue per kaavio, 1 kaavio per joukkue”

  32. 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”

  33. Rajoiteohjelmointi • Nyt n pariton ja kahden kierron sarja => 2n 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ä

  34. Rajoitukset Näiden perusteella käyvät kaaviot

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

  36. Formulointi

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

  38. 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( ):

  39. Rajoiteohjelmoinnin tehtävä • H*, A* ja B* kiinteitä => hakustrategia läpikäy , jolloin H**, A**, B** vaiheittain

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

  41. Kotitehtävä Kirjan tehtävä 10.4. Löydätkö esimerkistä 10.2.1 aikataulun, jossa vähemmän kuin 6 katkosta?

More Related