BAHASAN ALGORITME ARITMETIK GF(3 ) Telah dijelaskan sebelumnya bahwa dalam mengonstruksi field GF(3 )

Please download to get full document.

View again

of 11
16 views
PDF
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Document Description
BAB IV BAHASAN ALGORITME ARITMETIK GF(3 ) Telah dijelaskan sebelunya bahwa dala engonstruksi field GF(3 ) diperoleh dari perluasan field 3 dengan eilih polinoial priitif berderajat atas 3 yang dala hal
Document Share
Document Transcript
BAB IV BAHASAN ALGORITME ARITMETIK GF(3 ) Telah dijelaskan sebelunya bahwa dala engonstruksi field GF(3 ) diperoleh dari perluasan field 3 dengan eilih polinoial priitif berderajat atas 3 yang dala hal ini dapat dilihat pada Tebel 3.1, yaitu representasi basis polinoial dan representasi vektor terner. Operasi penjulahan disini enggunakan operasi julah odulo 3, sedangkan operasi perkalian saa seperti perkalian pada uunya tetapi pada saat penjulahannya tetap enggunakan operasi julah odulo 3. Contoh : 1. Operasi Penjulahan Operasi Perkalian (1+ + )(1+ ) = = ( + ) (od + 1) Berikut ini akan dijelaskan beberapa algorita yang berkaitan dala engkonstruksi algorita aritetik atas GF(3 ) dengan enggunakan Software MAPLE 11. Algorite aritetik yang dihasilkan akan dianalisis untuk engukur kinerja algorite berdasarkan fungsi kopleksitas, yaitu sebagai fungsi untuk engukur banyaknya operasi dala suatu algorite yang epunyai variabel input n ditabahkan dengan assignent dan operasi perbandingan (ekspresi logika). 37 Proses kalkulasi aritetik dala penelitian ini akan enggunakan Algorite Reduksi Nol (Algorite 4.1), yaitu sebagai algorite rutin untuk ereduksi eleen nol yang tidak berpengaruh dala representasi vektor. Algorite Reduksi Nol ini akan digunakan oleh algorite-algorite pada operasi dasar, yaitu operasi penjulahan dan operasi perkalian sehingga dapat engheat peakaian ruang yang besar dan julah operasi. Misalkan, diberikan polinoial 10 3 a( x) x x x. Ini enunjukkan bahwa polinoial priitif a( x) eiliki derajat 10 sehingga x 1 x x 0x 0x 0x 0x 0x 0x dan jika ditulis dala bentuk vektor aka A( x) [1,,0,,0,0,0,0,0. Jadi dengan enggunakan Algorite Reduksi Nol aka vektor A( x) [1,, 0,. Algorite 4.1 Deskripsi : Prosedur untuk ereduksi nol pada posisi sebelah kanan Input : Vektor T dan Bilangan bulat positif t Output : Vektor R 1. T = R, t = banyaknya eleen T. Untuk j selaa T[ t 0 dan t 1, lakukan.1 Reduksi nol pada vektor T. t = t Return( R ) Banyaknya operasi dala Algorite 4.1 elibatkan rata-rata n operasi, diana n adalah panjang vektor T. 4.1 Operasi Penjulahan Sebagaiana dijelaskan sebelunya, representasi yang digunakan disini adalah representasi basis polinoial yang dikonversi ke dala representasi vektor terner dari derajat terkecil ke derajat yang terbesar. Misalkan fungsi polinoial f ( x) a a x... a x 0 1 dan fungsi polinoial 0 1 g( x) b b x... b x. Fungsi polinoial ini akan direpresentasikan sebagai vektor terner, yaitu A [ a0, a1,..., a 38 dan B [ b0, b1,..., b, aka operasi penjulahan vektor A dan vektor B didefinisikan sebagai A B ([( a b ) od 3, ( a b ) od 3,..., ( a b ) od 3) Algorite 4. Deskripsi : Prosedur untuk enjulahkan dua vektor Input : Vektor A [ a1, a,..., as, vektor B [ b1, b,..., bt, dan integer positif. Output : Vektor C A B [ c1, c,..., c r 1. Hitung s, dan t yaitu banyaknya eleen vektor A dan B. Jika s t, aka hitung 1.1 A B ([( a0 b0 ) od 3, ( a1 b1 ) od 3,..., ( as bt ) od 3) 1. Reduksi Nol enggunakan Algorite 4.1. Jika s t, aka hitung.1 ( a1 b1 ) od3, ( a b ) od 3,..., b t od3 Lainnya, ( a1 b1 ) od3, ( a b ) od3,..., a s od 3 3. Return( C ) Banyaknya operasi dala Algorite 4. elibatkan rata-rata enggunakan n odulo 3. Jadi fungsi kopleksitasnya adalah O( n ). Sebagai contoh, isalkan 3 diana polinoial priitifnya disipan dala basis data DatT[ = [, 1 dan diberikan fungsi polinoial a( x) 1 x x dan b( x) x x. Kedua polinoial tersebut akan direpresentasikan sebagai vektor A (1, 1, ) dan vektor B (0,, 1). Karena banyak eleen vektor A saa dengan banyaknya eleen pada vektor B, aka penjulahan vektor A dan vektor B dengan enggunakan Algorite 4.9 adalah C A B C ([(1 0) od3, (1 ) od3, ( 1) od3). C ([1, 0, 0). Eleen nol pada posisi paling kanan direduksi enggunakan Algorite 4.8, aka vektor C A B [1. Jika vektor C [1 dikebalikan ke representasi polinoial, aka fungsi polinoialnya adalah c x 0 ( ) 1x 1. 39 4. Operasi Perkalian Operasi perkalian dala GF(3 ) dilakukan dala perkalian polinoial biasa keudian engabil sisa dari hasil pebagian dengan polinoial priitif p( x ). Operasi perkalian dala penelitian ini enggunakan Algorite 4.5. Jika Algorite 4.5 diipleentasikan pada progra Software MAPLE 11 aka proses pertaa yang dilakukan adalah engecek apakah kedua vektor tersebut epunyai eleen yang saa? Jika banyaknya eleen vektor kedua kurang dari banyaknya eleen vektor pertaa aka vektor tersebut saling ditukarkan. Hal ini bertujuan agar tidak enggunakan ruang yang besar dala kalkulasi aritetik dala koputasi. Selanjutnya, gunakan algorite rutin dala operasi kelipatan vektor, yaitu Algorite 4.3, yaitu untuk engalikan kelipatan vektor. Proses kedua enggunakan algorite rutin dala operasi geser satu, yaitu untuk enggeser satu langkah dala setiap perkalian eleeneleennya enggunakan Algorite 4.4. Keudian enjulahkan proses pertaa dengan proses kedua secara rekursif enggunakan Algorite 4.. Algorite 4.3 Deskripsi : Prosedur untuk engalikan kelipatan vektor Input : Vektor A [ a1, a,..., a s, dan bilangan bulat positif {0,1,}. Output : vektor R 1. Jika = 0, aka return([0). Jika = 1, aka return(a), selainnya R = Negatifkan vektor A 3. Return( R ). Banyaknya operasi dala Algorite 4.3 elibatkan rata-rata enggunakan n operasi. Jadi fungsi kopleksitasnya adalah O( n ). Algorite 4.4 Deskripsi : Prosedur untuk enggeser satu langkah Input : Vektor A [ a1, a,..., a s, dan bilangan bulat positif. Output : vektor R 1. L = vektor dala basis data. t = banyaknya eleen vektor A 3. Jika t aka isi vektor R dengan 0 sebanyak t selainya 3.1 Isi R dengan 0 dan ereduksi eleen ke- pada vektor A 40 3. Reduksi Nol dengan enggunakan Algorite Kalikan vektor L dengan eleen ke-t pada vektor A enggunakan Algorite Julahkan hasil langkah 3. dengan langkah 3.3 enggunakan Algorite Return( R ). Banyaknya operasi dala Algorite 4.4 elibatkan rata-rata enggunakan n. n operasi. Jadi fungsi kopleksitas waktunya adalah O( n ). Algorite 4.5 Deskripsi : Prosedur untuk enghitung perkalian dua vektor Input : Vektor A [ a1, a,..., as, vektor B [ b1, b,..., bt, dan bilangan bulat positif. Output : Vektor R A. B [ c1, c,..., c r 1. Vektor S = A, vektor T = B, s, dan t asing-asing banyaknya eleen vektor A dan B. Jika s t aka lakukan.1 Tukarkan vektor A dengan vektor B. Hitung perkalian vektor B dengan eleen 1 vektor A enggunakan Algorite Untuk j dari 1 sapai ( s 1), lakukan.3.1 Geser vektor satu langkah enggunakan Algorite Hitung perkalian vektor pada langkah.3.1 dengan eleen (j+1) vektor A enggunakan Algorite Hitung adisi langkah. dengan langkah.3. enggunakan Algorite Return( R ). Banyaknya operasi dala Algorite 4.5 elibatkan rata-rata enggunakan n. n operasi. Jadi fungsi kopleksitas waktunya adalah O( n ). Sebagai contoh, isalkan 3 diana polinoial priitifnya disipan dala basis data DatT[ = [, 1 dan diberikan fungsi polinoial a( x) x x dan b( x) x x. Kedua polinoial tersebut akan direpresentasikan sebagai vektor A [,1, dan vektor B [,,. Tentukan vektor R dengan enggunakan algorite 4.3, yaitu kalikan vektor B dengan eleen pertaa pada vektor A yang hasilnya dalah R1 [1, 1, 1. Proses kedua enentukan vektor T dengan enggunakan Algorite 4., yaitu T 1 = [1, 1, lalu kalikan eleen ke- pada vektor A enghasilkan 41 vektor V 1 = [ 1, 1, keudian julahkan dengan vektor R 1 enggunakan Algorite 4.9 enghasilkan vektor R = [,. Selanjutnya ulangi proses kedua untuk eperoleh vektor T = [1, 0, 1 lalu kalikan eleen ke-3 pada vektor A enghasilkan vektor V = [, 0, keudian julahkan dengan vektor R enggunakan Algorite 4.3 enghasilkan vektor R3 [1,,. Dengan deikian diperoleh hasil perkalian vektor A dan vektor B yaitu R3 [1,,. Jika vektor R3 [1,, dikebalikan ke representasi polinoial aka fungsi polinoialnya adalah r( x) 1 x x. 4.3 Operasi Invers t Misalkan sebarang fungsi polinoial f ( x) a0 a1 x... at x, dan fungsi polinoial priitif p( x) berderajat. Representasikan fungsi f ( x) sebagai vektor terner A [ a0, a1,..., a t, aka untuk enentukan invers dari vektor A dapat enggunakan Algorite 4.7. Jika Algorite 4.7 diipleentasikan pada progra Software MAPLE 11 aka proses pertaa adalah Negatifkan vektor dala DatT() yang berfungsi sebagai polinoial priitif enggunakan Algorite 1.4 (Lapiran I), jika eleen A adalah nol aka vektor A tidak epunyai invers, dan jika banyak eleen vektor A adalah 1 aka inversnya adalah vektor itu sendiri. Proses kedua adalah isi vektor RA, vektor RB = T, vektor QA = [0, dan vektor QB = [1 yang keudian gunakan Algorite 4.6 untuk enentukan vektor L, yaitu ebagi vektor RA dengan vektor RB. Proses selanjutnya adalah selaa RB = op(, L) tidak nol, aka lakukan secara berulang-ulang dengan enggunakan algorite operasi rutin yaitu berturut-turut Algorite 1.8, dan Algorite 1.4 (Lapiran I), yang keudian julahkan dengan enggunakan Algorite 4.. Pada proses terakhir gunakan Algorita 4.3 untuk enentukan vektor H. Algorite 4.6 Deskripsi : Prosedur untuk pebagian vektor tanpa odulo Input : Vektor T [ a1, a,..., a t, S [ b1, b,..., b s Output : Vektor H A / B [[ Q,[ R 1. R = A, Q = [0. r, s asing-asing banyaknya eleen vektor T dan S 3. g = eleen ke-s pada vektor S 4 4. Jika s = 1, aka 4.1 Q = kalikan vektor R dengan setiap eleen pada vektor S enggunakan Algorite R = [0 4.3 Return([Q, R) 5. Untuk i selaa r s lakukan 5.1 Hitung k r s, t = eleen ke-r pada R 3. Hitung h ( t. g) od Jika k = 0, aka K = Kalikan S dengan h enggunakan Algorite Q = Julahkan hasil bagi Q dengan vektor h enggunakan Algorite 4.. Selainnya, H = Kalikan S dengan h enggunakan Algorite K = Isi 0 depan eleen H sebanyak k Q = Julahkan Q dengan [0...k, h gunakan Algorite K = Negatifkan vektor K 7. R = Julahkan K dengan R enggunakan Algorite r = banyaknya eleen R 9. Return( [Q, R ) Banyaknya operasi dala Algorite 4.6 elibatkan rata-rata enggunakan n. n operasi. Jadi fungsi kopleksitas waktunya adalah O( n ). Algorite 4.7 Deskripsi : Prosedur untuk enentukan invers vektor Input : Vektor T [ a1, a,..., a t, dan integer positif. 1 Output : Vektor H A [ c1, c,..., c r 1. Negatifkan vektor S. s = banyaknya eleen S, t = banyaknya eleen T 3. Jika T = [0, aka return(false) 4. Jika t = 1, aka return(t) 5. RA = [S, 0...( - t), 1, RB = T, QA = [0, QB = [1 6. Hitung pebagian vektor RA dengan RB enggunakan Algorite RA = RB, RB = eleen kedua pada langkah 6 8. Untuk i selaa A tidak nol, aka lakukan langkah berikut berulang-ulang 8.1 Tp = QA, QA = QB 8. Hitung perkalian QB dengan eleen pertaa pada langkah 6 enggunakan Algorite Negatifkan pada langkah Hitung penjulahan Tp dengan langkah 8.3 enggunakan Algorite Hitung pebagian RA dengan RB enggunakan Algorite RA = RB, RB = eleen kedua pada hasil langkah Hitung perkalian hasil langkah 8.4 dengan RA gunakan Algorite Return( H ) 43 Banyaknya operasi dala Algorite 4.7 elibatkan rata-rata enggunakan n. n operasi. Jadi fungsi kopleksitas waktunya adalah O( n ). Sebagai contoh, isalkan 3 diana polinoial priitifnya disipan dala basis data DatT[ = [, 1 dan diberikan fungsi polinoial t( x) 1 x x yang direpresentasikan enjadi vektor terner yaitu T [1,, 1, Gunakan Algorita 1.4 untuk enegatifkan vektor DatT(), yaitu S = [1,. Selanjutnya, isi vektor RA dengan vektor QA = [0, dan vektor QB =[1, yaitu RA [1,,0,1 dan vektor RB = T yang keudian gunakan Algorite 4.6 untuk enentukan vektor L, yaitu ebagi vektor RA dengan vektor RB, outputnya adalah vektor L = [[1, 1, [0,, isi RA = [1,, 1, RB = [0,, karena RB [0 aka lakukan berulang-ulang sapai RB [0. Isi Tp = [0, QB = [1, gunakan Algorita 1.8 untuk engalikan vektor QB dengan vektor RA, yaitu H = [1, 1. Keudian gunakan Algorite 1.4 untuk enegatifkan vektor H, yaitu R = [,, selanjutnya gunakan Algorite 4. untuk enjulahkan Tp dan R, yaitu QB = [,. Gunakan Algorite 4.6 untuk enentukan vektor L, yaitu ebagi vektor RA dengan vektor RB, outputnya adalah vektor L = [[1,, [, jadi RA = [0, dan RB = [1. Karena RB [0, aka ulangi langkah-langkah sebelunya sapai endapatkan RB [0. Dengan deikian, jika RB [0 aka gunakan Algorite 4.3 untuk enentukan H [, 0, yang dala hal ini vektor H erupakan invers dari vektor T. Jika vektor H [, 0, direpresentasikan ke bentuk polinoial aka polinoialnya adalah h( x) x 4.4 Operasi Pebagian Untuk enghitung operasi pebagian dala penelitian ini dapat dilakukan elalui proses enggunakan Algorite 4.7 untuk enentukan invers vektor B keudian kalikan dengan vektor A enggunkan Algorite 4.5. Algorite 4.8 Deskripsi : Prosedur untuk enghitung pebagian vektor 44 Input : Vektor A [ a1, a,..., a t, vektor B [ b1, b,..., b s dan integer positif. Output : Vektor C A/ B [ c1, c,..., c r 1. Hitung invers vektor B enggunakan Algorite 4.7. Hitung perkalian vektor A dengan langkah 1 enggunakan Algorite Return( C ) Banyaknya operasi dala Algorite 4.8 elibatkan rata-rata enggunakan n. n. n operasi. Jadi fungsi kopleksitas waktunya adalah 3 O( n ). Sebagai contoh, isalkan 3 diana polinoial priitifnya disipan dala basis data DatT[ = [, 1 dan diberikan fungsi polinoial a( x) x x dan b( x) x x. Kedua polinoial tersebut akan direpresentasikan sebagai vektor A [,1, dan vektor B [,,. Untuk enghitung pebagian vektor A [,1, dan vektor B [,,, langkah pertaa adalah enentukan invers dari vektor B dengan enggunakan Algorite 4.7, yaitu ib = [,, 1 keudian engalikan vektor A dengan ib enggunakan Algorite 4.5 sehingga output pebagian vektor A dengan vektor B adalah [, 0, 1. Jika dikebalikan dala bentuk polinoial, aka fungsi polinoialnya adalah C. 4.5 Operasi Exponensial Aritetik dala operasi exponen berfungsi untuk engalikan dua fungsi polinoial atau lebih. Misalkan sebarang fungsi polinoial f ( x) a0 a1x... asx direpresentasikan dala vektor A [ a1, a,..., a s dan barisan basis dua k k0 k1 k i [,,...,, diana i [0,1, serta fungsi polinoial priitif p( x) berderajat. Derajat aksial dari fungsi polinoial di sini berlaku sebagai odulus yaitu (3 1), sedangkan exponennya erupakan barisan basis dua yang diperoleh dari nilai input i yang dioduluskan dengan enggunakan algorite operasi rutin, yaitu Algorite 4.9. s Proses selanjutnya, jika nilai yang dioduluskan (3 1) lebih dari atau saa dengan nol, aka konversi ke dala basis. Jika hasil konversinya saa dengan 1, aka H = A. Untuk hasil konversi ulai dari, aka gunakan Algorite 4.1 untuk enentukan perkalian A dengan A yaitu vektor G dan jika eleen ke-i pada konversi 45 saa dengan 1 aka gunakan Algorite 4.5 untuk enentukan perkalian H dengan G dan jika nilai yang dioduluskan (3 1) adalah negatif aka konversi ke dala basis lalu gunakan Algorite 4.7 untuk enentukan invers A, isi H = [1. Jika eleen pertaa hasl konversi saa dengan 1, aka H = G. Untuk eleen hasil konversi ulai dari, aka gunakan Algorite 4.5 untuk enentukan perkalian G dengan G dan jika eleen ke-i pada hasil konversi saa dengan 1 aka gunakan Algorite 4.5 untuk enentukan perkalian H dengan G. Algorite 4.9 Deskripsi : Prosedur untuk enghitung a od dala rentang negatif Input : Integer positif dan a Output : Integer b 1. Hitung b a od. c / 3. Jika b c, aka 3.1 b = - ( b) 4. Return( b ) Banyaknya operasi dala Algorite 4.9 elibatkan rata-rata n operasi. Jadi fungsi kopleksitas waktunya adalah O( n ). Algorite 4.10 Deskripsi : Prosedur untuk enghitung exponen dala vektor Input : Vektor A [ a1, a,..., a s, integer positif dan i i Output : Vektor H A [ c1, c,..., c r 1. Hitung p 3 1. Hitung k = odulo i, p enggunakan Algorite Jika k 0, aka lakukan 3.1 X = ubah k dala basis 3. Isi G = A, H = [1 3.3 Jika X 1 = 1, aka H = G 3.4 Untuk i ulai dari sapai t, aka lakukan Hitung perkalian vektor G.G enggunakan Algorite Jika X i = 1, aka hitung H = H.G enggunakan Algorite Jika n k, aka lakukan 4.1 X = ubah n dala basis 4. Hitung G = Invers vektor A enggunakan Algorite Jika X 1 = 1, aka H = G 4.4 Untuk i ulai dari sapai t, aka lakukan Hitung perkalian G.G pada langkah 4. gunakan Algorite Jika X i = 1, aka hitung H = H.G gunakan Algorite Return( H ) Banyaknya operasi dala Algorite 4.10 elibatkan rata-rata enggunakan log p. n. n. n operasi. Jadi fungsi kopleksitas waktunya adalah 3 O(log p. n ). Sebagai contoh, isalkan fungsi polinoial f ( x) 1 x x x x x 3 4 6, nilai input i = 5, dan fungsi polinoial priitif ( x) x x x Fungsi polinoial direpresentasikan sebagai vektor terner A [1,, 1,, 1, 0, dan fungsi polinoial priitif direpresentasikan sebagai vektor terner M [1,, 0, dengan derajat aksial 10 yang enunjukkan berada pada field GF 10 (3 ). Dengan enggunakan Algorite 4.9 diperoleh odulus derajat aksial yaitu dan dari input i = 5 diperoleh barisan basis duanya adalah [1, 0, 1 sebagai exponennya. Dengan enggunakan Algorite 4.5, aka diperoleh outputnya adalah H [, 1, 1,,, 0, 1, 0, 0, 1 dan jika output ini dikebalikan ke dala bentuk fungsi polinoial aka h( x) x x x x x x
Similar documents
View more...
Search Related
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks