Anda di halaman 1dari 40

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 kandidatenode 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 r ij, temukan lintasan P
dengan maximum reliability (given by (i,j)P rij).
Perhatikan contoh berikut. Kita berangkat dari kota O ke tujuan T.

Selesaikan node yang Node


tersambung langsung terdekat
dengan node yang
belum terselesaikan

Jarak Total
node yang
secara
langsung
tersambung

Node
terdekat
ke- n

Jarak
minimum

Cabang
terakhir

OA

2,
3

O
A

C
B

4
2+2=4

C
B

4
4

OC
AB

A
B
C

D
E
E

2 + 7= 9
4 + 3= 7
4 + 4= 8

BE

A
B
E

D
D
D

2 +7 =9
4+ 4 =9
7+1=8

D
D

8
8

BD
ED

D
E

T
T

8+5=13
7+7=14

13

DT

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
O
A
B

net-flow
=C4+C5+C6
=-C4+C7+C8
=-C5C7+C9+C10+C11-

C
D
E
T

C12
=-C6-C9+C13+C12
=-C8C10+C14+C15-C16
=-C14C13+C16+C17
=-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

-XOA+XAB+XAD =0

!(node O)
!(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

OBJECTIVE FUNCTION VALUE


1)

13.00000

VARIABLE
XOA
XOB
XOC
XAB
XAD
XBC
XCB
XBD
XBE
XCE
XED
XDE
XDT
XET
ROW
2)
3)
4)
5)
6)
7)
8)

VALUE
1.000000
0.000000
0.000000
1.000000
0.000000
0.000000
0.000000
1.000000
0.000000
0.000000
0.000000
0.000000
1.000000
0.000000
SLACK OR SURPLUS
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000

NO. ITERATIONS=

REDUCED COST
0.000000
1.000000
1.000000
0.000000
1.000000
2.000000
0.000000
0.000000
0.000000
0.000000
0.000000
9.000000
0.000000
1.000000
DUAL PRICES
0.000000
2.000000
4.000000
3.000000
8.000000
7.000000
13.000000

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
7

4
1
Asal
O

D
5

T
8

4
5

Tujuan

E
5

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
O-A-B-D1 T
O-A-B-E2 D-T

jara
k
16
16

Node-1

1
2

O
O
A
C

Node
terdek
at
A
C
B
B

A
B

D
E

Jarak
total
4
5
4+1 5
5+2 7
1
4+7 1
5+4 9
1
5+5 0
1
5+5 0
1
9+1 0
10+ 1
6
6
10+ 1
8
8

Jarak
minim
al
4
5
1
2

Node
terak
hir
A
C
B

7
4

Caban
g
terakh
ir
OA
OC
AB

BE

5
5

BD

ED

DT

A
7

4
1
Asal
O

D
5

T
8

4
5

Tujuan

E
5

Perhitungan dengan penggunaan program excel-solver


Dar K
Masuk
i
e
rute
Jarak
Node
O
A
1
4
O
O
B
0
6
A
O
C
0
5
B
A
B
1
1
C
A
D
0
7
D
B
C
0
2
E
B
D
1
5
T
B
E
0
4

Netflow
1
0
0
0
0
0
-1

Supply/deman
d
1
0
0
0
0
0
-1

C
C
D
D
E
E

B
E
E
T
D
T

0
0
0
1
0
0

2
5
1
6
1
8

Nilai terpendek

16

3,5

A
4,6

3,4

3,4

3,6

Origin
4,7
SE

3,2

Destination
3,6
LN

3,3
4,2
3,8

3,5
C

3,4

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

N Node
-1

Node
terde
kat

Jml waktu

Lama
penerbang
an

Node
terakhi
r

Caban
g
terakh

ir
1

SE
SE
SE

A
B
C

LN

LN

LN

3.5+4
.6
3.6+4
.7
3.4+4
.6
3.2+4
.7
3.5+4
.2
3.3+4
.7
3.4+4
.2
3.4+8
.1
3.6+7
.7
3.8+7
.6

4.6
4.7
4.2

4.2

OC

8.1

8.1

AD

8.3
8
7.9

7.9

7.7

7.7

CE

7.6

CF

11.3

LN

ELN

8
7.6
11.
5
11.
3
11.
4

Rute
SE - C - E - LN

3,5

SE

4,6

3,4

Origin

3,6

4,7

D
3,4
Destination

3,2

jarak
11.3

3,6

LN

3,3
4,2
3,8

3,5
C

3,4

Da
ri

K
e

SE
SE
SE
A
A
B
B
B
C
C

A
B
C
D
E
D
E
F
E
F
L
N
L
N
L
N

D
E
F

Masu
k
rute
0
0
1
0
0
0
0
0
1
0

Lama
penerban
gan
4.6
4.7
4.2
3.5
3.4
3.6
3.2
3.3
3.5
3.4

3.4

3.6

3.8

Nilai terpendek

Nod
e

Netflow

SE
A
B
C
D
E
F
LN

1
0
0
0
0
0
0
-1

