Anda di halaman 1dari 8

Tugas Mata Kuliah Matematika Diskrit dan Teori Graf Trivium Binary Space Partitioning (BSP)

Oleh: Luthfan Hadi Pramono 2211 205 012

JARINGAN CERDAS MULTIMEDIA TEKNIK ELEKTRO INSTITUT TEKNOLOGI SEPULUH NOPEMBER SURABAYA 2011

Trivium
Boolean Function pada trivium: menunjukkan n-dimensi vector space melalui F 2 = {0.1}. Sebuah boolean function dari n 2 variable adalah pemetaan dari 2 ke F 2. Boolean function biasanya bisa diekspresikan sebagai multi-variable polinomial melalui F 2 dalam Algebraic Normal Form (ANF) sebagai persamaan berikut:

Dimana = (a 0 ,a 1 ,a 2 ,...a n-1 ) dan koefisien c adalah konstanta pada F 2 . Boolean function dalam ANF terdiri dari hanya dua operasi, addition modulo 2 (XOR) dan multiplication modulo 2 (AND). ANF dari boolean merupakan sesuatu yang unik. Operasi boolean:

Dual: konsep dualitas adalah dgn mengambil relasi benar dan mengubah semua 1 ke nol, semua 0 ke 1, semua AND ke OR, semua OR ke AND maka akan diperoleh 2 relasi.

Aturan de morgan untuk menerapkan aturan de morgan pada pernyaatn sederhana yang perlu dilakukan adalah 1. ubah AND ke OR atau OR ke AND 2. Negasi semua variabel 3. Negasi pernyaatn yang telah dibentuk Contoh

Hukum komutatif Contoh:

Hukum distributif Contoh:

Contoh Penyederhanaan

Referensi: Zhu, B., Yu, W., dan Wang, T., (2010), A Practical Platform for Cube-Attack-like Cryptanalyses, Network Security, No. 644, hal. 1-13.

Binary Space Partitioning


Partitioning Trees as a Multi-Dimensional Search Structure Sebuah BSP tree adalah sebuah binary tree, dimana setiap node menyimpan satu permukaan (kemungkinan sebuah fragment) dari suatu tempat sehingga semua node anak kiri (kanan) memegang permukaan-permukaan yang berlokasi pada depan (belakan) dari permukaan node orang tua. Sebuah binary search tree diilustrasikan dalam figur 1. dibawah, dimana digunakan untuk menggambarkan sebuah set dari integer S = {0,1,4,5,6,8} merebah pada garis nyata. kami telah menyertakan binary tree dan hierarky dari interval yang digambarkan oleh tree ini. Untuk mengetahui apakah sebuah angka/titik sudah berada di dalam tree, dengan memasukkan titik kedalam tree dan mengikuti jalur yang berhubungan pada urutan dari interfal yang bersarang yang mengandung titik. Untuk sebuah tree yang seimbang, proses ini akan mengambil tidak lebih dari langkah O (log n); untuk faktanya, kami membuat sebuah binary search, tetapi menggunakan tree dari pada menggunakan sebuah array. Tentu saja, tree tersebut mengenkode sebuah bagian dari algoritma pencarian sejak penentuan urutan dimana pencarian berlangsung.

Figur 1. Binary search tree Hal ini akan membawa kita kembali ke Partitioning Tree, sebagaimana yang sudah kami jelaskan sebelumnya, Partitioning Tree merupakan sebuah generalisasi dari binari search tree ke dimensi > 1. Kenyataannya, membangun sebuah Partitioning Tree bisa diperhatikan sebagai sebuah versi geometrik dari Quick Sort. Modifikasi (insertions dan deletions) didapatkan dari menggabungkan beberapa tree, disamakan pada merging sorted list dalam merge sort. Bagaimanapun, sejak ditekankan tidak membagi ruang untuk setiap dimensi > 1, kami harus menggunakan hyperplanes dari pada menunjuk oleh mana yang harus di subdivide. Hyperplanes selalu merupakan pemisahan sebuah daerah kedalam dua bagian dari dimensi. dalam 1D, akan tampak seperti titik sejak 0D sets; salah satu perbedaan menjadi tambahan dari sebuah kondisi normal menunjukkan "lebih besar dari". Dibawah ini kami menunjukkan variasi yang dibatasi dari Partitioning Tree yang menggambarkan generalisasi dari binary search tree yang paling jelas dari dimensi yang lebih tinggi ditunjkkan pada figur 2.

Figur 2. Perluasan dari binary search tree ke 2D sebagai Partitioning tree Partitioning Tree juga merupakan sebuah variasi geometri dari Decision Tree, yang biasanya sering digunakan untuk pengelompokan, dan secara luas digunakan pada machine learning. Decision tree juga telah digunakan untuk membuktikan batas bawah, yang paling terkenal menunjukkan bahwa pengurutan adalah omega (n log n) dan juga merupakan model dari game "20 pertanyaan" yang populer. Untuk Partitioning Tree, pertanyaannya menjadi "sisi mana dari sebuah particular hyperplane merupakan bagian dari sandaran geometri", figur 3.

