Anda di halaman 1dari 6

Cinta Ramayanti / 22081010002

Tafsiran Penerapan Matriks dari Artikel Berjudul “Fast


Exact Graph Matching Using Adjacency Matrices”

Abstract
Makalah ini memperkenalkan teknik pencarian subgraf graf, yang memungkinkan berbagai
subgraf kompleks untuk dicocokan dalam grafik target terarah atau tidak terarah dengan cepat
dan fleksibel.

1. Introduction
Permintaan untuk algoritma penarian subset grafik yang cepat dan tepat berasal dari
pengembangan game droidRacers. droidRacers adalah gim balap multi pemain dengan trek balap
tak terbatas yang dihasilkan secara prosedural yang dibuat dari grafik. dalam permainan ini
dibutuhkan mekanisme yang cepat.
Status permainan disesuaikan oleh tingkat pengalaman kelompok secara keseluruhan. Untuk
mengatasi masalah ini, gim ini menggunakan apa yang disebut grafik misi. Dengan grafik misi,
transformasi grafik digunakan untuk memungkinkan gameplay adaptif, misalnya mengubah tata
letak trek tergantung pada tingkat keterampilan pemain dan membangun geometri trek baru
setelah menyelesaikan tujuan misi dalam permainan.
Untuk mencapai perubahan permainan ini pencarian konten dan operasi penggantian perlu
dilakukan pada konten game, pola yang diketahui ini diwakili sebagai subgraf yang dicari dalam
grafik target (the gamestate, atau bagian dari gamestate). Ini membutuhkan cepat dan teknik
fleksibel untuk pencarian grafik yang tidak mempengaruhi kinerja dalam lingkungan game
waktu nyata. Banyak metode pencarian subgraf yang ada tidak memenuhi persyaratan untuk
waktu pemrosesan lingkungan game waktu nyata, menyebabkan kinerja yang buruk atau, ketika
mendekati, pencocokan suboptimal. Juga, metode yang ada yang mengandalkan algoritma
evolusioner (genetik) tidak memenuhi standar untuk cara cepat dan interaktif transformasi grafik
di permainan ini; perubahan harus diperkenalkan secara langsung, tanpa kebutuhan evolusi. Oleh
karena itu teknik yang kuat dan cepat pencocokan subgraf grafik yang tepat sangat diperlukan.

2. Adaptive Gameplay
DroidRacers memungkinkan pemain untuk masuk dan keluar yang sedang berlangsung
permainan. Ini mengharuskan konten game langsung diubah sesuai dengan keadaan pemain yang
masuk dan keluar permainan. Trek balap mungkin perlu diubah dan tujuannya dalam game
mungkin perlu diubah sesuai dengan set pemain baru. Penelitian sebelumnya pada generasi trek
balap pribadi memanfaatkan algoritma evolusioner (genetik) untuk mencapai hal ini. Sejak status
DroidRacers perlu disesuaikan secara realtime dan mengharuskan game dimodifikasi tanpa
banyak evolusi, pendekatan evolusi tampaknya tidak cocok untuk DroidRacer. Selain
ketidaksesuaian ini disebabkan oleh evolusi dalam algoritme genetika, pendekatan berbasis
grafik memungkinkan kita untuk mengubah segala bentuk konten dalam permainan; tidak hanya
trek balap yang dapat diubah saat runtime, tetapi kami juga dapat memperkenalkan tujuan baru
atau kami dapat menyesuaikan ruang permainan. Hampir setiap struktur dalam game mungkin
diwakili oleh grafik dan ditransformasikan sesuai dengan peristiwa tertentu dalam permainan.
Dengan kata lain, mengimplementasikan algoritma pencocokan grafik yang cepat
memungkinkan untuk membuat game balapan tanpa akhir yang terus-menerus mengadopsi
kontennya ke set pemain yang berubah

3. Matching
Misal G adalah graph yang memiliki sifat-sifat berikut :
 Gn ditetpkan sebagai Node
 Ge = (n1, n2) himpunan 2 elemen tupel sebagai tepi e
 n1 ∈ Gn, n2 ∈ Gn
Himpunan Ge mungkin disimpan dengan cara yang berbeda dalam implementasi, misal set node
per node untuk menyimpan tepi atau, seperti diusulkan, matriks ketetanggaan.

4. Traditional Searching
Sebuah algoritma akan menyimpan tepi sebagai set node. Menggambarkan subgraf A dengan
properti berikut :

 An sebagai satu set node yang ada di A


 Aout sebagai tepi keluar
 Ain sebagai tepi masuk
 Aout ⊆ An, Ain ⊆ An
Dan graf G yang ditargetkan oleh properti berikut dan struktur tepi yang dijelaskan sebelumnya :
 Gout sebagai tepi keluar
 Gin sebagai tepi masuk
 Gout ⊆ Gn, Gin ⊆ Gn

Implementasi dari algoritma pencarian tradisional ini akan kemudian secara rekursif mencari
setiap node di Gout untuk sebuah node di Aout mulai dari setiap node di Gout. Ini akan
menyebabkan waktu pemrosesan eksponensial, tidak dapat diterima di lingkungan waktu nyata
serta tingkat rekursi yang tidak diinginkan yang membuatnya lebih sulit untuk mencari subgraf
yang lebih kompleks

5. Our Alghorithm
Berbeda dengan algoritma pencarian yang disebutkan sebelumnya, algoritme kami menggunakan
matriks ketetanggaan sebagai cara untuk menyimpan dan cepat mencari melalui tepi. Matriks
ketetanggaan

