• Tidak ada hasil yang ditemukan

Konstruksi Tabel Optimal

Dalam dokumen MAKALAH PENDAMPING BIDANG MATEMATIKA (Halaman 59-64)

CLIQUE TERBOBOT MAKSIMUM

4.1 Konstruksi Tabel Optimal

(G) (G(Bi))

Sebelum branch-and-bound, algoritma TOC menghitung beberapa nilai yang diperlukan untuk menghitung batas atas. Dalam branch-and-bound, algoritma TOC menghitung batas atas dengan cepat berdasarkan akibat 2.

4.1 Konstruksi Tabel Optimal

Mengingat graf tak berarah G = (V, E), algoritma TOC membagi V menjadi B1, B2, . . ., Bk (deskripsi akan ditampilkan dalam 4.3). Setiap Bi disebut blok. Ukuran setiap blok tidak boleh lebih dari panjang CPU satu kata untuk menghindari loop yang tidak perlu. Kemudian, blok diimplementasikan dalam satu vektor kata bit. Dalam algoritma TOC, subset vertex diwakili oleh himpunan blok dan diimplementasikan dalam array bit vektor.

Setelah membagi V dan membuat blok, pemetaan antara bit-bit dan vertex-vertex adalah tetap. Dan matriks adjacency dibangun sesuai dengan pemetaan. Baris sesuai dengan

vi memiliki N(vi) sebagai himpunan blok. Dengan rekonstruksi ini, operasi AND untuk menghitung S N(v)(S V) dapat segera dilakukan. Dalam branch-and-bound, operasi ini muncul dalam masing-masing cabang. Oleh karena itu rekonstruksi ini penting.

Untuk semua i, algoritma TOC menghitung bobot solusi optimal dari semua graf bagian yang disebabkan oleh semua himpunan bagian dari Bi dan menyimpannya pada tabel. Tabel ini disebut tabel optimal. Algoritma untuk membuat tabel optimal ditunjukkan pada Gambar 3.

Vektor bit merupakan himpunan bagian dari blok dan juga mewakili indeks dari tabel optimal. Oleh karena itu batas atas subset dari setiap blok dapat diperoleh dalam O (1) kali. Di baris 10 dari Gambar 3, perpotongan dihitung (N(v) himpunan). Hal ini dapat dihitung dengan hanya satu operasi AND, dan hasilnya juga vektor bit satu kata. Setiap tabel Optimal membutuhkan memori O(2l ) ukuran ketika ukuran blok adalah l. Oleh karena itu ukuran blok harus didefinisikan dengan tepat.

Diberikan suatu himpunan bagian vertex

S = B1 + B2 + B3 + . . . + Bk, suatu batas atas dari (G(S))

function make_ table(B1 + B2 + . . .+ Bk) input: a partition V = B1 + B2 + . . . + Bk output: the optimal table

1: for i from 1 to k do 2: table[i][0] 0 3: for j from 1 to do

4: bj 2j-1 (a bit vector only jthbit is 1) 5: bj+1 2j(a bit vector only (j +1)thbit is 1) 6: v jth vertex in Bi

7: for set from bjto bj+1 do 8: unused table[i][set - bj] 9: used table[i][N(v) set] + w[v] 10: if used > unused then

11: table[i][set] used

12: else

13: table[i][set] unused

14: end if 15: end for

102

Prosiding Seminar Nasional Matematika dan Pendidikan Matematika, Internalisasi Nilai-nilai Berfikir Matematis Dalam Perannya di Era Masyarakat Ekonomi ASEAN (MEA) 16: end for

17: end for 18: return table

Gambar 3: Algoritma Untuk Mengkonstruksi Tabel Optimal

dapat dihitung dengan akibat 2 sebagai berikut.

batas atas = table[1][B′1] + table[2][B′2]+. . .+

table[k][Bk] = ∑ [ ]

