BAB 2
LANDASAN TEORI
Pada bab ini akan diuraikan mengenai teori dan terminologi graph, yaitu bentuk-bentuk khusus suatu graph. Di sini juga akan dijelaskan mengenai minimum spanning tree, pemrograman 0-1, dan aplikasi QM for Windows.
2.1 Definisi Graph
Sebuah graph G didefinisikan sebagai pasangan himpunan (V,E) di mana V merupakan himpunan verteks v v1, 2, ...,vn dan E merupakan himpunan edge yang menghubungkan sepasang verteks e e1, 2, ...,en atau dapat ditulis dengan notasi G=(V,E).
Berdasarkan ada tidaknya loop atau multi egde pada suatu graph, secara umum graph dapat digolongkan menjadi dua jenis, yaitu simple graph dan unsimple graph.
Definisi 2.1 Simple graph
Sebuah graph G dikatakan simple graph jika apabila graph tersebut tidak terdapat multiple edge maupun loop. Dikatakan multiple edge karena terdapat lebih dari dua edge yang menghubungkan pasangan verteks yang sama, sedangkan loop adalah edge yang menghubungkan verteks yang sama v vi, i . Gambar 2.1( )a
merupakan simple graph.
Definisi 2.2 Unsimple graph
Sebuah graph G dikatakan unsimple graph apabila pada graph terdapat multiple edge, maupun loop. Apabila graph tersebut mengandung multiple edge, graph tersebut disebut dengan graph ganda (multi graph), seperti pada Gambar 2.1( )b . Untuk graph yang mengandung loop disebut dengan graph semu
(pseudograph). Pada Gambar 2.1( )c merupakan pseudograph karena terdapat loop pada e v2,v2 .
Gambar 2.1 Contoh graph ( )a simple graph, ( )b multi graph, ( )c pseudograph
Berdasarkan orientasi arah pada setiap edge, secara umum graph dibedakan menjadi graph tak-berarah (undirected graph) dan graph berarah (directed graph atau digraph).
Definisi 2.3 Graph tak-berarah (undirected graph)
Graph yang setiap edge-nya tidak mempunyai orientasi arah disebut dengan graph tak-berarah. Pada graph tak-berarah urutan pasangan verteks tidak diperhatikan sehingga u v, v u, . Gambar 2.1( )a ,( )b , dan ( )c disebut juga dengan undirected graph.
Definisi 2.4 Graph berarah (directed graph)
Untuk graph yang setiap edge-nya mempunyai orientasi arah disebut dengan graph berarah. Pada graph berarah urutan pasangan verteks diperhatikan sehingga
, ,
u v v u . Gambar 2.2 merupakan contoh dari directed graph.
Gambar 2.2 Directed graph
3 v v3 1 v 2 v v1 4 v 2 v ( )a 1 v 3 v 2 v ( )b ( )c 1 v 2 v 3 v 4 v
2.2 Terminologi Dasar Graph
Definisi 2.5 Adjancent
Dua buah verteks pada undirected graph, u adjancent dengan v dengan
( , )u v adalah edge pada graph tersebut.
Definisi 2.6 Incident
Sebuah sembarang edge e u v, dikatakan incident dengan verteks u dan v.
Definisi 2.7 Path
Sebuah path adalah sebuah barisan dari himpunan verteks v v1, 2, ...,vn
dengan 1 , 1 n n v v n n e v v E untuk semua n 1, ...,n . Definisi 2.8 Cycle
Sebuah cycle adalah sebuah path v v1, 2, ...,vn dengan edge
1, 2 , 2, 3 , ..., n 1, n
v v v v v v sekaligus dengan edge vn,v1 .
Definisi 2.9 Connected
Sebuah graph tak-berarah G disebut connected graph untuk setiap pasang verteks u dan v di dalam himpunan V terdapat path dari u ke v.
Definisi 2.10 Cut-set
Cut-set dari connected graph G adalah himpunan edge. Jika salah satu edge tersebut tidak terdapat di G akan menyebabkan G tidak terhubung. Jadi, cut-set selalu menghasilkan dua buah komponen terhubung.
2.3 Trees
Tree adalah bentuk khusus dari graph. Adapun definisi dari tree adalah sebagai berikut:
Definisi 2.11 Tree
Sebuah graph T V E, disebut sebuah tree apabila memenuhi kondisi di bawah ini:
1. T merupakan connected graph 2. T tidak mengandung cycle
Sebuah graph T V E, yang merupakan tree dicontohkan pada Gambar 2.3
di bawah ini:
Gambar 2.3 Sebuah graph yang merupakan tree
Untuk selanjutnya akan dijelaskan beberapa sifat-sifat (properties) pada tree.
Teorema 2.1 Misalkan T V E, adalah sebuah tree dengan paling sedikit 2 (dua) verteks, untuk setiap pasangan verteks yang berbeda x y, V , terdapat unique path (lintasan khusus) di T dari x ke y.
Bukti
Selama T connected, terdapat sebuah path dari x ke y, misalkan menjadi
0( ), 1, ..., r( ) (1)
v x v v y
Kemudian anggap keterbalikan dari kondisi ini sehingga terdapat path yang berbeda
0( ), 1, ..., s( ) (2)
u x u u y
Di sini akan diperlihatkan T akan mempunyai cycle. Path (1) dan (2)
merupakan path yang berbeda, untuk i N sedemikian hingga
0 0, 1 1, ..., i i i 1 i 1 v u v u v u tetapi v u 1 v v4 7 v 5 v v8 3 v 6 v 2 v
Perhatikan himpunan verteks vi 1,vi 2, ...,vr. Selama kedua path
(1)dan(2)berakhir di y, maka kedua path tersebut akan bertemu kembali di y, sehingga untuk setiap j i 1,i 2, ...,r sedemikian hingga vj ul untuk setiap
1, 2, ...,
l i i s . Maka kedua path tersebut akan membentuk cycle. Hal ini kontradiktif dengan syarat T adalah sebuah tree.
Teorema 2.2 Misalkan T V E, adalah sebuah tree dengan paling sedikit 2 (dua) verteks. Kemudian graph yang diperoleh dari T dengan menghapus sebuah edge sehingga menjadi dua komponen, masing-masing komponen tersebut adalah tree.
Bukti
Diberikan u v, E , di mana T V E, . Kemudian edge ini dihapus, sehingga terdapat G V E, , di mana E E \ u v, . Didefinisikan relasi R pada V sebagai berikut. Dua verteks x y, V memenuhi xRy jika dan hanya jika x y
atau merupakan unique path di T dari x ke y dan tidak termasuk edge u v, . Di sini diperlihatkan R adalah relasi yang ekuivalen pada V, dengan dua golongan ekuivalen
u dan v . Di sini juga diperlihatkan u dan v merupakan dua komponen dari G, juga selama T tidak mempunyai cycle, akan terbentuk dua komponen.
Teorema 2.3 Jika T V E, adalah sebuah tree , maka E V 1.
Bukti
Pembuktian akan dilakukan dengan menginduksi jumlah verteks dari
,
T V E . Jelas hasil adalah benar untuk V 1. Misalkan hasil adalah benar untuk
V k . Misalkan T V E, dengan V k 1. Jika dihapus sembarang edge dari T, maka akan dihasilkan dua komponen graph. Akan didefinisikan ke dua komponen tersebut oleh
1 1, 1
T V E dan T2 V2,E2
Dari sini jelas V1 k dan V2 k. Dari induksi tersebut diketahui bahwa
1 1 1
E V dan E2 V2 1
Sehingga
1 2
V V V dan E E1 E2 1, sehingga E V 1
Definisi 2.12 Spanning tree
,
G V E merupakan sebuah connected graph, maka sebuah subset T dari E
disebut sebuah spanning tree dari G apabila T memenuhi dua kondisi berikut:
1. Setiap verteks di V terhubung oleh tepat satu edge di T. 2. Edge di T memenuhi kondisi tree.
Contoh 2.1 Diberikan sebuah graph seperti gambar di bawah ini:
Gambar 2.4 Graph G dengan 6 verteks dan 7 edge
Dari graph Gambar 2.4 bisa dibentuk beberapa spanning tree sebagai berikut:
Gambar 2.5 Spanning tree yang dibentuk dari graph pada Gambar 2.4
3 v 1 v v2 6 v 5 v 4 v 3 v 1 v v2 6 v 5 v 4 v 3 v 1 v v2 6 v 5 v 4 v 3 v 1 v v2 6 v 5 v 4 v
2.4 Minimum Spanning Tree
Definisi 2.13 Graph berjarak (distance graph)
Misalkan G V E, kemudian terdapat sebuah fungsi d :E N yang disebut fungsi jarak. Graph G bersama dengan fungsi jarak d :E N , disebut dengan graph berjarak (distance graph).
Contoh 2.2 Diberikan sebuah graph seperti gambar di bawah ini:
Gambar 2.6 Graph G dengan 6 verteks dan 7 edge
distance dari graph:
Gambar 2.7 Distance graph
mempunyai fungsi jarakd :E N , di mana
1, 2 , 1, 4 , 2, 3 , 2, 5 , 3, 6 , 4, 5 , 5, 6 E v v v v v v v v v v v v v v dengan 1 2 1 4 2 3 2 5 3 6 4 5 5 6 , 3 , 2 , 5 , 1 , 4 , 6 , 7 d v v d v v d v v d v v d v v d v v d v v 3 v 1 v v2 6 v 5 v 4 v 3 v 1 v v2 6 v 5 v 4 v 2 3 6 1 5 4 7
Definisi 2.14 Jarak spanning tree (distance of spanning tree)
Misalkan sebuah graph G V E, , bersama dengan fungsi jarakd :E N . Untuk selanjutnya G merupakan connected, dan T merupakan spanning tree dari G, maka nilai:
( ) e
e T
d T d
merupakan penjumlahan seluruh jarak pada semua edge di T, disebut dengan jarak spanning tree.
Untuk setiap graph G adalah sebuah graph berjarak (distance graph). Jelas, untuk setiap spanning tree T dari G akan mempunyai total jarak d T( ). Dari semua spanning tree T dari G, terdapat spanning tree yang mempuyai jarak d T( ) minimum.
Definisi 2.15 Minimum spanning tree
Sebuah graph G V E, , bersama dengan fungsi jarak d :E N , membentuk sebuah distance graph. Selanjutnya G connected, sebuah spanning tree dengan jarak d T( ) minimum dari semua spanning tree di G disebut dengan minimum
spanning tree.
Permasalahan minimum spanning tree bisa dirumuskan seperti di bawah ini:
m in e e T
d
T S T G
dengan ketentuan S T G adalah himpunan spanning tree dari graph.
Untuk persoalan minimum spanning tree akan diformulasikan dua kondisi optimal pada persoalan minimum spanning tree.
Teorema 2.4 Kondisi optimal cut (cut optimality condition) Sebuah spanning tree *
T adalah minimum spanning tree jika dan hanya jika untuk
setiap edge *
Bukti
Asumsikan terdapat sebuah minimum spanning tree T yang tidak memenuhi kondisi ini, maka akan diperoleh sebuah edge e T dan sebuah edge
, \
e e
f X V X dengan de df . Selanjutnya edge e digantikan dengan edge f,
sehingga diperoleh sebuah spanning tree dengan
\ e f
d T e f d T d d d T . Hal ini kontradiktif dengan nilai optimal dari T.
Pada bagian ini akan diperlihatkan bahwa untuk setiap spanning tree * T yang memenuhi kondisi di atas adalah optimal. Asumsikan T adalah minimum spanning tree dan *
T T . Kemudian terdapat paling sedikit satu edge e T* sehingga e T . Jika edge ini dimasukkan ke dalam T , maka T e akan membentuk cycle
,
C T e dengan sebuah edge f e di mana f mempunyai satu titik di Xe dan
\ e
V X . Selama T optimal, maka df de. Untuk selanjutnya edge e dihapus kemudian memasukkan edge f pada *
T , sehingga diperoleh T*\ e f , dengan
total jarak: * * * \ e f d T d T d d d T e f Spanning tree * \
T e f mempunyai sebuah tambahan edge yang sama dengan
T dan memenuhi kondisi optimal cut. Hal ini diulangi sampai akhirnya didapatkan
*
T T dengan d T( *) d T( ) sehingga *
T juga minimum spanning tree.
Dari Teorema 2.4 disimpulkan bahwa sebuah spanning tree mempunyai jarak minimum jika dan hanya jika tidak terdapat pertukaran edge e dan edge f (yang tidak membentuk cycle) sehingga de df adalah negatif.
Teorema 2.5 Kondisi optimal path (path optimality condition) Sebuah spanning tree *
T adalah minimum spanning tree jika dan hanya jika untuk
setiap edge f k l, yang tidak termasuk dalam spanning tree di mana de df
untuk setiap edge e yang merupakan bagian path di *
T yang menghubungkan k dan l.
Bukti
Diberikan sebuah minimum spanning tree *
T dan edge e i j, bagian dari path di *
T yang menghubungkan k dan l. Edge f k l, dan df de, selanjutnya dilakukan pertukaran edge e dan f. Dari pertukaran ini dihasilkan sebuah spanning tree baru dengan jarak lebih pendek dari *
T . Hal ini kontradiktif dengan optimal * T .
Diberikan sebuah edge e i j, dan misalkan Xe dan V \ Xe merupakan
himpunan verteks yang dihasilkan dengan menghapus edge e. Selanjutnya diberikan edge k l, dengan k Xe dan l V \ Xe. Sejak *
T memuat sebuah lintasan khusus (unique path) dari k ke l dan e adalah edge yang menghubungkan himpunan verteks
e
X dan V \ Xe, e adalah bagian dari path yang menghubungkan k dan l. Dari Kondisi optimal path diketahui bahwa de df di mana f k l, . Kondisi ini berlaku untuk
setiap edge f k l, berada dalam cut {Xe,V \ Xe} untuk setiap *
e T . Jadi * T
memenuhi kondisi optimal cut dan dari teorema 2.4 *
T adalah minimum spanning tree.
Secara umum ada beberapa metode penyelesaian pada permasalahan minimum spanning tree. Vojtech Jarnik (tahun 1930) dan Robert C.Prim (1975) secara terpisah menemukan sebuah algoritma untuk menyelesaikan persoalan minimum spanning tree. Algoritma ini kemudian disebut dengan dengan algoritma prim. Selain algoritma prim, permasalahan minimum spanning tree juga bisa diselesaikan dengan algoritma Kruskal, algoritma Boruvka, algoritma Sollin yang merupakan algoritma yang diturunkan dari algoritma Boruvka.
2.5 Integer programming
Integer programming merupakan bentuk khusus atau variasi dari linier programming, di mana salah satu atau lebih peubah-peubahnya dalam vektor penyelesaiannya memiliki nilai integer.
Dalam linier programming, salah satu asumsi yang melandasinya adalah divisibilitas dari peubah dan kendalanya. Dengan demikian, pada linier programming permasalahan dihadapkan pada kegiatan-kegiatan dan variabel yang bersifat kontinyu, sedangkan pada integer programming setiap variabel akan bersifat diskrit.
Contoh 2.3 Permasalahan integer programming dengan 2 (dua) variabel basis
1 2 1 2 1 1 2 5 1 0 2 0 2 , 0, in t M a xim ize Z x x S u b ject to x x x x x
Gambar 2.8 Penyelesaian integer programming dengan metode grafik
Solusi untuk linier programming pada permasalahan di atas adalah Z 1 1 di mana x1 2 dan x2 1, 8. Hal pertama yang dilakukan untuk mendapatkan solusi
integer adalah dengan melakukan pembulatan nilai dari variabel yang tidak integer, misalkan akan dilakukan pembulatan pada x2 sehingga (2, 2) namun pembulatan ini
2 x 1 x 1 2 1 Pembulatan ke atas LP Optimal Pembulatan bawah Integer Optimal Z=10 2 1 2 x 1 10 2 20 x x (0, 2) (2,1.8)
melanggar kendala pertama. Kemudian coba dilakukan pembulatan ke bawah pada x2
sehingga (2,1) dengan Z 7, tetapi nilai Z 7 bukanlah solusi integer optimal dari permasalahan ini karena solusi integer optimal dari permasalahan ini adalah (0, 2)
dengan Z 1 0.
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 10x 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 x1,x2,x3 yang mana 1 x1 3, 0 x2 1 dan 1 x3 1. Gambar 2.9 akan memperlihatkan enumerasi secara lengkap dari dari setiap variabel.
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 x3 1 x 1 2 3 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 Z 1 0
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,17,x3,x4,x5) 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.
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, ..., 0 ... n j j j ij j i n M in im ize c x S u b ject 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 xj mempunyai nilai koefisien
negatif, untuk variabel xj diganti menjadi (1 xj ).
(1 )
j j
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 xj 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 0 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 xN (ketika xN 1) atau xN 1 (ketika xN 0) 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
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
Software POM/QM for Windows adalah sebuah software yang dirancang untuk melakukan perhitungan yang diperlukan pihak manajemen untuk mengambil keputusan di bidang produksi dan pemasaran. Software ini dirancang oleh Howard J. Weiss tahun 1996 untuk membantu menejer produksi khususnya dalam menyusun prakiraan dan anggaran untuk produksi bahan baku menjadi produk jadi atau setengah jadi dalam proses pabrikasi.
Untuk mengoperasikan QM for Windows dibutuhkan syarat-syarat komputer yang berbasiskan sistem operasi Windows. Spesifikasi minimal untuk komputer adalah sebagai berikut:
Gambar 2.10 Tampilan awal program QM for Windows
1. Pentium I (minimal 100 MHz)
2. Tersedia ruang kosong di Hardisk minimal 20 MB (Mega Byte) 3. Memori 16 MB (Mega Byte)
4. Printer
Sistem operasi minimal yang digunakan adalah Windows 3.11. Disarankan minimal menggunakan Windows 95 ke atas. Program ini mampu menyelesaikan beberapa persoalan yang berhubungan dengan pengambilan keputusan seperti permasalahan assignment, game theory, goal programming, inventory, linier programming, integer programming, dan lain-lain. Dalam hal ini penulis menggunakan program QM for Windows versi 2.1 (build 67).