• Tidak ada hasil yang ditemukan

PRESENTASI TUGAS AKHIR KI091391

N/A
N/A
Protected

Academic year: 2022

Membagikan "PRESENTASI TUGAS AKHIR KI091391"

Copied!
164
0
0

Teks penuh

(1)

DESAIN DAN ANALISIS ALGORITMA MODIFIKASI HUNGARIAN UNTUK PERMASALAHAN PENUGASAN DINAMIS PADA STUDI KASUS PERMASALAHAN SPOJ KLASIK 12749

(Kata kunci: Masalah penugasan dinamis, algoritma hungarian dinamis, graf bipartite)

PRESENTASI TUGAS AKHIR – KI091391

Penyusun Tugas Akhir : Teguh Suryo Santoso (NRP: 5110.100.164) Dosen Pembimbing :

Ahmad Saikhu, S.Si., M.T.

(2)

Kerangka Presentasi

Ilustrasi Permasalahan

Latar Belakang

Batasan Masalah

Tujuan

Pendahuluan Rangkaian Proses

Uji Coba

Kesimpulan

(3)

Ilustrasi Permasalahan

Secara formal, masalah penugasan dapat dinyatakan sebagai berikut:

Tentukan nilai optimal dari dengan batasan:

) 1

 (

S

i j T

ij ij

x w

) 2 ( 1 untuk i S

T j

x

ij

) 3 ( 1 untuk j T

S i

x

ij

(4)

Ilustrasi Permasalahan

1

2

3

1

2

3

1 2 3 4

1 3 4 6 3

2 6 7 2 4

3 4 1 3 4

4 6 2 4 3

S T

(5)

Ilustrasi Permasalahan

1

2

3

1

2

3

6 7

4 6

S T

6 + 7 + 4 + 6 = 23

1 2 3 4

1 3 4 6 3

2 6 7 2 4

3 4 1 3 4

4 6 2 4 3

(6)

Ilustrasi Permasalahan

1

2

3

1

2

3

S T

S T

1 2 3 4

1 3 4 6 3

2 5 3 7 3

3 4 1 3 4

4 6 2 4 3

(7)

Ilustrasi Permasalahan

1

2

3

1

2

3

S T

S T

1 2 3 4

1 3 4 8 3

2 5 3 5 3

3 4 1 7 4

4 6 2 8 3

(8)

Ilustrasi Permasalahan

1

2

3

1

2

3

S T

S T

1 2 3 4

1 3 4 8 3

2 5 3 5 3

3 4 1 7 4

4 2 2 8 3

(9)

Ilustrasi Permasalahan

1

2

3

4

1

2

3

4

1 2 3 4 5

1 3 4 8 3 1

2 5 3 5 3 4

3 4 1 7 4 9

4 2 2 8 3 3

5 3 9 4 1 2

(10)

Ilustrasi Permasalahan

• http://www.spoj.com/problems/DAP/

• Diberikan Matriks N×N (N≤100)

• Terdapat M operasi (M ≤ 10000):

o

C i j w : Ubah w

ij

menjadi w

o

X i w

1

w

2

... w

N

: Ubah w

ij

menjadi w

j

o

Y i w

1

w

2

... w

N

: Ubah w

ji

menjadi w

j

o

A : Tambahkan satu baris dan satu kolom dengan semua elemennya memiliki bobot 0

o

Q : Query optimal matching saat ini

• Bobot non negatif dan mampu ditampung dalam variabel

integer 32 bit bertanda

(11)

Latar Belakang

• Perubahan bobot dapat terjadi saat

optimal matching sudah diperoleh solusinya

• Setelah terjadi perubahan bobot, tidak efisien untuk menjalankan kembali

algoritma pencarian optimal matching

(12)

Batasan Masalah

• Input dan output program menyesuaikan dengan Soal SPOJ Klasik 12749 beserta batasan-batasan lainnya

• Permasalahan diselesaikan dengan pendekatan teori graf

• Bahasa pemrograman yang digunakan adalah

C++

(13)

Tujuan

• Menganalisis dan merancang algoritma yang

efisien untuk menyelesaikan masalah penugasan dinamis

• Mengimplementasikan algoritma yang telah dirancang untuk menyelesaikan masalah

penugasan dinamis secara efisien

• Menguji implementasi dari algoritma yang telah dirancang untuk mengetahui kinerja dari

implementasi yang telah dibuat

(14)

Kerangka Presentasi

Algoritma Hungarian

Algoritma Hungarian Dinamis

Pendahuluan

Rangkaian Proses

Uji Coba

Kesimpulan

(15)

Algoritma Hungarian

Baca Matriks Bobot

Baca nilai w ij

(16)

Algoritma Hungarian

Baca Matriks Bobot

Inisialisasi Feasible Node Weighting

u

i

= max(w

ij

) untuk j = 1...n (6) v

j

= 0

Vektor <u, v> dimana

u i +v j ≥ w ij (5)

untuk semua i dan j

(17)

Algoritma Hungarian

Baca Matriks Bobot

Inisialisasi Feasible Node Weighting Untuk tiap i∈S (Satu Fase)

Cari augmenting path pada Equality subgraph path yang berawal dari i

Equality Subgraph

adalah subgraph dimana edge- nya memenuhi

u i +v j = w ij (7)

(18)

Algoritma Hungarian

Baca Matriks Bobot

Inisialisasi Feasible Node Weighting Untuk tiap i∈S (Satu Fase)

Cari augmenting path pada Equality subgraph path yang berawal dari i

Ditemukan?

Pilih J⊆S dimana |J|<|N(J)|

Ya

Tidak

(19)

Algoritma Hungarian

Baca Matriks Bobot

Inisialisasi Feasible Node Weighting Untuk tiap i∈S (Satu Fase)

Cari augmenting path pada Equality subgraph path yang berawal dari i

Ditemukan?

Pilih J⊆S dimana |J|<|N(J)|

Ya

Tidak

Kompleksitas Waktunya O(n

3

)

(20)

Algoritma Hungarian

1

2

3

1

2

3 6

7

4

0

0

0

S T

1 2 3 4

1 3 4 6 3

2 6 7 2 4

3 4 1 3 4

(21)

Algoritma Hungarian

1

2

3

1

2

3 6

7

4

0

0

0

S T

0 0 0 0

1 2 3 4

6 1 3 4 6 3

7 2 6 7 2 4

4 3 4 1 3 4

(22)

Algoritma Hungarian

1

2

3

1

2

3 6

7

4

0

0

0

S T

6 + 7 + 4 + 6 = 23

0 0 0 0

1 2 3 4

6 1 3 4 6 3

7 2 6 7 2 4

4 3 4 1 3 4

(23)

Masalah Penugasan Dinamis

• Sudah ada solusi optimal matching dari

algoritma Hungarian beserta feasible node weighting-nya

o Perubahan bobot satu baris

o Perubahan bobot satu kolom

o Perubahan bobot satu elemen

o Penambahan satu baris dan satu kolom

(24)

Algoritma Hungarian Dinamis

• Dijalankan algoritma Hungarian

• Ketika terjadi satu jenis perubahan:

o

Pertahankan nilai feasible node weighting agar selalu u i +v j ≥ w ij

o

Hapus maksimal satu edge dalam optimal matching

• Setelah terjadi beberapa perubahan dan diminta optimal matching -nya

o

Jalankan k fase algoritma Hungarian dimana k

adalah banyaknya vertex yang belum masuk ke

dalam optimal matching

(25)

Algoritma Hungarian Dinamis

• Perubahan pada satu baris i

o

u i = max(w ij – v j ) untuk j = 1...n (13)

o

Hapus edge yang menghubungkan i dengan pasangannya

• Perubahan pada satu kolom j

o

v j = max(w ij – u i ) untuk i = 1...n (14)

o

Hapus edge yang menghubungkan j dengan

pasangannya

(26)

Algoritma Hungarian Dinamis

• Perubahan pada satu elemen matriks (i,j)

o

Jika w’ ij < w ij dan i berpasangan dengan j - Hapus edge (i,j) dari optimal matching

o

Jika w’ ij > w ij dan u i + v j < w ij

- Sesuaikan salah satu nilai u i atau v j seperti sebelumnya

- Jika i tidak berpasangan dengan j pada optimal

matching maka hapus edge (i,j) dari optimal

matching

(27)

Algoritma Hungarian Dinamis

• Penambahan satu baris dan satu kolom

o

u

(n+1)

= max(w

(n+1)(n+1)

, max(w

(n+1)j

– v

j

) untuk j = 1...n) (15)

o

v

(n+1)

= max(w

i(n+1)

- u

i

) untuk i = 1...n+1 (16)

(28)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 6

7

4

0

0

0

S T

0 0 0 0 1 2 3 4 6 1 3 4 6 3 7 2 6 7 2 4 4 3 4 1 3 4 6 4 6 2 4 3

u

i

= max(w

ij

– v

j

) untuk j = 1...n (13)

v

j

= max(w

ij

– u

i

) untuk i = 1...n (14)

(29)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 6

7

4

0

0

0

S T u

2

= 3 v

3

= 5

0 0 0 0

1 2 3 4

6 1 3 4 8 3

7 2 5 3 5 3

4 3 4 1 7 4

(30)

Algoritma Hungarian Dinamis

0 0 3 0 1 2 3 4 6 1 3 4 8 3 5 2 5 3 5 3 4 3 4 1 7 4 6 4 6 2 6 3

1

2

3

1

2

3 6

5

4

0

0

3

S T Dijalankan 2 kali fase algoritma

Hungarian

(31)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 5

3

4

2

0

3

S T 8 + 3 + 4 + 6 = 21

2 0 3 0

1 2 3 4

5 1 3 4 8 3

3 2 5 3 5 3

4 3 4 1 7 4

(32)

Kerangka Presentasi

Uji Coba SPOJ

Uji Coba Kebenaran Kasus Kecil

Pendahuluan

Rangkaian Proses

Uji Coba

Kesimpulan Uji Coba Kinerja

(33)

Uji Coba SPOJ

(34)

Uji Coba SPOJ

(35)

Uji Coba Kasus Kecil

3 4 6 3 6 7 2 4 4 1 3 4 6 2 4 3

3 4 6 3 5 3 7 3 4 1 3 4 6 2 4 3

3 4 8 3 5 3 5 3 4 1 7 4 6 2 6 3

3 4 8 3 5 3 5 3 4 1 7 4 2 2 6 3

3 4 8 3 1 5 3 5 3 4 4 1 7 4 9 2 2 6 3 3 3 9 4 1 2

23 21 21 19

34

Digunakan Metode Hungarian untuk mencari optimal matching

(36)

Uji Coba Kinerja

Percobaan Jumlah

vertex Waktu (milidetik)

1 10 140

2 20 234

3 30 337

4 40 486

5 50 642

6 60 834

7 70 1032

8 80 1277

9 90 1527

Jumlah operasi = 10000

Operasi penambahan vertex tiap 999 operasi

Operasi query tiap 10 operasi kecuali operasi ke-9990

(37)

Uji Coba Kinerja

Percobaan Jumlah operasi

Waktu (milidetik)

1 1000 160

2 2000 305

3 3000 444

4 4000 588

5 5000 710

6 6000 851

7 7000 1034

8 8000 1189

9 9000 1334

10 10000 1483

Jumlah vertex = 90

Operasi penambahan vertex tiap 999 operasi

(38)

Kesimpulan

Algoritma Hungarian dinamis dapat

menyelesaikan masalah penugasan dinamis dengan benar

• Kecepatan algoritma Hungarian dinamis dipengaruhi oleh:

o banyaknya operasi secara linier

o banyaknya vertex secara kuadratik

O(kn 2 )

(39)

Saran

• Kompleksitas algoritma Hungarian dinamis

ditingkatkan menjadi O(kn lg n) atau bahkan

O(kn) dimana k adalah jumlah operasi dan n

adalah jumlah vertex .

(40)

TERIMA KASIH

(41)

Ilustrasi Permasalahan

N (Ukuran matriks mula-mula) w

11

w

12

... w

1n

w

21

w

22

... w

2n

... ... ... ...

w

n1

w

n2

... w

nn

M (Banyaknya operasi)

C i j w (mengubah biaya satu elemen) X i w

1

w

2

w

3

... w

n

(mengubah biaya satu baris) Y j w

1

w

2

w

3

... w

n

(mengubah biaya satu kolom)

A (menambah baris dan kolom)

Q (mengetahui optimal matching)

(42)

Kerangka Presentasi

Augmenting Path

Teorema Hall

Pendahuluan

Rangkaian Proses

Uji Coba

Kesimpulan Teori

Definisi

(43)

Definisi

Graf bipartite adalah graf yang vertex- nya bisa dibagi menjadi dua himpunan dimana antar vertex dalam satu himpunan tidak saling bertetangga

Matching adalah subgraf dimana tiap vertex -nya hanya bersinggungan dengan satu edge

• Kardinalitas dari matching adalah banyaknya edge dalam matching

• Maximum-size matching adalah matching yang tidak

bisa dinaikkan kardinalitasnya

(44)

Definisi

1

2

3

4

5

1

2

3

4

5

S T

Matching dalam sebuah graf bipartite

Kardinalitas dari matching adalah 4

Maximum-size matching karena

kardinalitasnya tidak bisa dinaikkan

(45)

Definisi

• Alternating path adalah path dimana

edge -nya terdiri dari matched edge dan

unmatched edge secara bergantian

• Augmenting path adalah alternating

path yang berawal dan berakhir pada

unmatched vertex

(46)

Definisi

1

2

3

4

5

1

2

3

4

5

S T

1 1 2 5 3

Alternating path :

Tidak ada augmenting path

(47)

Augmenting Path

Sebuah Matching M dalam graf adalah

maximum-size matching jika dan hanya jika tidak ada lagi augmenting path

yang bisa dibentuk sesuai dengan

matching M

(48)

Augmenting Path

1

2

3

4

5

1

2

3

4

5

S T

1

2

3

4

5

1

2

3

4

5

Sebuah matching pada graf

bipartite dengan kardinalitas 3

(49)

Augmenting Path

1

2

3

4

1

2

3

4

S T

1

2

3

4

1

2

3

4

Ditemukan augmenting path

1 1 2 5

(50)

Augmenting Path

1

2

3

4

5

1

2

3

4

5

S T

1

2

3

4

5

1

2

3

4

5

Augmenting path dibalik

sehingga didapatkan matching

baru dengan kardinalitas 4

(51)

Teorema Hall

Sebuah graf bipartite (G = S ∪ T, E) dengan |S|≤|T| mempunyai complete

matching jika dan hanya jika

|J|≤|N(J)| untuk semua J ⊆ S

• Complete Matching adalah maximum-size matching dengan kardinalitas |S|

• J adalah subset dari himpunan vertex S

• N(J) adalah tetangga-tetangga dari J

• |N(J)| adalah jumlah tetangga dari J

(52)

Teorema Hall

1

2

3

4

5

1

2

3

4

5

S T Terdapat J⊆S dimana |N(J)|<| J|

(53)

Teorema Hall

4

2

3

S T Terdapat J⊆S dimana |N(J)|<| J|

1

2

3

1

4

(54)

Teorema Hall

1

2

3

4

5

1

2

3

4

5

S T Maximum-size matching

hanya memiliki kardinalitas 4

(55)

Teorema Hall

S T

1

2

3

4

1

2

3

4

Tidak ada J⊆S dimana |N(J)|<| J|

(56)

Teorema Hall

S T

1

2

3

4

5

1

2

3

4

5

Maximum-size matching

memiliki kardinalitas 5

(57)

Algoritma Hungarian

1 2 3 4

1 3 4 6 3

2 6 7 2 4

3 4 1 3 4

4 6 2 4 3

1

2

3

1

2

3

S T

(58)

Algoritma Hungarian

Feasible node weighting

v 1 v 2 v 3 v 4 1 2 3 4 u 1 1 3 4 6 3 u 2 2 6 7 2 4 u 3 3 4 1 3 4

u i +v j ≥ w ij untuk semua i dan j

(59)

Algoritma Hungarian

Feasible node weighting

u i +v j ≥ w ij untuk semua i dan j

0 0 0 0

1 2 3 4

6 1 3 4 6 3

7 2 6 7 2 4

4 3 4 1 3 4

(60)

Algoritma Hungarian

1

2

3

1

2

3 6

7

4

0

0

0

0 0 0 0 1 2 3 4 6 1 3 4 6 3 7 2 6 7 2 4 4 3 4 1 3 4

S T

(61)

Algoritma Hungarian

1

2

3

1

2

3 6

7

4

0

0

0

0 0 0 0 1 2 3 4 6 1 3 4 6 3 7 2 6 7 2 4 4 3 4 1 3 4

Equality Subgraph

u i +v j = w ij

S T

(62)

Algoritma Hungarian

Jika equality subgraph sudah memiliki complete matching maka solusi ditemukan

• Jika tidak, pada equality subgraph , tentukan J⊆S dimana |N(J)| <|J|

δ = min(u i +v j -w ij ) dimana i ∈ J dan j ∉ N(J)

(63)

Algoritma Hungarian

Tentukan nilai feasible node weighting baru u’ dan v’

Untuk u’

o

u’ i = u i – δ jika i ∈ J

o

u’ i = u i jika i ∉ J

Untuk v’

o

v’ j = v j + δ jika j∈ N(J)

o

v’ j = v j jika j∉ N(J)

• Proses dilakukan hingga equality subgraph memiliki

(64)

Proof

Untuk u’

o

u’

i

= u

i

– δ jika i ∈ J

o

u’

i

= u

i

jika i ∉ J

Untuk v’

o

v’

j

= v

j

+ δ jika j∈ N(J)

o

v’

j

= v

j

jika j∉ N(J)

u’

i

+ v’

j

≥ w

ij

Hanya mungkin dilanggar saat

o

i ∈ J dan j∉ N(J) karena u’

i

+ v’

j

= u

i

– δ + v

j

• Tapi karena

o

δ = min(u

i

+v

j

-w

ij

) dimana i ∈ J dan j ∉ N(J)

u

i

– δ + v

j

≥ w

ij

u

i

+ v

j

–w

ij

– δ ≥ 0

(65)

Proof

• Dari edge i ∈ J , j ∉ N(J) dicari yang δ=min(u i +v j -w ij )

• Lalu semua feasible node weighting i ∈ J , j ∉ N(J) diambil δ

• Setidaknya ada satu edge i ∈ J , j ∉ N(J) yang masuk ke dalam equality subgraph

o Edge dengan δ=min(u i +v j -w ij )

(66)

Algoritma Hungarian

• Inisialisasi feasible node weighting

• Untuk tiap vertex i ∈ S

o

Cari augmenting path yang berawal dari i pada equality subgraph

o

Jika ditemukan, balik augmenting path dan keluar dari perulangan

o

Jika tidak, lakukan perubahan feasible node weighting sesuai dengan ketentuan sebelumnya hingga ditemukan augmenting path yang berawal dari i pada equality

subgraph

• Satu tahap perulangan pada proses di atas dinamakan satu

(67)

Algoritma Hungarian

1

2

3

1

2

3

S T

1 2 3 4

1 3 4 6 3

2 6 7 2 4

3 4 1 3 4

(68)

Algoritma Hungarian

1

2

3

1

2

3 6

7

4

0

0

0

Inisialisasi Feasible node weighting

S T

0 0 0 0

1 2 3 4

6 1 3 4 6 3

7 2 6 7 2 4

4 3 4 1 3 4

(69)

Algoritma Hungarian

1

2

3

1

2

3 6

7

4

0

0

0

S T

0 0 0 0

1 2 3 4

6 1 3 4 6 3

7 2 6 7 2 4

4 3 4 1 3 4

(70)

Algoritma Hungarian

1

2

3

1

2

3 6

7

4

0

0

0

0 0 0 0 1 2 3 4 6 1 3 4 6 3 7 2 6 7 2 4 4 3 4 1 3 4

S T

Cari augmenting path yang

berawal dari 1

(71)

Algoritma Hungarian

1

2

3

1

2

3 6

7

4

0

0

0

0 0 0 0 1 2 3 4 6 1 3 4 6 3 7 2 6 7 2 4 4 3 4 1 3 4

S T

Augmenting path ditemukan

1 3

(72)

Algoritma Hungarian

1

2

3

1

2

3 6

7

4

0

0

0

0 0 0 0 1 2 3 4 6 1 3 4 6 3 7 2 6 7 2 4 4 3 4 1 3 4

S T

Balik augmenting path

(73)

Algoritma Hungarian

1

2

3

1

2

3 6

7

4

0

0

0

0 0 0 0 1 2 3 4 6 1 3 4 6 3 7 2 6 7 2 4 4 3 4 1 3 4

S T

Cari augmenting path yang

berawal dari 2

(74)

Algoritma Hungarian

1

2

3

1

2

3 6

7

4

0

0

0

0 0 0 0 1 2 3 4 6 1 3 4 6 3 7 2 6 7 2 4 4 3 4 1 3 4

S T

Augmenting path ditemukan

2 2

(75)

Algoritma Hungarian

1

2

3

1

2

3 6

7

4

0

0

0

0 0 0 0 1 2 3 4 6 1 3 4 6 3 7 2 6 7 2 4 4 3 4 1 3 4

S T

Balik augmenting path

(76)

Algoritma Hungarian

1

2

3

1

2

3 6

7

4

0

0

0

0 0 0 0 1 2 3 4 6 1 3 4 6 3 7 2 6 7 2 4 4 3 4 1 3 4

S T

Cari augmenting path yang

berawal dari 3

(77)

Algoritma Hungarian

1

2

3

1

2

3 6

7

4

0

0

0

0 0 0 0 1 2 3 4 6 1 3 4 6 3 7 2 6 7 2 4 4 3 4 1 3 4

S T

Augmenting path ditemukan

3 1

(78)

Algoritma Hungarian

1

2

3

1

2

3 6

7

4

0

0

0

0 0 0 0 1 2 3 4 6 1 3 4 6 3 7 2 6 7 2 4 4 3 4 1 3 4

S T

Balik augmenting path

(79)

Algoritma Hungarian

1

2

3

1

2

3 6

7

4

0

0

0

0 0 0 0 1 2 3 4 6 1 3 4 6 3 7 2 6 7 2 4 4 3 4 1 3 4

S T

Cari augmenting path yang

berawal dari 4

(80)

Algoritma Hungarian

1

2

3

1

2

3 6

7

4

0

0

0

0 0 0 0 1 2 3 4 6 1 3 4 6 3 7 2 6 7 2 4 4 3 4 1 3 4

S T

Augmenting path ditemukan

4 1 3 4

(81)

Algoritma Hungarian

1

2

3

1

2

3 6

7

4

0

0

0

0 0 0 0 1 2 3 4 6 1 3 4 6 3 7 2 6 7 2 4 4 3 4 1 3 4

S T

Balik augmenting path

(82)

Algoritma Hungarian Dinamis

• Sudah ada solusi optimal matching dari algoritma Hungarian beserta feasible node weighting-nya

o

Ubah bobot satu baris

o

Ubah bobot satu kolom

o

Ubah bobot satu elemen

o

Tambahkan satu baris dan satu kolom

(83)

Algoritma Hungarian Dinamis

• Ubah satu baris i

o

u i = max(w ij – v j ) untuk j = 1...n

o

Hapus edge yang menghubungkan i dengan pasangannya

o

Jalankan satu fase algoritma Hungarian dengan

vertex i sebagai awal dari augmenting path

(84)

Proof

u i + v j ≥ w ij

u i + v j – w ij ≥ 0

u i = max(w ij – v j ) untuk j = 1...n

max(w ij - v j ) + v j – w ij ≥ 0

max(w ij – v j ) – (w ij – v j ) ≥ 0

(85)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 6

7

4

0

0

0

0 0 0 0 1 2 3 4 6 1 3 4 6 3 7 2 6 7 2 4 4 3 4 1 3 4

S T

(86)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 6

4

0

0

0

S T

0 0 0 0 1 2 3 4 6 1 3 4 6 3

? 2 5 3 7 3 4 3 4 1 3 4 Terjadi perubahan bobot pada baris kedua

?

(87)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 6

4

0

0

0

0 0 0 0 1 2 3 4 6 1 3 4 6 3 7 2 6 7 2 4 4 3 4 1 3 4

S T

0 0 0 0 1 2 3 4 6 1 3 4 6 3

? 2 5 3 7 3 4 3 4 1 3 4

u

2

= max(w

2j

– v

j

) untuk j = 1...n

?

(88)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 6

7

4

0

0

0

S T

u

2

= 7

0 0 0 0

1 2 3 4

6 1 3 4 6 3

7 2 5 3 7 3

4 3 4 1 3 4

(89)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 6

7

4

0

0

0

S T

Hapus edge Dari matching

2 2

0 0 0 0

1 2 3 4

6 1 3 4 6 3

7 2 5 3 7 3

4 3 4 1 3 4

(90)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 6

7

4

0

0

0

S T

Perbarui equality subgraph

0 0 0 0

1 2 3 4

6 1 3 4 6 3

7 2 5 3 7 3

4 3 4 1 3 4

(91)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 6

7

4

0

0

0

S T

Cari augmenting path dari 2

0 0 0 0

1 2 3 4

6 1 3 4 6 3

7 2 5 3 7 3

4 3 4 1 3 4

(92)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 6

7

4

0

0

0

S T

0 0 0 0 1 2 3 4 6 1 3 4 6 3 7 2 5 3 7 3 4 3 4 1 3 4 Tidak ditemukan

augmenting path dari 2

(93)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 6

7

4

0

0

0

S T

J = , dan N(J) = 1 2 3

0 0 0 0

1 2 3 4

6 1 3 4 6 3

7 2 5 3 7 3

4 3 4 1 3 4

(94)

Algoritma Hungarian Dinamis

1

2

3

1

2

4 3

0

0

S T

0 0 2 0 1 2 3 4 4 1 3 4 6 3 5 2 5 3 7 3 4 3 4 1 3 4

4

5

2

δ = min(3 ,2, 3, 2, 4, 4) = 2

(95)

Algoritma Hungarian Dinamis

1

2

3

1

2

4 3

0

0

S T

0 0 2 0 1 2 3 4 4 1 3 4 6 3 5 2 5 3 7 3 4 3 4 1 3 4 Perbarui Equality subgraph

4

5

2

(96)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 4

5

4

0

0

2

S T

Cari augmenting path dari 2

0 0 2 0

1 2 3 4

4 1 3 4 6 3

5 2 5 3 7 3

4 3 4 1 3 4

(97)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 4

5

4

0

0

2

S T

0 0 2 0 1 2 3 4 4 1 3 4 6 3 5 2 5 3 7 3 4 3 4 1 3 4 Augmenting path ditemukan

2 3 1 2

(98)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 4

5

4

0

0

2

S T

0 0 2 0

1 2 3 4

4 1 3 4 6 3

5 2 5 3 7 3

4 3 4 1 3 4

Balik augmenting path

(99)

Algoritma Hungarian Dinamis

• Ubah satu kolom j

o

v j = max(w ij – u i ) untuk i = 1...n

o

Hapus edge yang menghubungkan j dengan pasangannya

o

Jalankan satu fase algoritma Hungarian dengan

vertex pasangan dari vertex j sebagai awal dari

augmenting path

(100)

Proof

u i + v j ≥ w ij

u i + v j – w ij ≥ 0

v j = max(w ij – u i ) untuk i = 1...n

max(w ij - u i ) + u i – w ij ≥ 0

max(w ij – u i ) – (w ij – u i ) ≥ 0

(101)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 4

5

4

0

0

2

S T

0 0 2 0

1 2 3 4

4 1 3 4 6 3

5 2 5 3 7 3

4 3 4 1 3 4

(102)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 4

5

4

0

0

S T

Terjadi perubahan bobot pada kolom ketiga

0 0 ? 0 1 2 3 4 4 1 3 4 8 3 5 2 5 3 5 3 4 3 4 1 7 4

?

(103)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 4

5

4

0

0

2

S T

?4

v

3

= max(w

i3

– u

i

) untuk i = 1...n

0 0 ? 0

1 2 3 4

4 1 3 4 8 3

5 2 5 3 5 3

4 3 4 1 7 4

(104)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 4

5

4

0

0

S T

v

3

= 4

0 0 4 0 1 2 3 4 4 1 3 4 8 3 5 2 5 3 5 3 4 3 4 1 7 4

4

(105)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 4

5

4

0

0

2

S T

?4

Hapus edge 2 3

0 0 4 0

1 2 3 4

4 1 3 4 8 3

5 2 5 3 5 3

4 3 4 1 7 4

(106)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 4

5

4

0

0

4

S T

0 0 4 0

1 2 3 4

4 1 3 4 8 3

5 2 5 3 5 3

4 3 4 1 7 4

Cari augmenting path dari 2

(107)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 4

5

4

0

0

4

S T

0 0 4 0 1 2 3 4 4 1 3 4 8 3 5 2 5 3 5 3 4 3 4 1 7 4 Tidak ditemukan

augmenting path dari 2

(108)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 4

5

4

0

0

4

S T

J = , dan N(J) = 2 4 1

0 0 4 0

1 2 3 4

4 1 3 4 8 3

5 2 5 3 5 3

4 3 4 1 7 4

(109)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 4

4

0

4

S T

δ = min(2 ,4, 2, 4, 4, 3) = 2

2 0 4 0 1 2 3 4 4 1 3 4 8 3 3 2 5 3 5 3 4 3 4 1 7 4

3

2

(110)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 4

5

4

0

0

4

S T

0 0 4 0 1 2 3 4 4 1 3 4 8 3 5 2 5 3 5 3 4 3 4 1 7 4 0 0 4 0 1 2 3 4 4 1 3 4 8 3 5 2 5 3 5 3 4 3 4 1 7 4 2 0 4 0 1 2 3 4 4 1 3 4 8 3 3 2 5 3 5 3 4 3 4 1 7 4

3

2 Perbarui Equality subgraph

(111)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 4

3

4

2

0

4

S T

2 0 4 0

1 2 3 4

4 1 3 4 8 3

3 2 5 3 5 3

4 3 4 1 7 4

Cari augmenting path dari 2

(112)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 4

3

4

2

0

4

S T

2 0 4 0 1 2 3 4 4 1 3 4 8 3 3 2 5 3 5 3 4 3 4 1 7 4 Augmenting path ditemukan

2 2 1 3

(113)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 4

3

4

2

0

4

S T

2 0 4 0

1 2 3 4

4 1 3 4 8 3

3 2 5 3 5 3

4 3 4 1 7 4

Balik augmenting path

(114)

Dua Perubahan

• Langsung satu kolom dan satu baris

berubah

(115)

Algoritma Hungarian Dinamis

0 0 3 0 1 2 3 4 6 1 3 4 8 3 5 2 5 3 5 3 4 3 4 1 7 4

1

2

3

1

2

3 6

5

4

0

0

3

S T

Cari augmenting path dari 1

(116)

Algoritma Hungarian Dinamis

0 0 3 0 1 2 3 4 6 1 3 4 8 3 5 2 5 3 5 3 4 3 4 1 7 4 6 4 6 2 6 3

1

2

3

1

2

3 6

5

4

0

0

3

S T

Tidak ada augmenting

path dari 1

(117)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 6

5

4

0

0

3

S T

J = 1 dan N(J) = Ø

0 0 3 0

1 2 3 4

6 1 3 4 8 3

5 2 5 3 5 3

4 3 4 1 7 4

(118)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 5

4

0

0

3

S T

δ = min(3,2,1,3) = 1

0 0 3 0 1 2 3 4 5 1 3 4 8 3 5 2 5 3 5 3 4 3 4 1 7 4 6 4 6 2 6 3

5

(119)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 5

4

0

0

3

S T

5

0 0 3 0

1 2 3 4

5 1 3 4 8 3

5 2 5 3 5 3

4 3 4 1 7 4

Perbarui Equality Subgraph

(120)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 5

4

0

0

3

S T

Cari augmenting path dari 1

0 0 3 0 1 2 3 4 5 1 3 4 8 3 5 2 5 3 5 3 4 3 4 1 7 4 6 4 6 2 6 3

5

(121)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 6

5

4

0

0

3

S T

0 0 3 0 1 2 3 4 5 1 3 4 8 3 5 2 5 3 5 3 4 3 4 1 7 4

5 Ditemukan augmenting

path 1 3

(122)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 6

5

4

0

0

3

S T

0 0 3 0 1 2 3 4 5 1 3 4 8 3 5 2 5 3 5 3 4 3 4 1 7 4 6 4 6 2 6 3

5 Balik augmenting path

(123)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 6

5

4

0

0

3

S T

Cari augmenting path dari 2

0 0 3 0 1 2 3 4 5 1 3 4 8 3 5 2 5 3 5 3 4 3 4 1 7 4

5

(124)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 6

5

4

0

0

3

S T

Tidak ada augmenting path dari 2

0 0 3 0 1 2 3 4 5 1 3 4 8 3 5 2 5 3 5 3 4 3 4 1 7 4 6 4 6 2 6 3

5

(125)

Algoritma Hungarian Dinamis

1

2

3

1

2

3 6

5

4

0

0

3

S T

0 0 3 0 1 2 3 4 5 1 3 4 8 3 5 2 5 3 5 3 4 3 4 1 7 4

5

0 0 3 0

1 2 3 4

5 1 3 4 8 3

5 2 5 3 5 3

4 3 4 1 7 4

J = 2 , dan N(J)= 4 1

Gambar

Ilustrasi Permasalahan 1 2 3 123 1 2 3 413463267243413446243ST
Ilustrasi Permasalahan 1 2 3 12367 46S T 6 + 7 + 4 + 6 = 2312 3 413463267243413446243
Ilustrasi Permasalahan 1 2 3 123STST 1 2 3 413463253733413446243
Ilustrasi Permasalahan 1 2 3 123STST 1 2 3 413483253533417446283
+4

Referensi

Dokumen terkait

Desain kapal terbatas dengan hasil akhir berupa: ukuran utama, Rencana Garis dan Rencana Umum.. Desain kapal tidak disertai dengan

Dapat dilihat ciphertext yang dihasil dari algoritma Playfair Cipher klasik dengan Playfair Cipher Modifikasi teknik pemutaran kunci dua arah memiliki

Berdasarkan hasil pengujian penggunaan algoritma TF-ICF pada daftar perencanaan kegiatan, pemberian nilai prioritasnya disimpulkan tepat dan berjalan sesuai yang diharapkan.. Google

Efek negatifnya adalah dalam desain dasar ring, ketika sebuah record diambil berdasarkan kombinasi kata kunci pencarian, hasilnya yang dapat diaplikasikan dengan

Algoritma Rijndael dapat menerima ukuran cipher key yang lebih besar daripada 256 bit dan kebenaran enkripsi terjamin ketika ukuran cipher key kurang dari atau

Menurut Panggabean (2002), waktu komputasi untuk mencari solusi optimal dari permasalahan yang tergolong permasalahan kombinatorial akan meningkat secara exponensial seiring

• Algoritma ini dapat mendeteksi titik potong pembuluh dengan baik pada citra fundus mata berwarna sehingga didapatkan hasil deteksi titik potong pembuluh darah pada citra

Untuk menyelesaikan permasalahan ini metode yang digunakan adalah metode Hungarian dengan kasus maksimasi untuk mengoptimalkan pembagian penugasan kerja sehingga dapat meningkatkan