0% menganggap dokumen ini bermanfaat (0 suara)
448 tayangan42 halaman

Integer Linier Programming

Teks tersebut membahas berbagai metode untuk menyelesaikan masalah pemrograman linear bulat (ILP), termasuk metode simpleks, pembulatan, grafik, Gomory, dan branch and bound. Metode branch and bound dijelaskan sebagai metode standar untuk menyelesaikan masalah ILP karena dinilai lebih efisien daripada pendekatan Gomory."
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPT, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
448 tayangan42 halaman

Integer Linier Programming

Teks tersebut membahas berbagai metode untuk menyelesaikan masalah pemrograman linear bulat (ILP), termasuk metode simpleks, pembulatan, grafik, Gomory, dan branch and bound. Metode branch and bound dijelaskan sebagai metode standar untuk menyelesaikan masalah ILP karena dinilai lebih efisien daripada pendekatan Gomory."
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPT, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 42

1

PEMROGRAMAN LINEAR BULAT


(Integer Linear Programming - ILP)

Apa yang dimaksud dengan Pemrograman Bulat ?

METODE SIMPLEKS

Solusi yang didapat optimal,


tetapi mungkin tidak integer.

Integer Linear Programming

Misalnya saja kita ingin menentukan solusi


optimal dari satu lini perakitan televisi, yang
memproduksi beberapa tipe televisi.

Mengganggu batasan

Pembulatan matematis ?

ILP
3

Integer Linear Programming

Jika model mengharapkan semua variabel basis bernilai


integer (bulat positif atau nol), dinamakan pure integer
programming.
Jika model hanya mengharapkan variabel-variabel tertentu
bernilai integer, dinamakan mixed integer programming.
Jika model hanya mengharapkan nilai nol atau satu untuk
variabelnya, dinamakan zero one integer programming.

SOLUSI INTEGER PROGRAMMING


PENDEKATAN PEMBULATAN

Pendekatan ini mudah dan praktis dalam hal usaha, waktu


dan biaya. Pendekatan pembulatan dapat merupakan cara
yang sangat efektif untuk masalah integer programming
yang besar dimana biaya-biaya hitungan sangat tinggi atau
untuk masalah nilai-nilai solusi variabel keputusan sangat
besar.
Contohnya, pembulatan nilai solusi jumlah pensil yang
harus diproduksi dari 14.250,2 menjadi 14.250,0
semestinya dapat diterima.
Sebab utama kegagalan pendekatan ini adalah bahwa
solusi yang diperoleh mungkin bukan solusi integer
optimum yang sesungguhnya. Solusi pembulatan dapat
lebih jelek dibanding solusi integer optimum yang
sesungguhnya atau mungkin merupakan solusi tak layak.

PENDEKATAN PEMBULATAN

Masalah 1

Masalah 2

Masalah 3

Perbandingan antara solusi dengan metode simpleks tanpa pembatasan bilangan bulat, pembulatan ke bilangan bulat terdekat dan solusi
integer optimum yang sesungguhnya untuk ketiga masalah diatas
adalah :

PENDEKATAN GRAFIK
Pendekatan ini identik dengan metode grafik LP dalam
semua aspek, kecuali bahwa solusi optimum harus memenuhi persyaratan bilangan bulat.

negatif integer

PENDEKATAN GRAFIK

Model ini serupa dengan model LP biasa. Perbedaanya


hanya pada kendala terakhir yang mengharapkan bahwa
variabel terjadi pada nilai non negatif integer.

Solusi grafik masalah ini ditunjukkan pada gambar dibawah


ini. Ruang solusi layak adalah OABC. Solusi optimum
masalah LP ditunjukkan pada titik B, dengan X1 = 5,38 dan
X2 = 2,31 serta Z = 746,15. Untuk mencari solusi integer
optimum masalah ini, garis Z (slope = -9/10) digeser secara
sejajar dari titik B menuju titik asal.

Solusi integer optimum adalah titik integer pertama yang


bersinggungan dengan garis Z. Titik itu adalah A, dengan
X1 = 7 dan X2 = 0 serta Z = 700.

PENDEKATAN GRAFIK

X2
10
10X1 + 7X2 = 70
Z = 746,15

