integer programing -...

29
INTEGER PROGRAMING

Upload: vuhanh

Post on 08-Mar-2019

253 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: INTEGER PROGRAMING - adydaryanto.staff.gunadarma.ac.idadydaryanto.staff.gunadarma.ac.id/Downloads/files/53048/03... · Pemecahan paling mudah dari contoh soal di atas adalah pembulatan

INTEGER

PROGRAMING

Page 2: INTEGER PROGRAMING - adydaryanto.staff.gunadarma.ac.idadydaryanto.staff.gunadarma.ac.id/Downloads/files/53048/03... · Pemecahan paling mudah dari contoh soal di atas adalah pembulatan

CONTOH SOAL !Sebuah perusahaan jus buah curah

“JASJUS TAMBUNAN” memproduksi 2 jenis produk,

yaitu jus jeruk dan jus jambu. Masing-masing

produk tersebut membutuhkan 2 tahapan produksi,

yaitu ekstraksi dan penyaringan. Waktu ekstraksi

adalah 2 jam untuk jus jeruk dan 3 jam untuk jus jambu.

Sedangkan waktu penyaringan adalah 6 jam untuk jus

jeruk dan 5 jam untuk jus jambu. Perusahaan

tersebut hanya mempunyai waktu untuk ekstraksi

12 jam, dan waktu untuk penyaringan 30 jam kerja

per minggu. Jus jeruk memberikan keuntungan

70.000 per liternya sedangkan jus jambu 60.000

per liternya, tentukan banyaknya jus jeruk dan jus jambu

yang sebaiknya diproduksi untuk mendapatkan

keuntungan yang maksimal!

Page 3: INTEGER PROGRAMING - adydaryanto.staff.gunadarma.ac.idadydaryanto.staff.gunadarma.ac.id/Downloads/files/53048/03... · Pemecahan paling mudah dari contoh soal di atas adalah pembulatan

TENTUKAN MODEL MATEMATISNYA !

• Jika: x1 = jus jeruk

x2 = jus jambu

• Maksimisasi profit: 7x1 + 6x2

• Ditujukan pada: 2x1 + 3x2 ≤ 12

6x1 + 5x2 ≤ 30

x1, x2 ≥ 0

Page 4: INTEGER PROGRAMING - adydaryanto.staff.gunadarma.ac.idadydaryanto.staff.gunadarma.ac.id/Downloads/files/53048/03... · Pemecahan paling mudah dari contoh soal di atas adalah pembulatan

SELESAIKAN DENGAN METODE

GRAFIS !

1

2

4

3

5

6

X2

7

1 2 3 4 5 6 7 X1

6x1 + 5x2 ≤ 30

2x1 + 3x2 ≤ 12

Optimal LP Solution:

x1 = 3¾ ; x2 = 1½

Keuntungan maksimal

= 7x1 + 6x2

= 7 (3¾) + 6 (1½)

= 35,25

Page 5: INTEGER PROGRAMING - adydaryanto.staff.gunadarma.ac.idadydaryanto.staff.gunadarma.ac.id/Downloads/files/53048/03... · Pemecahan paling mudah dari contoh soal di atas adalah pembulatan

Dari hasil ini dapat diketahui pabrik harus

memproduksi 3¾ kilo liter jus jeruk dan 1½ kilo liter

jus jambu untuk mencapai keuntungan maksimal

Perhitungan ini tidak masalah karena produk dapat

dijual dengan jumlah pecahan

Lalu bagaimana jika produknya berbeda?

Page 6: INTEGER PROGRAMING - adydaryanto.staff.gunadarma.ac.idadydaryanto.staff.gunadarma.ac.id/Downloads/files/53048/03... · Pemecahan paling mudah dari contoh soal di atas adalah pembulatan

CONTOH SOAL !Sebuah perusahaan mesin pengolah pangan

“ESEMKA” memproduksi 2 jenis produk, yaitu

drumdryer dan spraydryer. Masing-masing

produk tersebut membutuhkan 2 tahapan

produksi, yaitu kelistrikan dan perakitan. Waktu

