Anda di halaman 1dari 39

BAB 10 NETWORK FLOW

Networks banyak dipakai dalam banyak hal untuk kegunaan yang


berbeda-beda. Jaringan transportasi, jaringan listrik dan jaringan
telekomunikasi adalah contoh-contoh dimana network ditemukan dalam
kehidupan sehari-hari. Representasi Network juga dipakai dalam produksi,
distribusi, project planning, penempatan fasilitas, manajemen resource
dan financial planning.

Suatu network diperlukan karena memberi gambaran visual dan bantuan konseptual yang
lebih jelas untuk memotret hubungan antar ,komponen dalam sistem yang sering dijumpai
dalam banyak kasus. Dalam konteks optimasi, perkembangan metodologi maupun aplikasi
networks termasuk yang cepat. Banyak temuan baru dalam hal algoritma yang berkenaan
dengan permasalahan network flow membawa pengaruh besar dalam struktur data dan
manipulasi data dalam bidang ilmu komputer. Dengan berkembangnya ilmu
komputer, memungkinkan penyelesaian problem network flow dengan
bantuan software terutama untuk masalah-masalah besar yang beberapa
tahun sebelumnya tidak terpecahkan. Banyak permsalahan network flow
yang sebenarnya berbentuk linear programming. Sebagai contoh,
masalah transportasi atau assignment yang kita bahas sebelumnya.
Dalam bab ini akan kita bahas beberapa aplikasi network flow.
Macam-macam aplikasi networkflow antara lain
1. Shortest-path problem,
2. Minimum spanning tree problem,
3. Maximum flow problem
4. Minimum cost flow problem

SHORTEST PATH
Seringkali kita mempunya problem yang berhubungan dengan pemeilihan suatu rute
perjalanan menuju suatu tujuan tertentu. Apa yang kita selesaikan dalam shortest path adalah
mencari jarak total terpendek dari suatu node asal O dan node tujuan T melewati beberapa
node yang lain. Pemelihan rute terpendek ini merupakan inti permasalahan yang kita coba
pecahkan dalam shortest path.
Algorithm untuk Shortest-Path Problem.

Tujuan dari iterasi ke n:


Temukan node terdekat ke n terhadap node asal (ulangi untuk n = 1, 2, . . . sampai node
terdekat ke n adalah node tujuan akhir).

Input untuk iterasi ke n: n - 1 node terdekat ke asal (yang sudah terselesaikan pada iterasi
sebelumnya), termasuk lintasan terpendeknya dan jarak dari dari titik asal. (Node-node ini ,
ditambah denga node asal, akan disebut node yang sudah diselesaikan; node yang lain disebut
node yang belum terselesaikan)

Kandidat untuk node terdekat ke n: setiap node yang sudah terselesaikan yang terhubung
langsung ke satu atau lebih ke node yang belum terselesaikan memberikan satu kandidate-
node yang belum diselesaikan yang mempunyai sambungan terpendek.

Penghitungan node terdekat ke n: Untuk setiap node yang sudah terselesaikan dan
kandidatnya, tambahkan jarak antara mereka dan jarak lintasan terpendek dengan node sudah
terselesaikan. Kandidat dengan dengan jarak total terpendek tersebut adalah node ke n
terdekat.

Contoh aplikasi shortest path


1. Menemukan lintasan dengan jarak total minimum dalam suatu network
2. Minimasi biaya total dari urutan sejumlah aktivitas/pekerjaan dalam suatu network
3. Minimasi waktu total dari urutan sejumlah aktivitas/pekerjaan dalam suatu network
4. Dalam suatu network G dengan arc reliabilities sebesar rij, temukan lintasan P
dengan maximum reliability (given by P(i,j)ÎP rij).
Perhatikan contoh berikut. Kita berangkat dari kota O ke tujuan T.
n Selesaikan node yang Node Jarak Total Node Jarak Cabang
tersambung langsung terdekat node yang terdekat minimum terakhir
dengan node yang secara ke- n
belum terselesaikan langsung
tersambung

1 O A 2 A 2 OA
2, O C 4 C 4 OC
3 A B 2+2=4 B 4 AB

4 A D 2 + 7= 9 E 7 BE
B E 4 + 3= 7
C E 4 + 4= 8
5 A D 2 +7 =9 D 8 BD
B D 4+ 4 =9 D 8 ED
E D 7+1=8
6 D T 8+5=13 T 13 DT
E T 7+7=14

Ada cara lain yang lebih efisien untuk permasalahan shortest path yang lebih besar. Yaitu,
dengan model optimasi. Dalam model optimasi ini kita gunakan formulasi programa linier.
Berikut ini cara memformulasikan dan menyelesaikan problem shortest path (lintasan
terpendek) dengan menggunakan Excel-solver dan LINDO. Sebelumnya bisa kita definisikan
aliran masuk dari satu node ke node yang lain dan fungsi tujuannya sebagai berikut
Minimasi 2XOA+5XOB+4XOC+2XAB+7XAD+XBC+XCB+4XBD+3XBE+4XCE+XED+XDE
+5XDT +7XET
subject to
XOA+XOB+XOC = 1 (node O)
-XOA+XAB+XAD = 0 (node A)
-XOB- XAB +XBD+ XBE + XBC-XCB= 0 (node B)
-XOC - XBC +XCE +XCB = 0 (node C)
-XBD-XAD -XED+XDE +XDT = 0 (node D)
-XCE-XBE+ XED +XET = 0 (node E)
- XET –XDT =-1 (node T)
dengan

1, jika link i - j termasuk dalam rute


X ij  
0, jika link i - j tidak termasuk dalam rute

Sel target F18= SUMPRODUCT(C4:C17;D4:D17)


