sirkit Euler - SYAFDI MAIZORA

Download Report

Transcript sirkit Euler - SYAFDI MAIZORA

GRAPH EULER DAN
PERMASALAHAN TUKANG POS
OLEH
Syafdi Maizora
Jembatan Konigsberg
Sebuah sirkit di graph G yang memuat semua titik G disebut sirkit Euler
Jika graph G memuat sirkit Euler, maka graph G disebut graph Euler
Sebuah jejak-buka yang memuat semua sisi graph disebut jejak Euler
Graph G disebut graph semi-Euler jika G memuat jejak Euler
Contoh :
V2
V3
V2
V2
V4
V1
V1
V3
V5
V5
V1
V6
V4
V4
G1
G3
G2
G1 graph Euler, G2 graph semi-Euler, G3 bukan Euler dan bukan semi-Euler
V3
Karakterisasi Graph Euler dan Semi-Euler
Teorema6.1:
Misalkan G graph terhubung. Graph G Euler jika dan hanya jika setiap titik G berderajat
genap
Teorema 6.2 :
Misalkan G graph terhubung. Graph G semi-Euler jika dan hanya jika G memuat tepat
dua titik berderajat ganjil. Lebih jauh, jejak Euler di G berawal di
sebuah
titik
berderajat ganjil dan berakhir di sebuah titik berderajat ganjil yang lainnya.
Bagaimana cara mengkonstruksi sebuah sirkit Euler pada graph Euler
Algoritma Fleury
Algoritma Fleury digunakan untuk mengkonstruksi sebuah sirkit Euler pada graph Euler.
Langkah-langkah algoritma Fleury adalah :
INPUT : Graph Euler G
STEP 1 : Pilih sebuah titik vo di graph G. Tulis Jo = vo
STEP 2 : Misalkan jejak = (vo, e1, v1,…,vi-1, ei, vi )telah terpilih. Selanjutnya, pilih sebuah
sisi dari E(G)-{e1, e2,…, ei} sedemikian hingga:
(i) sisi ei+1 terkait di titik vi dan
(ii) sisi ei+1 bukan sisi-pemutus pada graph Gi dengan Gi =G-{e1, e2,…, ei}, kecuali
tidak ada pilihan lain. Tulis jejak Ji +1= Ji  {ei}
STEP 3 : STOP bila STEP 2 tidak bisa dilanjutkan; dan beri pesan: “Ji +1 adalah jejak Euler
tutup (sirkit Euler) di graph G”
Contoh penerapan Algoritma Fleury
V1
V5
V2
V6
V3
V7
Sirkit yang terbentuk adalah…..(klik gambar berikut)
V4
V8
Bagaimana cara mengkonstruksi sebuah jejak Euler pada graph semi-Euler ?
Algoritma Fleury yang dimodifikasi
Algoritma Fleury yang dimodifikasi digunakan untuk mengkonstruksi sebuah jejak Euler
pada graph semi-Euler.
Langkah-langkah algoritma Fleury adalah :
INPUT : Graph semi-Euler G
STEP 1 : Pilih sebuah titik vo yang berderajat ganjil di graph G. Tulis Jo = vo
STEP 2 : Misalkan jejak = (vo, e1, v1,…,vi-1, ei, vi )telah terpilih. Selanjutnya, pilih sebuah
sisi dari E(G)-{e1, e2,…, ei} sedemikian hingga:
(i) sisi ei+1 terkait di titik vi dan
(ii) sisi ei+1 bukan sisi-pemutus pada graph Gi dengan Gi =G-{e1, e2,…, ei}, kecuali
tidak ada pilihan lain. Tulis jejak Ji +1= Ji  {ei}
STEP 3 : STOP bila STEP 2 tidak bisa dilanjutkan; dan beri pesan: “Ji +1 adalah jejak Euler
buka di graph G”
Contoh penerapan Algoritma Fleury yang dimodifikasi
V8
V2
V4
V6
V10
V3
V7
V9
V5
V1
Jejak buka yang terbentuk adalah…..(klik gambar berikut)
Permasalahan Tukang Pos
Seorang Tukang Pos mempunyai tugas rutin mendistribusikan surat dalam suatu
wilayah tertentu. Setiap hari dia harus berkeliling menelusuri semua jalan dalam
daerah tersebut untuk mendistribusikan surat-surat, berangkat dari kantor pos
dan kembali ke kantor pos. Mungkinkah Pak Pos menelusuri setiap jalan tepat satu
kali? Kalau mungkin, bagaimanakah caranya? Kalau tidak, jalan-jalan manakah
yang harus dilewati lebih dari satu agar total jarak yang dia tempuh minimum?
Untuk menjawab permasalahan ini, jaringan jalan di wilayah pendstribusian dapat
dimodelkan dengan sebuah graph-bobot. Titik graph berkorespondensi dengan
persimpangan jalan, dan sisi graph berkorespondensi dengan jalan yang
menghubungkan dua persimpangan. Bobot sisi berkorespondensi dengan panjang
jalan yang diwakili oleh sisi tersebut. Dalam hal ini, kantor pos dipresentasikan
dengan sebuah titik.
Jika graph yang diperoleh adalah graph Euler, maka Tukang Pos dapat menelusuri
semua jalan dengan sedemikian hingga setiap jalan dilewati tepat satu
kali,berawal dan berakhir di kantor pos.
Berikut adalah ilustrasi untuk graph model tepat memiliki dua ganjil.
Misalkan graph model G yang diperoleh terhubung dan memiliki tepat dua titik
berderajat ganjil, yaitu u dan v. Dengan algoritma Dijkstra, dapat dicari sebauh
lintasan terpendek P yang menghubungkan titik u dan titik v di graph G. Bentuk G’
dari G dengan menduplikat semua sisi G sepanjang lintasan P. Jelas bahwa G’
berupa graph Euler, karena setiap titik berderajat genap.
Dengan menelusuri sirkit Euler di G’ yang berawal dan berakhir titik yang
berkorespondensi dengan kantor pos, dengan catatan, menelusuri sisi duplikat
berarti menelusuri sisi yang diduplikat, akan diperoleh jalan tutup dengan panjang
minimum. Total panjang jalan yang ditempuh adalah w(G) + w(P).
Sebagai contoh, perhatikan graph bobot G pada gambar berikut yang mempresentasikan
suatu jaringan jalan disekitar kantor pos tertentu.
V2
4
V1
1
V3
4
3
1
V4
V7
5
2
V6
2
1
2
5
1
V8
1
V5
5
V10
1
5
2
2
V9
Dengan menggunakan algoritma Dijkstra, diperoleh lintasan terpendek dari v1 ke v10
yakni P=(v1,v4,v5,v6,v7,v8,v10). Selanjutnya, dibentuk graph G’ dari graph G dengan
menduplikat sisi-sisi G sepanjang lintasan P seperti gambar berikut ini:
V2
4
V1
1
V3
4
3
1
V4
V7
5
2
V6
2
1
2
5
1
V8
1
V5
5
V10
1
5
2
2
V9
Maka diperoleh jalan tutup J = (v5, v3, v4, v1, v2, v3, v1, v4, v9, v5, v4, v5, v6, v2, v7, v6, v8,
v7, v10, v8, v9, v10, v8, v7, v6, v5). Jadi panjang jalan J adalah w(G) + W(P) = 50+9 = 59