Anda di halaman 1dari 12

Teori Graph 33

BAB 3
MATCHING PADA GRAF BIPARTIT

Diberikan sebuah graf G dan kita akan mencari berapa banyak sisi bebas
(independent edge) dalam G, yaitu sisi-sisi G yang tidak saling bertetangga satu
dengan yang lain. Apakah sisi bebas ini memuat semua simpul dalam G? Syarat
apa yang harus dipenuhi oleh G agar kondisi tersebut terpenuhi? Pada bab ini kita
akan membahas matching pada graf G, khususnya graf bipartit karena matching
pada graf bipartit mempunyai banyak aplikasi. Salah satunya adalah untuk
menyelesaikan masalah penugasan. Akan dibahas pula bagaimana mencari
matching dengan ukuran maksimum pada graf G.

A. GRAF BIPARTIT
Suatu graph G = (V,E) disebut graf bipartit (bipartite graph) jika himpunan
simpul V pada G dapat dipartisi menjadi dua himpunan V1 dan V2 sedemikian
sehingga setiap sisi di G menghubungkan sebuah simpul di V1 dan sebuah simpul
di V2. Dengan kata lain tidak ada sisi yang menghubungkan dua buah simpul pada
partisi yang sama. Misal |𝑉1 | = 𝑚, |𝑉2 | = 𝑛, dan setiap simpul di V1 bertetangga
dengan setiap simpul di V2, maka graf tersebut dinamakan graf bipartit lengkap
(complete bipartite graph), ditulis Km,n. Graf bipartit lengkap K1,n disebut graf
bintang (star graph).
Jadi sebuah graf bipartit mempunyai sifat bahwa setiap titiknya dapat
diberi warna putih atau hitam sedemikian sehingga simpu-simpul yang
bertetangga mempunyai warna yang berbeda. Jelas bahwa semua pohon adalah
graf bipartit. Untuk menjelaskan sifat tersebut, pilih sebuah simpul, kemudian beri
warna putih. Simpul yang terpilih pertama ini biasanya disebut akar (root).
Warnai semua simpul yang bertetangga dengan warna hitam. Warnai simpul yang
bertetangga dengan simpul warna hitam dengan warna putih, lanjutkan proses ini
sampai semua simpul diberi warna. Simpul-simpul yang berwarna sama berada
Matching pada graph bipartit 34

pada partisi yang sama dalam graf bipartit. Perhatikan bahwa pohon pada gambar
3.1 adalah graf bipartit. Banyaknya simpul pada setiap partisinya masing-masing
adalah 6 dan 7 simpul.

Gambar 3.1. Pohon adalah graf bipartit.

Misal G adalah graf bipartit dengan himpunan partisi simpul V1 dan V2


dengan |V1| ≥ |V2|.

1. G disebut equitable jika |V1| = |V2|.

2. G disebut nearly equitable jika |V1| − |V2| = 1.

3. G disebut skewed jika |V1| − |V2| ≥ 2.

Graf pada gambar 3.1 adalah nearly equitable. Lintasan dengan panjang n, ditulis
Pn, adalah equitable jika n genap dan nearly equitable untuk n ganjil. Untuk n
genap, sikel Cn adalah graf bipartit yang equitable. Sedangkan untuk n ganjil, Cn
bukan graf bipartit.
Bagaimana cara menentukan sebuah graf bipartit atau bukan. Algoritma
berikut ini memberikan prosedur yang sederhana untuk menentukan apakah
sebuah graf adalah graf bipartit atau bukan.

Algoritma 3.1
Misal label a dan b adalah dua label yang berbeda dari suatu graf G.
1. Ambil sembarang simpul, beri label a.
2. Beri label semua simpul yang bertetangga dengan a dengan label b.
3. Jika masih ada simpul yang belum mempunyai label dan simpul tersebut
bertetangga dengan suatu simpul v yang sudah mempunyai label, beri label
simpul tersebut dengan label yang berbeda dengan label v.
Teori Graph 35

4. Ulangi langkah 3 sampai tidak ada simpul yang tidak mempunyai label
bertetangga dengan simpul yang berlabel.
5. Jika masih terdapat simpul yang belum mempunyai label (kemungkinan
simpul ini berada pada komponen lain), pilih sembarang simpul, beri label a
dan ulangi langkah 3.
6. Cek semua label simpul. Jika semua simpul yang bertetangga mempunyai
label yang berbeda maka G graf bipartit, kemudian himpunan V1 sebagai
himpunan semua simpul dengan label a dan V2 sebagai himpunan semua
simpul berlabel b. Jika ada simpul yang bertetangga mempunyai label yang
sama, maka G bukan graf bipartit.