Sedangkan kolom H4:H10 berisi formula berikut
node net-flow
O =C4+C5+C6
A =-C4+C7+C8
B =-C5-C7+C9+C10+C11-C12
C =-C6-C9+C13+C12
D =-C8-C10+C14+C15-C16
E =-C14-C13+C16+C17
T =-C15-C17

Kolom C menunjukkan solusi optimal dari problem ini. Nilai 1 pada kolom ini menunjukkan
cabang (arc) tersebut masuk dalam rute terpendek yang terpilih. Sebaliknya, nilai 0
menunjukkan bahwa cabang yang bersangkutan tidak masuk dalam rute. Sedangkan fungsi
obyektif diperoleh dari perkalian nilai solusi optimal (kolom C) dengan koefisien jarak
(kolom D).

Sedangkan formulasi dalam LINDO untuk masalah ini dan solusinya adalah sebagai berikut

Min 2XOA + 5XOB + 4XOC+2XAB + 7XAD + XBC + XCB + 4XBD + 3XBE +


4XCE + XED + XDE + 5XDT +7XET
subject to
XOA+XOB+XOC = 1 !(node O)
-XOA+XAB+XAD =0 !(node A)
-XOB- XAB +XBD+ XBE + XBC-XCB= 0 !(node B)
-XOC - XBC +XCE +XCB = 0 !(node C)
-XBD-XAD -XED+XDE +XDT = 0 !(node D)
-XCE-XBE+ XED +XET =0 !(node E)
- XET -XDT =-1 !(node T)
end
Sedangkan solusinya adalah sebagai berikut
LP OPTIMUM FOUND AT STEP 4

OBJECTIVE FUNCTION VALUE

1) 13.00000

VARIABLE VALUE REDUCED COST


XOA 1.000000 0.000000
XOB 0.000000 1.000000
XOC 0.000000 1.000000
XAB 1.000000 0.000000
XAD 0.000000 1.000000
XBC 0.000000 2.000000
XCB 0.000000 0.000000
XBD 1.000000 0.000000
XBE 0.000000 0.000000
XCE 0.000000 0.000000
XED 0.000000 0.000000
XDE 0.000000 9.000000
XDT 1.000000 0.000000
XET 0.000000 1.000000

ROW SLACK OR SURPLUS DUAL PRICES


2) 0.000000 0.000000
3) 0.000000 2.000000
4) 0.000000 4.000000
5) 0.000000 3.000000
6) 0.000000 8.000000
7) 0.000000 7.000000
8) 0.000000 13.000000

NO. ITERATIONS= 4

Contoh lain
Akan ditempuh kota T dari kota O. Diberikan jarak antar kota dalam network berikut.
Temukan lintasan terpendek dari O ke T. Pergunakan fomulasi LP.
A
4 7
1 D
5 6 Tujuan
Asal
6
O B 1 T
4 8
5 2 E

5
C

Minimasi :
4XOA+ 6XOB+ 5XOC+ XAB+ 7XAD+ 2XBC+ 5XBD+ 4XBE+ 2XCB+ 5XCE+ XDE+ 6XDT+ XED+ 8XET
Subject to
XOA + XOB + XOC = 1 (node O)
- XOA + XAB + XAD = 0 (node A)
- XOB –XAB – XCB + XBD + XBE = 0 (node B)
- XOC - XBC + XCE = 0 (node C)
- XAD - XBD - XED + XDT = 0 (node D)
- XCE – XBE + XED + XET = 0 (node E)
-XDT – XET = -1 (node T)
Dengan

1, jika link i  j masuk dalam rute


xij  
0, jika tidak ada

Rute jarak
1 O-A-B-D-T 16
2 O-A-B-E-D-T 16
Node-1 Node Jarak Jarak Node Cabang
N
terdekat total minimal terakhir terakhir
1 O A 4 4 A OA
2 O C 5 5 C OC
A B 4+1 5 1 B AB
C B 5+2 7 2
3 A D 4+7 11 7 E
B E 5+4 9 4 BE
C E 5+5 10 5
4 B D 5+5 10 5 D BD
E D 9+1 10 1 D ED
5 D T 10+6 16 6 T DT
E T 10+8 18 8
Perhitungan dengan penggunaan program excel-solver
Masuk
Dari Ke rute Jarak Node Net-flow Supply/demand
O A 1 4 O 1 1
O B 0 6 A 0 0
O C 0 5 B 0 0
A B 1 1 C 0 0
A D 0 7 D 0 0
B C 0 2 E 0 0
B D 1 5 T -1 -1
B E 0 4
C B 0 2
C E 0 5
D E 0 1
D T 1 6
E D 0 1
E T 0 8

Nilai terpendek 16

A 3,5 D
4,6 3,4 3,4

3,6
Origin Destination
SE 4,7 B 3,2 E 3,6 LN

3,3
4,2
3,5 3,8

C 3,4 F

9.5
Shorthes-path problem

Minimasi :
4.6XSEA+ 4.7XSEB+ 4.2XSEC+3.5 XAD+ 3.4XAE+ 3.6XBD+ 3.2XBE+ 3.3XBF+ 3.5XCE+ 3.4XCF+
3.4XDLN+ 3.6XELN+3.8 XFLN
Subject to
XSEA+ XSEB+XSEC = 1 (node O)
- XSEA + XAD + XAE = 0 (node A)
- XSEB + XBD + XBE + XBF = 0 (node B)
- XSEC + XCE + XCF = 0 (node C)
- XAD - XBD + XDLN = 0 (node D)
- XAE – XBE - XCE + XELN = 0 (node E)
– XBF - XCF + XFLN = 0 (node E)
-XDLN – XELN –XFLN = -1 (node T)
Dengan