Figur 3. Partitioning Tree merepresentasikan relasi spasial dari inter-object Membangun sebuah Gambaran Partitioning Tree dari satu atau lebih obyek polyhedral melibatkan penghitungan hubungan yang renggang antara permukaan poligonal sekali dan mengekode relasi ini dalam sebuah binary tree. Tree ini bisa ditransformasikan dan digabungkan dengan tree yang lain untuk mempercepat penghitungan dari hubungan yang renggang (spatial relations) antara poligons dari dua obyek yang bergerak. Partitioning Tree mendapatkan sebuah solusi yang bagus sekali pada sejumlah permasalahan yang penting dalam komputasi geometri dengan memanfaatkan dua properti yang paling sederhana yang terjadi dimana sebuah bidang terpisah (berada diantara) dua atau lebih obyek: 1) obyek manapun dalam satu sisi dari bidang tidak bisa dipotong oleh obyek lain pada sisi yang lain, 2) diberikan sebuah posisi pandang, obyek pada sisi yang sama

sebagaimana orang yang melihat bisa memiliki gambarnya masing-masing tergambar diatas gambar pada sisi yang berlawanan (painter algorithm).

Figur 4. Plane power: mengurutkan obyek w.r.t sebuah hyperplane Properti ini bisa dibuat dimensi secara independen jika kita menggunaan kondisi "hyperplane" untuk menunjukkan pada bidang dalam 3D, garis dalam 2D, dan secara umum untuk bidang-d, pada sebuah (d-1)-dimensional sub-space didefinisikan oleh persaman linier tunggal figur 4. Satu-satunya operasi yang kita butuhkan untuk membangun Partitioning Tree adalah memisahkan sebuah daerah cembung oleh hyperplane tunggal ke dalam dua daerah anak, sebagai hasilnya keduanya juga merupakan daerah cembung.

Creating the BSP tree Misalkan kita meyakini sebuah tempat yang berisikan sebuah set dari poligon P = p 1 , p 2 ,...,p n , kita memilih sebuah poligon pk yang berubah-ubah (untuk beberapa saat) dari set tersebut. Menggunakan sebuah bidang yang mendasari pk, poligon yang ada berada pada lokasi positif (depan) atau negatif (belakang) setengah ruang (yang didefinisikan normal pada + dan . bidang)

+ Kita bisa membangun sebuah BSP tree dimana pk disimpan dalam root, berada pada sebelah kiri node anak dan berada pada sebelah kanan node anak, figur 5. Setiap sub tree berisikan sebuah set (not null) dari poligon-poligon dapat dibagi menjadi bagian lebih kecil yang sama. Hal ini dapat terjadi karena 'properti BSP dasar' yaitu: jika pengamat berada pada lokasi depan (belakang) dari pk, maka semua poligon yang berada pada lokasi belakang (depan) dari pk tidak dapat dikenali. Hal yang sama, pk itu sendiri tidak bisa dikenali oleh semua poligon yang berlokasi di depan (belakang)

Figur 5. Operasi elementer yang digunakan untuk membangun Partitioning Tree

Ilustrasi pada figur 6. Menunjukkan bagaimana pembentukan dari sebuah BSP Tree. Status dari tree ditunjukkan setelah setiap langkah-langkah perulangan, berawal dengan daftar inisial poligon A, B, C, D, E, F. kriteria dari pemilihan root berdasarkan pada urutan dalam hal ini adalah huruf alfabet.

Figur 6. Enam bagian permukaan Langkah-langkah pembuatan tree, yang akan ditunjukkan pada figur 7. Dan 8: i. A dipilih sebagai root, poligon B dan C ditempatkan di depan daftar, dan poligon D, E, F ditempatkan di belakang. ii. sub daftar dibagian depan didekomposisi; B digunakan sebagai root dan C ditempatkan di depan. Sisi depan dari BSP tree sekarang sudah lengkap. iii. Sub daftar dibagian belakang didekomposisi; D digunakn sebagi root. Poligon E dipisahkan menjadi dua bagian, E1 dan E2, hal tersebut menambahkah satu jumlah fragmen. Dimana E1 ditempatkan dibagian depan sub daftar, E2 menyertai F di belakang. iv. Akhirnya, bagian belakang sub daftar dari node. D dikomposisi dan F ditempatkan dibagian belakang dari E2.

Figur 7. BSP tree setelah langkah ke tiga

Figur 8. BSP tree dengan tujuh fragment (setelah langkah ke empat)

Referensi: James, A., (1999), Binary Space Partitioning for Accelerated Hidden Surface Removal and Rendering of Static Environments, Tesis Ph.D., the University of East Anglia, Norwich. Naylor, FN., (2001), A Tutorial on Binary Space Partitioning Trees, Lecture handout: Computer Graphic 2, Carnegie Mellon University, Pittsburgh.