Z = 700

B
5X1 + 10X2 = 50
O

A
7

10

X1
10

PENDEKATAN GOMORY
(CUTTING PLANE ALGORITHM)

Langkah-langkah prosedur Gomory diringkas seperti


berikut :
1.

2.

3.

Selesaikan masalah integer programming dengan menggunakan metode simpleks. Jika masalah sederhana, ia
dapat diselesaikan dengan pendekatan grafik, sehingga
pendekatan Gomory kurang efisien.
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 memiliki nilai pecah, teruskan ke tahap 3.
Buatlah suatu skala Gomory (suatu bidang pemotong atau
cutting plane) dan cari solusi optimum melalui prosedur
dual simpleks. Kembali ke tahap 2.

11

KENDALA GOMORY DALAM PURE INTEGER PROGRAMMING

Tabel optimum masalah LP dibawah ini merupakan tabel solusi


optimum kontinyu.

12

KENDALA GOMORY DALAM PURE INTEGER PROGRAMMING

Variabel Xi (i =1,, m) menunjukkan variabel basis.


Variabel Xj (j = 1,..., n) adalah variabel non basis.

Perhatikan persamaan ke i dimana variabel Xi diasumsikan bernilai


non integer.
Xi = bi aij Wj , dimana b non integer

Kemudian pisahkan bi dan aij menjadi bagian yang bulat dan bagian
pecah non negatif seperti berikut :
bi = bi + f i jadi f i = bi - bi , dimana 0 f i 1
aij = aij + f i jadi f i = aij - aij , dimana 0 f ij 1

13

KENDALA GOMORY DALAM PURE INTEGER PROGRAMMING

Kendala Gomory yang diinginkan adalah :


Sg - f ij Wj = - f i , Sg adalah variabel slack Gomory ke g.
Pada umumnya, persamaan kendala yang berhubungan
dengan solusi pecah dipilih untuk menghasilkan suatu
kendala Gomory. Namun, sebagai aturan main biasanya
dipilih persamaan yang memiliki fi, maksimum.
14

Tabel baru setelah penambahan kendala Gomory menjadi :

15

KENDALA GOMORY DALAM PURE INTEGER PROGRAMMING

Jika diperoleh solusi primal optimum tetapi


tidak layak maka digunakan metode dual
simpleks.

Proses pembentukan kendala Gomory berakhir


jika solusi baru semua berupa bilangan bulat.

Jika tidak, suatu kendala Gomory baru dibuat


lagi dari tabel yang dihasilkan dan metode dual
simpleks digunakan lagi untuk mengatasi
ketidak layakan.

Jika pada setiap iterasi metode dual simpleks


menunjukkan bahwa tidak ada solusi layak,
berarti masalah itu tidak memiliki solusi integer
yang layak.

16

KENDALA GOMORY DALAM PURE INTEGER PROGRAMMING

negatif integer

Solusi kontinyu optimumnya diperoleh dalam tabel berikut :

17

KENDALA GOMORY DALAM PURE INTEGER PROGRAMMING

Karena solusi tidak bulat, suatu kendala Gomory ditambahkan pada tabel itu. Kedua persamaan (X1 dan X2) pada
masalah ini memiliki nilai f i yang sama, yaitu f 1 = f 2 = ,
sehingga salah satu dapat digunakan, misalkan digunakan
persamaan X2 , ini menghasilkan :

X2 + 7/22 S1 + 1/22 S2 = 7/2 atau


X2 + (0 + 7/22) S1 + (0 + 1/22) S2 = (3 + )

Sehingga kendala Gomorynya adalah :

Sg1 - 7/22 S1 1/22 S2 = -

18

KENDALA GOMORY DALAM PURE INTEGER PROGRAMMING

Tabel baru setelah penambahan kendala Gomory menjadi :

Dengan memakai metode dual simpleks diperoleh tabel baru yaitu :


Basis

X1

X2

S1

S2

S g1

Solusi

59

X2
X1
S1

0
1
0

1
0
0

0
0
1

0
1/7
1/7

1
- 1/7
- 22/7

3
32/7
11/7
19

KENDALA GOMORY DALAM PURE INTEGER PROGRAMMING