Node
Node- Lama Node Cabang
N terdek Jml waktu
1 penerbangan terakhir terakhir
at
1 SE A 4.6
SE B 4.7
SE C 4.2 4.2 C OC
2 A D 3.5+4.6 8.1 8.1 D AD
B D 3.6+4.7 8.3
3 A E 3.4+4.6 8 8
B E 3.2+4.7 7.9 7.9
C E 3.5+4.2 7.7 7.7 E CE
4 B F 3.3+4.7 8
C F 3.4+4.2 7.6 7.6 F CF
5 D LN 3.4+8.1 11.5
E LN 3.6+7.7 11.3 11.3 LN ELN
F LN 3.8+7.6 11.4

Rute jarak
SE - C - E - LN 11.3

A 3,5 D
4,6 3,4 3,4

Origin 3,6 Destination

SE 4,7 B 3,2 E 3,6 LN

3,3
4,2
3,5 3,8

C 3,4 F
Lama Supply/
Dar K Masuk Nod Net-
penerbanga deman
i e rute e flow
n d
SE A 0 4.6 SE 1 1
SE B 0 4.7 A 0 0
SE C 1 4.2 B 0 0
A D 0 3.5 C 0 0
A E 0 3.4 D 0 0
B D 0 3.6 E 0 0
B E 0 3.2 F 0 0
B F 0 3.3 LN -1 -1
C E 1 3.5
C F 0 3.4
L
D N 0 3.4
L
E N 1 3.6
L
F N 0 3.8
Nilai terpendek 11.30
M INIMUM SPANNING TREE
Minimum spanning tree problem dapat dijelaskan sebagai berikut

1. Kita mempunyai sekumpulan node dari suatu network tetapi belum terhubung. Yang
diberikan hanya sambungan potensial (yang sudah diperkirakan akan dipilih) dan panjang
antar node jika disambungkan. Jarak ini bisa juga digantikan dengan besaran lain seperti
waktu dan biaya.
2. Tujuannya adalah memenuhi syarat bahwa semua node tersambung dengan jarak totoal
minimum.

Contoh aplikasi minimum spanning tree


 Membangun rel kereta api yang bisa menghubungkan beberapa kota
 Mendesain local access network untuk beberapa komputer
 Membuat sambungan kabel elektrik pada sebuah control panel
 Membuat sambungan pipa yang menghubungkan tempat pengeboran di tepi pantai,
dengan tempat penyulingan dan tempat penyimpanan minyak di dekat konsumen
 Mendesain jaringan telekomunikasi (fiber-optic networks, computer networks,leased-
line telephone networks, cable television networks, etc.)
 Mendesain jaringan pipa untuk menghubungkan sejumlah lokasi

Algorithm untuk Minimum Spanning Tree Problem.

1. Pilih sembarang node sebagai node awal. Lalu sambungkan dengan node terdekat.
2. Tentukan satu node terdekat dengan node-node lain yang sudah terhubung. Lalu
hubungkan kedua node ini. Ulangi langkah ini hingga semua node tersambung.
3. Jika ada dua node mempunyai jarak sama dengan node lain yang sudah tersambung,
bisa dipilih secara sembarang. Dengan demikian, ada kemungkinan lebih dari satu
solusi optimal dengan jarak minimum total sama.
Pilih

node O sebagai node untuk mulai. Node yang belum tersambung yang paling dekat ke O
adalah A, hubungkan A ke O.

Node yang belum tersambung yang paling dekat ke O atau A, adalah node B. Node B lebih
dekat ke A, maka sambungkan B ke A.
Node yang belum tersambung yang paling dekat ke O, A atau B , adalah node C. Node C
lebih dekat ke B, maka sambungkan C ke B.

Node yang belum tersambung yang paling dekat ke O, A, B atau C , adalah node E. Node E
lebih dekat ke B, maka sambungkan E ke B.

Node yang belum tersambung yang paling dekat ke O, A, B, C atau E , adalah node D. Node
D lebih dekat ke E, maka sambungkan D dengan E.
Dari D dan E paling dekat ke node T adalah cabang DT. Maka sambungkan T ke D.
Jadi terbentuk minimum spanning tree .

Perbedaan utama minimum spanning tree dan shortest path adalah dalam minimum spanning
tree yang dipentingkan adalah menyambungkan semua node atau titik yang ada. Dalam
shortest path tujuan kita adalah mencapai node tujuan dari node awal dengan jarak total
minimum. Jadi dalam shortest path tidak perlu setiap titik tersambung dengan titik yang lain.
Secara matematis permasalahan minimum spanning tree bisa diformulasikan sebagai
berikut
xij= aliran barang melalui cabang i - j,
cij= biaya per unit aliran melewati cabang i- j,

n n
min  c ij xij
i 1 j 1
n n

x
j 1
ij   x ji  1 untuk setiap node i
j 1
n n

 x
i 1 j 1
ij  N 1

Xij=0 atau 1

Berikut ini contoh lain dari permsalahan minimum spanning tree. Ada 5 kota yang harus
terhubung yaitu A, B, C dan D. Jarak antar kota diberikan sebagai berikut

0 702 454 842 2396


702 0 324 1093 2136
454 324 0 1137 2180
842 1093 1137 0 1616
2396 2136 2180 1616 0
Jika kita mengirimkan data dari satu kota maka data harus bisa terkirim ke 4 kta lain. Kita
harus menghubungkan setiap kota dengan ongkos minimum;

842 1616
1093
2396 E

702 2136
A B
1137
2180
324
454

MIN 702 X12 + 454 X13 + 842 X14 + 2396 X 15


