Definisi 29 Graf bipartite
Graf dikatakan bipartite jika dapat
dipartisi menjadi dua subhimpunan takkosong
1
dan
2
sehingga setiap sisi di menghubungkan suatu verteks di
1
dengan verteks di
2
. Chartrand Oellermann 1993
9
: v
1
v
3
v
5
v
2
v
4
V
1
V
2
Gambar 23 Graf bipartite. Graf
9
pada Gambar 23 merupakan graf bipartite
dengan
1
=
1
,
3
,
5
dan
2
=
2
,
4
.
Definisi 30 Graf r-regular
Sebuah graf merupakan graf -regular,
atau graf regular berderajat , jika setiap
verteks pada graf memiliki derajat . Chartrand Oellermann 1993
Graf
4
pada Gambar 11, merupakan graf regular berderajat 3 karena setiap verteks
memiliki derajat 3. Definisi 31 Matching
Matching pada sebuah graf merupakan subgraf 1-regular, yaitu berupa himpunan sisi-
sisi yang tidak adjacent. Chartrand Oellermann 1993
e
5
e
1
e
2
e
4
e
3
v
1
v
3
v
4
v
2
v
5
Gambar 24 Graf dengan matching. = {
1
,
4
} adalah salah satu matching pada graf di Gambar 24.
Definisi 32 Matching yang perfect
Graf ber-order yang mempunyai
matching berkardinalitas 2, maka matching
tersebut dikatakan matching yang perfect. Chartrand Oellermann 1993
e
1
e
2
e
3
e
4
v
1
v
3
v
4
v
2
Gambar 25 Graf dengan matching perfect. Graf pada Gambar 25 ber-order 4 dan
1
= {
1
,
3
} merupakan
matching berkardinalitas 2, sehingga
1
adalah matching yang perfect.
Definisi 33 Matching berbobot minimum
Matching berbobot minimum merupakan matching dengan jumlah bobot pada sisinya
adalah minimum. Chartrand Oellermann 1993
Ilustrasi matching yang perfect dapat
dilihat pada graf Gambar 3, yaitu
2
=
1
,
2
,
3
,
4
dengan bobot 7,
3
=
1
,
4
,
2
,
3
dengan bobot 10. Jadi,
2
adalah matching yang perfect dengan bobot minimum.
2.2 Graf Euler
Leonhard Euler 1707-1783 lahir di Swiss. Ia dipandang sebagai salah satu
matematikawan terbesar sepanjang masa. Euler menyumbangkan berbagai penemuan
penting di berbagai bidang antara lain kalkulus dan teori graf.
Graf Euler
merupakan salah
satu penemuan Euler yang terkenal di bidang teori
graf. Berikut ini akan dijelaskan beberapa definisi yang berkaitan dengan graf Euler
yang dipakai dalam karya ilmiah ini. Definisi 34 Lintasan Euler
Lintasan Euler adalah lintasan yang melewati semua sisi pada graf
3
tepat satu kali. Karena setiap sisi hanya boleh dilewati
satu kali, maka lintasan Euler sering juga disebut trail Euler.
Vasudev 2006 Pada Gambar 5 lintasan Euler dari graf
3
salah satunya ialah E
L
= v
2
e
3
v
3
e
2
v
1
e
1
v
2
e
4
v
4
e
6
v
5
e
5
v
3.
Definisi 35 Sirkuit Euler
Sirkuit Euler adalah lintasan Euler yang tertutup.
Vasudev 2006
Ilustrasi sirkuit Euler bisa dilihat pada Gambar 26. Sirkuit Euler yang diperoleh
salah satunya ialah = v
1
e
1
v
3
e
4
v
5
e
3
v
4
e
2
v
3
e
5
v
2
e
6
v
1
.
e
3
e
2
e
1
e
6
e
5
e
4
v
1
v
4
v
3
v
2
v
5
Gambar 26 Graf Euler.
Definisi 36 Graf Euler
Graf yang memiliki sirkuit Euler disebut graf Euler.
Vasudev 2006 Ilustrasi graf Euler bisa dilihat pada
Gambar 26. Graf pada Gambar 26 merupakan graf Euler, karena graf tersebut memiliki
sirkuit Euler.
Selanjutnya akan diberikan teorema- teorema yang digunakan sebagai dasar
pengerjaan karya ilmiah ini.
Teorema 1
Suatu graf merupakan graf Euler jika dan hanya jika setiap verteks pada graf tersebut
berderajat genap. Chartrand Oellermann 1993
Teorema 2
Suatu digraf terhubung yang takkosong adalah digraf Euler jika dan hanya jika d
+
v
i
= d
–
v
i
untuk setiap verteks pada digraf
balans. Chartrand Oellermann 1993
2.3 Penentuan Path Terpendek dengan
Algoritme Dijkstra
Algoritme Dijkstra dapat digunakan untuk mencari path terpendek atau jarak terpendek
pada graf atau digraf atau graf campuran yang tidak berbobot maupun yang berbobot pada
graf ber-order . Misalkan diberikan graf
berbobot = ,
dengan himpunan
= {1,2,3, … . } dan bobot pada tiap
verteksnya taknegatif. Pada setiap langkah dalam algoritme didefinisikan sebuah variabel
PARENTv yang menyatakan verteks yang mendahului verteks v pada path terpendek
− yang telah diperoleh. Variabel PARENTv diperbaharui jika ditemukan path
− yang lebih pendek. Misalkan adalah himpunan semua verteks dari yang jaraknya
dengan
sudah diketahui.
Langkah –langkah pada algoritme Dijkstra
untuk menentukan jarak dari ke setiap
verteks di sebagai berikut: Langkah 1. Inisialisasikan
sebuah verteks awal
dengan jarak = 0,
← 0, ← { },
′
← − { }, dan
jarak verteks lainnya bernilai ∞ untuk
semua ∈ − {
}, PARENT ←
; jika
= 1, maka proses dihentikan; lainnya, proses dilanjutkan.
Langkah 2. Untuk setiap
∈
′
sehingga ,
∈ , diperiksa: jika +
, maka
proses dilanjutkan; lainnya,
← + ,
dan PARENT ← .
Langkah 3. Ditentukan m = min{lv| v ∈
′
}. Jika ∈
′
dipilih sebagai verteks dengan
= , maka adalah jarak
antara dengan , dan
+1
← . Langkah 4. Pembaharuan
dan
′
, yaitu
← ∪
+1
, dan
′
←
′
−
+1
. Langkah 5.
← + 1. Jika = − 1, maka berhenti. Jika tidak, kembali ke
Langkah 2. Chartrand
Oellermann 1993 Contoh Penggunaan Algoritme Dijkstra
Berikut ini contoh penggunaan algoritme Dijkstra pada graf berbobot dan tidak berarah.
10
:
7
6 7
6 8
9 4
7
9 3
6 7
5 10
4 5
1 3
4 8
7 6
2
Gambar 27 Graf berbobot dan tidak berarah. Akan ditentukan jarak terpendek dari satu
verteks ke verteks lainnya. Misalkan verteks awalnya adalah verteks
= 1, maka dengan algoritme
Dijkstra penghitungan
lebih lengkap dapat dilihat pada Tabel 1 akan
diperoleh path terpendek dari verteks 1 menuju verteks lainnya.
Tabel 1 Penentuan path terpendek dimulai dari verteks = 1
Iterasi l1
l2 l3
l4 l5
l6 l7
l8 Penambahan
S ∞,–
∞,– ∞,–
∞,– ∞,–
∞,– ∞,–
1 1
9,1 7,1
5,1 7,1
∞,– ∞,–
∞,– 4
2 9,1
7,1 –
7,1 13,4
14,4 ∞,–
3 3
9,1 –
– 7,1
13,4 14,4
17,3 5
4 9,1
– –
– 13,4
13,5 17,3
2 5
– –
– –
13,4 13,5
16,2 6
6
– –
– –
– 13,5
16,2 7
7
– –
– –
– –
16,2 8
Dari Tabel 1, dapat diketahui beberapa path terpendek dari verteks
= 1 ke verteks lainnya. Contohnya path terpendek dari
verteks = 1 menuju verteks 6, yaitu path
terpendek �
1
= 1 − 4 − 6 dengan jarak 13,
untuk path terpendek dari verteks = 1
menuju verteks 8 ialah �
2
= 1 − 2 − 8
dengan jarak 16. 2.4 Penentuan
Minimum Bipartite
Matching dengan Metode Hungaria
Misalkan ada karyawan dan
pekerjaan. Notasi
= 1,2, … , menunjukkan karyawan ke- dan notasi
= 1,2, … , menunjukkan pekerjaan ke- . Jika banyaknya karyawan sama dengan
banyaknya pekerjaan,
maka dengan
mempertimbangkan aspek tertentu seperti pengoptimalan profit keuntungan yang
didapat dari penempatan
karyawan terhadap pekerjaan dikenal dengan masalah
penugasan optimal.
Masalah penugasan
assignment problem adalah suatu masalah mengenai
pengaturan objek
untuk melaksanakan
tugas, dengan
tujuan meminimalkan biaya, waktu, jarak, dan
sebagainya ataupun
memaksimalkan keuntungan yang salah satu penyelesaiannya
menggunakan metode Hungaria. Misalkan
graf bipartite,
sehingga himpunan karyawan dianggap sebagai
1
dan himpunan pekerjaan sebagai
2
. Misalkan adalah biaya yang diperlukan ketika karyawan
ditugaskan untuk menyelesaikan pekerjaan . Untuk mencari solusi dari masalah penugasan
optimal yang dinyatakan sebagai graf bipartite adalah dengan menerapkan konsep matching.
Tabel 2 memberikan gambaran umum dari model penugasan ini.
Tabel 2 Tabel biaya
yang berhubungan
dengan model penugasan
Kar y
awa n
Pekerjaan 1
2 1
11 12
1
2
21 22
2 1
2
Metode ini dimulai dengan mengurangi setiap elemen pada baris dengan nilai
minimum baris tersebut, kemudian setiap elemen kolom dari tabel yang dihasilkan
dikurangi dengan nilai minimum kolom tersebut. Tabel biaya yang dihasilkan akan
memuat paling sedikit satu nol pada setiap baris dan kolom. Semua elemen tabel yang
dihasilkan
bernilai taknegatif.
Dengan elemen-elemen nol ini akan ditentukan suatu
penugasan yang fisibel yaitu pada matriks yang dihasilkan tersebut dapat dipilih tepat 1
nol pada setiap baris dan 1 nol pada setiap kolom. Jika itu mungkin maka penugasan itu
optimal, karena elemen-elemen biaya adalah taknegatif dan nilai minimum fungsi tujuan
lebih kecil daripada nol sehingga suatu penugasan dengan biaya nol adalah optimum.
Jika penugasan yang fisibel pada elemen- elemen nol tidak diperoleh, maka aturan lebih
lanjut diperlukan
untuk menemukan
penugasan yang fisibel. Aturan tersebut diberikan sebagai berikut:
1 Sejumlah minimum garis yang melalui
beberapa baris dan kolom digambarkan sedemikian sehingga menutup semua
elemen nol. Sejumlah minimum garis yang dibutuhkan adalah sama dengan
jumlah maksimum pekerja yang dapat ditugaskan dengan menggunakan elemen
nol.
2. Pilih elemen minimum yang tidak tertutupi garis, elemen ini dikurangi dengan setiap
baris elemen yang tidak tertutupi garis dan ditambahkan ke setiap elemen yang berada
di titik potong antara dua garis. Jika solusi optimum tidak ditemukan dalam langkah
di atas, prosedur penggambaran garis tersebut harus diulangi sampai satu
penugasan yang fisibel diperoleh. Untuk menyelesaikan masalah penugasan
dengan tujuan memaksimumkan, masalah diubah ke masalah meminimumkan sebelum
diaplikasikan ke metode Hungaria, yaitu dengan cara mengalikan semua elemen
dari matriks penugasan dengan −1.
Ravindran et al. 1987.
Contoh Penggunaan Metode Hungaria
Diberikan tabel biaya sebagai berikut: 1
2 3
1 3
6 8
2 6
4 3
3 1
5 4
Dengan metode Hungaria Lampiran 1 didapatkan Minimum Bipartite Matching pada
tabel berikut.
1 2
3 1
3 2
5 3
1 1
Tabel terakhir
memberikan biaya
minimum yang ditunjukkan dengan elemen nol yang diberi kotak, yaitu elemen 1,2,
2,3, 3,1 sehingga diperoleh minimum dari bipartite matching, yaitu himpunan sisi
{{1,2}, {2,3}, {3,1}} dengan total biayanya adalah 6 + 3 + 1 = 10.
2.5 Penentuan Minimum Spanning Tree dengan Algoritme Prim