Karena solusi baru masih pecah, suatu kendala Gomory bary


ditambahkan. Karena persamaan X1 memiliki f 1 terbesar (f 1 = 4/7),
maka X1 dituliskan dalam bentuk :
X1 + (0 + 1/7) S2 + (0+ 6/7) Sg1 = (4 + 4/7),
Menghasilkan kendala Gomory kedua :
Sg2 1/7 S1 6/7 Sg1 = - 4/7, kemudian tambahkan pada tabel :

Basis

X1

X2

S1

S2

Sg1

Sg2

Solusi

59

X2

X1

1/7

- 1/7

32/7

S1

1/7

- 22/7

11/7

Sg2

- 1/7

- 6/7

- 4/7
20

KENDALA GOMORY DALAM PURE INTEGER PROGRAMMING

Dengan menggunakan dual simpleks diperoleh hasil :


Yang menghasilkan solusi bulat optimum X1 = 4, X2 =3 dan Z = 55

Basis

X1

X2

S1

S2

Sg1

Sg2

Solusi

55

X2

X1

-1

S1

-4

Sg2

-7

21

METODE BRANCH DAN BOUND


Metode Branch dan Bound telah menjadi kode komputer
standar untuk integer programming, dan penerapan- penerapan dalam praktek tampaknya menyarankan bahwa metode ini
lebih efisien dibanding dengan pendekatan Gomory. Teknik ini
dapat diterapkan baik untuk masalah pure programming
maupun mixed integer programming.

22

Langkah-langkah metode Branch dan Bound untuk


masalah maksimasi dapat dilakukan seperti berikut :
1.

Selesaikan LP dengan metode simpleks biasa

2.

Teliti solusi optimumnya. Jika variabel basis yang diharapkan bulat


adalah bulat, solusi optimum bulat telah tercapai.

3.

Nilai solusi pecah yang layak dicabangkan ke dalam sub-sub


masalah. Tujuannya adalah untuk menghilangkan solusi kontinyu
yang tidak memenuhi persyaratan bulat dalam masalah itu.

4.

Untuk setiap sub-masalah, nilai solusi optimum kontinyu fungsi


tujuan ditetapkan sebagai batas atas. Solusi bulat terbaik menjadi
batas bawah (pada awalnya, ini adalah solusi kontinyu yang
dibulatkan ke bawah). Sub-sub masalah yang memiliki batas atas
kurang dari batas bawah yang ada, tidak diikut sertakan pada
analisa selanjutnya. Suatu solusi bulat 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 3.

23

METODE BRANCH DAN BOUND

Untuk memperoleh gambaran yang lebih jelas tentang


metode Branch dan Bound, perhatikan contoh masalah
berikut :

negatif integer

Solusi optimum kontinyu masalah ini adalah X1 = 8, X2 =


2,26 dan Z = 35,25.

Solusi ini menunjukkan batas atas awal.

24

METODE BRANCH DAN BOUND

Batas bawah adalah solusi yang dibulatkan ke bawah X1 = 8, X2 =


2 dan Z = 34. Dalam metode Branch dan Bound, masalah itu
dibagi ke dalam dua bagian untuk mencari nilai solusi bulat yang
mungkin bagi X1 dan X2.
Variabel dengan nilai solusi pecah terbesar dipilih. Karena pada
solusi ini hanya X2 yang memiliki bagian pecah, ia dipilih. Untuk
menghilangkan bagian pecah dari nilai X2 = 2,25, dua kendala baru
dibuat.
Kendala-kendala ini mewakili dua bagian baru dari masalah itu.
Dua nilai bulat terdekat terhadap 2,25 adalah 2 dan 3. Sehingga
diperoleh dua masalah baru melalui dua kendala mutually
exclusive, X2 2 dan X2 3, yang akan diuraikan berikut ini sebagai bagian A dan B. Kendala-kendala ini secara efektif menghilangkan semua nilai pecah yang mungkin bagi X2, antara 2 dan 3.
Pengaruhnya mereka mengurangi ruang solusi layak sehingga
angka solusi bulat yang dievaluasi pada masalah ini makin sedikit

25

METODE BRANCH DAN BOUND

