Permasalahan Clique dalam Graf

dokumen-dokumen yang mirip
PENCARIAN MAKSIMUM CLIQUE DALAM GRAF DENGAN MENGGUNAKAN ALGORITMA BRANCH AND BOUND

Penerapan Algoritma Greedy dalam Pencarian Rantai Penjumlahan Terpendek

Pencarian Solusi Permainan Fig-Jig Menggunakan Algoritma Runut-Balik

Penerapan Algoritma Backtracking untuk Menyelesaikan Permainan Hashiwokakero

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

Penerapan Algoritma Backtracking pada Pewarnaan Graf

Pemodelan Pembagian Kelompok Tugas Besar Strategi Algoritma dengan Masalah Sum of Subset

Analisis Beberapa Algoritma dalam Menyelesaikan Pencarian Jalan Terpendek

PENERAPAN PEWARNAAN GRAF DALAM PENJADWALAN

Pendeteksian Deadlock dengan Algoritma Runut-balik

Algoritma Penentuan Graf Bipartit

Implementasi Algoritma Runut Balik dalam Pengenalan Citra Wajah pada Basis Data

UNTUK PEMECAHAN MASALAH PADA PERMAINAN HASHIWOKAKERO

Aplikasi Algoritma Dijkstra dalam Pencarian Lintasan Terpendek Graf

Penerapan Algoritma Backtracking pada Knight s Tour Problem

Penerapan Algoritma Runut-Balik (Backtracking) pada Permainan Nurikabe

Pembentukan Pohon Pencarian Solusi dalam Persoalan N-Ratu (The N-Queens Problem)

Penyelesaian Sum of Subset Problem dengan Dynamic Programming

PENERAPAN ALGORITMA BACKTRACKING PADA PERMAINAN WORD SEARCH PUZZLE

ALGORITMA PENCARIAN SIMPUL SOLUSI DALAM GRAF

Pencarian Solusi Permainan Flow Free Menggunakan Brute Force dan Pruning

Penerapan DFS dan BFS dalam Pencarian Solusi Game Japanese River IQ Test

Analisis Pengimplementasian Algoritma Greedy untuk Memilih Rute Angkutan Umum

Perbandingan Algoritma Brute Force dan Backtracking dalam Permainan Word Search Puzzle

Algoritma Puzzle Pencarian Kata

Permodelan Pohon Merentang Minimum Dengan Menggunakan Algoritma Prim dan Algoritma Kruskal

Penerapan Algoritma Runut-balik pada Permainan Math Maze

Penggunaan Algoritma DFS dan BFS pada Permainan Three Piles of Stones

Menyelesaikan Permainan Wordament Menggunakan Algoritma Backtracking

Implementasi Logika Penurunan Persamaan Aritmatika pada Program Komputer

Penggabungan Algoritma Brute Force dan Backtracking dalam Travelling Thief Problem

Penerapan Algoritma BFS dan DFS dalam Mencari Solusi Permainan Rolling Block

Algoritma Runut-balik (Backtracking) Bahan Kuliah IF2251 Strategi Algoritmik Oleh: Rinaldi Munir

SOLUSI PERMAINAN CHEMICALS DENGAN ALGORITMA RUNUT BALIK

Penerapan Algoritma Brute-Force serta Backtracking dalam Penyelesaian Cryptarithmetic

Penerapan Algoritma Backtrack pada Knight s Tour

Penerapan Algoritma Backtracking pada Game The Lonely Knight

Pemanfaatan Pohon dalam Realisasi Algoritma Backtracking untuk Memecahkan N-Queens Problem

Memanfaatkan Pewarnaan Graf untuk Menentukan Sifat Bipartit Suatu Graf

ALGORITMA RUNUT-BALIK UNTUK MENGGANTIKAN ALGORITMA BRUTE FORCE DALAM PERSOALAN N-RATU

APLIKASI ALGORITMA GREEDY PADA PERSOALAN PEWARNAAN GRAF

Penerapan Algoritma Brute Force dan Backtracking pada Permainan Skycraper

Deteksi Wajah Menggunakan Program Dinamis

Perbandingan Algoritma Brute Force dan Breadth First Search dalam Permainan Onet

Asah Otak dengan Knight s Tour Menggunakan Graf Hamilton dan Backtracking

