Algorithm+untuk+shortest
-
Upload
liya-permatasari -
Category
Education
-
view
10 -
download
0
Transcript of Algorithm+untuk+shortest
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 r ij, 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 tersambung langsung dengan node yang belum terselesaikan
Node terdekat
Jarak Total node yang secara langsung tersambung
Node terdekat ke- n
Jarak minimum
Cabang terakhir
1 O A 2 A 2 OA
2,3
OA
CB
42+2=4
CB
44
OCAB
4 ABC
DEE
2 + 7= 94 + 3= 74 + 4= 8
E 7 BE
5 ABE
DDD
2 +7 =94+ 4 =97+1=8
DD
88
BDED
6 DE
TT
8+5=137+7=14
T 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
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
MINIMUM SPANNING TREEMinimum 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,
Xij={0,1}
MAXIMUM FLOW PROBLEMSecara 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 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.