Bagian A :

Bagian B :

26

METODE BRANCH DAN BOUND

Bagian A dan B diselesaikan tanpa pembatasan bilangan bulat


dengan metode simpleks. Solusi simpleksnya adalah :

Bagian A : X1 = 8, X2 = 2 dan Z = 34
Bagian B : X1 = 6,5, X2 = 3 dan Z = 34,5

Bagian A menghasilkan suatu solusi yang semuanya bulat.


Untuk bagian A batas atas dan bawah adalah Z = 34. Solusi
pecah bagian B membenarkan pencarian lebih lanjut karena
menghasilkan nilai fungsi tujuan yang lebih besar dari batas
atas bagian A. Sangat mungkin bahwa pencarian lebih lanjut
dapat menghasilkan suatu solusi yang semuanya bulat dengan
nilai fungsi tujuan melebihi batas atas bagian A = 34.

Bagian B dicabangkan ke dalam dua sub bagian, B1 dan B2,


pertama dengan kendala X1 6 dan yang lain dengan X2 7.

27

METODE BRANCH DAN BOUND

Sub Bagian B1 :

(berlebih)

Sub Bagian B2 :

28

METODE BRANCH DAN BOUND

Solusi simpleksnya adalah :

Sub-bagian B1 : X1 = 6, X2 = 3,25 dan Z = 34,25


Sub-bagian B2 : tidak layak.

Karena sub-bagian B1 menghasilkan nilai fungsi tujuan yang


lebih besar dari 34 (batas atas bagian A), maka harus dicabangkan lagi ke dalam dua sub masalah, dengan kendala
X2 3 dan X2 4. Kedua kendala sub masalah diberi nama
bagian B1a dan B2b.

29

METODE BRANCH DAN BOUND

Bagian B1a :
Maksimumkan
Dengan syarat

3 X1

5 X2

2 X1
X1

4 X2

X1
X1

2 X2
X2
X2
;

X2

?
?
?
?
?
?
?

25
8
10 (berlebih)
3
3
6
0

Bagian B1b :

(berlebih)

30

METODE BRANCH DAN BOUND

Solusi optimum dengan metode simpleks adalah :

Sub-bagian B1a : X1 = 6, X2 = 3 dan Z = 33


Sub-bagian B1b : X1 = 4,25, X2 = 4 dan Z = 33,5

Kedua solusi itu memiliki batas atas ( Z = 33 dan Z = 33,5)


yang lebih buruk dibanding dengan solusi yang dihasilkan
oleh bagian A. Karena itu, solusi bulat optimum adalah X1 =
8, X2 = 2 dan Z = 34 yang dihasilkan oleh bagian A.

Jika pencarian telah diselesaikan, solusi bulat dengan


fungsi tujuan tertinggi (dalam masalah maksimasi) dipilih
sebagai solusi optimum.

31

METODE BRANCH DAN BOUND

Kelemahan dasar dari metode ini adalah bahwa diperlukan


pemecahan masalah LP untuk setiap pencabangan. Dalam
masalah yang besar dapat memakan banyak waktu. Karena
itu dalam prosedur pencabangan dan pencarian, analisa
selanjutnya dihentikan jika :
1.

Hasil dari sub-problem lebih jelek dibanding dengan batas


atas yang sudah diidentifikasi

2.

Pencabangan selanjutnya menghasilkan solusi tak layak.

32

METODE BRANCH DAN BOUND

Seluruh prosedur Branch dan Bound untuk contoh yang lalu


dapat digambarkan seperti berikut :

Solusi bulat optimum


X1 = 8
3
2
X
X2 = 2
Z = 34
2

0
X2
X1 = 8
3
X2 = 2,25
Z = 35,25

X2
X1 = 6
4
X2 = 3,25
Z = 34,25

X1 = 6,5
X2 = 3
Z = 34,5

X1

inferior

inferior

Tak layak
33

CONTOH 2 (dengan 2 fungsi pembatas)


Program 1 (program asalnya)
Maksimum
Z = 3X1 + 4X2
Kendala
2X1 + X2
2X1 + 3X2
9
X1 dan X2 0 dan integer
Solusi Pogram 1 pada:
X1 = 2,25 & X2 = 1,5
baik X1 & X2