Suppl
y/dem
and
1
0
0
0
0
0
0
-1

11.3
0

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,leasedline 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,

min
i 1

x
j 1

c
j 1

ij

ij

xij

x ji 1 untuk setiap node i


j 1

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;
D
842

1616
1093
E

2396
A

702

2136
B

1137
2180

454

324

C
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
13]- 2 X34
14]- 4 X45
15] X15 +
16]- 2 X25
17]- 2 X35
18]- 2 X45
19] X12 +
20] 3 X12
21] 3 X13
22] 3 X14
23] 3 X15
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
SUB U( 2
SLB U( 3
SUB U( 3
SLB U( 4
SUB U( 4
SLB U( 5
SUB U( 5

- 4
- 4
- 2
X25
- 4
- 4
- 4
X13
+ U
+ U
+ U
+ U

X42 +
X43 +
X54 + X35
X52 +
X53 +
X54 +
+ X14
2 <=
3 <=
4 <=
5 <=

U2 - U4 >=
U3 - U4 >=
U4 + U5 >=
+ X45 = 1
U2 - U5 >=
U3 - U5 >=
U4 - U5 >=
+ X15 >= 1
4
4
4
4

- 3
- 3
- 3
- 3
- 3
- 3

1.000
999999.000
1.000
999999.000
1.000
999999.000
1.000
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
842 1093 1137
0 1616
2396 2136 2180 1616
0
; !from Mon;

!from Cin;
!from Hou;
!from LA;

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
N
U( 1)
U( 2)
U( 3)
U( 4)
U( 5)
DIST( 1, 1)
DIST( 1, 2)
DIST( 1, 3)
DIST( 1, 4)
DIST( 1, 5)
DIST( 2, 1)
DIST( 2, 2)
DIST( 2, 3)
DIST( 2, 4)

Value
5.000000
0.000000
2.000000
1.000000
1.000000
2.000000
0.000000
702.0000
454.0000
842.0000
2396.000
702.0000
0.000000
324.0000
1093.000

Reduced Cost
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000

DIST(
DIST(
DIST(
DIST(
DIST(
DIST(
DIST(
DIST(
DIST(
DIST(
DIST(
DIST(
DIST(
DIST(
DIST(
DIST(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(

2,
3,
3,
3,
3,
3,
4,
4,
4,
4,
4,
5,
5,
5,
5,
5,
1,
1,
1,
1,
1,
2,
2,
2,
2,
2,
3,
3,
3,
3,
3,
4,
4,
4,
4,
4,
5,
5,
5,
5,
5,

5)
1)
2)
3)
4)
5)
1)
2)
3)
4)
5)
1)
2)
3)
4)
5)
1)
2)
3)
4)
5)
1)
2)
3)
4)
5)
1)
2)
3)
4)
5)
1)
2)
3)
4)
5)
1)
2)
3)
4)
5)

2136.000
454.0000
324.0000
0.000000
1137.000
2180.000
842.0000
1093.000
1137.000
0.000000
1616.000
2396.000
2136.000
2180.000
1616.000
0.000000
0.000000
0.000000
1.000000
1.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
1.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
1.000000
0.000000
0.000000
0.000000
0.000000
0.000000

Row
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

Slack or Surplus
0.000000
3236.000
0.000000
0.000000
2.000000
3.000000
0.000000
0.000000
3.000000
4.000000
0.000000
4.000000
3.000000
0.000000
0.000000
3.000000
2.000000
0.000000

0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
702.0000
454.0000
842.0000
2396.000
702.0000
0.000000
324.0000
1093.000
2136.000
454.0000
324.0000
0.000000
1137.000
2180.000
842.0000
1093.000
1137.000
0.000000
1616.000
2396.000
2136.000
2180.000
1616.000
0.000000
Dual Price
0.000000
-1.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000

19
20
21
22
23

1.000000
2.000000
0.000000
0.000000
2.000000

0.000000
0.000000
0.000000
0.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 pabrikpabriknya.
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

3
1

Dari
1
1
1
2
3
3
3
4
5
6

Ke
2
3
4
5
4
5
6
6
7
7

Flow
4
4
1
4
1
0
3
2
4
5

Maximum Flow

Kapasit

Nod

Net-

Supply/dema

as
6
4
1
4
3
1
3
4
4
9

flow

nd

Flow: 1 2 5 7

=4

1367

=3

13467

=1

1
2
3
4
5
6
7

9
0
0
0
0
0
-9

0
0
0
0
0

1467

=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


Kind of
Supply Nodes
Application
Operasi jaringan
Sumber barangdistribusi
barang

flow problems
Transshipmen
t Nodes
fasilitas
penyimpanan
sementara
Processing
facilities

Demand
Nodes
Customers

Solid waste
management

Sources of solid
waste

Landfill locations

Operation of a
supply network

Vendors

Intermediate
Gudang

Processing
facilities

Coordinating
product mixes at
Plants

plants

Production of a
specific product

Market untuk a
specific product

Cash flow
management

Sources of cash at a Short-term


