Download - MakalahI Sistem Gugur

Transcript

MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2008 PENJ ADWALAN PERTANDINGAN LI GA DENGAN ALGORITMA GREEDY William Institut Teknologi BandungJl. Tamansari 64 Bandung 40116 e-mail: [email protected] ABSTRAK Makalahinimembahasmengenaisalahsatu penerapanalgoritmagreedy.Algoritmagreedyini diterapkanpadasuatucarapenjadwalansebuah pertandinganpadacabangolahragayangberbasis liga(bukanberbasisturnamen)maupunbidang-bidanglainnyayangmemilikipermasalahanyang serupadenganpenjadwalanpertandinganberbasis liga. Pertandingan berbasisligaadalahpertandingan antarnbuahpesertayangakanmelakukan pertandingandengansemuapesertakecualidirinya sendiri.Permasalahanini adalahpermasalahanyang umumdanseringditemuidalamkehidupankita sehari-hari. Salah satumasalahnyata sebagai contoh masalahpenjadwalaniniadalahpenjadwalan pertandingan sepak bola, liga inggris. Algoritmagreedyyangakanditerapkandalam makalahiniadalahalgoritmayangsederhanadan mudahditerapkanolehorangawam.Algoritmaini akansangatbergunauntuksuatupenjadwalan pertandinganberbasisligayangdiikutiolehbanyak peserta dan merepotkan dalam penjadwalannya. Kata kunci: algoritma greedy, berbasis liga. 1.PENDAHULUAN Dalam kehidupan kita seringkita temui suatu kompetisi ataupertandingandalamberbagaibidang.Salahsatu kompetisiyangumumadalahkompetisipadabidang olahraga. Bila kita menonton televise maka dapat kita lihat berbagai pertandinganolahraga, seperti pertandingan voli, bola basket,dan sepak bola. Pertandingan sepak bola dapat dikatakansebagaisalahsatutontonanpalingpopulerdi Indonesia maupun di dunia. Pertandingan sepak bolayang adadapatdibagimenjadiduajenisyaitupertandingan antarklubpadasuatuturnamen,yaitusetiaptimakan bertandingdenganssebuahtimpadatahapawalbila menang maka tim tersebut akan maju ke babakberikutnya sampaibabaksemifinaldankemudianbabakfinal.Ada jugapertandinganantarklubpadasebuahliga.Pada tingkatligasetiaptimharusmelawansetiaptimlawan sebanyakduakalidalamsatumusimligatersebutdan pemenangligatersebutadalahtimyangmeraihpoin tertinggi pada akhir liga. Untukmemperjelassistempertandinganberbasisliga maka sebaiknyakitamelihatgambar 1 dibawah ini. Pada gambar 1,dapat dilihat bahwa ada 4 timyangmelakukan suatu pertandinganmaka sebuah tim harus melawan 3 tim lainnya.Padagambar1,timAharusmelawantimB, C,dan D ,begitu seterusnya dengan 3 tim lainnya. Gambar 1. Sistem Pertandingan Berbasis Liga Penjadwalanuntukpertandinganberbasisliga, dilakukan dalam suatu rentang waktu tertentu. Dalam satu ruangwaktuinisetiaptimakanmelawansatutimlawan dantentusajajadwalpertandingantidakmemungkinkan bahwaada1timyangakanmelakukanpertandingan denganduatimyangberbeda.Untukkasuspadagambar 1,penjadwalannyadapatdibuatdanditampilkandalam tabel1.Tabel1merupakansalahsatukombinasi penjadwalan yang dapat dibuat. Hari ke-Pertandingan IPertandingan II 1A vs BC vs D 2A vs CB vs D 3A vs DB vs C Tabel 1. J adwal Pertandingan Pada Gambar 1 Generated by Foxit PDF Creator Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2008 Persoalanpenjadwalanpertandinganyangsudah dijelaskansebelumnyasebenarnyamerupakansuatu persoalanyangsederhana.Tetapiterkadangpersoalanini akansangatmenyulitkanbagikebanyakanorangbila suatuligamemilikibanyaktimataupeserta.Bilapada gambar1terdapat4timyangberkompetisimakadalam satusatuanwaktuterdapat2pertandinganyangterjadi, sehinggapenjadwalandengancepatdapatdibuat.Kita akanmendapatkesulitan bila timyang adacukupbanyak. Kita ambil contoh saja pada liga sepak bola di Inggris, tim yangikutsertapadaligatersebutberjumlah20tim. Penjadwalanmenjadisedikitsulitbiladilakukandengan caracoba-coba,mungkinbisamemakanwaktu15-60 menit untuk membuat penjadwalannya tanpa kalkulasi. Denganmelakukanperhitungandankalkulasipada komputer,Kesulitanpadapenjadwalandenganbanyak timakandengancepatdapatterselesaikan,bahkandalam satukliktombolsaja.Denganprogramyangdapat mengkalkulasidanmelakukanpenjadwalanmakakita tidakakanmendapatpermasalahanpadaligayang memiliki50pesertasekalipun.Tentusajadiperlukan suatu algoritma yang baik dalam melakukan penjadwalan. 2.METODE Algoritmagreedy merupakansalahsatumetodeyang palingpopulerdalammemecahkanpersoalan.Algoritma ini sangat sederhana dan fleksible. Secaraharafiahgreedy berartirakusatautamak,yangsebenarnyamemiliki konotasi negatif.Prinsipalgoritmagreedy adalahambilsesuatuyang diinginkansekarang.Prinsipiniseringdiadopsiuntuk pemecahanmasalah,tentudalamkontekyangpositif. Adapun beberapa contoh penggunaan algoritma greedyini adalah : 1.PersoalanpencarianjalurtersingkatdariJakartake Surabaya.2.Persoalan knapsack. 2.1Definisi Algoritma Greedy Dalammembentuk solusi, algoritma greedypadasetiap langkahnyaakanmengambilpilihanyangmerupakan optimum lokal atau pilihan yang sesuai dengan spesifikasi pembuatalgoritma.Denganpengambilanpilihanyang sesuaipadasetiaplangkahinidiharapkansolusiyang didapatoptimumglobalatausesuaikeinginanpembuat algoritma. Padasetiaplangkahalgoritmagreedy,kitaakan mendapatoptimumlokal.Bilaalgoritmaberakhirmaka diharapkanoptimumlokaliniakanmenjadioptimum global.Sehinggasebenarnyaalgoritmagreedy mengasumsikanbahwaoptimumlokalinimerupakan bagian dari optimum global. 2.2Skema Algoritma Greedy Sepertialgoritmaataumetodepemecahanmasalah lainnya,algoritmagreedyjugamemilikisebuahpolaatau skemaumumyangberlakuuntukberbagaipersoalan. Adapun skema algoritma greedyadalah sebagai berikut : 1.Inisialisasi S (himpunan solusi) yang kosong. 2.PilihsebuahpilihandariC(himpunankandidat pilihan) dengan sebuah fungsi pemilih. 3.Periksaapakahpilihanyangdipilihlayakdengan sebuahfungsiujikelayakan.Jikalayakmaka pilihandimasukankeSdanpilihantersebut dihapus dari C. Jika tidak, maka tidak dipilih. 4.PeriksaapakahSsudahmemberikansolusiyang lengkapatauCsudahkosong.Jikaya,maka algoritmadihentikandanjikatidakmakaulangi lagi mulai dari langkah ke-2. 3.PENERAPAN METODE Untukmemakaialgoritmagreedy dalampermasalah penjadwalan yang sudah dijelaskan pada bab pertama, kita membutuhkanbeberapastrukturdata.Strukturdatayang dibutuhkan adalah : 1.PointString(Charx,Chary).Pointdigunakan untukmemasukkan1pasangsimboltimyang akan bertanding2.ListofPointofChar(S).ListofPointStringini merupakanstrukturuntukjadwalpertandingan dan merupakan himpunan solusi. 3.Arrayof Char (C ). Array ini sebagaihimpunan stringyangberisi semuapesertadanmerupakan himpunan simbol kandidat.

