BAB IV
IMPLEMENTASI DAN PENGUJIAN
Bab ini menjabarkan bagaimana implementasi hasil perancangan tersebut ke dalam kode program yang dilakukan selama pengerjaan Tesis. Selain itu dijabarkan pula pengujian yang dilakukan terhadap sistem berbasis pengetahuan yang dibangun. Pada bab ini dijabarkan metode pengujian yang digunakan, skenario pengujian, hasil, dan analisis hasil pengujian.
4.1 Implementasi
Pada sub bab ini dijelaskan proses implementasi perangkat lunak Genetsim. Hal-hal yang dijabarkan meliputi lingkungan implementasi, implementasi kelas perancangan, dan implementasi user interface.
4.1.1 Lingkungan
Implementasi
Aplikasi Genetsim kebanyakan diimplementasikan dengan menggunakan bahasa pemrograman Java. Bahasa pemrograman ini dipilih karena:
1. Bahasa pemrograman Java merupakan bahasa pemrograman yang bersifat
freeware sehingga mudah untuk didapatkan.
2. Aplikasi dalam bahasa Java di-compile ke dalam byte code yang kemudian diinterpretasikan oleh Java Virtual Machine. Dengan demikian, aplikasi tersebut dapat dijalankan pada komputer dengan arsitektur apapun asal terdapat Java Virtual Machine.
3. Bahasa pemrograman Java memiliki library yang lengkap. Selain library standar, telah banyak pula tersedia library bahasa Java lainnya yang dapat diperoleh secara free.
4. Subsistem yang digunakan untuk melakukan inferensi dan memvisualisasikan graf dikembangkan dengan bahasa Java.
Secara umum, engine untuk rekonstruksi model dan inferensi dibangun sebagai kelas-kelas dalam bahasa Java. Untuk user interface, digunakan Java Server Pages (JSP) selain
script HTML dan Javascript. JSP memungkinkan script HTML
disertai dengan kode bahasa Java yang di-embbed untuk menciptakan konten yang dinamik. Dengan demikian, halaman web yang dibuat dapat memanggil kelas-kelas bahasa Java yang telah dibuat. Pada sistem berbasis pengetahuan yang dibangun, JSP digunakan untuk proses rekonstruksi model dan pembentukan treeview.
Selain itu, untuk menjembatani user interface web dan engine inferensi yang telah dibangun dengan bahasa Java, digunakan Java Servlet. Java Servlet dipilih karena:
1. Java servlet dijalankan pada Java Virtual Machine yang ada di server sehingga lebih aman dan portable. Aplikasi dijamin dapat dijalankan sebagaimana mestinya.
2. Java servlet dijalankan sepenuhnya pada domain yang ada di server, tidak seperti applet. Dengan demikian, untuk menjalankan aplikasi, tidak diperlukan adanya dukungan Java pada web browser.
3. Java servlet lebih efisien dan bersifat scalable. Servlet dapat menjalankan request yang berbeda sebagai sejumlah thread dalam satu proses atau sebagai sejumlah thread dalam sejumlah proses yang disebar dalam sejumlah backend servers. Hal ini memudahkan pengembangan Genetsim selanjutnya.
Implementasi dilakukan pada notebook dengan spesifikasi sebagai berikut: 1. Processor Intel Core Duo T2250 1.73 GHz
2. RAM 1 GB
Perangkat lunak dan kakas pengembangan yang digunakan untuk mengimplementasikan Genetsim antara lain:
1. Bayesian Network Tools in Java 2.7 2. JGraphLayout
3. Microsoft Windows XP Home Edition 4. Apache Tomcat 6.0
5. phpMyAdmin 2.7.0 6. Eclipse Europa SDK 3.4.1 7. Mozilla Firefox 3.0.5
4.1.2 Implementasi Kelas Perancangan
Implementasi kelas-kelas yang telah didefinisikan pada tahap perancangan selain kelas pada subsistem dapat dilihat pada Tabel IV-1.
Tabel IV-1 Implementasi Kelas Perancangan
No Kelas Package Implementasi Fisik
1 Gene core src/core/Gene.java
2 DBConfiguration database src/database/DBConfiguration.java 3 DBConnection database src/database/DBConnection.java 4 Model generator src/generator/Model.java 5 Parser generator src/generator/Parser.java 6 EngineServlet inference src/inference/EngineServlet.java
Untuk meningkatkan performansi, pembangunan Bayesian network dari model pada basis data hanya dilakukan sekali pada saat start-up. Bayesian network yang direkonstruksi kemudian disimpan dalam file XML untuk kemudian digunakan pada pengaksesan aplikasi selanjutnya. Selain itu, pembangkitan graf visual yang menggambarkan graf Bayesian network juga hanya dilakukan sekali pada saat start-up. Graf yang telah dibangkitkan kemudian disimpan sebagai file image berekstensi png. Map HTML yang digunakan agar simpul pada graf dapat diklik juga hanya dibangkitkan sekali dan kemudian disimpan pada file untuk digunakan pada pengaksesan selanjutnya.
4.1.3 Implementasi
User Interface
Berdasarkan hasil perancangan, user interface diimplementasikan sebagai halaman web. Untuk menampilkan tree view yang digunakan untuk memasukkan evidences dan menampilkan hasil inferensi, dibuat script JSP dalam file bbntreeview.jsp. Sedangkan,
user interface utama diimplementasikan dalam file bbnnetwork.jsp yang merupakan
welcome file dari aplikasi web Genetsim. Script Javascript yang digunakan berada pada
file script.js. Screenshot halaman utama aplikasi Genetsim dapat dilihat pada Gambar IV-1.
Gambar IV-1 User Interface Genetsim
4.2 Pengujian
Pada sub bab ini dijelaskan pengujian yang dilakukan terhadap sistem berbasis pengetahuan yang dibangun. Sistem berbasis pengetahuan yang dikerjakan dibangun dengan mengimplementasikan tiga buah algoritma inferensi yaitu algoritma exact inference Lauritzen-Spiegelhalter dan dua algoritma approximate inference, likelihood weighting dan Markov Chain Monte Carlo. Berdasarkan hasil analisis, diperoleh hipotesis bahwa inferensi dengan teknik exact inference tidak dapat dilakukan untuk ranah permasalahan jaringan regulatori genetik karena kompleksitasnya yang eksponensial. Sedangkan, teknik approximate inference dapat digunakan untuk graf dengan kompleksitas tinggi. Namun, dari proses analisis saja, hanya dapat diketahui dua algoritma yang memberikan performansi paling baik, tidak berhasil disimpulkan algoritma yang terbaik dari kedua algoritma yang digunakan. Oleh karena itu, pengujian dilakukan untuk membuktikan hipotesis dan mencari algoritma approximate mana yang memberikan performansi paling baik untuk ranah permasalahan jaringan regulatori genetik. Pada sub bab ini dijelaskan skenario pengujian, hasil pengujian, dan analisis hasil pengujian.
4.2.1 Skenario
Pengujian
Pengujian performansi sistem berbasis pengetahuan pada dasarnya dilakukan dengan mengukur dua hal yaitu:
1. Kebenaran hasil inferensi
Kebenaran hasil inferensi diukur dengan menguji apakah sistem sudah memberikan hasil inferensi yang benar sesuai dengan permasalahan yang ada. Dalam topik ini, pengujian kebenaran hasil inferensi berarti menilai apakah level ekspresi gen hasil inferensi sesuai dengan level ekspresi gen pada kasus sebenarnya. Kebenaran hasil inferensi sangat bergantung pada kebenaran pengetahuan yang tersimpan pada basis pengetahuan. Pada Tesis ini, pengetahuan yang ada pada basis pengetahuan bukan merupakan hasil pekerjaan melainkan menggunakan pengetahuan yang sudah ada. Pekerjaan yang dilakukan dimulai dengan merepresentasikan pengetahuan yang sudah ada tersebut ke dalam representasi Bayesian network. Karena basis pengetahuan yang digunakan bukan merupakan hasil pekerjaan Tesis, dalam Tesis ini tidak dapat dilakukan pengujian kebenaran hasil inferensi.
2. Performansi algoritma inferensi
Karena terdapat lebih dari satu algoritma inferensi yang dapat digunakan untuk melakukan inferensi pada sistem berbasis pengetahuan, perlu diukur pula performansi berbagai algoritma tersebut untuk mengetahui algoritma mana yang memberikan performansi paling baik. Pengujian performansi algoritma inferensi dilakukan dengan menghitung kebutuhan resources untuk melakukan inferensi. Kebutuhan resources didefinisikan sebagai kebutuhan waktu dan memori proses inferensi. Secara khusus, pengujian pekerjaan Tesis ini dilakukan untuk membuktikan hipotesis dan mencari algoritma approximate yang paling tepat digunakan untuk ranah permasalahan jaringan regulatori genetik. Untuk menguji hal-hal tersebut dapat digunakan pengujian performansi algoritma inferensi. Pengujian yang dilakukan pada Tesis ini dilakukan melalui dua tahap:
1. Load test
Load test dilakukan untuk membuktikan hipotesis tahap analisis bahwa teknik
exact inference tidak dapat digunakan untuk ranah permasalahan jaringan regulatori genetik. Untuk melakukan pengujian ini, digunakan data jaringan
regulatori genetik yang divariasikan kompleksitasnya. Kompleksitas didefinisikan sebagai jumlah gen dan relasi yang ada pada jaringan regulatori genetik. Bila kompleksitas Bayesian network didefinisikan sebagai jumlah simpul dan jumlah relasi yang ada pada graf, dari hasil analisis dapat disimpulkan bahwa untuk sejumlah n gen dan m relasi regulasi, graf Bayesian network yang terbentuk memiliki 2n simpul dan paling sedikit m+n relasi. Dari hasil load test ini, dapat diketahui apakah teknik exact inference dapat digunakan pada data yang kompleks. Bila ternyata teknik tidak dapat digunakan, pada data jaringan regulatori genetik dengan kompleksitas seperti apa exact inference masih mungkin dilakukan. Selain itu, dari pengujian ini, dapat diketahui pula apakah sesuai dengan hasil analisis, teknik approximate inference dapat digunakan pada data jaringan yang lebih kompleks daripada data paling kompleks yang dapat diinferensi dengan teknik exact inference.
2. Pengujian performansi algoritma approximate inference
Pengujian ini dilakukan untuk mencari algoritma approximate mana yang paling tepat digunakan untuk ranah permasalahan jaringan regulatori genetik. Dari hasil analisis, tidak berhasil diperoleh kesimpulan mana diantara kedua algoritma
approximate inference yang lebih baik. Oleh karena itu, dilakukan pengujian dengan membandingkan kebutuhan resources kedua algoritma. Pembandingan dilakukan juga dengan mengukur seberapa jauh perkiraan distribusi probabilitas yang dihasilkan kedua algoritma dengan nilai distribusi probabilitas yang sebenarnya yang diperoleh melalui teknik exact inference. Pengujian dilakukan dengan memvariasikan variabel-variabel proses sampling selain input berupa graf Bayesian network yang mempengaruhi proses inferensi. Dari hasil tinjauan pustaka, diketahui bahwa performansi teknik approximate inference pada dasarnya berbasis pada proses sampling yang dilakukan. Performansi inferensi yang dilakukan dengan demikian mungkin dipengaruhi oleh jumlah evidences
dan sampel yang digunakan. Oleh karena itu, pengujian dilakukan dengan memvariasikan jumlah evidences dan jumlah sampel yang digunakan.
4.2.2 Hasil
Pengujian
Pada sub bab ini dijelaskan hasil pengujian yang dilakukan terhadap sistem berbasis pengetahuan yang dibangun. Sesuai dengan skenario pengujian, dijabarkan hasil yang diperoleh dalam dua tahap pengujian yaitu load test dan pengujian performansi algoritma
approximate inference.
4.2.2.1 Load Test
Load test dilakukan dengan memvariasikan kompleksitas data jaringan regulatori genetik yang digunakan. Kompleksitas didefinisikan sebagai jumlah gen dan jumlah relasi regulasi yang terlibat dalam jaringan regulatori genetik. Dari grafik pada Gambar IV-2 diketahui bahwa jumlah gen dan jumlah relasi regulasi yang ada pada jaringan regulatori genetik berbanding lurus. Bertambahnya jumlah gen yang terlibat menyebabkan bertambah pulanya jumlah relasi. Dengan demikian, variasi dapat dilakukan dengan memvariasikan salah satu dari jumlah gen ataupun jumlah relasi. Pada pengujian ini, dilakukan variasi dengan basis jumlah gen yang terlibat.
0 20 40 60 80 100 120 140 160 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50
Jum lah Sim pul
J u m lah R elasi
Gambar IV-2 Perbandingan Jumlah Simpul dan Jumlah Relasi
Sebagai data awal, digunakan data jaringan regulatori genetik yang melibatkan dua puluh lima buah gen. Bayesian network yang direkonstruksi dari data ini memiliki 50 buah simpul dan 146 buah relasi. Dari data awal ini, kemudian dilakukan pengurangan jumlah gen dengan mengeliminasi gen yang paling sedikit memberikan pengaruh terhadap kompleksitas graf. Pengurangan jumlah gen dilakukan hingga jaringan regulatori genetik hanya terdiri dari dua buah gen. Eliminasi sebuah gen mengakibatkan berkurangnya dua simpul dan sejumlah relasi pada graf Bayesian network. Oleh karena itu, untuk menentukan pengaruh eliminasi suatu gen terhadap kompleksitas graf Bayesian network,
dilakukan perbandingan jumlah relasi yang tereliminasi dengan eliminasi gen tersebut. Jumlah relasi yang tereliminasi didefinisikan sebagai jumlah panah masuk (vent-in) dan panah keluar (vent-out) dari suatu gen. Gen dengan jumlah panah masuk dan panah keluar yang paling sedikit adalah gen yang paling sedikit mempengaruhi jumlah relasi pada graf keseluruhan. Oleh karena itu, gen inilah yang dieliminasi untuk memperoleh data pengujian selanjutnya.
Urutan eliminasi jumlah gen tidak dapat diperoleh dalam satu kali iterasi. Hal ini disebabkan pengurangan suatu gen juga mempengaruhi jumlah relasi pada gen-gen lain. Oleh karena itu, setiap kali dilakukan eliminasi gen, dilakukan pendataan ulang jumlah panah masuk dan panah keluar dari setiap gen yang tersisa untuk mengetahui gen mana yang harus dieliminasi selanjutnya. Urutan eliminasi gen dapat dilihat pada Tabel IV-2. Tabel IV-2 Data Load Test
Nama File Jumlah Gen Gen Tereliminasi Jumlah Simpul Jumlah Relasi gen2.xml 2 MBP1 4 5 gen3.xml 3 SWI4 6 9 gen4.xml 4 MCM1 8 15 gen5.xml 5 CDC6 10 21 gen6.xml 6 CDC20 12 28 gen7.xml 7 SWI5 14 34 gen8.xml 8 NDD1 16 38 gen9.xml 9 FKH1 18 45 gen10.xml 10 PCL2 20 54 gen11.xml 11 CDC5 22 61 gen12.xml 12 ACE2 24 67 gen13.xml 13 SIC1 26 74 gen14.xml 14 FAR1 28 79 gen15.xml 15 ASH1 30 84 gen16.xml 16 CTS1 32 91 gen17.xml 17 CLN2 34 98 gen18.xml 18 CDC21 36 105 gen19.xml 19 EGT2 38 112 gen20.xml 20 STB1 40 117 gen21.xml 21 HTA1 42 124 gen22.xml 22 ALG7 44 129 gen23.xml 23 CLB5 46 134 gen24.xml 24 CLB2 48 139 gen25.xml 25 - 50 146
Pada setiap kasus uji, tidak diberikan input berupa evidences. Proses yang dilakukan murni merupakan penghitungan nilai probabilitas marginal dari conditional probability
performansi sistem sehingga pengujian dapat difokuskan untuk menguji faktor kompleksitas data.
Dari pengujian yang dilakukan, diperoleh bahwa teknik exact inference hanya mampu melakukan inferensi maksimal pada data yang melibatkan sembilan buah gen. Bila direkonstruksi menjadi Bayesian network, data tersebut direkonstruksi sebagai graf dengan 18 simpul dan 45 relasi.
Dari grafik pada Gambar IV-3, diketahui bahwa seiring dengan pertambahan jumlah gen yang terlibat dalam jaringan regulatori genetik, algoritma Lauritzen-Spiegelhalter dan Markov Chain Monte Carlo membutuhkan waktu inferensi yang lebih lama. Sedangkan, algoritma likelihood weighting relatif memiliki waktu inferensi yang konstan. Waktu inferensi yang dibutuhkan algoritma ini juga lebih kecil daripada kedua algoritma lainnya. Dari grafik tersebut dapat dilihat pula bahwa kebutuhan waktu algoritma Lauritzen-Spiegelhalter sebenarnya tidak jauh berbeda dengan kebutuhan waktu inferensi algoritma Markov Chain Monte Carlo untuk jumlah gen yang sama. Dari proses perata-rataan, diketahui bahwa kebutuhan waktu algoritma likelihood weighting mendekati 5% dari kebutuhan waktu algoritma Lauritzen-Spiegelhalter dan Markov Chain Monte Carlo. Pada Gambar IV-4, dapat dilihat bahwa pertambahan jumlah relasi juga memberikan pengaruh yang sama terhadap kebutuhan waktu inferensi ketiga algoritma. Dari grafik, dapat dilihat bahwa dari ketiga algoritma, yang memiliki waktu inferensi yang paling kecil dan relatif konstan adalah likelihood weighting. Kedua algoritma yang lain memiliki waktu inferensi yang tidak jauh berbeda dan terus menaik seiring dengan pertambahan jumlah relasi.
Dilihat dari sisi kebutuhan memori, pada grafik dalam Gambar IV-5 dapat dilihat bahwa kedua algoritma approximate inference memiliki kebutuhan memori yang relatif sama. Kebutuhan memori ini jauh lebih kecil bila dibandingkan dengan algoritma Lauritzen-Spiegelhalter. Perbandingan rata-rata kebutuhan memori kedua algoritma approximate inference tidak terlalu signifikan, hanya sekitar 9 : 10. Jumlah memori yang dibutuhkan untuk melakukan inferensi juga dapat dikatakan relatif konstan dan tidak terpengaruh oleh pertambahan jumlah gen yang terlibat. Namun, dapat dilihat bahwa pada algoritma Lauritzen-Spiegelhalter, memori yang dibutuhkan meningkat dengan pesat seiring dengan pertambahan jumlah gen.
0 2000 4000 6000 8000 10000 12000 14000 16000 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Jumlah Gen Waktu (ms)
Lauritzen-Spiegelhalter Likelihood Weighting Markov Chain Monte Carlo
Gambar IV-3 Kebutuhan Waktu Inferensi terhadap Jumlah Gen
0 2000 4000 6000 8000 10000 12000 14000 16000 5 15 28 38 54 67 79 91 105 117 129 139 Jumlah Relasi Wa kt u ( m s)
Lauritzen-Spiegelhalter Likelihood Weighting Markov Chain Monte Carlo
Gambar IV-4 Kebutuhan Waktu Inferensi terhadap Jumlah Relasi
0 5000 10000 15000 20000 25000 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Jumlah Gen M e mori (KB)
Lauritzen-Spiegelhalter Likelihood Weighting Markov Chain Monte Carlo
0 5000 10000 15000 20000 25000 5 15 28 38 54 67 79 91 105 117 129 139 Jumlah Relasi Me mori (K B )
Lauritzen-Spiegelhalter Likelihood Weighting Markov Chain Monte Carlo
Gambar IV-6 Kebutuhan Memori Inferensi terhadap Jumlah Relasi
Dari Gambar IV-6, dapat dilihat pula bahwa dari sisi kebutuhan memori, pertambahan jumlah relasi memberikan pengaruh yang sama bagi kebutuhan memori ketiga algoritma dengan pertambahan jumlah gen. Kebutuhan memori untuk melakukan inferensi pada kedua algoritma approximate inference relatif tidak terpengaruh oleh pertambahan jumlah relasi. Memori yang dibutuhkan juga jauh lebih kecil bila dibandingkan dengan teknik
exact inference. Pada algoritma Lauritzen-Spiegelhalter, pertambahan jumlah relasi mengakibatkan pertambahan kebutuhan memori yang pesat. Hasil pengujian load test
secara rinci dapat dilihat pada lampiran.
4.2.2.2 Pengujian Performansi Algoritma Approximate Inference
Pada sistem berbasis pengetahuan, diimplementasikan dua algoritma approximate inference yaitu likelihood weighting dan Markov Chain Monte Carlo. Untuk melakukan pembandingan performansi kedua algoritma dilakukan pengukuran kebutuhan resources
berupa waktu dan memori yang dibutuhkan saat inferensi serta bagaimana distribusi probabilitas perkiraan yang dihasilkan bila dibandingkan dengan distribusi sebenarnya. Untuk melakukan pengukuran perbedaan distribusi probabilitas ini, distribusi dibandingkan dengan menggunakan nilai distribusi sebenarnya yang diperoleh melalui teknik exact inference. Pada pengujian ini, ingin dilihat pula pengaruh jumlah evidences
dan sampel terhadap performansi algoritma.
Dari kasus uji pada load test, telah dilakukan pula pengujian untuk melihat sejauh mana pengaruh pertambahan jumlah gen dan relasi terhadap bagaimana kedua algoritma mendekati nilai probabilitas sebenarnya. Dalam grafik pada Gambar IV-7 dan Gambar
IV-8, dapat dilihat bahwa algoritma likelihood weighting memiliki nilai KL distance
Chain Monte Carlo pada jumlah gen dan relasi yang sedikit belum menghasilkan distribusi yang mendekati distribusi sebenarnya sebaik likelihood weighting. Kedekatan distribusi meningkat seiring dengan pertambahan jumlah gen dan relasi. Ketika distribusi yang dihasilkan sudah mendekati distribusi sebenarnya pun, nilai KL distance yang dihasilkan masih lebih besar dari nilai KL distance likelihood weighting. Nilai KL
distance algoritma likelihood weighting berkisar antara 0.0008 hingga 0.0036. Sedangkan nilai KL distance untuk Markov Chain Monte Carlo berkisar antara 0.0357 hingga 0.1334.
Dari grafik pada Gambar IV-9 dan Gambar IV-10, dapat dilihat bahwa perubahan jumlah gen dan relasi memberikan pengaruh yang sama pada nilai symmetric KL distance kedua algoritma. Secara umum, dapat dilihat bahwa nilai symmetric KL distance yang dimiliki algoritma likelihood weighting masih jauh lebih baik dari algoritma Markov Chain Monte Carlo. 0,0000 0,0200 0,0400 0,0600 0,0800 0,1000 0,1200 0,1400 0,1600 4 6 8 10 12 14 16 18 Jumlah Node K L Dist ance
Likelihood Weighting Markov Chain Monte Carlo
Gambar IV-7 Nilai KL Distance terhadap Pertambahan Jumlah Simpul
0,0000 0,0200 0,0400 0,0600 0,0800 0,1000 0,1200 0,1400 0,1600 5 9 15 21 28 34 38 45 Jumlah Relasi K L Dist ance
Likelihood Weighting Markov Chain Monte Carlo
0,0000 0,0500 0,1000 0,1500 0,2000 0,2500 0,3000 4 6 8 10 12 14 16 18 Jumlah Simpul S y mme tric K L Dista n ce
Likelihood Weighting Markov Chain Monte Carlo
Gambar IV-9 Nilai Symmetric KL Distance terhadap Pertambahan Jumlah Simpul
0,0000 0,0500 0,1000 0,1500 0,2000 0,2500 0,3000 5 9 15 21 28 34 38 45 Jumlah Relasi S y mme tric K L Dista n ce
Likelihood Weighting Markov Chain Monte Carlo
Gambar IV-10 Nilai Symmetric KL Distance terhadap Pertambahan Jumlah Relasi Pengujian yang terlebih dahulu dilakukan adalah menguji bagaimana pengaruh evidences
terhadap performansi sistem. Sebagai kasus uji, digunakan data jaringan regulatori genetik paling kompleks yang masih dapat diinferensi dengan teknik exact inference. Dari tahap pengujian sebelumnya, diketahui bahwa data tersebut adalah data jaringan regulatori genetik yang melibatkan 9 buah gen dan 45 buah relasi yang bila direkonstruksi menjadi Bayesian network, graf yang terbentuk melibatkan 18 buah simpul. Setiap simpul yang ada dapat merupakan simpul evidences atau simpul query. Oleh karena itu, dengan kasus uji awal ini, untuk menguji proses inferensi terhadap query, dapat divariasikan jumlah evidences dari nol hingga 17 evidences. Kasus-kasus uji tersebut ekivalen dengan jumlah simpul query sebanyak 18 hingga satu simpul.
Gambar IV-11 menggambarkan grafik antara kebutuhan memori ketiga algoritma dengan pertambahan jumlah evidences. Secara umum, sesuai hasil load test, dapat dilihat bahwa kedua algoritma approximate inference membutuhkan memori yang lebih kecil
dibandingkan dengan algoritma exact inference. Diantara kedua algoritma approximate inference, dapat dikatakan bahwa jumlah memori yang dibutuhkan relatif konstan terhadap jumlah evidences. Namun, dari grafik, pada suatu kasus uji, algoritma yang memberikan performansi yang lebih baik tidak selalu sama. Dengan proses perata-rataan, dari hasil pengujian, diketahui bahwa kebutuhan memori algoritma likelihood weighting
adalah 80% kebutuhan memori algoritma Markov Chain Monte Carlo. Hal ini mendukung hasil pengujian pada tahap sebelumnya yang menyatakan bahwa perbedaan kebutuhan memori antara kedua algoritma approximate inference yang digunakan tidak terlalu signifikan. 0 1000 2000 3000 4000 5000 6000 7000 8000 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Jumlah Evidences M e mori (KB)
Lauritzen-Spiegelhalter Likelihood Weighting Markov Chain Monte Carlo
Gambar IV-11 Kebutuhan Memori terhadap Pertambahan Jumlah Evidences
0 500 1000 1500 2000 2500 3000 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Jumlah Evidences Waktu (ms)
Lauritzen-Spiegelhalter Likelihood Weighting Markov Chain Monte Carlo
Gambar IV-12 Kebutuhan Waktu terhadap Pertambahan Jumlah Evidences Dari Gambar IV-12, dapat dilihat bahwa waktu inferensi algoritma likelihood weighting
relatif konstan terhadap pertambahan jumlah evidences. Sedangkan, untuk kedua algoritma lainnya, kebutuhan waktu menurun seiring dengan pertambahan jumlah
Carlo menurun, namun waktu inferensi untuk kasus-kasus uji yang diberikan masih lebih lama dibandingkan dengan algoritma likelihood weighting. Kebutuhan waktu algoritma
likelihood weighting untuk melakukan inferensi hanya sekitar 7% dari kebutuhan waktu algoritma Markov Chain Monte Carlo.
Pada pembandingan distribusi probabilitas, dari grafik pada Gambar IV-13, dapat dilihat bahwa nilai KL distance untuk algoritma likelihood weighting relatif konstan terhadap pertambahan jumlah evidences. Sedangkan, untuk algoritma Markov Chain Monte Carlo, nilai KL distance lebih bervariasi dan tidak dapat ditemukan keteraturannya terhadap jumlah evidences yang diberikan. Secara umum, diketahui bahwa nilai KL distance untuk algoritma likelihood weighting berkisar antara 0.001 hingga 0.009. Sedangkan, nilai KL
distance untuk algoritma Markov Chain Monte Carlo memiliki jangkauan yang jauh lebih besar karena bervariasi antara 0.026 hingga 0.26. Dari grafik pada Gambar IV-14, dapat dilihat pula bahwa pertambahan jumlah evidences juga memberikan pengaruh yang sama terhadap nilai symmetric KL distance.
0 0,05 0,1 0,15 0,2 0,25 0,3 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Jumlah Evidences KL Dista n ce
Likelihood Weighting Markov Chain Monte Carlo
Gambar IV-13 Nilai KL Distance terhadap Pertambahan Jumlah Evidences
0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Jumlah Evidences Sym m etr ic KL Dista n ce
Likelihood Weighting Markov Chain Monte Carlo
Setelah dilakukan pengujian untuk melihat pengaruh jumlah evidences, dilakukan pengujian untuk melihat bagaimana pengaruh jumlah sampel terhadap performansi kedua algoritma approximate. Untuk melakukan pengujian ini, dipilih satu kasus uji dari pengujian pengaruh evidences dimana kedua algoritma memberikan performansi yang paling mendekati dari sisi perbedaan distribusi probabilitas. Dari grafik pada Gambar
IV-13, dapat dilihat bahwa kedua algoritma memberikan nilai KL distance yang paling dekat perbedaannya pada kasus uji dimana terdapat lima evidences untuk 18 simpul yang ada. Oleh karena itu, kasus uji ini dipilih sebagai kasus uji dasar untuk melakukan pengujian pengaruh jumlah sampel. Pada pengujian pengaruh jumlah sampel, divariasikan jumlah sampel yang dibangkitkan dari 50 sampel hingga nampak keteraturan dari besaran-besaran yang diukur.
Dari Gambar IV-15, dapat dilihat bahwa kebutuhan memori kedua algoritma relatif tidak terpengaruh terhadap pertambahan jumlah sampel yang dibangkitkan. Dari grafik tersebut, dapat dilihat pula bahwa algoritma likelihood weighting memiliki kebutuhan memori yang lebih sedikit bila dibandingkan dengan algoritma Markov Chain Monte Carlo. Bila dirata-rata, algoritma likelihood weighting menggunakan memori sekitar 75% dari kebutuhan memori algoritma Markov Chain Monte Carlo.
Waktu yang dibutuhkan untuk melakukan inferensi dengan kedua algoritma juga relatif konstan terhadap pertambahan jumlah sampel. Dari Gambar IV-16 dapat dilihat bahwa meskipun kedua algoritma memiliki kebutuhan waktu yang konstan terhadap pertambahan jumlah sampel yang dilakukan, algoritma likelihood weighting
membutuhkan waktu inferensi yang jauh lebih kecil bila dibandingkan dengan algoritma Markov Chain Monte Carlo. Kebutuhan waktu algoritma likelihood weighting hanya sekitar 6% dari kebutuhan waktu inferensi algoritma Markov Chain Monte Carlo.
0 100 200 300 400 500 600 50 100 150 200 250 300 350 400 450 500 550 600 650 700 750 800 850 900 950 1000 Jumlah Sampel Mem o ri (KB )
Likelihood Weighting Markov Chain Monte Carlo
0 500 1000 1500 2000 2500 50 100 150 200 250 300 350 400 450 500 550 600 650 700 750 800 850 900 950 1000 Jumlah Sampel Waktu (ms)
Likelihood Weighting Markov Chain Monte Carlo
Gambar IV-16 Kebutuhan Waktu terhadap Pertambahan Jumlah Sampel
0 0,01 0,02 0,03 0,04 0,05 0,06 0,07 50 100 150 200 250 300 350 400 450 500 550 600 650 700 750 800 850 900 950 1000 Jumlah Sampel KL Dis tance
Likelihood Weighting Markov Chain Monte Carlo
Gambar IV-17 Nilai KL Distance terhadap Pertambahan Jumlah Sampel
0 0,02 0,04 0,06 0,08 0,1 0,12 0,14 0,16 50 100 150 200 250 300 350 400 450 500 550 600 650 700 750 800 850 900 950 1000 Jumlah Sampel Symm etric K L Dis tance
Likelihood Weighting Markov Chain Monte Carlo
Gambar IV-18 Nilai Symmetric KL Distance terhadap Pertambahan Jumlah Sampel Dari sisi perbandingan distribusi probabilitas dengan distribusi sebenarnya, dapat dilihat dari Gambar IV-17 dan Gambar IV-18 bahwa kedua algoritma memiliki nilai KL
sampel. Dari grafik tersebut dapat dilihat pula bahwa nilai KL distance dan symmetric KL distance untuk algoritma likelihood weighting lebih kecil dan lebih stabil dibanding algoritma Markov Chain Monte Carlo. Hasil pengujian secara rinci dapat dilihat pada lampiran.
4.2.3 Analisis Hasil Pengujian
Pada sub bab ini dijelaskan analisis dari hasil pengujian yang telah dilakukan. Pertama, analisis dilakukan terhadap hasil pengujian load test untuk mengetahui apakah hipotesis bahwa teknik exact inference tidak dapat digunakan untuk ranah permasalahan jaringan regulatori genetik benar. Setelah itu, dilakukan analisis pengujian performansi algoritma
approximate inference untuk menyimpulkan algoritma mana yang lebih sesuai untuk ranah permasalahan jaringan regulatori genetik.
4.2.3.1 Load Test
Diketahui bahwa pertambahan jumlah gen dan jumlah relasi memberikan pengaruh yang sama terhadap kebutuhan resources algoritma untuk melakukan inferensi. Hal ini disebabkan pertambahan jumlah gen yang berbanding lurus dengan pertambahan jumlah relasi regulasi yang terlibat pada jaringan regulatori genetik. Karena gen menjadi simpul pada Bayesian network dan relasi regulasi menjadi relasi antar simpulnya, bertambahnya simpul juga mengakibatkan bertambahnya jumlah relasi pada graf Bayesian network
seperti terlihat pada Gambar IV-2.
Pada pengujian, diketahui bahwa dari sisi kebutuhan waktu inferensi, pertambahan jumlah gen dan relasi relatif tidak berpengaruh pada algoritma likelihood weighting. Algoritma ini juga memiliki kebutuhan waktu yang lebih kecil dari kedua algoritma yang lain. Dari hasil pengujian, diketahui bahwa algoritma Lauritzen-Spiegelhalter maksimal dapat digunakan pada graf yang melibatkan 9 buah gen. Sedangkan, algoritma Markov Chain Monte Carlo masih dapat terus digunakan untuk graf-graf yang lebih kompleks. Padahal, algoritma Markov Chain Monte Carlo dan Lauritzen-Spiegelhalter memiliki kebutuhan waktu yang menaik dan berdekatan seiring dengan pertambahan jumlah gen dan relasi. Oleh karena itu, dapat disimpulkan bahwa kegagalan algoritma Lauritzen-Spiegelhalter melakukan inferensi bukan disebabkan oleh kebutuhan waktu algoritma tersebut.
Dari hasil pengujian terhadap kebutuhan memori, dapat disimpulkan bahwa faktor inilah yang membedakan algoritma Lauritzen-Spiegelhalter dengan algoritma Markov Chain
Monte Carlo. Algoritma Markov Chain Monte Carlo dan likelihood weighting memiliki kebutuhan memori untuk inferensi yang relatif konstan terhadap pertambahan kompleksitas graf. Sedangkan, kebutuhan memori inferensi Lauritzen-Spiegelhalter terus menaik secara eksponensial seiring dengan pertambahan kompleksitas graf. Peningkatan secara eksponensial ini berkaitan dengan bertambahnya nilai conditional probability yang harus dihitung. Teknik exact inference melakukan penghitungan secara tepat nilai-nilai probabilitas berdasarkan teorema Bayes. Hal inilah yang menyebabkan algoritma exact inference seperti Lauritzen-Spiegelhalter tidak dapat digunakan untuk graf yang kompleks.
Secara keseluruhan, dapat disimpulkan bahwa hasil pengujian load test telah membuktikan bahwa hipotesis yang diambil benar. Dari tahap analisis, diperoleh hipotesis bahwa teknik exact inference tidak dapat digunakan untuk ranah permasalahan jaringan regulatori genetik karena besarnya kompleksitas Bayesian network yang dihasilkan dari data jaringan regulatori genetik. Secara lebih spesifik, dapat disimpulkan bahwa faktor yang menyebabkan teknik exact inference tidak dapat digunakan untuk ranah permasalahan jaringan regulatori genetik adalah kebutuhan memori yang meningkat secara eksponensial seiring dengan pertambahan kompleksitas data.
4.2.3.2 Pengujian Performansi Algoritma Approximate Inference
Dari hasil load test, diketahui bahwa kebutuhan waktu inferensi algoritma likelihood weighting relatif konstan terhadap pertambahan jumlah gen dan relasi. Secara umum, algoritma ini lebih unggul dari algoritma Markov Chain Monte Carlo dari sisi kebutuhan waktu inferensi. Dari proses perata-rataan, diketahui bahwa algoritma ini hanya membutuhkan 5% waktu yang dibutuhkan algoritma Markov Chain Monte Carlo. Algoritma Markov Chain Monte Carlo membutuhkan waktu yang menaik seiring dengan pertambahan kompleksitas data. Perbedaan ini disebabkan adanya perbedaan dalam proses sampling yang dilakukan kedua algoritma.
Pada algoritma likelihood weighting, proses sampling dilakukan untuk variabel-variabel non-evidences. Proses sampling dilakukan sesuai urutan topologi dengan mempertimbangkan nilai sampel variabel parents. Dengan demikian, jumlah variabel yang harus diperhatikan untuk menentukan state sampel suatu variabel hanya sejumlah
parents yang dimiliki variabel tersebut. Sedangkan, pada algoritma Markov Chain Monte Carlo, proses sampling juga dilakukan untuk variabel-variabel non-evidences saja. Namun, untuk menentukan sampel suatu variabel, perlu diperhatikan state sampel variabel-variabel yang menjadi Markov blanket variabel tersebut. Markov blanket
merupakan himpunan simpul parents, children dan parents dari children variabel. Dengan demikian, jumlah variabel yang harus dipertimbangkan untuk melakukan sampel lebih banyak daripada jumlah variabel pada proses samplinglikelihood weighting.
Dengan lebih banyaknya jumlah variabel yang harus diperhatikan, waktu yang dibutuhkan untuk menentukan state sampel juga semakin besar. Jumlah variabel yang harus diperhatikan ini juga semakin banyak seiring dengan pertambahan jumlah gen dan relasi yang terlibat. Pada kasus-kasus uji yang diberikan untuk melihat pengaruh pertambahan kompleksitas data, dapat dilihat bahwa jumlah parents maksimal yang dimiliki simpul relatif tidak berubah banyak seiring dengan pertambahan jumlah gen. Namun, jumlah children suatu simpul mengalami perubahan yang lebih signifikan. Hal ini mengakibatkan ukuran Markov blanket meningkat seiring dengan pertumbuhan gen dan relasi. Dengan demikian, proses sampling untuk algoritma Markov Chain Monte Carlo juga semakin kompleks seiring dengan pertambahan jumlah gen. Sementara, proses
sampling algoritma likelihood weighting tidak terlalu terpengaruh.
Dari hasil pengujian load test, diketahui pula bahwa pertambahan jumlah gen dan relasi tidak berpengaruh pada kebutuhan memori algoritma likelihood weighting dan Markov Chain Monte Carlo. Secara rata-rata, perbandingan kebutuhan memori algoritma
likelihood weighting dan Markov Chain Monte Carlo juga hanya sekitar 9:10. Secara umum, proses penentuan state sampel pada proses sampling kedua algoritma sama-sama melibatkan operasi penghitungan yang sederhana sehingga tidak membutuhkan memori yang besar. Perbedaan kedua proses sampling hanya terletak pada jumlah state yang harus di-lookup sehingga hanya memunculkan perbedaan dari sisi waktu.
Bagaimana kedua algoritma mendekati nilai distribusi sebenarnya juga dipengaruhi oleh jumlah gen dan relasi. Dari kasus uji-kasus uji pada load test, diketahui bahwa nilai KL
distance algoritma likelihood weighting relatif konstan terhadap pertambahan jumlah gen dan relasi. Nilai KL distance algoritma ini juga jauh lebih kecil dari nilai KL distance
algoritma Markov Chain Monte Carlo. Hal ini disebabkan karena pada proses sampling
yang dilakukan likelihood weighting, setiap sampel diberi bobot sebanding dengan kemungkinan sampel tersebut muncul bersama evidences. Selain itu, proses sampling
dilakukan sesuai urutan topologi graf. Dengan demikian, dapat dijamin bahwa distribusi sampel yang dihasilkan benar-benar mendekati distribusi yang sebenarnya, berapa pun jumlah simpul dan relasi yang ada.
Nilai KL distance algoritma Markov Chain Monte Carlo jauh lebih besar daripada algoritma likelihood weighting. Selain itu, distribusi yang dihasilkan pada jumlah gen dan
relasi yang sedikit cukup jauh dari distribusi sebenarnya. Kedekatan distribusi yang dihasilkan bertambah seiring dengan pertambahan jumlah gen dan relasi. Proses sampling
yang dilakukan pada algoritma Markov Chain Monte Carlo menggunakan metode
sampling Markov blanket. Perpindahan state dilakukan berdasarkan nilai yang dibangkitkan secara acak. Setiap sampel tidak diberi bobot sesuai dengan kemungkinan sampel tersebut muncul bersama evidences. Dengan demikian, tidak dapat ditentukan apakah distribusi sampel yang sudah dihasilkan sudah sesuai dengan distribusi sebenarnya. Pada jumlah simpul dan relasi yang sedikit, hanya terdapat sedikit kemungkinan state suatu graf. Kemungkinan distribusi sampel yang dihasilkan sesuai dengan distribusi sebenarnya lebih kecil dibandingkan pada graf dengan jumlah simpul dan relasi yang banyak.
Berdasarkan pengukuran nilai symmetric KL distance kedua algoritma, dapat dilihat bahwa jarak distribusi hasil perkiraan algoritma likelihood weighting lebih dekat dengan distribusi sebenarnya bila dibandingkan dengan distribusi hasil algoritma Markov Chain Monte Carlo. Dengan demikian, dapat disimpulkan bahwa algoritma likelihood weighting
memberikan performansi yang lebih baik daripada algoritma Markov Chain Monte Carlo dari sisi kedekatan distribusi. Selain itu, algoritma likelihood weighting juga memiliki performansi yang lebih stabil untuk berbagai variasi kompleksitas data.
Dari analisis yang dilakukan, dapat disimpulkan bahwa dengan mempertimbangkan kompleksitas data, secara keseluruhan performansi algoritma likelihood weighting lebih baik dibandingkan Markov Chain Monte Carlo. Algoritma likelihood weighting selain memberikan kebutuhan memori konstan juga lebih cepat dan menghasilkan distribusi yang lebih dekat dengan distribusi sebenarnya pada berbagai kompleksitas data.
Pertambahan jumlah evidences tidak mempengaruhi kebutuhan memori kedua algoritma. Tidak terdapat pula perbedaan yang signifikan antara kebutuhan memori algoritma
likelihood weighting dan Markov Chain Monte Carlo. Pertambahan jumlah evidences
mengakibatkan semakin sedikitnya jumlah variabel yang harus disampel. Hal ini berpengaruh pada operasi penghitungan yang harus dilakukan. Namun, operasi penghitungan yang harus dilakukan pada kedua algoritma bukan merupakan perhitungan yang membutuhkan banyak memori. Hal inilah yang menyebabkan pertambahan jumlah
evidences tidak berpengaruh. Secara umum, dari sisi pengaruh pertumbuhan jumlah
evidences terhadap kebutuhan memori, kedua algoritma memiliki performansi yang sebanding.
Sesuai dengan analisis sebelumnya, perbedaan proses sampling kedua algoritma terletak pada jumlah state yang harus di-lookup sehingga hanya memunculkan perbedaan dari sisi waktu. Hal ini sesuai dengan hasil pengujian pengaruh pertambahan evidences. Untuk algoritma likelihood weighting, pertambahan evidences tidak mengakibatkan perubahan pada kebutuhan waktu. Dalam sampling algoritma likelihood weighting, pertambahan jumlah evidences hanya berpengaruh pada bobot tiap sampel, proses yang dilakukan masih tetap sama berapapun jumlah evidences yang ada.
Pada algoritma Markov Chain Monte Carlo, pertambahan jumlah evidences berpengaruh pada jumlah kemungkinan state untuk graf. Semakin banyak evidences, semakin sedikit kemungkinan state untuk graf. Hasil operasi penghitungan yang harus dikelola sebanding dengan jumlah kemungkinan state. Dengan demikian, seiring dengan bertambahnya
evidences, waktu yang dibutuhkan untuk melakukan proses sampling semakin menurun. Secara umum, dilihat dari sisi pengaruh pertambahan evidences terhadap kebutuhan waktu, algoritma likelihood weighting lebih unggul dibandingkan algoritma Markov Chain Monte Carlo. Algoritma ini memiliki kebutuhan waktu yang stabil terhadap peningkatan jumlah evidences. Selain itu, waktu yang dibutuhkan juga baru dapat disamai oleh algoritma Markov Chain Monte Carlo pada jumlah evidences yang besar.
Pertambahan evidences tidak terlalu berpengaruh pada distribusi perkiraan yang dihasilkan algoritma likelihood weighting. Secara umum, distribusi yang dihasilkan algoritma likelihood weighting dapat dijamin kesesuaiannya dengan distribusi sebenarnya karena metode pembobotan sampel yang digunakan. Bobot yang dikenakan dijamin sesuai dengan kemungkinan sampel tersebut muncul bersama evidences. Pertambahan jumlah evidences mengakibatkan sampel yang sama diberi bobot yang berbeda. Namun, perbedaaan bobot ini tidak berpengaruh pada distribusi karena dilakukan proses normalisasi untuk memperoleh distribusi perkiraan.
Pada algoritma Markov Chain Monte Carlo, tidak diperoleh distribusi yang stabil seperti halnya pada likelihood weighting seiring dengan pertumbuhan jumlah evidences. Tidak dapat ditemukan keteraturan antara pertambahan jumlah evidences dengan distribusi yang dihasilkan. Sesuai dengan analisis sebelumnya, pertambahan jumlah evidences mengurangi kemungkinan state yang dimiliki graf dan mengurangi operasi penghitungan yang harus dikelola. Namun, kualitas distribusi tetap tidak dapat dijamin karena masih bergantung pada perpindahan state yang dipilih.
Dari analisis yang telah dilakukan, dapat disimpulkan bahwa dengan mempertimbangkan pengaruh jumlah evidences, algoritma likelihood weighting memiliki performansi yang
lebih baik daripada algoritma Markov Chain Monte Carlo. Meskipun sebanding dari sisi kebutuhan memori, likelihood weighting memiliki kebutuhan waktu dan kualitas distribusi yang lebih stabil terhadap pertambahan jumlah evidences.
Pertambahan jumlah sampel tidak berpengaruh terhadap kebutuhan memori dan waktu inferensi kedua algoritma. Distribusi yang dihasilkan juga tidak mengalami perubahan yang berarti seiring dengan pertambahan jumlah sampel. Hal ini mungkin disebabkan oleh data yang digunakan. Secara teori, pertambahan jumlah sampel mengakibatkan semakin baiknya distribusi yang dihasilkan oleh algoritma approximate inference. Namun, apabila distribusi yang ingin diperkirakan adalah distribusi yang mudah disampel, pertambahan jumlah sampel yang dihasilkan tidak mengakibatkan perubahan kualitas yang signifikan.