PENGGUNAAN ALGORITMA GREEDY PADA MESIN PENCARI

Eksplorasi Algoritma Brute Force, Greedy, dan Dynamic Programming untuk Persoalan Integer Knapsack

Penyelesaian Permasalahan Nonogram dengan Algoritma Runut Balik

Algoritma Brute-Force dan Greedy dalam Pemrosesan Graf

PENERAPAN ALGORITMA RUNUT BALIK DALAM PERMAINAN TEKA-TEKI SILANG

IMPLEMENTASI ALGORITMA GREEDY PADA PERMAINAN OTHELLO

Teori Kompleksitas (Bagian 2)

PENYELESAIAN TEKA-TEKI PENYUSUNAN ANGKA MENGGUNAKAN ALGORITMA RUNUT BALIK

Aplikasi Teori Graf dalam Penggunaan Cairan Pendingin pada Proses Manufaktur

Penerapan Algoritma Brute Force dalam mencari Faktor Prima pada suatu Bilangan

ALGORITMA K-NEAREST NEIGHBOR UNTUK MENDETEKSI CLIQUE DALAM SUATU GRAPH. Wiwin Apriani 1*) ABSTRAK

PENERAPAN ALGORITMA RUNUT-BALIK (BACKTRACKING) DALAM PENYELESAIAN PERMAINAN SUDOKU

Algoritma Greedy pada Board Game Saboteur

MEMBANDINGKAN KEMANGKUSAN ALGORITMA PRIM DAN ALGORITMA KRUSKAL DALAM PEMECAHAN MASALAH POHON MERENTANG MINIMUM

PENCARIAN SOLUSI TTS ANGKA DENGAN ALGORITMA RUNUT BALIK BESERTA PENGEMBANGANNYA

Pencarian Solusi Permainan Pipe Puzzle Menggunakan Algoritma Backtrack

Penyelesaian Berbagai Permasalahan Algoritma dengan Kombinasi Algoritma Brute Force dan Greedy

ANTIMAGIC PUZZLE. Alwi Afiansyah Ramdan

Implementasi Algoritma DFS pada Pewarnaan Gambar Sederhana Menggunakan Bucket tool

PERBANDINGAN APLIKASI ALGORITMA BRUTE-FORCE DAN KOMBINASI ALGORITMA BREADTH FIRST SEARCH DAN GREEDY DALAM PENCARIAN SOLUSI PERMAINAN TREASURE HUNT

Implementasi Algoritma Greedy dalam Pembagian kerja pada Mesin yang Identik

PENERAPAN ALGORITMA RUNUT-BALIK DALAM PENCARIAN SOLUSI TEKA-TEKI BATTLESHIP

PENYELESAIAN MASALAH MISSIONARIES DAN CANNIBAL MENGGUNAKAN ALGORITMA DFS DENGAN VARIASI PENGHINDARAN REPEATED STATE

Penggunaan Algoritma Dijkstra dalam Penentuan Lintasan Terpendek Graf

SOLUSI ALGORITMA BACKTRACKING DALAM PERMAINAN KSATRIA MENYEBRANG KASTIL

PENGGUNAAN ALGORITMA BACKTRACKING DALAM PENCARIAN KOEFISIEN ROOK POLYNOMIAL

Aplikasi Algoritma Runut Balik dalam Pembangkitan Elemen Awal Permainan Sudoku

Penerapan Algoritma Branch and Bound pada Penentuan Staffing Organisasi dan Kepanitiaan

ALGORITMA RUNUT-BALIK (BACKTRACKING ALGORITHM) PADA MASALAH KNIGHT S TOUR

Penerapan Algoritma Runut-Balik untuk Menyelesaikan Permainan Pencarian Kata

Penerapan Algoritma Branch and Bound untuk Penentuan Jalur Wisata

Pemanfaatan Algoritma Sequential Search dalam Pewarnaan Graf untuk Alokasi Memori Komputer

Algoritma Runut-balik (Backtracking)

Penerapan Algoritma Greedy untuk Memecahkan Masalah Pohon Merentang Minimum

Penggunaan Algoritma Backtracking Untuk Menentukan Keisomorfikan Graf

Penerapan Algoritma Brute Force pada permainan Countdown Number

Aplikasi Algoritma Traversal Dalam Binary Space Partitioning

