GRAPH EULER DAN PERMASALAHAN TUKANG POS
description
Transcript of GRAPH EULER DAN PERMASALAHAN TUKANG POS
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 EulerContoh :
V5
V4
V3
V2
V1
V4
V3
V2
V1
G2G3G1
V6
V5
V4
V3V2
V1
G1 graph Euler, G2 graph semi-Euler, G3 bukan Euler dan bukan semi-Euler
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 FleuryAlgoritma Fleury digunakan untuk mengkonstruksi sebuah sirkit Euler pada graph Euler.Langkah-langkah algoritma Fleury adalah :INPUT : Graph Euler GSTEP 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”
Sirkit yang terbentuk adalah…..(klik gambar berikut)
Contoh penerapan Algoritma Fleury
V7 V8
V2 V3 V4
V5 V6
V1
Bagaimana cara mengkonstruksi sebuah jejak Euler pada graph semi-Euler ?
Algoritma Fleury yang dimodifikasiAlgoritma Fleury yang dimodifikasi digunakan untuk mengkonstruksi sebuah jejak Euler pada graph semi-Euler.Langkah-langkah algoritma Fleury adalah :INPUT : Graph semi-Euler GSTEP 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”
Jejak buka yang terbentuk adalah…..(klik gambar berikut)
Contoh penerapan Algoritma Fleury yang dimodifikasi
V6V8
V10
V9V7
V4
V2
V5
V3
V1
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.
22
5
5
5
5
2
2
2
1
1
1
1
1
13
4
4V8
V9
V10
V7
V6
V5
V4
V3
V2
V1
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
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:
22
5
5
5
5
2
2
2
1
1
1
1
1
13
4
4V8
V9
V10
V7
V6
V5
V4
V3
V2
V1