Bobot solusi optimal dari setiap blok dapat dihitung dalam O(1) dengan mengacu pada tabel optimal. Jadi batas atas ini dapat dihitung di O(k). Langkah-langkah dari algoritma TOC adalah sebagai berikut.

1. Membuat partisi V = B1 + B2 +. . . + Bk. 2. Merekonstruksi matriks adjacency.

3.Membuat tabel optimal dengan pemrograman dinamis.

4. Branch-and-bound.

Algoritma TOC juga menggunakan pencarian backtrack. Algoritma membuat barisan vertex dengan menghubungkan semua blok dan menetapkan nomor vertex sebagai

v1, v2, . . . , vn ke barisan. Maka dapat digunakan pencarian backtrack dengan tabel optimal.

4.2 Contoh

Kami menunjukkan contoh algoritma kami bekerja pada graf yang ditunjukkan pada Gambar 1. Contoh ini didasarkan pada V

partisi berikut = B1 + B2.

Dengan menerapkan V dalam array yang ukurannya 2 sebagai berikut.

V [1] = 1111(2) = 15(10)

V [2] = 1111(2) = 15(10)

Setiap bit dari V [1] adalah bersesuaian dengan v1, v3, v5, v7 dari kiri. Dan setiap bit dari V [2] adalah bersesuaian dengan v2, v4, v6,

v8 dari kiri. Matriks adjacency direkonstruksi untuk bi vektor ini ditunjukkan pada Gambar 4. Gambar 5 dan Gambar 6 menunjukkan pelaksanaan oleh satu kata untuk setiap blok. Tabel optimal ditunjukkan pada Gambar 7.

v1 v3 v5 v7 v2 v4 v6 v8 v1 v3 v5 v7 v2 v4 0 0 0 1 1 0 0 1 0 0 1 0 1 1 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 1 0 1 0 0 0 1 1 0 1 0 1 0

Pendidikan Matematika Universitas Muhammadiyah Purworejo,

Ruang Seminar UMP, Sabtu, 28 Mei 2016

103

v6

v8

0 1 1 1 0 1 0 0 1 0 0 1 0 0 0 0

Gambar 4: Rekonstruksi Matriks Adjacency

B1 B2 v1 v3 v5 v7 v2 v4 v6 v8 0001 1001 0010 1110 0100 0110 1000 1011 1101 0100 0110 1010 0111 0100 1001 0000

Gambar 5: Implementasi Matriks Adjacency (Biner)

Implementasikan himpunan bagian vertex oleh sebuah array yang ukurannya 2 sebagai berikut.

S[1] = 1001(2) = 9(10)

S[2] = 1100(2) = 12(10)

Dapat dapat dihitung S' = S N[v1] = sebagai berikut. B1 B2 v1 v3 v5 v7 v2 v4 v6 v8 1 9 2 14 4 6 8 11 13 4 6 10 7 4 9 0

Gambar 6: Implementasi Dari Matriks Adjacency (Desimal) B1 B2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0 0 5 7 6 3 6 7 2 8 5 8 8 11 8 11 4 1 9 7 6 3 9 7 4 9 9 9 8 11

104

Prosiding Seminar Nasional Matematika dan Pendidikan Matematika, Internalisasi Nilai-nilai Berfikir Matematis Dalam Perannya di Era Masyarakat Ekonomi ASEAN (MEA) 15 9 11

Gambar 7: Tabel Optimal

S′[1] = 1001(2) & 0001(2) = 0001(2) = 1(10)

S′[2] = 1100(2) & 1001(2) = 1000(2) = 8(10)

Batas atas S dapat dihitung dengan tabel optimal sebagai berikut.

batas atas = table[1][9] + table[2][12] = 9 + 9

= 18

Batas atas dari of S′ dapat dihitung sebagai

berikut.

batas atas = table[1][1] + table[2][8] = 5 + 1

= 6

Algorithm Tabel Optimal Clique(TOC) function main

input: a vertex-weighted undirected graph

G = (V;E)