specific time
investment options

Needs untuk cash at


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 O RM U L A S 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

min
i 1

c
j 1

j 1

j 1

ij

xij

xij x ji bi , untuk setiap node i


0 xij uij untuk setiap cabang(i, j)

node
A
B
C
D
E

net flow
=C3+C4+C5
=-C3+C6
=-C4-C6+C7
=-C5+C8-C9
=-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

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=

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
dari
Plant 1
Plant 2

Ongkos angkut per unit


Gudang 1
Gudang 2
$425
$560
$510
$600

Kapasitas angkut
Gudang 1
Gudang 2
125
150
175
200

Output
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.

Biaya
Dari
Plan1
Plan1
Plan2
Plan2
W1
W1
W1
W2
W2
W2

Ke
W1
W2
W1
W2
Ro1
Ro2
Ro3
Ro1
Ro2
Ro3

Flow
125
75
125
175
25
150
75
125
50
75

Kapasitas
<=
125
<=
150
<=
175
<=
200
<=
100
<=
150
<=
100
<=
125
<=
150
<=
75

perunit
425
560
510
600
470
505
490
390
410
440
457375.0

TOTAL COST

01

Node
Plan1
Plan2
W1
W2
Ro1
Ro2
Ro3

Net-flow
200
300
0
0
-150
-200
-150

Supply/demand
200
300
0
0
-150
-200
-150

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
XP1W2
XP2W1
XP2W2
XW1RO1

>=

>=
>=
>=
>=
0

0
0
0
0

XW1RO2
XW1RO3
XW2RO1
XW2RO2
XW2RO3
END

>=
>=
>=
>=
>=

0
0
0
0
0

Penyelesaian dengan software Lindo

node
O
A
B
C
D
E
T

net flow
=C3+C4+C5
=-C3+C6+C7
=-C4C6+C8+C9+C10
=-C5-C8+C11
=-C7-C9+C12-C13
=-C10C11+C13+C14
=-C12-C14

Target sel F15=C4+C3+C5

Contoh

Exp 11.hal 530


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

South
bend
164
201
113

58
79
303

196

196

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
U2-U4+5X24
U2-U5+5X25
U3-U2+5X32
U3-U4+5X34
U3-U5+5X35
U4-U2+5X42
U4-U3+5X43
U4-U5+5X45
U5-U2+5X52
U5-U3+5X53
U5-U4+5X54

<=4
<=4
<=4
<=4
<=4
<=4
<=4
<=4
<=4
<=4
<=4
<=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

NEW INTEGER SOLUTION OF 668.000000


BOUND ON OPTIMUM: 557.8000
FLIP X34 TO >=
1 AT 2 WITH BND=
SET X43 TO <= 0 AT 3, BND= -704.0
DELETE
X43 AT LEVEL 3
DELETE
X34 AT LEVEL 2
FLIP X25 TO >=
1 AT 1 WITH BND=
SET X34 TO >= 1 AT 2, BND= -557.8
SET X43 TO <= 0 AT 3, BND= -658.4
SET X23 TO <= 0 AT 4, BND= -658.4
SET X32 TO <= 0 AT 5, BND= -658.4
SET X52 TO <= 0 AT 6, BND= -668.0
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=

TWIN= -578.6
AT BRANCH

616

-557.79999
TWIN= -672.8
629
TWIN=-0.1000E+31 637
TWIN=-0.1000E+31 637
TWIN=-0.1000E+31 637
TWIN=-0.1000E+31 643

27 PIVOTS=

OBJECTIVE FUNCTION VALUE


668.0000

VARIABLE
VALUE
X11
0.000000
X12
0.000000
X13
0.000000
X14
0.000000
X15
1.000000
X21
0.000000
X22
0.000000
X23
0.000000
X24
1.000000
X25
0.000000
X31
1.000000
X32
0.000000
X33
0.000000
X34
0.000000
X35
0.000000
X41
0.000000
X42
0.000000
X43
1.000000
X44
0.000000

23 PIVOT

-578.59998
TWIN=-0.1000E+31

LAST INTEGER SOLUTION IS THE BEST FOUND


RE-INSTALLING BEST SOLUTION...

1)

606

REDUCED COST
1000.000000
132.000000
217.000000
164.000000
58.000000
132.000000
1000.000000
290.000000
201.000000
79.000000
217.000000
290.000000
1000.000000
113.000000
303.000000
164.000000
201.000000
113.000000
1000.000000

669

606

X45
X51
X52
X53
X54
X55
U2
U3
U4
U5

0.000000
0.000000
1.000000
0.000000
0.000000
0.000000
1.000000
3.000000
2.000000
0.000000

196.000000
58.000000
79.000000
303.000000
196.000000
1000.000000
0.000000
0.000000
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

Pabrik 1
Pabrik 2
Distribution center
Alokasi

Distribution
center
3
4

Gudang 1
7

2
60

Gudang 2

9
4
90

(a) Formulasikan model network untuk problem ini sebagai minimum


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

Output
80
70

Anda mungkin juga menyukai