+ 702 X21 + 324 X23 + 1093 X24 + 2136 X25
+ 454 X31 + 324 X32 + 1137 X34 + 2180 X35
+ 842 X41 + 1093 X42 + 1137 X43 + 1616 X45
+ 2396 X51 + 2136 X52 + 2180 X53 + 1616 X54
SUBJECT TO
3] X12 + X 32 + X42 + X52 = 1
4]- 4 X23 - 2 X32 - U 2 + U3 >= - 3
5]- 4 X24 - 2 X42 - U 2 + U4 >= - 3
6]- 4 X25 - 2 X52 - U 2 + U5 >= - 3
7] X13 + X23 + X43 + X53 = 1
8]- 2 X23 - 4 X32 + U2 - U3 >= - 3
9]- 4 X34 - 2 X43 - U3 + U4 >= - 3
10]- 4 X35 - 2 X53 - U3 + U5 >= - 3
11] X 14 + X 24 + X34 + X54 = 1
12]- 2 X24 - 4 X42 + U2 - U4 >= - 3
13]- 2 X34 - 4 X43 + U3 - U4 >= - 3
14]- 4 X45 - 2 X54 - U4 + U5 >= - 3
15] X15 + X25 + X35 + X45 = 1
16]- 2 X25 - 4 X52 + U2 - U5 >= - 3
17]- 2 X35 - 4 X53 + U3 - U5 >= - 3
18]- 2 X45 - 4 X54 + U4 - U5 >= - 3
19] X12 + X13 + X14 + X15 >= 1
20] 3 X12 + U 2 <= 4
21] 3 X13 + U 3 <= 4
22] 3 X14 + U 4 <= 4
23] 3 X15 + U 5 <= 4
END
INTE X11
INTE X12
INTE X13
INTE X14
INTE X15
INTE X21
INTE X22
INTE X23
INTE X24
INTE X25
INTE X31
INTE X32
INTE X33
INTE X34
INTE X35
INTE X41
INTE X42
INTE X43
INTE X44
INTE X45
INTE X51
INTE X52
INTE X53
INTE X54
INTE X( 5 5
SLB U( 2 1.000
SUB U( 2 999999.000
SLB U( 3 1.000
SUB U( 3 999999.000
SLB U( 4 1.000
SUB U( 4 999999.000
SLB U( 5 1.000
SUB U( 5 999999.000

SETS:
CITY / 1..5/: U; ! U( I) = level of city I;
! U( 1) = 0;
LINK( CITY, CITY):
DIST, ! The distance matrix;
X; ! X( I, J) = 1 if we use link I, J;
ENDSETS

DATA: ! Distance matrix need not be symmetric;


! However, city 1 is base of the tree;
!to: Atl Chi Cin Hou LA Mon ;
DIST = 0 702 454 842 2396 !from Atl;
702 0 324 1093 2136 !from Chi;
454 324 0 1137 2180 !from Cin;
842 1093 1137 0 1616 !from Hou;
2396 2136 2180 1616 0 !from LA;
; !from Mon;
ENDDATA

! The model size: Warning, may be slow for N >= 8;


N = @SIZE( CITY);

! Minimize total distance of the links;


MIN = @SUM( LINK: DIST * X);

! For city K, except the base, ... ;


@FOR( CITY( K)| K #GT# 1:

! It must be entered;
@SUM( CITY( I)| I #NE# K: X( I, K)) = 1;

! If there are 2 disjoint tours from 1 city to


another, we can remove a link without breaking
connections. Note: These are not very powerful
for large problems;
@FOR( CITY( J)| J #GT# 1 #AND# J #NE# K:
U( J) >= U( K) + X ( K, J) -
( N - 2) * ( 1 - X( K, J)) +
( N - 3) * X( J, K); );
);

! There must be an arc out of city 1;


@SUM( CITY( J)| J #GT# 1: X( 1, J)) >= 1;

! Make the X's 0/1;


@FOR( LINK: @BIN( X); );

! The level of a city except the base is at least


1 but no more than N-1, and is 1 if it links to
the base;
@FOR( CITY( K)| K #GT# 1:
@BND( 1, U( K), 999999);
U( K) <= N - 1 - ( N - 2) * X( 1, K); );
END
Global optimal solution found at iteration: 8
Objective value: 3236.000

Variable Value Reduced Cost


N 5.000000 0.000000
U( 1) 0.000000 0.000000
U( 2) 2.000000 0.000000
U( 3) 1.000000 0.000000
U( 4) 1.000000 0.000000
U( 5) 2.000000 0.000000
DIST( 1, 1) 0.000000 0.000000
DIST( 1, 2) 702.0000 0.000000
DIST( 1, 3) 454.0000 0.000000
DIST( 1, 4) 842.0000 0.000000
DIST( 1, 5) 2396.000 0.000000
DIST( 2, 1) 702.0000 0.000000
DIST( 2, 2) 0.000000 0.000000
DIST( 2, 3) 324.0000 0.000000
DIST( 2, 4) 1093.000 0.000000
DIST( 2, 5) 2136.000 0.000000
DIST( 3, 1) 454.0000 0.000000
DIST( 3, 2) 324.0000 0.000000
DIST( 3, 3) 0.000000 0.000000
DIST( 3, 4) 1137.000 0.000000
DIST( 3, 5) 2180.000 0.000000
DIST( 4, 1) 842.0000 0.000000
DIST( 4, 2) 1093.000 0.000000
DIST( 4, 3) 1137.000 0.000000
DIST( 4, 4) 0.000000 0.000000
DIST( 4, 5) 1616.000 0.000000
DIST( 5, 1) 2396.000 0.000000
DIST( 5, 2) 2136.000 0.000000
DIST( 5, 3) 2180.000 0.000000
DIST( 5, 4) 1616.000 0.000000
DIST( 5, 5) 0.000000 0.000000
X( 1, 1) 0.000000 0.000000
X( 1, 2) 0.000000 702.0000
X( 1, 3) 1.000000 454.0000
X( 1, 4) 1.000000 842.0000
X( 1, 5) 0.000000 2396.000
X( 2, 1) 0.000000 702.0000
X( 2, 2) 0.000000 0.000000
X( 2, 3) 0.000000 324.0000
X( 2, 4) 0.000000 1093.000
X( 2, 5) 0.000000 2136.000
X( 3, 1) 0.000000 454.0000
X( 3, 2) 1.000000 324.0000
X( 3, 3) 0.000000 0.000000
X( 3, 4) 0.000000 1137.000
X( 3, 5) 0.000000 2180.000
X( 4, 1) 0.000000 842.0000
X( 4, 2) 0.000000 1093.000
X( 4, 3) 0.000000 1137.000
X( 4, 4) 0.000000 0.000000
X( 4, 5) 1.000000 1616.000
X( 5, 1) 0.000000 2396.000
X( 5, 2) 0.000000 2136.000
X( 5, 3) 0.000000 2180.000
X( 5, 4) 0.000000 1616.000
X( 5, 5) 0.000000 0.000000

Row Slack or Surplus Dual Price


1 0.000000 0.000000
2 3236.000 -1.000000
3 0.000000 0.000000
4 0.000000 0.000000
5 2.000000 0.000000
6 3.000000 0.000000
7 0.000000 0.000000
8 0.000000 0.000000
9 3.000000 0.000000
10 4.000000 0.000000
11 0.000000 0.000000
12 4.000000 0.000000
13 3.000000 0.000000
14 0.000000 0.000000
15 0.000000 0.000000
16 3.000000 0.000000
17 2.000000 0.000000
18 0.000000 0.000000
19 1.000000 0.000000
20 2.000000 0.000000
21 0.000000 0.000000
22 0.000000 0.000000
23 2.000000 0.000000

M AXIMUM F LOW P ROBLEM


Secara umum maximum flow bisa dijelaskan sebagai berikut
1. Semua aliran barang melalui suatu network yang berarah dan tersambung dari node
awal ke node akhir. Node awal disebut sumber dan node akhir disebut tujuan.
2. Node sisa yang lain dinamakan node antara.
3. Aliran dalam satu cabang hanya diperbolehkan ke arah yang ditunjukkan oleh anak
panah dimana jumlah maksimum diberikan sebagai kapasitas cabang tersebut. Pada
node sumber, semua cabang mengarah meninggalkan node. Pada node tujuan semua
cabang mengarah masuk ke node.
4. Tujuannya adalah memaksimumkan jumlah total yang bisa diangkut dari sumber ke
tujuan. Jumlah yang diangkut ini bisa dikatakan jumlah yang meninggalkan sumber
atau jumlah yang sampai pada tujuan.

Contoh Applikasi
Berikut ini adalah contoh-contoh aplikasi maximum flow problem.
1. Maksimasi aliran dalam jaringan distribusi suatu perusahaan dari pabrik ke
pelanggan.
2. Maksimasi aliran dalam jaringan suplai suatu perusahaan dari vendor ke pabrik-
pabriknya.
3. Maksimasi aliran minyak dalam sistem perpipaan
4. Maksimasi aliran air dalam distribusi air PDAM.
5. Maksimasi aliran kendaraan dalam jaringan transportasi
6. Maksimasi pesan dalam suatu jaringan telekomunikasi

Meskipun maximum flow bisa diformulasikan sebagai linear programming, namun ada
algoritma yang cukup efisien untuk menyelesaikannya. Algoritma tersebut adalah
Augmenting Path. Suatu lintasan augmenting adalah lintasan berarah dari sumber ke tujuan
sehingga setiap cabang dalam lintasan ini mempunyai kapasitas sisa yang positif. Nilai
minimum dari kapasitas residual yang ada disebut dengan kapasitas sisa dari lintasan
augmenting. Karena ia mewakili jumlah aliran yang feasibel yang bisa ditambahkan untuk
keseluruhan lintasan.
Karena itu, setiap lintasan augmenting memberikan kemungkinan memperbesar aliran dalam
network.
Algoritma Augmenting Path untuk maximum flow

1. Identifikasikan suatu lintasan augmenting dengan menemukan lintasan dari sumber ke


tujuan dari jaringan yang tersisa sedemikian rupa sehingga setiap sambungan dalam
lintasan ini mempunyai kapasitas residual positif. (jika tidak ada lagi lintasan
augmenting, aliran net sudah menunjukkan aliran yang optimal)
2. Identifikasikan kapasitas tersisa c* dari lintasan augmenting ini dengan menemukan
kapasitas residual minimum dari cabang-cabang yang ada pada lintasan ini.
Tambahkan aliran pada lintasan ini sebesar c*.
3. Kurangi sejumlah c* kapasitas sisa setiap cabang dalam lintasan. Tambahkan
sejumlah c* kapasitas sisa setiap cabang dalam lintasan dalam arah yang berlawanan,
kembali ke langkah 1.

Lihat Contoh berikut

Iteration 1:Dalam gambar tampak bahwa , salah satu lintasan potensial


adalah O - B- E- T, yang mempunyai kapasitas sisa min{7, 5, 6} = 5.
Dengan mengalirkan 5 ke dalam lintasan ini, didapatkan network residual
Iteration 2: Alirkan lagi sebanyak 3 ke lintasan potensial O - A- D - T.
didapatkan network residual

Iteration 3: alirkan 1 ke lintasan potensial O- A-B-D-T.


Iteration 4: alirkan 2 ke lintasan O-B-D-T. Nework yang dihasilkan

Iteration 5: : alirkan 1 ke lintasan potensial O-C-E-D-T.


Iteration 6: : alirkan 1 ke lintasan potensial O-C-E-T. Hasilnya adalah
Iteration 7: : alirkan 1 ke lintasan potensial O-C-E-B-D-T.
Network yang dihasilkan adalah
Suatu cut dapat di definisikan sebagai potongan dari sembarang set dari directed arcs yang
mengandung paling tidak satu arc dari setiap lintasan yang mengarah dari sumber(source)
ke tujuan (sink). Normalnya banyak cara untuk melakukan pemotongan (cutting) dalam
suatu network untuk membentuk suatu cut. Untuk suatu cut tertentu, nilai cut adalah jumlah
kapasitas dari semua lintasan yang ada pada cut tersebut.
Teorema max-flow min-cut menyatakan untuk sembarang network dengan satu sumber dan
satu tujuan, aliran maksimum yang feasible dari sumber ke tujuan sama dengan nilai
minimum cut untuk semua cuts dari network tersebut.
Jadi jika F menandakan jumlah aliran dari sumber ke tujuan untuk sembarang pola aliran
yang feasible, nilai dari suatu cut memberikan upper bound to F, dan nilai terendah dari
nilai cut sama dengan nilai maksimum F.
Dari contoh ini banyak kemungkinan cut yang bisa didapat. Cut yang digambarkan di atas
adalah cut dengan aliran minimum. Yaitu 3 + 4+ 1 + 6= 14, dimana nilainya sama dengan
aliran maksimum yang kita peroleh. Kita tidak perlu lagi mencari kemungkinan untuk
mengalirkan lagi.

Contoh lain
Maximum Flow
2
4

5 4
6
1
4
1 3 7
F 3
F
3
1
6 9

4
4

Dari Ke Flow Kapasitas Node Net-flow Supply/demand


1 2 4 6 1 9
1 3 4 4 2 0 0
1 4 1 1 3 0 0
2 5 4 4 4 0 0
3 4 1 3 5 0 0
3 5 0 1 6 0 0
3 6 3 3 7 -9
4 6 2 4
5 7 4 4
6 7 5 9

Maximum Flow 9

Flow: 1 – 2 – 5 – 7 =4
1–3–6–7 =3
1–3–4–6–7 =1
1–4–6–7 =1
M INIMUM COST FLOW
Network bisa digunakan untuk mewakili persoalan minimum cost flow. Yaitu, persoalan
membawa sejumlah item/barang dari sumber ke tujuan dengan melalui beberapa
kemungkinan jalur. Dalam persoalan ini harus dipilih jalur yang memberikan biaya
pengangkutan total minimum. Persoalan Minimum cost flow dideskripsikan sebagai berikut.

1. Networknya mempunyai arah dan terhubung (directed and connected network).


2. Paling tidak salah satu node adalah supply node.
3. Paling tidak salah satu node adalah demand node.
4. Semua node sisanya adalah nodes perantara ( transhipment nodes).
5. Aliran melalui suatu arc hanya diperbolehkan hanya dalam arah sesuai arah yang
ditunjukkan oleh arah panah dimana jumlah maksimum aliran diberikan oleh kapasitas dari
cabang (arc) tersebut . (Jika aliran bisa terjadi dalam dua arah maka akan diwakili oleh arah
panah yang berlawanan. )
6. Network mempunyai cukup cabang dengan kapasitas yang memungkinkan aliran yang
dibangkitkan pada node supply untuk memenuhi semua node demand.
7. Biaya aliran melalui setiap cabang proporsional terhadap jumlah aliran dan biaya per
unit aliran .
8. Tujuannya adalah meminimasi ongkos total pengiriman suplai yang tersedia melalui
network untuk memenuhi demand yang diminta.
(An alternative objective is to maksimasi the total profit from doing this.)

Contoh aplikasi minimum cost flow problems


Kind of Supply Nodes Transshipmen Demand
Application t Nodes Nodes
Operasi jaringan Sumber barang- fasilitas Customers
distribusi barang penyimpanan
sementara
Solid waste Sources of solid Processing Landfill locations
management waste facilities

Operation of a Vendors Intermediate Processing


supply network Gudang facilities

Coordinating plants Production of a Market untuk a


product mixes at specific product specific product
Plants

Cash flow Sources of cash at a Short-term Needs untuk cash at


management specific time investment options a specific time

Contoh
Misalkan kita mempunyai network sebagai berikut dengan kapasitas cabang, biaya per unit
aliran melewati node, dan kebutuhan di setiap node.
F OR M U L AS I M OD E L
Misalkan kita mempunyai network yang mempunyai arah dan terhubung dengan n nodes
termasuk satu untuk suplai dan satu untuk demand. Variabel keputusan dan parameter
yang lain adalah
xij= aliran barang melalui cabang i - j,
cij= biaya per unit aliran melewati cabang i- j,
uij = kapasitas untuk cabang i- j,
bi= aliran netto yang timbul di node i.
Nilai bi tergantung pada posisi node i, dimana
bi > 0 jika node i adalah node supply,
bi <0 jika node i adalah node demand,
bi = 0 jika node i node antara.
n n
min  c ij xij
i 1 j 1
n n

x
j 1
ij   x ji  bi , untuk setiap node i
j 1

0 £ xij £ uij untuk setiap cabang(i, j)

node net flow


A =C3+C4+C5
B =-C3+C6
C =-C4-C6+C7
D =-C5+C8-C9
E =-C7-C8+C9

Sel target G10= SUMPRODUCT(C3:C9;F3:F9)


Formulasi programa liniernya adalah
Minimasi 2XAB+4XAC +9XAD +3XBC+ XCE +2XED+3XDE
subject to
XAB+XAC+XAD = 50 (node A)
- XAB +XBC =40 (node B)
-XAC -XBC+XCE = 0 (node C)
-XAD -XED+XDE =-30 (node D)
-XCE+ XED -XDE =-60 (node E)
Dalam formulasi LINDO
Minimasi 2XAB+4XAC +9XAD +3XBC+ XCE +2XED+3XDE
subject to
XAB+XAC+XAD = 50 !(node A)
- XAB +XBC = 40 !(node B)
-XAC -XBC+XCE = 0 !(node C)
-XAD -XED+XDE = -30 !(node D)
-XCE+ XED -XDE =-60 !(node E)
XAB <=10 !(node A)
XCE <=80 !(node C)
End
LP OPTIMUM FOUND AT STEP 4

OBJECTIVE FUNCTION VALUE


1) 490.0000

VARIABLE VALUE REDUCED COST


XAB 0.000000 1.000000
XAC 40.000000 0.000000
XAD 10.000000 0.000000
XBC 40.000000 0.000000
XCE 80.000000 0.000000
XED 20.000000 0.000000
XDE 0.000000 5.000000

ROW SLACK OR SURPLUS DUAL PRICES


2) 0.000000 -9.000000
3) 0.000000 -8.000000
4) 0.000000 -5.000000
5) 0.000000 0.000000
6) 0.000000 -2.000000
7) 10.000000 0.000000
8) 0.000000 2.000000

NO. ITERATIONS= 4

Contoh Minimal Cost Flow


Makonsel Company adalah perusahaan yang membuat barang dan menjualnya kepada outlet
retail. Truk digunakan untuk mengangkut barang dari kedua pabriknya ke gudang. Lalu dari
gudang ke 3 outlet retailnya. Menggunakan satuan truk yang penuh muatan, berikut ini
adalah table yang menunjukkan output bulanan dari pabrik, ongkos angkut per truk yang
dikirim ke gudang, dan jumlah maksimum yang bisa diangkut ke setiap gudang per bulan.

ke Ongkos angkut per unit Kapasitas angkut


dari Gudang 1 Gudang 2 Gudang 1 Gudang 2 Output
Plant 1 $425 $560 125 150 200
Plant 2 $510 $600 175 200 300
Untuk Outlet retail (RO),berikut ini adalah demand bulanan, ongkos angkut per truk dari
setiap gudang, dan jumlah maksimum yang bisa dikirim per bulan dari setiap gudang .

To Ongkos angkut per unit Kapasitas angkut


Dari RO1 RO2 RO3 RO1 RO2 RO3
Gudang 1 $470 $505 $490 100 150 100
Gudang 2 $390 $410 $440 125 150 75
Demand $ 150 $ 200 $ 150 150 200 150
Permasalahan ini bisa diselesaikan dengan excel. Berikut adalah solusi dengan menggunakan
excel.

Dari Ke Flow Kapasitas Biaya perunit Node Net-flow Supply/demand


Plan1 W1 125 <= 125 425 Plan1 200 200
Plan1 W2 75 <= 150 560 Plan2 300 300
Plan2 W1 125 <= 175 510 W1 0 0
Plan2 W2 175 <= 200 600 W2 0 0
W1 Ro1 25 <= 100 470 Ro1 -150 -150
W1 Ro2 150 <= 150 505 Ro2 -200 -200
W1 Ro3 75 <= 100 490 Ro3 -150 -150
W2 Ro1 125 <= 125 390
W2 Ro2 50 <= 150 410
W2 Ro3 75 <= 75 440

TOTAL COST 457375.001


Problem ini bisa diselesikan melalaui formulasi Linear programming sebagai berikut

Minimize
425XP1W1+ 560XP1W2+ 510XP2W1+ 600XP2W2 + 470XW1RO1+ 505XW1RO2+ 490XW1RO3+
390XW2RO1+ 410XW2RO2 + 440XW2RO3
Subject to
XP1W1+ XP1W2= 200 !(node P1)
XP2W1+ XP2W2= 300 !(node P2)
XP1W1 + XP2W1 - XW1RO1- XW1RO2 - XW1RO3= 0 !(node W1)
XP1W2 + XP2W2 - XW2RO1- XW2RO2 - XW2RO3= 0 !(node W2)
- XW1RO1- XW2RO1 = -150 !(node RO1)
- XW1RO2 – XW2RO2 = -200 !(node RO2)
– XW1RO3 - XW2RO3= -150 !(node R03)
XP1W1 <= 125
XP1W2 <= 150
XP2W1 <= 175
XP2W2 <= 200
XW1RO1 <= 100
XW1RO2 <= 150
XW1RO3 <= 100
XW2RO1 <= 125
XW2RO2 <= 150
XW2RO3 <= 75

XP1W1 >= 0
XP1W2 >= 0
XP2W1 >= 0
XP2W2 >= 0
XW1RO1 >= 0
XW1RO2 >= 0
XW1RO3 >= 0
XW2RO1 >= 0
XW2RO2 >= 0
XW2RO3 >= 0
END

Penyelesaian dengan software Lindo


node net flow
O =C3+C4+C5
A =-C3+C6+C7
B =-C4-C6+C8+C9+C10
C =-C5-C8+C11
D =-C7-C9+C12-C13
E =-C10-C11+C13+C14
T =-C12-C14

Target sel F15=C4+C3+C5


Contoh

Exp 11.hal 530


Gary Fort wayne Evonsville Terne houle South bend
Gary 0 132 217 164 58
Fort wayne 132 0 290 201 79
Evonsville 217 290 0 113 303
Terne houle 164 201 113 0 196
South bend 58 79 303 196 0

minimize

1000X11 + 132X12 + 217X13 + 164X14 + 58X15 +


132X21 +1000 0X22 + 290X23 + 201X24 + 79X25 +
217X31 + 290X32 +1000X33 + 113X34 + 303X35 +
164X41 + 201X42 + 113X43 +1000X44 + 196X45 +
58X51 + 79X52 + 303X53 + 196X54 + 1000X55

SUBJECT TO

U2-U3+5X23 <=4
U2-U4+5X24 <=4
U2-U5+5X25 <=4
U3-U2+5X32 <=4
U3-U4+5X34 <=4
U3-U5+5X35 <=4
U4-U2+5X42 <=4
U4-U3+5X43 <=4
U4-U5+5X45 <=4
U5-U2+5X52 <=4
U5-U3+5X53 <=4
U5-U4+5X54 <=4

END
INTE 25

LP OPTIMUM FOUND AT STEP 517


OBJECTIVE VALUE = 557.799988

FIX ALL VARS.( 9) WITH RC > 85.0000


SET X25 TO <= 0 AT 1, BND= -564.2 TWIN= -557.8 598
SET X34 TO <= 0 AT 2, BND= -668.0 TWIN= -578.6 606

NEW INTEGER SOLUTION OF 668.000000 AT BRANCH 23 PIVOT 606


BOUND ON OPTIMUM: 557.8000
FLIP X34 TO >= 1 AT 2 WITH BND= -578.59998
SET X43 TO <= 0 AT 3, BND= -704.0 TWIN=-0.1000E+31 616
DELETE X43 AT LEVEL 3
DELETE X34 AT LEVEL 2
FLIP X25 TO >= 1 AT 1 WITH BND= -557.79999
SET X34 TO >= 1 AT 2, BND= -557.8 TWIN= -672.8 629
SET X43 TO <= 0 AT 3, BND= -658.4 TWIN=-0.1000E+31 637
SET X23 TO <= 0 AT 4, BND= -658.4 TWIN=-0.1000E+31 637
SET X32 TO <= 0 AT 5, BND= -658.4 TWIN=-0.1000E+31 637
SET X52 TO <= 0 AT 6, BND= -668.0 TWIN=-0.1000E+31 643
DELETE X52 AT LEVEL 6
DELETE X32 AT LEVEL 5
DELETE X23 AT LEVEL 4
DELETE X43 AT LEVEL 3
DELETE X34 AT LEVEL 2
DELETE X25 AT LEVEL 1
RELEASE FIXED VARIABLES
ENUMERATION COMPLETE. BRANCHES= 27 PIVOTS= 669

LAST INTEGER SOLUTION IS THE BEST FOUND


RE-INSTALLING BEST SOLUTION...

OBJECTIVE FUNCTION VALUE

1) 668.0000

VARIABLE VALUE REDUCED COST


X11 0.000000 1000.000000
X12 0.000000 132.000000
X13 0.000000 217.000000
X14 0.000000 164.000000
X15 1.000000 58.000000
X21 0.000000 132.000000
X22 0.000000 1000.000000
X23 0.000000 290.000000
X24 1.000000 201.000000
X25 0.000000 79.000000
X31 1.000000 217.000000
X32 0.000000 290.000000
X33 0.000000 1000.000000
X34 0.000000 113.000000
X35 0.000000 303.000000
X41 0.000000 164.000000
X42 0.000000 201.000000
X43 1.000000 113.000000
X44 0.000000 1000.000000
X45 0.000000 196.000000
X51 0.000000 58.000000
X52 1.000000 79.000000
X53 0.000000 303.000000
X54 0.000000 196.000000
X55 0.000000 1000.000000
U2 1.000000 0.000000
U3 3.000000 0.000000
U4 2.000000 0.000000
U5 0.000000 0.000000

ROW SLACK OR SURPLUS DUAL PRICES


2) 0.000000 0.000000
3) 0.000000 0.000000
4) 0.000000 0.000000
5) 0.000000 0.000000
6) 0.000000 0.000000
7) 0.000000 0.000000
8) 0.000000 0.000000
9) 0.000000 0.000000
10) 0.000000 0.000000
11) 0.000000 0.000000
12) 6.000000 0.000000
13) 0.000000 0.000000
14) 3.000000 0.000000
15) 2.000000 0.000000
16) 3.000000 0.000000
17) 1.000000 0.000000
18) 3.000000 0.000000
19) 0.000000 0.000000
20) 2.000000 0.000000
21) 0.000000 0.000000
22) 7.000000 0.000000
23) 6.000000 0.000000

