Balas Additive Algorithm, Algoritma Brach & Boud utuk Biary Iteger Programmig Aditio Pagestu 13514030 Program Studi Tekik Iformatika Sekolah Tekik Elektro da Iformatika Istitut Tekologi Badug, Jl. Gaesha 10 Badug 40132, Idoesia 13514030@std.stei.itb.ac.id Abstract Permasalaha pegambila keputusa merupaka permasalaha yag serig terjadi di kehidupa sehari-hari. Permasalaha yag melibatka resiko dalam betuk ilai dapat dimodelka mejadi biary iteger Programmig (BIP). Salah satu metode peyelesaia BIP adalah megguaka metode brach ad boud. Dalam pemograma metode ii lebih dikeal dega ama Balas Additive Algorithm. Keywords Biary Iteger Programmig, Algoritma Brach ad Boud, Balas Additive Algorithm. I. PENDAHULUAN Permasalaha pegambila keputusa merupaka permasalaha dimaa harus memilih satu dari dua piliha yag disediaka. Permasalaha ii serig terjadi di kehidupa seharihari. Cotoh permasalaha ii adalah piliha seorag mahasiswa utuk megguaka agkot atau berjala kaki dari kosa ke kampus ketika waktu mulai kelas yag aka dia hadiri tiggal 15 meit lagi. Umumya, permasalaha pegambila keputusa ii memberika resiko masig-masig terhadap keputusa yag telah ditetuka. Misalya saja, dari cotoh sebelumya didapat resiko ketika memilih agkot berupa uag mahasiswa tersebut aka berkurag, sedagka ketika berjala berupa mahasiswa tersebut aka datag telat ke kelas. Dega resiko yag ada, permasalaha pegambila keputusa harus memperhatika keputusa yag diambil dega tepat da bear. Keputusa tersebut tetu sagat beresiko ketika diambil dalam waktu cepat. Pada umumya, permasalaha pegambila keputusa ii meutut pegambil keputusa utuk cepat meyelasaikaya. Oleh karea itu, dibutuhka suatu algoritma yag membuat program mampu membatu dalam pegambila keputusa tersebut. Algoritma tersebut adalah Balas Additive Algorithm. Agar permasalaha ii dapat diselesaika dega program, dibutuhka kemampua utuk metrasformasika permasalaha pegambila keputusa mejadi Biary Iteger Programmig. II. DASAR TEORI A. Liear Programmig Liear Programmig (LP) merupaka metode yag diguaka utuk mecapai hasil terbaik (optimal) seperti keutuga maksimum atau biaya miimum dalam model matematika yag melibatka variabel-variabel liear. Liear programmig juga dapat dikataka sebagai metode utuk mecari ilai optimal dari suatu fugsi objektif liear, dega fugsi kedala yag berupa persamaa atau pertidaksamaa liear. Cotoh dari liear programmig sebagai berikut : Optimalka Z = c k x k, ketika fugsi batasaya adalah c ik x k b i dega i = 1, 2, m. Dalam kehidupa sehari-hari, liear programmig memiliki peraa yag petig terhadap pemecaha masalah. Permasalaha-permasalaha yag diselesaika merupaka permasalaha yag dapat dimodelka ke dalam model matematika, cotohya dalam pecaria keutuga suatu usaha, pegoptimala persediaa, juga dalam beberapa masalah idustry ekoomi. Adakalaya, permasalaha-permasalah yag diselesaika harus meghasilka solusi berupa bilaga bulat. Permasalaha ii disebut dega Iteger Programmig. B. Biary Iteger Programmig Biary Iteger Programmig (BIP) merupaka betuk lai dari Iteger Programmig. Pada BIP, solusi yag aka dihasilka harus berupa agka 0 atau 1. Metode ii serig diguaka utuk permasalaha yag berhubuga dega dega pegambila keputusa, dimaa solusiya ya atau tidak. C. Algoritma Brach ad Boud Algoritma Brach ad Boud merupaka salah satu metode yag diguaka dalam pecaria solusi secara sistematis. Algoritma ii memafaatka poho utuk pecaria solusiya. Setiap ode dari poho memiliki status. Status yag dimiliki tiap ode megarah ke solusi yag aka dicapai. Dari status juga dapat ditetuka tidaka-tidaka yag harus diambil. Makalah IF2211 Strategi Algoritma, Semester II Tahu 2015/2016
Pada tiap ode terdapat tidaka-tidaka yag dilakuka yaitu pembagkita aak atau pembagkita aak diberhetika utuk semetara atau selamaya. Tidaka ii dilihat dari status yag ada, terutama dari ilai cost tiap simpul. Nilai cost ii diguaka utuk mempercepat pecaria solusi. Sehigga terdapat beberapa tidaka yag dilakuka utuk suatu simpul berdasarka ilai cost yag dimilikiya yaitu : 1. Simpul yag aka dibagkitka aak-aakya merupaka simpul yag memiliki cost yag berilai maksimum atau miimum (berdasarka solusi yag igi dicapai) disbadig simpul lai yag aka diberi tidaka. 2. Simpul yag pembagkita aakya diberhetika semetara merupaka simpul yag memiliki cost yag tidak miimum atau maksimum da algoritma brach ad boud belum meemuka solusi. 3. Simpul yag pembagkita aakya diberhetika selamaya merupaka simpul yag memiliki cost yag tidak miimum atau maksimum da algoritma brach ad boud telah meemuka solusi. Secara umum, proses pecaria solusi megguaka algoritma brach ad boud adalah sebagai berikut [1] : 1. Masukkab simpul akar ke dalam atria Q. Jika simpul akar adalah simpul solusi, maka solusi telah ditemuka. Berheti. 2. Jika Q kosog, tidak ada solusi. Berheti. 3. Jika Q tidak kosog, pilih dari atria Q simpul i yag mempuyai cost palig kecil atau palig besar. Jika terdapat beberapa simpul i yag memeuhi, pilih satu secara acak. 4. Jika simpul i adalah simpul solusi, berarti solusi sudah ditemuka, berheti. Jika simpul i buka simpul solusi, maka bagkitka semua aaka-aakya. Jika I tidak mempuyai aak, kembali kelagkah dua. 5. Utuk setiap aak dari simpul i, hitug cost ya, da masuka aak-aak tersebut ke dalam atria Q. 6. Kembali ke lagkah 2. D. Balas Additive Algorithm Balas Additive Algorithm merupaka algoritma brach ad boud yag diguaka utuk meyelesaika permasalaha biary iteger Programmig. Algoritma ii memiliki beberapa batasa yaitu : 1. Mecari ilai miimum dari fugsi objektif, Z = c k x k dega 0 c 1 c 2 c c 1 da x i {0,1} utuk i = 1, 2,,. 2. Seluruh betuk fugsi pembatas adalah c ik x k b i dega i = 1, 2, m. Dari syarat di atas, algoritma ii cukup memulai dega megeset seluruh solusi dega agka ol karea yag dicari merupaka ilai miimum da seluruh koefisie dari fugsi pembatas besar sama dega ol. Namu, fugsi batasa juga harus diperhatika, jika saat pegeseta awal ii tidak ada fugsi batasa yag dilaggar maka solusi telah ditemuka. Jika tidak maka diperluka adaya pegeseta agka satu atau tidak pada variabel dega ideks terkecil. Pegeseta pada ideks terkecil ii dilakuka karea igi mecari kemugkia ilai miimum terbaik (variable dega ideks terkecil memiliki koefisie yag terkeceil). Algoritma ii aka meghasilka solusi berupa (x 1, x 2,, x ) dega x i {0,1} utuk i = 1, 2,,. Sehigga poho yag dibetuk merupaka poho bier. Utuk perhituga cost tiap ode, dapat dilakuka sebagai berikut : 1. Jika ode utuk x N diset dega agka 1, maka algoritma berasumsi bahwa solusi sekarag merupaka solusi yag mugki, sehigga cost utuk ode tersebut adalah N c k x k. 2. Jika ode utuk x N diset dega agka 0, maka ilai cost utuk ode tersebut adalah N c k x k + c N+1. Hal ii karea pembagkita aak terjadi dikareaka adaya fusgsi batasa yag tidak dipeuhi. Pembagkita ode pada kasus ii tidak memberika efek perubaha terhadap fugsi batasa yag tidak dipeuhi. Sehigga harus diset 1 utuk variable yag memiliki ilai terkecil terbaru x N+1. Utuk meetuka solusi yag diberika merupaka solusi yag fisibel atau tidak. Aka dicek dega x 1, x 2 x N pada fugsi pembatas ketika x N = 1 atau x 1, x 2 x N+1 ketika x N = 0 (variable bebas diset 0). Terdapat dua kasus dalam pegeceka fugsi pembatas ii yaitu : 1. Jika solusi tersebut tidak melaggar seluruh fugsi pembatas maka ode tersebut medapat status fathomed. Node yag berstatus fathomed mejadi solusi semetara jika masih ada ode yag memiliki ilai lebih redah dari ode tersebut. Sebalikya, ode yag berstatus fathomed mejadi solusi utama jika tidak ditemuka ode yag memiliki ilai cost yag lebih redah dari ya. 2. Jika solusi tersebut melaggar salah satu atau lebih fugsi pembatas maka ode tersebut medapatka status ifeasible. Terdapat sebuah status lagi yag diguaka utuk meetuka suatu ode utuk dibagkitka aakya atau tidak. Status tersebut adalah impossible. Hal ii bisa diuji dega megeset ilai satu pada variable bebas yag memiliki koefisie positif sedagka ilai 0 utuk variable bebas yag memiliki koefisie egatif da ilai variable yag sudah pasti pada fugsi pembatas. Apabila ruas kiri fugsi pembatas lebih kecil dari ruas kaa maka ode tersebut impossible. Pada ode ii tidak perlu dibagkitka aakya. Pegujia utuk status ii haya dilakuka utuk fugsi pembatas yag dipeuhi oleh ode. III. ANALISIS MASALAH A. Represetasi Biary Iteger Programmig agar Bisa Diselesaika dega Balas Additive Algorithm Biary Iteger Programmig memiliki betuk yag sagat geeral sehigga perlu peyesuaia agar memeuhi batasabatasa yag dimiliki oleh Balas Additive Algorithm. Berikut Makalah IF2211 Strategi Algoritma, Semester II Tahu 2015/2016
perubaha-perubaha yag harus dilakuka agar memeuhi batasa yag dimiliki oleh Balas Additive Algorithm : 1. Utuk mecari ilai maksimum utuk suatu fugsi objektif dapat dilakuka dega megalika fugsi objektif tersebut dega -1 lalu cari ilai miimum dari fugsi tersebut. 2. Fugsi objektif yag setiap variable x i mempuyai koefisie egatif, utuk variable x i digati dega (1- x j ). 3. Fugsi kedala i dega betuk tidak persamaa aka diubah kedalam betuk dega megalika kedua ruas dega -1. 4. Fugsi kedala yag memiliki betuk persamaa aka diubah mejadi betuk pertidaksamaa. c ik x k = b i { c ik x k c ik x k b i b i Aka dibuktika satu persatu bahwa ketiga perubaha di atas tidak aka megubah solusi yag igi dihasilka da dapat dicari solusiya dega Balas Additive Algorithm. Bukti omor 1 : Jelas bahwa ketika suatu fugsi F memiliki ilai miimum sebesar MIN maka fugsi G = -F aka memiliki ilai maksimum sebesar MIN. Bukti omor 2 : Misalka I adalah subset dari himpua {1,2, } sehigga c i 0 da J adalah dari himpua {1,2, } sehigga c i < 0. Jelas bahwa J da I tidak memiliki himpua irisa. Sehigga, tersbut aka berubah mejadi berlawaa dega yag sebelumya. Bukti omor 4 : Perhatika bahwa saat x memeuhi f(x) = b maka x juga aka memeuhi f(x) b da -f(x) -b (f(x) b). B. Pegujia Dalam percobaa ii aka diperlihatka lagkah per lagkah pecaria solusi dega metode Balas Additive Algorithm utuk meyelesaika beberapa Biary Iteger Programmig. 1. Kasus Uji 1 Cari solusi x 1, x 2, x 3, x 4, x 5, x 6 agar Z = 3x 1 + 5x 2 + 6x 3 + 9x 4 + 10x 5 + 10x 6 berilai miimum, dega fugsi pembatas : 2x 1 + 6x 2 3x 3 + 4x 4 + x 5 2x 6 2 5x 1 3x 2 + x 3 + 3x 4 2x 5 + x 6 2 5x 1 x 2 + 4x 3 2x 4 + 2x 5 x 6 3 Perhatika bahwa fugsi objektif da fugsi pembatas telah memeuhi syarat dari batasa Balas Additive Algorithm. Agar memudahka dalam pejelasa tiap-tiap tahapya aka diilustrasika dibawah ii : Z = c k x k = c k x k + c k x k k I = c k x k + c k (1 x k ) k I = c k x k + c k x k + c k k I Perhatika bahwa x = 1 x sehigga ilai dari x {1,0}. Z = k I c k x k + c k x k merupaka fugsi pembatas yag koefisieya 0 da c k merupaka bilaga kosta sehigga dega mecari solusi x agar Z miimum dega Balas Additive Algorithm memiliki dampak yag sama utuk solusi x agar Z miimum. Bukti omor 3 : Jelas bahwa ketika suatu fugsi pertidaksamaa kedua ruasya dikalika dega -1 maka tada dari pertidaksamaa Gambar 1. Poho ruag status yag terbetuk utuk persoalaam kasus uji 1 dega Balas Additive Algorithm. Iterasi Lagkah pecaria solusi : Simpul- Ekspa Simpul Hidup 1 1 2, Cost = Z(1,0,0,0,0,0) = 3 Fugsi pembatas satu ( 2) -2*1+6*0-3*0+4*0+1*0-2*0 = -2 Makalah IF2211 Strategi Algoritma, Semester II Tahu 2015/2016
-2*1+6*1-3*0+4*1+1*1-2*0 = 9 Fugsi pembatas dua ( -2) -5*1-3*0+1*0+3*0-2*0+1*0 = -5-5*1-3*0+1*1+3*1-2*0+1*1 = 0 Fugsi pembatas tiga ( 3) : 5*1-1*0+4*0-2*0+2*0-1*0 = 5 3, Cost = Z(0,1,0,0,0,0) = 5 Fugsi pembatas satu ( 2) -2*0+6*1-3*0+4*0+1*0-2*0 = 6 Fugsi pembatas dua ( -2) -5*0-3*1+1*0+3*0-2*0+1*0 = -3-5*0-3*0+1*1+3*1-2*0+1*1 = 5 Fugsi pembatas tiga ( 3) : 5*0-1*1+4*0-2*0+2*0-1*0 = -1 5*0-1*0+4*1-2*0+2*1-1*0 = 6 2 2 4, Cost = Z(1,1,0,0,0,0) = 8 Fugsi pembatas satu ( 2) -2*1+6*1-3*0+4*0+1*0-2*0 = 4 Fugsi pembatas dua ( -2) -5*1-3*1+1*0+3*0-2*0+1*0 = -8-5*1-3*1+1*1+3*1-2*0+1*1 = -3 (impossible) Fugsi pembatas tiga ( 3) : Tidak perlu dicek karea sudah ditemuka status impossible pada fugsi pembatas sebelumya 5, Cost = Z(1,0,1,0,0,0) = 9 Fugsi pembatas satu ( 2) -2*1+6*0-3*1+4*0+1*0-2*0 = -5-2*1+6*0-3*0+4*1+1*1-2*0 = -2 Fugsi pembatas dua ( -2) -5*1-3*0+1*1+3*0-2*0+1*0 = -4-5*1-3*0+1*1+3*1-2*0+1*1 = 0 Fugsi pembatas tiga ( 3) : 5*1-1*0+4*1-2*0+2*0-1*0 = 9 3 3 6, Cost = Z(0,1,0,0,0,0) = 5 Fugsi pembatas satu ( 2) -2*0+6*1-3*0+4*0+1*0-2*0 = 6 Fugsi pembatas dua ( -2) Makalah IF2211 Strategi Algoritma, Semester II Tahu 2015/2016
-5*0-3*1+1*0+3*0-2*0+1*0 = -3-5*0-3*1+1*1+3*1-2*0+1*1 = 2 Fugsi pembatas tiga ( 3) : 5*0-1*1+4*0-2*0+2*0-1*0 = -1 5*0-1*1+4*1-2*0+2*1-1*0 = 5 7, Cost = Z(0,0,1,0,0,0) = 6 Fugsi pembatas satu ( 2) -2*0+6*0-3*1+4*0+1*0-2*0 = -2-2*0+6*0-3*0+4*1+1*1-2*0 = 5 Fugsi pembatas dua ( -2) -5*0-3*0+1*1+3*0-2*0+1*0 = 1 Fugsi pembatas tiga ( 3) : 5*0-1*0+4*1-2*0+2*0-1*0 = 4 4 6 8, Cost = Z(0,1,1,0,0,0) = 11 Fugsi pembatas satu ( 2) -2*0+6*1-3*1+4*0+1*0-2*0 = 3 Fugsi pembatas dua ( -2) -5*0-3*1+1*1+3*0-2*0+1*0 = -2 Fugsi pembatas tiga ( 3) : 5*0-1*1+4*1-2*0+2*0-1*0 = 3 Solusi semetara (icumbet) 9, Cost = Z(0,1,0,1,0,0) = 14 Karea cost yag dimiliki lebih besar dari icumbet maka tidak perlu dicek statusya yag lai. 5 7 10, Cost = Z(0,0,0,1,0,0) = 9 Ifeasible : 1 11, Cost = Z(0,0,1,0,0,0) = 6 Impossible : 3 6 10 12, Cost = Z(0,0,0,1,1,0) = 15 Karea cost yag dimiliki lebih besar dari icumbet maka tidak perlu dicek statusya yag lai. 13, Cost = Z(0,0,0,1,0,1) = 16 Karea cost yag dimiliki lebih besar dari icumbet maka tidak perlu dicek statusya yag lai. 7 5 14, Cost = Z(1,0,1,0,0,0) = 9 Impossible : 1 15, Cost = Z(1,0,0,1,0,0) = 12 8 8 Solusi ditemuka Karea cost yag dimiliki lebih besar dari icumbet maka tidak perlu dicek statusya yag lai. Tabel I. Lagkah-lagkah pecaria solusi BIP Dari lagkah diatas didapat solusiya adalah (0,1,1,0,0,0). Dega ilai Z = 11. Melalui Balas Additive Algorihm, permasalaha dapat diselesaika dega membagkit 15 ode dari 64 kemugkia ode yag dapat dibagkitka. Algoritma ii sagat efektif terutama dalam pecaria pasaga keputusa yag cukup bayak. Makalah IF2211 Strategi Algoritma, Semester II Tahu 2015/2016
2. Kasus Uji 2 Cari solusi x 1, x 2 agar Z = 3x 1 5x 2 + 6x 3 berilai miimum, dega fugsi pembatas : 2x 1 + 6x 2 = 4 3x 1 + x 3 1 Perhatika bahwa fugsi objektif da fugsi pembatas belum memeuhi batasa betuk Balas Additive Algorithm. Sehigga betuk diatas harus diubah terlebih dahulu. Misalka x 2 = 1-x 2. Sehigga Z = 3x 1 5(1 x 2 ) + 6x 3 = 3x 1 + 5x 2 + 6x 3 5 2x 1 + 6x 2 = 4 2x 1 + 6(1 x 2 ) = 4 2x 1 6x 2 = 2 Sehigga persoalaa diatas dapat diubah mejadi Cari solusi x 1, x 2 agar Y = 3x 1 + 5x 2 + 6x 3 berilai miimum, dega fugsi pembatas : 2x 1 + 6x 2 4 2x 1 6x 2 4 3x 1 x 3 1 Didapat poho solusi dari permasalaha di atas adalah pembatasya. Cara perubaha represetasi biary iteger programmig agar dapat diselesaika dega Balas Addative Algorithm telah dijelaska pada makalah ii. Dega cara perubaha ii, seluruh persoalaa BIP yag ada dapat diselesaika dega Balas Addative Algorithm. VI. PENUTUPAN Pada kesempata ii, peulis megucapka terima kasih kepada Allah SWT atas segala keikmata yag telah diberika baik berupa ikmat ima, kesehata, maupu kekuata dalam meyusu makalah ii. Peulis juga megucapka terima kasih kepada kedua orag tua peulis yag telah medidik da membesarka peulis dega peuh kasih sayag. Selajutya, peulis juga megucapka terima kasih kepada Ibu Nur Ulfa Maulidevi da Bapak Rialdi Muir selaku dose pegajar mata kuliah Strategi Algoritma atas segala bimbiga serta ilmu yag telah diberika kepada peulis. Tidak lupa peulis sampaika pula rasa terima kasih kepada reka-reka peulis yag selalu medukug, medorog, serta memberi semagat kepada peulis dalam meyelesaika makalah ii. Terakhir, peulis juga meyampaika terima kasih kepada seluruh pihak yag ikut membatu Makalah IF2211 Strategi Algoritma Sem. II Tahu 2015/2016 pembuata makalah ii baik yag secara lagsug maupu tidak lagsug. DAFTAR PUSTAKA [1] Muir, Rialdi, 2009. Diktat Kuliah IF2211 Strategi Algoritma. Program Studi Tekik Iformatika STEI ITB [2] Wolsey, Laurece A. Iteger programmig [3] Balas, E. 1965. A Additive Algorithm for Solvig Liear Programs with Zero-Oe variables. Operatios Research, 13(4), 517-546. PERNYATAAN Dega ii saya meyataka bahwa makalah yag saya tulis ii adalah tulisa saya sediri, buka sadura, atau terjemaha dari makalah orag lai, da buka plagiasi. Gambar 2. Poho ruag status yag terbetuk utuk persoalaam kasus uji 2 dega Balas Additive Algorithm. Dari lagkah diatas didapat solusiya adalah (1,0,0). Dega ilai Y = 3. Sehigga didapat solusi utuk ilai Z adalah (1,1-0,0) = (1,1,0) dega ilai Z = Y - 5 = -2. V KESIMPULAN Biary Iteger Programmig yag merupaka permasalaha sehari-hari yag serig terjadi dapat diselesaika dega cepat megguaka Balas Additive Algotihm walaupu algoritma tersebut memiliki batasa dalam fugsi objektif da fugsi Badug, 8 Mei 2016 Aditio Pagestu Makalah IF2211 Strategi Algoritma, Semester II Tahu 2015/2016