Metode Balas Pemrograman 0-1 Pada Penentuan Minimum Spanning Tree Yang Memenuhi Kendala Biaya

melanggar kendala pertama. Kemudian coba dilakukan pembulatan ke bawah pada 2 x sehingga 2,1 dengan 7 Z , tetapi nilai 7 Z bukanlah solusi integer optimal dari permasalahan ini karena solusi integer optimal dari permasalahan ini adalah 0, 2 dengan 1 0 Z . Nilai integer optimal terletak begitu jauh dari solusi LP optimal dan tidak memungkinkan hasil integer optimal ini didapat dengan cara melakukan pembulatan dari LP optimal. Hal yang dilakukan dalam menemukan solusi integer optimal adalah dengan cara mengenumerasikan semua solusi yang mungkin dan memilih satu solusi terbaik. Cara ini tentu mudah apabila permasalahan yang dihadapi tidak terlalu rumit, di mana tidak banyak variabel yang terlibat namun hal ini akan berbeda jika permasalahan yang dihadapi melibatkan variabel yang banyak. Misalkan terdapat sebuah permasalahan yang berbentuk pemrograman 0-1 yang melibatkan 20 variabel, maka banyaknya enumerasi yang mungkin di bentuk adalah 20 2 1.048.576 dan ini masih memungkinkan apabila menggunakan bantuan komputer. Jika dihadapkan pada 100 variabel, maka 100 30 2 1.268 10 x yang mana hampir tidak memungkinkan apabila dikerjakan pada komputer tercepat sekalipun.

2.6 Metode Balas

