PENELITIAN OPERASIONAL I (TIN 4109)
Lecture 10
LINEAR PROGRAMMING & INTEGER PROGRAMMING
Lecture 10 • Outline: – Linear Programming: Dual Simplex – Integer Programming: Introduction – Integer Programming: Cutting Plane
• References: – Frederick Hillier and Gerald J. Lieberman. Introduction to Operations Research. 7th ed. The McGraw-Hill Companies, Inc, 2001. – Hamdy A. Taha. Operations Research: An Introduction. 8th Edition. Prentice-Hall, Inc, 2007.
LINEAR PROGRAMMING
DUAL SIMPLEX
Dual Simplex -basic conceptVariation of simplex method Dual feasible but not primal feasible Mirror image of simplex method terkait dengan penentuan leaving dan entering variable
Mengeliminasi penggunaan artificial variable Digunakan dalam sensitivity analysis Hanya digunakan sebagai pelengkap solusi pada dual problem
Dual Simplex -contohPrimal Problem
Dual Problem
Dual Simplex -langkah pengerjaan1. Initialization. – Convert constraints in ≥ to ≤ (by multiplying both sides by -1) – Add slack variables as needed – Find a basic solution (Optimal solution is feasible if the values are zero for basic variables and nonnegative for non basic variables) – Go to feasiblity test.
2. Feasibility test. – If all basic variables are nonnegative, then it is feasible, therefore optimal – Otherwise, go to iteration.
3. Iterasi a. Determine the leaving variable. Select basic variable with most negative value. b. Determine the entering variable. Select non basic variable with most negative coefficient in the leaving variable row. c. Determine the new basic solution. Solve by Gaussian elimination. d. Return to feasibility test.
Dual Simplex -latihan soal● Contoh: Min s.t.
2x1 + 3x2 + 4x3
x1 + 2x2 + x3 3 2x1 – x2 + 3x3 4 x1 , x2 , x3 0
Max s.t.
-2x1 – 3x2 – 4x3
-x1 – 2x2 – x3 + x4 -3 -2x1 + x2 – 3x3 + x5 -4 xi 0
Dual Simplex -latihan soalz
x1
x2
x3
x4
x5
RHS
z
1
2
3
4
0
0
0
x4
0
-1
-2
-1
1
0
-3
x5
0
-2
1
-3
0
1
-4
z
x1
x2
x3
x4
x5
RHS
z
x1
x2
x3
x4
x5
RHS
z x… x…
z x… x…
INTEGER PROGRAMMING
INTRODUCTION
Integer Linear Programming (ILP) • Untuk permasalahan optimasi dengan beberapa atau semua variabel keputusan bernilai bulat(integer). • Tidak dapat diselesaikan langsung dengan metode simpleks karena adanya beberapa atau semua variable yang berupa bilangan bulat melanggar salah satu asumsi metode simpleks (semua variable keputusan adalah bilangan real / tidak harus bulat).
Klasifikasi ILP Integer programming dapat diklasifikasikan menjadi empat (berdasarkan banyaknya variable keputusan yang bernilai bulat): 1) Pure Integer Programming semua variable keputusan harus bernilai bilangan bulat 2) Mixed Integer Programming (MIP) tidak semua variable keputusan berupa bilangan bulat 3) Binary Integer Programming (BIP) semua variable keputusan memiliki nilai berupa bilangan biner (0 atau 1). 4) Mixed Binary Integer Programming (MBIP) Jika beberapa variable keputusan memiliki nilai biner, beberapa variable keputusan memiliki nilai integer dan sisanya memiliki nilai real (boleh pecahan).
Integer linear Programming Permasalahan yang mengharuskan variabel keputusan bernilai integer diantaranya adalah Investasi Multiperiode Budgeting Routing Knapsack Vehicle Loading Set Covering Scheduling Mixed Product Location Distribution Assignment Transportasi ….
Penjadwalan Pekerja (Scheduling) •
Bank Swasta buka mulai jam 9 pagi sampai dengan jam 5 sore. Banyaknya konsumen yang datang ke bank cukup bervariasi sehingga banyaknya teller yang diperlukan pada setiap jam juga berbeda. Teller merupakan tenaga outsourcing, pihak bank bisa menentukan pada jam berapa teller tersebut harus mulai bekerja. Setiap teller bekerja selama 5 jam sehari. Tentukan banyaknya setiap teller yang harus masuk pada setiap jam supaya biaya yang dikeluarkan bank minimal ! Periode
Jumlah teller yang diperlukan
9 – 10
10
10 – 11
12
11 – 12
14
12 – 1
16
1–2
18
2-3
17
3–4
15
4–5
10
Xi: banyaknya teller yang mulai masuk kerja pada jam ke i
X1
X2 X3 X4 X5 9
10
11
12
13
14
15
16
17
18
Penjadwalan Pekerja (Scheduling) •
• •
Pengelola obyek wisata pantai sedang merencanakan untuk melakukan perekrutan lifeguard. Lifeguard bertugas untuk membantu pengunjung obyek wisata yang mengalami kesulitan misalnya kecelakan yang membahayakan jiwa, menjadi korban tindak kejahatan, kehilangan barang, terpisah dari keluarga dan lain-lain. Pada hari-hari libur pantai selalu ramai dikunjungi oleh wisatawan sedangkan pada hari-hari kerja pantai realtif tidak ramai. Hal ini menyebabkan banyaknya lifeguard yang diperlukan juga berbeda. senin
Selasa
rabu
Kamis
Jumat
sabtu
Minggu
5
4
4
6
6
9
12
Lifeguard bekerja lima hari dalam seminggu Tentukanlah banyaknya lifeguard yang harus direkrut!
Capital Budgeting • Punya uang utk investasi Rp 14.000.000. • Ada 4 jenis kesempatan investasi : – Investasi 1 : butuh Rp 5.000.000 , akan berkembang mjd Rp 8.000.000 – Investasi 2 : butuh Rp 7.000.000 , akan berkembang mjd Rp 11.000.000 – Investasi 3 : butuh Rp 4.000.000 , akan berkembang mjd Rp 6.000.000 – Investasi 4 : butuh Rp 3.000.000 , akan berkembang mjd Rp 4.000.000
Capital Budgeting Model ILP : xi = investasi ke i , i=1,2,3,4 xi = 0 jika tidak mengambil investasi i = 1 jika mengambil investasi i Maksimasi : Z = 8x1 + 11x2 + 6x3 + 4x4 Kendala : 5x1 + 7x2 + 4x3 + 3x4 ≤ 14 xi {0,1} , i = 1,2,3,4
Capital Budgeting • Apabila ditambah kendala : – Kita hanya dapat membuat paling banyak dua investasi – Jika investasi 2 diambil, maka investasi 4 juga diambil – Jika investasi 1 diambil, maka investasi 3 tidak dapat diambil
• Model matematikanya : Maksimasi : Z = 8x1 + 11x2 + 6x3 + 4x4 Kendala : 5x1 + 7x2 + 4x3 + 3x4 ≤ 14 x1 + x 2 + x 3 + x 4 ≤ 2 x2 – x4 ≤ 0 x1 + x 3 ≤ 1 xi {0,1} , i = 1,2,3,4
Multiperiod Capital Budgeting • Terdapat 4 pilihan investasi yaitu investasi 1,2,3 dan 4. Dana yang dibutuhkan dan laba yang dihasilkan oleh masing-masing investasi adalah sebagai berikut: Dana yang dibutuhkan Investasi
A
B
C
D
Periode 1
7
8
7
4
Periode 2
5
11
4
4
Periode 3
6
6
4
4
Total Laba
15
20
13
12
•
Dana yang dimiliki oleh perusahaan dalam tiga periode ke depan adalah 30,35 dan
•
40. Investasi manakan yang seharusnya dipilih?
Knapsack Problem • Terdapat 7 jenis barang, setiap jenis barang mempunyai ukuran dan keuntungan yang berbeda sbb : Barang ke-
1
2
3
4
5
6
7
Ukuran
5
7
4
3
4
3
7
Nilai
8
11
6
4
6
5
6
• Alat angkut hanya mampu mengangkut 40 m3, barang manakah yang seharusnya diangkut?
Vehicle Loading • Alat angkut (truck) memiliki batas maksimal muatan yang bisa diangkut. Batas maksimal muatan dibatasi oleh volume dan berat. Jika truck digunakan mengangkut benda dengan berat jenis yang relatif kecil maka batas angkutan akan ditentukan oleh volume dan sebaliknya. Item 1
2
3
4
5
6
Laba
$15,500
$14,400
$10,350
$14,525
$13,000
$9,625
Berat(kg)
500
450
300
350
400
350
Volume(m3)
125
64
144
218
280
180
• Berat maksimal yang bisa diangkut oleh truck adalah 2000 kg dan volume 1000 m3 • Tentukan produk mana yang seharusnya diangkut oleh truck supaya mendapatkan laba maksimal!
Pemilihan Lokasi Pabrik •
•
•
•
Perusahaan berencana untuk mendirikan satu atau beberapa pabrik untuk memenuhi permintaan produk pada berbagai daerah (pasar). Terdapat 4 lokasi dimana pabrik dapat dibangun dan terdapat 12 pasar yang harus dipenuhi oleh perusahaan. Produk akan langsung dikirim dari pabrik ke pasar. Biaya untuk mendirikan pabrik dan kapasitas pabrik di masing-masing lokasi adalah sebagai berikut: A B C D Biaya Investasi
1000
1500
700
400
Kapasitas
2000
4000
1000
900
Biaya untuk mengirim barang dari suatu pabrik ke pasar adalah sebagai berikut 1
2
3
4
5
6
7
8
9
10
11
12
A
3
4
1
2
3
5
5
2
3
4
5
5
B
6
6
4
5
7
3
4
1
2
4
4
4
C
4
2
3
5
4
5
4
3
6
5
4
3
D
5
5
2
3
4
5
5
6
2
3
5
5
Permintaan 500 200 400 600 dan 400berapa 200pabrik 250yang 200 300 220 Tentukan dimanakah pabrik harus100 dibangun harus dibangun??
100
Diet Kebutuhan : energy(2000kcal), protein(55g), calcium(800mg) Serving size
Energy (kcal)
Protein (g)
Calcium (mg)
Price per serving (cents)
Max serving allowed
Oatmeal
28g
110
4
2
3
4
Chicken
100g
205
32
12
24
3
Eggs
2 large
160
13
54
13
2
Wholemilk
237cc
160
8
285
9
8
Cherry pie
170g
420
4
22
20
2
Pork with beans
260g
260
14
80
19
2
Food
Formulasi Minimisasi : 3x1 24 x2 13x3 9 x4 20 x5 19 x6 Pembatas: 0 x1 4 0 x2 3 0 x3 2 0 x4 8 0 x5 2 0 x6 2
110 x1
205 x2
160 x3
160 x4
420 x5
260 x6
2000
4 x1
32 x2
13x3
8 x4
4 x5
14 x6
55
2 x1
12 x2
54 x3
285 x4
22 x5
80 x6
800
Blending •
Perusahaan eaglefood akan memproduksi cereal dalam kemasan sebesar 2 pound. Cereal yang diproduksi harus memenuhi kebutuhan gizi dalam sehari. Kebutuhan gizi dalam sehari dapat dilihat dalam tabel berikut ini: Grain
• •
A
B
C
Harga per pound
3300
4700
3800
Minimum Daily Requirement
Protein per pound
22
28
21
3
Riboflavin per pound
16
14
25
2
Phosphorus per pound
8
7
9
1
Magnesium per pound
5
0
6
0.425
Terdapat tiga alternatif bahan baku yang dapat digunakan, bahan baku tersebut bisa dicampur untuk memproduksi cereal. Tentukan bagaimana perbandingan(komposisi) bahan baku A, B dan C dalam cereal sehingga biaya untuk memproduksi cereal minimum!
Either-Or Constrains • • • •
Perusahaan Dorian automotif memproduksi 3 tipe model mobil yaitu ; compact (kecil), midsize (menengah), dan large (besar). Ada 6 ton baja dan 60,000 jam kerja tersedia Jika suatu tipe mobil diproduksi, maka mobil itu harus diproduksi paling sedikit 1,000 unit mobil Data produksi seperti terlihat di tabel bawah ini:
Kebutuhan baja Kebutuhan jam tenaga kerja Profit •
Formulasikan permasalahan memaksimumkan profit.
Compact 1.5 ton 30 jam $2000
Midsize 3 ton 25 jam $3000
perencanaan
produksi
Large 5 ton 40 jam $4000 tersebut
untuk
Model Variabel keputusan • xi = jumlah mobil tipe ke-i yang diproduksi • yi = 1 jika mobil tipe ke-i diproduksi, dan yi=0 jika tidak Formulasi : Maks z = 2 x1 + 3 x2 + 4 x3 Subject to: x1 ≤ M y1 x2 ≤ M y2 x3 ≤ M y3 1000 – x1 ≤ M (1 – y1) 1000 – x2 ≤ M (1 – y2) 1000 – x3 ≤ M (1 – y3) 1.5 x1 + 3 x2 + 5 x3 ≤ 6000 30 x1 + 25 x2 + 40 x3 ≤ 60000 x1, x2, x3 ≥ 0 dan integer y1, y2, y3 = 0 atau 1
Set Covering • •
• •
•
Propinsi sukolilo mempunyai 6 kota Pemerintah berencana untuk membangun kantor pusat pemadam kebakaran. Pada kantor pusat pemadam kebakaran akan ditempatkan kendaraan pemadam kebakaran, peralatan pemadam kebakaran dan personelnya, sehingga jika ada kebakaran maka petugas akan berangkat dari kantor pusat pemadam kebakaran menuju lokasi kebakaran. Petugas tidak boleh mencapai lokasi kebakaran lebih dari 15 menit (waktu tempuh) dari stasiun pemadam kebakaran. Waktu yang dibutuhkan dari kota yang satu ke kota yang lain adalah sebagai berikut. Kota ke-
1
2
3
4
5
6
1
0
10
20
30
30
20
2
10
0
25
35
20
10
3
20
25
0
15
30
20
4
30
35
15
0
15
25
5
30
20
30
15
0
14
6
20
10
20
25
14
0
Tentukan dimanakah kantor pusat pemadam kebakaran harus dibangun supaya banyaknya kantor yang harus dibangun tidak banyak(minimal) sehingga dana APBD bisa dihemat untuk dialokasikan pada bidang lain?
Set Covering • Sebuah kota dapat dicover oleh stasiun pemadam kebakaran jika jarak tempuhnya tidak lebih dari 15 menit • Covering set untuk setiap kota Kota
Covering sets (15 menit)
1
1,2
2
1,2,6
3
3,4
4
3,4,5
5
4,5,6
6
2,5,6
Set Covering Variabel keputusan : xi = 1 jika dibangun stasiun pemadam kebakaran pada kota-i = 0 jika TIDAK dibangun stasiun pemadam kebakaran pada kota-i Fungsi tujuan : Minimum Z= x1+ x2+ x3+ x4+ x5 + x6 Fungsi pembatas: x1+x2 ≥ 1 x1+x2 + x6 ≥ 1 x3+x4 ≥ 1 x3+x4+x5 ≥ 1 x4+x5+x6 ≥ 1 x2+x5+x6 ≥ 1
Assignment (Penugasan) Pak Ali harus menugaskan stafnya untuk mengerjakan tugas-tugas pada divisinya. Pak Ali memiliki 5 staf yaitu Rita, Tari, Rani, Nira, Tara. Divisi pak ALi harus menyelesaikan 5 tugas. Pak Ali menemui kesulitan dalam menugaskan kelima stafnya karena Rita tidak mempunyai keahlian dalam mengerjakan tugas 2 sedangkan Tari tidak mampu mengerjakan tugas 1. Biaya menugaskan setiap staff adalah berbeda beda karena untuk bisa menyelesaikan tugas dengan baik, staff seringkali harus mendapatkan pelatihan dan biaya akomodasi yang berbeda beda. Biaya menugaskan setiap staff untuk mengerjakan satu tugas adalah sebagai berikut: Tugas Staff 1 2 3 4 5 Rita 4 10 6 5 Tari 5 1 5 10 Rani 3 5 8 4 7 Nira 4 2 7 1 10 Tara 8 8 2 10 5 Bagaimanakah cara menugaskan kelima staff tersebut supaya biaya yang harus dikeluarkan perusahaan minimal?
Assignment (Penugasan) •
•
PT. Jaya Selalu membeli tiga buah mesin baru. Tiga mesin tersebut dapat ditempatkan pada empat lokasi yang tersedia dalam pabrik. Penempatan mesin-mesin tersebut harus mempertimbangkan workflow (aliran produk dalam proses pengerjaan) mesin-mesin tersebut dengan stasiun kerja lain. Sebagai manajer produksi anda harus menentukan penempatan mesin-mesin tersebut yang bisa meminimalkan biaya material handling. Biaya penempatan masing-masing mesin pada setiap lokasi adalah sebagai berikut. Mesin 2 tidak boleh ditempatkan pada lokasi 2, karena lokasi 2 dengan tangki bahan bakar dan mesin dua merupakan mesin Oven yang selalu bersuhu tinggi. Lokasi Assignee (Mesin)
1
2
3
4
1
13
16
12
11
2
15
-
13
20
3
5
7
10
6
Cutting Stock(1) PT. Kayubagus menjual kayu batangan untuk berbagai keperluan. Kayu batangan yang dijual oleh PT.Kayubagus memiliki panjang 4 meter, 6 meter dan 8 meter. Perusahaan yang memasok kayu ke PT.Kayubagus mengirimkan kayu dengan panjang 18 meter sehingga sebelum dijual kayu-kayu tersebut harus dipotong terlebih dahulu. Dalam memotong kayu-kayu tersebut PT.Kayubagus menetapkan 7 pola pemotongan sebagai berikut: Pola Pemotongan 1 2 3 4 5 6 7
4 meter 4 3 2 1 1 0 0
6 meter 0 1 0 2 1 3 0
8 meter 0 0 1 0 1 0 2
Sisa (limbah) 2 0 2 2 0 0 2
Jika misalnya PT.kayubagus menerima satu order saja dan order tersebut meminta 100 batang kayu dengan panjang 6 meter maka PT.Kayubagus akan memotong persediaan kayunya yang memiliki panjang 18 meter dengan pola pemotongan 6 sehingga tidak ada limbah sama sekali (tidak ada sisa kayu yang harus dibuang).
Cutting Stock(2) PT.Kayubagus menerima order dari berbagai konsumen dengan panjang dan jumlah yang berbeda-beda, misalnya jika PT.kayubagus menerima order 100 batang dengan panjang 4 meter, 50 batang dengan panjang 6 meter, dan 25 batang dengan panjang 8 meter. Berapa banyaknya batangan kayu (yang memiliki panjang 18 meter) yang harus dipotong dengan pola pemotongan 1? Pola pemotongan 2? Pola pemotongan 3? dan seterusnya supaya banyaknya sisa pemotongan(limbah) sesedikit mungkin. Pemilihan kombinasi pola pemotongan akan menentukan banyaknya sisa pemotongan(limbah kayu) yang dibuang atau dengan kata lain pola pemotongan harus dipilih sedemikian rupa sehingga sisa pemotongan (limbah kayu) menjadi sesedikit mungkin.
Distribusi • Sebuah perusahaan Air Cargo memiliki 8 pesawat tipe 1, 15 pesawat tipe 2, dan sebelas pesawat tipe 3. Pesawat tipe 1 mampu mengangkut barang seberat 45 ton, pesawat tipe 2 mampu mengangkut barang seberat 7 ton dan pesawat tipe 3 hanya mampu mengangkut 5 ton. • Hari ini perusahaan harus mengirim barang seberat 20 ton ke kota A dan 28 ton ke kota B. Setiap pesawat hanya bisa terbang sekali dalam sehari. • Biaya menerbangkan pesawat dari terminal (bandara) ke kota A dan B adalah sebagai berikut: Pesawat 1
Pesawat 2
Pesawat 3
Kota A
23
15
2
Kota B
58
20
3
• Pesawat manakah yang harus terbang? Dan kemanakah tujuannya?
Latihan 1 Perusahaan A adalah perusahaan yang bergerak pada bisnis rumah makan cepat saji (fast food). Perusahaan ini berkembang dengan pesat sehingga berencana untuk membuka cabang baru di beberapa kota besar di Indonesia termasuk Surabaya. Di kota Surabaya terdapat delapan lokasi potensial yang dapat dipilih oleh perusahaan. Lokasi cabang yang dipilih harus bisa memastikan bahwa jika ada konsumen yang memesan maka pesanan harus sudah sampai ke konsumen tidak lebih dari 30 menit setelah pesanan diterima.Diperlukan 10 menit untuk menyiapkan pesanan konsumen. Perusahaan berusaha untuk membuka cabang sesedikit mungkin namun bisa mengcover semua permintaan di kota Surabaya. Berikut data lokasi dan waktu tempuh ke setiap daerah. ke1 2 3 4 5 6 7
1 0 10 20 12 20 15 14
2 10 0 25 35 20 10 23
3 20 25 0 15 15 20 17
4 12 35 15 0 15 25 20
Modelkan masalah tersebut!
5 20 20 15 15 0 14 25
6 15 10 20 25 14 0 24
7 14 23 17 20 25 24 0
Latihan 2 Selain waktu tempuh, perusahaan juga memilih lokasi berdasarkan besarnya kapasitas cabang dan besarnya permintaan pada setiap lokasi. Kapasitas cabang yang bisa didirikan disetiap daerah dan permintaan adalah sebagai berikut: Lokasi Kapasitas Permintaan 1 2 3 4 5 6 7
2000 1500 3000 2000 2500 2000 1000
4000 3000 1000 1000 1500 2000 1000
a) Modifikasi model anda! b) Tentukan nilai-nilai parameter yang bisa anda coba untuk melakukan validasi! c) Tentukan solusi dari nilai-nilai parameter yang anda cobakan tadi berdasarkan intuisi anda!
INTEGER PROGRAMMING
CUTTING PLANE METHOD
ILP: Cutting-Plane Algorithm • Start at the continous optimum LP solution • Add special constraint (called cuts) to renders an integer optimum extreme point • The cuts do not eliminate any original feasible integer points • The cuts must through at least one feasible or infeasible integer point • Number of cuts is independent of the size of the problem
ILP: Cutting-Plane Algorithm • Contoh permasalahan ILP:
ILP: Cutting-Plane Algorithm -graphical approach• Solusi:
ILP: Cutting-Plane Algorithm -algebra approach• Optimum LP tableau:
• Develops the cut – with assumption that all variables (including slacks) are integer
ILP: Cutting-Plane Algorithm -algebra approach• Steps to generate a cut: – Choose a source row – Factoring the source row – Generate fractional cut – Form equation of the cut • Implement the cut – Add constraint (equation) to the optimal tableu – Use dual simplex to solve the problem, if the tableau is optimal but infeasible – Start to generate another cut until all the variables are integer.
ILP: Cutting-Plane Algorithm -algebra approach• Sources row:
• Factoring: 𝑥2 -equation – factored as:
• Factorial cut: • Cut’s equation form:
ILP: Cutting-Plane Algorithm -algebra approach• New tableau:
• Solve with dual simplex – Result:
ILP: Cutting-Plane Algorithm -algebra approach• Start to generate another cut – Until all variables are integer
• Final Result:
ILP: Cutting-Plane Algorithm -latihan soal-
Lecture 11 – Preparation • Materi: – Metode Branch and Bound