Penggunaan Algoritma Greedy untuk Mencari Solusi Optimal dalam Permainan Brick Breaker

PENGGUNAAN ALGORITMA GREEDY DALAM PERMAINAN KARTU BLACK JACK

Penerapan Pohon dengan Algoritma Branch and Bound dalam Menyelesaikan N-Queen Problem

Penggunaan Algoritma Backtracking pada Permainan Mummy Maze

Penerapan Algoritma Brute Force pada Teka-teki Magic Square 3 x 3

Penerapan Algoritma Runut-Balik dan Graf dalam Pemecahan Knight s Tour

I. PENDAHULUAN. Gambar 1. Contoh-contoh graf

APLIKASI PEWARNAAN GRAPH PADA PEMBUATAN JADWAL

Perbandinganan Penggunaan Algoritma Greedy dan Modifikasi Algoritma Brute Force pada Permainan Collapse XXL

Algorima Greedy Pada Self Serve Gas Station

EKSPLORASI ALGORITMA BRUTE FORCE, GREEDY DAN PEMROGRAMAN DINAMIS PADA PENYELESAIAN MASALAH 0/1 KNAPSACK

Penerapan Algoritma Greedy dalam Optimasi Keuntungan Perusahaan Pengiriman Barang

PENGGUNAAN EXHAUSTIVE SEARCH SEBAGAI SOLUSI PERMAINAN SCRAMBLE

Aplikasi Pewarnaan Graph pada Pembuatan Jadwal

Pemanfaatan Directed Acyclic Graph untuk Merepresentasikan Hubungan Antar Data dalam Basis Data

Menyelesaikan Topological Sort Menggunakan Directed Acyclic Graph

Penyelesaian Persoalan Penukaran Uang dengan Program Dinamis

Menghitung Ketinggian Rata-Rata Pohon Terurut

Transkripsi:

Permasalahan Clique dalam Graf Adventus W. Lumbantobing, 13505112 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Innesia if15112@students.if.itb.ac.id S ubgraf merupakan himpunan subset titik simpul dari suatu graf yang terhubung. Pencarian subgraf berarti bertuuan mencari himpunan solusi dari suatu permasalahan besar yang dapat digambarkan dalam graf. Sebuah clique merupakan subgraf tak berarah dari suatu graf yang setiap simpul saling terhubung satu sama lain. S ubgraf merupakan salah satu konsep dasar dalam permasalahan matematis dan pembangunan graf. Dalam bidang informatika pencarian subgraf dapat meliputi pencarian apakah suatu subgraf merupakan permasalahan NP-complete. Terdapat berbagai metode algoritma yang diteliti untuk permasalahan ini. Dalam area topik matematika tentang teori graf terdapat istilah clique, yaitu sebuah subgraf tak berarah yang terdapat dalam suatu graf. Pencarian maksimum clique telah diterapkan dalam seumlah bidang keilmuan, keahlian teknik dan bahkan dalam bidang bisnis. Penerapan tersebut meliputi solusi permasalahan struktur molekul DNA. pemrosesan citra dalam pengaturan arak auh, penyocokan titik koordinat dalam sistem informasi, permasalahan partisi data dalam kepingan memori, pewarnaan graf dan lain-lainnya. Penerapan clique dewasa ini sering dipergunakan dalam bidang bioinformatika. Permasalahan clique ini merupakan permasalahan pencarian solusi yang dianggap cukup sulit, sama seperti permasalahan knapsack, pewarnaan graf, sirkuit Hamilton, n-puzzle dan TS P. S ampai sekarang ini belum dite mukan algoritma yang benar-benar mangkus untuk penyelesaian permsalahan-permasalahan tersebut meskipun untuk beberapa kasus telah ditmukan algoritma yang memberikan solusi yang mendekati hasil yang optimal. Kata kunci: graf, subgraf, clique Gambar 1 Contoh clique dalam graf Dalam gambar 1 diberikan contoh dua buah clique yang dapat dibentuk dari graf tersebut. Dalam suatu graf akan terdapat sebuah clique ika dalam graf tersebut setidaksnya terdapat sebuah upagraf lengkap berumlah k buah simpul yang dapat berdiri sendiri. Jumlah maksimum clique yang munkin diperoleh dari suatu graf V dengan ukuran clique k dapat dirumuskan : (1) Ada 4 permasalahan umum dalam clique: 1. 2. 3. 4. Pencarian maximum clique Pencarian bobot maksimum List maximal clique Memecahkan masalah putusan apakah sebuah graf memiliki subgraf/clique dengan ukuran tertentu I. PENDAHULUAN Sebuah subgraf G = (V,E) adalah subset dari himpunan simpul C V sehingga setiap dua buah simpul dalam C terhubungkan dengan sebuah sisi. Subgraf maksimum adalah subgraf terbesar yang dapat terbentuk dari suatu graf. Jumlah simpul maksimum dari subgraf maksimum dinyatakan dalam ω(g). Salah satu contoh permasalahan dalam pencarian subgraf adalah pencarian subgraf minimum yang menghubungkan setiap simpul dari suatu graf. 2. ALGORITMA 2.1 Maximal clique Menentukan maximal clique dimulai dengan clique dengan satu vertex dan menambahkan satu vertex baru pada graf ke clique sebelumnya. Clique akan bertumbuh dengan menambahkan vertex yang tersisa pada graf. Sebuah vertex akan dimasukkan kedalam clique ika setiap vertex terhububg satu sama lain. Jika tidak maka vertex

