Implementasi Prinsip MDL untuk Kompresi Graph Database Menggunakan Algoritma Greedy
Implementasi Prinsip MDL untuk Kompresi Graph Database Menggunakan Algoritma Greedy
Harris Febryantony Z 1 , Kemas Rahmat Saleh W, ST., M.Eng 2 , Alfian Akbar Gozali, ST., MT 3
1,2,3 Fakultas teknik Informatika – Universitas Telkom
1 harryz@students.telkomuniversity.ac.id , 2 bagindokemas@tass.telkomuniversity.ac.id ,
3 alfian@tass.telkomuniversity.ac.id ,
Abstrak
Graph secara konsep merupakan abstraksi yang secara fundamental telah lama dipakai, yang memungkinkan untuk memodelkan pada sistem di dunia nyata. Begitu pula pada data, data jenis apapun dapat dimodelkan relasi antar data tersebut menggunakan graph. Graph database diadopsi untuk memudahkan dan membantu dalam memahami, memodelkan, serta menganalisis suatu proses. Graph database sangat cocok digunakan pada data bersifat tidak terstruktur dan semi terstruktur dibanding relational database yang mana memiliki kelemahan jika data dan ukuran tabel bertambah menyebabkan kemungkinan join antar tabel sangat besar. Dalam aplikasinya jumlah data pada graph database semakin lama akan berkembang semakin besar menjadi jutaan bahkan miliaran node dan edge, sehingga cost untuk untuk melakukan analisa dan visualisasi graph databse menjadi sangat besar untuk kemampuan sistem saat ini. Untuk menyelesaikan permasalahan tersebut maka diperlukan suatu metode untuk mengurangi ukuran dari graph tetapi tetap menyimpan informasi-informasi penting dari graph. Dengan menerapkan prinsip Rissaenen ’s Minimum Description Length (MDL) dan melakukan penggabungan secara greedy serta mengombinasikan dengan representasi graph G yang terdiri dari Graph Summary dan sebuah set Correction , maka dapat dihasilkan graph database yang dikompres dengan baik.
Kata Kunci: graph database, graph summarization, graph representation, MDL principle, lossles, lossy, compression, greedy, Rissaenen ’s Minimum Description Length
Abstract
Graph is an abstract concept that is fundamentally has been used, which allows to model the real world system. So did in data, any type of data can be modelled using the relationship of graph. Graph database was adopted to facilitate and assist in understanding, modeling, and analyzing a process. Graph database very suitable to use in unstructured and semi-structured data, compare to relational database which have a disadvantage that when increasing data that involving increasing possibility of joining between table. As well, the need to analyze and visualize large database. In application, the amount of data in graph database are rapidly growing to millions and event billions of nodes and edges so the computation cost to perform analysis and visualization of the graph can be very hard for current system capabilities. To resolve these problem above, we need a method that can reduce the size of the graph without losing it important information, by implementing the Principle of Minimum Description Length Rissaenen's (MDL) with greedy to merge and combine it with the representation graph G which consists of Graph Summary and a set of Correction, then the resulting graph database is highly compressed.
Keywords: graph database, graph summarization, graph representation, MDL principle, lossles, lossy, compression, greedy, Rissaenen ’s Minimum Description Length Keywords: graph database, graph summarization, graph representation, MDL principle, lossles, lossy, compression, greedy, Rissaenen ’s Minimum Description Length
’s Minimum Description Length (MDL).
1. PENDAHULUAN
Graph representation ini memungkinkan Teori graph telah secara aktif diteliti dan supernode untuk memiliki self-edges, yang ditingkatkan oleh matematikawan, sosiolog, sangat efektif untuk menyatukan kelompok antropolog, serta berbagai bidang keilmuan yang berdekatan menjadi satu supernode. lainnya. Semenjak pelopori oleh Euler pada Kedua, di sini menyimpan superedge antara abad ke 18 hingga sampai pada masa sekarang
1.1. Latar Belakang
supernode � dan � hanya jika node di 𝑨 ini. Tidak terkecuali, dunia teknologi informasi
sangat dek terhubung dengan 𝑨 � . Sehingga � secara representasi ini lebih sedikit ter-cluster, ukuran
juga ikut berpartisipasi dalam penerapan, kecil, dan lebih cocok untuk visual data mining penelitian, serta penggunaan teori graph, salah
satunya adalah pada graph database. Graph database telah menjadi tren saat ini
karena kemampuannya dalam memproses data-
data yang bersifat struktural dan semi struktural
dibanding RDBMS(Relational Database
memodelkan permasalahan dunia nyata yang
mencakup pada
rekomendasi, World Wide Web(WWW), pemantauan jaringan, manajemen data center, serta banyak lainnya. Hal ini juga digerakkan
oleh kesuksesan
secara
komersial oleh
perusahaan-perusahaan besar seperti Facebook, Gambar 0-1 Perbandingan Algoritma Google, dan Twitter [1] yang telah memusatkan
Kompresi Graph [2] bisnis model mereka pada teknologi graph. Sejalan dengan perkembangannya, ukuran
dapat dilihat graph database ikut berkembang secara masif.
padaGambar 0-1, greedy memberikan kompresi Sehingga merupakan suatu tantangan untuk
tertinggi pada graph representation dibanding melakukan visualisasi serta analisis terhadap
metode kompresi yang ada, serta dengan cost informasi pada database dengan milyaran
melakukan komputasi yang minimum dan bahkan triliunan node dan edge. Database
efektif.
tersebut terlalu besar untuk dimasukkan
2. LANDASAN TEORI
semuanya ke dalam memory [2] sistem saat ini.
Oleh karena itu diperlukan representasi graph sekumpulan objek Sebuah graph � = (��, ��) dibentuk oleh 𝑉 = {� 1 , � 2 , � 3 , … } yang
2.1. Teori Graph
database tersebut dengan ukuran yang lebih disebut himpunan node (vertex, titik, atau kecil.
simpul) dan sebuah himpunan objek 𝐸= Ada berdapat beberapa algoritma kompresi
1 , � 2 , � 3 , … } yang disebut himpunan edge(line atau sisi) sedemikian hingga tiap edge
graph database, seperti: Reference � �
Encoding(REF) [3]-teknik ini sangat sukses dan menghubungkan pasangan node ( � � , � � ). Atau
populer untuk
secara sederhana graph dibentuk dari node dan Graclus(Grac) [4]-ini merupakan algoritma
kompresi
web-graph;
edge yang menghubungkan antar node. Cara graph clustering yang membagi node dari graph
menggambarkan atau berbobot menjadi cluster sehingga jumlah
umum
untuk
adalah berupa bobot
merepresentasikan
graph
diagram, yaitu dengan menggambar sebuah titik Sampling(SAMP)-metode
untuk setiap node dan menggabungkan kedua sederhana.
edge
sampling
titik tersebut dengan sebuah garis(edge). Garis Dalam penelitiannya S. Navlakha, R.
penghubung tersebut dapat berupa garis lurus Rastogi dan N. Shrivastava [2], mereka
atau garis lengkung, Demikian pula ukurannya, mengemukakan teknik
dalam penggambaran bukanlah satu yang komputasi
untuk
melakukan
yang perlu menghasilkan hasil kompresi dengan baik,
diperhatikan. Hal terpenting
diperhatikan adalah incidece antara node dengan representasi tersebut terdiri atas dua bagian:
edge-nya, perhatikan contoh graph berikut: pertama graph summary(lebih kecil dari graph
Dalam graph memiliki himpunan node 𝑉 = input) yang menampung cluster penting dan
{ � 1 , � 2 , � 3 , � 4 , � 5 } dan edge 𝐸 = hubungan di dalam graph input, bagian kedua
adalah suatu set correction yang nantinya jika
atau bisa dituliskan
kembali graph input. Untuk membentuk representasi graph, digunakan algoritma greedy kembali graph input. Untuk membentuk representasi graph, digunakan algoritma greedy
�� � dari node dalam �, dan setiap edge (�, �) ∈ Dalam graph derajat sebuah node u adalah
�� 𝑆 , disebut dengan superedge yang jumlah edge yang terhubung dengan node
merepresentasikan edge antara setiap pasang tersebut. Karena pada graph tak berarah sebuah
�� � . Bagian kedua dari edge bisa berarah keluar dari sebuah node atau
node di �� � dan
representation adalah sebuah himpunan masuk dari sebuah node, maka derajat sebuah
correction 𝐶 yang berisi koreksi dari superedge node pada graph tak berarah dikalikan dengan
untuk edge pada graph G, yang memiliki notasi
2. Derajat rata-rata sebuah graph merupakan positif ( ′ + ′) atau negatif (′ − ′).
jumlah edge dalam sebuah graph dibagi dengan Penggunaan struktur summary � pada
jumlah nodenya.
Perhitungan ini dapat
representasi graph adalah untuk memanfaatkan kesamaan struktur hubungan antar node yang
digunakan untuk mengetahui kepadatan suatu graph. Pada graph tak berarah, derajat rata-
secara umum banyak terdapat pada graph. Jika dua node memiliki edge ke sebuah himpunan
ratanya dapat dihitung dengan rumus:
𝐽� �� � ℎ � �𝑔 node yang sama(atau set sangat mirip), maka
kedua node tersebut dapat digabungkan
2.2. Graph Database
menjadi satu edge yang kemudian disebut
Salah satu penerapan teori graph pada dengan supernode kemudian kedua edge bidang teknologi informasi adalah graph
menuju tetangga yang sama diganti dengan database, yaitu struktur data yang menggunakan
sebuah superedge. Jika kedua node yang graph untuk merepresentasikan entitas satu
digabungkan dihubungkan oleh sebuah edge, objek sebagai node dan bagaimana entitas itu
maka tambahkan self-edge pada supernode berhubungan
hasil penggabungan. Ini jelas akan mengurangi objek), yang mana hubungan tersebut sebagai
dengan
lingkungannya(antar
jumlah total edge yang akan disimpan secara edge.
merepresentasikan informasi terkait node dan Pada bagian correction 𝐶 memiliki fungsi edge.
untuk menyimpan koreksi terhadap superedge Model graph yang paling banyak digunakan
( �, �) ∈ �� 𝑆 pada saat melakukan pembentukan
[1] pada graph database adalah model property kembali dari summary graph menjadi graph graph. yaitu struktur graph yang terdiri atas
awal. 𝐶 berisi entri dengan bentuk ′ − (�, �)′ node,
untuk edge yang tidak terdapat pada �, jika
merepresentasikan dan menyimpan data, seperti superedge yang sama tidak dimasukkan ke contoh pada Gambar 0-2 dibawah ini:
dalam �)′ untuk edge yang terdapat dalam �. �, 𝐶 akan berisi entri dengan bentuk ′ + (�, Rekonstruksi dari summary graph dilakukan
dengan mengembangkan summary �, sehingga
Id: 21
Type: Group Id:3 Label :Bergabung Name:Pelaut Sejak :1996
Id:1 supernode dipecah kembali menjadi node-node
g n bu a Nama: luffy pembentuknya. Untuk setiap supernode bentuk node baru pada himpunan �∈ 𝑉 ,
Id: B �, �) ∈ ��
21 e Umu r: 18 rg 1997 : kemudian pada setiap superedge ( , �� � 𝑆 ,
S e k tambahkan edge antar semua pasangan node el 𝑆 : ja
La b ( �, �) sehingga � ∈ �� � dan � ∈ �� � . Dari
Id:2 pengembangan superedge tersebut,
Nama: zorro
Umur: 19 memungkinkan adanya edge hasil bentukan yang seharusnya tidak terdapat pada graph �
Gambar 0-2 Contoh Struktur Graph Databse mana setiap node �∈ 𝑉 𝑆 , disebut dengan
2.3. Representasi Umum Graph
Representasi dari sebuah graph merupakan gambaran gambaran terhadap graph terseut. tersebut. Secara umum, untuk merepresentasikan sebuah graph
[2] dapat
dijabarkan sebagai berikut, jika diberikan � adalah � = (�, ��) yang terdiri dari graph sebuah graph � = (𝑉 𝐺 , 𝐸 𝑔 ), representasi untuk graph summary edge corrections � = (𝑉
��. Graph summary 𝑆 , �� 𝑆 ) dan sebuah himpunan
tersebut merupakan struktur graph agregasi, di tersebut merupakan struktur graph agregasi, di
��.
Dilakukan dengan cara: didefinisikan fungsi berisi entri ada dalam graph ekuivalen
��(�) yang memetakan buah representasi � ke � jika dan hanya jika salah satu (a) 𝐶 superedge ( � sehingga sebuah edge (�, �) dan
′ + (�, �)′, atau (b) � berisi Jika 𝐶 tidak memiliki entri ′ − (�, �)′. menyoroti struktur dan pola kunci dari graph �, �) sehingga � ∈ �� � merupakan graph summary yang � dan � ∈ �� � maka corrections
𝐶 memungkinkan untuk �,
merekonstruksi keseluruhan graph. Berikut adalah gambaran graph beserta graph summary- nya:
lebih kecil dibanding cost penyimpanan term pertama | himpunan edge �� dan ��). Pada persamaan cost, jika kedua |
�� 𝑆 ��| sama dengan (B). Dengan demikian, 𝑆 | sama dengan (A) dan term ̂ = (̂, 𝐶̂ ) menunjukkan cost minimal representation, maka prinsip MDL mengatakan bahwa ̂ merupakan “kemungkinan terbaik” summary dari graph. Dengan kata lain ̂,
̂ yang mana merupakan graph �, juga
sebagai tambahan sebagai representasi yang terkompresi mengandung terbaik dari graph
summary terbaik. Sehingga cost minimal Gambar 0-3 Kiri: Graph Original. Kanan
representasi ̂ disebut dengan representasi Graph Representatio yang Berisi Graph
Summary(s), Correction(c), dan Pemetaan representasi Himpunan edge supernode yang terdapat dalam �, ditentukan hanya berdasarkan �� 𝑆 dan 𝐶 akibat dari cost 𝑉 𝑆 Supernode . Cara menghitungnya dilakukan sebagai berikut,
MDL [2].
anggap supernode sembarang � dan � dalam Pada Gambar di atas, memperlihatkan graph
𝑉 𝑆 . Definisikan �� �� sebagai himpunan dari yang dikompres dari ukuran (jumlah edges) 11
�, �), sedemikian sehingga menjadi 6 (4 pada graph summary dan 2 pada
semua pasangan (
dan b ∈ �� � ; set ini merepresentasikan correction), untuk melakukan rekonstruksi dari
semua kemungkinan edge pada graph � yang
graph di atas , dilakukan dengan memilih mungkin ada antar kedua supernode tersebut. tetangga dari sebuah node (misal g) di dalam
Selanjutnya, didefinisikan �� �� ⊆ �� �� sebagai graph, langkahnya sebagai berikut: Pertama,
himpunan edge yang benar-benar ada dalam temukan supernode(y) yang mengandung g.
graph original �(�� �� = �� �� ∩ �� 𝐺 ). Sekarang. Kemudian tambahkan edges dari g ke semua
Kita memiliki dua cara untuk enkoding edge node pada supernode yang bertetangga dengan
pada �� �� menggunakan struktur summary dan y. Ini menghasilkan edges
corrections. Cara pertama adalah untuk {(g,a),(g,d),(g,e),(g,f)}. Selanjutnya, lakukan
edges menambahkan superedge ( untuk menambahkan node dalam himpunan �� ��, dan yang kedua adalah untuk �� − �� �� sebagai correction negatif �, �) untuk � dan �� koreksi ke himpunan edge, yaitu dengan
sebagai correction positif untuk ��. Memori �� yang dibutuhkan untuk kedua alternatif adalah
menghapus semua edge dengan entri ‘-’(edge (1 + | �� �� − �� �� |) dan (| �� �� |). Kemudian (g,d)), dan tambahkan edge dengan entri
‘+’(tidak ada pada contoh ini). Ini dipilih mana yang kebutuhan memorinya lebih
kecil untuk enkoding edge �� �� [2]. Maka menghasilkan set edge pada tetangga g sebagai
menghitung cost untuk merepresentasikan {(g,a),(g,e),(g,f)}, yang sama dengan graph
himpunan edge �� �� antara supernode � dan � original. Tahapan ini bisa dilakukan berulang
graph �.
pada semua node
� superedge ( �� 2.4. Representasi MDL = ���{|�� �� − �� �� | + 1, | �� |} Selanjutnya � jika dan hanya jika �� correction positif dan negatif �, �) akan ada pada graph summary �� >( �� �� �� + 1) ∕ 2; Prinsip Minimum Description Length
𝑉 𝐺 untuk merekonstruksi
dalam representasi adalah:
kemudian dipilih berdasarkan hasil perhitungan (MDL)
inferensi(penarikan kesimpulan) induktif yang
2.5. Algoritma Greedy dalam Kompresi
memberikan
solusi umum
pemilihan masalah [8], MDL berdasarkan pada Dalam kompresi graph database, greedy pemahaman berikut: setiap regularitas dalam
akan membentuk kandidat solusi dengan data dapat digunakan untuk untuk mengompres
melakukan perhitungan terhadap nilai cost data tersebut, misalnya untuk menggambarkan
reduction pada sembarang pasangan node dam suatu data menggunakan simbol yang lebih
graph. Menurut pengamatan Saket Navlakha [2], sedikit dibanding penggunaan simbol yang
sembarang pasangan node akan memiliki nilai diperlukan sebenarnya. Secara kasarnya [2],
cost reduction jika pasangan tersebut memiliki MDL menyatakan bahwa teori terbaik untuk
tetangga yang sama. Semakin besar jumlah menyimpulkan suatu bentuk set data adalah
tetangga yang sama semakin besar pula yang meminimalisasi jumlah dari (A) ukuran dari teori dan (B) ukuran data ketika di encode dengan teori.
Untuk penerapan dalam graph, data merupakan graph input summary � dan correction 𝐶 secara � sedangkan teori adalah esensial merepresentasikan enkoding data sehubungan dengan teori. Didefinisikan cost dari representation � = (�, ��) menjadi jumlah
storage cost dari dua komponennya sendiri, sehingga menyimpan dan memetakan ����(�) = |�� 𝑆 | + | ��|. (hiraukan cost supernode
karena ini secara umum �� � �∈ 𝑉 untuk 𝑆 karena ini secara umum �� � �∈ 𝑉 untuk 𝑆
dilakukan proses tersebut. Berdasarkan observasi tersebut maka
komputasi sedemikian sehingga menghasilkan dapat definisikan �(�, �) adalah cost reduction
representasi graph yang terkompres dan
untuk sembarang pasangan supernode summary -nya yang dapat dijadikan untuk ( �, �) dengan persamaan sebagai berikut:
analisis lebih lanjut. Untuk mengetahui �(�, �) = (�
validitas hasil representasi graph dilakukan Definisikan
dan v ∈𝑉 𝑆 , dengan
rekosntruksi terhadap graph representasi untuk himpunan tetangganya masing-masing �� � dan dilakukan perbandingan hasil query dengan
�� , terdapat edge ( �, �) dalam graph � dengan � graph input. Berikut gambaran umum dari node � ∈ �� � dan � ∈ ��
� Pada persamaan di
sistem yang akan dibangun:
atas, nilai �(�, �) didapat dari perhitungan
3.2. Graph Summaryzation
perbandingan atau rasio pengurangan dari: cost
berfungsi untuk hasil penggabungan digabungkan. Di mana nilai baru �, dan jumlah cost � dan � sebelum � dan � menjadi supernode dari supernode � yang didapat dengan � � merupakan cost
Graph summaryzation
melakukan komputasi terhadap graph masukan, menjumlahkan semua cost dari superedge
keluaran berupa ( �, �), � merupakan tetangga dari nodesuper �
kemudian menghasilkan
representasi graph dalam bentuk summary dan dengan � ∈ �� � , lihat persamaan, maka nilai correction dengan kompresi yang baik. � � = � �� = ���{|�� �� − �� �� | + 1, | �� �� |} Library Graphstream [10] digunakan untuk
Alasan memilih bagian kecil daripada cost memudahkan perhitungan, pemodelan struktur reduction absolut adalah bahwa akhir secara
data, visualisasi graph, serta fungsionalitas inheren terbias ke arah node dengan derajat
lainnya. Pada graphstream terdapat objek lebih tinggi. Dikarenakan pada dasarnya
graph, node, dan edge yang dapat ditambahkan memilih pasangan node dengan jumlah
atribut dengan tipe apa saja baik itu tipe primitif tetangga sama yang tertinggi. Node tersebut
(string, integer, array, dst) atau tipe bentukan, juga bisa memiliki jumlah tetangga tak sama
Ini digunakan pada supernode, yang merupakan yang tertinggi. Yang secara tidak langsung
objek node dengan tambahan atribut “node” menyatakan bahwa node tersebut harus
untuk menyimpan node-node pembentuknya. memiliki prioritas lebih rendah dibanding dua
Sedangkan untuk kebutuhan visualisasi graph node dengan derajat lebih rendah dengan set
pada sistem digunakan objek viewer. tangga yang identik. Fractional cost reduction
a. Fase inisialisasi
menjamin bahwa kasus tersebut tidak terjadi Padap fase ini yang proses pertama adalah dengan menormalisasikan cost reduction
membentuk supernode 𝑉 𝑆 dari setiap node 𝑉 𝐺 dengan cost sebenarnya. Sangat penting untuk
graph masukan, kemudian lakukan diamati bahwa normalisasi tersebut tidak
perhitungan cost reduction �(�, �) terhadap membuat cit dari pasangan manapun berganti
semua kombinasi pasangan supernode yang dari negatif menjadi positif(atau kosong) atau
berjarak dua hop.
Perhitungan cost reduction menggunakan menggabungkan sepasang memberi cost
reduction. Maka �(∙) tidak akan menghalangi melakukan perhitungan � � , namun pada � dan � untuk proses ini tidak dilakukan penghapusan node
persamaan memerlukan penggabungan sementara pasangan node
untuk memilihnya dengan cepat. (tapi hanya bisa mengubah urutan). Perhatikan nilai
� dan � tetapi node � akan dihapus setelah perhitungan selesai.
maksimum yang dapat diterima �(�, �) adalah Pemilihan pasangan node yang berjarak .5, ketika set tetangga dari dua mode identik [2].
dua hop dilakukan karena berdasarkan Dalam prosesnya, algoritma greedy secara
pengamatan pada paper rujukan [2] yang mana iteratif menggabungkan pasangan ( �, �) pada pasangan node akan mempunyai nilai cost graph dengan nilai maksimum
reduction �(�, �)(pasangan terbaik). positif jika memiliki tetangga yang
sama. Jika memiliki tetangga yang sama, tentu tetangga tersebut menjadi penghubung antar
3. PERANCANGAN SISTEM
kedua node tersebut yang memberikan jarak
3.1. Deskripsi Sistem
dua hop,
Dalam Tugas Akhir ini akan dibangun dan Selanjutnya, dari hasil perhitungan dilakukan pengujian terhadap sistem yang
didapat nilai cost reduction untuk setiap mengimplementasikan prinsip MDL untuk
pasangan yang di masukkan dalam heap tersebut bernilai positif ( � jika nilai cost reduction ( �, �, �(�, �)) ke melakukan komputasi representasi graph
�(�, �) > 0). Heap � merupakan struktur data Max-heap yang
dengan algoritma greedy terhadap graph input. selalu menempatkan nilai maksimum di posisi Dataset input yang digunakan dalam pengujian
akan selalu sistem adalah dataset SNAP [9]. Kemudian dari
head- nya.Ini
digunakan
memberikan nilai cost reduction maksimum memberikan nilai cost reduction maksimum
memiliki nilai cost reduction positif.
b. Fase Penggabungan Iteratif
c. Fase Output
Setelah dilakukan fase inisiasi maka Fase terakhir merupakan proses diperoleh nilai heap dari setiap pasangan node
menelusuri setiap pasangan supernode penggabungan yang untuk setiap pasangan superedge ( mungkin ( 𝑉 𝑆 ). Prosesnya adalah dengan �, �) hasil � dan Penggabungan
pembentukan edge summary dan correction
untuk
digabungkan.
�, kemudian lakukan perhitungan cost untuk superedge (
�, �), yaitu dengan menghitung supernode dilakukan pada fase ini secara
�� berulang hingga isi heap menjadi kosong.
jumlah edge yang mungkin (
�� )dan jumlah
�� Langkah pertama, ambil satu pasangan
edge yang benar benar ada (
�� ) di antara kedua supernode Dapat dilihat jika
> ( �, �) dari posisi head (dengan nilai cost ( �� �� + 1) ∕ 2 maka superedge akan terdapat reduction maksimum) dari heap. Kemudian
dalam graph. gabungkan pasangan node tersebut menjadi
Dari perhitungan di atas kemudian supernode ( � = � ∪ �). Pada proses lakukan pembentukan data correction dengan penggabungan, setiap node anggota yang
tambahkan correction melihat kondisi: jika �� �� ′ − (�, �)′ untuk > ( �� �� + 1) ∕ 2, berada dalam atribut
tambahkan correction “node” pada � dan � semua ( . �, �) ∈ �� ′ + (�, �)′ untuk semua (�, �� − �� �� , sebaliknya
dimasukkan ke dalam atribut “node” pada � .
3.3. Rekonstruksi Graph
Selanjutnya tambahkan superedge untuk Pembentukan kembali graph summary setiap tetangga � dan � terhadap � , Terdapat
masukan awal
beberapa kondisi penambahan superedge menggunakan summary dan correction, di sini pada penggabungan node, yaitu:
penulis melakukan cara yang sedikit berbeda - Jika pada salah satu pasangan antar
dengan cara pada paper rujukan [2], yaitu node anggota � dengan � terdapat
dilakukan dengan mengembangkan node
edge, maka supernode akan memiliki anggota semua supernode dan kemudian selfedge .
lakukan perbaikan dengan menggunakan data - Jika � dan � memiliki tetangga yang
dari koreksi, berikut proses yang berlangsung
sama, maka superedge ditambahkan
pada proses rekonstruksi:
dari � ke tetangga tersebut.
1. Untuk semua supernode pada ( 𝑉 𝑆 ),
Setelah proses penggabungan selesai, bentuk node baru berdasarkan node- Dikarenakan node maka hapus kedua node
node anggota dari atribut dalam heap yang mengandung 𝑉 𝑆 , maka hapus setiap pasangan dalam � dan � sudah tidak ada � dan � dari 𝑉 𝑆 ’node’pada
� atau �. Kemudian
lakukan perhitungan cost reduction kembali supernode .(semua atribut node anggota dengan mengganti � atau � dengan � untuk
disalin ke dalam node baru)
pasangan yang dihapus tersebut. Selanjutnya �, �) lakukan
2. Untuk semua superedge(
tambahkan ke dalam heap pasangan tersebut penambahan edge untuk setiap pasangan jika memiliki nilai cost reduction positif.
node anggota � dengan �. Misalnya:
3. Tambahkan edge( �, �) untuk setiap - (
�, �)hapus dari heap. ′ + (�, �)′.
entri correction
( �, �)tambahkan ke dalam heap
4. Hapus edge( �, �) untuk setiap entri
correction ′−( �, �)′
jika cost reduction-nya positif.
- ( �, �)hapus dari heap. Setelah proses di atas dilakukan, akan (
�, �)tambahkan ke dalam heap didapat graph rekonstruksi yang sesuai dengan jika cost reduction-nya positif.
graph awal.
Dengan adanya penggabungan � dan �,
4. PENGUJIAN DAN ANALISIS
tidak hanya akan mempengaruhi nilai cost
atau reduction � tetapi juga akan mempengaruhi nilai pasangan yang mengandung �, �, Tujuan pengujian yang dilakukan pada
4.1. Tujuan Pengujian
cost reduction pasangan yang mengandung dengan node (misalkan tetangga � dan/atau � (sekarang menjadi �) yang sebelumnya bertetangga �) ; � ∈ �� penelitian ini adalah:
1. Untuk melakukan analisis terhadap hasil memperbarui nilai heap pasangan yang
dilakukan perhitungan kembali untuk �
. Maka, perlu
implementasi kompresi graph database mengandung � ∈ �� � tersebut, seperti langkah dengan mengimplementasikan algoritma
sebelumnya(penghapusan dan penambahan
greedy .
heap ).
2. Untuk melakukan analis terhadap tingkat Kemudian lakukan perulangan ke langkah
kompresi graph database awal dan hasil pertama hingga didapat hasil optimum, di
kompresi oleh sistem.
3. Untuk melakukan analisis terhadap
4.3. Skenario Pengujian
performasi representasi graph hasil. Untuk mengamati serta mengevaluasi
4. Untuk melakukan pengecekan performa sistem dalam membentuk representasi lossless/lossy compression terhadap graph
graph dilakukan dengan mengujikan pada rekonstruksi dari graph yang dikompres.
masukan dataset yang bervariasi. Setiap graph
masukan akan diproses masing-masing dengan Untuk melakukan pengujian terhadap
4.2. Data Pengujian
greedy yang sistem yang dibangun digunakan graph
menggunakan
algoritma
menghasilkan representasi graph masukan, masukan yang diambil dari beberapa dataset
kemudian dibandingkan dan dihitung parameter- dan juga menggunakan graph masukan yang
parameter seperti waktu, derajat rata-rata, digenerate/dibentuk
rasio kompresi, serta cost reduction- nya. menggunakan beberapa metode pembentukan
4.4. Analisis Hasil Pengujian
graph. Berikut rincian data yang digunakan: Pada bagian ini akan dikemukakan hasil
pengujian dari skenario di atas dan kemudian Dataset untuk graph masukan merupakan
a. Dataset Graph
dilakukan analisis.
dataset dengan jumlah node dan edge
a. Analisis Performa Implementasi Sistem
bervariasi, diambil dari beberapa dataset
1. Analisis Graph Generator Random
gephi yang tersedia pada [5]. Percobaan graph random di atas dilakukan Les Miserables: Merupakan data
pembentukan graph dengan menaikkan hubungan karakter dalam novel Les
jumlah edge pada masing-masing graph dengan Miserables, D. E. Knuth, The Stanford
node 100 dan 1000. Untuk mengetahui GraphBase:
A Platform
for
seberapa besar pengaruh jumlah Combinatorial Computing, Addison-
edge Wesley, Reading, MA (1993).
terhadap besar edge reduction. Dari tabel hasil Facebook: Merupakan dataset graph
di atas dapat dilihat bahwa sistem dapat tidak berarah hubungan pertemanan
mengurangi jumlah edge maksimum yaitu facebook yang di ekstrak dari akun
dengan edge facebook
pada graph
Rand1000_b
reduction sebesar 84% dan pengurangan menggunakan NetGet [11]. NetGet
penulis
sendiri
jumlah edge terkecil adalah pada graph merupakan versi modifikasi dari
rand100_a sebesar 66,96% yang mana derajat aplikasi Netvizz oleh Bernhard Rieder,
rata-rata dari graph tersebut adalah 1,13, ini Net Science: Merupakan dataset
menunjukkan bahwa setiap node memiliki jaringan tulisan ilmuwan yang meneliti
tetangga rata-rata 1.13 dengan demikian pada dan
saat penggabungan dua node, kedua node jaringan, yang disusun oleh M.
bereksperimen dengan teori
tersebut tidak memiliki tetangga yang sama Newman pada May 2006.
superedge menuju Power: Merupakan graph undirected
yang mengakibatkan
tetangga salah satu node tidak ada. Semakin yang merepresentasikan topologi dari
banyak superedge yang tidak terbentuk makan Power Grid di Amerika Serikat. Data
graph akan semakin menjadi ter-cluster, dirangkum oleh D. Watts dan S. H.
perhatikan pada gambar di bawah dapat dilihat Stronggatz. D. J. Watts and S. H.
bagaimana graph original rand100_a saat Strogatz,
dibentuk summary-nya terpecah menjadi sub- (1998).
Nature 393,
440-442
Internet Routers: Gambaran struktur
graph
internet pada level sistem autonomous, Pada percobaan yang dilakukan, graph oleh Mark Newman pada 22 july 2006.
masukan tetap memberikan summary yang ter- cluster sampai pada graph rad100_c dengan
nilai derajat rata-ratanya 8.60. Pada graph Pada pembentukan graph masukan
b. Graph yang di-generate
rand1000_b memberikan summary yang ter- dengan cara generate, jumlah node dapat
cluster walau dengan derajat rata-rata 11,04, ditentukan dan disesuaikan dengan kebutuhan
graph yang dihasilkan berikutnya sudah tidak pengujian, sedangkan jumlah edge yang
ter-cluster.
dihasilkan bergantung kepada variabel- variabel masukan untuk membentuk graph
Perbandingan jumlah node antara graph dari jenis generator itu sendiri, Berikut
masukan dengan graph hasil kompresi di generator yang digunakan:
mana tidak terjadi pengurangan yang cukup Generator Graph Random
signifikan untuk jumlah edge yang berbeda Generator Barabàsi-Albert
yaitu dengan rata-rata 38%. Sedangkan untuk
Generator Graph Dorogovtsev-Mendes perbandingan pengurangan edge terjadi Generator Graph Dorogovtsev-Mendes perbandingan pengurangan edge terjadi
Bara100_e sebesar 38,90% dan rand100_a menjadi 79,24% dari jumlah edge
graph
terbesar pada graph Bara1000_b 60,60% 819 pada rand100_d, kemudian terjadi
dengan pengurangan node rata-rata 49,96%, penurunan pada graph dengan jumlah edge
sedang pengurangan edge paling besar pada selanjutnya. Dengan rata-rata pengurangan
Bara1000_e sebesar 79,64% dan terkecil pada edge -nya adalah 67%.
Bara1000_a sebesar 68,67%, dengan rata rata pengurangan edge sebesar 75,61%.
Dari pengujian yang dilakukan pada graph Graph
2. Analisis Graph Barabàsi-Albert
Barabàsi-Albert dapat dihasilkan graph output memberikan hasil summary yang tidak jauh
generator
Barabàsi-Albert
dengan rasio kompresi rata rata yaitu berbeda dengan generator random. Berikut
69,47%, serta edge reductionnya di bawah potongan hasil pengamatan (Lebih Lengkap
random dengan rata-rata 74,43% dapat dilihat pada lampiran) terhadap graph
Barabàsi-Albert:
3. Analisis Graph Generator
Percobaan graph Barabàsi-Albert di atas
Dorogovtsev-Mendes
dilakukan
Pengujian pada graph Dorogovtsev- menaikkan jumlah edge pada masing-masing
Mendes menghasilkan edge reduction yang graph dengan node 100 dan 1000. Untuk
bernilai rata-rata 55.11% dan dikarenakan mengetahui seberapa besar pengaruh jumlah
pada generator ini selalu menghasilkan graph edge terhadap besar edge reduction. Dari
dengan kisaran derajat rata-rata yang rendah, tabel hasil di atas dapat dilihat bahwa sistem
maka menghasilkan graph yang sedikit tar- dapat mengurangi jumlah edge maksimum
cluster . berikut data hasil kompresi graph yaitu pada graph Bara1000_e dengan edge
Dorogovtsev-Mendes :
reduction sebesar 79,64% dan pengurangan Karena proses pembentukan graph input jumlah edge terkecil adalah pada graph
Dorogovtsev-Mendes sama untuk variabel rand1000_a sebesar 68,67% yang mana derajat
masukan berbeda, graph yang dihasilkan rata-rata dari graph tersebut adalah
memiliki derajat rata rata relatif sama, yaitu 4. 1,29, ini menunjukkan bahwa setiap node
Sehingga cost reduction yang didapat juga memiliki tetangga rata-rata 1.29 dengan
relatif sama yaitu pada nilai rata rata 55.11%, demikian pada saat penggabungan dua node,
tidak terlalu terjadi perubahan hasil kompresi kedua node tersebut tidak memiliki tetangga
graph dengan adanya variasi jumlah node dan yang sama yang mengakibatkan superedge
edge,
menuju tetangga salah satu node tidak ada. Pengurangan jumlah node tertinggi Semakin banyak superedge yang tidak
terjadi pada graph Dorogov_b dan terbentuk makan graph akan semakin menjadi
Dorogov_c sebesar 45,50%, dan yang terkecil ter-cluster, perhatikan pada gambar di bawah
pada Dorogov_a sebesar 43%, sedangkan dapat dilihat bagaimana graph original
ada pada bara1000_a saat dibentuk summary-nya
Dorogov_a sebesar 64,47% dan terkecil pada terpecah menjadi sub-graph.
Dorogov_e dengan nilai 56,96%. Dari hasil pengujian ini dapat dilihat
4. Analisis Graph Dataset.
secara visual tidak terjadi peng-clusteran Dari data di atas dapat dilihat bahwa graph mulai dari graph Bara100_d dengan derajat
masukan dari dataset menghasilkan cost rata-rata 15,28 dan pada graph Bara1000_e
reduction dengan rata-rata 69.66% dengan dengan derajat rata-rata 31,73.
cost reduction terbesar pada graph Facebook Pengurangan node untuk graph Bara100
sebesar 78,02% dan terkecil pada graph tidak dipengaruhi secara signifikan oleh
Power 58,38%.
penambahan jumlah edge. Terjadi penurunan Pengurangan jumlah node untuk setiap jumlah pengurangan pada graph Bara100 dari
masing-masing graph input dengan rata-rata awal hingga graph Bara100_e kemudian naik
sebesar 49.05% yang terbesar adalah pada pada graph Bara100_f. Pengurangan node
masukan LesMiserables sebesar terkecil sebesar 40% pada graph Bara100_d
graph
59.74% dan yang terkecil pada graph dan Bara100_e dan yang terbesar pada graph
Facebook sebesar 41.09%, sedangkan untuk Bara100_a sebesar 52% dan dengan rata-
pengurangan edge didapat hasil rata-rata ratanya adalah sebesar 43,33%, sedangkan
76,93% dengan pengurangan edge terbesar untuk pengurangan edge terbesar terjadi pada
pada graph LesMiserables sebesar 79.92%, graph Bara100_f sebesar 78,55% dan terkecil
dan yang terkecil pada graph Power sebesar pada graph Bara100_c sebesar 69,49%
dengan pengurangan edge rata-rata sebesar 73.44%.
4.5. Analisis Waktu Kompresi. a a
Dari beberapa dataset yang telah diujikan,
d b bd
dapat dilihat bahwa jumlah edge sangat mempengaruhi lama waktu eksekusi yang
diperlukan oleh sistem untuk membentuk
summary . Berikut adalah waktu yang diperlukan oleh system dalam milidetik:
Waktu yang diperlukan untuk membentuk Gambar 0-4 Query Error pada graph Kiri: graph summary semakin besar sebanding
Graph Masukan, Kanan: Graph hasil dengan jumlah edge pada graph tersebut,
dengan jumlah yang besar tentu derajat rata- Berikut pengamatan yang dilakukan pada rata graph tersebut menjadi tinggi dan
graph dataset LesMiserables, dipilih karena membuat iterasi penentuan kandidat solusi
ukuran yang kecil untuk memudahkan pasangan yang akan digabungkan menjadi
pengamatan.
semakin lama, karena kemungkinan sepasang node berjarak 2-Hop semakin banyak maka kandidat pasangan yang dimasukkan ke dalam heap untuk diproses semakin besar, dan tentu perhitungan cost reduction untuk masing-masing kandidat menambah waktu proses. Dapat diperhatikan pada data masukan Facebook, walaupun jumlah node graph
Gambar 0-5Kompresi Graph LesMiserables masukan etscience lebih besar dari node
Facebook, tetapi waktu yang dibutuhkan Dari kompresi diatas, kemudian dilakukan untuk melakukan summary sangat jauh lebih
query terhadap graph masukan dan summary besar pada graph masukan Facebook daripada
dengan ID node awal “0” yang memberikan Netscience.
hasil query pada Tabel 0-1 .
4.6. Analisis Performa Graph Kompresi
Pengujian dilakukan dengan Tabel 0-1 Hasil Query Node 0 Graph Les Miserables menggunakan skenario yang telah dijelaskan sebelumnya menggunakan query terhadap tetangga node yang dipilih secara random
pada masing-masing graph masukan. Untuk
detail hasil yang didapat dapat dilihat pada
lampiran.
Berdasarkan pengujian yang dilakukan,
hasil yang diperoleh untuk query pada node
random terdapat perbedaan node tetangga antara graph masukan dengan graph hasil pada setiap level kedalamannya, hal ini terjadi dikarenakan adanya informasi yang hilang
Pada Tabel 0-1 , dapat dilihat bahwa terdapat atau edge yang terputus dari satu supernode
perbedaan hasil query antara graph awal ke tetangga node pembentuknya pada saat
dengan graph summary, pada depth ke-1 tidak penggabungan
terjadi eror, sedangkan pada depth ke-2 terjadi diakibatkan penggabungan dua buah node
eror pada 3 node, yaitu node dengan ID 64 dan yang awalnya jika dilakukan query dari suatu
58 yang seharusnya ada pada graph summary, node. Contoh kasus misalkan dari node � pada
dan node dengan ID 54 seharusnya tidak ada
Gambar 0-4 yang pasangan node � dengan � pada graph summary. Untuk menelusuri apa digabungkan, maka pada hasil query pada
penyebab eror tersebut maka dilakukan graph masukan pada depth ke-1 adalah node
penelusuran terhadap graph input, summary �, sedangkan pada graph hasil adalah node �
pada hasil adalah node dan masukan adalah node �, dan pada depth ke-2 hasil pada graph �, node e tidak masuk �, � dan �, sedangkan
dan correction.
ke dalam hasil query karena tidak terhubung
dalam correction ( oleh edge ( �, �). Edge tersebut masuk ke +). Jika dilakukan pembacaan correction, ini akan
Tabel 0-2 Correction
meminimalisasi perbedaan hasil query akibat penggabungan pasangan node.
5. PENUTUP
5.1. Kesimpulan
Berdasarkan hasil pengujian dan analisis yang telah dilakukan, maka diperoleh kesimpulan sebagai berikut:
1. Sebuah graph yang tidak berarah dapat dihitung dan dibentuk representasinya menggunakan algoritma greedy dengan
menerapkan prinsip Minimum Description Pertama lakukan penelusuran node 64, dari
(MDL) dapat menghasilkan Tabel 0-1 node
Length
sebuah representasi yang dikompres pada depth ke-3 dalam graph summary, ini
64 masuk ke dalam hasil query
dengan baik. Serta bisa dibentuk kembali terjadi karena penghapusan edge (11,64) dan
menjadi menjadi graph yang sama dengan masuk ke dalam correction, begitu juga untuk
graph awal(losless) dengan menggunakan node dengan ID 58. Untuk node 54 yang masuk
Corrections .
ke dalam hasil query depth ke-2, yang
2. Graph masukan dengan jumlah edge seharusnya masuk ke dalam depth ke-3, ini
mendekati jumlah edge maksimum yang terjadi karena penggabungan antara node 54
dapat dibentuk oleh graph tersebut akan dengan node 26, 51, dan 49. Dimana node 49
memberikan compression ratio yang dan 26 merupakan tetangga pada depth ke-2
semakin besar. Jika graph berbentuk graph dari node 0. Untuk node eror dan correction
representasi yang terkait diberi warna merah pada tabel diatas.
sempurna,
maka
dihasilkan berupa satu node dan satu Jika correction digunakan untuk
dengan compression ratio pemrosesan query maka hasil query yang
selfedge,
sebesar 0.99%.
didapat akan semakin besar erornya, ini
3. Dari analis pengujian menunjukkan disebabkan oleh node yang digabung menjadi
bahwa graph dapat dikompres dengan besar rata rata compression rate yang
supernode akan ikut masuk ke dalam hasil query pada depth tertentu, sehingga node hasil query
dihasilkan pada dataset yang digenerate bertambah dengan node yang tidak seharusnya.
Random, Pada contoh kasus di atas adalah misalnya untuk
menggunakan
generator
Barabàsi-Albert, dan Dorogovtsev – Mendes berturut turut adalah 75.35%,
node
64 kemudian mengikutsertakan correction +(11,64) maka node 65, 58, 57, 62, 59, 61, dan
69,47%, dan 55.11%, serta pada graph
63 akan ikut termasuk ke dalam query pada dataset dengan compression rate pada depth ke-2, yang seharusnya node tersebut
masing-masing graph LesMiserables, masuk ke dalam hasil query depth ke-3.
Poewer, dan Waktu eksekusi query ketetanggaan graph
Facebook,
Netscience,
InternetRouters berturut-turut sebesar pada masing-masing kedalaman antara graph
75.23%, 78.02%, 67.61%, 58.38%, dan masukan dengan graph summary. Bergantung
kepada berapa tetangga yang diproses oleh
4. Compression rate terbesar terjadi pada graph masukan rand1000e yaitu sebesar
query tersebut.
4.7. Analisis Kompresi Lossless/Lossy
79,51%, dikarenakan graph tersebut memiliki edge sebesar 40345 yang
Dari pengamatan terhadap pengujian yang membuat graph tersebut memiliki derajat dilakukan berdasarkan skenario di atas, hasil
rata-rata sebesar 80.69.
dapat dilihat dari hasil query tetangga untuk
5. kemungkinan representasi yang setiap
dihasilkan menjadi ter-cluster. sebaliknya, memberikan hasil yang berbeda dengan graph
nilai dengan derajat rata-ratanya yang input namun dengan yang eror relatif kecil, besar akan menghasilkan representasi semakin dalam kedalaman yang digunakan yang dengan kemungkinan ter-cluster eror yang didapat semakin besar. Maka graph
semakin kecil.
summary yang dihasilkan bersifat lossy.
6. Dengan adanya data yang loss atau error sedangkan graph yang direkonstruksi kembali pada graph representasi, maka metode ini menggunakan correction memberikan hasil lebih cocok digunakan jika kebutuhan query yang sama dengan graph masukan untuk kompresi graph yang bisa graph rekonstruksi dari summary bersifat mentolerir data loss, contohnya: visualisi lossless. graph, visual Mining, dan lain lain.
5.2. Saran
Berikut saran yang dapat diberikan untuk pengembangan lebih lanjut terhadap graph compression:
1. Sistem selanjutnya agar dapat melakukan pengujian terhadap dataset maupun data generate graph yang berarah.
2. Penanganan terhadap data loss atau error pada saat penggabungan edge, sehingga summary yang dihasilkan bisa bersifat lossless dan efisien.
3. Pembacaan correction pada saat melakukan transversal atau query terhadap
graph
summary s
sehingga
didapat hasil query yang relevan dan sesuai dengan graph masukan.
Daftar Pustaka
[1] Bernhard Rieder. NetGet. http://snacourse.com/getnet . Diakses Pada November 2014.
[2] Gephi Dataset. https://wiki.gephi.org/index.php/Datasets . Diakses Pada April 2014.
[3] Paolo Boldi and Sebastiano Vigna, "The Webgraph Framework I:Compression Techniques.," WWW '04 Proceedings of the 13th international conference on World Wide Web, pp. 595 –602, 2004.
[4] Ian Robinson, Jim Webber, and Emil Eifrem, Graph Databases.: O'Reilly Media, June 17, 2013.
[5] Inderjit Dhillon, Yuqiang Guan, and Brian Kulis, "A Fast Kernel-Based Multilevel Algorithm for Graph Clustering.," KDD, pp. 629 –634, 2005.
[6] Jorma Rissanen, "An Introduction to The MDL Principle".
[7] Peter Grunwald, A Tutorial Introduction to the Minimum Description Length Principle., 2004.
[8] Rio Eduardo Bangkit Gideon, Transformasi Relational Database ke Graph Database pada Website Sosial Network., 2013.
[9] Ruohonen Keijo, Graph Theory.,2013. [10] Saket Navlakha, Rajeev Rastogi, and
Nisheeth Shrivastava, "Graph Summarization with Bounded Error," SiGMOD, 2008.
[11] Stefan Balev, Julien Baudry, Antoine Dutot, Yoann Pigné, and Guilhelm Savin. GraphStream - A Dynamic Graph Library. http://graphstream-project.org/