NO. ITERATIONS= 676


BRANCHES= 27 DETERM.= 1.000E 0

L ATIHAN
1. Suatu perusahaan akan memproduksi suatu produk baru di dua pabrik yang berbeda.
Kedua produk kemudian akan diangkut ke dua gudang. Pabrik1 dapat mengirim
melalui rel kereta api jumlah yang tidak terbatas ke gudang 1 saja. Sementara pabrik 2
bisa mengirim melalui rel kereta api jumlah tak terbatas ke gudang 2 saja. Namun
juga tersedia truk yang bebas digunakan untuk mengangkut sampai 50 unit dari setiap
pabrik ke distribution center dimana dari jumlah itu bisa diangkut maksimum 50 unit
ke setiap gudang. Ongkos angkut per unit untuk setiap alternatif, jumlah output
produksi dan jumlah yang diperlukan untuk setiap gudang diperlihatkan dalam tabel
berikut

Ongkos angkut per unit


Distribution Gudang 1 Gudang 2 Output
center
Pabrik 1 3 7 — 80
Pabrik 2 4 — 9 70
Distribution center 2 4
Alokasi 60 90

(a) Formulasikan model network untuk problem ini sebagai minimum


cost flow problem.
(b) Formulasikan model linear programming untuk masalah ini.

Anda mungkin juga menyukai