tersebut akan diabaikan. Algoritma beralan dengan kompleksitas O(n). 2. 2 Clique dengan ukuran tertentu Algoritma brute force dapat digunakan untuk mencari tahu apakah sebuah graf memiliki clique dengan umlah vertex k. Proses ini dilakukan dengan mencari setiap subgraf dengan umlah vertex k dan mengui coba apakah subgraf tersebut membentuk clique. Algoritma ini memiliki kompleksitas O(n k k 2 ). Terdapat O(n k ) padah proses pengecekan subgraf dan setiap proses terdapat O(k 2 ) simpul yang harus diperiksa. 2.3 List dari maximal clique Proses me-list semua maximal clique dari suatu graf merupakan O(3 n/3 )= O(1.4422 n ). Salah satu algoritma yang dapat digunakan adalah algoritma back-tracking Bron- Kerbosch. Dalam kasus pencarian clique, algoritma ini tidak mangkus dan sulit diimplementasikan untuk permasalahan ini. 3.2 Algoritma Backtracking Misalkan graf G = (V,E) dan integer k, clique merupakan subset U dari V dengan U k sehinga setiap pasangan vertex dalam U saling terhubung. U merupakan k-clique dari graf G. Algoritma back-tracking yang digunakan yaitu dengan menggambarkan graf dalam struktur pohon lalu akar dari pohon dianggap sebagai sebuah clique tunggal. Dua buah clique akan bergabung ika setiap simpul dalam kedua buah clique saling terhubung. Berikut adalah contoh yang menunukkan pencarian clique dari graf G dengan k =3 : 2.4 Mencari clique maksimum Algoritma yang tercepat untuk permsalahan ini adalah algoritma Robson yang dikembangkan berdasarkan algoritma Bron-Kerbosch dengan O(2 0.249n )=O(1.1888 n ) 3. METODE Clique dapat dicari dengan menggunakan algoritmaalgoritma brute-force, back-tracking dan algoritma Bron- Kerbosch dan algoritma pencarian lainnya. Gambar 3 Graf G dengan k=3 a. Algoritma back-tracking dengan menghitung semua kemungkinan dari setiap upagraf lalu memeriksa ika simpul tersebut terhubung dengan simpul lainnya dan ukuran clique bernilai k. 3.1 Algoritma Brute Force Dalam pencarian k-clique (clique berukuran k buah simpul) dengan algoritma brute-force dilakukan pengurutan set-set dengan nilai k. Untuk setiap simpul dalam tiap set yang bersesuaian dilakukan pemeriksaan ika setiap simpul saling bertetangga atau terhubung. Gambar 4 Metode back-tracking I graf G b. Algoritma back-tracking yang hanya memeriksa upagraf yang simpul-simpulnya saling terhubung dengan simpul yang lain dan memeriksa ukuran clique dengan nilai k. Gambar 2 Proses pencarian 4 vertex subgraf clique dalam suatu graf secara brute force

