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