kelistrikan adalah 2 jam untuk drumdryer dan 3 jam

untuk spraydryer. Sedangkan waktu perakitan adalah 6

jam untuk drumdryer dan 5 jam untuk spraydryer.

Perusahaan tersebut hanya mempunyai waktu

untuk kelistrikan 12 jam, dan waktu untuk perakitan 30

jam kerja per minggu. Drumdryer memberikan

keuntungan 70 juta per unitnya, sedangkan

spraydryer 60 juta per unitnya, tentukan banyaknya

drumdryer dan spraydryer yang sebaiknya

diproduksi untuk mendapatkan keuntungan yang

maksimal!

Page 7: INTEGER PROGRAMING - adydaryanto.staff.gunadarma.ac.idadydaryanto.staff.gunadarma.ac.id/Downloads/files/53048/03... · Pemecahan paling mudah dari contoh soal di atas adalah pembulatan

Dengan cara yang sama (Linear Programing / LP), akandiperoleh jawaban, perusahaan akan memperoleh

keuntungan maksimal apabila memproduksi

x1 = drumdryer = 3¾ unit

x2 = spraydryer = 1½ unit

TETAPI........

Siapa yang mau

membeli alat yang

tidak utuh???

Page 8: INTEGER PROGRAMING - adydaryanto.staff.gunadarma.ac.idadydaryanto.staff.gunadarma.ac.id/Downloads/files/53048/03... · Pemecahan paling mudah dari contoh soal di atas adalah pembulatan

INTEGER PROGRAMING...

• Integer programing (pemrograman bulat) digunakan

untuk memodelkan permasalahan yang variabelnya

tidak mungkin berupa bilangan tidak bulat

• Cara penyelesaian :

– Metode Round Off

– Metode Branch and Bound (Algoritma percabangan)

– Metode Gomory / Cutting Plane (Algoritma pemotongan)

Page 9: INTEGER PROGRAMING - adydaryanto.staff.gunadarma.ac.idadydaryanto.staff.gunadarma.ac.id/Downloads/files/53048/03... · Pemecahan paling mudah dari contoh soal di atas adalah pembulatan

METODE ROUND OFF

Pemecahan paling mudah dari contoh soal di atas adalah

pembulatan (Metode Round Off). Dari solusi optimal kita

lakukan pembulatan menjadi :

x1 = drumdryer = 4 unit ; x2 = spraydryer = 2 unit

TETAPI TIDAK MUNGKIN !

(karena berada diluar area lihat gambar)

Sehingga yang paling memungkinkan

x1 = drumdryer = 4 unit ; x2 = spraydryer = 1 unit

Page 10: INTEGER PROGRAMING - adydaryanto.staff.gunadarma.ac.idadydaryanto.staff.gunadarma.ac.id/Downloads/files/53048/03... · Pemecahan paling mudah dari contoh soal di atas adalah pembulatan

Solusi optimal

Integer programing

Solusi optimal

Round Off

Drumdryer

(x1)

Spraydryer

(x2)

Keuntungan

(7x1 + 6x2)

0 0 0

1 0 7

2 0 14

3 0 21

4 0 28

5 0 35

0 1 6

1 1 13

2 1 20

3 1 27

4 1 34

0 2 12

1 2 19

2 2 26

3 2 33

0 3 18

1 3 25

0 4 24

Page 11: INTEGER PROGRAMING - adydaryanto.staff.gunadarma.ac.idadydaryanto.staff.gunadarma.ac.id/Downloads/files/53048/03... · Pemecahan paling mudah dari contoh soal di atas adalah pembulatan

Dari persoalan di atas telah didapatkan hasil

x1 = 3¾ ; x2 = 1½ ; profit = 35,25

Karena x1 = 3¾ (tidak bulat), maka dicabangkan jadi dua:

METODE PERCABANGAN

CABANG A

Maksimisasi profit: 7x1 + 6x2

Ditujukan pada: 2x1 + 3x2 ≤ 12

6x1 + 5x2 ≤ 30