Pseucode untuk mengambil daftar vektor dalam S sesuai dengan algoritma di atas dituliskan sebagai berikut: Gambar 5 Metode back-tracking II graf G (metode cutoffs pruning) Algoritma back-tracking yang kedua dengan metode cutoffs pruning lebih mangkus karena dengan algoritma tersebut upagraf yang tidak termasuk solusi tidak diperiksa lebih dalam lagi dengan metode DFS. Dari hasil pencarian dengan algoritma back-tracking, dari kedua cara tersebut memberikan hasil clique yang sama yaitu upagraf antara simpul 2,3,5 dan antara simpul 3,4,5 dan tiap simpul dari upagraf-upagraf tersebut saling terhubung satu dengan lainnya. Pseucode untuk pencarian k-clique dengan menggunakan back-tracking dengan metode cutoffs pruning dengan masukan graf sebagai vektor dan sebuah bilangan integer : CliqueBT (input A:vektor, :integer) { ika sama dengan ukuran clique, k, maka A adalah k-clique dari graf } Algoritma: if ( == sizeclique) numclique++ return = + 1 if ( <= sizeclique) { S adalah semua kemungkinan vektor dari -clique } S = getvektor (A) if (S tidak kosong) { Untuk setiap kemungkinan dari S, lakukan bac-tracking secara rekursif untuk k-clique } for (untuk setap vektor a dalam S CliqueBT (a, ) ) getvektor (Vector A) daftarvektor { adalah S, list semua vektor untuk clique } { Jika A kosong, S adalah vektor pada tiap simpul tunggal dalam graf. } if (A kosong) daftarvektor.add (setiap simpul dalam graf) { Hitung semua daftar vektor } for (tiap elemen > A.elemenAkhir) issemuaterhubung := true { Periksa ika berdekatan dengan Semua verteks dalam A } for (tiap tetangga i dari ) if ( i and tidak terhubung) { Cutoffs pruning } issemuaterhubung := false break if (issemuaterhubung == true) daftarvektor.add (s ) return daftarvektor Algoritma tersebut di atas bertuuan untuk mencari clique dalam suatu graf. Sedangkan untuk mencari clique maksimum (atau sering uga disebut Maximum clique problem) algoritma umumnya (tanpa menggunakan algoritma back-tracking) adalah sebagai berikut: maximumclique(input:ccvektor,daftarvektor, I/O: k) while daftarvektor ø pilih x dalam daftarvektor lalu buang simpan daftarvektor tambah x ke ccvektor buang simpul y dari daftarvektor if filter (ccvektor,daftarvektor,k) if daftarvektor = ø k ccvektor maksclique(ccvektor,daftarvektor,k)

remove x from Current restore Candidate endwhile Berikut adalah skema algoritma Bron-Kerbosch dalam contoh graf pada Gambar 1: 1. Inisialisasi. Suatu clique ditemukan ika dan hanya ika tidak ada kandidat lagi dan tidak ada simpul dalam himpunan NOT ika tidak, maka clique tidak maksimal filter (input:ccvektor,daftarvektor, I/O: k) lanut false for setiap y dalam daftarvektor if (y) daftarvektor + ccvektor < k buang y dari daftarvektor if daftarvektor + ccvektor < k lanut true Gambar 6 Clique pertama dalam graf 2. Prosedur rekursif. a. Masukan salah satu simpul kedalam set NOT sehingga terdapat tiga simpul dalam subgraf dan terdapat dua kandidat tersisa while lanut return true 2.3 Algoritma Bron-Kerbosch Gambar 7 Pembangkitan simpul kandidat b. Algoritma Bron-Kerbosch merupakan algoritma backtracking secara rekursif yang mencari maximal clique dalam graf G. Mencari semua subgraf dalam graf membutuhkan biaya yang besar. Jumlah clique dapat bertumbuh secara eksponensial sesuai dengan pertambahan simpul pada graf. BronKerbosch1(R,P,X): if P and X are both empty: report R as a maximal clique for each vertex v in P: BronKerbosch1(R {v},p N(v),X N(v)) P := P \ {v} X := X {v} Algoritma Bron-Kerbosch dapat menemukan semua clique dalam waktu linear dan merupakan salah satu algoritma yang tercepat dalam pencarian clique saat ini. 1. Simpul yang termasuk dalam suatu clique dalam graf dilambangkan dengan 2. Kandidat, yaitu simpul yang terhubung dengan subgraf 3. NOT, simpul yang sudah valid yang merupakan bagian dari subgraf dan tidak diakses lagi 4. Kandidat yang dipilih 5. Simpul yang tidak dimasukkan dalam pencarian Pilih sebuah kandidat, dan tambahkan ke himpunan subgraf Gambar 8 Pemilihan kandidat c. Pilih kandidat baru dan himpunan NOT untuk rekursif berikutnya dengan memasukkan simpul yang tidak terhubung dengan kandidat Gambar 9 Rekursif pemilihan kandidat baru