dibangun oleh fungsi sederhana (seperti yang terlihat pada gambar 4, memiliki a sebagai matriks
ketetanggaan untuk grafik, C sebagai himpunan dari koneksi dan l sebagai ukuran matriks).
untuk (Koneksi koneksi : C) {
pA = koneksi.A.Posisi;
pB = koneksi.B.Posisi;
a[pA][pB] = 1;
++a[pA][l - 1];
++a[l - 1][pB];
}
Gambar 4: Fungsi konstruksi kedekatan sederhana
Dalam implementasi harus ada penyimpanan untuk baris dan ukuran kolom, mudah untuk
menyimpan data ini sebagai elemen terakhir baris atau kolom, untuk menyediakan akses cepat
saat melakukan iterasi baris dan kolom. Elemen-elemen ini kemudian digunakan untuk
melakukan operasi penyortiran pada set yang diperlukan sebelum operasi pencarian apa pun.
Matriks ketetanggaan berikut m dibangun: dari grafik seperti yang disajikan pada gambar 1.
Baris dapat dilihat sebagai node keluar, sedangkan kolom menggambarkan yang masuk node. 1
sebagai elemen menyatakan koneksi, 0 menyatakan koneksi tidak ada.

Gambar 5: Pseudocode ekstraksi pola


dibutuhkan setiap kali jenis node tidak bertemu. Manfaat lain dari pendekatan ini adalah bahwa
koleksi pola mengembun sementara lebih banyak kecocokan ditemukan, karena pola-pola ini
divalidasi pada kecocokan, persyaratan pencarian dalam bentuk pola menjadi lebih sempit.
Gambar 7: Fungsi pencarian dalam kecocokan

Gambar 8: Cari titik masuk


sampai baris terakhir r = |Gn|. Algoritma dapat dipecah menjadi tiga bagian seperti yang terlihat
pada gambar 7, gambar 9 dan gambar 8. Dimana pseudocode yang disajikan pada gambar 8
dapat dilihat sebagai titik masuk ke operasi pencarian, memasok subgraf sebagai O dan
himpunan kosong R digunakan untuk hasil pencarian penyimpanan.

6. Flexibility
Teknik pencarian tradisional secara rekursif melintasi ke cabang terbatas dalam fleksibilitas. Saat
berpegang pada kasus ini dari pencocokan subgraf sederhana saja, ada kasus di mana metode ini
tidak sesuai dengan definisi eksak pencocokan grafik.
Gambar 9: Cari fungsi pola

Gambar 10: Contoh grafik


untuk memastikan bahwa pencarian selalu dijepit dalam kerangka pemrosesan yang bergantung
pada implementasi, tetapi juga untuk membuat yakin bahwa operasi pencarian tidak macet dalam
lingkaran tak terbatas.

Gambar 11: Contoh subgraf


Saat mencari pola seperti yang ditampilkan pada gambar 11, setiap kali simpul tipe A ditemukan,
setiap keluar koneksi perlu disimpan dalam S. S kemudian pada gilirannya perlu dicari pola A →
B, sebelum mencari untuk pola lain; dalam contoh khusus ini tidak ada.

Gambar 12: Contoh subgraf

Gambar 13: Contoh subgraf


Contoh lain dari kasus pencocokan yang lebih kompleks diberikan pada gambar 12 yang harus
sesuai dengan subgraf yang disajikan pada gambar 13. Saat menjalankan operasi pencarian pada
skenario ini : algoritma pencarian harus mengembalikan dua set node yang terpengaruh: {A5,
A1, B2, B3, B4} dan {A0, A1, B2, B3, B4}. Algoritma kami mencakup kasus ini secara alami,
selama himpunan terpengaruh node disimpan dengan hubungan antara entri-node (A5) dan
semua node lainnya

7. Benchmarks
Untuk menguji waktu pemrosesan kedua algoritma. Metode benchmarking yang dipilih adalah
menghasilkan grafik dari random matriks ketetanggaan dan cocokkan grafik ini dengan penuh
subset dari grafik target itu. Kompleksitas grafik kemudian ditingkatkan dengan
memperkenalkan lebih banyak node ke grafik. Untuk semua algoritma pencarian hanya operasi
pencarian yang diatur waktunya, pengaturan waktu dilakukan dengan menggunakan fungsi
pengaturan waktu C++ standar
Gambar 14: Grafik yang menunjukkan waktu pemrosesan dari Algoritma Ullmann (garis
merah), algoritma kami (hijau garis) dan algoritma VF2 (garis biru).

Seiring dengan jumlah node, jumlah koneksi juga meningkat dengan setiap peningkatan
kompleksitas, tabel berikut menunjukkan jumlah koneksi dalam hubungan: dengan jumlah node.

8. Conclusion
pencarian ubgraph dalam grafik memungkinkan untuk memecahkan berbagai masalah
dalam ilmu komputer dengan cara yang rapi dan cepat dan memungkinkan untuk operasi
pencarian dan penggantian yang akan dilakukan. Algoritme tradisional terbatas dalam efisiensi
dan fleksibilitas, menyebabkan pencarian atau kinerja yang kurang optimal. Pencarian algoritma
untuk subgraf diperlukan untuk memungkinkan pencarian cepat dari subgraf tersebut dalam
grafik target. Algoritma kami menawarkan cara cepat untuk mencari subgraf dalam grafik,
sementara masih menawarkan fleksibilitas penuh. Membuka kemungkinan baru untuk tata
bahasa grafik untuk memungkinkan jenis simpul yang lebih kompleks untuk dicari dalam grafik
dan dengan demikian memungkinkan tata bahasa yang lebih kompleks untuk dibuat

Anda mungkin juga menyukai