x1 ≥ 4

Dengan LP sederhana:

x1 = 4 maka x2 = 1,2 ; profit = 35,2

CABANG B

Maksimisasi profit: 7x1 + 6x2

Ditujukan pada: 2x1 + 3x2 ≤ 12

6x1 + 5x2 ≤ 30

x1 ≤ 3

Dengan LP sederhana:

x1 = 3 maka x2 = 2 ; profit = 33BELUM FEASIBLE ! SUDAH FEASIBLE !

Page 12: INTEGER PROGRAMING - adydaryanto.staff.gunadarma.ac.idadydaryanto.staff.gunadarma.ac.id/Downloads/files/53048/03... · Pemecahan paling mudah dari contoh soal di atas adalah pembulatan

Dari percabangan A:

x1 = 4 maka x2 = 1,2 ; profit = 35,2

Karena x2 = 1,2 (tidak bulat), maka dicabangkan jadi dua:

CABANG C

Maksimisasi profit: 7x1 + 6x2

Ditujukan pada: 2x1 + 3x2 ≤ 12

6x1 + 5x2 ≤ 30

x1 ≥ 4

x2 ≥ 2

LIHAT DI GAMBAR! Syarat x1 ≥ 4

dan x2 ≥ 2 di luar area, maka tidak

fesible, maka percabangan

dihentikan !

CABANG D

Maksimisasi profit: 7x1 + 6x2

Ditujukan pada: 2x1 + 3x2 ≤ 12

6x1 + 5x2 ≤ 30

x1 ≥ 4

x2 ≤ 1

Dengan LP sederhana:

x2 = 1 maka x1 = 4 ¼ ; profit = 35,16

BELUM FEASIBLE !

LANJUTKAN !

Page 13: INTEGER PROGRAMING - adydaryanto.staff.gunadarma.ac.idadydaryanto.staff.gunadarma.ac.id/Downloads/files/53048/03... · Pemecahan paling mudah dari contoh soal di atas adalah pembulatan

Dari percabangan D didapatkan:

x2 = 1 maka x1 = 4 ¼ ; profit = 35,16

Karena x1 = 4 ¼ (tidak bulat), maka dicabangkan jadi dua:

CABANG E

Maksimisasi profit: 7x1 + 6x2

Ditujukan pada: 2x1 + 3x2 ≤ 12

6x1 + 5x2 ≤ 30

x1 ≥ 4

x2 ≤ 1

x1 ≤ 4

Dengan LP sederhana:

x1 = 4 maka x2 = 1 ; profit = 34

CABANG F

Maksimisasi profit: 7x1 + 6x2

Ditujukan pada: 2x1 + 3x2 ≤ 12

6x1 + 5x2 ≤ 30

x1 ≥ 4

x2 ≤ 1

x1 ≥ 5

Dengan LP sederhana:

x1 = 5 maka x2 = 0 ; profit = 35

SUDAH FEASIBLE ! SUDAH FEASIBLE !

Page 14: INTEGER PROGRAMING - adydaryanto.staff.gunadarma.ac.idadydaryanto.staff.gunadarma.ac.id/Downloads/files/53048/03... · Pemecahan paling mudah dari contoh soal di atas adalah pembulatan

x1 = 3¾

x2 = 1½

Π = 35,25

A

x1 = 4

x2 = 1,2

Π = 35,2

B

x1 = 3

x2 = 2

Π = 33

C

Tidak dapat

memenuhi

syarat

D

x1 = 4,1

x2 = 1

Π = 35,12

E

x1 = 4

x2 = 1

Π = 34

D

x1 = 5

x2 = 0

Π = 35

Iterasi 1 Iterasi 2 Iterasi 3

x1 ≥ 4

x1 ≤ 3

x2 ≥ 2

x2 ≤ 1

x1 ≤ 4

x1 ≥ 5

Feasible,

integer solution

Feasible,

integer solution

OPTIMAL SOLUTION !

Feasible,

integer solution