3. Terminasi. Jika tidak ada kandidat lagi atau terdapat simpul dalam himpunan NOT yang terhubung dengan semua simpul subgraf. BronKerbosch2(R,P,X): if P and X are both empty: report R as a maximal clique choose a pivot vertex u in P X for each vertex v in P \ N(u): BronKerbosch2(R {v},p N(v),X N(v)) P := P \ {v} X := X {v} Dengan menggunakan metode pivot, umlah proses rekursif dapat diminimumkan sehingga algoritma BronKerbosch merupakan O(3 n/3). 3. HASIL IMPLEMENTASI Algoritma bruteforce dinilai kurang mangkus dalam menyelesaikan persoalan ini karena sangat membutuhkan biaya dan waktu yang besar. Algoritma backtracking memberikan hasil yang cukup baik. Kemangkusan k-clique dengan algoritma back- Gambar 10 Hasil ui coba pencarian clique dengan backtracking tracking bergantung pada struktur dari graf itu sendiri, algoritma tersebut masih memiliki kompleksitas waktu untuk kasus terburuk O(n k) dengan nilai k sebagai variabel ukuran dari clique. Nilai n dapat berupa nilai dari simpul atau sisi yang masing-masing dapat dinyatakan dalam suatu fungsi yang saling berlawanan. Fungsi yang dihasilkan merupakan fungsi eksponensial. Algoritma Bron-Kerbosch merupakan algoritma yang dinilai tercepat saat ini dan sangat efektif karena dapat menemukan smua clique dalam suatu graf. Metode bruteforce dilakukan dengan pemeriksaan semua simpul yang terhubung dengan suatu subgraf. Metode backtracking menggunakan graf dalam bentuk pohon untuk mempermudah pencarian dengan metode DFS. Algoritma ini akan memeriksa hubungan antar simpul dalam suatu upagraf dengan upagraf lainnya sekaligus memeriksa ukuran upagraf (nilai k). Akan tetapi, algoritma ini bukanlah algoritma yang mangkus dalam permaslahan pencarian clique. Algoritma back-tracking sangat bergantung pada struktur dari graf, meskipun demikian algoritma ini memiliki kasus terburuk O(n k). Oleh karena itu algoritma ini merupakan algoritma eksponensial dan merupakan NP-complete. Algoritma Bron-Kerbosch dapat menemukan semua clique dalam suatu graf tak berarah. REFERENSI [1] Alon, Noga, dkk,finding a large hidden clique in a ranm graph.tel Aviv University, 1998. [2] M ichaela Regneri, dkk, Finding All Cliques of an Undirected Graph.2007. [3] M unir, Rinaldi, Diktat Kuliah IF2251 Strategi Algoritmik, ITB, 2007. [4] http://en.wikipedia.org/wiki/clique_(graph_theory). Tanggal 7 Desember 2010, Pukul 15.45 WIB. [5] http://en.wikipedia.org/wiki/clique_problem. Tanggal 7 Desember 2010, Pukul 16.00 WIB. [6] http://www.ibluemoo.com/school/clique_algorithm.html. Tanggal 7 Desember 2010, Pukul 16.00 WIB. [7] http://www.dfki.de/~neumann/ie-seminar/presentations/ finding_cliques.pdf Tanggal 7 Desember 2010, Pukul 16.10 WIB. P ERNYATAAN Dengan ini saya menyatakan bahwa makalah yang saya tulis ini adalah tulisan saya sendiri, bukan saduran, atau teremahan dari makalah orang lain, dan bukan plagiasi. Bandung, 8 Desember 2010 4. KESIMPULAN Pencarian clique dari suatu graf dapat dilakukan dengan metode bruteforce, back-tracking, Bron-Kerbosch dan berbagai metode lainnya. Adventus W. L Tobing 13505112