c d k l
n
e f m

g h o p

i j q
G H

Gambar 3.2. Graf bukan bipartit G dan graf bipartit H.

Graph G pada gambar 1.5 adalah bukan graf bipartit karena himpunan simpul
pada G tidak dapat dipartisi menjadi V1 dan V2 sedemikian sehingga tidak ada sisi
yang menghubungkan dua buah simpul pada partisi yang sama. Graf H adalah
graf bipartit dengan partisi simpul H adalah V1 = {k,p,m,q} dan V2 = {l,n,o}.
Selain dengan cara melabeli simpul, ada cara lain untuk memeriksa sebuah
graf biparti atau tidak, yaitu dengan mencari sikel-sikel pada graf tersebut. Jika
suatu graf memuat sikel ganjil, maka graf tersebut bukan graf bipartit.
Selengkapnya, disajikan dalam teorema berikut.

Teorema 3.1
Suatu graf G = (V,E) adalah bipartit jika hanya jika G tidak memuat sikel dengan
panjang ganjil.
Matching pada graph bipartit 36

Bukti:
Misal G bipartit. Misal x1x2x3. . .xt x1 adalah sikel di G. Dimisalkan pula
bahwa V1 dan V2 adalah partisi simpul G. Kita asumsikan bahwa x1 ∈ V1, maka
x2 ∈ V2, x3 ∈ V1 dan seterusnya xi ∈ V1 jika hanya jika i ganjil. Karena xt ∈ V2,
maka t genap.
Sebaliknya, Misal G tidak memuat sikel dengan panjang ganjil.
Asumsikan G terhubung. Ambil sebuah simpul x ∈ V(G) dan set V1 = {y | d(x,y)
ganjil}, V2 = V \ V1. Karena G tidak memuat sikel dengan panjang ganjil, maka
tidak ada simpul sisi di G yang menghubungkan 2 simpul pada partisi yang sama.
Jadi G graph bipartit. □

B. MATCHING PADA GRAPH BIPARTIT


Matching M dari suatu graf G adalah himpunan sisi G sedemikian
sehingga tidak ada sisi-sisi pada M yang saling bertetangga. Matching pada graf
bipartit mempunyai aplikasi yang sangat penting khususnya untuk menyelesaikan
masalah penugasan (assignment problem). Sebagai contoh,sebuah perusahaan
mempunyai sejumlah pekerja yang memenuhi kualifikasi untuk melaksanakan
sejumlah pekerjaan. Jika terdapat beberapa pekerjaan untuk diselesaikan,
bagaimana perusahaan menugaskan pekerja untuk menyelesaikan pekerjaan
tersebut dengan efisien. Masalah penugasan ini menjadi sangat penting, jika
pekeja yang ada jumlahnya terbatas. Pada bagian selanjutnya dari subbab ini, kita
akan membahas matching pada graf bipartit.
Misal G adalah graf bipartit dengan partisi simpul X dan Y. Sebuah
matching M sedemikian sehingga setiap simpul di X bersisian dengan sisi M
disebut matching lengkap (complete matching) dari X ke Y. Jika terdapat pula
matching lengkap dari Y ke X, maka M disebut matching sempurna
(perfect matching). Syarat terdapat matching lengkap dari X ke Y adalah bahwa
|X| ≤ |Y|.
Dalam aplikasinya, penting untuk menentukan apakah suatu graf bipartit
dengan partisi simpul X dan Y mempunyai matching lengkap dari X ke Y atau
tidak. Sebagai contoh, terdapat beberapa pelamar untuk menempati sejumlah
Teori Graph 37

posisi. Setiap posisi pekerjaan membutuhkan keahlian tertentu. Setiap pelamar