Page 15: INTEGER PROGRAMING - adydaryanto.staff.gunadarma.ac.idadydaryanto.staff.gunadarma.ac.id/Downloads/files/53048/03... · Pemecahan paling mudah dari contoh soal di atas adalah pembulatan

Hasil dari integer programming tidak akan pernah

melebihi nilai keuntungan optimal dari solusi LP

Pada kasus di atas keuntungan dari LP adalah

35,25 ; sedangkan keuntungan dari integer

programming hanya 35

Page 16: INTEGER PROGRAMING - adydaryanto.staff.gunadarma.ac.idadydaryanto.staff.gunadarma.ac.id/Downloads/files/53048/03... · Pemecahan paling mudah dari contoh soal di atas adalah pembulatan

16

METODE BRANCH DAN BOUND

Maksimumkan Z = 3 X1 + 5 X2

Dengan syarat 2 X1 + 4 X2 ≤ 25 X1 ≤ 8 2 X2 ≤ 10 X1 ; X2 non

negatif integer

TUGAS

Page 17: INTEGER PROGRAMING - adydaryanto.staff.gunadarma.ac.idadydaryanto.staff.gunadarma.ac.id/Downloads/files/53048/03... · Pemecahan paling mudah dari contoh soal di atas adalah pembulatan

PENYELESAIAN SOAL TUGAS

Page 18: INTEGER PROGRAMING - adydaryanto.staff.gunadarma.ac.idadydaryanto.staff.gunadarma.ac.id/Downloads/files/53048/03... · Pemecahan paling mudah dari contoh soal di atas adalah pembulatan

X1 = 8

X2 = 2

Z = 34

0

Solusi bulat optimum

X1 = 8

X2 = 2,25

Z = 35,25

2

Tak layak

X1 = 6,5

X2 = 3

Z = 34,5

inferior

inferior

X1 = 6

X2 = 3,25

Z = 34,25

METODE BRANCH DAN BOUND

JAWABAN:

Page 19: INTEGER PROGRAMING - adydaryanto.staff.gunadarma.ac.idadydaryanto.staff.gunadarma.ac.id/Downloads/files/53048/03... · Pemecahan paling mudah dari contoh soal di atas adalah pembulatan

19

METODE BRANCH DAN BOUND

Maksimumkan Z = 3 X1 + 5 X2

Dengan syarat 2 X1 + 4 X2 ≤ 25 X1 ≤ 8 2 X2 ≤ 10 X1 ; X2 non negatif integer

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

2,26 dan Z = 35,25.

Solusi ini menunjukkan batas atas awal.

Page 20: INTEGER PROGRAMING - adydaryanto.staff.gunadarma.ac.idadydaryanto.staff.gunadarma.ac.id/Downloads/files/53048/03... · Pemecahan paling mudah dari contoh soal di atas adalah pembulatan

20

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 se-bagai bagian A dan B. Kendala-kendala ini secara efektif menghi-langkan 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

METODE BRANCH DAN BOUND

Page 21: INTEGER PROGRAMING - adydaryanto.staff.gunadarma.ac.idadydaryanto.staff.gunadarma.ac.id/Downloads/files/53048/03... · Pemecahan paling mudah dari contoh soal di atas adalah pembulatan

Maksimumkan Z = 3 X1 + 5 X2

Dengan syarat 2 X1 + 4 X2 ≤ 25 X1 ≤ 8 2 X2 ≤ 10 X2 ≤ 2 X1 ; X2 ≥ 0

(berlebih)

Maksimumkan Z = 3 X1 + 5 X2

Dengan syarat 2 X1 + 4 X2 ≤ 25 X1 ≤ 8 2 X2 ≤ 10 X2 ≥ 3 X1 ; X2 ≥ 0

Bagian A :

Bagian B :

METODE BRANCH DAN BOUND

Page 22: INTEGER PROGRAMING - adydaryanto.staff.gunadarma.ac.idadydaryanto.staff.gunadarma.ac.id/Downloads/files/53048/03... · Pemecahan paling mudah dari contoh soal di atas adalah pembulatan

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.

METODE BRANCH DAN BOUND