Z = 12,75 Solusi belum integer

Pencabangan dilakukan pada X2


dekat ke 0,5 (setengah) atau
Selanjutnya, buatkan program
fungsi pembatas baru X2 1 dan

karena nilai desimalnya lebih


nilai solusi pecah terbesar.
2 dan 3 dengan tambahan
X2 2.
34

Program 2
Tambahkan pembatas baru X2 1 pada program 1
Maksimum
Kendala

Z = 3X1 + 4X2
2X1 + X2
2X1 + 3X2
9
X2
1
X1 dan X2 0 dan integer

Solusi Program 2 pada:


X1 = 2,5
& X2 = 1 Z
integer

= 11,5

Solusi belum

35

Program 3
Tambahkan pembatas baru X2 2 pada program 1
Maksimum
Z = 3X1 + 4X2
Kendala
2X1 + X2
6
2X1 + 3X2
9
X2
2
Solusi Pogram 3 pada:
X1 = 1,5
& X2 = 2
Z = 12,5
Solusi belum
integer
Dari solusi program 2 dan 3, dilakukan bounding
(pembatasan) dengan menetapkan bahwa pencabangan
berikutnya adalah dari program 3 yang nilai Z-nya lebih
besar, selanjutnya buatkan progam 4 dan program 5. Dasar
bounding adalah nilai terbesar bila kedua cabang program
adalah fisibel
36

Pencabangan dilakukan dengan menambahkan pembatas baru ke program 3,


dengan menambahkan pembatas baru ke program 3 dengan X1 1 dan X1
2 menjadi progam 4 dan program 5.

Program 4
Tambahkan pembatas baru X1 1 pada program 3
Maksimum
Kendala

Z = 3X1 + 4X2
2X1 + X2
6
2X1 + 3X2
9
X2
2
X1
1
X1 dan X2 0 dan integer

Solusi Program 4 pada:


X1 = 1 & X2 = 2,3
Z = 12,33 Solusi belum integer

37

Program 5
Tambahkan pembatas baru X1 2 pada program 3
Maksimum
Z = 3X1 + 4X2
Kendala
2X1 + X2
6
2X1 + 3X2
9
X2
2
X1
2
X1 dan X2 0 dan integer
Program 5 tidak fisibel, masukkan pembatas 3 dan 4 ke
pembatas 2 hasilnya tidak fisibel.

38

Lakukan pencabangan baru dari program 4 ini menjadi


program 6 dan 7 dengan menambahkan pembatas yang
baru X2 2 dan X2 3
Program 6
Tambahkan pembatas baru X2 2 pada program 4
Maksimum
Z = 3X1 + 4X2
Kendala 2X1 + X2
6
2X1 + 3X2
9
X2
2
X1
1
X2
2
X1 dan X2 0 dan integer
Solusi Program 6 pada:
X1 = 1 & X 2 = 2
integer

Z = 11

Solusi sudah
39

Program 7
Tambahkan pembatas baru X2 3 pada progam 4
Maksimum Z = 3X1 + 4X2
Kendala
2X1 + X2
6
2X1 + 3X2
9
X2
2
X1
1
X2
3
X1 dan X2 0 dan integer
Solusi untuk Program 7 adalah pada:
X1 = 0 & X2 = 3
Z = 12 solusi sudah integer dan OPTIMAL
(karena lebih baik nilainya dari solusi program 6
7)

40

Bila dibuatkan diagram pencabangan dan pembatasannya


diperoleh hasil:

X2

X1 = 2,5
2 X2 = 1
Z = 11,5

6
X

1
X1 = 2,25 X2
2
X2 = 1,5
Z1= 12,75

X1 = 1
X2 = 2
Z = 11

Bounding

X2
X1 = 1
4
X2 = 2,3
Z = 12,33

X1 = 1,5
X2 = 2
Z = 12,5

X1

Solusi optimal intege

X1 = 0
X2 = 3
Z = 12

5 Tdk fisible
41

Z = 5X1 + 4X2
KENDALA
X1 + X2 <= 5
10X1 + 6X2 <= 45
X1, X2>=0

42

Anda mungkin juga menyukai