3. Jadikan solusi pada penyelesaian langkah 1 menjadi batas atas dan untuk
batas bawahnya merupakan solusi yang variabel keputusannya telah dibulatkan rounded–down.
4. Pilih variabel yang mempunyai nilai pecahan terbesar artinya bilangan
desimal terbesar dari masing-masing variabel untuk dijadikan pencabangan
ke dalam sub-masalah. Tujuannya adalah untuk menghilangkan solusi yang tidak memenuhi persyaratan integer dalam masalah itu. Pencabangan itu
dilakukan secara mutually exclusive untuk memenuhi persyaratan integer dengan jaminan tidak ada solusi fisibel layak yang diikutsertakan.
5. Untuk setiap sub-masalah, nilai optimum fungsi tujuan ditetapkan sebagai
batas atas. Solusi optimum yang dibulatkan menjadi batas bawah solusi yang sebelumnya tidak bulat kemudian dibulatkan. Sub-masalah yang memiliki
batas atas kurang dari batas bawah yang ada, tidak diikutsertakan pada analisa selanjutnya. Suatu solusi integer fisibel layak adalah sama baik atau lebih
baik dari batas atas untuk setiap sub-masalah yang dicari. Jika solusi yang demikian terjadi, suatu sub-masalah dengan batas atas terbaik dipilih untuk
dicabangkan. Kembali ke langkah 4.
2.7 Metode Cutting Plane
Metode cutting plane yang digunakan untuk menyelesaikan masalah secara umum, pertama kali dikemukakan oleh Gomory 1963. Metode cutting plane
merupakan metode yang digunakan untuk menyelesaikan program integer linier, baik integer murni maupun campuran dengan penambahan batasan baru yang
disebut gomory. Batasan gomory diberikan jika nilai dari variabel keputusan belum integer bernilai pecahan. Batasan-batasan tersebut secara efektif akan
menyingkirkan beberapa ruang penyelesaian yang tidak berisi titik integer yang layak, tetapi tidak pernah menyingkirkan satupun titik integer yang layak Taha,
1996.
Langkah-langkah prosedur gomory diringkas seperti berikut:
1. Selesaikan masalah program integer dengan menggunakan metode simpleks.
Masalah sederhana dapat diselesaikan dengan pendekatan grafik, sehingga pendekatan gomory kurang efisien.
2. Periksa solusi optimum. Jika semua variabel basis memiliki nilai integer,
solusi optimum integer telah diperoleh dan proses solusi telah berakhir. Jika satu atau lebih variabel basis masih meiliki nilai pecah, teruskan ke tahap 3.
3. Buatlah suatu batasan gomory dan cari solusi optimum melalui prosedur dual
Simpleks. Kembali ke tahap 2 Taha, 1996.
Misalnya diberikan sebuah permasalahan integer programming berikut:
Tabel 2.1 Tabel Optimum Masalah Program Linier Basis
�
1
… �
�
… �
�
�
1
… �
�
… �
�
Hasil �
… …
�
1
� …
�
�
� …
�
�
��� �
�
1
1 …
… �
1 1
… �
1 �
… �
1 �
�
1
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
�
�
… 1
… �
� 1
… �
� �
… �
� �
�
�
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
�
�
… …
1 �
� 1
… �
� �
… �
� �
�
�
Tentukan baris sumber dengan menentukan baris variabel keputusan yang akan dibulatkan. Jika lebih dari satu, dipilih nilai pecahan terbesar.
�
�
= �
�
− � �
� �
�
� �
� =1
; �
�
tidak integer 2.3
misalkan: �
�
= [ �
�
] + �
�
�
� �
= ��
� �
� + �
��
di mana: [
�
�
] adalah integer terbesar sehingga [ �
�
] ≤ �
�
. ��
� �
� adalah integer terbesar sehingga ��
� �
� ≤ �
� �
.
Disimpulkan bahwa �
�
1 dan 0 �
��
1, yang mana �
�
dan �
��
adalah pecahan positif, sehingga: �
�
= �
�
− � �
� �
�
� �
� =1
�
�
= [ �
�
] + �
�
− ����
� �
� + �
��
��
� �
� =1
�
�
= [ �
�
] + �
�
− ���
� �
��
�
+ �
��
�
� �
� =1
�
�
− � �
��
�
� �
� =1
= �
�
− [�
�
] + ���
� �
��
� �
� =1
2.4
Agar semua variabel �
�
dan �
�
adalah integer, maka sisi kanan dari Persamaan 2.4 haruslah integer yang berakibat sisi kiri juga harus integer. Karena
�
��
≥ 0 dan �
�
≥ 0 untuk semua i dan j maka: � �
��
�
� �
� =1
≥ 0 akibatnya,
�
�
− � �
��
�
� �
�=1
≤ �
�
≤ 1 karena
�
�
− ∑ �
��
�
� �
� =1
harus bernilai integer, satu kondisi untuk memenuhi sifat integer ini menjadi:
�
�
− � �
��
�
� �
� =1
≤ 0
�
�
− � �
��
�
� �
�=1
+ �
�
�
= 0
batasannya dapat ditulis dalam bentuk: �
�
�
= � �
��
�
� �
� =1
− �
�
2.5
atau, �
�
�
− � �
��
�
� �
�=1
= −�
�
2.6
Tabel 2.2 Setelah Penambahan Pemotongan Fraksional Basis
�
1
… �
�
… �
�
�
1
… �
�
… �
�
�
�
�
Hasil �
… …
�
1
� … �
�
� … �
�
��� �
�
1
1 …
… �
1 1
… �
1 �
… �
1 �
�
1
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
.
�
�
… 1
… �
� 1
… �
� �
… �
� �
�
�
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. �
�
… …
1 �
� 1
… �
� �
… �
� �
1 �
�
�
�
�
… …
−�
�1
… −�
��
… −�
��
1 −�
�
di mana
�
�
�
adalah variabel slack nonnegatif yang berdasarkan definisinya haruslah integer. Persamaan batasan ini mendefinisikan pemotong fraksional. Dari
Tabel 2.2
�
�
= 0 dan
�
�
�
= −
�
�
tidak layak. Ini berarti bahwa batasan baru tersebut tidak dipenuhi oleh solusi yang diberikan. Metode dual Simpleks dapat
dipergunakan untuk mengatasi ketidaklayakan ini yang setara dengan memotong bidang solusi ke arah solusi integer optimal.
Jika solusi baru setelah menerapkan metode dual Simpleks adalah integer, proses berakhir. Jika tidak, sebuah gomory baru ditambahkan dari tabel yang
dihasilkan dan metode dual Simpleks kembali digunakan untuk mengatasi ketidaklayakan. Prosedur ini dilakukan sampai solusi integer dicapai. Jika di salah
satu iterasi metode dual Simpleks menunjukkan bahwa tidak ada solusi layak, berarti masalah itu tidak memiliki solusi integer yang layak Taha, 1996.
2.8 Metode Branch and Cut