Balas Additive Algorithm Branch and bound merupakan salah metode dalam menyelesaikan permasalahan integer programming . Dasar dari metode ini adalah dengan cara mengenumerasi semua solusi integer yang mungkin dalam bentuk struktur tree. Misalkan sebuah enumerasi secara lengkap dari sebuah permasalahan di mana terdapat 3 tiga variabel 1 2 3 , , x x x yang mana 1 1 3 x , 2 1 x dan 3 1 1 x . Gambar 2.9 akan memperlihatkan enumerasi secara lengkap dari dari setiap variabel. Universitas Sumatera Utara Gambar 2.9 Tree enumerasi secara lengkap Ide utama dari metode branch and bound adalah menghindari pembentukan seluruh cabang tree yang mungkin karena hal ini akan sangat rumit jika berhadapan dengan permasalahan dengan variabel yang banyak. Dalam metode branch and bound pembentukan cabang pada setiap tingkatan hanya akan dilakukan pada node yang memberi harapan dan memungkinkan mendapatkan solusi optimal. Dalam penentuan node yang lebih menjanjikan untuk mendapatkan solusi optimal adalah dengan melakukan pendekatan terhadap batas pada nilai terbaik dari fungsi objektif. Metode ini disebut dengan percabangan. Percabangan branching adalah membangun node terpilih untuk selanjutnya akan cabangkan lagi ke tingkat selanjutnya yang merupakan anak dari node yang telah dibentuk sehingga diharapkan pada penyelesaian akhir hanya sedikit bagian dari enumerasi secara lengkap yang dibentuk. Hal terpenting dalam metode branch and bound adalah penghentian percabangan, yang mana akan dilakukan pemotongan secara permanen dan tidak dilakukan percabangan lagi pada node yang sudah ditentukan. Penghentian percabangan ini dilakukan jika bisa dipastikan bahwa untuk percabangan pada tingkat selanjutnya tidak akan memperoleh hasil yang fisibel maupun optimal. Penghentian percabangan ini merupakan bagian yang paling penting guna menghindari percabangan yang terlalu banyak pada tree. 2 x 3 x 1 x 1 2 3 1 1 1 1 1 1 1 1 Z 1 Universitas Sumatera Utara Dalam pendeskripsian metode branch and bound secara detil akan dilakukan pendefinisian terhadap beberapa terminologi: Node: Solusi sebagian atau solusi lengkap. Sebagai contoh, sebuah node pada tingkatan ke dua dari permasalahan yang melibatkan 5 variabel akan di presentasikan sebagai solusi sebagian 3 4 5 3,17, , , x x x yang mana variabel pertama bernilai 3 dan variabel ke dua bernilai 17, sedangkan nilai untuk tiga variabel belum diberikan dan dianggap sebagai variabel bebas. Leaf Leaf Node: Sebuah solusi lengkap yang mana semua variabel telah di ketahui nilainya. Bud bud node: Sebuah solusi sebagian baik itu fisibel maupun tidak yang selanjutnya masih akan dilakukan percabangan lagi. Bounding function fungsi pembatas: Metode dalam pendekatan nilai terbaik dari fungsi objektif yang dihasilkan pada saat bud node dicabangkan. Hanya bud node yang mempunyai nilai fungsi pembatas. Branching percabangan: proses pembentukan anak dari node untuk setiap bud node. Sebuah anak dari node dibentuk untuk setiap variabel selanjutnya yang mungkin. Incumbent: Penyelesaian terbaik yang telah didapatkan sejauh percabangan yang sudah dibentuk. Pada saat pertama dimulai proses pencarian solusi belum ditentukan nilai incumbent. Dalam kasus ini solusi fisibel pertama akan menjadi incumbent sampai ditemukan solusi fisibel yang lebih baik dari nilai incumbent yang ada dan menggantikan posisi incumbent itu. Sampai tidak ada lagi node yang bisa dicabangkan, nilai incumbent ini menilai nilai solusi optimal. Ada beberapa aturan dalam pemilihan node untuk memilih bud node selanjutnya dalam percabangan selanjutnya: Best-first or global bud node selection: Pemilihan bud node dilakukan dengan memilih bud node yang memiliki nilai terbaik bagi fungsi objektif. Pada kasus minimize ini berarti akan dipilih bud node yang mempunyai nilai fungsi objektif minimum, sebaliknya pada masalah maximize. Universitas Sumatera Utara Depth-first: Pemilihan akan hanya dilanjutkan pada bud node yang telah di bentuk kemudian memilih bud node yang mempunyai nilai terbaik dari bud node yang lain pada tingkatan yang sama. Pemilihan secara depth-first terarah pada penelusuran terhadap satu bud node sehingga hal ini memungkinan lebih cepat mendapatkan penyelesaian secara lengkap leaf. Setelah didapatkan leaf percabangan akan dilanjut kan pada bud node di tingkatan atas yang belum dicabangkan. Breadth-first: Percabangan bud node dilakukan pada tingkatan yang sama di mana bud node itu dibentuk pertama kali. Salah satu variasi dari metode Branch and Bound adalah metode Balas. Egon Balas mengembangkan suatu cara atau algoritma untuk menyelesaikan persoalan pemrograman 0-1 . Pendekatan yang dilakukan adalah pendekatan enumerasi, baik secara total maupun secara implicit terhadap setiap kombinasi variabel yang diatur sama dengan 0 dan 1. Pada dasar nya algoritma Balas bekerja adalah sebagai berikut: 1. Bentuk umum dari algoritma Balas adalah: 1 1 2 1, 2, ..., 1, 2, ..., ... n j j j ij j i n M in im ize c x Su b je c t to a x b i m j n c c c Kondisi yang tidak mengikuti bentuk umum dari algoritma Balas akan dilakukan beberapa perubahan, antara lain: Fungsi objektif yang setiap variabel j x mempunyai nilai koefisien negatif, untuk variabel j x diganti menjadi 1 j x . 1 j j x x Universitas Sumatera Utara Kendala i dengan pertidaksamaan , pertidaksamaan ini akan diubah kedalam bentuk dengan cara mengalikan ruas kiri dan kanan dengan 1 . ij j i ij j i a x b a x b Kendala yang merupakan bentuk persamaan, diubah ke dalam bentuk pertidaksamaan. ij j i ij j i ij j i a x b a x b a x b 2. Fungsi objektif berbentuk minimalisasi, dan semua koefisien pada fungsi objektif harus bernilai nonnegative . Untuk mendapatkan nilai terkecil dari Z hal yang dilakukan adalah dengan memberikan nilai 0 pada semua variabel j x . 3. Pemberian nilai 0 pada semua variabel j x ternyata melanggar salah satu atau lebih dari kendala yang telah ditentukan, akan dilakukan percabangan dengan memberikan nilai 0 dan 1 pada setiap cabang yang dibentuk. 4. Penentuan nilai fungsi pembatas dari percabangan yang telah dibentuk: 1 N x , 1 N j j j Z c x N x , 1 1 N j j N j Z c x c Keterangan: N x = variabel yang diberikan nilai pada level percabangan tertentu, dan Z = nilai fungsi pembatas 5. Untuk menentukan apakah solusi yang diberikan oleh fungsi pembatas fisibel atau tidak dilakukan dengan mengambil semua variabel N x ketika 1 N x atau 1 N x ketika N x dan variabel bebas yang akan diberikan nilai 0 kemudian diuji terhadap kendala yang ada. Jika semua kendala terpenuhi pada solusi yang diberikan oleh fungsi pembatas, maka node tersebut terukur fathomed selama tidak memungkinkan lagi akan didapatkan solusi yang Universitas Sumatera Utara lebih baik pada node tersebut apabila node tersebut dicabangkan lagi. Dengan adanya solusi fisibel yang diberikan oleh fungsi pembatas yang memenuhi kendala maka nilai fungsi pembatas ini disebut dengan solusi sementara incumbent . Untuk solusi fisibel selanjutnya yang didapatkan akan di bandingkan dengan solusi sementara yang ada. Jika solusi baru yang dihasilkan lebih baik dari solusi sementara yang ada, maka nilai incumbent akan digantikan oleh solusi yang baru, begitu seterusnya sampai didapatkan solusi yang optimal. 6. Sebuah bud node dikatakan terukur fathomed infisibel jika percabangan yang dilakukan pada bud node tersebut tidak akan menghasilkan solusi yang fisibel. Hal ini bisa dilakukan dengan menguji setiap kendala dengan memberikan nilai 1 pada semua variabel bebas yang memiliki koefisien positif dan nilai 0 pada varibel bebas yang koesifien bernilai negatif. Apabila nilai sisi kiri dari pertidaksamaan kendala ternyata masih lebih kecil dari nilai sisi kanan, kendala tersebut tidak akan bisa memenuhi, sehingga node tersebut bisa dieleminasi sebagai “imposible”. 7. Algoritma Balas menggunakan strategi depth-first node selection untuk pemilihan node dalam percabangan.

2.7 Program QM for Windows