Page 23: INTEGER PROGRAMING - adydaryanto.staff.gunadarma.ac.idadydaryanto.staff.gunadarma.ac.id/Downloads/files/53048/03... · Pemecahan paling mudah dari contoh soal di atas adalah pembulatan

Maksimumkan Z = 3 X1 + 5 X2

Dengan syarat 2 X1 + 4 X2 ≤ 25 X1 ≤ 8 2 X2 ≤ 10 X2 ≥ 3 X1 ≤ 6 X1 ; X2 ≥ 0

Maksimumkan Z = 3 X1 + 5 X2

Dengan syarat 2 X1 + 4 X2 ≤ 25 X1 ≤ 8 2 X2 ≤ 10 X2 ≥ 3 X1 ≥ 7 X1 ; X2 ≥ 0

METODE BRANCH DAN BOUND

Sub Bagian B1 :

Sub Bagian B2 :

(berlebih)

Page 24: INTEGER PROGRAMING - adydaryanto.staff.gunadarma.ac.idadydaryanto.staff.gunadarma.ac.id/Downloads/files/53048/03... · Pemecahan paling mudah dari contoh soal di atas adalah pembulatan

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 tujuanyang lebih besar dari 34 (batas atas bagian A), makaharus dica-bangkan lagi ke dalam dua sub masalah, dengan kendala X2 ≤ 3 dan X2 ≥ 4. Kedua kendala sub masalah diberi nama bagian B1a dan B2b.

METODE BRANCH DAN BOUND

Page 25: INTEGER PROGRAMING - adydaryanto.staff.gunadarma.ac.idadydaryanto.staff.gunadarma.ac.id/Downloads/files/53048/03... · Pemecahan paling mudah dari contoh soal di atas adalah pembulatan

Maksimumkan Z = 3 X1 + 5 X2

Dengan syarat 2 X1 + 4 X2 ≤ 25 X1 ≤ 8 2 X2 ≤ 10 X2 ≥ 3 X2 ≥ 4 X1 ≤ 6 X1 ; X2 ≥ 0

Maksimumkan Z = 3 X1 + 5 X2

Dengan syarat 2 X1 + 4 X2 ≤ 25 X1 ≤ 8 2 X2 ≤ 10 X2 ≥ 3 X2 ≤ 3 X1 ≤ 6 X1 ; X2 ≥ 0

Bagian B1a :

Bagian B1b :

(berlebih)

(berlebih)

METODE BRANCH DAN BOUND

Page 26: INTEGER PROGRAMING - adydaryanto.staff.gunadarma.ac.idadydaryanto.staff.gunadarma.ac.id/Downloads/files/53048/03... · Pemecahan paling mudah dari contoh soal di atas adalah pembulatan

26

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.

Page 27: INTEGER PROGRAMING - adydaryanto.staff.gunadarma.ac.idadydaryanto.staff.gunadarma.ac.id/Downloads/files/53048/03... · Pemecahan paling mudah dari contoh soal di atas adalah pembulatan

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.

METODE BRANCH DAN BOUND

Page 28: INTEGER PROGRAMING - adydaryanto.staff.gunadarma.ac.idadydaryanto.staff.gunadarma.ac.id/Downloads/files/53048/03... · Pemecahan paling mudah dari contoh soal di atas adalah pembulatan

X1 = 8

X2 = 2

Z = 34

0

Solusi bulat optimum

X1 = 8

X2 = 2,25

Z = 35,25

2

Tak layak

X1 = 6,5

X2 = 3

Z = 34,5

inferior

inferior

X1 = 6

X2 = 3,25

Z = 34,25

METODE BRANCH DAN BOUND

Seluruh prosedur Branch dan Bound untuk contoh yang

lalu dapat digambarkan seperti berikut :

Page 29: INTEGER PROGRAMING - adydaryanto.staff.gunadarma.ac.idadydaryanto.staff.gunadarma.ac.id/Downloads/files/53048/03... · Pemecahan paling mudah dari contoh soal di atas adalah pembulatan

TERIMA KASIH