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.
4) Melakukan perbandingan secara deskriptif ukuran kecepatan yang dihasilkan ketiga algoritme.
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 โฌ = {๐1, ๐2, โฆ , ๐๐} adalah himpunan n vektor bebas linier dalam ruang vektor โ๐. Maka dapat dikonstruksi barisan bagian dari ๐ vektor yang saling ortogonal โฌโ = {๐1โ, ๐2โ, โฆ , ๐๐โ} dimana
๐1โ = ๐1, ๐๐โ = ๐๐โ โ ๐๐,๐ ๐โ1 ๐=1 ๐๐โ dengan ๐ = 2, 3, โฆ , ๐ dan ๐๐,๐ = ๐๐. ๐๐ โ ๐๐โ. ๐๐โ.
Jika himpunan โฌ = {๐1, ๐2, โฆ , ๐๐} adalah bebas linier, maka โฌ merupakan basis untuk โฉโฌโช = {โ๐๐=1๐ฅ๐๐๐/๐ฅ๐ โ โ} , dan jika โฌโ = {๐1โ, ๐2โ, โฆ , ๐๐โ} 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 ๐(๐3). 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
๐๐โ = ๐๐+ โ ๐๐๐
๐โ1
๐=1
๐๐ (1) untuk suatu ๐๐๐ โ โ. Karena ๐๐โ ortogonal ke ๐๐ก untuk setiap ๐ก < ๐ maka diperoleh ๐๐ก. ๐๐โ = ( ๐๐ก. ๐๐) + ๐๐ก. โ ๐๐๐ ๐โ1 ๐=1 ๐๐ โ ๐ = ( ๐๐ก. ๐๐) + ๐๐ก. โ ๐๐๐ ๐โ1 ๐=1 ๐๐
8
โ ๐๐ก. โ ๐๐๐
๐โ1
๐=1
๐๐ = โ( ๐๐ก. ๐๐). (2) Untuk ๐ก = 1, 2, โฆ , ๐ โ 1 , persamaan tersebut dapat dituliskan dalam bentuk matriks ( ๐1. โ๐โ1๐=1๐๐๐๐๐ ๐2. โ๐โ1๐=1๐๐๐๐๐ โฎ ๐๐โ1. โ๐โ1๐=1๐๐๐๐๐) = โ ( ๐1. ๐๐ ๐2. ๐๐ โฎ ๐๐โ1. ๐๐) .
Jika didefinisikan matriks
๐๐โ1 = (๐1 ๐2 โฆ ๐๐โ1) dan matriks ๐ฎ๐ = ( ๐๐1 ๐๐2 โฎ ๐๐,๐โ1 ), maka persamaan (2) dapat ditulis sebagai
( ๐1. (๐๐โ1๐ฎ๐) ๐2. (๐๐โ1๐ฎ๐) โฎ ๐๐โ1. (๐๐โ1๐ฎ๐)) = โ ( ๐1. ๐๐ ๐2. ๐๐ โฎ ๐๐โ1. ๐๐) โ ๐๐โ1๐ (๐๐โ1๐ฎ๐) = โ๐๐โ1๐ ๐๐ โ (๐๐โ1๐ ๐๐โ1)๐ฎ๐ = โ๐๐โ1๐ ๐๐. (3) Persamaan (3) merupakan SPL dengan matriks koefisien ๐๐โ1๐ ๐๐โ1 dan vektor โ๐๐โ1๐ ๐๐ adalah bilangan bulat. Dengan demikian, untuk ๐ = 1, 2, โฆ , ๐ โ 1 berdasarkan aturan Cramer diperoleh
๐๐๐ โ โค
det(๐๐โ1๐ ๐๐โ1)=
โค
det (โ(โฌ๐โ1))2 .
Hasil ini digunakan untuk memberi batas pada koefisien pada koefisien ๐๐๐. Misalkan ๐ท๐โ1 = det(๐๐โ1๐ ๐๐โ1) dan dikalikan nilainya dengan kedua ruas dari persamaan (1) maka diperoleh
๐ท๐โ1๐๐โ = ๐ท๐โ1๐๐+ โ(๐ท๐โ1๐๐๐)
๐โ1
๐=1
๐๐
merupakan persamaan yang semua koefisien vektornya adalah bilangan bulat. Ini berarti semua penyebut dari bilangan dalam vektor ๐๐โ adalah faktor ๐ท๐โ1. Kemudian ๐๐,๐ = ๐๐. ๐๐ โ ๐๐โ. ๐๐โ =๐ท๐โ1(๐๐. ๐๐ โ) ๐ท๐โ1(๐๐โ. ๐๐โ)
9 = ๐๐(๐ท๐โ1. ๐๐โ) (โ๐โ1โ๐๐ โโ๐ ๐ =1 )โ๐๐โโ๐โ โค ๐ท๐. Hasil ini menunjukkan bahwa penyebut dari ๐๐๐ harus membagi ๐ท๐.
Uraian diatas membuktikan bahwa bilangan-bilangan yang ada di dalam vektor ๐๐โ dan ๐๐๐ mempunyai penyebut paling banyak
max
๐ ๐ท๐ โค โโ๐๐โโ๐ ๐
๐=๐
.
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 โฌ = {๐1, ๐2, โฆ , ๐๐} adalah himpunan n vektor bebas linier dalam ruang vektor โ๐. Latis yang dibangkitkan oleh โฌ adalah himpunan
โ(โฌ) = {โ ๐ฅ๐๐๐
๐
๐=1
/๐ฅ๐ โ โค}
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 ๐๐:
๐ = (๐1 ๐2 โฆ ๐๐),
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 โฌ:
โฉโฌโช = {โ ๐ฅ๐๐๐
๐
๐=1
/๐ฅ๐ โ โ}.
Perbedaannya hanya terdapat pada bilangan yang digunakan pada kombinasi linier. Pada latis โ(โฌ), kombinasi linier menggunakan koefisien dalam rentang bilangan bulat (โค โ โ). Sedangkan pada โฉโฌโช, koefisien pada kombinasi linier yang digunakan adalah rentang bilangan real (โ), sehingga dapat disimpulkan bahwa jika โฌ adalah basis untuk โ(โฌ), maka โฌ juga merupakan basis untuk โฉโฌโช. Namun hal ini tidak berlaku sebaliknya, jika โฌ adalah basis untuk โฉโฌโช, belum
10
Gambar 3 Latis dengan basis {(1,2),(4,1)}
Gambar 4 Latis dengan basis {(1,1)}
tentu โฌ juga basis untuk โ(โฌ). Misalkan dipilih basis โฌ1 = {(1,0), (0,1)} yang merupakan basis baku untuk โ2, maka
โ(โฌ1) = {๐ฅ(1,0) + ๐ฆ(0,1)/๐ฅ, ๐ฆ โ โค} = {(๐ฅ, ๐ฆ)/๐ฅ, ๐ฆ โ โค} = โค2.
Latis โค2 beserta basis diilustrasikan pada Gambar 1. Seperti pada ruang vektor, basis suatu latis tidak tunggal. Pada Gambar 2, diilustrasikan bahwa โค2 dapat dibangkitkan oleh latis basis โฌ2 = {(2,1), (3,1)}. Sedangkan pada Gambar 3 merupakan contoh basis โฌ3 = {(1,2), (4,1)} yang bukan merupakan basis untuk โค2 walaupun mempunyai rank penuh dalam โ2. Selanjutnya Gambar 4 merupakan sebuah contoh bahwa basis โฌ4 = {(1,1)} yang membentuk latis โ(โฌ4) walaupun โฌ4 tidak memiliki rank penuh di dalam โ2.
Gambar 1 Latis dengan basis {(1,0),(0,1)}
Gambar 2 Latis dengan basis {(2,1),(3,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(๐) = ยฑ1.
Contoh matriks unimodular: ๐ = (
1 3 โ7
0 โ1 2
โ1 0 2
) dengan det(๐) = โ1.
Proposisi 4.1
Invers dari matriks unimodular juga merupakan matriks unimodular. Bukti:
Misalkan ๐ = (๐ข๐๐) adalah matriks unimodular berukuran ๐ ร ๐ dari asumsi diperoleh ๐ข๐๐ โ โค dan det(๐) = ยฑ1. Berdasarkan rumus matriks invers, maka
๐โ๐ = 1
det(๐)(๐๐๐)๐, (4) dimana ๐๐๐ adalah kofaktor dari ๐ข๐๐. Karena ๐ข๐๐ โ โค, dari definisi kofaktor, jelas
bahwa ๐๐๐ โ โค sehingga
(๐๐๐)๐ โ โค๐ร๐. Disamping itu,
๐โ๐ ๐ = ๐ โ det(๐โ๐ ๐) = det(๐) โ det(๐โ๐ )det (๐) = det(๐)
โ det(๐โ๐) = 1 det (๐). Karena det(๐) = ยฑ1, maka
det(๐โ๐) = ยฑ1 dan 1
det (๐)โ โค. (5) Dari (4) dan (5) dapat disimpulkan bahwa matriks ๐โ๐ merupakan matriks unimodular. Bukti lengkap. โ
Proposisi 4.2
Misalkan ๐ = {๐1, ๐2, โฆ , ๐๐} adalah basis untuk โ(๐) dan โฌ = {๐1, ๐2, โฆ , ๐๐} adalah basis untuk โ(โฌ). Maka ๐ ~ โฌ jika dan hanya jika adalah matriks unimodular ๐ โ โค๐ร๐ sehingga ๐ = ๐๐, dimana ๐ dan ๐ adalah bentuk matriks
๐ = (๐1 ๐2 โฆ ๐๐) dan ๐ = (๐1 ๐2 โฆ ๐๐). Bukti:
(โ) Misalkan โ(๐) = โ(โฌ) . Dari asumsi ini, berarti untuk setiap ๐ = 1, 2, โฆ ๐ untuk ๐๐ โ โ(๐). Dari pengertian โ(๐) maka ada ๐ฎ๐ = (๐ข1๐ ๐ข1๐ โฆ ๐ข1๐) โ โค๐ sehingga
๐๐ = โ ๐ข๐๐๐๐ . (6)
๐
12
Dengan demikian, dapat didefinisikan matriks ๐ โ โค๐ร๐ yang kolom-kolomnya adalah vektor ๐ฎ๐, yaitu
๐ = (๐ฎ1 ๐ฎ2 โฆ ๐ฎ๐) = ( ๐ข11 ๐ข12 โฆ ๐ข1๐ ๐ข21 โฎ ๐ข๐1 ๐ข22 โฎ ๐ข๐2 โฆ ๐ข2๐ โฑ โฎ โฆ ๐ข๐๐ ). Dari persamaan (6) diperoleh persamaan matriks
(๐1 ๐2 โฆ ๐๐) = (๐1 ๐2 โฆ ๐๐)(๐ฎ1 ๐ฎ2 โฆ ๐ฎ๐) โ ๐ = ๐๐. (7) Dengan langkah yang sama, dapat diperoleh matriks ๐ โ โค๐ร๐ sehingga
๐ = ๐๐. (8) Dari persamaan (7) dan (8),
๐ = ๐๐ = ๐๐๐ โ det(๐) = det(๐๐๐) โ det(๐) det(๐) = 1.
Disamping itu, karena ๐ dan ๐ adalah matriks bilangan bulat, maka determinannya juga bilangan bulat. Dengan demikian, dapat disimpulkan bahwa det(๐) = ยฑ1.
(โ) Misalkan ๐ = ๐๐ dengan U unimodular. Dari asumsi ini, berarti untuk setiap ๐ = 1, 2, โฆ , ๐ , ๐๐ โ โ(๐) , dengan kata lain, ๐๐ merupakan kombinasi linier bilangan bulat dari ๐. Selanjutnya bahwa karena setiap ๐ฑ โ โ(โฌ) merupakan kombinasi linier dari {๐1 ๐2 โฆ ๐๐} , 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 ๐ = ๐๐โ1 dengan ๐โ1 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. ๐พ๐(โ1)(๐) 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
๐พ(๐) = ๐ โ ๐. ๐พ(๐) = ๐.
Serangkaian OKI yang diterapkan pada I pasti akan menghasilkan matriks bilangan bulat, sehingga ๐พ(๐) merupakan matriks bilangan bulat. Disamping itu,
13
Gambar 5 Parallelepiped dengan โฌ = {(2,3), (3,2)}
karena det(๐) = 1, OKI jenis pertama dan kedua bersifat mengubah tanda determinan, dan OKI jenis ketiga bersifat tidak mengubah nilai determinan, sehingga didapatkan det(๐พ(๐)) = ยฑ1. 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 ๐ = 1, 2, โฆ , ๐ fungsi proyeksi ๐๐ dari ruang vektor ๐ = โฉโฌโโช = โฉโฌโช ke subruang vektor โฉ{๐๐โ, ๐๐+1โ , โฆ , ๐๐โ}โช didefinisikan sebagai
๐๐(๐ฏ) = โ (๐ฏ. ๐๐ โ ๐๐โ. ๐๐โ) ๐ ๐=๐ ๐๐โ. Jika diambil nilai ๐ฏ = ๐๐, ๐ = 1, 2, โฆ , ๐ maka diperoleh
๐๐(๐๐) = โ (๐ฏ. ๐๐ โ ๐๐โ. ๐๐โ) ๐๐ โ ๐ ๐=๐ = { ๐ jika ๐ < ๐ ๐๐โ jika ๐ = ๐ ๐๐โ+ โ ๐๐๐๐๐โ ๐โ1 ๐=๐ jika ๐ > ๐. Selanjutnya perhatikan definisi berikut.
Definisi 4.6
Misalkan ฮ = โ(โฌ) adalah latis yang dibangkitkan oleh basis โฌ = {๐1, ๐2, โฆ , ๐๐}, maka dapat didefinisikan himpunan
๐ซ(โฌ) = {โ ๐ฅ๐๐๐
๐
๐=1
/๐ฅ๐ โ โ, 0 โค ๐ฅ๐ < 1},
dimana ๐ซ(โฌ) merupakan bangun geometrik yang disebut parallelepiped dasar atau daerah fundamental (fundamental region). Berikut ilustrasi dari ๐ซ(โฌ).
14
Dari Gambar 5 terlihat bahwa pada latis dalam โ2, ๐ซ(โฌ) 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 โฌ = {๐1, ๐2, โฆ , ๐๐} dan โฌโ = {๐1โ, ๐2โ, โฆ , ๐๐โ} adalah hasil ortogonalisasi Gram-Schmidt dari โฌ. Determinan dari ฮ didefinisikan sebagai
det(ฮ) = โโ๐๐โโ
๐
๐=1
.
Cara menentukan determinan suatu latis tanpa menggunakan ortogonalisasi Gram-Schmidt akan dijelaskan oleh proposisi setelah lema berikut ini.
Lema 4.1
Jika matriks
๐โ = (๐1โ ๐2โ โฆ ๐๐โ)
adalah matriks hasil ortogonalisasi Gram-Schmidt dari matriks ๐ = (๐1 ๐2 โฆ ๐๐),
maka ada matriks U dengan unsur diagonal adalah 1 sehingga ๐ = ๐โ๐. Bukti:
Perhatikan bahwa rumus ortogonalisasi Gram-Schmidt dapat diubah menjadi ๐1 = ๐1โ ๐2 = ๐2โ + ๐21๐1โ ๐3= ๐3โ + (๐31๐1โ + ๐32๐2โ) โฎ ๐๐ = ๐๐โ + โ ๐๐,๐ ๐โ1 ๐=1 ๐๐โ.
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 ๐พ(๐) = ( 1 ๐21 โฆ ๐๐1 0 โฎ 0 1 โฎ 0 โฆ โฑ 1 ๐๐2 โฎ 1 ). Bukti lengkap. โ Proposisi 4.4
Jika ฮ = โ(โฌ) adalah latis yang dibangkitkan oleh basis โฌ = {๐1, ๐2, โฆ , ๐๐}, maka
det(ฮ) = โdet (๐๐๐), dimana B adalah bentuk matriks dari โฌ.
15 Bukti:
Misalkan
๐โ = (๐1โ ๐2โ โฆ ๐๐โ) adalah matriks ortogonalisasi dari matriks
๐ = (๐1 ๐2 โฆ ๐๐).
Menurut Lema 4.1, terdapat sebuah matriks U yang unsur diagonalnya adalah 1 sehingga
๐ = ๐โ๐. Dengan demikian diperoleh
๐๐๐ = (๐โ๐)๐(๐โ๐) โ ๐๐๐ = ๐๐((๐โ)๐๐โ)๐ โ det (๐๐๐) = det(๐๐((๐โ)๐๐โ)๐) โ det (๐๐๐) = det((๐โ)๐๐โ) โ det (๐๐๐) = (โโ๐๐โโ ๐ ๐=1 ) 2 โ โโ๐๐โโ ๐ ๐=1 = โ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
Berikut merupakan pengertian jarak minimum dan panjang vektor minimum dari suatu latis.
16
Definisi 4.8
Jarak minimum antara sebarang dua titik di dalam latis ฮ , dinotasikan dengan ๐(ฮ), didefinisikan sebagai
๐(ฮ) = inf(โ๐ฑ โ ๐ฒโ โ ๐ฑ, ๐ฒ โ ๐ฒ, ๐ฑ โ ๐ฒ ). Definisi 4.9
Panjang vektor minimum di antara titik-titik di dalam latis ฮ, dinotasikan dengan ๐(ฮ), didefinisikan sebagai
๐(ฮ) = inf(โ๐ฑโ โ ๐ฑ โ ๐ฒ, ๐ฑ โ ๐ ).
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
๐(ฮ) = inf(โ๐ฑ โ ๐ฒโ ๐ฑโ , ๐ฒ โ ๐ฒ, ๐ฑ โ ๐ฒ ) = inf(โ๐ณโ/๐ณ = ๐ฑ โ ๐ฒ โ ๐ฒ, ๐ฑ โ ๐ฒ)
= inf(โ๐ณโ/๐ณ โ ๐ฒ, ๐ณ โ ๐) = ๐(ฮ).
Bukti lengkap. โ
Berikut ini merupakan batas bawah dari ๐. Teorema 4.1
Jika Jika ฮ = โ(โฌ) adalah latis yang dibangkitkan oleh basis โฌ = {๐1, ๐2, โฆ , ๐๐} dan โฌโ = {๐1โ, ๐2โ, โฆ , ๐๐โ} adalah hasil ortogonalisasi dari โฌ maka
min
๐โ๐ผ๐โ๐๐โโ โค ๐(ฮ), ๐ผ๐ = {1,2, โฆ , ๐}. Bukti:
Ambil sembarang ๐ฏ โ โ(โฌ) dengan ๐ฏ โ ๐, maka ada vektor ๐ฑ โ โค๐ dengan ๐ฑ โ ๐ sehingga ๐ฏ = ๐๐ฑ dengan B adalah matriks bilangan bulat dari โฌ. Misalkan ๐ฑ = {๐ฅ1, ๐ฅ2, โฆ , ๐ฅ๐} dan ๐ adalah indeks terbesar dari komponen x sehingga ๐ฅ๐ โ 0, karena untuk setiap ๐ < ๐, ๐๐โ ortogonal ke ๐๐ dan juga ortogonal ke ๐๐โ, maka
๐ฏ. ๐๐โ = (๐๐ฑ). ๐๐โ = (โ ๐ฅ๐๐๐ ๐ ๐=1 ) . ๐๐โ = ๐ฅ๐(๐๐. ๐๐โ) dan ๐๐โ. ๐๐โ = (๐๐โ โ ๐๐๐๐๐ ๐โ1 ๐=1 ) . ๐๐โ = ๐๐. ๐๐โ.
Dengan demikian diperoleh
17 = ๐ฅ๐โ๐๐โโ2.
Berdasarkan ketaksamaan Cauchy-Schwartz, maka diperoleh |๐ฏ. ๐๐โ| โค โ๐ฏโโ๐๐โโ
โ |๐ฅ๐|โ๐๐โโ2 โค โ๐ฏโโ๐๐โโ โ |๐ฅ๐|โ๐๐โโ2 โค โ๐ฏโ. Karena |๐ฅ๐| โฅ 1, untuk ๐ผ๐ = {1, 2, โฆ , ๐} diperoleh
min
๐โ๐ผ๐
โ๐๐โโ โค ๐(ฮ). 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 ๐พ โฅ 1, bagaimana menentukan ๐ฑ โ โ(โฌ) dengan ๐ฑ โ ๐ sehingga โ๐ฑโ โค ๐พ๐(โ(โฌ)).
Problem 4.5 (Pelacakan SVP)
Diberikan sebuah latis dengan basis โฌ dan ๐พ โฅ 1, bagaimana menentukan ๐ sehingga ๐ โค ๐(โ(โฌ)) โค ๐พ๐.
Algoritme LLL Pengertian Basis Tereduksi
Berikut ini merupakan definisi dari basis tereduksi ๐ฟ. Definisi 4.10
Suatu basis โฌ = [๐1, ๐2, โฆ , ๐๐] dalam โ๐ disebut tereduksi LLL dengan parameter ๐ฟ jika memenuhi
1. |๐๐๐| โค1
2, untuk setiap bilangan bulat ๐, ๐ dengan 1 โค ๐ < ๐ < ๐, 2. ๐ฟโ๐๐(๐๐)โ2 โค โ๐๐(๐๐+1)โ2, untuk ๐ = 1, 2, โฆ , ๐ โ 1,
dimana ๐ฟ merupakan parameter reduksi yang bernilai real dengan 1
4 < ๐ฟ < 1. Syarat pertama dalam definisi di atas disebut dengan reduksi ukuran. Syarat pertama mengatakan bahwa basis tereduksi ๐ฟ harus โhampir ortogonalโ dan dalam
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
๐ฟโ๐๐โโ2 โค โ๐๐+1โ + ๐๐+1,๐๐๐โโ2
โ ๐ฟโ๐๐โโ2 โค โ๐๐+1โ + ๐๐+1,๐๐๐โโโ๐๐+1โ + ๐๐+1,๐๐๐โโ โ ๐ฟโ๐๐โโ2 โค โ๐๐+1โ โ 2+ 2๐๐+1,๐โ๐๐โ. ๐๐+1โ โ+โ๐๐+1,๐๐๐โโ2
โ ๐ฟโ๐๐โโ2 โค โ๐๐+1โ โ 2+๐๐+1,๐โ๐๐โโ2 โ (๐ฟ โ ๐๐+1,๐2 )โ๐๐โโ2 โค โ๐๐+1โ โ2.
Ketaksamaan diatas menyatakan bahwa vektor-vektor Gram-Schmidt dari basis tereduksi LLL harus terurut turun dengan faktor penurunan sebesar ๐ฟ โ ๐๐+1,๐2 . Jika terdapat pasangan vektor (๐๐โ, ๐๐+1โ ) 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 โ๐1โ dari basis tereduksi ๐ฟ.
Teorema 4.2
Jika โฌ = [๐1, ๐2, โฆ , ๐๐] dalam โ๐ adalah basis tereduksi ๐ฟ, maka berlaku โ๐1โ โค ๐ผ๐โ12 ๐(ฮ) dengan ๐ผ = 1
๐ฟโ1
4
. Bukti:
Misalkan โฌ = [๐1, ๐2, โฆ , ๐๐] dalam โ๐ adalah basis tereduksi ๐ฟ, menurut definisi diperoleh ๐ฟโ๐๐โโ2 โค โ๐๐+1โ + ๐๐+1,๐๐๐โโ2 โ (๐ฟ โ ๐๐+1,๐2 )โ๐๐โโ2 โค โ๐๐+1โ โ2 โ (๐ฟ โ1 4) โ๐๐ โโ2 โค โ๐๐+1โ โ2 โ1 ๐ผโ๐๐ โโ2 โค โ๐๐+1โ โ2 โ โ๐๐โโ2โค ๐ผโ๐๐+1โ โ2 . (9) Dengan menerapkan pertidaksamaan (9) secara berulang diperoleh
โ๐1โโ2 โค ๐ผโ๐2โโ2
โ๐2โโ2 โค ๐ผโ๐3โโ2
โ๐3โโ2 โค ๐ผโ๐4โโ2
โฎ
โ๐1โโ2 โค ๐ผโ๐2โโ2 โค ๐ผ2โ๐3โโ2 โค โฏ โค ๐ผ๐โ1โ๐๐โโ2. Dengan kata lain, secara umum untuk setiap ๐ โ ๐ผ๐ = {1,2, โฆ , ๐}, maka
โ๐1โโ2 โค ๐ผ๐โ1โ๐๐โโ2 โ โ๐1โโ โค ๐ผ๐โ12 โ๐๐โโ โ โ๐1โโ โค ๐ผ๐โ12 โ๐๐โโ. Karena berlaku untuk setiap ๐ โ ๐ผ๐, maka
โ๐1โโ โค (๐ผ๐โ12 ) (min
19 Misalkan โฌ = [๐1, ๐2, โฆ , ๐๐] dalam โ๐ adalah basis tereduksi LLL untuk latis ฮ = โ(โฌ), menurut Teorema 4.1 diperoleh
min
๐โ๐ผ๐โ๐๐โโ โค ๐(ฮ) dan ketaksamaan persamaan (10) menjadi
โ๐1โโ โค (๐ผ๐โ12 ) ๐(ฮ). Bukti lengkap. โ
Teorema 4.2 menyatakan bahwa vektor pertama pada basis tereduksi ๐ฟ merupakan jawaban dari Problem 4.4 dengan nilai ๐พ = ๐ผ๐โ12 .
Reduksi Ukuran
Sebagaimana telah dinyatakan dalam subbab sebelumnya bahwa syarat reduksi ukuran yaitu |๐๐,๐| โค1
2 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 โฌ = [๐1, ๐2, โฆ , ๐๐] dalam ruang vektor โ๐. Daerah fundamental terpusat (centered fundamental region) dari ฮ , dinotasikan dengan ๐(โฌ) , didefinisikan sebagai himpunan ๐(โฌ) = {โ ๐ฅ๐๐๐ ๐ ๐=1 /๐ฅ๐ โ โ, โ1 2โค ๐ฅ๐ < 1 2}.
๐(โฌ) juga disebut parallelepiped dasar terpusat (centered fundamental region). Proposisi 4.6
Jika ฮ = โ(โฌ) adalah latis yang dibangkitkan oleh basis โฌ = [๐1, ๐2, โฆ , ๐๐] 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 (๐ค1, ๐ค2, โฆ , ๐ค๐) โ โ๐ sehingga
๐ฐ = โ ๐ค๐๐๐
๐
๐=1
.
Kemudian, karena ๐ค๐ โ โ maka ada bilangan bulat โ๐ค๐โ โ โค (pembulatan ke bilangan bulat terdekat (round) dari ๐ค๐ sehingga
๐ค๐ = โ๐ค๐โ + ๐ก๐ dengan โ1
2โค ๐ก๐ < 1
2. Selanjutnya,
20 ๐ฐ = โ ๐ค๐๐๐ ๐ ๐=1 = โ(โ๐ค๐โ + ๐ก๐)๐๐ ๐ ๐=1 = โโ๐ค๐โ๐๐+ โ ๐ก๐๐๐ ๐ ๐=1 ๐ ๐=1 = ๐ฏ + ๐ญ. Bukti lengkap. โ Lema 4.2
Misalkan โฌโ = [๐1โ, ๐2โ, โฆ , ๐๐โ] adalah hasil proses ortogonalisasi Gram-Schmidt dari himpunan bebas linier โฌ = [๐1, ๐2, โฆ , ๐๐] dan diberikan sebarang ๐ฐ โ โฉโฌโช. Jika ๐ฐ = โ๐๐=1๐ค๐๐๐, maka ๐ค๐ = ๐ฐ. ๐๐ โ ๐๐โ. ๐๐โ. Bukti: Perhatikan bahwa ๐ฐ. ๐๐โ = (โ ๐ค๐๐๐ ๐ ๐=1 ) . ๐๐โ = โ ๐ค๐ ๐ ๐=1 (๐๐. ๐๐โ) = ๐ค๐(๐๐. ๐๐โ) โ ๐ค๐ = ๐ฐ. ๐๐ โ ๐๐โ. ๐๐โ. Bukti selesai setelah ditunjukkan bahwa ๐๐. ๐๐โ = ๐๐โ. ๐๐โ sebagai berikut
๐๐. ๐๐โ = (๐๐โ + โ ๐๐,๐๐๐โ ๐โ1 ๐=1 ) . ๐๐โ = ๐๐โ. ๐๐โ + โ ๐๐,๐ ๐โ1 ๐=1 (๐๐โ. ๐๐โ) = ๐๐โ. ๐๐โ + โ ๐๐,๐ ๐โ1 ๐=1 (0) = ๐๐โ. ๐๐โ. Bukti lengkap. โ Proposisi 4.7
Jika โฌโ = [๐1โ, ๐2โ, โฆ , ๐๐โ] adalah hasil proses ortogonalisasi Gram-Schmidt dari himpunan bebas linier โฌ = [๐1, ๐2, โฆ , ๐๐] , maka ๐(โฌโ) juga merupakan daerah fundamental untuk โ(โฌ). Artinya, untuk setiap ๐ฐ โ โฉโฌโช, ada tepat satu vektor latis ๐ฐ โ โ(โฌ) dan ada tepat satu vektor ๐ญ โ ๐(โฌโ) sehingga dapat dituliskan ๐ฐ = ๐ฏ + ๐ญ.
Bukti:
Demi kepentingan bagaimana menentukan ๐ฏ dan ๐ญ secara algoritmik, proposisi ini akan dibuktikan secara instruktif. Kemudian, agar lebih mudah dibayangkan, tanpa mengurangi keumumannya, diambil untuk kasus ๐ = 3 sebagai berikut.
21 1. Definisikan ๐ฐ3 = ๐ฐ , karena ๐ฐ3 โ โฉ{๐1, ๐2, ๐3}โช , berarti ada tepat satu
(๐ฅ1, ๐ฅ2, ๐ฅ3) โ โ3 sehingga
๐ฐ3 = โ ๐ฅ๐๐๐
3
๐=1
dan berdasarkan Lema 4.2 dapat dituliskan ๐ฐ3 = โ ๐ฅ๐๐๐ + 2 ๐=1 ๐ฐ๐. ๐3โ ๐3โ. ๐3โ ๐3 = โ ๐ฅ๐๐๐+ 2 ๐=1 (โ๐ฐ3. ๐3 โ ๐3โ. ๐3โโ + ๐ก3) ๐3 dan dalam hal ini, โ1
2โค ๐ก3 <1 2. Selanjutnya, ๐ฐ3 = โ ๐ฅ๐๐๐+ 2 ๐=1 โ๐ฐ3. ๐3 โ ๐3โ. ๐3โโ ๐3+ ๐ก3๐3 = โ ๐ฅ๐๐๐+ 2 ๐=1 โ๐ฐ๐. ๐3 โ ๐3โ. ๐3โโ ๐3+ ๐ก3(๐3 โ + โ ๐3,๐ 2 ๐=1 ๐๐โ) โ ๐ฐ3โ (โ๐ฐ๐. ๐3 โ ๐3โ. ๐3โโ ๐3+ ๐ก3๐3) = โ ๐ฅ๐๐๐+ โ ๐ก3๐3,๐ 2 ๐=1 ๐๐โ. 2 ๐=1 (11) 2. Definisikan ๐ฐ2 = ๐ฐ3โ (โ๐ฐ๐. ๐3 โ ๐3โ. ๐3โโ ๐3+ ๐ก3๐3 โ). Dari persamaan (11) dan karena โฉ{๐1, ๐2}โช = โฉ{๐1โ, ๐2โ}โช, maka
๐ฐ2 โ โฉ{๐1, ๐2}โช dengan tepat satu (๐ฅ1, ๐ฅ2) โ โ2 sehingga
๐ฐ2 = ๐ฅ1๐1+ ๐ฅ2๐2 dan berdasarkan Lema 4.2, dapat dituliskan
๐ฐ2 = ๐ฅ1๐1+๐ฐ๐. ๐2 โ ๐2โ. ๐2โ ๐2 = ๐ฅ1๐1+ (โ๐ฐ๐. ๐2 โ ๐2โ. ๐2โโ + ๐ก2) ๐2 dan dalam hal ini, โ1
2 โค ๐ก2 < 1 2. Selanjutnya, ๐ฐ2 = ๐ฅ1๐1+ โ๐ฐ๐. ๐2 โ ๐2โ. ๐2โโ ๐2+ ๐ก2๐2 = ๐ฅ1๐1+ โ๐ฐ๐. ๐2 โ ๐2โ. ๐2โโ ๐2+ ๐ก2(๐2 โ + ๐2,1๐1โ) โ ๐ฐ2โ (โ๐ฐ๐. ๐2 โ ๐2โ. ๐2โโ ๐2+ ๐ก2๐2 โ) = ๐ฅ1๐1+ ๐ก2๐2,1๐1โ. (12) 3. Definisikan
22
๐ฐ1 = ๐ฐ2โ (โ๐ฐ๐. ๐2
โ
๐2โ. ๐2โโ ๐2+ ๐ก2๐2โ).
Dari persamaan (12), maka ๐ฐ1 โ โฉ{๐1}โช dan ada ๐ฅ1 โ โsehingga ๐ฐ1 = ๐ฅ1๐1.
Berdasaran Lema 4.2 dapat dituliskan ๐ฐ1 = โ๐ฐ๐. ๐1 โ ๐1โ. ๐1โโ ๐1 = (โ ๐ฐ๐. ๐1โ ๐1โ. ๐1โโ + ๐ก1๐1 โ) dan dalam hal ini, โ1
2โค ๐ก1 < 1 2. Maka ๐ฐ = ๐ฏ + ๐ญ dimana ๐ฏ = โ๐ฐ๐. ๐1 โ ๐1โ. ๐1โโ ๐1+ โ ๐ฐ๐. ๐2โ ๐2โ. ๐2โโ ๐2+ โ ๐ฐ๐. ๐3โ ๐3โ. ๐3โโ ๐3 dan ๐ญ = ๐ก1๐1โ + ๐ก2๐2โ + ๐ก3๐3โ.
Dengan mudah dilihat bahwa ๐ฏ โ โ(โฌ) dan ๐ญ โ ๐(โฌโ). Bukti lengkap. โ Bukti dari proposisi sekaligus merupakan bukti kebenaran dari algoritme berikut.
Algoritme 4.1
Input: โฌ = [๐1, ๐2, โฆ , ๐๐] basis untuk โ(โฌ) dan ๐ฐ โ โฉโฌโช. Output: Vektor latis ๐ฏ โ โ(โฌ) dan ๐ญ โ ๐(โฌโ).
1. Dengan algoritme Gram-Schmidt, hitung [๐1โ, ๐2โ, โฆ , ๐๐โ] dengan menggunakan input โฌ = [๐1, ๐2, โฆ , ๐๐]. 2. Inisialisasi ๐ฏ โ ๐ dan ๐ญ โ ๐. 3. Untuk ๐ = ๐, ๐ โ 1, โฆ ,1 hitung: a) ๐ฅ๐ โ๐ฐ.๐๐โ ๐๐โ.๐๐โ b) ๐ฃ๐ โ โ๐ฅ๐โ c) ๐ฏ โ ๐ฏ + ๐ฃ๐๐๐ d) ๐ก๐ โ ๐ฅ๐โ ๐ฃ๐ e) ๐ญ โ ๐ + ๐ก๐๐๐โ f) ๐ค โ ๐ค โ (๐ฃ๐๐๐+ ๐ก๐๐๐โ) 4. return(๐ฏ dan t).
Algoritme 4.2 (Menentukan Vektor Terdekat)
Input: โฌ = [๐1, ๐2, โฆ , ๐๐] basis untuk โ(โฌ) dan ๐ฐ โ โฉโฌโช. Output: Vektor latis ๐ฏ โ โ(โฌ).
1. Dengan algoritme Gram-Schmidt, hitung [๐1โ, ๐2โ, โฆ , ๐๐โ] dengan menggunakan input โฌ = [๐1, ๐2, โฆ , ๐๐]. 2. Inisialisasi ๐ฏ โ ๐. 3. Untuk ๐ = ๐, ๐ โ 1, โฆ ,1 hitung: a) ๐ฅ๐ โ๐ฐ.๐๐โ ๐๐โ.๐๐โ b) ๐ฃ๐ โ โ๐ฅ๐โ c) ๐ฏ โ ๐ฏ + ๐ฃ๐๐๐
23 d) ๐ก๐ โ ๐ฅ๐ โ ๐ฃ๐
e) ๐ค โ ๐ค โ (๐ฃ๐๐๐ + ๐ก๐๐๐โ) 4. return(๐ฏ).
Akibat dari Proposisi 4.7 diberikan dalam teorema berikut ini. Teorema 4.3
Jika โฌโ = [๐1โ, ๐2โ, โฆ , ๐๐โ] adalah hasil proses ortogonalisasi Gram-Schmidt dari himpunan bebas linier โฌ = [๐1, ๐2, โฆ , ๐๐] , maka โฌ dapat ditransformasikan menjadi โฌโฒ = [๐1โฒ, ๐2โฒ, โฆ , ๐๐โฒ] yang juga merupakan basis untuk โ(โฌ) dan โฌโ juga merupakan hasil ortogonalisasi Gram-Schmidt โฌโฒ. Dalam hal ini,
๐1โ = ๐1โฒ ๐๐โ = ๐๐โฒโ โ ๐๐,๐โฒ ๐โ1 ๐=1 ๐๐โ, untuk ๐ = 2, 3, โฆ , ๐ dengan ๐๐,๐โฒ = ๐๐ โฒ.๐๐โ ๐๐โ.๐๐โ dan |๐๐,๐โฒ | โค1 2. Bukti:
Untuk memudahkan pemahaman, transformasi dari โฌ ke โฌโฒ dilakukan secara instruktif sebagai berikut
1. Definisikan
๐1โฒ = ๐1.
Dalam hal ini, didapatkan subruang vektor berdimensi satu, yaitu ๐ฎ1 = โฉ{๐1}โช = โฉ{๐1โฒ}โช = โฉ{๐1โ}โช.
2. Dari proses ortogonalisasi dari ๐2 ke ๐2โ berlaku hubungan ๐2โ = ๐2โ ๐ฉ1
dengan ๐ฉ1 = ๐2,1๐1โ =๐2.๐1โ
๐1โ.๐1โ๐1โ adalah vektor proyeksi dari ๐2 pada ๐ฎ1. Hal ini berarti ๐ฉ1 โ ๐ฎ1. Dengan demikian, berdasarkan Proposisi 4.7 bahwa ada vektor latis ๐ฏ1 โ โโฉ{๐1}โช dan vektor ๐ญ1 โ ๐({๐1โ}), sehingga
๐ฉ1 = ๐ฏ1+ ๐ญ1 dan akibatnya diperoleh
๐2โ = ๐2 โ (๐ฏ1+ ๐ญ1) = (๐2โ ๐ฏ1) โ ๐ญ1. Kemudian dari persamaan ini dapat didefinisikan
๐2โฒ = ๐2โ ๐ฏ1
sehingga jelas (karena latis adalah grup) bahwa ๐2โฒ โ โ(โฌ), dan diperoleh persamaan
๐2โ = ๐2โฒ โ ๐ญ1.
Hasil ini menunjukkan bahwa ortogonalisasi {๐1โฒ, ๐2โฒ} juga menghasilkan {๐1โ, ๐2โ} dengan vektor proyeksi ๐2โฒ pada ๐ฎ1 adalah
๐ญ1 = ๐2,1โฒ ๐1โ = ๐2
โฒ. ๐1โ ๐1โ. ๐1โ๐1
โ
dan dalam hali ini ๐2,1โฒ = ๐2,1โ โ๐2,1โ sehingga |๐2,1โฒ | โค1
2.
Selanjutnya untuk menghitung ๐2โฒ berarti cukup menghitung ๐ฏ1 dengan menggunakan Algoritme 4.2 dan
24
Sebelum ke langkah berikutnya, dinotasikan dahulu subruang vektor berdimensi dua yaitu
๐ฎ1 = โฉ{๐1, ๐2}โช = โฉ{๐1โฒ, ๐2โฒ}โช = โฉ{๐1โ, ๐2โ}โช. 3. Dari proses ortogonalisasi dari berlaku hubungan
๐3โ = ๐3โ ๐ฉ2 dengan ๐ฉ2 = ๐3,1๐1โ + ๐3,2๐2โ = ๐3.๐1โ
๐1โ.๐1โ๐1โ+๐3.๐2โ
๐2โ.๐2โ๐2โ adalah vektor proyeksi dari ๐3 pada ๐ฎ2. Hal ini berarti ๐ฉ2 โ ๐ฎ2. Dengan demikian, berdasarkan Proposisi 4.7 bahwa ada vektor latis ๐ฏ2 โ โโฉ{๐1, ๐2}โช dan vektor ๐ญ2 โ ๐({๐1โ, ๐2โ}) sehingga
๐ฉ2 = ๐ฏ2+ ๐ญ2 dan akibatnya diperoleh
๐3โ = ๐3โ (๐ฏ2+ ๐ญ2) = (๐3โ ๐ฏ2) โ ๐ญ2. Kemudian dari persamaan ini dapat didefinisikan
๐3โฒ = ๐3โ ๐ฏ2
sehingga jelas (karena latis adalah grup) bahwa ๐3โฒ โ โ(โฌ), dan diperoleh persamaan
๐3โ = ๐3โฒ โ ๐ญ2.
Hasil ini menunjukkan bahwa ortogonalisasi ๐3โฒ juga menghasilkan ๐3โ
dengan vektor proyeksi ๐3โฒ pada ๐ฎ2 adalah ๐ญ2 = ๐3,1โฒ ๐1โ+ ๐3,2โฒ ๐2โ =๐3
โฒ. ๐1โ
๐1โ. ๐1โ๐1โ +๐3
โฒ. ๐2โ ๐2โ. ๐2โ๐2โ
dan dalam hali ini untuk ๐ = 1, 2 berlaku
๐3,๐โฒ = ๐3,๐โ โ๐3,๐โ sehingga |๐3,1โฒ | <1
2.
Selanjutnya untuk menghitung ๐3โฒ berarti cukup menghitung ๐ฏ2 dengan menggunakan Algoritme 4.2 dan
๐3โฒ = ๐3โ ๐ฏ2.
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 ๐ = 1, 2, โฆ , ๐ berlaku โ๐๐โ โฅ โ๐๐โฒโ. Hal ini terlihat dari vektor proyeksi ๐ฉ๐โ1, hasil proyeksi dari ๐๐ ke subruang ๐ฎ๐โ1 untuk ๐ = 1, 2, โฆ , ๐ ditransformasikan ke vektor proyeksi ๐ญ๐โ1, hasil proyeksi dari ๐๐โฒ ke subruang ๐ฎ๐โ1. Jika ๐ฉ๐โ1โ ๐({๐1โ, ๐2โ, โฆ , ๐๐โ1โ }), maka ๐๐ = ๐โฒ๐ tetapi jika ๐ฉ๐โ1โ ๐({๐1โ, ๐2โ, โฆ , ๐๐โ1โ }), maka ๐๐ bias ditransformasikan ๐๐โฒ dengan vektor proyeksi pada ๐ฎ๐โ1 adalah ๐ญ โ ๐({๐1โ, ๐2โ, โฆ , ๐๐โ1โ }) sehingga โ๐๐โ โฅ โ๐๐โฒโ . Dengan demikian, Teorema 4.3 beserta buktinya merupakan landasan teori yang digunakan untuk menyusun algoritme reduksi ukuran dari algoritme LLL berikut ini.
Algoritme 4.3 (Algoritme Reduksi Ukuran) Input: โฌ = [๐1, ๐2, โฆ , ๐๐] basis untuk โ(โฌ).
Output: โฌโ = [๐1โ, ๐2โ, โฆ , ๐๐โ] adalah hasil proses ortogonalisasi Gram-Schmidt dari โฌ dan โฌโฒ= [๐1โฒ, ๐2โฒ, โฆ , ๐๐โฒ] adalah hasil reduksi ukuran dari โฌ.
25 1. Inisialisasi ๐1โ โ ๐1 dan ๐1โฒ = ๐1. 2. Untuk ๐ = 2, 3, โฆ , ๐ hitung: a) ๐ฉ โ ๐ b) Untuk ๐ = 1, 2, โฆ , ๐ โ 1 hitung i. ๐๐,๐ =๐๐.๐๐ โ ๐๐โ.๐๐โ ii. ๐ฉ โ ๐ฉ + ๐๐,๐๐๐ c) ๐๐โ โ ๐๐โ ๐ฉ
d) Gunakan Algoritme 4.2 untuk menghitung vektor ๐ฏ dengan input โฌ = [๐1, ๐2, โฆ , ๐๐โ1] dan โฌโ = [๐1โ, ๐2โ, โฆ , ๐๐โ1โ ] serta ๐ฉ. e) ๐๐โฒ โ ๐๐โ ๐ฏ
3. return([๐1โ, ๐2โ, โฆ , ๐๐โ] dan [๐1โฒ, ๐2โฒ, โฆ , ๐๐โฒ]).
Berikut ini langkah-langkah ilustratif penyusunan algoritme reduksi ukuran LLL yang sifatnya rekursif tanpa memanggil Algoritme 4.2.
1. Untuk ๐ = 1, definisikan langsung
๐1โ = ๐1 dan ๐1โฒ = ๐1.
2. Untuk ๐ = 2, perhatikan bahwa ๐ฉ1 = ๐2,1๐1โ, berdasarkan Algoritme 4.2 maka
๐ฏ1 = โ๐ฉ. ๐1
โ
๐1โ. ๐1โโ ๐1 = โ๐2,1โ๐1.
Jadi untuk menghitung ๐2โ dan ๐2โฒ cukup menghitung dahulu ๐2,1, kemudian ๐2โ = ๐2โ ๐ฉ1 = ๐2โ ๐2,1๐1โ
dan
๐2โฒ = ๐2โ ๐ฏ1 = ๐2โ โ๐2,1โ๐1.
3. Untuk ๐ = 3, perhatikan bahwa ๐ฉ2 = ๐3,1๐1โ + ๐3,2๐2โ, berdasarkan Algoritme 4.2 nyatakan ๐ฏ2 = ๐ฏ2,2+ ๐ฏ2,1 sehingga
๐ฏ2,2= โ๐ฉ2. ๐2 โ ๐2โ. ๐2โโ ๐2 = โ๐3,2โ๐2 dan ๐ฏ2,1 = โ(๐ฉ2โ โ๐3,2โ๐2โ ๐3,2 โฒ ๐2โ)๐1โ ๐1โ. ๐1โ โ ๐1 = โ๐3,1โ โ๐3,2โ(๐2,1)โ๐1.
Jadi untuk menghitung ๐3โ dan ๐3โฒ dapat dilakukan secara rekursif sebagai berikut.
a) Untuk ๐ = 2, hitung ๐3,2, kemudian
๐3โ = ๐3 โ ๐3,2๐2 dan
๐3โฒ = ๐3โ ๐ฏ2,2= ๐3โ โ๐3,2โ๐2 b) Untuk ๐ = 1, hitung ๐3,1, kemudian
๐3โ = ๐3โ ๐3,1๐1 dan
๐3โฒ = ๐3โฒ โ ๐ฏ2,1
26
4. Untuk ๐ = 4, perhatikan bahwa ๐ฉ3 = ๐4,1๐1โ + ๐4,2๐2โ + ๐4,3๐3โ berdasarkan Algoritme 4.2 nyatakan ๐ฏ3 = ๐ฏ3,3+ ๐ฏ3,2+ ๐ฏ3,1 sehingga
๐ฏ3,3 = โ๐ฉ3. ๐3 โ ๐3โ. ๐3โโ ๐3 = โ (๐4,3๐3โ). ๐3โ ๐3โ. ๐3โ โ ๐3 = โ๐4,3โ๐3 dan ๐ฏ3,2= โ(๐ฉ โ (โ๐4,3โ๐3+ ๐4,3 โฒ ๐3โ)) ๐2โ ๐2โ. ๐2โ โ ๐2 = โ๐4,2โ โ๐4,3โ(๐3,2)โ๐2 ๐ฏ3,1 = โ(๐ฉ โ (โ๐4,3โ๐3+ ๐4,3 โฒ ๐3โ) โ (โ๐4,2โ๐2+ ๐4,2โฒ ๐2โ)) ๐1โ ๐1โ. ๐1โ โ ๐1 = โ๐4,1โ โ๐4,3โ๐3,1โ โ๐4,2โ๐2,1โ๐1.
Jadi untuk menghitung ๐4โ dan ๐4โฒ dapat dilakukan secara rekursif sebagai berikut.
a) Untuk ๐ = 3, hitung ๐4,3, kemudian
๐4โ = ๐4โ ๐4,3๐3โ dan
๐4โฒ = ๐4โ โ๐4,3โ๐3. b) Untuk ๐ = 2, hitung ๐4,2, kemudian
๐4โ = ๐4โ โ ๐4,2๐2โ dan
๐4โฒ = ๐4โฒ โ โ๐4,2โ โ๐4,3โ(๐3,2)โ๐2. c) Untuk ๐ = 1, hitung ๐4,1, kemudian
๐4โ = ๐4โ โ ๐4,1๐1โ dan
๐4โฒ = ๐4โฒ โ โ๐4,1โ โ๐4,3โ๐3,1โ โ๐4,2โ๐2,1โ.
Berdasarkan pola Langkah 4 tersebut, berikut ini diberikan algoritme reduksi ukuran yang sifatnya rekursif.
Algoritme 4.4 (Reduksi Ukuran LLL)
Input: โฌ = [๐1, ๐2, โฆ , ๐๐] basis untuk โ(โฌ).
Output: โฌโ = [๐1โ, ๐2โ, โฆ , ๐๐โ] adalah hasil proses ortogonalisasi Gram-Schmidt dari โฌ dan โฌโฒ= [๐1โฒ, ๐2โฒ, โฆ , ๐๐โฒ] adalah hasil reduksi ukuran dari โฌ.
1. ๐1โ โ ๐1 2. ๐1โฒ = ๐1 3. ๐21 โ๐2.๐1โ ๐1โ.๐1โ 4. ๐2โ โ ๐1โ ๐21๐1โ 5. ๐2โฒ โ ๐2โ โ๐21โ๐1 6. Untuk ๐ = 3,4, โฆ , ๐ lakukan: a) ๐๐โ โ ๐๐ b) ๐๐ โ ๐๐
27 c) ๐๐,๐โ1 โ ๐๐.๐๐โ1 โ ๐๐โ1โ .๐๐โ1โ d) ๐๐โ โ ๐๐โ ๐๐,๐โ1๐๐โ1 e) ๐๐โฒ โ ๐๐โฒ โ ๐๐,๐โ1๐๐โ1 f) Untuk ๐ = ๐ โ 2, ๐ โ 3, โฆ , 1 lakukan: i. ๐๐,๐ =๐๐.๐๐ โ ๐๐โ.๐๐โ ii. ๐๐โ โ ๐๐โ ๐๐,๐๐๐โ iii. ๐ โ ๐๐,๐
iv. Untuk ๐ = ๐, ๐ + 1, โฆ , ๐ โ 2 lakukan: ๐ โ ๐ โ โ๐๐,๐+1โ๐๐+1,๐
v. ๐๐โฒ โ ๐๐โฒ โ โ๐โ๐๐
7. return([๐1โ, ๐2โ, โฆ , ๐๐โ] dan [๐1โฒ, ๐2โฒ, โฆ , ๐๐โฒ]).
Berikut ini merupakan langkah-langkah ilustratif penyusunan algoritme reduksi ukuran LLL dengan menggunakan rumus rekursif yang lebih sederhana.
1. Untuk ๐ = 1 definisikan langsung
๐1โ = ๐1 dan ๐1โฒ = ๐1.
2. Untuk ๐ = 2, perhatikan bahwa ๐ฉ1 = ๐2,1๐1โ, berdasarkan Algoritme 4.2 maka
๐ฏ1 = โ๐ฉ1. ๐1
โ
๐1โ. ๐1โโ ๐1โ = โ๐2,1โ๐1โ.
Jadi, untuk menghitung ๐2โ dan ๐2โฒ , cukup menghitung dahulu ๐2,1, kemudian
๐2โ = ๐2โ ๐ฉ1 = ๐2โ ๐2,1๐1โ dan
๐2โฒ = ๐2โ ๐ฏ1 = ๐2โ โ๐2,1โ๐1. 3. Untuk ๐ = 3, dari uraian sebelumnya,
๐3โฒ = (๐3โ โ๐3,2โ๐โ2) โ โ๐3,1โ โ๐3,2โ(๐2,1)โ๐1 = (๐3โ โ๐3,2โ๐2โ) โ โ(๐3โ โ๐3,2โ๐2). ๐1 โ ๐1โ. ๐1โ โ ๐1 = ๐ฑ โ ๐ฒ ๐ฑ = (๐3โ โ๐3,2โ(๐2โฒ + โ๐2,1โ๐1โ)) ๐ฒ = โ(๐3โโ๐3,2โ(๐2 โฒ+โ๐2,1โ๐1โ)).๐1โ ๐1โ.๐1โ โ ๐1 ๐ฑ = ๐3โ โ๐3,2โ๐2โฒ โ โ๐3,2โโ๐2,1โ๐1โ ๐ฒ = โ(๐3โ โ๐3,2โ๐2 โฒ โ โ๐3,2โโ๐2,1โ๐1โ). ๐1โ ๐1โ. ๐1โ โ ๐1 = โ(๐3โ โ๐3,2โ๐2 โฒ. ๐1โ). ๐1โ ๐1โ. ๐1โ โ โ๐3,2โโ๐2,1โโ ๐1 = โ(๐3โ โ๐3,2โ๐2 โฒ. ๐1โ). ๐1โ ๐1โ. ๐1โ ๐1โ โ โ๐3,2โโ๐2,1โ๐1. Dengan demikian, diperoleh
28
๐3โฒ = (๐3โ โ๐3,2โ๐2โฒ) โ โ(๐3โ โ๐3,2โ๐2
โฒ). ๐1โ ๐1โ. ๐1โ โ ๐1.
Jadi untuk menghitung ๐3โ dan ๐3โฒ, dapat dilakukan secara rekursif sebagai berikut.
(a) Untuk ๐ = 2, hitung ๐3,2 kemudian
๐3โ = ๐3โ โ ๐3,2๐2โ dan
๐3โฒ = ๐3โ โ๐3,2โ๐2โฒ. (b) Untuk ๐ = 1, hitung ๐3,1 kemudian
๐3โ = ๐3โ โ ๐3,1๐1โ dan
๐3โฒ = ๐3โฒ โ โ๐3
โฒ . ๐1โ ๐1โ. ๐1โโ ๐1โฒ.
Berdasarkan pola dari 3 langkah tersebut, berikut ini diberikan algoritme reduksi ukuran yang sifatnya rekursif.
Algoritme 4.5 (Reduksi ukuran LLL)
Input: โฌ = [๐1, ๐2, โฆ , ๐๐] basis untuk โ(โฌ).
Output: โฌโ = [๐1โ, ๐2โ, โฆ , ๐๐โ] adalah hasil proses ortogonalisasi Gram-Schmidt dari โฌ dan โฌโฒ= [๐1โฒ, ๐2โฒ, โฆ , ๐๐โฒ] adalah hasil reduksi ukuran dari โฌ.
1. ๐1โ โ ๐1 2. ๐1โฒ = ๐1 3. Untuk ๐ = 2, 3, โฆ , ๐ lakukan: a) Untuk ๐ = ๐ โ 1, ๐ โ 2, โฆ ,1 lakukan: i. ๐๐,๐ โ๐๐.๐๐ โ ๐๐โ.๐๐โ ii. ๐๐โ โ ๐๐โโ ๐๐,๐๐๐โ iii. ๐๐,๐โฒ โ๐๐ โฒ.๐๐โ ๐๐โ.๐๐โ iv. ๐๐โฒโ ๐๐โ โ๐๐,๐โฒ โ๐๐ 4. return([๐1โ, ๐2โ, โฆ , ๐๐โ] dan [๐1โฒ, ๐2โฒ, โฆ , ๐๐โฒ]). 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
๐ฟโ๐๐(๐๐)โ2 > โ๐๐(๐๐+1)โ2 โบ (๐ฟ โ (๐๐+1,๐)2) โ๐๐โโ2 > โ๐๐+1โ โ2,
maka urutan ๐๐ dan ๐๐+1 ditukar dan reduksi ukuran diulang. Jika ada beberapa pasang (๐๐, ๐๐+1) yang tidak memenuhi syarat kedua tersebut, tidak ada masalah mana yang harus dipilih untuk ditukar. Bahkan, dapat dipilih beberapa pasang vektor yang saling bebas untuk ditukar bersamaan, ini mengarah pada varian algoritme LLL paralel. Algoritme LLL aslinya pasangan nilai yang dipilih adalah nilai ๐ terkecil. Berikut ini diberikan secara garis besar deskripsi algoritme LLL.
29 1. (Langkah Reduksi Ukuran) terapkan algoritme reduksi ukuran pada โฌ. 2. (Langkah Penukaran) jika ada ๐ โ {2, 3, โฆ , ๐} sehingga
(๐ฟ โ (๐๐,๐โ1)2) โ๐๐โ1โ โ2 > โ๐๐โโ2 maka tukar ๐๐โ1 dan ๐๐, kemudian kembali ke Langkah 1. 3. Jika tidak, algoritme selesai.
Sedangkan bentuk praktis algoritme LLL diberikan berikut ini. Algoritme 4.6
Input: โฌ = [๐1, ๐2, โฆ , ๐๐] basis untuk โ(โฌ) dan 1
4< ๐ฟ < 1.
Output: โฌ = [๐1, ๐2, โฆ , ๐๐] adalah adalah basis tereduksi LLL untuk โ(โฌ) dan โฌโ= [๐1โ, ๐2โ, โฆ , ๐๐โ] adalah hasil proses ortogonalisasi Gram-Schmidt dari โฌ.
1. ๐1โ โ ๐1 2. ๐ โ 2
3. Reduksi Ukuran. Ketika ๐ โค ๐, lakukan: (a) ๐๐โโ ๐๐ (b) Untuk ๐ = ๐ โ 1, ๐ โ 2, โฆ ,1 lakukan: i. ๐๐,๐ โ๐๐.๐๐โ ๐๐โ.๐๐โ ii. ๐๐โ โ ๐๐โโ ๐๐,๐๐๐โ iii. ๐๐ โ ๐๐ โ โ๐๐,๐โ๐๐
(c) Penukaran. Jika (๐ฟ โ (๐๐,๐โ1)2) โ๐๐โ1โ โ2 > โ๐๐โโ2 maka i. Jika ๐ = 2, Tukar ๐1 dan ๐2 ๐1โ โ ๐2 ii. Jika ๐ > 2, Tukar ๐๐โ1 dan ๐๐