KONSTRUKSI ALGORITME GREEDY SVP LLL
SAIFUL KHAIR
SEKOLAH PASCASARJANA INSTITUT PERTANIAN BOGOR
PERNYATAAN MENGENAI TESIS DAN
SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA
Dengan ini saya menyatakan bahwa tesis berjudul Konstruksi Algoritme Greedy SVP LLL adalah benar karya saya dengan arahan dari komisi pembimbing dan belum diajukan dalam bentuk apa pun kepada perguruan tinggi mana pun. Sumber informasi yang berasal atau dikutip dari karya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di bagian akhir tesis ini.
Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut Pertanian Bogor.
RINGKASAN
SAIFUL KHAIR. Konstruksi Algoritme Greedy SVP LLL. Dibimbing oleh SUGI GURITMAN dan BIB PARUHUM SILALAHI.
Latis merupakan himpunan semua kombinasi linier bilangan bulat dari himpunan vektor yang bebas linier dalam ruang ℝ . Vektor yang bebas linier tersebut disebut basis dari latis. Sebarang latis dapat dibangkitkan dari banyak basis, dan basis-basis tersebut memiliki kardinalitas yang sama.
Masalah yang paling mendasar dan terkenal di dalam latis adalah masalah vektor terpendek (Shortest Vector Problem/SVP). SVP merupakan masalah pelacakan vektor terpendek dalam suatu latis dengan basis yang ekivalen. Dalam dimensi dua, masalah SVP telah terselesaikan secara optimal dengan menggunakan algoritme Gauss. Untuk dimensi lebih dari dua, H. W. Lenstra, L. Lenstra, dan L. Lovasz mengusulkan algoritme LLL untuk menghitung aproksimasi dari vektor terpendek dalam latis tersebut. Solusi basis tereduksi yang diperoleh dari algoritme LLL masih merupakan hampiran dan memiliki waktu eksekusi (running time) polinomial untuk sebarang dimensi yang cukup besar.
Pada tahun 1994, Schnoor dan Euchner membuat varian baru dari algoritme LLL yang dinamakan algoritme LLL penyisipan dalam. Algoritme ini merupakan hasil modifikasi dari algoritme LLL pada syarat penukaran untuk meningkatkan ketepatan output basis tereduksi LLL dan mengaplikasikannya pada masalah penjumlahan subhimpunan.
Tujuan dari penelitian ini adalah: (1) Merekonstruksi algoritme LLL dan algoritme LLL penyisipan dalam dengan menggunakan pendekatan geometrik. (2) Konstruksi algoritme greedy SVP LLL. (3) Mengimplementasikan ketiga algoritme dalam bahasa pemrograman simbolik, dan melakukan perbandingan secara eksperimental.
Suatu basis ℬ = [ , , … , ] dalam ℝ disebut tereduksi LLL dengan parameter jika memenuhi: (a) | | , untuk setiap bilangan bulat , dengan
Hasil pengujian eksperimental ketiga algoritme pada ukuran matriks tertentu menunjukkan bahwa dengan meningkatnya ukuran matriks, waktu eksekusi ketiga program mengalami peningkatan. Hasil perbandingan secara eksperimental juga menunjukkan bahwa dengan menggunakan = untuk algoritme LLL dan Algoritme LLL penyisipan dalam, serta algoritme greedy SVP LLL yang merupakan varian baru yang telah dibuat tanpa menggunakan parameter , mengungguli dua algoritme lain dalam segi kecepatan dengan output yang sama. Kata kunci: algoritme LLL, algoritme LLL penyisipan dalam, algoritme greedy
SUMMARY
SAIFUL KHAIR. The Construction of Greedy SVP LLL Algorithm. Supervised by SUGI GURITMAN and BIB PARUHUM SILALAHI.
A lattice is a set of all integer linear combination of a set of linearly independent vectors in ℝ . The independent vectors are called bases of lattice. Any lattice can be generated from many bases, and these bases have the same cardinality.
In the lattice, the most fundamental and renowned problem is the Shortest Vector Problem (SVP). SVP is a tracking problem of the shortest nonzero vector in a lattice with equivalent bases. In two dimensions, SVP problem has resolved exactly by Gauss’ algorithm. When the lattice dimension is higher than two, A.K. Lenstra, H.W. Lenstra and L. Lovasz gave a LLL algorithm to compute approximation of nonzero shortest vector in the lattice. Reduced bases solution obtained from LLL algorithm still be an approximation and has polynomial running time of arbitrary dimension which large enough.
In 1994, Schnoor and Euchner modified this LLL algorithm as a new variant which later was named deep insertion LLL algorithm. This algorithm is a modified version of the LLL algorithm to the terms of the exchange step to improve the accuracy of output of LLL reduced bases and applying it to the subset sum problem.
The purpose of this research are: (1) Reconstruct the LLL algorithm and deep insertion LLL algorithm using a geometric approach. (2) Construct a greedy SVP LLL algorithm. (3) Implement the three algorithms in a symbolic programming language, and evaluate them experimentally.
A bases ℬ = [ , , … , ] in ℝ is called reduced LLL with parameter if satisfies: (a) | | , for every integer , with < < . (b) ‖� ( ‖ ‖� ( + ‖ , for = , , … , − , where is a reduced parameter of real numbers with < < .� The first requirement is the reduced basis must “nearly orthogonal” and in its computation case, this requirement can be reached out by using the Gram-Schmidt’s orthogonalization. While the second requirement is called exchange step, or used to called as Lovasz condition. By using both of these requirements, then they establish the LLL algorithm. Then, Schnoor and Euchner modify the LLL algorithm based on the requirements of the exchange step called the deep insertion LLL algorithm, where the exchange step is based on the comparison of the projected vector in orthogonal complement
[ , , … , − ]⊥ after j-th reduction. To construct greedy SVP LLL algorithm,
the requirements of the exchange step is based on purely by comparing norm of lattice with norm lattice for = , , … , − . The process of insertion reduced vector after the exchange step also has done greedily. Then, we calculate the number of arithmetic operation in greedy SVP LLL algorithm for further analysis.
algorithm and the deep insertion LLL algorithm, and the greedy SVP LLL algorithm which is a new variant made by using no parameter of , outperform of the other of two previous algorithm in terms of speed with the same output. Keywords: LLL algorithm, LLL deep insertion algorithm, greedy SVP LLL
© Hak Cipta Milik IPB, Tahun 2014
Hak Cipta Dilindungi Undang-Undang
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan atau menyebutkan sumbernya. Pengutipan hanya untuk kepentingan pendidikan, penelitian, penulisan karya ilmiah, penyusunan laporan, penulisan kritik, atau tinjauan suatu masalah; dan pengutipan tersebut tidak merugikan kepentingan IPB
Tesis
sebagai salah satu syarat untuk memperoleh gelar Magister Sains
pada
Program Studi Matematika Terapan
KONSTRUKSI ALGORITME GREEDY SVP LLL
SEKOLAH PASCASARJANA INSTITUT PERTANIAN BOGOR
BOGOR 2014
Judul Tesis : Konstruksi Algoritme Greedy SVP LLL Nama : Saiful Khair
NIM : G551110111
Disetujui oleh Komisi Pembimbing
Dr Sugi Guritman Ketua
Dr Ir Bib Paruhum Silalahi, MKom Anggota
Diketahui oleh
Ketua Program Studi Matematika Terapan
Dr Jaharuddin MS
Dekan Sekolah Pascasarjana
Dr Ir Dahrul Syah, MScAgr
Tanggal Ujian: 30 Desember 2013
PRAKATA
Puji dan syukur penulis panjatkan kepada Allah SWT atas segala karunia-Nya sehingga tesis ini dapat diselesaikan. Tema yang dipilih dalam penelitian ini tentang masalah pada lattice theory. Tesis ini merupakan syarat untuk menyelesaikan studi pada Program Magister Matematika Terapan, Departemen Matematika, Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Pertanian Bogor.
Dalam proses penulisan tesis ini, penulis menyadari bahwa telah memperoleh dorongan dan bantuan baik moril maupun materil dari berbagai pihak untuk melengkapi keterbatasan-keterbatasan yang dimiliki penulis. Untuk itu, melalui kesempatan ini penulis ingin mengucapkan terima kasih dan rasa hormat yang sebesar-besarnya pada:
1. Bapak Sugi Guritman, Bapak Bib Paruhum Silalahi dan Bapak Fahren Bukhari selaku pembimbing dan penguji yang telah memberi bimbingan, masukan, dorongan, nasihat serta segala bantuan sehingga tesis ini dapat terselesaikan.
2. Ayahanda dan Ibunda tercinta, Bapak H. Umar Sage (Alm.) dan Ibu Siti Raihanun, Kakak Muzayyin Habiby, Adik Nurhidayati, Adik Eli, Paman H. Nasir serta keluarga besar yang telah memberi dukungan moril dan materil selama masih kuliah dan penulisan tesis ini.
3. Semua staf dan dosen pengajar Departemen Matematika yang telah memberikan ilmu yang bermanfaat selama menuntut ilmu di Departemen Matematika.
4. Sahabat dan teman-teman mahasiswa S2 departemen matematika yang selalu memberi semangat, tantangan, perhatian, bantuan, inspirasi, doa, dan kasih sayang.
5. Semua pihak yang telah membantu dalam kelancaran penulisan tesis ini, yang tidak disebutkan namanya. Semoga Allah SWT membalas jasa dan jerih payah Bapak/Ibu serta saudara-saudari yang telah diberikan bagi penulis dalam menyelesaikan tesis ini.
Penulis menyadari bahwa penulisan tesis ini masih jauh dari kesempurnaan dan penulis sangat menghargai kritik dan saran yang bersifat membangun dari pembaca.
Harapan penulis semoga tesis ini dapat bermanfaat bagi pihak-pihak yang membutuhkan. Terima kasih.
DAFTAR ISI
DAFTAR TABEL vi
DAFTAR GAMBAR vi
DAFTAR LAMPIRAN vi
1 PENDAHULUAN 1
Latar Belakang 1
Tujuan Penelitian 2
2 TINJAUAN PUSTAKA 3
Ruang vektor, Kombinasi Linier, Basis, dan Ortogonalitas 3
Analisis Algoritme, Running Time 5
3 METODE PENELITIAN 6
Konstruksi Algoritme LLL, Algoritme LLL Penyisipan Dalam, dan Algoritme
Greedy SVP LLL 6
Analisis Algoritme Greedy SVP LLL 6
Implementasi dan Pengujian 6
4 HASIL DAN PEMBAHASAN 7
Studi Pendahuluan 7
Rekonstruksi Algoritme LLL 9
Fungsi Proyeksi dan Determinan Latis 13
Permasalahan dalam Latis 15
Algoritme LLL 17
Reduksi Ukuran 19
Algoritme LLL dan Analisisnya 28
Membatasi banyaknya iterasi 29
Membatasi besarnya bilangan yang terlibat 31
Memperbaiki algoritme LLL 33
Algoritme LLL Penyisipan Dalam 33
Algoritme Greedy SVP LLL 36
Analisis Algoritme Greedy SVP LLL 38
Pengujian Eksperimental dan Perbandingan Running Time masing-masing
Algoritme dengan Output Sama 39
5 SIMPULAN DAN SARAN 41
Simpulan 41
Saran 41
DAFTAR PUSTAKA 42
LAMPIRAN 43
DAFTAR TABEL
1 Ukuran matriks × versus running time (detik) dengan = / 40
DAFTAR GAMBAR
1 Latis dengan basis {(1,0),(0,1)} 10
2 Latis dengan basis {(2,1),(3,1)} 10
3 Latis dengan basis {(1,2),(4,1)} 10
4 Latis dengan basis {(1,1)} 10
5 Parallelepiped dengan ℬ = { , , , } 13
6 Perbandingan running time (detik) versus ukuran matriks × 40
DAFTAR LAMPIRAN
1 Program Matriks Bilangan Bulat 43
2 Prosedur matriks Bentuk Normal Hermit (Operasi Kolom Integer (OKI)) 47
3 Prosedur Ortogonalisasi Gram-Schmidt 48
4 Algoritme LLL 49
5 Algoritme LLL Penyisipan Dalam (Deep Insertion) 50
6 Algoritme Greedy SVP LLL 51
1
PENDAHULUAN
Latar Belakang
Latis (lattice) merupakan obyek geometri dalam ruang berdimensi-n yang dapat diilustrasikan sebagai himpunan titik-titik dengan susunan teratur dan periodik. Secara matematika, latis merupakan himpunan semua kombinasi linier bilangan bulat dari himpunan vektor yang bebas linier dalam ruangℝ . Vektor yang bebas linier tersebut disebut basis dari latis. Sebarang latis dapat dibangkitkan dari banyak basis, dan basis-basis tersebut memiliki kardinalitas yang sama (Akhavi 2003).
Masalah yang paling mendasar dan terkenal di dalam latis adalah masalah vektor terpendek (Shortest Vector Problem) yang disingkat SVP. Shortest Vector Problem (SVP) merupakan masalah pelacakan vektor terpendek dalam suatu latis dengan basis yang ekivalen. Dalam dua dimensi, solusi dari masalah SVP telah terselesaikan secara optimal oleh algoritme Gauss. Penelitian tentang kompleksitas dengan kasus terburuk (worst-case) dari algoritme Gauss telah dilakukan oleh Lagarias (1985). Dia menunjukkan bahwa algoritme berjalan polinomial terhadap input. Kompleksitas dari algoritme Gauss juga diteliti lebih dalam lagi oleh Valley (1991).
Untuk latis dengan dimensi lebih dari dua, didefinisikan secara tepat gagasan tentang reduksi basis latis. Pada tahun 1982, A.K. Lenstra, H. W. Lenstra dan L. Lovasz memberikan algoritme reduksi latis untuk sebarang dimensi. Algoritme ini merupakan hasil generalisasi dari algoritme Gauss. Algoritme tersebut dinamakan algoritme LLL. Solusi basis tereduksi yang diperoleh dari algoritme LLL masih merupakan hampiran dan memiliki waktu eksekusi (running time) polinomial untuk sebarang dimensi yang cukup besar.
Setelah ditemukan algoritme ini, kajian tentang latis menjadi lebih menarik dan banyak berkaitan dengan bidang lain. Hal ini terbukti bahwa algoritme LLL mampu memecahkan masalah-masalah yang ada pada teori bilangan (Lenstra et al. 1982; Schnoor 1991), signal processing (Hassibi et al. 2005), kriptografi (Nguyen et al. 2001) maupun masalah integer linear programming (Kannan 1983; Lenstra 1983).
Dalam banyak aplikasi, kecepatan eksekusi algoritme LLL sangat dibutuhkan. Pada tahun 1994, Schnoor dan Euchner membahas Algoritme LLL yang dimodifikasi pada syarat penukaran (exchange step) yang disebut algoritme LLL penyisipan dalam (deep insertion) untuk meningkatkan ketepatan output basis tereduksi LLL yang dihasilkan dan mengaplikasikannya pada masalah penjumlahan subhimpunan (subset sum problem).
Tujuan dalam penelitian ini adalah mengkonstruksi algoritme greedy SVP LLL yang merupakan pengembangan ide dari algoritme LLL penyisipan dalam sekaligus varian baru dari algoritme LLL. Selanjutnya, dilakukan perhitungan pada banyaknya operasi aritmetik yang terlibat, kemudian dibandingkan secara eksperimental antara algoritme LLL, algoritme LLL penyisipan dalam dan Algoritme greedy SVP LLL.
2
Tujuan Penelitian
Tujuan penelitian ini adalah untuk:
a. Merekonstruksi algoritme LLL dan algoritme LLL penyisipan dalam. b. Mengkonstruksi algoritme greedy SVP LLL.
c. Menghitung operasi aritmetik yang terlibat dalam algoritme greedy SVP LLL. d. Mengimplementasikan algoritme-algoritme tersebut dalam suatu bahasa
pemrograman simbolik.
3
2
TINJAUAN PUSTAKA
Ruang vektor, Kombinasi Linier, Basis, dan Ortogonalitas
Definisi 2.1 (Ruang Vektor)
Suatu himpunan disebut ruang vektor (real) dan anggota-anggotanya disebut vektor jika tak kosong dan untuk setiap , dan setiap bilangan real , penjumlahan + dan perkalian digabungkan, memenuhi 8 aturan-aturan berikut:
1. (Komutatif penjumlahan) + = + ,
2. (Asosiatif penjumlahan) + + = + + ,
3. (Eksistensi Vektor nol) Ada vektor sehingga + = untuk setiap ,
4. (Invers Penjumlahan) Untuk setiap vektor ada vektor negatif –u sehingga
+ − = ,
5. (Perkalian dengan 1) = ,
6. (Asosiatif perkalian dengan skalar) = , 7. (Distribusi kiri) + = + ,
8. (Distribusi kanan) + = + .
(Schay 2010)
Definisi 2.2 (Sifat tertutup terhadap penjumlahan dan perkalian dengan skalar)
Suatu himpunan dikatakan tertutup terhadap penjumlahan jika setiap pasangan dari elemen-elemen , , penjumlahan + didefinisikan dan merupakan anggota dari . Himpunan dikatakan tertutup pada perkalian dengan skalar jika untuk setiap skalar dan ,�perkalian didefinisikan dan merupakan anggota dari .
(Schay 2010)
Definisi 2.3 (Subruang Vektor)
Suatu subhimpunan dari suatu ruang vektor � disebut subruang dari � jika adalah ruang vektor yang memenuhi sifat penjumlahan vektor dan perkalian dengan skalar yang sama dengan �.
(Schay 2010)
Definisi 2.4 (Kombinasi Linier)
Suatu ruang vektor disebut kombinasi linier dari vektor-vektor
, , … , n jika dapat dituliskan dalam bentuk = + + + n
dimana , , … , adalah skalar dan disebut koefisien dari , , … , n.
(Nicholson 1995)
Definisi 2.5 (Merentang/Span)
4
(Nicholson 1995)
Definisi 2.6 (Bebas Linier dan Tak Bebas Linier)
Suatu himpunan { , , … , n} disebut bebas linier jika memenuhi kondisi
berikut: Jika + + + n = maka = = = = . Suatu
himpunan vektor-vektor yang tidak bebas linier dikatakan terpaut linier.
(Nicholson 1995)
Definisi 2.7 (Basis)
Suatu himpunan { , , … , n}dari vektor-vektor dalam ruang vektor disebut basis dari jika memenuhi dua kondisi berikut:
1. { , , … , n}bebas linier, 2. = � { , , … , n}.
(Nicholson 1995)
Definisi 2.8 (Hasil kali skalar di ℝ�)
Misalkan , ℝ� dengan = [ ] dan = [ ], maka hasil kali skalar dari dan adalah
T = + + + .
(Leon 1998)
Definisi 2.9 (Norm dari Suatu Ruang Vektor di ℝ�)
Misalkan ℝ� dengan = [ ], maka norm dari vektor di ℝ� adalah
‖ ‖ = √ T = √ + + + .
(Leon 1998)
Definisi 2.10 (Proyeksi Vektor di ℝ�)
Misalkan , ℝ� dan ≠ . Proyeksi vektor x pada y adalah vektor = �
‖ ‖ .
(Leon 1998)
Definisi 2.11 (Ortogonalitas di ℝ�)
Vektor-vektor dan disebut ortogonal jika T = .
(Leon 1998)
Definisi 2.12 (Komplemen Ortogonal)
Misalkan � adalah subruang dari ℝ . Himpunan semua vektor-vektor di ℝ yang ortogonal dengan setiap vektor di � dinotasikan dengan �⊥, yaitu �⊥ =
{ ℝ | T = , ∀ �}.
5
Lema 2.1 (Pertidaksamaan Cauchy-Schwarz)
Untuk sebarang dua vektor, , ℝ� berlaku‖ . ‖ ‖ ‖‖ ‖.
(Bremner 2012)
Definisi 2.13 (Ortogonalisasi Gram-Schmidt)
Misalkan , , … , n adalah basis dari ℝ�. Ortogonalisasi Gram-Schmidt (Gram Schmidt Ortogonalization) dari , , … , adalah basis ∗, ∗, … , ∗:
∗ =
∗ = − . ∗
∗. ∗
∗ = − ∑ ∗
−
=
,
dengan = . ∗
∗. ∗ untuk < .
(Bremner 2012)
Analisis Algoritme, Running Time
Definisi 2.14 (Analisis Algoritme)
Analisis algoritme dilakukan untuk menduga besarnya sumber daya waktu yang dibutuhkan untuk sebarang ukuran input n.
(Cormen et al. 1990)
Definisi 2.15 (Komplesitas Waktu)
Kompleksitas waktu, didefinisikan sebagai waktu yang dibutuhkan oleh suatu algoritme untuk menyelesaikan proses dengan input berukuran n.
(Cormen et al. 1990)
Definisi 2.16 Running Time
Running time dari suatu algoritme didefinisikan sebagai ukuran operasi primitif atau tahapan proses yang dieksekusi.
6
3
METODE PENELITIAN
Penelitian ini disusun melalui tiga tahap. Pertama, dilakukan telaah pustaka (buku-buku dan jurnal-jurnal terkait) mengenai algoritme LLL serta konsep-konsep dasar yang mendasarinya, kemudian dilakukan konstruksi algoritme greedy SVP LLL. Ketiga, dilakukan pengujian terhadap algoritme yang telah dibuat dengan mengimplementasikannya dalam bahasa pemrograman simbolik. Selanjutnya, akan dilakukan pengujian dan perbandingan secara deskriptif untuk mendapatkan algoritme mana yang terbaik dari sisi kecepatan eksekusi.
Konstruksi Algoritme LLL, Algoritme LLL Penyisipan Dalam, dan Algoritme Greedy SVP LLL
Tahap pertama yakni telaah pustaka. Rincian langkah-langkah dalam tahap pertama ini adalah:
1) Rekonstruksi algoritme LLL dengan pendekatan geometrik. 2) Mengkonstruksi algoritme greedy SVP LLL.
3) Menganalisis skema algoritme LLL dilihat dari banyaknya iterasi pada saat penukaran dan membatasi bilangan yang terlibat.
Analisis Algoritme Greedy SVP LLL
Langkah-langkah untuk menganalisis algoritme greedy SVP LLL adalah sebagai berikut:
1) Menghitung banyaknya operasi aritmetik yang terlibat dalam algoritme greedy SVP LLL. Dalam hal ini, banyaknya operasi yang dimaksud adalah banyaknya operasi dasar (jumlah, kurang, kali, bagi), ditambahkan dengan operasi assignment, dan perbandingan (ekspresi logika).
2) Menganalisis proses yang terjadi dalam tubuh algoritme greedy SVP LLL.
Implementasi dan Pengujian
Tahap terakhir yaitu mengimplementasikan algoritme dan pengujian dengan rincian sebagai berikut:
1) Mengimplementasikan ketiga algoritme dalam bahasa pemrograman simbolik.
2) Menentukan running time dari kedua algoritme tersebut, dengan input yaitu dan matriks berukuran × tertentu.
3) Mengambil beberapa sampel data. Data yang dimaksud adalah data waktu eksekusi ketiga algoritme serta ukuran matriksnya.
7
4
HASIL DAN PEMBAHASAN
Studi Pendahuluan
Salah satu bahasan dalam aljabar linier yang merupakan kunci penting dalam latis adalah proses ortogonalisasi Gram-Schmidt. Proses ini akan menjadi ide utama dalam pembentukan algoritme LLL. Berikut ini definisi proses ortogonalisasi Gram-Schmidt.
Ortogonalisasi Gram-Schmidt
Misalkan ℬ = { , , … , } adalah himpunan n vektor bebas linier dalam ruang vektor ℝ . Maka dapat dikonstruksi barisan bagian dari vektor yang saling ortogonal ℬ∗ = { ∗, ∗, … , ∗} dimana
∗ = ,
∗ = − ∑
, −
=
∗
dengan = , , … , dan
, = .
∗ ∗. ∗.
Jika himpunan ℬ = { , , … , } adalah bebas linier, maka ℬ merupakan basis untuk ℬ = {∑ = / ℝ}, dan jika ℬ∗ = { ∗, ∗, … , ∗} adalah hasil ortogonalisasi Gram-Schmidt dari ℬ, maka ℬ∗ juga merupakan basis untuk
ℬ . Namun hal ini tidak berlaku secara umum dalam latis, jika ℬ adalah basis untuk latis yang dibangkitkan oleh ℬ, tidak harus ℬ∗ merupakan basis untuk latis tersebut.
Kompleksitas Gram-Schmidt
Dalam ortogonalisasi Gram-Schmidt terlihat bahwa banyaknya operasi aritmetik yang dilibatkan dalam proses tersebut adalah . Namun, belum dapat disimpulkan bahwa waktu eksekusi (running time) pada ortogonalisasi Gram-Schmidt adalah polinomial.
Diasumsikan bahwa matriks B yang digunakan adalah matriks bilangan bulat. Perhatikan bahwa langkah ke-j dari ortogonalisasi Gram-Schmidt dapat dirumuskan ulang sebagai
���������������������������������������������������������� ∗ = + ∑ �
−
=
�������������������������������������������������
untuk suatu � ℝ. Karena ∗ ortogonal ke untuk setiap < maka diperoleh
������������������������������������������������� . ∗ = (� . +� . ∑ � −
=
����������������������������������������
⇔ = (� . + . ∑ �
−
8
maka persamaan (2) dapat ditulis sebagai
( berdasarkan aturan Cramer diperoleh
� ℤ
det( �− − =
ℤ det ℒ(ℬ−
.
Hasil ini digunakan untuk memberi batas pada koefisien pada koefisien . Misalkan − = det( �− − dan dikalikan nilainya dengan kedua ruas dari persamaan (1) maka diperoleh
− ∗ = − + ∑( − �
−
=
�
9
�������������������������������������������= − . ∗ (∏ ‖− ∗‖
= ‖ ∗‖
ℤ .
Hasil ini menunjukkan bahwa penyebut dari harus membagi .
Uraian diatas membuktikan bahwa bilangan-bilangan yang ada di dalam vektor ∗ dan mempunyai penyebut paling banyak
�a� ∏‖ ∗‖ =
.
Akhirnya, besarnya bilangan polinomial karena ‖ ∗‖ ‖ ‖. Dengan demikian, secara keseluruhan ortogonalisasi Gram-Schmidt mempunyai kompleksitas waktu polinomial. Hal ini bermanfaat untuk menganalisis algoritme LLL yang akan direkonstruksi, dimana cara kerja algoritme ini berdasarkan atas proses ortogonalisasi Gram-Schmidt.
Rekonstruksi Algoritme LLL
Seperti yang telah dijelaskan dalam pendahuluan bahwa latis merupakan obyek geometrik dalam ruang berdimensi-n yang dapat diilustrasikan sebagai himpunan titik-titik yang teratur dan periodik. Definisi latis secara formal adalah sebagai berikut.
Definisi 4.1
Misalkan ℬ = { , , … , } adalah himpunan n vektor bebas linier dalam ruang vektor ℝ . Latis yang dibangkitkan oleh ℬ adalah himpunan
ℒ ℬ = {∑
=
/ ℤ}
yang beranggotakan semua kombinasi linier bilangan bulat dari ℬ. Dalam hal ini,
ℬ merupakan basis untuk ℒ ℬ . Notasi “/” dibaca sebagai “dengan”.
Seperti dalam ruang vektor, basis ℬ untuk latis �ℒ ℬ dapat direpresentasikan sebagai matriks berukuran × yang kolom-kolomnya merupakan vektor :
= ��� ��… �� ,
sehingga ℒ ℬ dapat dituliskan sebagai perkalian matriks ℒ = { / ℤ }. Dalam hal ini, merupakan bentuk matriks dari ℬ.
Terdapat kemiripan antara pengertian latis yang dibangkitkan oleh ℬ dengan pengertian subruang vektor dalam ℝ yang direntang oleh ℬ:
ℬ = {∑
=
/ ℝ}.
10
Gambar 3 Latis dengan basis {(1,2),(4,1)}
Gambar 4 Latis dengan basis {(1,1)}
tentu ℬ juga basis untuk ℒ ℬ . Misalkan dipilih basis ℬ = { , , , } yang merupakan basis baku untuk ℝ , maka
ℒ ℬ = { , + , / , ℤ} = { , / , ℤ} = ℤ .
Latis ℤ beserta basis diilustrasikan pada Gambar 1. Seperti pada ruang vektor, basis suatu latis tidak tunggal. Pada Gambar 2, diilustrasikan bahwa ℤ dapat dibangkitkan oleh latis basis ℬ = { , , , }. Sedangkan pada Gambar 3 merupakan contoh basis ℬ = { , , , } yang bukan merupakan basis untuk
ℤ walaupun mempunyai rank penuh dalam ℝ . Selanjutnya Gambar 4 merupakan sebuah contoh bahwa basis ℬ = { , } yang membentuk latis
ℒ ℬ walaupun ℬ tidak memiliki rank penuh di dalam ℝ .
Gambar 1 Latis dengan basis {(1,0),(0,1)}
11
Definisi 4.2
Dua basis � dan ℬ dikatakan ekivalen, dinotasikan dengan ��~�ℬ, jika dan hanya jika � dan ℬ�membangkitkan latis yang sama, yaitu ℒ � = ℒ ℬ .
Definisi 4.3
Matriks U berukuran × disebut unimodular jika ℤ × dan det =
± .
Contoh matriks unimodular: = ( − −
− )
dengan det = − .
Proposisi 4.1
Invers dari matriks unimodular juga merupakan matriks unimodular.
Bukti:
Misalkan = ( adalah matriks unimodular berukuran × dari asumsi diperoleh ℤ dan det = ± . Berdasarkan rumus matriks invers, maka
�������������������������������������������������������������� − =
t (
�
,������������������������������������������� � dimana adalah kofaktor dari . Karena ℤ, dari definisi kofaktor, jelas
bahwa ℤ sehingga
� ℤ × .
Disamping itu,
− � = �
⇒ det − � = det �
⇒ det − � det� = det �
⇒ det −
= det� .
Karena det = ± , maka
��������������������������������������������det − = ± dan
t� ℤ.����������������������������������������
Dari (4) dan (5) dapat disimpulkan bahwa matriks − merupakan matriks unimodular. Bukti lengkap. ∎
Proposisi 4.2
Misalkan � = { , , … , } adalah basis untuk ℒ � dan ℬ =
{ , , … , } adalah basis untuk ℒ ℬ . Maka ��~�ℬ jika dan hanya jika adalah matriks unimodular ℤ × sehingga = , dimana dan adalah bentuk matriks
= … dan = … .
Bukti:
⇒ Misalkan ℒ � = ℒ ℬ . Dari asumsi ini, berarti untuk setiap =
, , … untuk � ℒ � . Dari pengertian ℒ � maka ada =
… ℤ sehingga
12
Dengan demikian, dapat didefinisikan matriks ℤ × yang kolom-kolomnya adalah vektor , yaitu
= … =
… … ⋱ …
).
Dari persamaan (6) diperoleh persamaan matriks
… = … … ⇔ = .������
Dengan langkah yang sama, dapat diperoleh matriks ℤ × sehingga
��������������������������������������������������������������������� = .���������������������������������������������������������
Dari persamaan (7) dan (8),
= = ⇒ det = det ⇔ det det = .
Disamping itu, karena dan adalah matriks bilangan bulat, maka determinannya juga bilangan bulat. Dengan demikian, dapat disimpulkan bahwa
det = ± .
⇐ Misalkan = dengan U unimodular. Dari asumsi ini, berarti untuk setiap = , , … , , ℒ � , dengan kata lain, merupakan kombinasi linier bilangan bulat dari �. Selanjutnya bahwa karena setiap ℒ ℬ merupakan kombinasi linier dari { … }, maka dapat disimpulkan bahwa x juga merupakan kombinasi linier bilangan bulat dari � (artinya
ℒ � ). Dengan demikian, diperoleh ℒ ℬ ⊆ ℒ � . Sekarang tinggal ditunjukkan
ℒ � ⊆ ℒ ℬ . Perhatikan bahwa, dari asumsi juga diperoleh = − dengan
− adalah unimodular (Proposisi 4.1). Akhirnya dengan langkah yang sama
dengan sebelumnya diperoleh ℒ � ⊆ ℒ ℬ . Bukti lengkap. ∎
Cara yang lebih praktis untuk menentukan dua basis yang ekivalen adalah dengan menerapkan operasi kolom integer (integer column operation).
Definisi 4.4
Operasi Kolom Integer (OKI) pada matriks memiliki 3 jenis berikut: 1. � menyatakan matriks hasil operasi yang menukar kolom ke-j dan
kolom ke-k pada matriks .
2. � − menyatakan matriks hasil operasi yang mengalikan kolom ke-j dengan skalar -1 pada matriks .
3. � menyatakan matriks hasil operasi yang menambahkan kolom ke-j dengan ℤ kali kolom ke-k pada matriks .
OKI hampir sama dengan Operasi Kolom Dasar (OKD) yang biasanya diterapkan pada ruang vektor. Hal yang membedakan hanya terdapat pada jenis kedua. Pada OKD, pengali yang digunakan adalah sembarang bilangan real taknol sedangkan pada OKI pengali yang digunakan adalah -1.
Kemudian, misalkan I adalah matriks identitas dan K adalah serangkaian OKI yang diterapkan pada suatu matriks B dan menghasilkan matriks C, maka berlaku
� = ⇔ . � � = .
13
Gambar 5 Parallelepiped dengan ℬ = { , , , }
karena det � = ,OKI jenis pertama dan kedua bersifat mengubah tanda determinan, dan OKI jenis ketiga bersifat tidak mengubah nilai determinan, sehingga didapatkan det(� � = ± . Dengan demikian dapat disimpulkan bahwa � � merupakan matriks unimodular, sehingga didapatkan proposisi berikut.
Proposisi 4.3
Dua basis dikatakan ekivalen jika dan hanya jika yang satu merupakan hasil serangkaian OKI dari yang lain.
Fungsi Proyeksi dan Determinan Latis
Definisi 4.5
Untuk = , , … , fungsi proyeksi � dari ruang vektor = ℬ∗ = ℬ ke subruang vektor { ∗, ∗+ , … , ∗} didefinisikan sebagai
� = ∑ ∗.. ∗∗
=
∗.
Jika diambil nilai = , = , , … , maka diperoleh
� = ∑ ∗.. ∗∗ ∗
=
=
{
jika� <
∗ jika� =
∗+ ∑ ∗
−
=
jika� > .
Selanjutnya perhatikan definisi berikut.
Definisi 4.6
Misalkan Λ = ℒ ℬ adalah latis yang dibangkitkan oleh basis ℬ =
{ , , … , }, maka dapat didefinisikan himpunan
� ℬ = {∑
=
/ ℝ, < },
14
Dari Gambar 5 terlihat bahwa pada latis dalam ℝ , � ℬ digambarkan sebagai daerah arsir jajaran genjang. Hasil dari luas jajaran genjang pada Gambar 5 disebut �(� ℬ . Pada sembarang latis Λ, dapat didefinisikan nilai mutlak dari determinan latis dari Λ,� dinotasikan dengan |det Λ |, yang merupakan nilai dari
�(� ℬ . Dari ilustrasi Gambar 5, maka definisi tersebut dapat dinyatakan sebagai berikut.
Definisi 4.7
Misalkan Λ = ℒ ℬ adalah latis yang dibangkitkan oleh basis ℬ =
{ , , … , } dan ℬ∗ = { ∗, ∗, … , ∗} adalah hasil ortogonalisasi Gram-Schmidt dari ℬ. Determinan dari Λ didefinisikan sebagai
det Λ = ∏‖ ∗‖ =
.
Cara menentukan determinan suatu latis tanpa menggunakan ortogonalisasi Gram-Schmidt akan dijelaskan oleh proposisi setelah lema berikut ini.
Lema 4.1
Jika matriks
∗ = ∗ ∗ … ∗
adalah matriks hasil ortogonalisasi Gram-Schmidt dari matriks
= … ,
maka ada matriks U dengan unsur diagonal adalah 1 sehingga = ∗ .
Bukti:
Perhatikan bahwa rumus ortogonalisasi Gram-Schmidt dapat diubah menjadi
= ∗
= ∗ + ∗
= ∗ + ∗ + ∗
= ∗ + ∑ , −
=
∗.
Hal ini menunjukkan bahwa transformasi balik dari ortogonalisasi Gram-Schmidt dari ∗ ke merupakan serangkaian OKD yang dilakukan pada matriks B, yaitu
= � ∗ ⇔ = ∗� � .
Dengan demikian dapat didefinisikan suatu matriks = � � , dimana
� � =
… …
⋱ .
Bukti lengkap. ∎
Proposisi 4.4
Jika Λ = ℒ ℬ adalah latis yang dibangkitkan oleh basis ℬ =
{ , , … , }, maka
det Λ = √det� � ,
15
Bukti:
Misalkan
∗ = ∗ ∗ … ∗
adalah matriks ortogonalisasi dari matriks
= … .
Menurut Lema 4.1, terdapat sebuah matriks U yang unsur diagonalnya adalah 1 sehingga
= ∗ .
Dengan demikian diperoleh
� = ∗ � ∗
⇔ � = � ∗ � ∗
⇒ det� � = det � ∗ � ∗
⇔ det� � = det ∗ � ∗
⇔ det� � = (∏‖ ∗‖ =
)
⇔ ∏‖ ∗‖ =
= √det� �
⇔ det Λ = √det� � .
Bukti lengkap. ∎
Berikut ini merupakan proposisi yang menjelaskan bahwa determinan suatu latis tidak bergantung pada suatu basis.
Proposisi 4.5
Jika ��~�ℬ, maka det�(ℒ � = det(ℒ ℬ .
Bukti:
Misalkan ��~�ℬ dengan A dan B adalah bentuk matriks dari � dan ℬ. Berdasarkan Proposisi 4.2 terdapat sebuah matriks unimodular U sehingga =
. Dengan demikian,
det�(ℒ � = √det� �
�����������������������������������= √det�( �
���������������������������������= √det� � �
���������������������= √det� �
�������������������= det(ℒ ℬ .
Bukti lengkap. ∎
Permasalahan dalam Latis
16
Definisi 4.8
Jarak minimum antara sebarang dua titik di dalam latis Λ, dinotasikan dengan Λ , didefinisikan sebagai
Λ = i�f ‖ − ‖ ∕ , �, ≠ � .
Definisi 4.9
Panjang vektor minimum di antara titik-titik di dalam latis Λ, dinotasikan dengan � Λ , didefinisikan sebagai
�� Λ = i�f ‖ ‖ ∕ �, ≠ � .
Dua pengertian diatas memiliki arti yang ekivalen. Hal tersebut dinyatakan dalam proposisi berikut.
Proposisi 4.5
Untuk sembarang latisΛ, berlaku Λ = � Λ .
Bukti:
Karena Λ adalah grup, maka berlaku
Λ ���� = i�f ‖ − ‖⁄ , �, ≠ �
���= i�f ‖ ‖/ = − �, ≠
= i�f ‖ ‖/ �, ≠ �������������������������������������������������������= � Λ .
Bukti lengkap. ∎
Berikut ini merupakan batas bawah dari .
Teorema 4.1
Jika Jika Λ = ℒ ℬ adalah latis yang dibangkitkan oleh basis ℬ =
{ , , … , } dan ℬ∗ = { ∗, ∗, … , ∗} adalah hasil ortogonalisasi dari ℬ maka
�i��
�‖
∗‖ Λ , � = { , , … , }.
Bukti:
Ambil sembarang ℒ ℬ dengan ≠ , maka ada vektor ℤ dengan
≠ sehingga = dengan B adalah matriks bilangan bulat dari ℬ. Misalkan
= { , , … , } dan adalah indeks terbesar dari komponen x sehingga ≠ , karena untuk setiap < , ∗� ortogonal ke dan juga ortogonal ke ∗, maka
. ∗ = . ∗
���������������������= ∑
=
. ∗
�������������= . ∗
dan
����������������� ∗. ∗ = − ∑ −
=
. ∗
= . ∗.
Dengan demikian diperoleh
17
������= ‖ ∗‖ .
Berdasarkan ketaksamaan Cauchy-Schwartz, maka diperoleh
| . ∗| ‖ ‖‖ ∗‖
⇔ | |‖ ∗‖ ‖ ‖‖ ∗‖
⇔ | |‖ ∗‖ ‖ ‖.
Karena | | , untuk � = { , , … , } diperoleh
�i��
�‖
∗‖ Λ .
Bukti lengkap. ∎
Selanjutnya didefinisikan masalah yang paling mendasar dalam latis, yaitu SVP (Shortest Vector Problem). Berikut merupakan varian dari SVP.
Problem 4.1 (Pelacakan SVP)
Diberikan sebuah latis dengan basis ℬ, bagaimana menentukan ℒ ℬ sehingga ‖ ‖ = (ℒ ℬ .
Problem 4.2 (Optimisasi SVP)
Diberikan sebuah latis dengan basis ℬ, bagaimana menentukan (ℒ ℬ .
Problem 4.3 (Pelacakan SVP)
Diberikan sebuah latis dengan basis ℬ dan bilangan rasional ℚ, bagaimana menentukan apakah (ℒ ℬ atau (ℒ ℬ > .
Problem 4.4 (Pelacakan SVP)
Diberikan sebuah latis dengan basis ℬ dan , bagaimana menentukan
ℒ ℬ dengan ≠ sehingga ‖ ‖ � (ℒ ℬ .
Problem 4.5 (Pelacakan SVP)
Diberikan sebuah latis dengan basis ℬ dan , bagaimana menentukan
sehingga � (ℒ ℬ .
Algoritme LLL
Pengertian Basis Tereduksi
Berikut ini merupakan definisi dari basis tereduksi .
Definisi 4.10
Suatu basis ℬ = [ , , … , ] dalam ℝ disebut tereduksi LLL dengan parameter jika memenuhi
1. | | , untuk setiap bilangan bulat , dengan < < , 2. ‖� ( ‖ ‖� ( + ‖ , untuk = , , … , − ,
18
komputasinya syarat ini mudah dicapai dengan menggunakan ortogonalisasi Gram-Schmidt. Pembahasan mengenai syarat ini akan dibahas pada subbab berikutnya.
Sedangkan pada syarat kedua dari definisi di atas disebut syarat pertukaran, atau disebut juga kondisi Lovasz, yang dapat ditulis ulang sebagai
‖ ∗‖ ‖ ∗+ + + , ∗‖
Ketaksamaan diatas menyatakan bahwa vektor-vektor Gram-Schmidt dari basis tereduksi LLL harus terurut turun dengan faktor penurunan sebesar −
+ , . Jika terdapat pasangan vektor ( ∗, ∗+ yang tidak memenuhi kondisi
Lovasz, maka dapat dilakukan pertukaran antara vektor tersebut kemudian proses ortogonalisasi kembali dilakukan.
Selanjutnya dengan menerapkan syarat-syarat yang terdapat pada Definisi 4.10, maka diperoleh batas atas untuk ‖ ‖ dari basis tereduksi .
Dengan menerapkan pertidaksamaan (9) secara berulang diperoleh
19 Misalkan ℬ = [ , , … , ] dalam ℝ adalah basis tereduksi LLL untuk latis
Λ = ℒ ℬ , menurut Teorema 4.1 diperoleh
�i��
�‖
∗‖ Λ
dan ketaksamaan persamaan (10) menjadi
‖ ∗‖ (�− ) Λ .
Bukti lengkap. ∎
Teorema 4.2 menyatakan bahwa vektor pertama pada basis tereduksi merupakan jawaban dari Problem 4.4 dengan nilai = � − .
Reduksi Ukuran
Sebagaimana telah dinyatakan dalam subbab sebelumnya bahwa syarat reduksi ukuran yaitu | ,| mudah dicapai dengan menggunakan prosedur Gram-Schmidt. Pada subbab ini akan dibahas melalui interpretasi geometrik. Untuk itu perlu pengertian tentang daerah fundamental (parallelepiped) yang lain dari � ℬ , yaitu daerah fundamental dasar terpusat yang didefinisikan sebagai berikut.
Definisi 4.11
Misalkan Λ = ℒ ℬ adalah latis yang dibangkitkan oleh basis ℬ =
[ , , … , ] dalam ruang vektor ℝ . Daerah fundamental terpusat (centered fundamental region) dari Λ, dinotasikan dengan ℬ , didefinisikan sebagai himpunan
� ℬ = {∑
=
/ ℝ, − < }.
ℬ �juga disebut parallelepiped dasar terpusat (centered fundamental region).
Proposisi 4.6
Jika Λ = ℒ ℬ adalah latis yang dibangkitkan oleh basis ℬ =
[ , , … , ] dalam ruang vektor ℝ , maka untuk setiap vektor ℬ , ada tepat satu vektor ℬ sehingga dapat dituliskan = + .
Bukti:
Karena ℬ merupakan basis untuk�Λ, maka ℬ juga merupakan basis untuk ruang vektor ℬ , dan karena ℬ , berarti ada tepat satu , , … ,
ℝ sehingga
= ∑
=
.
Kemudian, karena ℝ� maka ada bilangan bulat ⌊ ⌉ ℤ (pembulatan ke bilangan bulat terdekat (round) dari sehingga
20
Bukti selesai setelah ditunjukkan bahwa . ∗ = ∗. ∗ sebagai berikut
. ∗ = ( ∗ + ∑
21 1. Definisikan = , karena { , , } , berarti ada tepat satu
, , ℝ sehingga
= ∑
=
dan berdasarkan Lema 4.2 dapat dituliskan
= ∑ +
=
. ∗ ∗. ∗
�����������������������= ∑ +
=
. ∗ ∗. ∗ +
dan dalam hal ini,�− < . Selanjutnya,
= ∑ +
=
. ∗
∗. ∗ +
= ∑ +
=
. ∗
∗. ∗ + ( ∗ + ∑ ,
=
∗) ⇔
��������������������������� − ∗.. ∗∗ + = ∑ + ∑ , =
∗.
=
������������
2. Definisikan
= − ∗.. ∗∗ + ∗ .
Dari persamaan (11) dan karena { , } = { ∗, ∗} , maka
{ , }
dengan tepat satu , ℝ sehingga
= +
dan berdasarkan Lema 4.2, dapat dituliskan
= + ∗.. ∗∗
= + ∗.. ∗∗ +
dan dalam hal ini, − < . Selanjutnya,
= + ∗.. ∗∗ +
��������������������������������= + ∗.. ∗∗ + ( ∗ +
, ∗ ⇔
����������������������������� − ∗.. ∗∗ + ∗ = +
, ∗.�����������������������
22
= − ∗.. ∗∗ + ∗ .
Dari persamaan (12), maka { } dan ada ℝ�sehingga
= . Berdasaran Lema 4.2 dapat dituliskan
= ∗.. ∗∗⌉ = ⌊ ∗.. ∗∗⌉ + ∗
dan dalam hal ini, − < . Maka
= +
dimana
= ⌊ ∗.. ∗∗⌉ + ∗.. ∗∗ + ∗.. ∗∗
dan
= ∗ + ∗ + ∗.
Dengan mudah dilihat bahwa ℒ ℬ dan ℬ∗ . Bukti lengkap. ∎ Bukti dari proposisi sekaligus merupakan bukti kebenaran dari algoritme berikut.
Algoritme 4.1
Input: ℬ = [ , , … , ] basis untuk ℒ ℬ dan ℬ . Output: Vektor latis ℒ ℬ dan ℬ∗ .
1. Dengan algoritme Gram-Schmidt, hitung [ ∗, ∗, … , ∗] dengan menggunakan input ℬ = [ , , … , ].
2. Inisialisasi ≔ dan ≔ . 3. Untuk = , − , … , hitung:
a) ≔ ∗�. ∗
. ∗
b) ≔
c) ≔ +
d) ≔ −
e) ≔ + ∗
f) ≔ − + ∗
4. return( dan t).
Algoritme 4.2 (Menentukan Vektor Terdekat)
Input: ℬ = [ , , … , ] basis untuk ℒ ℬ dan ℬ . Output: Vektor latis ℒ ℬ .
1. Dengan algoritme Gram-Schmidt, hitung [ ∗, ∗, … , ∗] dengan menggunakan input ℬ = [ , , … , ].
2. Inisialisasi ≔ .
3. Untuk = , − , … , hitung: a) ≔ ∗�. ∗
. ∗
b) ≔
23
d) ≔ −
e) ≔ − + ∗
4. return( ).
Akibat dari Proposisi 4.7 diberikan dalam teorema berikut ini.
Teorema 4.3
Jika ℬ∗ = [ ∗, ∗, … , ∗] adalah hasil proses ortogonalisasi Gram-Schmidt dari himpunan bebas linier ℬ = [ , , … , ] , maka ℬ dapat ditransformasikan menjadi ℬ′ = [ ′, ′, … , ′] yang juga merupakan basis untuk ℒ ℬ dan ℬ∗ juga merupakan hasil ortogonalisasi Gram-Schmidt ℬ′. Dalam hal ini,
∗ = ′
∗ = ′− ∑
, ′ −
=
∗,
untuk = , , … , dengan ′, = ′. ∗
∗. ∗�dan | ′, | . Bukti:
Untuk memudahkan pemahaman, transformasi dari ℬ ke ℬ′ dilakukan secara instruktif sebagai berikut
1. Definisikan
′ = .
Dalam hal ini, didapatkan subruang vektor berdimensi satu, yaitu
� = { } = { ′} = { ∗} .
2. Dari proses ortogonalisasi dari ke ∗ berlaku hubungan
∗ = −
dengan = , ∗ = ∗. ∗
. ∗ ∗�adalah vektor proyeksi dari pada � . Hal ini berarti � . Dengan demikian, berdasarkan Proposisi 4.7 bahwa ada vektor latis ℒ { } dan vektor { ∗} , sehingga
= +
dan akibatnya diperoleh
∗ = − + = − − .
Kemudian dari persamaan ini dapat didefinisikan
′ = −
sehingga jelas (karena latis adalah grup) bahwa ′ ℒ ℬ , dan diperoleh persamaan
∗ = ′ − .
Hasil ini menunjukkan bahwa ortogonalisasi { ′, ′} juga menghasilkan
{ ∗, ∗} dengan vektor proyeksi ′ pada � adalah
= ′, ∗ = ′. ∗ ∗. ∗ ∗
dan dalam hali ini ′, = , − ⌊ , ⌉ sehingga | ′, | .
Selanjutnya untuk menghitung ′ berarti cukup menghitung dengan menggunakan Algoritme 4.2 dan
24
Sebelum ke langkah berikutnya, dinotasikan dahulu subruang vektor berdimensi dua yaitu
� = { , } = { ′, ′} = { ∗, ∗} .
3. Dari proses ortogonalisasi dari berlaku hubungan
∗ = −
dan akibatnya diperoleh
∗ = − + = − − .
Kemudian dari persamaan ini dapat didefinisikan
′ = −
Selanjutnya untuk menghitung ′ berarti cukup menghitung dengan menggunakan Algoritme 4.2 dan
′ = − .
Demikian seterusnya, dari Langkah 3 tersebut secara rekursif bila dilanjutkan sampai ke Langkah ke-n untuk memperoleh basis ℬ′ hasil transformasi dari basis latis ℬ. Bukti lengkap. ∎
Perhatikan bahwa makna geometrik dari transformasi ℬ ke ℬ′ dalam Teorema 4.3 beserta buktinya adalah memperkecil panjang vektor basis yaitu =
, , … , berlaku ‖ ‖ ‖ ′‖. Hal ini terlihat dari vektor proyeksi − , hasil
beserta buktinya merupakan landasan teori yang digunakan untuk menyusun algoritme reduksi ukuran dari algoritme LLL berikut ini.
Algoritme 4.3 (Algoritme Reduksi Ukuran)
Input: ℬ = [ , , … , ] basis untuk ℒ ℬ .
25
d) Gunakan Algoritme 4.2 untuk menghitung vektor dengan input ℬ = [ , , … , − ] dan ℬ∗ = [ ∗, ∗, … , ∗− ] serta .
e) ′ ≔ −
3. return [ ∗, ∗, … , ∗]�da��[ ′, ′, … , ′] .
Berikut ini langkah-langkah ilustratif penyusunan algoritme reduksi ukuran LLL yang sifatnya rekursif tanpa memanggil Algoritme 4.2.
26
Berdasarkan pola Langkah 4 tersebut, berikut ini diberikan algoritme reduksi ukuran yang sifatnya rekursif.
Algoritme 4.4 (Reduksi Ukuran LLL)
27
Berikut ini merupakan langkah-langkah ilustratif penyusunan algoritme reduksi ukuran LLL dengan menggunakan rumus rekursif yang lebih sederhana.
1. Untuk = definisikan langsung
28
Jadi untuk menghitung ∗ dan ′, dapat dilakukan secara rekursif sebagai berikut.
Berdasarkan pola dari 3 langkah tersebut, berikut ini diberikan algoritme reduksi ukuran yang sifatnya rekursif.
Algoritme 4.5 (Reduksi ukuran LLL)
Input: ℬ = [ , , … , ] basis untuk ℒ ℬ .
Algoritme LLL dan Analisisnya
Inti dari algoritme LLL adalah mentransformasikan basis latis ke basis latis
ℬ′ yang tereduksi LLL sebagaimana dinyatakan dalam Definisi 4.11. Dengan
demikian, hal pertama yang harus dilakukan adalah mereduksi ukuran dari ℬ dengan menggunakan algoritme reduksi ukuran. Kemudian, ketika ada indeks ke- sehingga syarat kedua dari Definisi 4.11 tidak terpenuhi yaitu
‖� ( � ‖ > ‖� ( �+ ‖ ⟺ − ( + , ‖ ∗‖ > ‖ ∗+ ‖ ,
29 1. (Langkah Reduksi Ukuran) terapkan algoritme reduksi ukuran pada�ℬ. 2. (Langkah Penukaran) jika ada { , , … , } sehingga
− ( , − ‖ ∗− ‖ > ‖ ∗‖
maka tukar �− dan �, kemudian kembali ke Langkah 1. 3. Jika tidak, algoritme selesai.
Sedangkan bentuk praktis algoritme LLL diberikan berikut ini.
Algoritme 4.6
Input: ℬ = [ , , … , ] basis untuk ℒ ℬ dan < < .
Output: ℬ = [ , , … , ] adalah adalah basis tereduksi LLL untuk ℒ ℬ dan ℬ∗= [ ∗, ∗, … , ∗] adalah hasil proses ortogonalisasi Gram-Schmidt dari
ℬ.
1. ∗ ≔ �
2. ≔
3. Reduksi Ukuran. Ketika , lakukan: (a) ∗≔
(b) Untuk = − , − , … , lakukan: i. , ≔ .
∗ ∗. ∗ ii. ∗ ≔ ∗− , ∗ iii. � ≔ � − ⌊ �,⌉ �
(c) Penukaran. Jika � − ( , − ‖ ∗− ‖ > ‖ ∗‖ maka i. Jika = ,
Tukar � dan �
∗ ≔ �
ii. Jika > ,
Tukar �− dan �
�������������� ≔ −
Selainnya, ≔ +
4. return [ ∗, ∗, … , ∗]�da��[ ′, ′, … , ′] .
Membatasi banyaknya iterasi
Diasumsikan dahulu bahwa basis latisnya adalah bilangan bulat, artinya ℬ
ℤ . Kemudian, dapat diamati bahwa algoritme LLL cepat selesai jika tidak terlalu banyak terjadinya iterasi yang diindikasikan di dalam langkah penukaran. Oleh karena itu, hal pertama yang perlu diperhatikan dalam menganalisis algoritme LLL adalah seberapa besar jumlah maksimum terjadinya penukaran. Dengan demikian, perlu didefinisikan suatu bilangan bulat positif yang terkait dengan matriks basis B berikut ini.
Ingat kembali determinan latis sebagai berikut.
det ℒ([ , , … , ] = ∏ ‖ ∗‖
= ⇔ det ℒ(ℬ = √det( � ,
dimana matriks
30
Dari asumsi adalah matriks bilangan bulat, jelas bahwa
[det ℒ( ] ℤ.
Dengan demikian, dapat didefinisikan bilangan bulat positif yang terkait dengan matriks basis B yaitu
= ∏ [det ℒ([ , , … , ] ] =
=
∏ [det ℒ( ]
=
dan berlaku sifat dalam proposisi berikut ini.
Proposisi 4.8
Langkah reduksi ukuran tidak mengubah nilai , tetapi setiap terjadi penukaran, mengakibatkan nilai menurun, dengan faktor .
Bukti:
Berdasarkan Teorema 4.3, perhatikan dahulu bahwa langkah reduksi ukuran tidak dapat mengubah nilai . Dengan demikian, tinggal ditunjukkan bahwa setiap terjadi pertukaran, nilai menurun dengan faktor . Misalkan terjadi penukaran dan + , misalkan pula bilangan bulat positif terkait dengan B
sebelum terjadinya penukaran, dan ′ terkait dengan ′�setelah dan + ditukar. Perhatikan bahwa, < maka basis [ , , … , ] tidak berubah oleh terjadinya penukaran sehingga jelas bahwa
[det(ℒ ] = [det(ℒ ′ ] .
Ketika > maka basis [ , , … , ],vektor dan + ditukar (menukar sepasang vektor kolom pada ) sehingga
ℒ = ℒ ′ ⇒ [det(ℒ ] = [det(ℒ ′ ] .
Di lain pihak, untuk = maka basis = [ , , … , − , ] berubah menjadi ′= [ , , … , − , + ] sehingga
[det ℒ( ] = ∏‖ ∗‖ = ∏‖ ∗‖ −
= =
‖ ∗‖ .
Karena syarat pertukaran − ( + , ‖ ∗‖ > ‖ ∗+ ‖ maka berlaku
[det ℒ( ] > ∏‖ ∗‖
−
= − ( + ,
‖ ∗+ ‖
����������������������������>
− ( + ,
∏‖ ∗‖ −
=
‖ ∗+ ‖
��������������������������> [det ℒ( ′ ] ⇔[det ℒ(
′ ]
[det ℒ( ] < .
31
Berdasarkan proposisi tersebut, sekarang dimisalkan menyatakan iterasi dalam algoritme LLL dan ′ pada iterasi ke− maka
− − − .
Karena untuk setiap nilai adalah bilangan bulat positif, maka
⇒ − ⇔ ( ) ⇔ log
� .
Hal ini menunjukkan bahwa banyaknya iterasi terbatas ke atas pada fungsi yang nilainya bergantung pada nilai awal . Karena menghitung
= ∏ ∏‖ ∗‖
membutuhkan waktur polinomial, maka dapat disimpulkan banyaknya iterasi dalam algoritme LLL juga terbatas secara polinomial dalam ukuran input. Bukti lengkap. ∎
Membatasi besarnya bilangan yang terlibat
Telah ditunjukkan bahwa banyaknya iterasi dalam algoritme LLL terbatas secara polinomial dalam ukuran input. Namun demikian, hal ini belum cukup untuk menyimpulkan bahwa algoritme LLL mempunyai running time polinomial. Masih perlu untuk memastikan bahwa ukuran bilangan yang dilibatkan dalam keseluruhan komputasi juga terbatas secara polinomial. Algoritme LLL menggunakan aritmatika bilangan rasional, sehingga perlu membatasi baik presisinya maupun besarannya.
32
maka persamaan (14) dapat ditulis sebagai
( berdasarkan aturan Cramer diperoleh
� ℤ Perhatikan lagi definisi sebagai
= ∏ [det ℒ( � ] ∏( � kedua ruas dari persamaan (13) maka diperoleh
� − ∗ = − + ∑( − � −
=
�
dan karena − � ℤ maka� − ∗ ℤ . Ini berarti semua penyebut dari bilangan dalam vektor � ∗ adalah faktor − . Sekarang dihitung
= ∗.. ∗∗ = − ( . ∗ karena itu, bilangan rasional yang ada didalam vektor
∗= − ∑
, −
=
33
Dengan demikian semua pembilang dan penyebut dari bilangan rasional yang terjadi di dalam eksekusi algoritme LLL mempunyai ukuran bit yang terbatas secara polinomial dalam log .
Memperbaiki algoritme LLL
Seperti terlihat pada analisis algoritmenya, kecepatan dan ketepatan hasil (output) algoritme LLL lebih dominan ditentukan oleh banyaknya langkah penukaran yang terjadi. Memberi nilai yang lebih besar, algoritme akan mengeluarkan hasil yang lebih baik, tetapi ini harus dibayar dengan meningkatnya banyaknya langkah penukaran (menurunnya kecepatan), demikian pula sebaliknya. Jadi, yang dimaksud dengan memperbaiki algoritme LLL umumnya adalah bagaimana meningkatkan kecepatan dengan keluaran yang lebih baik. Pada bagian ini akan dibahas varian yang pertama dari algoritme LLL yaitu metode penyisipan dalam (deep insertion).
Algoritme LLL Penyisipan Dalam
Jika di dalam algoritme LLL, uji terjadinya penukaran secara terurut langkah demi langkah ( � dengan �− ) maka dengan metode penyisipan dalam (Deep Insertion), uji terjadinya penukaran bisa dilakukan langsung ke dalam ( � dengan � untuk = , , … , − . Hal ini dijelaskan berikut ini.
Misalkan pada suatu tahap komputasi diperoleh basis latis terurut seperti ini
� �, �, … ,
maka prosedur ortogonalisasi Gram-Schmidt dirumuskan sebagai
34
Jika disisipkan � ke � , maka basis latis terurut menjadi
�, �, … , ortogonalisasi Gram-Schmidt untuk � diperbaharui yaitu
̂ ∗ = − ∑
Sekarang tinjau persamaan terakhir untuk kasus = − , maka
‖̂ ∗− ‖ = ‖ ‖ − ∑ , penyisipan dalam sama dengan syarat penukaran algoritme LLL, yaitu jika
‖̂∗− ‖ < �‖ −
∗ ‖ , maka ditukar dengan
− . Secara umum, ketika ditinjau
untuk nilai = , , , … , − maka persamaan (16) diperoleh
Persamaan-persamaan tersebut dapat digunakan untuk menetapkan nilai sehingga dapat disisipkan ke . Dalam hal ini terjadi ketika ‖̂∗‖ < �‖ ∗‖ dan yang menguntungkan adalah bahwa ‖̂ ∗− ‖ dapat dihitung secara rekursif dengan penjelasan sebagai berikut. Didefinisikan inisial = ‖ ‖� dan = , secara rekursif hitung
= − , ‖ ∗‖ dan ≔ +
dan proses berhenti ketika
35 Bentuk praktis algoritme LLL penyisipan dalam diberikan berikut ini.
Algoritme 4.7 (Algoritme LLL penyisipan dalam)
Input: ℬ = [ , , … , ] basis untuk ℒ ℬ dan < < .
3. Reduksi Ukuran. Sementara hitung: (a) ∗≔ � iii. Jika tidak, maka
≔ �. ∗
≔ − ℎ ≔ +
36
4. return ℬ = [ , , … , ]�da��ℬ∗ = [ ∗, ∗, … , ∗] .
Algoritme Greedy SVP LLL
Ide dasar metode greedy adalah sebagai berikut. Jika vektor terkecil sudah di posisi pertama, maka penyisipan hanya akan terjadi di posisi kedua atau lebih; jika dua vektor terkecil sudah di posisi pertama dan kedua, maka penyisipan hanya akan terjadi di posisi ketiga atau lebih, demikian juga seterusnya. Kemudian, semakin cepat diperoleh vektor-vektor terkecil secara terurut, maka algoritme semakin cepat selesai. Dengan ide dasar ini, diharapkan bahwa vektor-vektor terkecil tersebut bisa diperoleh secara greedy.
Algoritme pencarian vektor terpendek secara greedy yang akan dikonstruksi disebut algoritme greedy SVP LLL. Pada algoritme ini syarat penukaran (penyisipan) tidak didasarkan perbandingan vektor proyeksi pada komplemen ortogonal [ , , … , − ]⊥ setelah reduksi ke-j(metode penyisipan dalam), melainkan penyisipan dilakukan murni dengan membandingkan panjang vektor latis dengan panjang vektor latis untuk = , , … , − Disamping itu, penyisipannya dilakukan secara greedy.
Berikut ini secara garis besar cara kerja algoritmenya.
1. Untuk [ ], definisikan ∗ = , cari vektor hasil reduksi [ ] dan [ ∗] terhadap [ , , … , ]� dengan panjang terkecil. Jika ‖ ‖ < ‖ ‖ , sisipkan
, , , − , + , … ,
diperoleh = yang baru dan proses diulang lagi. Tetapi jika ‖ ‖
‖ ‖ maka disisipkan
, , , − , + , … , ,
sehingga diperoleh [ , ] baru yang terurut dengan ukuran terkecil dalam barisan tersebut. Kemudian, hitung ∗ dari input � dan ∗ sehingga diperoleh barisan[ ∗, ∗] dan lanjut ke Langkah 2.
2. Dari [ , ] dan [ ∗, ∗], cari vektor hasil reduksi [ , ] terhadap
[ , , … , ]�dengan panjang terkecil. Jika ‖ ‖ < ‖ ‖, sisipkan
, , , − , + , … ,
atau jika ‖ ‖ ‖ ‖ < ‖ ‖, sisipkan
, , , − , + , … ,
kemudian kembali ke Langkah 1. Tetapi jika ‖ ‖ ‖ ‖ disisipkan
, , , , − , + , … , ,
sehingga diperoleh [ , , ] baru yang terurut dengan ukuran terkecil dalam barisan tersebut. Kemudian hitung ∗ dari input � dan [ ∗, ∗] sehingga diperoleh barisan [ ∗, ∗, ∗] dan lanjut ke Langkah 3.
3. Secara umum, langkah ke-k dari [ , , … , ] dan [ ∗, ∗, … , ∗], cari vektor sebagai vektor hasil reduksi [ , , … , ] terhadap
[ + , + , … , ] dengan panjang terkecil. Kemudian disisipkan ke
[ , , … , ]. Jika formasi penyisipan
37
, , … , − , , , … ,
diperoleh [ , , … , ] yang baru, kemudian dari dan [ ∗, ∗, … , ∗− ] hitung ∗untuk mendapatkan [ ∗, ∗, … , ∗] baru, maka kembali ke langkah i. tetapi jika formasi penyisipan
, , … , , ,
maka diperoleh [ , , … , + ] baru yang terurut dengan ukuran terkecil dalam barisan tersebut. Kemudian, hitung ∗+ dari input + dan
[ ∗, ∗, … , ∗] sehingga diperoleh barisan [ ∗, ∗, … , +
∗ ] dan lanjut ke
langkah-(k+1).
4. Demikian seterusnya, dan proses berakhir ketika = .
Bentuk praktis algoritme greedy SVP LLL diberikan berikut ini.
Algoritme 4.8
Input: ℬ = [ , , … , ] basis untuk ℒ ℬ .
Output: ℬ = [ , , … , ] adalah adalah basis tereduksi LLL untuk ℒ ℬ dan ℬ∗ = [ ∗, ∗, … , ∗] adalah hasil proses ortogonalisasi Gram-Schmidt dari ℬ.
1. ∗ ≔ �
2. ≔
3. Sementara < lakukan:
4. Inisialisasi [ , … , ] dan [ + , … , ] 5. Sementara − lakukan:
6. ≔ +
7. Untuk = , − , … , lakukan 8. , ≔ �.
∗ ∗. ∗
9. � ≔ � − ⌊ , ⌉ � 10. Hitung ‖ ‖
11. Definisikan ≔
12. Untuk = , , … , − lakukan: 13. Definisikan �
14. Untuk = , − , … lakukan 15. , ≔ .
∗ ∗. ∗
16. � ≔ � − ⌊ , ⌉ � 17. Hitung ‖ ‖
18. Jika ‖ ‖ < ‖ ‖ maka 19. ≔
20. ‖ ‖ ≔ ‖ ‖ 21. ≔
22. Definisikan [ + , … , ] 23. Definisikan ≔ − − 24. Definisikan ≔ +
25. Untuk = , , … , lakukan 26. Hitung ‖ ‖
27. Jika ‖ ‖ < ‖ ‖ maka
38
29. Break (Stop loop) 30. Jika posisi maka 31. Jika = maka 32. Definisikan ≔ 33. , , , … , 34. ≔ ∗ 35. Jika tidak, maka
36. , … , − , , + , … , 37. Definisikan
�
38. Untuk = , − , … , 39. , ≔ �.
∗ ∗. ∗
40. ∗ ≔ ∗�− , ∗� 41. Perbarui ∗, ∗+ , … , ∗ 42. Definisikan ≔
43. Break (Stop loop) 44. Perbarui [ , , … , , � ] 45. Definiskan
46. Untuk = , − , … , lakukan 47. , ≔ �.
∗ ∗. ∗
48. ∗ ≔ ∗�− , ∗� 49. Perbarui ∗, ∗, … , ∗ 50. Perbarui ∗, ∗, … , ∗ 51. � ≔ +
52.Perbarui [ , … , , + , … , ]
53.return ℬ = [ , , … , ]�da��ℬ∗ = [ ∗, ∗, … , ∗] .
Analisis Algoritme Greedy SVP LLL
Analisis di sini adalah menghitung banyaknya operasi aritmetik dalam algoritme greedy SVP LLL yang telah dikonstruksi. Algoritme dimulai dengan inisialisasi vektor pertama sebagai vektor ortogonal, dilanjutkan dengan operasi assignment pada nilai ≔ . Kemudian, dilakukan inisialisasi pada 2 variabel untuk membagi vektor kolom yang ada di dalam matriks atas nilai assignment . Proses inisialisasi pada Langkah 4 ini dimaksudkan untuk membandingkan satu persatu vektor yang ada di dalam 2 variabel. Kemudian, masuk dalam looping “while” yang akan diulangi sebanyak − , dengan nilai adalah dimensi matriks input.
Selanjutnya dalam algoritme akan dihitung banyaknya operasi yang terlibat dalam proses reduksi ukuran. Banyaknya operasi yang ada pada Langkah 6 hingga Langkah 9 (proses reduksi ukuran) yaitu sebagai berikut:
1) Sebuah operasi assignment sebagai statemen awal untuk vektor ke-y yang ingin di reduksi.
2) Ada sebuah blok statemen “for” yang diulang sebanyak k