harus mendaftar keahlian yang dimilikinya. Masalah ini dapat direpresentasikan
dalam bentuk graf bipartit sebagai berikut. Misal himpunan simpul X menyatakan
pelamar dan himpunan simpul Y menyatakan pekerjaan. Kita gambar sisi dari
simpul x∈ X ke simpul y∈ Y jika pelamar x mempunyai keahlian yang
dibutuhkan oleh pekerjaan y. Jadi, derajat dari x menyatakan berapa banyak
pekerjaan yang dapat dilamar oleh pelamar x dan derajat y menyatakan berapa
banyak pelamar yang memenuhi kualifikasi pekerjaan y. Matching lengkap dari X
ke Y sama artinya dengan terdapat sebuah pekerjaan untuk setiap pelamar. Jika
X|< |Y|, maka akan terdapat pekerjaan yang tidak mempunyai pelamar.
Graf bipartit pada gambar 3.3 menggambarkan kondisi yang telah
dijelaskan di atas, yaitu terdapat pelamar A, B, C, dan D dan pekerjaan a, b, c, d,
dan e. Salah satu matching lengkap dari graf tersebut adalah {Aa, Bd, Cc, De}.
Matching lengkap yang lainnya adalah {Ab, Bd, Cc, De} dan {Ab, Bd, Cc, Da}.
Dari contoh tersebut, jelas bahwa pelamar c harus ditempatkan untuk posisi
pekerjaan c. Pada bagian selanjutnya pada bab ini akan dijelaskan bagaimana
mencari matching dengan ukuran maksimum pada suatu graf bipartit.

a
A
b
B
c
C
d
D
e

Gambar 3.3

M disebut matching maksimum (maximum matching) dari G jika M


mempunyai kardinalitas terbesar diantara semua matching yang mungkin pada G.
Jadi jika M’ adalah matching lain pada G, maka |M’| ≤ |M|. Dengan demikian
Matching pada graph bipartit 38

sebuah matching disebut maksimum jika ukurannya tidak dapat diperbesar lagi
dengan cara menambah sisi.
Teknik yang paling penting untuk mencari matching maksimum adalah
berdasar sebuah konsep yang disebut augmenting path. Pandang sebuah matching
M pada suatu graph G. Sebuah M-alternating path di G adalah sebuah lintasan di
G yang sisi-sisinya berganti-ganti antara sisi di M dan bukan sisi M. Simpul v
disebut M-matched oleh matching M jika v bersisian dengan salah satu sisi M.
Jika tidak v disebut M-unmatched. Sebuah M-augmenting path adalah sebuah
M-alternating path yang menghubungkan dua M-unmatched simpul. Catat bahwa
M-augmenting path tidak selalu menggunakan semua sisi M. Untuk matching
pada gambar 3.4. (a), c, e, f, g adalah sebuah M-augmenting path. Jadi
M-augmenting path selalu berawal dan berakhir pada sisi yang bukan anggota M.

c dc c c
d

b e b e

a f a f

h g h g

(a) (b)

Gambar 3.4. Matching pada Graf.

Teorema berikut ini memberikan karakteristik kapan sebuah matching adalah


maksimum.

Teorema 3.2
Sebuah matching M pada suatu graf G adalah maksimum jika hanya jika G tidak
memuat M-augmenting path.
Teori Graph 39

Bukti:
Misal M adalah matching maksimum di G. Akan ditunjukan G tidak
memuat M-augmenting path. Andaikan G memuat M-augmenting path P yang
menghubungkan simpul u dan v di G. Maka panjang P adalah ganjil dengan
paling sedikit satu sisi di P bukan anggota M. Misal MP adalah himpunan sisi-sisi
P yang ada di M dan M’P adalah himpunan sisi-sisi P yang tidak ada di M.
Definisikan M’ = (M – MP) ∪ M’P , yaitu himpunan yang berisi sisi-sisi M selain
sisi MP digabung dengan sisi-sisi M’P. Jelas bahwa M’ adalah sebuah matching
pada G dan |M’| > |M|. Kontradiksi bahwa M adalah matching maksimum. Jadi, G
tidak memuat M-augmenting path.
Sebaliknya, Misal G tidak memuat M-augmenting path. Akan ditunjukan
bahwa M adalah matching maksimum. Misal M* adalah matching maksimum di
G, maka tidak ada M*-augmenting path. Pandang masing-masing komponen dari
subgraf H yang memuat semua simpul G dengan E(H) =(M – M*) ∪ (M* - M).
Maka derajat maksimum dari setiap simpul di H adalah 2. Jadi setiap komponen H
terdiri dari simpul terpencil atau sebuah lintasan dengan sisi-sisi berganti-ganti di
M atau M*, atau sikel dengan sisi berganti-ganti di M atau M*. Karena G tidak
memuat M-augmenting path maupun M*-augmenting path, maka komponen H
yang berupa lintasan mempunyai simpul awal yang bersisian dengan M dan
simpul akhir yang bersisian dengan M* atau sebaliknya. Akibatnya, lintasan di H
mempunyai panjang genap. Demikian juga sikel di H juga mempunyai panjang
genap. Ini berakibat |M| = |M*|. Jadi M adalah matching maksimum di G. □