output: the maximum weight clique

1: do vertex coloring and make a partition of

V .

2: record 0

3: stop decide by edge density

4: for i from to stop do 5: expand(Vi,0) 6: c[i] record

7: end for 8: expand(V, 0)

9: return the maximum weight clique

function expand (S;weight)

input: a vertex subset S, the forming clique weight

weight

1: if = 0 then

2: if weight > record then 3: record weight 4: end if 5: return 6: end if 7: while > 0 do 8: i min fk j vk 2 Sg 9: upper 0

10: for i from 1 to number of blocks in S do 11: upper upper + table[i][Bi] 12: end for

13: if weight + upper record then 14: return

15: end if

16: if weight + c[i] record then 17: return

Pendidikan Matematika Universitas Muhammadiyah Purworejo,

Ruang Seminar UMP, Sabtu, 28 Mei 2016

105

18: end if

19: S S \ vi

20: expand(S N(vi);weight + w[vi]) 21: end while

22: return

Gambar 10: Algoritma (TOClique)

5. KESIMPULAN

Penulis mengusulkan batas atas dari clique berbobot maksimum dihitung dengan tabel optimal dan algoritma berdasarkan branch-and-bound menggunakan batas atas. Untuk graf tak berarah G = (V, E), algoritma TOC membagi V ke beberapa subset dan membuat subgraf yang ditimbulkannya. Telah dibuktikan bahwa jumlah bobot clique berbobot maksimum dari subgraf merupakan batas atas dari clique berbobot maksimum dari G. Algoritma TOC menghitung beberapa nilai yang digunakan dalam menghitung batas atas dengan pemrograman dinamis dan menyimpan semua hasil. Dan batas atas dapat dihitung dengan cepat dalam branch-and-bound tersebut. Dapat dikonfirmasikan bahwa algoritma TOC lebih cepat dan efisien dari algoritma lain dengan eksperimen komputer.

References:

[1] D. Kumlander, “On importance of a special sorting in the maximum-weight clique algorithm based on colour classes,” Proc. of the second international conference on Modelling, Computation and Optimization in Information Systems and Management Sciences Communications in Computer

and Information Science, vol.14, 2008, pp.165-174.

[2] D. Kumlander, “Network resources for the maximum clique finding problem” http://www.kumlander.eu/graph/

[3] E. Tomita, Y. Sutani, T. Higashi, S. Takahashi, M. Wakatsuki, “A simple and faster branchand-bound algorithm for finding a maximum clique,” Proc. of the 4th InternationalWorkshop,WALCOM Algorithms and Computation, Lecture Notes in Computer Science, vol.5942,2010, pp.191-203.

[4] K. Yamaguchi, S. Masuda, “A new exact algorithm for the maximum weight clique problem,” Proc. of the 23rd International Technical Conference on Circuits/Systems, Computers and Communications, 2008, pp.317 - 320. [5] P.R.J. O¨ sterga°rd, “A new algorithm for

the maximum-weight clique problem,” Nordic Journal of Computing, vol.8, 2001, pp.424-436.

[6] P.R.J. streg rd, “Cliquer homepage” httpμ //users.tkk.fi/˜pat/cliquer.html [7] S. Shimizu, K. Yamaguchi, T. Saitoh, S.

Masuda, “Some improvements on Kumlander‟s maximum weight clique extraction algorithm,” Proc. of the International Conference on Electrical, Computer, Electronics and Communication Engineering 2012, World Academy of Science, Engineering and Technology, Issue 72, 2012, pp.307-311.

106

Prosiding Seminar Nasional Matematika dan Pendidikan Matematika, Internalisasi Nilai-nilai Berfikir Matematis Dalam Perannya di Era Masyarakat Ekonomi ASEAN (MEA)

ANALISIS PENERIMA RASKIN KOTA BANDUNG

Dalam dokumen MAKALAH PENDAMPING BIDANG MATEMATIKA (Halaman 59-64)