Selain strukturdi atas juga diperlukanfungsipemilihan dan fungsi uji kelayakan : 1.Fungsipemilihan(Pilih(C)).Fungsiinimemilih kandidatdariCsesuaidenganspesifikasiyang diinginkanpembuatalgoritma.Padamakalahini fungsipemilihan,memilihkandidatyangmemiliki simbol pada C yang terkecil. 2.Fungsipengisianulang(IsiUlang(C)).Fungsiini akanmenginisialisasiulanghimpunanCbila himpunaninikosong,sehinggaCakanterisi dengan String-string awal. 3.Fungsipembandingdanujikelayakan.Fungsiini melihatapakahkandidatyangdiambildariC apabiladimasukkankeSmembentukPointofChar yangsudahadaatautidak.Bilabelummaka Generated by Foxit PDF Creator Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2008 masukanke elemenke-idari Ssekarangbilatidak masukkan ke elemen ke-(i+1) dari S. 3.1Skema Metode Skemadalampenerapanmetodedenganalgoritma greedyadalah sebagai berikut : 1.InisialisasiSyangkosong.Smemilikiindeks sebesar (n/2) *(n-1), n peserta. 2.Pilih pilihan pada C dengan fungsi pemilihan. 3.Masukan pada elemen xpada PointString di indeks yangbelumpenuh(xatauymasihbelumterisi) terkecil pada L. Bila x sudah terisi maka isi elemen y-nya. 4.HapuskandidatdariCbilalayakdanposisikan sebagai elemen berikutnya pada S bila tidak layak. 5.SetelahCkosongdanSbelumpenuhmaka IsiUlang(C) dan ulangi tahap 2. 3.2Penggunaan Metode Untukmemperjelasakanskemapadasubbab sebelumnya,metodeakandipakaiuntukmenyelesaikan masalahberikut.Ada8buahtimyangbertandingpada sebuah kejuaraancatur, kejuaraan ini memekai sistem liga dimanasetiaptimharusmelawantimlainsebanyaksatu kali.Tim-timtersebutdiberisimboltimA,B,C,D. Kejuaraanakanberlangsungselama3haridimanapada setiapharinya,semuatimmelakukanpertandingan sebanyaksatukali.Sekarangkitaakanmemakaimetode algoritmagreedypadasubbabsebelumnyauntukmenyelesaikan masalah ini. Inisialisasi himpunan C, C = { A, B, C, D }. Inisialisasi himpunan S, S[ (4/2)*(4-1) ] = S[6]. Tahap 1 : C = { B, C, D } S = { (A, ) } C = { C, D } S = { (A,B) } C = { D } S ={ (A,B), (C, )} C = {} S = { (A,B), (C,D)} Tahap 2 : C = { A, B, C, D } S = { (A,B), (C,D) } C = { B, C, D } S = { (A,B), (C,D), (A, ) } C = { C, D, B } S = { (A,B), (C,D), (A, ) } C = { D, B } S = { (A,B), (C,D), (A,C) } C = { D } S = { (A,B), (C,D), (A,C), (B, ) } C = {} S = { (A,B), (C,D), (A,C), (B,D) } Tahap 3 : C = { A, B, C, D } S = { (A,B), (C,D), (A,C), (B,D) } C = { B, C, D } S = { (A,B), (C,D), (A,C), (B,D), (A, ) } C = { C, D } S = { (A,B), (C,D), (A,C), (B,D), (A, ), (B, ) } C = { D } S = { (A,B), (C,D), (A,C), (B,D), (A, ), (B,C) } C = {} S = { (A,B), (C,D), (A,C), (B,D), (A,D), (B,C) } Biladilakukanparsing terhadapSuntukmelihat jadwal setiapharinyamakacukupdibentuksebuahlistoflistof point string H. H = { ((A,B),(C,D)), ((A,C),(D,B)), ((A,D),(B,C)) } Dimana jadwal hari ke-n adalah H[ n 1 ]. Hari ke-1 , H[0] = {(A,B),(C,D)} Hari ke-2 , H[1] = {(A,C),(B,D)} Hari ke-3 , H[2] = {(A,D),(B,C)} Kombinasijadwalpertandinganper-jugadapatdilakukan denganmengambilsecaraacakelemenHuntuksetiap harinya. Contohlainnyaadalahkasus diatas dengan8buahtim yangikutsertadalamkejuaraantersebuttimtersebut diberisimbolA,B,C,D,E,F,G,Hdanpertandingan dilakukanselama1minggudengansetiaptimharus bertandingsebanyaksatukalisetiapharinya.Maka dengan metode di atas akan didapat H sebagai berikut : H[0] = { (A,B), (C,D), (E,F), (G,H) } H[1] = { (A,C), (B,D), (E,G), (F,H) } H[2] = { (A,D), (B,C), (E,H), (F,G) } H[3] = { (A,E), (B,F), (C,G), (D,H) } H[4] = { (A,F), (B,E), (C,H), (D,G) } H[5] = { (A,G), (B,H), (C,E), (D,F) } H[6] = { (A,H), (B,G), (C,F), (D,E) } Generated by Foxit PDF Creator Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2008 Dalammenjalankanalgoritmagreedy,dipakaifungsi kelayakanyangmemeriksaapakahpointyangakan dibentuksudahdibentukapabelum,sehinggaperlu melakukanperbandingansebanyakn.Selainitudalam fungsipemilihandicarikandidatdengansymbolkarakter terkecilsehinggadiperlukanperbandingansebanyakn pula.Makakompleksitaswaktualgoritmapadapersoalan penjadwalan berbasis liga ini adalah O(n2). I V. KESIMPULAN Persoalanpenjadwalaninitidakmenuntutoptimalitas solusitetapihanyamenuntutterbentuknyasolusisaja, sehinggasebenarnyapersoalaninidapatdiselesaikan denganbaikolehsemuaalgoritma.Hanyasajadarisegikeefesienitaswaktumungkinalgoritmagreedy lebihbaik daripada algoritma brute-force,selain itu algoritmagreedy adalahalgoritmayangsederhanadanmudahdipahami olehorangbanyak.Selainitupembuatanalgoritmaini jugatidakmemilikikerumitansepertialgoritmalainnya, sehingga kesalahan algoritma bagi pemula dapat dihindari. Dari segi pemakaian memori, pada persoalan penjadwalan berbasis liga, metode yang dipakai pada makalah ini sudah baikdanefisienkarenahanyamemakai3buahstruktur data untuk menampung semua elemen yaitu C, S,dan H.

REFERENSI [1] Introduction to Algorithms (Cormen, Leiserson, Rivest, and Stein) 2001, Chapter 16 "Greedy Algorithms". Generated by Foxit PDF Creator Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.