Matching pada graf di gambar 3.4 (a) bukan matching maksimum karena
terdapat M-augmenting path, yaitu c, e, f, a, h, g. Sedang matching pada graf di
gambar 3.4 (b) adalah maksimum karena tidak terdapat M-augmenting path pada
graf tersebut. Untuk masalah berskala kecil, matching maksimum relatif mudah
untuk dicari, tetapi untuk masalah yang lebih besar, matching maksimum dicari
menggunakan algoritma pelabelan.
Sebuah matching sempurna (perfect matching) M pada graf G adalah
sebuah matching yang setiap simpul di G M-matched. Jelas bahwa hanya graf
Matching pada graph bipartit 40

yang mempunyai simpul sejumlah genap yang mempunyai matching sempurna.


Lebih jauh, jika G adalah graf bipartit dengan partisi simpul X dan Y, G memuat
matching sempurna, maka |X| = |Y| (G equitable). Syarat tersebut bukan syarat
cukup sebuah graf memuat matching sempurna. Sebagai contoh adalah graf pada
gambar 3.5, meskipun |X| = |Y| tetapi G tidak memuat matching sempurna.

Gambar 3.5. Graf bipartit equitable yang tidak memuat matching sempurna.

Pada bagian selanjutnya kita akan membahas kapan sebuah graf bipartit
memuat matching lengkap ataupun matching sempurna. Untuk suatu simpul v,
tetangga (neighborhood) v, ditulis n(v), menyatakan himpunan semua simpul
yang bertetangga dengan v. Untuk suatu himpunan simpul S pada graf G, tetangga
S adalah gabungan dari tetangga simpul-simpul di S, yaitu N(S) = ⋃𝑣∈𝑆 𝑛(𝑣).

Teorema 3.3 (Teorema Matching Hall)


Sebuah graf bipartit G dengan partisi simpul X dan Y memuat matching lengkap
dari X ke Y jika hanya jika |S| ≤ |N(S)|, untuk setiap S ⊆ X.

Bukti:
Jika G memuat matching lengkap M dari X ke Y, maka pada M, setiap
simpul di X bertetangga dengan sebuah simpul yang berbeda di Y. Ini berarti,
untuk setiap S ⊆ X, |S| ≤ |N(S)|.
Selanjutnya akan kita buktikan sebaliknya. Misal G graf bipartit dengan
|S| ≤ |N(S)|, untuk setiap S ⊆ X. Akan ditunjukkan G memuat matching lengkap
dari X ke Y. Andaikan G tidak memuat matching lengkap dari X ke Y. Misal M
adalah matching maksimum di G dan v adalah simpul M-unmatched dari X.
Dimisalkan pula X* adalah himpunan simpul-simpul X yang M-matched,Y*
Teori Graph 41

adalah himpunan simpul-simpul Y yang M-matched, dan X’ = X* ∪ {v}. Karena


{v} ∈ X dan |N({v})| ≥ |{v}| = 1, maka v mempunyai paling sedikit satu
tentangga di Y. Jika tetangga v di Y sebut v* bukan anggota Y*, maka
M’ = M ∪ {vv*} adalah sebuah matching yang ukurannya lebih besar dari M.
Kontradiksi bahwa M adalah matching maksimum. Jika v* ada di Y*, maka kita
dapat membentuk M-alternating path dari v yang dapat diperluas menjadi
M-augmenting path karena untuk setiap S ⊆ X, kita mempunyai |S| ≤ |N(S)|. Ini
berakibat M dapat diperluas menjadi sebuah matching yang ukurannya lebih besar
lagi, yang berarti pula bahwa G memuat matching lengkap dari X ke Y.
Kontradiksi, jadi G memuat matching lengkap dari X ke Y. □

