Professional Documents
Culture Documents
=
mn m m
n
n
a a a
a a a
a a a
2 1
2 22 21
1 12 11
A
(
(
(
(
=
n
x
x
x
2
1
x
(
(
(
(
=
m
b
b
b
2
1
b
( )
n
c c c
2 1
= c
Ilustrasi:
Bentuk standard dalam matriks-vektor
Keterangan:
A : matriks (m x n)
x : vektor kolom (n x 1)
b : vektor kolom (m x 1)
c : vektor baris (1 x n)
Reduksi ke bentuk standar
Metode simpleks untuk memecahkan masalah LP memerlukan setiap masalah
dinyatakan dalam bentuk standar.
Tidak semua masalah LP dalam bentuk standar
Pembatas pertidaksamaan (inequality constraint).
Variabel yang tak dibatasi tanda (unrestricted in sign of variables)
Pembatas pertidaksamaan
Karena bentuk standar memerlukan semua pembatas harus dinyatakan
dengan dalam persamaan, pembatas pertidaksamaan harus diubah ke
persamaan.
Ini dilakukan dengan penambahan variabel baru untuk menunjukkan slack
antara ruas kiri dan kanan pada tiap pertidaksamaan.
Variabel baru tersebut disebut slack variable
Contoh:
Variabel yang tak dibatasi tanda
Dalam LP, adakalanya terdapat nilai variabel yang tak dibatasi tanda
(positif atau negatif)
Karena bentuk standar LP memerlukan semua variabel adalah tak negatif,
maka variabel yang tak dibatasi tanda diganti dengan selisih dua variabel
tak negative
Contoh:
x
1
+ x
5
= 50
x
1
0
x
5
tak dibatasi tanda/ unrestricted
x
5
= x
6
x
7
x
1
+ x
6
x
7
= 50
x
1
0, x
6
0, x
7
0
Suatu solusi layak (feasible solution) adalah suatu vektor tak negatif x yang
memenuhi persamaan Ax = b.
Daerah layak (feasible region), dinyatakan dengan S, adalah himpunan dari
semua solusi layak yang mungkin. Secara matematis,
S = {x | Ax = b, x 0}
Jika himpunan layak S adalah kosong maka masalah LP dikatakan tak layak
(infeasible)
Suatu solusi optimal (optimal solution) adalah suatu vektor x
*
yang layak dan
nilai fungsi tujuannya (cx
*
) lebih besar dari semua solusi layak yang lain.
Secara matematis,
x
*
adalah optimal x
*
e S dan cx
*
cx,
x e S
Nilai optimal (optimal value) dari masalah LP adalah
nilai fungsi tujuan yang
berkaitan dengan solusi optimal. Jika Z
*
adalah nilai optimal maka Z
*
= cx
*
Jika suatu LP mempunyai lebih dari satu solusi optimal maka LP disebut
mempunyai solusi optimal alternatif (alternate optimal solution).
Solusi optimal dari masalah LP dikatakan unik (unique optimum) jika hanya
terdapat tepat satu solusi optimal.
Jika suatu masalah LP tidak mempunyai optimum tertentu (finite optimum),
yaitu maks. Z +, maka LP dikatakan mempunyai solusi yang tak terbatas
(unbounded solution)
Permasalahan matematis utama dalam pemrograman linier adalah
mendapatkan solusi dari suatu sistem persamaaan linier yang
memaksimumkan atau meminimumkan suatu fungsi tujuan linier.
Definisi Dasar Basis Feasible Solution
Pemecahan Sistem Persamaan Linier
Sistem persamaan linier dapat diselesaikan dengan menggunakan prosedur
klasik Gauss-Jordan elimination.
Contoh, sistem dengan dua persamaan dengan lima variabel yang tak
diketahui:
Karena terdapat lebih banyak jumlah variabel yang tak diketahui daripada
persamaan, maka sistem mempunyai lebih dari satu solusi.
Himpunan dari semua solusi yang mungkin dari sistem disebut himpunan
solusi (solution set)
Sistem ekivalen (equivalent system)
Dua sistem persamaan dikatakan ekivalen jika kedua sistem
mempunyai himpunan solusi yang sama.
Metode untuk memecahkan suatu sistem persamaan adalah mendapatkan
suatu sistem ekivalen yang mudah untuk dipecahkan.
Terdapat dua tipe operasi baris elementer untuk mendapatkan sistem ekivalen
o Mengalikan sebarang persamaan dalam sistem dengan suatu bilangan
positif atau negatif.
o Menambahkan ke sebarang persamaan dengan suatu konstanta pengali
(positif, negatif atau nol) ke sebarang persamaan yang lain.
Contoh:
Sistem S
1
, S
2
dan S
3
adalah ekivalen, yaitu solusi bagi satu sistem secara
otomatis memberikan solusi bagi sistem yang lain.
( )! !
!
m n m
n
m
n
=
|
|
.
|
\
|
Untuk sistem S
3
, x
4
= x
5
= x
6
= 0 akan memberikan x
1
= 6, x
2
= 2.
Sistem S
3
disebut sistem kanonik (canonical system).
Variabel x
1
dan x
2
dari sistem kanonik disebut variabel basis (basic variable).
Variabel basis (basic variable)
o Variabel x
i
dikatakan sebagai variabel basis jika dalam suatu
persamaan ia muncul dengan koefisien satu pada persamaan tersebut,
dan nol pada persamaan yang lain.
Variabel non basis (nonbasic variable)
o Variabel yang bukan variabel basis.
Operasi pivot (pivot operation)
o Suatu urutan operasi elementer yang mereduksi suatu sistem
persamaan ke suatu sistem ekivalen untuk menghasilkan variabel
basis.
Solusi basis (basic solution)
o Solusi yang diperoleh dari suatu sistem kanonik dengan menetapkan
nilai variabel non basis sama dengan nol dan memecahkan variabel
basis.
Solusi basis layak (basic feasible solution)
o Solusi basis dimana nilai variabel basisnya adalah tak negatif.
Dengan m pembatas dan n variabel, jumlah maksimum dari solusi basis bagi
LP dalam bentuk standar adalah terbatas dan diberikan oleh
Per definisi, setiap solusi basis layak adalah solusi basis, maka jumlah
maksimum solusi basis layak adalah juga terbatas dengan hubungan ini.
Dari kesimpulan dengan metode grafis:
o Jika terdapat suatu solusi optimal dari model LP, salah satu titik pojok
(corner point) dari daerah layak adalah solusi optimal.
Dengan mudah dapat ditunjukkan bahwa setiap titik pojok dari daerah layak
berkaitan dengan suatu solusi basis layak dari persamaan pembatas.
Ini berarti bahwa suatu solusi optimal dari model LP dapat diperoleh hanya
dengan memeriksa solusi basis layaknya.
(
=
X
N
X
B
x
b
X
B B
1
=
0
X
N
=
Pendekatan naif (nave approach) untuk memecahkan masalah LP (yang
mempunyai solusi optimal) dilakukan dengan membangkitkan semua solusi
basis layak yang mungkin dengan sistem kanonik dan menentukan solusi
basis layak mana yang memberikan nilai fungsi tujuan terbaik.
Dengan metode simpleks (simplex method), pemecahan lebih efisien karena
hanya memeriksa sebagian solusi basis layak.
Jika fungsi pembatas adalah Ax = B, maka solusinya adalah
dengan
dan
Jika x
B
0, maka x disebut BASIC FEASIBLE SOLUTION dari sistem
tersebut.
B = basic matrix (basis)
N = nonbasic matrix
Komponen x
B
disebut variabel basis/ variabel dependent
Komponen xN disebut variabel nonbasis/ variabel independent
Fungsi pembatas sebagai berikut:
x
1
+ x
2
6
x
2
3
x
1
, x
2
0
Bentuk standard:
x
1
+ x
2
+ x
3
= 6
x
2
+ x
4
= 3
x
1
, x
2
, x
3
, x
4
0
BASIC FEASIBLE SOLUTION
(
=
1 0 1 0
0 1 1 1
A
Matriks Pembatas A = [a
1
, a
2
, a
3
, a
4
]
Basis yang mungkin
Poin 1, 2, 3, dan 5 merupakan basic feasible solution.
Poin 4 merupakan solusi basis yang tidak feasible .
-1
2 -5 3 5
A A
-1 3 1 2
( (
= =
( (
-1 -1
1 0
AA A A
0 1
(
= =
(
a b
A dapat di invers jika ad - bc 0
c d
(
= =
(
Suatu bilangan jika dikalikan dengan kebalikannya, maka hasilnya adalah 1.
Misalkan 5.5
-1
atau 5
-1
.5 = 1, Demikian juga halnya dengan matrik A.A
-1
= A
-1
.A = I
Maka :
Jika tidak ditemukan matrik A
-1
, maka A disebut matrik tunggal (singular)
Invers matrik 2 x 2
Maka , A
-1
diperoleh dengan rumus :
Jika ad bc = 0, maka matrik A non-inverti
1. Mencari invers dengan definisi sbb:
Langkah-langkahnya :
Dibuat suatu matrik invers dengan elemen-elemen matrik permisalan
sehingga mendapatkan suatu persamaan jika dilakukan perkalian dengan
matriknya.
MENCARI INVERSE MATRIKS
ij
i
ij i j
b menukar baris ke i dengan baris ke j
b (p) mengalikan baris ke i dengan p 0
b (p) b pb
ganti baris ke i dengan baris baru yang
merupakan baris ke i ditambah dengan
=
= =
= +
=
baris ke j yang dikalikan dengan p.
Perkalian matrik dengan matrik inversnya menghasilkan matrik identitas
Dilakukan penyelesaian persamaan melalui eliminasi ataupun substitusi
sehingga diperoleh nilai elemen-elemen matrik invers.
2. Mencari invers dengan OBE (Operasi Baris Elementer)
Langkah-langkah :
Dilakukan OBE pada hingga diperoleh dengan memperhatikan definisi
operasi berikut:
Matriks Elementer: (E)
Matriks A(nxn) disebut elementer bila dengan sekali melakukan Operasi Baris
Elementer (OBE) terhadap matriks identitas I
n
.
E = matrik elementer, maka EA = matrik baru yang terjadi bila OBE tersebut
dilakukan pada matrik A.
Notasi sebagai berikut :
Tunjukkan bahwa matrik
adalah perkalian matrik elementer !
Dari penyelesaian dengan OBE yang menghasilkan matrik identitas, maka matrik A
adalah matrik invertible.
Dengan demikian, matrik A dapat dituliskan sebagai hasil kali dari matrik elementer.
Kita memiliki E
4
E
3
E
2
E
1
A = I dengan :
Matrik elementer ini menyatakan operasi baris elementer untuk membentuk matrik A
menjadi matrik identitas.
Dengan demikian :
3. Mencari Invers dengan Matrik Adjoint
Langkah-langkah :
Hitung
Cari matrik adjoint dengan terlebih dahulu menentukan matrik kofaktor.
Matrik adjoint merupakan matrik transpose dari matrik kofaktor.
Matrik invers diperoleh dengan mengkalikan matrik adjoint dengan seper-
determinan
Matrik kofaktor dan matrik adjoint
Jika baris ke i dan kolom j dibuang, maka disebut minor ke ij dari matrik A.
Kofaktor ke ij dari matrik A adalah :
Matrik kofaktor dari A adalah :
-1
1
A adj(A)
A
=
Sehingga diperoleh matrik kofaktor A :
Matrik adjoint merupakan matrik transpose dari matrik kofaktor.
Kesimpulan :
Contoh soal:
a b c
A d e f
g h i
(
(
=
(
(
Invers matrik 3 x 3
Sama seperti mencari invers matrik 2 x 2, hanya diperlukan ketelitian yang lebih
dibandingkan mencari invers matrik 2 x 2.
Contoh soal 1:
Jawab:
Cara:
Contoh soal 2:
adj(A) =
|
|
|
.
|
\
|
33 23 13
32 22 12
31 21 11
C C C
C C C
C C C
=
|
|
|
.
|
\
|
2 0 1
0 2 1
4 4 5
|A| = a
11
C
11
+ a
12
C
12
+ a
13
C
13
= (2)(-5) + (4)(1) + (4)(1)
= - 2
A
-1
=
| |
) (
A
A adj
=
2
1
|
|
|
.
|
\
|
2 0 1
0 2 1
4 4 5
=
|
|
|
.
|
\
|
1 0
0 1
2 2
2
1
2
1
2
5
Carilah invers dari B =
|
|
|
.
|
\
|
3 2 1
2 3 1
4 4 2
dengan melakukan OBE !
Jawab :
(B | I) =
B
13
~
|
|
|
.
|
\
|
1 0 0 3 2 1
0 1 0 2 3 1
0 0 1 4 4 2
~
|
|
|
.
|
\
|
0 0 1 4 4 2
0 1 0 2 3 1
1 0 0 3 2 1
B
21(1)
B
31(2)
|
|
|
.
|
\
|
2 0 1 2 0 0
1 1 0 1 1 0
1 0 0 3 2 1
B
1(-1)
B
3(-1/2)
~
Contoh Soal 3:
Jawab:
|
|
|
.
|
\
|
2 0 1 2 0 0
1 1 0 1 1 0
1 0 0 3 2 1
B
1(-1)
B
3(-1/2)
~
|
|
|
.
|
\
|
1 0 1 0 0
1 1 0 1 1 0
1 0 0 3 2 1
2
1
B
13(-3)
B
23(1)
~
|
|
|
.
|
\
|
1 0 1 0 0
0 1 0 1 0
2 0 0 2 1
2
1
2
1
2
3
B
12(-2)
~
|
|
|
.
|
\
|
1 0 1 0 0
0 1 0 1 0
2 2 0 0 1
2
1
2
1
2
5
= (I | B
-1
)
Jadi B
-1
=
|
|
|
.
|
\
|
1 0
0 1
2 2
2
1
2
1
2
5
Cari matrik invers dari
( ) ( )
-1
A I I A
OBE
B
21
(-2)
B
31
(1)
B
32
(1)
Karena elemen baris ke 3
pada matrik kiri semua nol,
maka matrik A tidak punya
invers (non-invertibel)
EVALUASI
SOAL :
Cari martiks invers dari (dengan menggunakan3 cara):
X 100
Y 120
3/2 X + 3 Y 400, dimana X dan Y 0.
V. DASAR TABEL SIMPLEX
POKOK PEMBAHASAN
Dasar Tabel Simplex
Solusi Unik dan Alternatif
TUJUAN PEMBELAJARAN
1. Memahami konsep pemecahan programa linear dengan metoda
simplex
2. Memahami solusi-solusi unik dan solusi alternatif
RINGKASAN MATERI
Metode Simplex
Dikembangkan oleh G.B. Dantzig.
Merupakan prosedur iteratif untuk memecahkan masalah LP dengan
mengekspresikannya dalam bentuk standar.
Memerlukan kondisi dengan semua pembatas dinyatakan dalam bentuk
sistem kanonik dimana suatu solusi basis layak dapat langsung diperoleh.
Ciri-ciri dari bentuk baku model LP adalah :
1. Semua kendala berupa persamaan dengan sisi kanan non negatif.
2. Semua variabel non negatif.
3. Fungsi tujuan dari maksimum maupun minimum.
Pendahuluan
Kasus:
Memaksimumkan Z = 3x
1
+ 2x
2
dengan pembatas-pembatas:
x
1
+ 2x
2
s 6
2x
1
+ x
2
s 8
x
1
+ x
2
s 1
x
2
s 2
x
1
0, x
2
0
Bentuk Standard:
Memaksimumkan Z = 3x
1
+2x
2
+0x
3
+0x
4
+0x
5
+0x
6
dengan pembatas-pembatas:
x
1
+ 2x
2
+ x
3
= 6
2x
1
+ x
2
+ x
4
= 8
x
1
+ x
2
+ x
5
= 1
x
2
+ x
6
= 2
x
1
0, x
2
0, x
3
0, x
4
0, x
5
0, x
6
0
LANGKAH UMUM
Berhenti jika suatu solusi layak basis tidak dapat diperbaiki lagi
maka solusi layak basis tersebut menjadi solusi optimal
Cari solusi-solusi layak basis yang dapat memperbaiki nilai fungsi tujuan
Perbaiki solusi awal jika mungkin
Cari solusi layak basis yang mempunyai nilai fungsi tujuan lebih baik
Mulai dengan suatu solusi layak basis
Penetapan Solusi Layak Basis Awal:
Variabel basis : x
3
, x
4
, x
5
,
x
6
Dengan menetapkan x
1
= x
2
= 0, maka
diperoleh solusi basis :
x
3
= 6, x
4
= 8, x
5
= 1, x
6
= 2
Nilai fungsi tujuan
Z = 3(0)+2(0)+0(6)+0(8)+0(1)+0(2)= 0
Memperbaiki Solusi Layak Awal:
Dengan diberikan solusi basis layak, yaitu x
1
= x
2
= 0, x
3
= 6, x
4
= 8, x
5
= 1, x
6
= 2
dengan Z= 0, metode simpleks memeriksa apakah mungkin untuk mendapatkan
solusi basis layak yang lebih baik dengan nilai Z yang lebih besar.
Pemeriksaan dilakukan dengan pertama-tama memeriksa apakah solusi saat ini
adalah optimal
.
Jika solusi solusi belum optimal, metode simpleks mencari suatu solusi basis layak
tetangga (adjacent basic feasible solution) dengan nilai Z yang lebih besar.
Suatu solusi basis layak tetangga (adjacent basic feasible solution) berbeda dengan
solusi basis layak (basic feasible solution) saat ini hanya tepat satu variabel basis.
Untuk mendapatkan solusi basis layak tetangga, metoda simpleks :
Membuat salah satu variabel basis menjadi variabel non basis.
Menjadikan salah satu variabel non basis menjadi variabel basis.
Permasalahannya adalah memilih solusi basis dan solusi non basis yang
pertukarannya memberikan perbaikan maksimum pada nilai fungsi tujuan.
Dalam solusi basis layak :
Variabel basis dapat mempunyai nilai yang positif.
Varibel non basis selalu mempunyai nilai nol.
Membuat variabel non basis menjadi variabel basis adalah ekivalen dengan
menaikkan nilainya dari nol ke positif.
Tentu saja, pilihan yang harus dibuat adalah menentukan variabel non basis mana
yang dapat memberikan perbaikan pada nilai Z.
Ini dilakukan dengan menaikkan nilai variabel non basis menjadi satu unit dan
memeriksa perubahannya pada nilai fungsi tujuan Z.
Misalkan variabel non basis x
1
dinaikkan 1 unit
1x
1
+x
3
= 6
2x
1
+ x
4
= 8
x
1
+ x
5
= 1
0x
1
+ x
6
= 2
x
1
= 1, x
2
= 0, x
3
= 5, x
4
= 6, x
5
= 2, x
6
= 2
Nilai fungsi tujuan
Z = 3(1)+2(0)+0(5)+0(6)+0(2)+0(2)= 3
Perubahan nilai Z per peningkatan satu unit x
1
AZ = 3 0 = 3
Misalkan variabel non basis x
2
dinaikkan 1 unit
2x
2
+ x
3
= 6
1x
2
+ x
4
= 8
1x
2
+ x
5
= 1
1x
2
+ x
6
= 2
x
1
= 0, x
2
= 1, x
3
= 4, x
4
= 7, x
5
= 0, x
6
= 1
Nilai fungsi tujuan
Z = 3(0)+2(1)+0(4)+0(7)+0(0)+0(1)= 2
Perubahan nilai Z per peningkatan satu unit x
2
AZ = 2 0 = 2
Karena AZ positif untuk x
1
dan x
2
nilai fungsi tujuan dapat dinaikkan.
Karena AZ untuk x
1
> AZ untuk x
2
maka menaikkan x
1
lebih baik.
Sampai seberapa jauh x
1
dapat dinaikkan?
Jika x
1
dinaikkan maka nilai variabel basis : x
3
, x
4
, x
5
,
x
6
akan turun dan nilainya
harus tak negatif agar tetap layak.
Batas peningkatan x
1
:
x
1
+ x
3
= 6 x
1
= 6
2x
1
+ x
4
= 8 x
1
= 4
x
1
+ x
5
= 1 x
1
=
0x
1
+ x
6
= 2 x
1
=
Maksimum peningkatan x
1
= minimum (6, 4, , ) = 4
variabel masuk basis x
1
dinaikkan 4 unit
x
1
+x
3
= 6
2x
1
+ x
4
= 8
x
1
+ x
5
= 1
0x
1
+ x
6
= 2
x
1
dinaikkan 4 unit,
maka x
4
menjadi variabel non basis
x
1
= 4, x
2
= 0, x
3
= 2, x
4
= 0, x
5
= 5, x
6
= 2 dan Z = 12
x
1
+ 2x
2
+ x
3
= 6
2 x
1
+ x
2
+ x
4
= 8
x
1
+ x
2
+ x
5
= 1
x
2
+ x
6
= 2
Sistem kanonik:
3
/
2
x
2
+ x
3
1
/
2
x
4
= 2
x
1
+
1
/
2
x
2
+
1
/
2
x
4
= 4
3
/
2
x
2
+
1
/
2
x
4
+ x
5
= 5
x
2
+ x
6
= 2
Variabel basis : x
1
, x
3
, x
5
, x
6
;
Variabel non basis: x
2
, x
4
Memperbaiki Solusi Layak 2:
Misalkan variabel non basis x
2
dinaikkan 1 unit
3
/
2
x
2
+ x
3
= 2
x
1
+
1
/
2
x
2
= 4
3
/
2
x
2
+ x
5
= 5
x
2
+ x
6
= 2
x
1
=
7
/
2
, x
2
= 1, x
3
=
1
/
2
, x
4
= 0, x
5
=
7
/
2
, x
6
= 1
Nilai fungsi tujuan
Z = 3(
7
/
2
)+2(1)+0(
1
/
2
)+0(0)+0(
7
/
2
)+0(1)
= 12
1
/
2
Perubahan nilai Z per peningkatan satu unit x
2
AZ = 12
1
/
2
12 =
1
/
2
Misalkan variabel non basis x
4
dinaikkan 1 unit
x
3
1
/
2
x
4
= 2
x
1
+
1
/
2
x
4
= 4
+
1
/
2
x
4
+ x
5
= 5
0 x
4
+ x
6
= 2
x
1
=
7
/
2
, x
2
= 0, x
3
=
5
/
2
, x
4
= 1, x
5
=
9
/
2
, x
6
= 2
Nilai fungsi tujuan
Z = 3(
7
/
2
)+2(0)+0(
5
/
2
)+0(1)+0(
9
/
2
)+0(2) = 10
1
/
2
Perubahan nilai Z per peningkatan satu unit x
4
AZ = 10
1
/
2
12 =
3
/
2
Karena AZ positif untuk x
2
nilai fungsi tujuan dapat dinaikkan
Karena AZ negatif untuk x
4
nilai fungsi tujuan tidak dapat dinaikkan
Sampai seberapa jauh x
2
dapat dinaikkan?
Jika x
2
dinaikkan maka nilai variabel basis : x
1
, x
3
, x
5
,
x
6
akan turun dan nilainya
harus tak negatif agar tetap layak.
Batas peningkatan x
2
:
3
/
2
x
2
+ x
3
= 2 x
2
=
4
/
3
x
1
+
1
/
2
x
2
= 4 x
2
= 8
3
/
2
x
2
+ x
5
= 5 x
2
=
10
/
3
x
2
+ x
6
= 2 x
2
= 2
Maksimum peningkatan x
2
= minimum (
4
/
3
, 8,
10
/
3
, 2)
=
4
/
3
x
2
dinaikkan ke
4
/
3
maka x
3
menjadi variabel non basis
x
1
=
10
/
3
, x
2
=
4
/
3
, x
3
= 0, x
4
= 0, x
5
= 3, x
6
=
2
/
3
dan Z = 12
2
/
3
3
/
2
x
2
+ x
3
1
/
2
x
4
= 2
x
1
+
1
/
2
x
2
+
1
/
2
x
4
= 4
3
/
2
x
2
+
1
/
2
x
4
+ x
5
= 5
x
2
+ x
6
= 2
sistem kanonik:
x
2
+
2
/
3
x
3
1
/
3
x
4
=
4
/
3
x
1
1
/
3
x
3
+
2
/
3
x
4
=
10
/
3
x
3
+ x
4
+ x
5
= 3
2
/
3
x
3
+
1
/
3
x
4
+ x
6
=
2
/
3
Variabel basis : x
1
, x
2
, x
5
, x
6
;
Variabel non basis: x
3
, x
4
Memperbaiki Solusi Layak 3:
Misalkan variabel non basis x
3
dinaikkan 1 unit
x
2
+
2
/
3
x
3
=
4
/
3
x
1
1
/
3
x
3
=
10
/
3
x
3
+ x
5
= 3
2
/
3
x
3
+ x
6
=
2
/
3
x
1
=
11
/
3
, x
2
=
2
/
3
, x
3
= 1, x
4
= 0, x
5
= 4, x
6
=
4
/
3
Nilai fungsi tujuan
Z = 3(
11
/
3
)+2(
2
/
3
)+0(1)+0(0)+0(4)+0(4/3)
= 12
1
/
3
Perubahan nilai Z per peningkatan satu unit x
3
AZ = 12
1
/
3
12
2
/
3
=
1
/
3
Misalkan variabel non basis x
4
dinaikkan 1 unit
x
2
1
/
3
x
4
=
4
/
3
x
1
+
2
/
3
x
4
=
10
/
3
x
4
+ x
5
= 3
1
/
3
x
4
+ x
6
=
2
/
3
x
1
=
8
/
3
, x
2
=
5
/
3
, x
3
= 0, x
4
= 1, x
5
= 2, x
6
=
1
/
3
Nilai fungsi tujuan
Z = 3(
8
/
3
)+2(
5
/
3
)+0(0)+0(1)+0(2)+0(
1
/
3
)
= 11
1
/
3
Perubahan nilai Z per peningkatan satu unit x
4
AZ = 11
1
/
3
12
2
/
3
=
4
/
3
Karena AZ negatif untuk x
3
dan x
4
nilai fungsi tujuan tidak dapat dinaikkan.
Karena tidak ada variabel non basis yang dapat dinaikkan yang dapat memberikan
peningkatan pada nilai fungsi tujuan Z maka solusi saat ini adalah optimal.
Untuk masalah maksimasi:
Suatu solusi basis layak adalah optimal jika profit relatif (AZ) dari variabel
non basis adalah negatif atau nol.
( ) 0
2
1
8
6
0 , 0 , 0 , 0 =
|
|
|
|
|
.
|
\
|
= Z
Contoh :
Memaksimumkan Z = 3x
1
+ 2x
2
dengan pembatas-pembatas:
x
1
+ 2x
2
s 6
2x
1
+ x
2
s 8
x
1
+ x
2
s 1
x
2
s 2
x
1
0, x
2
0
Bentuk kanonik
Memaksimumkan Z = 3x
1
+ 2x
2
dengan pembatas-pembatas:
x
1
+ 2x
2
+ x
3
= 6
2x
1
+ x
2
+ x
4
= 8
x
1
+ x
2
+ x
5
= 1
x
2
+ x
6
= 2
x
1
0, x
2
0, x
3
0, x
4
0, x
5
0, x
6
0,
Representasi tabel untuk solusi basis layak awal
Nilai fungsi tujuan
Metode Simpleks dalam Bentuk Tabular
konstanta dan vektor dari product inner
B
c Z =
Pemeriksaan optimalitas
Nilai fungsi tujuan relatif (profit relatif /ongkos relatif ) untuk variabel non basis:
Kondisi optimal terjadi apabila semua nilai koefisien fungsi tujuan relatif untuk
variabel non basis adalah tak positif [untuk masalah maksimasi].
Nilai fungsi tujuan relatif untuk variabel non basis
Tabel 1 (awal)
Penentuan variabel yang masuk (entering variable)
Variabel non basis yang dipilih untuk masuk ke basis (entering variable) variabel
yang memberikan peningkatan per unit pada Z yang terbesar., yaitu variabel non
basis yang mempunyai nilai fungsi tujuan relatif terbesar (paling positif untuk
masalah maksimasi).
(
=
kanonik sistem dalam dengan berkaitan
yang kolom dan dari
j
B
j j
x
c uct inner prod
c c
( ) 3
0
1
2
1
0 , 0 , 0 , 0 3
1
=
|
|
|
|
|
.
|
\
|
= c
( ) 2
1
1
1
2
0 , 0 , 0 , 0 2
2
=
|
|
|
|
|
.
|
\
|
= c
Penentuan variabel yang keluar (leaving variable)
Untuk menentukan variabel basis yang akan diganti (leaving variable), aturan rasio
minimum (minimum ratio rule) digunakan untuk menentukan limit bagi tiap
pembatas.
Nomor baris Variabel basis
Batas atas bagi
x
1
1 x
3
6/1 = 6
2 x
4
8/2 = 4 (minimum)
3 x
5
4 x
6
Tabel 2
Penentuan variabel yang masuk (entering variable)
Tabel 3 (Optimal)
Output Tabel Simpleks dengan Software
Koefisien fungsi tujuan relatif memberikan informasi perubahan dalam nilai
Z per satu unit peningkatan variabel non basis.
Nilai yang negatif pada koefisien fungsi tujuan relatif untuk suatu variabel
non basis mengindikasikan bahwa jika variabel non basis dinaikkan justru
akan menyebabkan penurunan pada nilai Z.
Oleh karena itu, untuk masalah minimasi, hanya variabel non basis yang
mempunyai koefisien fungsi tujuan relatif yang negatif saja yang memenuhi
syarat sebagai calon variabel yang masuk basis (entering variable).
Variabel yang masuk basis (entering variable) adalah variabel yang
mempunyai koefisien fungsi tujuan relatif paling negatif.
Sehingga kondisi optimalitas pada masalah minimasi terjadi apabila semua
nilai koefisien fungsi tujuan relatif variabel non basis adalah tak negatif.
Alternatif lain untuk memecahkan masalah minimasi adalah dengan
mengkonversikannya menjadi masalah maksimasi dengan memecahkan
dengan metoda simpleks untuk masalah maksimasi.
Konversi dilakukan dengan mengalikan fungsi tujuan untuk masalah
minimasi dengan minus satu.
Contoh:
Meminimumkan Z = 4x
1
+ x
2
dengan pembatas-pembatas:
3x
1
+ x
2
= 3
4x
1
+ 3x
2
6
x
1
+ 2x
2
s 4
x
1
0, x
2
0
Memaksimumkan Z = -4x
1
- x
2
dengan pembatas-pembatas:
3x
1
+ x
2
= 3
4x
1
+ 3x
2
6
x
1
+ 2x
2
s 4
PEMECAHAN UNTUK MASALAH MINIMISASI
x
1
0, x
2
0
Solusi optimal kedua permasalahan akan sama,
tetapi nilai optimalnya berbeda dalam hal tanda.
Dengan kata lain:
Nilai minimum dari Z = - (Nilai maksimum dari Z)
Nilai yang sama pada koefisien fungsi tujuan relatif yang terbesar Pilih
variabel non basis yang akan masuk (entering variable) secara sebarang.
Nilai yang sama pada rasio minimum untuk dua atau lebih pembatas
Pilih variabel yang akan keluar (leaving variable) secara sebarang.
Implikasi dari nilai yang sama ini adalah akan menghasilkan solusi
yang degenerate.
Solusi optimal alternatif (alternate optimal solution)
Solusi yang tak terbatas (unbounded solution)
Memaksimumkan Z = 2x
1
+ 4x
2
dengan pembatas-pembatas:
x
1
+ 2x
2
s 5
x
1
+ x
2
s 4
x
1
0, x
2
0
Bentuk Standard
Memaksimumkan Z = 2x
1
+ 4x
2
dengan pembatas-pembatas:
x
1
+ 2x
2
+ x
3
= 5
x
1
+ x
2
+ x
4
= 4
x
1
0, x
2
0, x
3
0, x
4
0
MASALAH-MASALAH KOMPUTASI
SOLUSI OPTIMUM ALTERNATIF
Tabel 1
Tabel 2 (Optimal)
Tabel 3 (Optimal alternatif)
Solusi secara grafis
Solusi optimal alternatif dalam tabel simpleks dapat diidentifikasi dengan
melihat apakah terdapat koefisien fungsi tujuan relatif yang nol untuk
variabel non basis pada tabel optimal.
Dalam praktek, pengetahuan tentang optima alternatif adalah berguna karena
ini memberikan manajemen untuk memilih solusi yang terbaik yang cocok
dengan situasi tanpa terjadinya penurunan pada nilai fungsi tujuan.
Memaksimumkan Z = 2x
1
+ 3x
2
dengan pembatas-pembatas:
x
1
x
2
s 2
-3x
1
+ x
2
s 3
x
1
0, x
2
0
Bentuk Standard
Memaksimumkan Z = 2x
1
+ 3x
2
dengan pembatas-pembatas:
x
1
x
2
+ x
3
= 2
-3x
1
+ x
2
+ x
4
= 3
x
1
0, x
2
0, x
3
0, x
4
0
SOLUSI TAK TERBATAS
Tabel 1
Tabel 2
Tabel 2 belum optimal
Variabel non basis x
1
dapat menjadi basis (entering variable) untuk
menaikkan Z.
Tetapi, aturan rasio minimum gagal karena tidak ada elemen positif pada
kolom x
1
.
Dengan kata lain, jika x
1
meningkat maka kedua variabel basis x
3
dan x
2
juga
meningkat sehingga tidak akan pernah mencapai nol sebagai batas
peningkatan x
1
.
Ini berarti bahwa x
1
dapat dinaikkan secara tak terbatas.
Karena tiap peningkatan satu unit x1 akan meningkatkan Z sebesar 11 unit,
maka fungsi tujuan dapat dinaikkan tak terbatas.
Oleh karena itu, solusi bagi masalah LP adalah solusi tak terbatas (unbounded
solution).
Dengan demikian, kegagalan dalam aturan rasio minimum mengindikasikan
bahwa masalah LP mempunyai solusi yang tak terbatas.
Solusi secara grafis
Jika terjadi nilai yang sama pada rasio minimum, maka pemilihan variabel
yang keluar basis (leaving variable) dapat dilakukan sebarang.
Akibatnya, satu atau lebih variabel basis akan mempunyai nilai nol pada
iterasi berikutnya.
Dalam kasus ini, masalah LP dikatakan mempunyai solusi yang degenerate.
Contoh:
Memaksimumkan Z = 3x
1
+ 9x
2
dengan pembatas-pembatas:
x
1
+ 4x
2
s 8
x
1
+ 2x
2
s 4
x
1
0, x
2
0
DEGENERASI
Bentuk Standard
Memaksimumkan Z = 3x
1
+ 9x
2
dengan pembatas-pembatas:
x
1
+ 4x
2
+ x
3
= 8
x
1
+ 2x
2
+ x
4
= 4
x
1
0, x
2
0, x
3
0, x
4
0
Tabel 1
Tabel 2
Tabel 3 (Optimal)
Implikasi praktek dari degenerasi?
Terdapat pembatas yang redundan.
Solusi secara grafis
Dari sudut pandang teoritis, degenerasi mempunyai implikasi:
Fenomena cycling atau circling prosedur simpleks mengulangi
iterasi yang sama tanpa memperbaiki nilai fungsi tujuan dan tanpa
pernah berhenti.
EVALUASI
SOAL:
Hitung dengan simpleks table:
Maks z = 50x1 + 40x2
2x1+x240
3x1+4x2120
x115
x1,x20
VI. TABEL SIMPLEX
POKOK PEMBAHASAN
Permasalahan Khusus
Metoda 2 Fasa & Big M
TUJUAN PEMBELAJARAN
1. Memahami permasalahan dengan variable dan pembatas khusus
2. Menguasai metoda 2 Fasa dan Big M
RINGKASAN MATERI
Contoh :
Minimize z = x
1
+ x
2
4 x
3
Subject to
x
1
+ x
2
+ 2x
3
9
x
1
+ x
2
- x
3
2
-x
1
+ x
2
+ x
3
4
x
1
, x
2
, x
3
0
Bentuk Standard
Minimize z = x
1
+ x
2
4 x
3
+ 0x
4
+ 0x
5
+ 0x
6
Subject to
x
1
+ x
2
+ 2x
3
+ x
4
= 9
x
1
+ x
2
- x
3
+
x
5
= 2
-x
1
+ x
2
+ x
3
+
x
6
= 4
x
1
, x
2
, x
3
, x
4
, x
5
, x
6
0
Review Primal Simplex Method
Basis Awal
Minimize z = x
1
+ x
2
4 x
3
+ 0x
4
+ 0x
5
+ 0x
6
Subject to
x
1
+ x
2
+ 2x
3
+ x
4
= 9
x
1
+ x
2
- x
3
+
x
5
= 2
-x
1
+ x
2
+ x
3
+
x
6
= 4
x
1
, x
2
, x
3
, x
4
, x
5
, x
6
0
Iterasi 1
1 1 -4 0 0 0
x
1
x
2
x
3
x
4
x
5
x
6
0 x
4
1 1 2 1 0 0
0 x
5
1 1 -1 0 1 0
0 x
6
-1 1 1 0 0 1
1 1 -4 0 0 0 Z = 0
c
B
Baris c
Kons.
9
2
4
Basis
c
j
1 1 -4 0 0 0
x
1
x
2
x
3
x
4
x
5
x
6
0 x
4
1 1 2 1 0 0 9/2 =
4.5
0 x
5
1 1 -1 0 1 0 2/-1=
-2
0 x
6
-1 1 1 0 0 1 2/1 =
4
1 1 -4 0 0 0 Z = 0 Baris c
ratios
c
B
Kons.
9
2
4
Basis
c
j
1 1 -4 0 0 0
x
1
x
2
x
3
x
4
x
5
x
6
0 x
4
1 1 2 1 0 0 9/2 =
4.5
0 x
5
1 1 -1 0 1 0 2/-1=
-2
0 x
6
-1 1 1 0 0 1 2/1 =
4
1 1 -4 0 0 0 Z = 0
9
2
4
Baris c
c
B
Kons.
ratios Basis
c
j
Iterasi 2
Iterasi 3
1 1 -4 0 0 0
x
1
x
2
x
3
x
4
x
5
x
6
0 x
4
3 -1 0 1 0 -2
0 x
5
0 2 0 0 1 1
-4 x
3
-1 1 1 0 0 1
-3 5 0 0 0 4 Z = -16.0
1
6
4
Baris c
c
B
Kons.
Basis
c
j
1 1 -4 0 0 0
x
1
x
2
x
3
x
4
x
5
x
6
0 x
4
3 -1 0 1 0 -2
1/3 =
0.33
0 x
5
0 2 0 0 1 1
6/0=
-4 x
3
-1 1 1 0 0 1
4/-1=
-4
-3 5 0 0 0 4 Z = -16
1
6
4
Baris c
ratios
c
B
Kons.
Basis
c
j
Contoh Lain:
Minimize z = 4x
1
+ x
2
Subject to
3x
1
+ x
2
= 3
4x
1
+ 3x
2
6
x
1
+ 2x
2
4
x
1
, x
2
0
Bentuk Standard
Minimize z = 4x
1
+ x
2
+ 0x
3
+ 0x
4
Subject to
3x
1
+ x
2
= 3
4x
1
+ 3x
2
- x
3
= 6
x
1
+ 2x
2
+
x
4
= 4
x
1
, x
2
, x
3
, x
4
0
Basis awal
Minimize z = 4x
1
+ x
2
+ 0x
3
+ 0x
4
Subject to
3x
1
+ x
2
= 3
4x
1
+ 3x
2
- x
3
= 6
x
1
+ 2x
2
+
x
4
= 4
x
1
, x
2
, x
3
, x
4
0
Pendekatan untuk mendapatkan solusi basis layak awal
Trial-and-Error
o Variabel basis dipilih sebarang untuk tiap pembatas
o Tidak efisien
Penggunaan variabel semu (artificial variable)
PENENTUAN BASIS LAYAK
Contoh masalah LP
Meminimumkan Z = 4x
1
+ x
2
dengan pembatas-pembatas:
3x
1
+ x
2
= 3
4x
1
+ 3x
2
6
x
1
+ 2x
2
s 4
x
1
0, x
2
0
Bentuk standar
Meminimumkan Z = 4x
1
+ x
2
dengan pembatas-pembatas:
3x
1
+ x
2
= 3
4x
1
+ 3x
2
x
3
= 6
x
1
+ 2x
2
+ x
4
= 4
x
1
0, x
2
0, x
3
0, x
4
0
Penambahan variabel semu
3x
1
+ x
2
+ x
5
= 3
4x
1
+ 3x
2
x
3
+x
6
= 6
x
1
+ 2x
2
+ x
4
= 4
x
1
, x
2
, x
3
, x
4
, x
5
, x
6
0
Variabel semu : x
5
, x
6
Ide penggunaan variabel semu
Variabel semu merupakan variabel tak negatif yang ditambahkan pada ruas
kiri untuk tiap persamaan yang tidak mempunyai solusi basis awal.
Variabel semu ini berperan sebagai variabel sisipan (slack variable) untuk
memberikan solusi basis awal.
Variabel semu tidak mempunyai arti fisik pada permasalahan awal.
Prosedur memaksa variabel semu untuk bernilai nol jika kondisi optimal
tercapai.
Cara yang logis adalah memberikan penalti pada variabel semu dalam fungsi
tujuan.
Pendekatan
Metoda big M
Metoda dua fasa
Variabel semu diberikan suatu penalti dengan suatu bilangan yang besar
sekali pada fungsi tujuan.
Metode simplex mencoba untuk memperbaiki fungsi tujuan dengan cara
membuat variabel semu tidak ekonomis lagi untuk dipertahankan sebagai
variabel basis dengan nilai yang positif.
Untuk masalah
Minimasi : M
Maksimasi: -M
dimana M adalah bilangan yang sangat besar.
Meminimumkan Z = 4x
1
+ x
2
+ Mx
5
+ Mx
6
dengan pembatas-pembatas:
3x
1
+ x
2
+ x
5
= 3
4x
1
+ 3x
2
x
3
+x
6
= 6
x
1
+ 2x
2
+ x
4
= 4
x
1
, x
2
, x
3
, x
4
, x
5
, x
6
0
METODE BIG M
Nilai fungsi tujuan
konstanta dan vektor dari product inner
B
c Z =
Pemeriksaan optimalitas
Nilai fungsi tujuan relatif (profit relatif /ongkos relatif ) untuk variabel non basis:
(
=
kanonik sistem dalam dengan berkaitan
yang kolom dan dari
j
B
j j
x
c uct inner prod
c c
Kondisi optimal terjadi apabila semua nilai koefisien fungsi tujuan relatif untuk
variabel basis adalah tak positif [untuk masalah maksimasi] atau tak negatif [untuk
masalah minimasi].
Nilai fungsi tujuan relatif untuk variabel non basis
Tabel 1
( ) M M M Z 9
4
6
3
0 , , =
|
|
|
.
|
\
|
=
( ) M M M c 7 4
1
4
3
0 , , 4
1
=
|
|
|
.
|
\
|
=
( ) M M M c 4 1
2
3
1
0 , , 1
2
=
|
|
|
.
|
\
|
=
( ) M M M c =
|
|
|
.
|
\
|
=
0
1
0
0 , , 0
3
Tabel 2
Tabel 3
Tabel 4 (Optimal)
Output Tabel Simpleks dengan Software (WinQSB)
Fasa I
Mendapatkan solusi basis layak awal pada masalah original.
Penghilangan variabel semu.
Fungsi tujuan semu merupakan jumlah dari variabel semu yang
diminimasi.
Jika nilai fungsi tujuan sama dengan nol, maka semua variabel semu
bernilai nol dan solusi basis layak diperoleh bagi masalah original.
Jika nilai minimum fungsi tujuan adalah positif, maka paling sedikit terdapat
satu variabel yang positif dan ini berarti masalah original adalah tak layak,
dan algoritma berhenti.
Fasa II
Solusi basis layak yang diperoleh pada Fase I dioptimasi terhadap
fungsi tujuan original.
Tabel akhir pada Fase I menjadi tabel awal pada Fase II dengan
perubahan pada fungsi tujuan.
Metode dua-fasa (Fasa I)
Meminimumkan W = x
5
+ x
6
dengan pembatas-pembatas:
3x
1
+ x
2
+ x
5
= 3
4x
1
+ 3x
2
x
3
+x
6
= 6
x
1
+ 2x
2
+ x
4
= 4
x
1
, x
2
, x
3
, x
4
, x
5
, x
6
0
METODE 2 FASA
Tabel 1 [Fase I]
Tabel 2 [Fase I]
Tabel 3 [Fase I]
Tabel 1 [Fase II]
Tabel 2 [Fase II] (Optimal)
Dengan metode big M
Pada tabel optimal, satu atau lebih variabel semu tetap sebagai
variabel basis
Dengan metoda dua-fase
Pada tabel optimal pada fase I, nilai fungsi tujuannya adalah positif,
dimana satu atau lebih variabel semu sebagai basis)
Solusi tak layak (infeasible solution)
Contoh masalah LP
Memaksimumkan Z = 3x
1
+ 2x
2
dengan pembatas-pembatas:
2x
1
+ x
2
s 2
3x
1
+ 4x
2
12
x
1
0, x
2
0
Bentuk standar
Memaksimumkan Z = 3x
1
+ 2x
2
dengan pembatas-pembatas:
2x
1
+ x
2
+ x
3
= 2
3x
1
+ 4x
2
- x
4
= 12
x
1
, x
2
,
x
3
,
x
4
0
Penambahan variabel semu
2x
1
+ x
2
+ x
3
= 2
3x
1
+ 4x
2
- x
4
+ x
5
= 12
x
1
, x
2
,
x
3
,
x
4
, x
5
0
Contoh:
Metode big M
Memaksimumkan Z = 3x
1
+ 2x
2
Mx
5
dengan pembatas-pembatas:
2x
1
+ x
2
+ x
3
= 2
3x
1
+ 4x
2
- x
4
+ x
5
= 12
x
1
, x
2
,
x
3
,
x
4
, x
5
Tabel 1
Tabel 2
EVALUASI
SOAL 1
z= 3x1+x2
3x1+x24
x1-x20
x1,x2 0
SOAL 2
z= 5x1+3x2+x3
-x1+x2+x32
2x1+x2-x34
x1,x2,x3 0
VII. PRIMAL-DUAL
POKOK PEMBAHASAN
Hubungan Primal-Dual
Solusi Grafis
Dual Simplex
TUJUAN PEMBELAJARAN
1. Memahami perbedaan bentuk primal dan dual
2. Memahami hubungan antara persamaan primal dan dual
3. Memahami cara pemecahan permasalahan dual dengan menggunakan metoda
dual simplex
RINGKASAN MATERI
Setiap masalah pemrograman linier mempunyai satu pemrograman linier
yang terkait yang disebut dual.
Solusi pada masalah pemrograman liniear originalnya juga memberikan
solusi bagi dualnya.
Jika suatu solusi masalah pemrograman linier dipecahkan dengan simplex
method, pada dasarnya diperoleh solusi untuk dua masalah pemrograman
linier.
Suatu pemrograman linier dikatakan dalam bentuk simetris jika :
semua variabel dibatasi tak negatif
semua pembatas dalam bentuk pertidaksamaan:
Teori Dualitas
a. untuk masalah maksimasi, bentuk pertidaksamaan adalah lebih kecil atau
sama dengan
b. untuk masalah minimasi, bentuk pertidaksamaan adalah lebih besar atau
sama dengan
Memaksimumkan Z = c
1
x
1
+ c
2
x
2
+ + c
n
x
n
dengan pembatas a
11
x
1
+ a
12
x
2
+ + a
1n
x
n
s b
1
a
21
x
1
+ a
22
x
2
+ + a
2n
x
n
s b
2
a
m1
x
1
+ a
m2
x
2
+ + a
mn
x
n
s b
m
x
1
0, x
2
0,, x
n
0
Meminimumkan W = b
1
y
1
+ b
2
y
2
+ + b
m
y
m
dengan pembatas a
11
y
1
+ a
21
y
2
+ + a
m1
y
m
c
1
a
12
y
1
+ a
22
y
2
+ + a
m2
y
n
c
2
...
a
1n
y
1
+ a
2n
y
2
+ + a
mn
y
m
c
n
y
1
0, y
2
0,, y
m
0
Primal :
Memaksimumkan Z = cx
dengan pembatas Ax s b
x 0
Dual :
Meminimumkan W = yb
dengan pembatas yA c
y 0
A : matriks (m x n)
b : vektor kolom (m x 1)
c : vektor baris (1 x n)
x : vektor kolom (n x 1)
y : vektor baris (1 x m)
Primal
Max Z = 3x
1
+ 2x
2
dengan pembatas-pembatas:
x
1
+ 2x
2
s 6
2x
1
+ x
2
s 8
x
1
+ x
2
s 1
x
2
s 2
x
1
, x
2
0
Dual
Min W = 6y
1
+ 8y
2
+ y
3
+ 2y
4
dengan pembatas-pembatas:
y
1
+ 2y
2
y
3
3
2y
1
+ y
2
+ y
3
+ y
4
2
y
1
, y
2
, y
3
, y
4
0
Koefisien fungsi tujuan untuk masalah primal menjadi konstanta ruas kanan
bagi dual.
Konstanta ruas kanan dari primal menjadi koefisien fungsi tujuan bagi dual.
Pertidaksamaan untuk pembatas dibalik untuk kedua masalah.
Tujuan diubah dari maksimasi untuk primal menjadi minimasi untuk dual.
Tiap kolom dalam primal menjadi baris (pembatas) pada dual; sehingga
jumlah pembatas dual sama dengan jumlah variabel primal.
Tiap baris (pembatas) dalam primal berkaitan dengan kolom pada dual;
sehingga satu variabel dual berkaitan dengan satu pembatas primal.
Dual dari masalah dual adalah masalah primal
Weak duality theorem
Optimality criterion theorem
Main duality theorem
Complementary slackness theorem
Misalkan diberikan program linier primal-dual simetris:
P: max Z = cx, Ax s b, x 0
D: min W = yb, yA c, y 0
Nilai fungsi tujuan dari masalah minimimasi (dual) untuk sebarang solusi layak
selalu lebih besar atau sama dengan nilai fungsi tujuan masalah maksimasi (primal).
Bukti
Misalkan:
x
0
: vektor solusi layak untuk primal
y
0
: vektor solusi layak untuk dual
Akan dibuktikan bahwa: y
0
b cx
0
Karena x
0
adalah layak untuk primal, maka Ax
0
s b, x
0
0 (1)
Karena y
0
adalah layak untuk dual, maka y
0
A c, y
0
0 (2)
Perkalian kedua sisi pertidaksamaan (1) dengan y
0
y
0
Ax
0
s y
0
b
Perkalian kedua sisi pertidaksamaan (2) dengan x
0
: y
0
Ax
0
s cx
0
Implikasi : y
0
b y
0
Ax
0
cx
0
Konsekuensi 1:
Nilai fungsi tujuan dari masalah maksimasi (primal) untuk sebarang solusi layak
merupakan batas bawah dari nilai minimum fungsi tujuan dual.
Konsekuensi 2:
Nilai fungsi tujuan dari masalah minimasi (dual) untuk sebarang solusi layak
(dual) merupakan batas atas dari nilai maksimum fungsi tujuan primal.
Konsekuensi 3:
Jika masalah primal adalah layak dan nilai fungsi tujuannya tak terbatas (dalam
hal ini, max Z +), maka masalah dual adalah tak layak.
Konsekuensi 4:
Jika masalah dual adalah layak dan nilai fungsi tujuannya tak terbatas (dalam hal
ini, min W -), maka masalah primal adalah tak layak.
Konsekuensi 5:
Jika masalah primal adalah layak dan dualnya tak layak maka masalah primal
tersebut adalah tak terbatas.
Konsekuensi 6:
Jika masalah dual adalah layak dan primalnya adalah tak layak maka masalah
dual tersebut adalah tak terbatas.
Ilustrasi #1
Primal
Max Z = 3x
1
+ 2x
2
dengan pembatas-pembatas:
x
1
+ 2x
2
s 6
2x
1
+ x
2
s 8
x
1
+ x
2
s 1
x
2
s 2
x
1
, x
2
0
Dual
Min W = 6y
1
+ 8x
2
+ y
3
+ 2y
4
dengan pembatas-pembatas:
y
1
+ 2y
2
y
3
3
2y
1
+ y
2
+ y
3
+ y
4
2
y
1
, y
2
, y
3
, v
4
0
0 , 4
0
2
0
1
= = x x adalah solusi layak untuk primal.
Nilai fungsi tujuan primal Z = cx
0
= 12
Di sini Z = cx
0
s y
0
b = W dan memenuhi weak duality theorem.
Berdasarkan Konsekuensi (1), nilai minimum W untuk dual tidak dapat lebih
kecil dari 12.
Berdasarkan Konsekuensi (2), nilai minimum Z untuk primal tidak dapat
melebihi 40.
0 , 0 , 5 , 0
0
4
0
3
0
2
0
1
= = = = y y y y adalah solusi layak untuk dual
Nilai fungsi tujuan dual W = y
0
b = 40
Ilustrasi #2
Primal:
Memaksimumkan Z = 4x
1
+ x
2
dengan pembatas-pembatas:
x
1
x
2
s 2
-3x
1
+ x
2
s 3
x
1
0, x
2
0
Dual
Meminimumkan W = 2y
1
+ 3y
2
dengan pembatas-pembatas:
y
1
3y
2
4
- y
1
+ y
2
1
y
1
0, y
2
0
Jika terdapat solusi layak x
0
dan y
0
untuk masalah pemrograman linier dual simetris
sedemikian hingga nilai fungsi tujuannya adalah sama, maka solusi layak ini adalah
solusi optimal bagi masing-masing masalah.
Bukti
Misalkan x adalah sebarang solusi layak bagi masalah primal.
Maka berdasarkan Teorema 1, cx s y
0
b
Tetapi ini diberikan bahwa cx
0
= y
0
b.
Oleh karena itu cx s cx
0
untuk semua solusi layak bagi masalah primal.
Per definisi, x
0
adalah optimal bagi primal.
Argumen yang sama juga berlaku bagi optimalitas y
0
bagi masalah dual
Jika baik masalah primal maupun dual adalah layak, maka keduanya mempunyai
solusi optimal sedemikian hingga nilai optimalnya adalah sama.
Misalkan diberikan program linier primal-dual simetris:
P: max Z = cx, Ax s b, x 0
D: min W = yb, yA c, y 0
dimana
A : matriks (m x n)
b : vektor kolom (m x 1)
c : vektor baris (1 x n)
x : vektor kolom (n x 1)
y : vektor baris (1 x m)
Misalkan:
x
0
: vektor solusi layak untuk primal
y
0
: vektor solusi layak untuk dual
Maka x
0
dan y
0
adalah optimal untuk masalah masing jika dan hanya jika
( ) ( ) 0
0 0 0 0
= + Ax b y x c A y
Bukti :
Misalkan
|
|
|
|
|
.
|
\
|
=
m
m
u
u
u
2
1
) 1 (
u adalah vektor slack untuk primal
( )
n
n
v v v , , ,
2 1
) 1 (
=
\
|
=
|
|
.
|
\
|
=
0
b B
x
x
x
1
*
N
B
dimana
x
B
: varabel basis
x
N
: variabel non basis
Nilai minimum Z = cx
*
= c
B
x
B
= c
B
B
-1
b
Karena B menunjukkan basis optimal, maka koefisien biaya relatif (
j
c ) yang
berkaitan dengan variabel basis harus tak negatif
0 > =
j j j
c c P t untuk semua j
dimana
t = c
B
B
-1
: vektor pengali simplex (simplex multiplier)
Dalam notasi matrix : c - t A 0 atau tA s c
yang merupakan pembatas pemrograman linier dual. Sehingga, pengali simplex
optimal harus memenuhi pembatas dual.
Nilai fungsi tujuan dual yang berkaitan dengan solusi layak adalah
W = yb = tb = c
B
B
-1
b
yang sama dengan nilai minimum Z.
Oleh karena itu, berdasarkan optimality criterion theorem, pengali simplex optimal
dari masalah primal merupakan nilai optimal dari variabel dual.
Ilustrasi menentukan solusi dual optimal
Primal (Dalam bentuk standar)
Max Z = 3x
1
+ 2x
2
dengan pembatas-pembatas:
x
1
+ 2x
2
+ x
3
= 6
2x
1
+ x
2
+ x
4
= 8
x
1
+ x
2
+ x
5
= 1
x
2
+ x
6
= 2
x
1
, x
2
, x
3
, x
4
, x
5
, x
6
0
Dual:
Min W = 6y
1
+ 8x
2
+ y
3
+ 2y
4
dengan pembatas-pembatas:
y
1
+ 2y
2
y
3
= 3
2y
1
+ y
2
+ y
3
+ y
4
= 2
y
1
0
y
2
0
y
3
0
y
4
0
y
1
, y
2
, y
3
, y
4
tak dibatasi tanda
Dengan metode revised simplex, solusi optimal untuk primal:
x = (x
2
, x
1
, x
5
, x
6
) = (4/3, 10/3, 3, 2/3), Z = 38/3
Matrix basis optimal:
| |
(
(
(
(
= =
1 0 0 1
0 1 1 1
0 0 2 1
0 0 1 2
6 5 1 2
P P P P B
Simplex multiplier optimal :
( ) ( ) 0 , 0 , 3 / 4 , 3 / 1
1 0 3 / 1 3 / 2
0 1 1 1
0 0 3 / 2 3 / 1
0 0 3 / 1 3 / 2
0 , 0 , 3 , 2
1
=
(
(
(
(
= =
B c
B
t memenuhi pembatas dual, dan nilai fungsi tujuannya : W = 6(1/3) + 8(4/3) + 1(0)
+ 2(0) = 38/3, yang bersesuaian dengan nilai optimal untuk masalah primal. Oleh
karena itu,
y
1
= 1/3, y
2
= 3/4, y
3
= 0, y
4
= 0 optimal untuk dual.
Simplex multiplier yang bersesuaian dengan tabel (primal) optimal adalah solusi
optimal bagi masalah dual.
Masalah Pemrograman Linier (Primal) dalam Bentuk Standar
Minimasi Z = cx
dengan pembatas
Ax = b
x 0
A : matrix (m x n)
P : vektor kolom dari matrix A
B : matrix basis untuk masalah primal
x
B
: variabel basis yang bersesuaian dengan B
Basis Layak Primal
Basis B : basis layak primal (primal feasible basis) B
-1
b 0
B : basis layak primal nilai variabel basis: B
-1
b
solusi layak basis x
B
= B
-1
b
nilai fungsi tujuan Z = c
B
B
-1
b
Kondisi Optimalitas
Untuk memeriksa apakah basis layak B adalah optimal hitung koefisien fungsi
tujuan relatif ) (
j
c
j j j
c c P = j = 1, , n
t = c
B
B
-1
: simplex multiplier
Basis layak primal B adalah optimal 0 >
j
c , j = 1, , n
Pemrograman linier standar bagi dual:
Maksimasi W = yb
dengan pembatas
yA s c
y tak dibatas tanda
Pembatas dual yA s c dapat ditulis:
( ) ( )
n n
c c c , , , , , ,
2 1 2 1
s P P P y
j j
c yP s
Metode Simplek Dual
0 >
j j
c yP , j = 1, , n
Jika basis layak primal B : basis optimal bagi masalah primal simplex multiplier t
= c
B
B
-1
memenuhi
0 >
j j
c yP , j = 1, , n
Implikasi t : layak bagi masalah dual
Nilai fungsi tujuan dual W = tb = c
B
B
-1
b sama dengan nilai fungsi tujuan primal
Berdasarkan optimality criterion theorem, t : optimal bagi masalah dual
Basis Dual Layak
Basis B untuk masalah primal
Minimasi Z = cx
dengan pembatas
Ax = b
x 0
layak dual (dual feasible) c c
B
B
-1
A 0 (Identik dengan pemeriksaan apakah
basis layak B optimal)
Basis B untuk masalah primal : layak primal dan layak dual
Basis B : basis optimal
Solusi optimal untuk primal : x
B
= B
-1
b, x
N
= 0. Solusi optimal untuk dual : y =
c
B
B
-1
. Nilai optimal primal = Nilai optimal dual
Catatan
Akar dari pemecahan masalah pemrograman linier mendapatkan solusi basis
B yang layak primal dan layak dual
Metode simplex bergerak dari satu basis layak primal ke basis yang lain
hingga basis tersebut menjadi layak dual
Metode simplex primal (primal simplex method)
Metode simplex dual (dual simplex method) bergerak dari satu basis layak
dual ke basis yang lain
Pemrograman linier bentuk standar:
Minimasi Z = cx
dengan pembatas
Ax = b
x 0
Metode simplex dual menggunakan tabel yang sama dengan metode simplex
primal.
Dalam semua tabel, koefisien fungsi tujuan relatif ) (
j
c dipertahankan tak negatif
Untuk maksimasi, ) (
j
c dipertahankan tak positif)
Konstanta ruas kanan tidak perlu tak negatif.
Algoritma mulai dengan membuat elemen ruas kanan menjadi tak negatif,
dengan pada saat yang sama menjaga koefisien ) (
j
c tak negatif.
Algoritma berhenti jika semua konstanta ruas kanan telah tak negatif.
Pemilihan Variabel Basis yang Keluar Basis
Pilih variabel basis yang membuat solusi saat ini menjadi tidak layak dengan kata
lain pilih variabel basis yang nilai solusinya negative. Aturan Pilih variabel basis
yang nilai
i
b paling negatif .
Misal: ( ) 0 min < =
i
i
r
b b ; variabel basis x
r
diganti baris ke-r : baris pivot
Pemilihan Variabel Non Basis yang Masuk Basis
Kolom pivot dipilih sedemikian rupa sehingga memenuhi dua kondisi sebagai
berikut:
1. Ketidaklayakan primal berkurang (atau paling sedikit, tidak bertambah jelek).
Rincian Metode Simplex Dual
Atau, paling sedikit konstanta ruas kanan pada baris r menjadi positif pada
tabel berikutnya
Variabel non basis (x
j
) dengan koefisien negative dalam baris r (y
rj
< 0)
yang memenuhi syarat untuk masuk basis.
2. Tabel berikutnya setelah operasi pivot harus tetap layak dual. Dapat dijamin
jika variabel non basis yang masuk basis dipilih dengan aturan rasio sebagai
berikut:
(
(
<
rj
j
y
y
c
rj
0
max ; j = m+1, , n
Perbedaan metode simplex dengan simplex dual :
Metode simplex pencarian solusi dimulai dari solusi layak (nilai konstanta 0)
namun tidak optimal (baris bernilai positif untuk kasus maksimisasi dan bernilai
negatif untuk kasus minimisasi).
Metode simplex dual pencarian solusi dimulai dari solusi optimal (baris bernilai
negatif untuk kasus maksimisasi dan bernilai positif untuk kasus minimisasi) namun
tidak layak (nilai konstanta 0).
Ilustrasi penyelesaian dengan metode simplex :
Meminimumkan Z = x
1
+ 4x
2
+ 3x
4
dengan pembatas
x
1
+ 2x
2
x
3
+ x
4
3
2x
1
x
2
+ 4x
3
+ x
4
2
x
1
, x
3
, x
3
, x
4
0
Bentuk standar :
Meminimumkan Z = x
1
+ 4x
2
+ 3x
4
+ Mx
7
+ Mx
8
dengan pembatas
x
1
+ 2x
2
x
3
+ x
4
x
5
+ x
7
= 3
2x
1
x
2
+ 4x
3
+ x
4
x
6
+ x
8
= 2
x
1
, x
3
, x
3
, x
4
, x
5
, x
6
0
Ilustrasi Metode Simplex Dual
Ubah tanda pada pembatas menjadi tanda s dengan mengalikan baris dengan -1:
Meminimumkan Z = x
1
+ 4x
2
+ 3x
4
dengan pembatas
- x
1
- 2x
2
+ x
3
- x
4
s -3
2x
1
+ x
2
- 4x
3
- x
4
s -2
x
1
, x
3
, x
3
, x
4
0
Bentuk standar :
Meminimumkan Z = x
1
+ 4x
2
+ 3x
4
dengan pembatas
- x
1
- 2x
2
+ x
3
- x
4
+ x
5
= -3
2x
1
+ x
2
- 4x
3
- x
4
+ x
6
= -2
x
1
, x
3
, x
3
, x
4
, x
5
, x
6
0
Pilih variabel basis dengan konstanta paling negatif sebagai entering variable. Pilih
variabel nonbasis dengan rasio (baris c dibagi konstanta negatif pada entering
variable) absolut terkecil sebagai leaving variable.
Tidak layak primal; Layak dual
Tidak layak primal; Layak dual
Layak primal; Layak dual; Iterasi berhenti karena seluruh konstanta bernilai positif.
Mengidentifikasi Ketidaklayakan Primal dalam Metode Simplex Dual
Dalam metode simplex dual selalu terdapat solusi layak bagi dual.
Metode simplex dual mengenali ketidaklayakan primal jika aturan rasio gagal
mengidentifikasi variabel non basis yang masuk basis
Semua elemen dalam kolom pivot : tak negatif
Memecahkan Masalah Maksimasi dengan Metode Simplex Dual
Dalam masalah maksimasi Kondisi optimalitas: Koefisien fungsi tujuan 0 ) ( s
j
c
Misal, 0 <
r
b dan x
r
: variabel keluar basis
Variabel non basis yang masuk basis dipilih sedemikian rupa sehingga elemen
baris c tetap tak positif pada iterasi berikutnya.
Aturan rasio:
(
(
<
rj
j
y
y
c
ij
0
min
Penerapan metode simplex dual
Analisis sensitivitas (sensitivity analysis) dan pemrograman parametrik
(parametric programming)
Algoritma pemrograman bilangan bulat (integer programming algorithms)
Algoritma pemrograman non linier (nonlinear programming algorithm)
Varian dari metode simplex: primal-dual algorithm, self-dual parametric
algorithm
EVALUASI
VIII. PRIMAL-DUAL
POKOK PEMBAHASAN
Analisis Sensitivitas
TUJUAN PEMBELAJARAN
1. Memahami solusi optimal dengan perubahan pada fungsi tujuan,
variabel keputusan, pembatas, vector dan RHS
RINGKASAN MATERI
Analisis sensitivitas adalah studi dalam perubahan solusi optimal dan nilai optimal
karena perubahan dalam koefisien data input.
Perubahan dapat terjadi pada:
Koefisien fungsi tujuan
Konstanta ruas kanan
Koefisien matrix (koefisien teknologi):
o Penambahan aktivitas atau variabel baru
o Perubahan pengunaan sumber dari aktivitas (perubahan kolom)
o Penambahan pembatas baru
Perubahan yang dilakukan memberikan efek yang berbeda-beda, yaitu:
Perubahan yang mempengaruhi optimalitas
Perubahan koefisien fungsi tujuan
Penambahan aktivitas (variabel) baru
Perubahan penggunaan sumber dari aktivitas
Perubahan yang mempengaruhi kelayakan
Perubahan konstanta ruas kanan
Penambahan pembatas baru
Pendahuluan
Contoh masalah programa linear:
Memaksimumkan Z = 3x
1
+ 2x
2
dengan pembatas-pembatas:
x
1
+ 2x
2
s 6 (Bahan A)
2x
1
+ x
2
s 8 (Bahan B)
x
1
+ x
2
s 1 (Selisih permintaan cat interior dan eksterior)
x
2
s 2 (Permintaan cat interior)
x
1
0
x
2
0
Tabel awal:
Tabel akhir (tabel optimal):
2 1 1
2 4 4 x x Z c + = =
2
3 / 2
1
3 / 1
3 / 2
) 0 , 0 , 2 , 4 ( 0
3
=
(
(
(
(
= c
0
3 / 1
1
3 / 2
3 / 1
) 0 , 0 , 2 , 4 ( 0
4
=
(
(
(
(
= c
Perubahan variable basis dalam koefisien fungsi tujuan
Jika dilakukan perubahan pada variable x
1
.
Kondisi tetap optimal jika:
Misal, variabel x
1
:
Perubahan Koefisien Fungsi Tujuan
Misal, variabel x
1
:
2 1 1
2 5 5 x x Z c + = =
3 / 8
3 / 2
1
3 / 1
3 / 2
) 0 , 0 , 2 , 5 ( 0
3
=
(
(
(
(
= c
3 / 1
3 / 1
1
3 / 2
3 / 1
) 0 , 0 , 2 , 5 ( 0
4
=
(
(
(
(
= c
Perubahan variable non basis dalam koefisien fungsi tujuan
Misal perubahan terjadi pada variabel x
3
:
Kondisi akan tetap optimal jika:
Penambahan Aktivitas Baru
Contoh kasus:
Memaksimumkan Z = 3x
1
+ 2x
2
+
3
/
2
x
7
dengan pembatas-pembatas:
x
1
+ 2x
2
+
3
/
4
x7 s 6 (Bahan A)
2x
1
+ x
2
+
3
/
4
x7 s 8 (Bahan B)
x
1
+ x
2
x7
s 1 (Selisih permintaan cat interior dan eksterior)
x
2
s 2 (Permintaan cat interior)
x
1
, x
2
, x
7
0
(
(
(
(
1 0 3 / 1 3 / 2
0 1 1 1
0 0 3 / 2 3 / 1
0 0 3 / 1 3 / 2
1
B
7 7 7
P = c c
(
(
(
(
=
0
1
4 / 3
4 / 3
7
P 2 / 3
7
= c
( ) ( ) ( ) 0 , 0 , 3 / 4 , 3 / 1
1 0 3 / 1 3 / 2
0 1 1 1
0 0 3 / 2 3 / 1
0 0 3 / 1 3 / 2
0 , 0 , 3 , 2 , , ,
1
6 5 1 2
=
(
(
(
(
= = =
B c
B
t t t t
( ) 4 / 1
0
1
4 / 3
4 / 3
0 , 0 , 3 / 4 , 3 / 1 2 / 3
7 7 7
=
(
(
(
(
= = P c c
(
(
(
(
=
(
(
(
(
(
(
(
(
=
4 / 1
1
4 / 1
4 / 1
0
1
4 / 3
4 / 3
1 0 3 / 1 3 / 2
0 1 1 1
0 0 3 / 2 3 / 1
0 0 3 / 1 3 / 2
7
P
(
(
(
(
=
2
1
8
1
*
b
b
0
1
>
b B
(
(
(
(
1 0 3 / 1 3 / 2
0 1 1 1
0 0 3 / 2 3 / 1
0 0 3 / 1 3 / 2
1
B
(
(
(
(
=
2
1
8
7
*
b
(
(
(
(
=
(
(
(
(
(
(
(
(
0
2
3
2
2
1
8
7
1 0 3 / 1 3 / 2
0 1 1 1
0 0 3 / 2 3 / 1
0 0 3 / 1 3 / 2
* 1
b B
( ) ( ) ( ) ( ) 13 0 0 0 2 2 2 3 3 = + + + = Z
Perubahan Penggunaan Sumber dari Aktivitas
Perubahan pada aktivitas (variabel) non basis
Dilakukan analisis seperti kasus penambahan aktivitas baru
Perubahan pada aktivitas (variabel) basis
Menyelesaikan masalah pemrograman linier dari awal lagi
Misal terjadi perubahan pada Pembatas 1.
Misal Pembatas 1:
Perubahan konstanta ruas kanan
(
(
(
(
+
+
+
=
(
(
(
(
(
(
(
(
3 / 14 3 / 2
9
3 / 16 3 /
3 / 8 3 / 2
2
1
8
1 0 3 / 1 3 / 2
0 1 1 1
0 0 3 / 2 3 / 1
0 0 3 / 1 3 / 2
1
1
1
1 1
* 1
b
b
b
b b
b B
4 0
3
8
3
2
1
1
> > b
b
16 0
3
16
3
1
1
s > + b
b
9 0 9
1 1
s > + b b
7 0
3
14
3
2
1
1
s > +
b
b
7 4
1
s s b
(
(
(
(
=
2
1
8
9
*
b
(
(
(
(
=
(
(
(
(
(
(
(
(
3 / 4
0
3 / 7
3 / 10
2
1
8
9
1 0 3 / 1 3 / 2
0 1 1 1
0 0 3 / 2 3 / 1
0 0 3 / 1 3 / 2
* 1
b B
Misal Pembatas 1 berubah menjadi:
:
Dengan menerapkan dual simplex, menghasilkan:
Terdapat dua kondisi solusi optimal terhadap penambahan pembatas baru:
Solusi optimal saat ini memenuhi pembatas baru
Pembatas baru bersifat nonbinding atau redundant sehingga tidak
mengubah solusi optimal saat ini.
Solusi optimal saat ini tidak memenuhi pembatas baru
Pembatas baru bersifat binding
Contoh:
Penambahan pembatas baru
Pembatas baru: x
1
s 4
Solusi optimal saat ini : x = (x
1
, x
2
, x
5
, x
6
)
= (10/3, 4/3, 3, 2/3)
x
1
= 10/3 s 4
Pembatas baru: x
1
s 3
Solusi optimal saat ini : x = (x
1
, x
2
, x
5
, x
6
) = (10/3, 4/3, 3, 2/3)
x
1
= 10/3 > 3
Dengan menertapkan dual simplex, dihasilkan:
Penambahan slack variable x
7
: x
1
+ x
7
= 3
Solusi optimal saat ini : x = (x
1
, x
2
, x
5
, x
6
) = (10/3, 4/3, 3, 2/3)
x
1
= 10/3 > 3
EVALUASI
IX. INTEGER PROGRAMMING
POKOK PEMBAHASAN
Konsep Bilangan Bulat
Metoda Cutting Plane
TUJUAN PEMBELAJARAN
1. Memahami permasalahan dan solusi variable integer
2. Memahami metoda cutting plane
RINGKASAN MATERI
Pengantar Pemrograman Bilangan Bulat
Pemrograman bilangan bulat (integer programming) mensyaratkan bahwa
beberapa variabel keputusan harus mempunyai nilai yang bulat (bukan pecahan)
Disini, pembahasan hanya ditujukan untuk masalah pemrograman linier bilangan
bulat (integer linear programming problem)
Jenis Pemrograman Linier Bilangan Bulat
Pemrograman linier bilangan bulat murni (pure integer linear programming,
PILP)
Pemrograman linier bilangan bulat campuran (mixed integer linear
programming, MILP)
Pemrograman linier bilangan bulat biner (binary integer linear programming,
BILP)
Konsep Bilangan Bulat
Contoh Pemrograman Linier Bilangan Bulat Biner
Fungsi dengan N Nilai yang Mungkin
( )
N n
d d d x x x f atau atau atau , , ,
2 1 2 1
=
Perumusan ILP:
Contoh Kasus:
18 atau 12 atau 6 2 3
2 1
= + x x
Perumusan ILP:
Representasi Biner untuk Variabel Bilangan Bulat
Batas-batas untuk variabel x:
u x s s 0
1
2 2 dimana
+
s s
N N
u
Representasi biner:
=
=
N
i
i
i
y x
0
2
{ } N i y
i
, , 2 , 1 , 1 , 0 = =
Contoh Kasus:
Contoh Model Pemrograman Bilangan Bulat
a. Fixed Charge Problem
Misalkan terdapat n jenis produk
p
j
= harga satuan produk j
K
j
= biaya tetap untuk memproduksi produk j (independen terhadap jumlah
produksi)
c
j
= biaya variabel untuk memproduksi produk j (proporsional terhadap
jumlah produksi)
b
i
= kapasitas sumber i (i = 1, m)
a
ij
= kebutuhan sumber i untuk per unit produk j
Permasalahan :
Menentukan produk mana yang perlu diproduksi dan jumlah produksinya masing-
masing agar diperoleh profit (selisih penjualan dengan biaya tetap dan variabel) total
yang maksimum dengan memperhatikan kondisi:
ketersediaan kapasitas
jika suatu produk diputuskan untuk tidak diproduk maka jumlah produksinya
nol.
Variabel keputusan :
x
j
= jumlah produk j yang diproduksi
y
j
= keputusan untuk memproduksi atau tidak produk j;
y
j
= 1 jika produk j diproduksi
y
j
= 0 jika produk j tidak diproduksi
b. Knapsack Problem
Misalkan terdapat n item.
w
j
= berat item j
v
j
= nilai item j
W = kapasitas muatan (berat) dari kantong
Permasalahan :
Menentukan jumlah item yang perlu dimasukkan ke dalam kantong agar diperoleh
nilai total yang maksimum dengan memperhatikan kondisi kapasitas muatan (berat)
dari kantong
Variabel keputusan :
x
j
= jumlah item yang dimasukkan ke kantong
c. Set Covering Problem
Contoh masalah set covering problem dalam menentukan lokasi pendirian pos
siskamling
Misalkan terdapat n lokasi pendirian pos dan m jalan.
c
j
= biaya mendirikan pos di lokasi j
a
ij
= konstanta biner (0-1)
a
ij
= 1 jika jalan i dilayani oleh pos yang berlokasi di j
a
ij
= 0 jika sebaliknya
Pertanyaan:
Menentukan lokasi pendirian pos dimana tiap jalan dapat dilayani minimal oleh satu
pos sehingga diperoleh biaya total pendirian yang minimum
Variabel keputusan
x
j
= variabel biner (0-1) yang menentukan keputusan untuk mendirikan pos di
lokasi j (x
j
= 1 jika pos didirikan di lokasi j, x
j
= 0 sebaliknya)
Set Partitioning Problem
Tiap jalan tepat dilayani oleh satu pos
d. Traveling Salesman Problem
Misalkan terdapat n titik.
c
ij
= jarak antara titik i ke titik j (c
ij
= untuk i = j)
Permasalahan
Menentukan rute salesman yang berangkat dari suatu titik dan mengunjungi setiap
titik yang lain paling banyak sekali, serta kembali ke titik asal agar diperoleh jarak
total yang minimum
Variabel keputusan
X
ij
= keputusan untuk melintasi atau tidak busur (i, j)
x
ij
= 1 jika busur (i, j) dilintasi
x
ij
= 0 jika busur (i, j) tidak dilintas
Subtour breaking constraint bertujuan untuk mengeliminasi terjadinya solusi
subtour.
Suatu solusi traveling salesman problem yang layak (terbentuknya suatu tour).
e. Job Scheduling Problem
Misalkan
- terdapat n job dengan operasi-tunggal
- terdapat satu mesin tunggal
p
j
= waktu pengerjaan job j
w
j
= bobot kepentingan job j
Permasalahan:
Menentukan saat awal (juga secara implisit menentukan saat akhir) pengerjaan job
agar diperoleh waktu penyelesaian tertimbang total (total weighted completion time)
yang minimum dengan memperhatikan bahwa pada suatu saat mesin hanya dapat
mengerjakan satu operasi (job)
Variabel keputusan:
B
j
= saat awal pengerjaan job j
C
j
= saat akhir pengerjaan job j
y
ij
= keputusan apakah job i mendahului job i
y
ij
= 1 jika job i mendahului job j
y
ij
= 0 jika sebaliknya
Dalam kuliah ini, metode pemecahan kasus pemrograman bilangan bulat yang akan
dibahas adalah:
Cutting method
o Cutting Plane
Search method
o Branch and Bound
a. Metode Cutting Plane
o Dikembangkan oleh R.E. Gomory
o Algoritma
Fractional algorithm untuk masalah pemrograman bilangan bulat murni
(PILP)
Mixed algorithm untuk masalah pemrograman bilangan bulat campuran
(MILP)
Ilustrasi Suatu Masalah ILP
Maximasi Z = 7x
1
+ 9x
2
dengan pembatas-pembatas:
x
1
+ 3x
2
s 6
7x
1
+ x
2
s 35
x
1
, x
2
0 dan bilangan bulat
Daerah layak
Solusi Optimal Kontinyu (dengan mengabaikan kondisi integralitas)
Metode Pemecahan Model Pemrograman Bilangan Bulat
Ide Dasar dari Cutting Plane
Mengubah convex set dari daerah ruang pemecahan (solution space) sehingga
titik ekstrem menjadi bilangan bulat
Perubahan dibuat tanpa men-slicing off daerah layak dari masalah awal.
Perubahan dilakukan dengan penambahan beberapa secondary constraint.
Penambahan pembatas sekunder
Fractional Algorithm
Digunakan untuk memecahkan masalah pemrograman linier bilangan bulat murni
(PILP).
Mensyaratkan bahwa semua koefisien teknologi dan konstanta ruas kanan adalah
bilangan bulat.
2
13
3
1
2 1
s + x x 39 2 6
2 1
s + x x
Pada awalnya, masalah PILP dipecahkan sebagai LP reguler, yaitu dengan
mengabaikan kondisi integralitas.
Variabel x
i
(i = 1, , m) menunjukkan variabel basis
Variabel w
j
(j = 1, , n) menunjukkan variabel non basis
Misalkan persamaan ke-i dimana variabel x
i
diasumsikan bernilai bilangan bulat
bulat bilangan bukan ,
i
1
| o |
=
=
n
j
j
j
i i i
w x
Misal : | |
i i i
f + = | |
| |
ij
j
i
j
i
f + = o o
dimana
N = [a] adalah bilangan bulat terbesar sehingga N s a
0 < f
i
< 1
0 s f
ij
< 1
Dari baris sumber diperoleh:
| | | |
= =
+ =
n
j
j
j
i i i
n
j
i ij i
w x w f f
1 1
o |
Agar semua x
i
dan w
j
adalah bilangan bulat, maka ruas kanan dari persamaan harus
bilangan bulat Akibatnya, ruas kiri harus bilangan bulat.
Untuk f
ij
> 0 dan w
j
> 0 untuk semua i dan j maka
0
1
>
=
n
j
j ij
w f
Akibatnya
i
n
j
j ij i
f w f f s
=1
Karena f
i
< 1 maka
1
1
<
=
n
j
j ij i
w f f
Karena ruas kiri harus bilangan bulat, maka syarat perlu untuk memenuhi integralitas
adalah:
0
1
s
=
n
j
j ij i
w f f
Pertidaksamaan terakhir dapat dijadikan sebagai pembatas dalam bentuk:
i
n
j
j ij i
f w f S =
=1
; (fractional cut)
Tabel setelah penambahan fractional cut
Dengan penambahan fractional cut, tabel terakhir menjadi tidak layak walaupun
optimal sehingga metode dual simplex diterapkan untuk meniadakan
ketidaklayakan.
Algoritma berhenti jika solusi optimal bilangan bulat diperoleh.
Kekuatan fractional cut
i
n
j
j ij
f w f >
=1
k
n
j
j kj
f w f >
=1
Cut (1) dikatakan lebih kuat dari cut (2) jika f
i
> f
k
dan f
ij
s f
kj
untuk semua j dengan
strict inequality terpenuhi paling sedikit satu.
Aturan :
{ }
i
i
f max
=
n
j
ij
i
i
f
f
1
max
Ilustrasi Penerapan Fractional Algorithm
Maximasi Z = 7x
1
+ 9x
2
dengan pembatas-pembatas:
x
1
+ 3x
2
s 6
7x
1
+ x
2
s 35
x
1
, x
2
0 dan bilangan bulat
Tabel optimal kontinyu
Fractional cut:
2
1
22
1
22
7
4 3 1
= x x S
Tabel setelah penambahan fractional cut
Tabel yang diperoleh dengan dual simplex:
Tabel setelah penambahan fractional cut
Tabel yang diperoleh dengan dual simplex:
Solusi bilangan bulat optimal, x
1
= 4, x
2
= 3; Z = 55
Ilustrasi Fractional Cut secara grafis
Fractional cut 2:
Mixed Algorithm
Digunakan untuk memecahkan masalah pemrograman linier bilangan bulat
campuran (MILP)
Pada awalnya, masalah MILP dipecahkan sebagai LP reguler, yaitu dengan
mengabaikan kondisi integralitas.
Contoh:
Maximasi Z = 7x
1
+ 9x
2
dengan pembatas-pembatas:
x
1
+ 3x
2
s 6
7x
1
+ x
2
s 35
x
1
0 dan bilangan bulat
x
2
0
Misal x
k
adalah variabel bilangan bulat dari masalah MILP. Persamaan-x
k
dalam
solusi kontinyu optimal:
Untuk x
k
adalah bilangan bulat, maka
| | | | 1 atau + > s
k k k k
x x | | ; harus dipenuhi
Dari baris sumber, kondisi ini ekivalen dengan
Misal
J
+
= himpunan subscripts j untuk o
k
j
> 0
J
-
= himpunan subscripts j untuk o
k
j
< 0
Dari (1) dan (2) diperoleh
Karena (1) dan (2), tidak dapat terjadi secara simultan, maka (3) dan (4) dapat
digabungkan menjadi satu pembatas dalam bentuk.
k
n
J j
k
j
k
k
k
n
J j
k
j
k k
f w
f
f
w S =
+
+
e e
o o
1
; (mixed cut)
Ilustrasi Penerapan Mixed Algorithm
Maximasi Z = 7x
1
+ 9x
2
dengan pembatas-pembatas:
x
1
+ 3x
2
s 6
7x
1
+ x
2
s 35
x
1
0 dan bilangan bulat
x
2
0
Tabel optimal kontinyu:
Tabel setelah penambahan mixed cut
Tabel yang diperoleh dengan dual simplex:
Solusi optimal, x
1
= 4, x
2
= 10/3; Z = 55
b. Metode Branch and Bound
Metode yang paling banyak digunakan dalam praktek untuk memecahkan
masalah pemrograman bilangan bulat baik murni maupun campuran.
Digunakan sebagian besar software komersial
Pada dasarnya merupakan prosedur enumerasi yang efisien untuk memeriksa
semua solusi layak yang mungkin.
Algoritma BB untuk ILP (PILP & MILP)
Algoritma BB untuk BILP
Algoritma BB untuk ILP
Misalkan diberikan suatu masalah pemrograman
bilangan bulat sebagai berikut:
Maksimasi Z = cx
dengan pembatas
Ax = b
x > 0
x
j
bilangan bulat untuk j e I
dimana I adalah himpunan variabel bilangan bulat
Langkah pertama adalah memecahkan masalah ILP sebagai LP dengan
mengabaikan pembatas bilangan bulat (bounding)
Misalkan masalah LP dinyatakan sebagai LP-1 yang mempunyai nilai optimal
dari fungsi tujuan Z
1
.
PL-1
Maksimasi Z = cx
dengan pembatas
Ax = b
x > 0
Asumsikan bahwa solusi optimal dari LP-1 mengandung beberapa variabel
bilangan bulat yang mempunyai nilai pecahan.
Oleh karena itu, solusi optimal bilangan bulat untuk ILP belum diperoleh dan Z
1
menjadi batas atas (upper bound) dari nilai maksimum Z untuk ILP.
Langkah berikutnya adalah mempartisi daerah layak dari LP-1 dengan
mencabangkan (branching) salah satu variabel bilangan bulat yang nilainya
pecahan
Misalkan variabel x
j
dipilih untuk dicabangkan dengan nilai pecahan |
j
dalam
LP-1.
Misalkan dibuat dua masalah pemrograman linier baru, LP-2 dan LP-3 dengan
memasukkan masing-masing pembatas baru x
j
s [|] dan x
j
> [|]+1
PL-2
Maksimasi Z = cx
dengan pembatas
Ax = b
x
j
s [|]
x > 0
PL-3
Maksimasi Z = cx
dengan pembatas
Ax = b
x
j
> [|]+1
x > 0
Memecahkan (bounding) LP-2 dan LP-3
Asumsikan solusi LP-2 dan LP-3 masih pecahan
Langkah berikutnya adalah memilih node (masalah LP) yang akan dicabangkan.
Setelah masalah LP dipilih untuk dicabangkan lebih lanjut, langkahnya
selanjutnya adalah
a. memilih variabel bilangan bulat dengan nilai pecahan yang akan
dicabangkan untuk membentuk dua masalah LP baru (proses branching)
b. memecahkan masalah LP yang baru (proses bounding)
c. Jika solusi bilangan bulat diperoleh dari suatu masalah LP maka nilai Z-nya
menjadi batas bawah (lower bound) dari nilai maksimum Z untuk masalah ILP.
d. Proses branching dan bounding berlanjut hingga semua node dalam kondisi
fathomed.
e. Fathoming suatu node (masalah LP):
a. Solusi optimal LP merupakan bilangan bulat
b. Masalah LP adalah tak layak
c. Nilai optimal Z dari masalah LP tidak lebih baik daripada batas bawah
(lower bound) saat ini.
Esensi dari algoritma BB
a. Bounding
b. Branching
c. Fathoming
Ilustrasi Penerapan Algoritma BB
Maximasi Z = 2x
1
+ 3x
2
dengan pembatas-pembatas:
5x
1
+ 7x
2
s 35
4x
1
+ 9x
2
s 36
x
1
, x
2
0 dan bilangan bulat
Pencabangan dari LP-3
Aturan Pencabangan
Aturan-aturan pencabangan variabel adalah sebagai berikut:
a. Pilih variabel bilangan bulat yang mempunyai nilai pecahan terbesar dalam
solusi LP.
b. Pilih variabel bilangan bulat yang mempunyai prioritas paling tinggi.
Menunjukkan keputusan yang terpenting dalam model
Mempunyai koefisien profit/biaya paling besar
Mempunyai nilai yang kritis yang didasarkan pengalaman pengguna
c. Aturan pemilihan bebas, misal, pilih variabel bilangan bulat dengan indeks
paling kecil
Aturan penentuan masalah LP yang hendak dicabangkan:
a. Nilai optimal dari fungsi tujuan
b. LIFO (Last-In First-Out), yaitu masalah LP yang dipecahkan paling
belakangan.
Algoritma BB untuk BILP
Maximasi Z = 9x
1
+ 5x
2
+ 6x
3
+ 4x
4
dengan pembatas-pembatas:
6x
1
+ 3x
2
+ 5x3 + 2x4 s 10
x
3
+ x
4
s 1
-x1 + x3 + s 0
-x2 + x4 s 0
x
1
, x
2
, x
3
, x
4
= {0, 1}
EVALUASI
X. METODA TRANSPORTASI
POKOK PEMBAHASAN
Northe West Corner
Metoda Vogels
TUJUAN PEMBELAJARAN
1. Memahami konsep metode transportasi dan penerapannya
2. Memahami konsep solusi optimal permasalahan transportasi
3. Memahami metoda Vogels untuk pencarian solusi optimal
RINGKASAN MATERI
Masalah transportasi umumnya berkaitan dengan masalah pendistribusian suatu
produk dari beberapa sumber ke sejumlah tujuan dengan biaya yang minimum.
Contoh masalah transportasi:
Berapa yang harus dikirim dari gudang 1 dan 2 ke masing-masing konsumen
supaya biaya minimal?
Pendahuluan
Rumusan pemrograman linier untuk kasus transportasi:
Terdapat m sumber (misal: gudang) dimana produk disimpan.
Terdapat n tujuan (misal: pasar) dimana produk dibutuhkan.
Ketersediaan pasokan dari sumber : a
i
(i = 1, 2, , m)
Permintaan dari tujuan : b
j
(j = 1, 2, , n)
Biaya pengiriman dari sumber i ke tujuan j : c
ij
(i = 1, 2, , m; j = 1, 2, ,
n). Jika suatu sumber i tidak dapat memasok suatu tujuan j, maka c
ij
= M (M
bilangan positif yang sangat besar)
Permasalahannya adalah menentukan jumlah produk yang dikirim dari
sumber i ke tujuan j (dinyatakan dengan x
ij
) yang meminimumkan biaya
transportasi (pengiriman) total.
Sehingga, model matematis kasus transportasi secara umum adalah sebagai berikut.
Model umum masalah transportasi dalam bentuk jaringan:
Minimasi
= =
=
m
i
n
j
ij ij
x c Z
1 1
dengan pembatas-pembatas:
i
n
j
ij
a x s
=1
j
m
i
ij
b x >
=1
0 >
ij
x j i,
j = 1, 2, , n
i = 1, 2, , m
1
2
m
1
2
n
...
...
Sumber Tujuan
c
ij
a
1
a
2
a
i
a
m
b
1
b
2
b
j
b
n
Masalah Transportasi Standar/Seimbang
(Standar/Balanced Transportation Problem)
Model matematis:
Masalah Transportasi Tak Seimbang
Model matematis:
= =
=
n
i
j
m
j
i
b a
1 1
Minimasi
= =
=
m
i
n
j
ij ij
x c Z
1 1
dengan pembatas-pembatas:
i
n
j
ij
a x =
=1
j
m
i
ij
b x =
=1
0 >
ij
x j i,
j = 1, 2, , n
i = 1, 2, , m
= =
>
n
i
j
m
j
i
b a
1 1
Minimasi
=
+
=
=
m
i
n
j
ij ij
x c Z
1
1
1
dengan pembatas-pembatas:
i
n
j
ij
a x =
+
=
1
1
j
m
i
ij
b x =
=1
0 >
ij
x
j = 1, 2, , n, n+1
i = 1, 2, , m
j = n+1 adalah tujuan fiktif dengan permintaan
= =
+
=
n
i
j
m
j
i n
b a b
1 1
1
j i,
dan
m i c
n i
,..., 2 , 1 , 0
1 ,
= =
+
Model matematis:
Tabel Transportasi
= =
<
n
i
j
m
j
i
b a
1 1
Minimasi
+
= =
=
1
1 1
m
i
n
j
ij ij
x c Z
dengan pembatas-pembatas:
i
n
j
ij
a x =
=1
j
m
i
ij
b x =
+
=
1
1
0 >
ij
x
j = 1, 2, , n
i = 1, 2, , m+1
j = n+1 adalah tujuan fiktif dengan permintaan
= =
+
=
m
j
i
n
i
j n
a b b
1 1
1
j i,
dan
n j c
j m
,..., 2 , 1 , 0
, 1
= =
+
Contoh-contoh kasus:
a. Kasus I
Matriks transportasi:
To
From Albuquerque Boston Cleveland
Des Moines $5 $4 $3
Evansville $8 $4 $3
Fort Lauderdale $9 $7 $5
b. Kasus II
Shipping costs, Supply, and Demand for Powerco Example
Formulasi linier programming:
Min Z = 8X
11
+6X
12
+10X
13
+9X
14
+9X
21
+12X
22
+13X
23
+7X
24
+14X
31
+9X
32
+16X
33
+5X
34
S.T.: X
11
+X
12
+X
13
+X
14
<= 35 (Supply Constraints)
X
21
+X
22
+X
23
+X
24
<= 50
X
31
+X
32
+X
33
+X
34
<= 40
X
11
+X
21
+X
31
>= 45 (Demand Constraints)
X
12
+X
22
+X
32
>= 20
X
13
+X
23
+X
33
>= 30
X
14
+X
24
+X
34
>= 30
Xij >= 0 (i= 1,2,3; j= 1,2,3,4)
Algoritma pemecahan masalah transportasi:
Langkah 0:
Perumusan masalah dalam masalah transportasi standar
Langkah 1:
Penentuan solusi basis layak awal
Langkah 2:
Pemeriksaan optimalitas. Jika solusi optimal maka berhenti.
Penentuan solusi basis yang baru dan ke langkah 2
From To
City 1 City 2 City 3 City 4 Supply
(Million kwh)
Plant 1 $8 $6 $10 $9 35
Plant 2 $9 $12 $13 $7 50
Plant 3 $14 $9 $16 $5 40
Demand
(Million kwh)
45 20 30 30
Pemecahan Masalah Transportasi
Metode Penentuan Solusi Basis Layak Awal
Penentuan solusi basis layak awal dapat dilakukan dengan beberapa metode yaitu:
Northwest corner method
Least cost method
Vogels approximation method (VAM)
Northwest Corner Rule
Langkah-langkah pengerjaan dijelaskan melalui contoh kasus berikut ini:
2 2 2 1
3
10 8 5 4
7
7 6 6 8
5
4 3 4 4
Konsumen
Pabrik
Permintaan Konsumen
Ketersediaan
Produk
2 2 2 1
0
3
10 8 5 4
7
7 6 6 8
5
1 3 4 4
2 2 2 1
0
3
10 8 5 4
6
1
7 6 6 8
5
0 3 4 4
2 2 2 1
0
3
10 8 5 4
3
1 3
7 6 6 8
5
0 0 4 4
2 2 2 1
0
3
10 8 5 4
0
1 3 3
7 6 6 8
5
0 0 1 4
Solusi basis layak awal:
Biaya transportasi total Z = 92
Least Cost Rule
2 2 2 1
0
3
10 8 5 4
0
1 3 3
7 6 6 8
4
1
0 0 1 4
2 2 2 1
3
3
10 8 5 4
7
1 3 3
7 6 6 8
5
1 4
4 3 4 4
2 2 2 1
3
10 8 5 4
7
7 6 6 8
5
4 3 4 4
2 2 2 1
0
3
10 8 5 4
7
7 6 6 8
5
4 3 4 1
2 2 2 1
0
3
10 8 5 4
6
1
7 6 6 8
5
4 3 4 0
2 2 2 1
0
3
10 8 5 4
2
4 1
7 6 6 8
5
4 3 0 0
Solusi Basis Layak Awal
Biaya transportasi total Z = 79
2 2 2 1
0
3
10 8 5 4
2
4 1
7 6 6 8
2
3
4 0 0 0
2 2 2 1
0
3
10 8 5 4
2
4 1
7 6 6 8
0
2 3
2 0 0 0
2 2 2 1
0
3
10 8 5 4
0
2 4 1
7 6 6 8
0
2 3
0 0 0 0
Vogels Approximation Method (VAM)
P
e
n
a
l
t
i
2 2 2 1
3 1
10 8 5 4
7 1
7 6 6 8
5 0
4 3 4 4
Penalti 5 4 3 3
P
e
n
a
l
t
i
2 2 2 1
0
3
10 8 5 4
7 1
7 6 6 8
5 0
1 3 4 4
Penalti 3 2 1 4
P
e
n
a
l
t
i
2 2 2 1
0
3
10 8 5 4
3 3
4
7 6 6 8
5 0
1 3 4 0
Penalti 3 2 1
Solusi Basis Layak Awal:
Biaya transportasi total Z = 68
Degenerasi
Solusi basis layak dari masalah transportasi dikatakan degenerasi
(degenerate) jika satu atau lebih variabel basis mempunyai nilai nol.
Solusi basis dapat menjadi degenerasi jika sisa pasokan dan sisa permintaan
adalah sama untuk variabel yang akan dipilih menjadi basis.
Jumlah solusi basis dalam masalah transportasi harus : m + n 1 (m = jumlah
baris, n = jumlah kolom)
P
e
n
a
l
t
i
2 2 2 1
0
3
10 8 5 4
0
3 4
7 6 6 8
5
1 3 1 0
Penalti
Pasokan
2 2 2 1
3
3
10 8 5 4
7
3 4
7 6 6 8
5
1 3 1
Permintaan
4 3 4 4
Ilustrasi degenerasi:
2 2 2 1
4
10 8 5 4
5
7 6 6 8
8
4 5 4 4
Sisa
Pasokan
2 2 2 1
0
4
10 8 5 4
5
7 6 6 8
8
Sisa
Permintaan
0 5 4 4
Sisa
Pasokan
2 2 2 1
0
4
10 8 5 4
5
0
7 6 6 8
8
Sisa
Permintaan
0 5 4 4
Sisa
Pasokan
2 2 2 1
0
4
10 8 5 4
0
0 5
7 6 6 8
8
Sisa
Permintaan
0 0 4 4
Sisa
Pasokan
2 2 2 1
0
4
10 8 5 4
0
0 5 0
7 6 6 8
8
Sisa
Permintaan
0 0 4 4
Sisa
Pasokan
2 2 2 1
0
4
10 8 5 4
0
0 5 0
7 6 6 8
4
4
Sisa
Permintaan
0 0 0 4
( )
j i ij ij
v u c c + =
Perbaikan Solusi Basis Layak Awal
Pada perbaikan solusi basis layak awal, dilakukan:
Pemeriksaan optimalitas
Penentuan solusi basis layak yang baru
Metoda yang dapat digunakan:
Metoda u-v atau MODI (Modified Distribution Method)
Metoda Stepping-Stone
Metode u-v
Untuk sebarang solusi basis layak, tentukan nilai u
i
(untuk semua i) dan v
j
(untuk
semua j) sedemikian hingga
(Nilai u
i
dan v
j
bisa positif, negatif atau nol).
Untuk variabel non basis:
Kondisi optimalitas (masalah minimasi ) terjadi apabila
Pasokan
2 2 2 1
4
4
10 8 5 4
5
0 5 0
7 6 6 8
8
4 4
Permintaan
4 5 4 4
ij j i
c v u = + untuk setiap variabel basis x
ij
( ) 0 > + =
j i ij ij
v u c c
untuk semua variabel non basis
Jika kondisi belum optimal, variabel yang masuk basis adalah yang mempunyai
paling negatif (masalah minimasi)
Misal Diberikan Solusi Basis Layak Awal dengan Least Cost Method
Pemeriksaan optimalitas:
2 2 2 1
0
3
10 8 5 4
0
2 4 1
7 6 6 8
0
2 3
0 0 0 0
1
4 1
= +v u
10
1 2
= +v u
5
3 2
= +v u
4
4 2
= +v u
7
1 3
= +v u
6
2 3
= +v u
Enam persamaan dengan tujuh
variabel yang tak diketahui
terdapat tak hingga solusi yang
mungkin
Untuk mendapatkan solusi,
suatu nilai variabel tertentu dapat
ditetapkan sebarang, dan nilai
yang lain dapat dipecahkan.
Misalnya, u
1
= 0
v
1
= 7 v
2
= 6 v
3
= 2 v
4
= 1
u
1
= 0
2 2 2 1
3
3
u
2
= 3
10 8 5 4
7
2 4 1
u
3
= 0
7 6 6 8
5
2 3
4 3 4 4
ij
c
x
11
masuk basis
u = min(3, 2) = 2 x
21
keluar basis
Solusi baru:
Biaya transportasi total Z = 69
v
1
= 7 v
2
= 6 v
3
= 2 v
4
= 1
u
1
= 0
-5 2 -4 2 0 2 1
3
3
u
2
= 3
10 -1 8 5 4
7
2 4 1
u
3
= 0
7 6 4 6 7 8
5
2 3
4 3 4 4
( )
j i ij ij
v u c c + =
v
1
= 7 v
2
= 6 v
3
= 2 v
4
= 1
u
1
= 0
2 2 2 1
3
+u 3u
u
2
= 3
10 8 5 4
7
2u 4 1+u
u
3
= 0
7 6 6 8
5
2 3
4 3 4 4
2 2 2 1
4
2 1
10 8 5 4
7
4 3
7 6 6 8
5
2 3
4 3 4 4
Pemeriksaan Optimalitas
x
32
masuk basis
u = min(1, 4, 2) = 1 x
14
keluar basis
v
1
= 2 v
2
= 1 v
3
= 2 v
4
= 1
u
1
= 0
2 2 2 1
3
2 1
u
2
= 3
10 8 5 4
7
4 3
u
3
= 5
7 6 6 8
5
2 3
4 3 4 4
v
1
= 2 v
2
= 1 v
3
= 2 v
4
= 1
u
1
= 0
2 1 2 0 2 1
3
2 1
u
2
= 3
5 10 4 8 5 4
7
4 3
u
3
= 5
7 6 -1 6 2 8
5
2 3
4 3 4 4
v
1
= 2 v
2
= 1 v
3
= 2 v
4
= 1
u
1
= 0
2 2 2 1
3
2+u 1u
u
2
= 3
10 8 5 4
7
4u 3+u
u
3
= 5
7 6 6 8
5
2u 3 +u
4 3 4 4
Solusi baru:
Biaya transportasi total Z = 68
Solusi optimal.
2 2 2 1
4
3
10 8 5 4
7
3 4
7 6 6 8
5
1 3 1
4 3 4 4
v
1
= 2 v
2
= 1 v
3
= 1 v
4
= 0
u
1
= 0
2 2 2 1
4
3
u
2
= 4
10 8 5 4
7
3 4
u
3
= 5
7 6 6 8
5
1 3 1
4 3 4 4
v
1
= 2 v
2
= 1 v
3
= 1 v
4
= 0
u
1
= 0
2 1 2 1 2 1 1
4
3
u
2
= 4
10 8 5 4
7
3 4
u
3
= 5
7 6 6 3 8
5
1 3 1
4 3 4 4
( ) 0 s + =
j i ij ij
v u c c
Masalah Maksimasi
Pada kasus maksimasi, kondisi optimal terjadi jika koefisien fungsi tujuan relatif
untuk variabel non basis tak positif.
Untuk menentukan variabel non basis yang masuk basis, pilih variabel non basis
dengan koefisien fungsi tujuan relatif paling positif.
Contoh Implementasi Metode Stepping-stone
1. Tetapkan U
1
= 0
2. Hitung nilai U
i
dan V
j
dengan menggunakan persamaan C
ij
= U
i
+ V
j
, untuk
sel yang mendapatkan alokasi.
3. Hitung Reduced Cost (K
ij
)= C
ij
-U
i
-V
j,
untuk sel yang tidak mendapatkan
alokasi.
Contoh:
Optimal:
EVALUASI
XI. ASSIGMENT
POKOK PEMBAHASAN
Metoda Penugasan
TUJUAN PEMBELAJARAN
1. Memahami konsep assignment dan penerapannya
2. Memahami metoda pencarian solusi optimal
RINGKASAN MATERI
Model Penugasan
Model penugasan merupakan kasus khusus dari model transportasi,
dimana sejumlah m sumber ditugaskan kepada sejumlah n tujuan (satu
sumber untuk satu tujuan) sedemikan sehingga di dapat ongkos total yang
minimum.
Biasanya yang dimaksud dengan sumber ialah mesin-mesin, sedangkan yang
dimaksud dengan tujuan ialah pekerjaan (atau job).
Terdapat m mesin (M
1
, M
2
, , M
m
).
Terdapat n job (J
1
, J
2
, , J
n
) yang harus ditugaskan (dikerjakan) pada mesin.
Biaya pengerjaan untuk setiap job tergantung pada mesin yang ditugaskan.
Masalah Penugasan
Biaya pengerjaan job j pada mesin i dinyatakan dengan c
ij
. Jika suatu job i
tidak dapat ditugaskan pada mesin j, maka c
ij
= M (M bilangan positif yang
sangat besar)
Tiap mesin hanya dapat mengerjakan satu job.
Karena itu, bentuk standard model penugasan ini adalah jumlah mesin (m)
sama dengan jumlah job (n) yaitu sama dengan n.
Rumusan Masalah Penugasan
= =
=
n
i
n
j
ij ij
x c Z
1 1
Permasalahannya adalah menentukan penugasan job pada mesin yang
meminimumkan biaya total.
Rumusan Pemrograman Linier
(Tepatnya: Pemrograman Linier Bilangan Bulat 0-1)
Minimasi
dengan pembatas-pembatas:
Tabel Transportasi
, 1
1
=
=
n
j
ij
x
, 1
1
=
=
n
i
ij
x
=
lain yang
mesin pada ditugaskan job jika
0
1 i j
x
ij
i = 1, 2, , n
j = 1, 2, , n
Job
J
1
J
2
J
n
Mesin
M
1
c
11
c
12
c
1n
1
M
2
c
22
c
22
c
1n
1
1
M
n
c
n1
c
n2
c
nn
1
1 1 1 1
( )
= =
i
ij
j
j i ij
i j
ij ij
x q p c x c Z
=
i j
ij j
i j
ij i
i
ij
j
ij
x q x p x c
=
i j
ij j
i j
ij i
i
ij
j
ij
x q x p x c
|
.
|
\
|
|
|
.
|
\
|
=
i i
ij j
i j
ij i
i
ij
j
ij
x q x p x c
( ) ( ) 1 1
=
i
j
i
i
i
ij
j
ij
q p x c
konstanta =
i
ij
j
ij
x c
Masalah Penugasan Tak Standar
Jika jumlah mesin lebih banyak dari jumlah job (m > n) maka dibuat
tambahan (m n) job fiktif dengan biaya penugasan nol.
Jika jumlah mesin lebih sedikit dari jumlah job (m < n) maka dibuat
tambahan (n m) mesin fiktif dengan biaya penugasan nol.
Teknik yang dapat digunakan untuk menyelesaikan masalah penugasan:
Teknik untuk pemecahan masalah transportasi
Kendala: adanya degenerasi
Metoda pemecahan masalah pemrograman bilangan bulat biner
Pemrograman dinamis
Metode Hungarian (Hungarian Method)
Dalam kuliah ini, metode yang dibahas adalah Metode Hungarian.
Metode Hungarian
Asumsi adalah semua elemen biaya (c
ij
) tak negatif.
Prinsip dasar:
Solusi optimal penugasan tidak terpengaruh jika suatu konstanta
ditambahkan atau dikurangkan dari sebarang baris atau kolom dari
matriks biaya.
Pemecahan Masalah Penugasan
Struktur algoritma Metoda Hungarian:
Langkah 0:
Matriks biaya
Langkah 1:
Reduksi baris. Jika diperoleh solusi layak maka berhenti dan
diperoleh solusi optimal. Jika sebaliknya, lanjutkan ke Langkah 2.
Langkah 2:
Reduksi kolom. Jika diperoleh solusi layak maka berhenti dan
diperoleh solusi optimal. Jika sebaliknya, lanjutkan ke Langkah 3.
Langkah 3
Modifikasi matriks biaya. Algoritma berhenti apabila telah diperoleh
solusi layak (dan optimal).
Contoh 1:
Penugasan empat job dan empat mesin dengan biaya penugasan seperti pada tabel
berikut ini.
Reduksi baris dengan cara:
Cari nilai-nilai minimum dari tiap baris seperti pada gambar berikut ini.
Kurangkan masing-masing nilai biaya dengan nilai biaya minimum tiap barisnya
seperti tabel berikut ini.
J
1
J
2
J
3
J
4
M
1
10 9 8 7
M
2
3 4 5 6
M
3
2 1 1 2
M
4
4 3 5 6
J
1
J
2
J
3
J
4
M
1
10 9 8 7
M
2
3 4 5 6
M
3
2 1 1 2
M
4
4 3 5 6
Nilai Minimum Baris 1
Periksa nilai nol pada masing-masing baris.
Solusi dinyatakan layak jika terdapat nilai nol yang memasangkan masing-masing 1
mesin terhadap 1 job.
Karena pada kasus ini, nilai nol memasangkan masing-masing 1 mesin terhadap 1
job, maka solusi dikatakan optimal dengan kesimpulan sebagai berikut.
J
1
J
2
J
3
J
4
M
1
10 7 9 7 8 7 7 7
M
2
3 -3 4 3 5 3 6 3
M
3
2 1 1 1 1 1 2 1
M
4
4 3 3 3 5 3 6 - 3
J
1
J
2
J
3
J
4
M
1
3 2 1 0
M
2
0 1 2 3
M
3
1 0 0 1
M
4
1 0 2 3
M
1
J
4
M
2
J
1
M
3
J
3
M
4
J
2
Biaya penugasan total Z = 7 + 3 + 1 + 3 = 14
Contoh 2:
Penugasan empat job dan empat mesin dengan biaya penugasan seperti pada tabel
berikut ini.
Reduksi baris:
Hasil reduksi baris:
Karena Job 4 belum mendapatkan sebuah mesin, maka solusi dikatakan belum layak.
J
1
J
2
J
3
J
4
M
1
10 9 7 8
M
2
5 8 7 7
M
3
5 4 6 5
M
4
2 3 4 5
J
1
J
2
J
3
J
4
M
1
10 7 9 7 8 7 7 7
M
2
5 5 8 5 7 5 7 5
M
3
5 4 4 4 6 4 5 4
M
4
2 2 3 2 4 2 5 - 2
J
1
J
2
J
3
J
4
M
1
3 2 0 1
M
2
0 3 2 2
M
3
1 0 2 1
M
4
0 1 2 3
Selanjutnya, lakukan reduksi kolom.
Cari nilai minimum dari tiap-tiap kolom, lalu lakukan pengurangan setiap nilai
(ongkos) terhadap nilai minimum pada kolomnya.
Hasil reduksi kolom adalah sebagai berikut.
Solusi belum layak karena belum dapat ditemukan pasangan tepat satu-satu antara
mesin dan job.
Selanjutnya, lakukan modifikasi matriks seperti ilustrasi berikut ini.
J
1
J
2
J
3
J
4
M
1
3 2 0 1
M
2
0 3 2 2
M
3
1 0 2 1
M
4
0 1 2 3
J
1
J
2
J
3
J
4
M
1
3 0 2 0 0 0 1 1
M
2
0 0 3 0 2 0 2 1
M
3
1 0 0 0 2 0 1 1
M
4
0 0 1 0 2 0 3 1
J
1
J
2
J
3
J
4
M
1
3 2 0 0
M
2
0 3 2 1
M
3
1 0 2 0
M
4
0 1 2 2
J
1
J
2
J
3
J
4
M
1
3 2 0 0
M
2
0 3 2 1
M
3
1 0 2 0
M
4
0 1 2 2
Tarik garis (horizontal/vertikal) yang
menghubungkan nilai-nilai nol;
Buat garis seminimum mungkin
(biasanya jumlah kolom - 1)
J
1
J
2
J
3
J
4
M
1
3 2 0 0
M
2
0 3 2 1
M
3
1 0 2 0
M
4
0 1 2 2
Elemen terkecil
yang tak tertutup garis
Tandai elemen terkecil yang tidak
tertutupi garis.
J
1
J
2
J
3
J
4
M
1
3 2 0 0
M
2
0 3 2 1
M
3
1 0 2 0
M
4
0 1 2 2
Tambahkan nilai elemen yang berada
pada titik potong dua garis dengan
nilai elemen terkecil yang tidak tertutup
baris
3 + 1
Secara keseluruhan, operasinya adalah sebagai berikut:
J
1
J
2
J
3
J
4
M
1
3 2 0 0
M
2
0 3 2 1
M
3
1 0 2 0
M
4
0 1 2 2
Kurangi nilai elemen-elemen yang
tidak tertutup garis dengan nilai
elemen terkecil
3 - 1
J
1
J
2
J
3
J
4
M
1
3 2 0 0
M
2
0 3 2 1
M
3
1 0 2 0
M
4
0 1 2 2
Abaikan nilai elemen-elemen yang
tertutup satu garis
J
1
J
2
J
3
J
4
M
1
3 + 1 2 0 0
M
2
0 3 1 2 1 1 - 1
M
3
1 + 1 0 2 0
M
4
0 1 1 2 - 1 2 - 1
Hasil modifikasi matriks adalah sebagai berikut:
Solusi layak, karena sudah terdapat pasangan untuk tiap mesin dan tiap job.
Solusi optimal:
Solusi optimal alternatif:
J
1
J
2
J
3
J
4
M
1
4 2 0 0
M
2
0 2 1 0
M
3
2 0 2 0
M
4
0 0 1 1
J
1
J
2
J
3
J
4
M
1
4 2 0 0
M
2
0 2 1 0
M
3
2 0 2 0
M
4
0 0 1 1
M
1
J
3
M
2
J
1
M
3
J
4
M
4
J
2
Biaya penugasan total Z = 7 + 5 + 5 + 3 = 20
J
1
J
2
J
3
J
4
M
1
4 2 0 0
M
2
0 2 1 0
M
3
1 0 2 0
M
4
0 0 1 1
M
1
J
3
M
2
J
1
M
3
J
4
M
4
J
2
Biaya penugasan total Z = 7 + 7 + 4 + 2 = 20
Masalah Maksimasi
Langkah pengerjaan:
Langkah 1
Konversikan ke masalah minimasi dengan mengalikan semua elemen
(c
ij
) dari matrix biaya penugasan dengan -1.
Langkah 2
Jika beberapa elemen matrix biaya adalah negatif maka tambahan
suatu bilangan positif yang besar untuk masing-masing baris dan
kolom sehingga elemen-elemen biaya menjadi positif.
Langkah 3
Terapkan metode Hungarian.
Contoh 3:
Setiap nilai dikalikan (-1) sehingga menghasilkan matriks sebagai berikut:
J
1
J
2
J
3
J
4
M
1
6 4 -M 2
M
2
4 5 2 1
M
3
3 6 7 7
M
4
8 5 3 4
Max Profit:
J
1
J
2
J
3
J
4
M
1
-6 -4 M -2
M
2
-4 -5 -2 -1
M
3
-3 -6 -7 -7
M
4
-8 -5 -3 -4
Dengan langkah pengerjaan seperti yang telah dinyatakan di atas, pencarian solusi
optimal diilustrasikan sebagai berikut.
Solusi belum layak, langkah pengerjaan dilanjutkan dengan modifikasi matriks.
(Reduksi kolom tidak dilakukan karena nilai minimum tiap kolom adalah nol.)
Hasil modifikasi matriks:
Solusi belum layak, lakukan kembali modifikasi matrisk.
J
1
J
2
J
3
J
4
+
M
1
-6 -4 M -2 6
M
2
-4 -5 -2 -1 5
M
3
-3 -6 -7 -7 7
M
4
-8 -5 -3 -4 8
J
1
J
2
J
3
J
4
M
1
0 2 M+6 4
M
2
1 0 3 4
M
3
4 1 0 0
M
4
0 3 5 4
J
1
J
2
J
3
J
4
M
1
0 2 M+6 3 4 3
M
2
1 0 3 3 4 3
M
3
4 + 3 1 + 3 0 0
M
4
0 3 5 - 3 4 - 3
J
1
J
2
J
3
J
4
M
1
0 2 M + 3 1
M
2
1 0 0 1
M
3
7 4 0 0
M
4
0 3 2 1
J
1
J
2
J
3
J
4
M
1
0 2 M + 3 1
M
2
1 0 0 1
M
3
7 4 0 0
M
4
0 3 2 1
Solusi layak optimal:
Solusi layak optimal alternatif:
J
1
J
2
J
3
J
4
M
1
0 2 1 M + 3 - 1 1 1
M
2
1 + 1 0 0 1
M
3
7 + 1 4 0 0
M
4
0 3 1 2 1 1 1
J
1
J
2
J
3
J
4
M
1
0 1 M + 2 0
M
2
2 0 0 1
M
3
8 4 0 0
M
4
0 2 1 0
M1-J1
M2-J2
M3-J3
M4-J4
Z = 6 + 5 + 7 + 4 = 22
J
1
J
2
J
3
J
4
M
1
0 1 M + 2 0
M
2
2 0 0 1
M
3
8 4 0 0
M
4
0 2 1 0
M1-J4
M2-J2
M3-J3
M4-J1
Z = 2 + 5 + 7 + 8 = 22
Transhipment
EVALUASI
XII. ANALISIS JARINGAN
POKOK PEMBAHASAN
Lintasan Terpendek
Spanning Tree
Maximum Flow
TSP
TUJUAN PEMBELAJARAN
1. Memahami konsep node, arch, dan hubungan antar node
2. Memahami permasalahan pencarian rute terpendek
3. Memahami permasalahan spanning tree dan metoda pencarian solusi optimal
4. Memahami permasalahan Maximum Flow
5. Memahami permasalahan travel salesman problem dan metoda pencarian
solusi
RINGKASAN MATERI
Analisis Jaringan merupakan suatu perpaduan pemikiran yang logis,
digambarkan dengan suatu jaringan yang berisi lintasan-lintasan kegiatan dan
memungkinkan pengolahan secara analitis. Analisis jaringan kerja memungkinkan
suatu perencanaan yang efektif dari suatu rangkaian yang mempunyai interaktivitas.
Poin-poin penting dalam analisis jaringan:
Sebuah jaringan terdiri dari sekumpulan node yang terhubungan dengan arcs
atau branches.
Node (lingkaran kecil), menyatakan sebuah kejadian atau peristiwa atau
event. Kejadian didefinisikan sebagai ujung atau pertemuan dari satu atau
beberapa kegiatan
Pendahuluan
Arcs (Anak panah), menyatakan sebuah kegiatan atau aktivitas. Kegiatan di
sini didefinisikan sebagai hal yang memerlukan jangka waktu tertentu dalam
pemakaian sejumlah sumber daya (sumber tenaga, peralatan, material, biaya).
Jaringan G dinyatakan dengan notasi standard: G = (N, A); dengan N adalah set dari
node dan A adalah set dari arcs.
Contoh:
N = {1, 2, 3, 4, 5}
A = { (1, 3), (1, 2), (2, 3), (2, 4), (2, 5), (3, 4), (3, 5), (4, 5)}
Siklus adalah lintasan yang menghubungkan suatu node dengan node itu sendiri.
Contoh:
Lintasan 2 ke 3, 3 ke 4, dan 4 ke 2.
10
Arc
Node
Function on Arcs
Keuntungan dan Manfaat Analisis Jaringan
Menyelesaikan masalah yang berhubungan dengan desain sistem transportasi
& komunikasi
Dapat merencanakan suatu proyek secara keseluruhan.
Penjadwalan pekerjaan dalam urutan yang praktis dan efisien.
Pengadaan pengawasan dan pembagian kerja maupun biaya.
Penjadwalan ulang untuk mengatasi hambatan dan keterlambatan.
Menentukan kemungkinan pertukaran antara waktu dan biaya.
Permasalahan Jaringan
1. Masalah Spanning Tree minimal
2. Masalah Lintasan Terpendek (Shortest Path)
3. Masalah Maximum Flow
4. Travel Salesman Problem
- Tree merupakan sekelompok arcs yang terhubung yang tidak membentuk
siklus
- Spanning tree merupakan Tree yang menghubungkan seluruh node pada
suatu jaringan
1
2
3
4
5
Model Spanning Tree minimal
1
2
3
4
- Masalah spanning tree minimal berusaha untuk mencari jumlah arc lengths
minimum yang dibutuhkan untuk menghubungkan seluruh node dalam suatu
jaringan.
- Kriteria yang akan diminimisasi dalam kasus spanning tree minimal tidak
terbatas pada jarak meskipun istilah terdekat ("closest) digunakan untuk
menjelaskan suatu prosedur. Kriteria lainnya adalah seperti waktu dan biaya.
Prosedur Penyelesaian Spanning Tree
- Step 1: pilih salah satu node (bebas) dan hubungan pada node terdekat.
Kedua node ini menjadi connected nodes, dan sisa node lainnya menjadi
unconnected nodes.
- Step 2: identifikasi unconnected node yang terdekat dengan salah satu dari
connected nodes (tidak perlu mempertimbangkan ikatan). Tambahkan node
baru ini pada kelompok connected nodes. Ulangi langkan ini sampai seluruh
node terhubung.
- Note: Suatu kasus dengan n node yang akan dihubungkan akan memerlukan
n - 1 iterasi dari langkah di atas.
Contoh (mencari spanning tree minimal)
1
2
3
4
5
2
4
10
30
45
60
40
25
50
50
45
20
30
25
15
20
35
35
30
40
6
5
3
1
9
8
7
Iterasi 1:
Secara acak dipilih node 1, kita lihat bahwa node terdekat adalah node 2 (jarak = 30).
Sehingga, awalnya kita punya:
Connected nodes: 1,2
Unconnected nodes: 3,4,5,6,7,8,9,10
Arcs terpilih: 1-2
Iterasi 2:
Unconnected node terdekat dari connected node adalah node 5 (distance = 25 to node
2). Node 5 menjadi connected node.
Connected nodes: 1,2,5
Unconnected nodes: 3,4,6,7,8,9,10
Arcs terpilih: 1-2, 2-5
2
4
10
30
45
60
40
25
50
50
45
20
30
25
15
20
35
35
30
40
6
5
3
1
9
8
7
2
4
10
30
45
60
40
25
50
50
45
20
30
25
15
20
35
35
30
40
6
5
3
1
9
8
7
Iterasi 3:
Unconnected node terdekat dari connected node adalah node 7 (distance = 15 to node
5). Node 7 menjadi connected node.
Connected nodes: 1,2,5,7
Unconnected nodes: 3,4,6,8,9,10
Arcs terpilih: 1-2, 2-5, 5-7
Iterasi 4:
Unconnected node terdekat dari connected node adalah node 10 (distance = 20 to
node 7). Node 10 menjadi connected node.
Connected nodes: 1,2,5,7,10
Unconnected nodes: 3,4,6,8,9
Arcs terpilih: 1-2, 2-5, 5-7, 7-10
2
4
10
30
45
60
40
25
50
50
45
20
30
25
15
20
35
35
30
40
6
5
3
1
9
8
7
2
4
10
30
45
60
40
25
50
50
45
20
30
25
15
20
35
35
30
40
6
5
3
1
9
8
7
Iterasi 5:
Unconnected node terdekat dari connected node adalah node 8 (distance = 25 to node
10). Node 8 menjadi connected node.
Connected nodes: 1,2,5,7,10,8
Unconnected nodes: 3,4,6,9
Arcs terpilih: 1-2, 2-5, 5-7, 7-10, 10-8
Iterasi 6:
Unconnected node terdekat dari connected node adalah node 6 (distance = 35 to node
10). Node 6 menjadi connected node.
Connected nodes: 1,2,5,7,10,8,6
Unconnected nodes: 3,4,9
Arcs terpilih: 1-2, 2-5, 5-7, 7-10, 10-8, 10-6
2
4
10
30
45
60
40
25
50
50
45
20
30
25
15
20
35
35
30
40
6
5
3
1
9
8
7
2
4
10
30
45
60
40
25
50
50
45
20
30
25
15
20
35
35
30
40
6
5
3
1
9
8
7
Iterasi 7:
Unconnected node terdekat dari connected node adalah node 3 (distance = 20 to node
6). Node 3 menjadi connected node.
Connected nodes: 1,2,5,7,10,8,6,3
Unconnected nodes: 4,9
Arcs terpilih: 1-2, 2-5, 5-7, 7-10, 10-8, 10-6, 6-3
Iterasi 8:
Unconnected node terdekat dari connected node adalah node 9 (distance = 30 to node
6). Node 9 menjadi connected node.
Connected nodes: 1,2,5,7,10,8,6,3,9
Unconnected nodes: 4
Arcs terpilih: 1-2, 2-5, 5-7, 7-10, 10-8, 10-6, 6-3, 6-9
2
4
10
30
45
60
40
25
50
50
45
20
30
25
15
20
35
35
30
40
6
5
3
1
9
8
7
2
4
10
30
45
60
40
25
50
50
45
20
30
25
15
20
35
35
30
40
6
5
3
1
9
8
7
Iterasi 9:
Unconnected node yang tersisa tinggal node 4. Node yang paling dekat dengan node
4 adalah node 6 (distance = 45).
Selanjutnya, spanning tree minimal (lihat slide selanjutnya) terdiri dari:
Arcs: 1-2, 2-5, 5-7, 7-10, 10-8, 10-6, 6-3, 6-9, 6-4
Nilai: 30 + 25 + 15 + 20 + 25 + 35 + 20 + 30 + 45 = 245
Optimal spanning tree:
2
4
10
30
45
60
40
25
50
50
45
20
30
25
15
20
35
35
30
40
6
5
3
1
9
8
7
4
30
45
60
40
25
50
50
45
20
30
25
15
20
35
35
30
40
1
5
8
10
6
3
9
2
7
Beberapa aplikasi masalah Spanning Tree minimal
Disain jaringan telekomunikasi (fiber-optic networks, computer networks,
leased-line telephone networks, cable television networks, etc.)
Disain jaringan transportasi untuk meminimumkan biaya total dari
penyediaan link (rail lines, roads, etc.)
Disain jaringan high-voltage electrical transmission lines
Disain jaringan pipelines untuk menghubungkan sejumlah lokasi
Pada jaringan yang diberikan, cari lintasan jarak, waktu, atau biaya minimum
dari poin awal (the start node) sampai ke tujuan (the terminal node)
Definisi masalah
Terdapat n buah node, dimulai dengan start node 1 and diakhiri dengan
terminal node n.
Bi-directional arcs menghubungkan connected node i dan j dengan jarak
nonnegative, d
ij
Cari lintasan total jarak minimum yang menghubungkan node to node n.
Langkah-Langkah Pengerjaan Lintasan Terpendek
Step 1: tetapkan node 1 dengan label permanen [0,S]. Angka pertama adalah
jarak dari node 1; angka kedua adalah preceding node. Karena node 1 tidak
memiliki preceding node, maka starting node dilabeli dengan S.
Step 2: hitung label-label sementara, (d,n), untuk tiap node yang dapat
dicapai secara langsung dari node 1. d = jarak langsung dari node 1 ke node
in question ini disebut sebagai distance value. n menunjukkan preceding
node pada rute dari node 1 ini disebut sebagai preceding node value.
(Seluruh node yang dilabeli pada langkah ini memiliki n = 1.)
Step 3: identifikasi node dengan label sementara yang memiliki distance
value terkecil. Anggap node ini adalah node k. Node k kemudian dilabeli
secara permanen (menggunakan tanda kurung [ , ]). Jika seluruh node telah
dilabeli secara permanen, GO TO STEP 5.
Model Lintasan Terpendek
Step 4: untuk setiap node yang tidak memiliki label permanen yang dapat
dicapai secara langsung dari node k pada langkah 3, hitung jumlah t, dimana
t = (arc distance dari node k menuju node i)
+ (Distance value pada node k).
Jika node yang belum dilabeli secara permanen memiliki label
sementara, bandingkan t dengan distance value saat ini dengan node
yang dipertanyakan yang terlabeli sementara.
Jika t < distance value dari node yang terlabeli sementara,
ganti label sementara yang dipertanyakan dengan (t,k).
Jika t > distance value dari node yang terlabeli sementara,
pertahankan label sementara saat ini.
Jika node yang belum dilabeli secara permanen tidak memiliki label
sementara, buat label sementara (t,k) untuk node yang dipertanyakan.
Setelah itu, GO TO STEP 3.
Step 5:
Label permanen mengidentifikasi jarak terpendek dari node 1 menuju
setiap node seperti halnya preceding node pada rute terpendek.
Rute terpendek pada given node dapat dicari secara backwards dengan
dimulai dari given node dan bergerak menuju preceding node.
Dengan melanjutkan prosedur ini dari preceding node akan
menghasilkan rute terpendek dari node 1 menuju node yang
dipertanyakan.
Contoh Kasus Shortest Path
Find the shortest route from node 1 to all other nodes in the network:
6 4
4
7
3
5
1
8
6
2
5
3
6
2
3 1
2 5
7
Iteration 1
Step 1: tetapkan node 1 dengan label permanen [0,S].
Step 2: karena node 2, 3, dan 4 terhubung langsung dengan node 1, tetapkan
label sementara (4,1) untuk node 2; (7,1) untuk node 3; dan (5,1) untuk node
4.
Step 3: node 2 adalah node yang dilabeli sementara yang memiliki jarak
terpendek (4), dan selanjunya menjadi node baru yang terlabeli permanen.
Label sementara:
Step 4: untuk setiap node yang berlabel sementara yang terhubung dengan
node 2 hanya dengan satu arc, hitung jumlah arc length dengan distance value
node 2 (yaitu 4).
Node 3: 3 + 4 = 7 (tidak lebih kecil dari label saat ini; jangan diubah.)
Node 5: 5 + 4 = 9 (tetapkan label sementara pada node 5 dengan (9,2)
karena node 5 belum memiliki label.)
Hasil Iterasi 1
6 4
4
7
3
5
1
8
6
2
5
3
6
2
(4,1)
[0,S]
(5,1)
(7,1)
3 1
2 5
7
6 4
4
7
3
5
1
8
6
2
5
3
6
2
[4,1]
[0,S]
(5,1)
(7,1)
(9,2)
3 1
2 5
7
Iteration 2
Step 3: node 4 memiliki jarak label sementara terpendek (5). Node 4
menjadi node baru yang terlabeli permanen.
Step 4: untuk setiap node dengan label sementara yang terhubung dengan
node 4 menggunakan satu arc, hitung jumlah arc length dengan distance
value node 4 (yaitu 5).
Node 3: 1 + 5 = 6 (ganti label sementara node 3 dengan (6,4) karena 6 <
jarak saat ini (7))
Node 6: 8 + 5 = 13 (tetapkan label sementara node 6 dengan (13,4)
karena node 6 belum dilabeli.)
Hasil Iterasi 2
Iteration 3
Step 3: node 3 memiliki jarak label sementara terpendek (6), sehingga
menjadi node baru yang terlabeli secara permanen.
Step 4: untuk setiap node dengan label sementara yang terhubung dengan
node 3 hanya dengan satu arc, hitung jumlah arc length dengan jarak ke node
3 (yaitu 6).
Node 5: 2 + 6 = 8 (ganti label sementara node 5 dengan (8,3) karena 8 <
jarak saat ini (9))
Node 6: 6 + 6 = 12 (ganti label sementara node 6 dengan (12,3) karena
12 < jarak saat ini (13))
6 4
4
7
3
5
1
8
6
2
5
3
6
2
[4,1]
[0,S]
[5,1]
(6,4)
(9,2)
(13,4)
3 1
2 5
7
Hasil Iterasi 3
Iteration 4
Step 3: node 5 memiliki jarak label sementara terkecil (8), sehingga menjadi
node baru yang terlabeli permanen.
Step 4: untuk setiap node dengan label sementara yang terhubung dengan
node 5 hanya dengan satu arc, hitung jumlah arc length dengan distance value
dari node 5 (yaitu 8).
Node 6: 3 + 8 = 11 (ganti label sementara node 6 dengan (11,5) karena
11 < jarak saat ini (12))
Node 7: 6 + 8 = 14 (tetapkan label sementara untuk node 7 dengan (14,5)
karena node 7 belum dilabeli.)
Hasil Iterasi 4
6 4
4
7
3
5
1
8
6
2
5
3
6
2
[4,1]
[0,S]
[5,1]
[6,4]
(8,3)
(12,3)
3 1
2 5
7
6 4
4
7
3
5
1
8
6
2
5
3
6
2
[4,1]
[0,S]
[5,1]
[6,4]
[8,3]
(11,5)
(14,5)
3 1
2 5
7
Iteration 5
Step 3: node 6 memiliki jarak label sementara terkecil (11), sehingga
menjadi node baru dengan label permanen.
Step 4: untuk setiap node dengan label sementara yang terhubung dengan
node 6 hanya dengan satu arc, hitung jumlah arc length plus dengan distance
value node 6 (yaitu 11).
Node 7: 2 + 11 = 13 (ganti label sementara node 7 dengan (13,6) karena
13 < jarak saat ini (14))
Hasil Iterasi 5
Iteration 6
Step 3: node 7 jadi terlabeli permanen, dan karenanya seluruh node terlabeli
permanen. Lanjutkan pada ringkasan di langkah 5.
Step 5: ringkas dengan pengusutan backwards rute terpendek melewati label
permanen.
Ringkasan solusi
Node minimum distance shortest route
2 4 1-2
3 6 1-4-3
4 5 1-4
5 8 1-4-3-5
6 11 1-4-3-5-6
7 13 1-4-3-5-6-7
6 4
4
7
3
5
1
8
6
2
5
3
6
2
[4,1]
[0,S]
[5,1]
[6,4]
[8,3]
[11,5]
(13,6)
3 1
2 5
7
Masalah maximal flow terkait dengan penentuan volume aliran maksimum
dari satu node (disebut source) menuju node lainnya (disebu sink).
Pada masalah maximal flow, setiap arc memiliki arc flow capacity maksimum
yang membatasi aliran menuju arc tersebut.
Dimungkinkan bawah sebuah arc, (i,j), dapat memiliki flow capacity yang
berbeda antara dari i ke j dengan dari j ke i.
Langkah pengerjaan Maximum Flow
Step 1: cari sebuah lintasan dari source node menuju sink node yang
memiliki flow capacities positif (pada arah aliran) untuk setiap arcs pada
lintasan. Jila tidak ada lintasan yang tersedia, artinya solusi optimal telah
ditemukan.
Step 2: cari arc capacity terkecil, p
f
, pada lintasan yang terpilih di langkah 1.
Tingkatkan aliran pada jaringan dengan mengirim sejumlah p
f
pada lintasan
ini.
Step 3: pada lintasan yang terpilih di langkah 1, kurangi seluruh arc flow
capacities pada arah aliran dengan p
f
dan tambahkan seluruh arc flow pada
arah aliran yang berlawanan dengan p
f
. Selanjutnya Go to step 1.
6 4
4
7
3
5
1
8
6
2
5
3
6
2
3 1
2 5
7
Model Maximum Flow
Contoh kasus
Find the maximal flow from node 1 to node 7 in the following network:
Iteration 1
Step 1: cari lintasan dari source node, 1, menuju the sink node, 7,
yang memiliki flow capacities yang lebih besar dari nol pada seluruh
arcs lintasan. Salah satu lintasannya adalah 1-2-5-7.
Step 2: Arc flow capacity terkecil pada lintasan 1-2-5-7 adalah
minimum dari {4, 3, 2} = 2.
Step 3: kurangi seluruh arc flow pada arah aliran dengan 2 pada
lintasan ini dan tambahkan seluruh arc flow pada arah yang
berlawanan dengan 2:
(1-2) 4 - 2 = 2 (2-1) 0 + 2 = 2
(2-5) 3 - 2 = 1 (5-2) 3 + 2 = 5
(5-7) 2 - 2 = 0 (7-5) 0 + 2 = 2
Hasil Iterasi 1:
2 5
1
4
7
3 6
4
4
3
3
2
0
3
4
2
0
0
0
0
3 3
3
1 5
5 1
0 6
3
0
2 5
1
4
7
3 6
2
4
3
1
2
2
5
4
0
2
0
0
0
3 3
3
1
5
5 1
0 6
3
0
Iteration 2
Step 1: lintasan 1-4-7 memiliki flow capacity yang lebih kecil dari
nol pada tiap arc.
Step 2: Arc flow capacity terkecil pada 1-4-7 adalah 3.
Step 3: kurangi arc flow capacities lintasan pada arah aliran dengan 3,
dan tambahkan kapasitas ini pada arah yang berlawanan dengan 3:
(1-4) 4 - 3 = 1 (4-1) 0 + 3 = 3
(4-7) 3 - 3 = 0 (7-4) 0 + 3 = 3
Hasil Iterasi 2:
Iteration 3
Step 1: Lintasan 1-3-4-6-7 memiliki flow capacity lebih besar dari
nol pada tiap arc.
Step 2: Arc capacity minimum pada 1-3-4-6-7 adalah 1.
Step 3: kurangi arc capacities lintasan pada arah aliran dengan 1 dan
tambahkan arc capacities pada arah aliran berlawanan dengan 1:
(1-3) 3 - 1 = 2 (3-1) 0 + 1 = 1
(3-4) 3 - 1 = 2 (4-3) 5 + 1 = 6
(4-6) 1 - 1 = 0 (6-4) 1 + 1 = 2
(6-7) 5 - 1 = 4 (7-6) 0 + 1 = 1
2 5
1
4
7
3 6
2
1
3
1
2
2
5
4
0
2
3
0
3
3 3
0
1
5
5 1
0 6
3
0
Hasil Iterasi 3
Iteration 4
Step 1: Lintasan 1-3-6-7 memiliki flow capacity lebih besar dari nol
untuk tiap arc.
Step 2: Arc capacity minimum pada 1-3-6-7 adalah 2.
Step 3: kurangi seluruh arc flow capacities pada lintasan arah aliran
dengan 2 dan tambahkan arc flow capacities pada arah berlawanan
dengan 2:
(1-3) 2 - 2 = 0 (3-1) 1 + 2 = 3
(3-6) 6 - 2 = 4 (6-3) 0 + 2 = 2
(6-7) 4 - 2 = 2 (7-6) 1 + 2 = 3
Hasil Iterasi 4
2 5
1
4
7
3 6
2
1
2
1
2
2
5
4
0
2
3
1
3
3 3
0
0
6
4 2
0 6
2
1
2 5
1
4
7
3 6
2
1
0
1
2
2
5
4
0
2
3
3
3
3 3
0
0
6
2 2
2 4
2
3
Iteration 5
Step 1: dengan menggunakan algoritma shortest route, rute terpendek
dari node 1 menuju node 7 adalah 1-2-4-3-6-7.
Step 2: Arc capacity terkecil pada 1-2-4-3-6-7 adalah 2.
Step 3: kurangi arc flow capacities pada lintasan arah aliran dengan 2
dan tambahkan kapasitas ini pada arah berlawanan dengan 2:
(1-2) 2 - 2 = 0 (2-1) 2 + 2 = 4
(2-4) 2 - 2 = 0 (4-2) 3 + 2 = 5
(4-3) 6 - 2 = 4 (3-4) 2 + 2 = 4
(3-6) 4 - 2 = 2 (6-3) 2 + 2 = 4
(6-7) 2 - 2 = 0 (7-6) 3 + 2 = 5
Note:
Arc 3-4 pada iterasi 3, aliran 1 unit diarahkan dari node 3 menuju
node 4. Pada iterasi 5 aliran 2 unit diarahkan dari node 4 menuju node 3.
Dengan mengurangkan aliran yang ditentukan dari the capacity of the
"sending" end of the arc dan menambahkannya pada the "receiving" end of
the arc, kita telah mengetahui the net effect of the oppositely directed flow
assignments.
Hasil iterasi 5:
Sudah tidak terdapat flow menuju sink node 7 yang positif.
Dengan demikian, flow maksimal yang dari node 1 to node 7 telah didapat.
2 5
1
4
7
3 6
0
1
0
1
0
4
5
4
0
2
3
5
3
5 3
0
0
4
0 2
4 2
4
3
NOTE
Untuk mengidentifikasi jumlah maximal flow amount dan bagaimana cara
mendapatkannya (mengarahkannya):
Bandingkan kapasitas asli dengan kapasitas tersesuaikan akhir untuk tiap arc
di kedua arah.
Jika kapasitas tersesuaikan lebih kecil dari kapasitas asli, perbedaannya
menunjukkan jumlah aliran untuk arc tersebut.
Ringkasan Solusi:
NOTE
Terdapat degree of randomness untuk algoritma maximal flow.
Ingat kembali pada langkah 1 terdapat pernyataan cari satu lintasan...,
selama masih mengikuti algoritma, anda akan mendapat solusi, apapun
lintasan yang anda pilih pada setiap iterasi.
Dua orang yang menyelesaikan masalah mungkin mendapatkan solusi flow
routings yang berbeda, namun maximal flows akan tetap sama.
2 5
1
4
7
3 6
1
3
2
2
4
1
3
1
5
3
4
=
otherwise 0
. ke pelanggan dari berjalan kendaraan jika 1 j i
x
ij
- TSP mencari ongkos perjalanan minimal untuk mengunjungi sekumpulan
pelanggan tetap.
- Kendaraan harus mengunjungi setiap pelanggan tepat satu kali dan kembali
ke titik awal (depot).
- Fungsi objektif adalah ongkos total perjalanan.
Contoh Kasus
- Total Jumlah solusi adalah (n-1)! / 2 jika jarak simetris.
Contoh, jika terdapat 50 pelanggan yang akan dikunjungi, maka total jumlah
solusi yang mungkin adalah 49! / 2 = 3.04 x 10
62
.
Model Matematis TSP
Inputs: n = jumlah pelanggan termasuk depot
c
ij
= ongkos perjalanan dari pelanggan i menuju j
Decision variables:
Travel Salesman Problem
2 3
1
4
5
3
5
2
3
2
1
3
2
4
4
Pembatas (1) dan (2) untuk menjamin setiap pelanggan dikunjungi tepat satu kali.
Contoh:
minimize 2x
12
+3x
13
+2x
14
+3x
15
+3x
23
+4x
24
+...+5x
45
s.t. x
12
+x
13
+x
14
+x
15
= 1 for node 1
x
21
+x
31
+x
41
+x
51
= 1 for node 1
...
...
Apakah solusi ini fisibel untuk formulasi kita?
Kita membutuhkan pembatas tambahan yang disebut subtour elimination constraints.
{ } j i x
i x
j x
x c
ij
n
j
ij
n
i
ij
n
i
n
j
ij ij
, all for 0,1
all for 1
all for 1 s.t.
min
1
1
1 1
e
=
=
=
=
= =
(1)
(2)
Subtour Elimination Constraints
Contoh solusi fisible
e e
>
S i S j
ij
S x subset every for 1
e e
s
S i S j
ij
S S x subset every for 1
2 3
1
4
5
1
3
5
4
2
1
3
5
4
2
Contoh solusi tidak fisible
Penyelesaian TSP
Terdapat beberapa teknik untuk menyelesaikan TSP.
Pembahasan kali ini menggunakan Teknik Branch & Bound
Contoh kasus
Data C
ij
untuk 5 pelanggan adalah sebagai berikut:
Pencarian solusi awal
Dengan metode Hungarian:
1
3
5
4
2
Terdapat 2 stuktur
1 2 3 4 5
1 10 3 6 9
2 5 5 4 2
3 4 9 7 8
4 7 1 3 4
5 3 2 6 5
1 2 3 4 5
min
1 M 10 3 6 9 3
2 5 M 5 4 2 2
3 4 9 M 7 8 4
4 7 1 3 M 4 1
5 3 2 6 5 M 2
Nilai minimum diluar garis = 2
Nilai minimum diluar garis = 1
Solusi awal 1-3-1, 2-5-4-2 dengan z = 15.
Solusi awal tidak fisibel
Pencarian Solusi Fisibel
M-3 7 0 3 6
3 M-2 3 2 0
0 5 M-4 3 4
6 0 2 M-1 3
1 0 4 3 M-2
M-1 9 0 3 8
3 M-2 1 0 0
0 5 M-6 1 4
6 0 0 M-3 3
1 0 2 1 M-2
M-2 9 0 2 7
3 M-1 2 0 0
0 6 M-5 1 4
5 0 0 M-2 2
0 0 2 0 M-3
1
3 2
Z = 15
S = {(1-3-1), (2-5-4-2)}
Status: Tidak Layak
X
13
= 0 X
31
= 0
Pencarian solusi Masalah 2
Dengan metode Hungarian:
Nilai minimum diluar garis = 1
Nilai minimum diluar garis = 1
min
M 10 M 6 9 6
5 M 5 4 2 2
4 9 M 7 8 4
7 1 3 M 4 1
3 2 6 5 M 2
M-6 4 M-6 0 3
3 M-2 3 2 0
0 5 M-4 3 4
6 0 2 M-1 3
1 0 4 3 M-2
M-7 4 M-7 0 2
3 M-1 3 3 0
0 5 M-4 4 4
5 0 1 M-1 2
0 0 3 3 M-3
Solusi masalah 2: 1-4-3-1, 2-5 dengan z = 17.
Solusi masalah 2 tidak fisibel
Pencarian solusi Masalah 3
Dengan metode Hungarian:
Nilai minimum diluar garis = 1
M-7 5 M-7 0 2
4 M 3 3 0
0 6 M-5 3 3
5 0 0 M-2 1
0 0 2 2 M-4
1
3 2
Z = 15
S = {(1-3-1), (2-5-4-2)}
Status: Tidak Layak
X
13
= 0 X
31
= 0
Z = 17
S = {(1-4-3-1), (2-5)}
Status: Tidak Layak
min
M 10 3 6 9 3
5 M 5 4 2 2
M 9 M 7 8 7
7 1 3 M 4 1
3 2 6 5 M 2
M-3 7 0 3 6
3 M-2 3 2 0
M-7 2 M-7 0 1
6 0 2 M-1 3
1 0 4 3 M-2
Solusi masalah 3: 1-3-4-2-5-1 dengan z = 16.
Solusi masalah 3 fisibel
EVALUASI
Soal 1.
The State University campus has five computers. The distances between computers
are given in the figure below. What is the minimum length of cable required to
interconnect the computers? Note that if two computers are not connected this is
because of underground rock formations.
M-4 7 0 2 5
3 M-1 4 2 0
M-7 3 M-6 0 1
5 0 2 M-2 2
0 0 4 2 M-3
1
3 2
Z = 15
S = {(1-3-1), (2-5-4-2)}
Status: Tidak Layak
X
13
= 0 X
31
= 0
Z = 17
S = {(1-4-3-1), (2-5)}
Status: Tidak Layak
Z = 16
S = {(1-3-4-2-5-1)}
Status: Layak
4
2
5
3
1
6
4
5
1
3
2
2
2
4