Untuk |X| = |Y|, Teorema 3.3 terkenal dengan nama Teorema Perkawinan Hall
(Hall’s Marriage Theorem). Teorema ini dapat diintepretasikan sebagai berikut:
Misal terdapat himpunan wanita dan himpunan pria. Setiap subhimpunan n wanita
mengenal paling sedikit n pria. Maka kita dapat memasangkan setiap wanita
dengan tepat satu pria yang dikenalnya. Akibat berikut menjelaskan kondisi di
atas.

Akibat 3.1 (Teorema Perkawinan Hall)


Sebuah graf bipartit G dengan partisi simpul X dan Y dimana |X| = |Y|,
mempunyai matching lengkap jika hanya jika |S| ≤ |N(S)|, untuk setiap S ⊆ X.

Selanjutnya kita akan gunakan teorema 3.3 bahwa graf bipartit teratur pasti
memuat matching sempurna. Sebelumnya, akan dijelaskan lemma berikut:

Lemma 3.1
Jika G adalah graf bipartit teratur dengan partisi simpul X dan Y, maka |X| = |Y|.
Bukti:
Misal |X| = k dan G graf bipartit teratur berderajat r, maka |E(G)| = rk. Setiap rk
sisi bersisian dengan sebuah simpul di Y. Karena G graf teratur berderajat r, setiap
Matching pada graph bipartit 42

simpul di Y bersisian dengan r sisi, sehingga diperoleh r |Y| = rk. Jadi, |Y| = k
= |X|. □

Teorema 3.4
Jika G graf bipartit teratur, maka G memuat matching sempurna.

Bukti:
Misal X dan Y adalah partisi simpul dari G. Cukup dibuktikan bahwa G
memuat matching lengkap dari X ke Y yaitu dengan menunjukkan bahwa jika
diberikan sembarang subhimpunan S pada X dengan m simpul, maka banyaknya
simpul yang bertetangga dengan S di Y paling sedikit ada m. Karena setiap simpul
di S mempunyai derajat r, maka S akan bersisian dengan rm sisi, masing-masing
sisi bersisian dengan sebuah simpul di Y. Karena setiap simpul di Y berderajat r,
maka setiap simpul di Y akan bersisian dengan r sisi yang masing-masing sisi
bersisian dengan sebuah simpul di X. Dengan demikian, tetangga S harus ada
paling sedikit m simpul. Jadi, |S| ≤ |N(S)|. □

Kebalikan dari teorema 3.4 tidak berlaku. Ini ditunjukan pada gambar 3.6, G
mempunyai matching sempurna, tetapi G bukan graf bipartit teratur.

X Y
A a

B b

C c

D d

Gambar 3.6. Graph bipartit tidak teratur.


Teori Graph 43

SOAL-SOAL LATIHAN
1. Tentukan 2 maksimum matching dari graf berikut:

a f g

e b
k h

j i
d c

2. Tunjukkan bahwa subgraf dari graf bipartit G juga merupakan graf bipartit.

3. Tentukan apakah graf berikut bipartit atau bukan.

c d e o

f
p q
g h
s
i j r v
k

l n
m t u

G H

4. Berapa banyak ukuran matching maksimum dalam graf K2n + 1?

5. Suatu graf disebut semiregular bipartit jika semua simpul dalam partisi V1
berderajat s dan semua simpul di partisi V2 berderajat t. Buktikan bahwa jika
G adalah graf semiregular bipartit, maka graf garis G adalah graf teratur
berderajat s + t – 2.

6. Gambarkan suatu graf terhubung dengan jumlah simpul genap yang tidak
memuat matching sempurna.
Matching pada graph bipartit 44

7. Tunjukkan bahwa banyaknya matching sempurna dalam K2n adalah


1.3.5…(2n – 1).

8. Ann, Dan, Fan, Nan dan Van membuat lamaran untuk posisi pekerjaan a, b,
c, d, dan e. Ann memenui kualifikasi untuk posisi a, b, dan c. Dan untuk
posisi b, d, e. Fan untuk b dan c. Nan untuk c dan d, dan Van untuk b.
a. Gambarkan graf bipartit yang merepresentasikan masalah di atas.
b. Tentukan matching maksimumnya.

9. Buktikan bahwa jika suatu pohon memuat matching sempurna, maka


matching tersebut tunggal.

10. Jika T adalah pohon rentang dari G, maka tunjukkan bahwa suatu matching
sempurna di T juga merupakan matching sempurna di G.

Anda mungkin juga menyukai