dituliskan v = v
m,
v
c
dimana v
m
vektor pesan dengan wt v
m
= i dan v
c
vektor
cek dengan wt vc = j, maka berlaku
i + j d j d - i
wt v
c
d – i i dan
Hv
T
= 0
T
B
T
| I
r
= 0
T
B
T
+ I
r
= 0
T
B
T
= ii
Karena wtv
m
= i, dan berdasarkan syarat 2 dari konstruksi B, maka wtB
T
d – i. iii Dari ekspresi i, ii, dan iii menunjukkan suatu kontradiksi sehingga dapat
disimpulkan bahwa C berbobot minimum d atau dengan kata lain C memiliki
jarak minimum d.
Dengan demikian, mengkonstruksi kode C[k+r, k, d] berdasarkan teorema 3.3.1 berarti mengkonstruksi matriks generato y
rn a, G =
|
cukup dengan mengkonstruksi matriks B berukuran k
r yang memenuhi sifat-
sifat: semua vektor baris dari B berbeda dan jumlah setiap i vektor baris dari B
berbobot paling sedikit d – i, untuk i =1, 2, …, s dimana s = min{d – 1, k} dan d – 1
r. Begitu
kode linear
C [ n, k, d ] telah terkonstruksi, langkah berikutnya adalah mendefinisikan himpunan V yang beranggotakan semua vektor baris dari
B dan semua vektor sebagai hasil jumlah i vektor baris dari B untuk i = 2,3,…s
dimana s = min {d-1, k}. Maka jelaslah bahwa V
.
Jika V ≠
,
maka ada vektor
dan x yang bisa ditambahkan ke baris matriks B untuk
mendefinisikan matriks
yang berukuran k+1 r dan matriks cek paritas H’ =
T
| akan mendefinisikan kode dengan parameter [n+1, k+1 , d]. Pada
penelitian ini strategi konstruksi kode [n +1, k + 1, d] memenuhi teorema Gilbert- Varshamov bound.
Proses ekstensi kode dari [n, k , d] ke [ n+1, k+1, d ] dilakukan tahap
demi tahap sampai diperoleh suatu kode C dengan parameter [ n’ , k’ ,d ] yang
sudah tidak bisa diperluas lagi. Ketika diperoleh informasi bahwa telah dibuktikan bahwa kode dengan parameter [ n
+1, k +1, d ] tidak ada, maka C merupakan
kode optimal kuat yang telah berhasil dikonstruksi. Akan tetapi, ketika diperoleh
informasi bahwa ada kode dengan parameter [ n +1, k
+1, d ], berarti kode optimal kuat gagal dikonstruksi. Dalam hal ini, harus dilakukan rekonstruksi
dengan strategi memilih kode dasar [n , k , d ] lain yang berpeluang besar dapat
diperluas menjadi kode optimal kuat C. Pemilihan kode dasar yang baik
memerlukan eksplorasi yang baik yang bersifat teoritik maupun komputatif.
Selanjutnya keberhasilan konstruksi kode optimal kuat C dapat digunakan sebagai
kode dasar untuk diperluas menjadi kode kode optimal kuat berikutnya dengan
strategi yang sama. Algoritme konstruksi kode ini juga berlaku untuk kode linear biner
berjarak minimum bilangan genap berdasarkan sifat dari kode linear yang menyatakan bahwa jika kode dengan parameter [n, k, d] ada untuk d ganjil, maka
dapat dikonstruksi kode dengan parameter [ n + 1, k, d + 1] dan setiap anggotanya berbobot genap Williams Sloane 1981.
Keberhasilan konstruksi kode optimal kuat sangat dipengaruhi oleh metode komputasi yang digunakan. Berikut ini dideskripsikan pembangunan
metode komputasi yang digunakan dalam penelitian ini. 1
Membangun fungsi-fungsi aljabar matriks biner. Hal pertama yang
dilakukan adalah mempresentasikan ruang vektor biner sebagai
himpunan kuasa dari S
n
= { 0, 1, 2, …,n-1 }. Ini berarti sembarang vektor biner dengan panjang n secara komputasi merupakan subhimpunan dari
. Operasi jumlah dua vektor berarti selisih simetrik dua himpunan. Produk dalam dua vektor berarti irisan dua himpunan.
adalah keluarga semua himpunan dari subhimpunan S merupakan grup terhadap selisih
simetrik. Jika S ={0, 1, 2, 3} maka . {0, 2} isomorfik dengan 1,
0, 1, 0, { } isomorfik dengan 0, 0, 0 dan {0, 1, 2, 3} isomrfik dengan 1,
1, 1.Dengan demikian, matriks biner A berordo n x p dapat dipandang
sebagai list dari sebanyak p subhimpunan dari S
n.
. Matriks A = 1
1 1 dapat dinyatakan dengan A =[3, [{0, 2}, {2}]]. Dari dua konsep
dasar ini kemudian dibangun fungsi dasar aljabar matriks, seperti:
jumlah, kali, transpose, operasi baris dasar, pencarian matriks kanonik dan lainnya. Implementasinya menggunakan software MAPLE.
2. Membangun prosedur untuk pelacakan kode optimal. Didefinisikan
matriks generator
G = I
k
| B , misalkan M matriks representasi vektor baris dari B. Kemudian didefinisikan fungsi berikut:
KombinM menentukan list semua kombinasi j vektor dari vektor-vektor M
representasi baris untuk suatu nilai j = 1,2,…, k. ListKombM menentukan list
dari semua list KombinM untuk semua j = 1,2,3,…,t degan t = min {k, d-1
}.
UjiAdd1VekM menguji apakah vektor X bisa ditambahkan ke M,
menggunakan ListkombM. Misal sudah ada matriks M = 1
1 1 1 1 1
maka didapat list semua kombinasi j vektor L = {1 0 0, 1 1 0, 1 1 1}, {0 1 0, 0 1
1,0 0 1},{1 0 1}. Kemudian diuji apakah satu vektor X bisa ditambahkan ke M Jika hamming distance d – 1 – i.maka tidak terpenuhi. Jika selain itu
berarti vektor X bisa ditambahkan ke matriks
Lacak1VekM melacak satu vektor baris X
dalam yang bisa ditambahkan ke
M berdasarkan Gilbert-Varshamov, menggunakan UjiAdd1VekM. Ilustrasi ada
matriks B = 1
1 1
1 1 1 1 1 1
1 kemudian dicatat berapa banyak angka 1 dan
berapa angka 0. Misalkan V baris ke-1, banyak angka 1 = v dan W baris ke-2. Cari vektor-vektor X yang berjarak j= d – 2 sampai batas yang ditentukan. Tanpa
mengurangi keumuman maka V diset yang rapi. Jika v + j – 2 i d – 1 maka ambil anggota V sebanyak v – i, dan ambil anggota W sebanyak j – 1. Maka
gabungan dari anggota V dan W yang telah dipilih akan didapat vektor X.
Kolek1VekM menentukan himpunan semua vektor baris X yang bisa
ditambahkan ke M, menggunakan UjiAdd1VekM. Untuk Kolek1VekM cara kerjanya hamper sama dengan UjiAdd1VekM kalau sudah dapat satu vektor
selesai, tetapi Kolek1VekM mencari semua kemungkinan dan menghimpunnya.
ReduEki1 membuang anggota out put Kolek1VekM dan menyisakan vektor-
vektor yang menghasilkan matriks-matriks yang tidak saling ekivalen jika
ditambahkan ke M. Misalkan H adalah out put Kolek1VekM, setiap pasangan vektor X, Y anggota H akan menghasilkan vektor Z = X+Y. Agar dua vektor X
dan Y bisa ditambahkan langsung ke matriks M, maka Z diuji dengan prosedur UjiAdd2VekM
berdasarkan out put ListkombM. Kolek2VekM menentukan semua pasang X, Y dalam yang bisa ditambahkan ke M berdasarkan teorema 4,
menggunakan UjiAdd2VekM. Kolek2VekMDt menentukan semua pasang X, Y
menggunakan data hasil sebelumnya. ReduEkiX membuang anggota out put Kolek2vekM
dan menyisakan vektor-vektor yang menghasilkan matriks-matriks
tidak saling ekivalen jika ditambahkan ke matriks M. Misalkan H adalah out put Kolek2VekM
, setiap pasangan vektor X, Y,Z anggota H akan menghasilkan vektor W = X + Y + Z agar tiga vektor X, Y dan Z bisa ditambahkan langsung ke
matriks M maka diuji dengan uji AddVek3M berdasarkan out put ListKombM. Selanjutnya secara induksi agar X vektor bisa ditambahkan langsung ke M, maka
diuji dengan prosedur UjiAddXVekM menggunakan out put KolekX-1VekM dan berdasarkan out put ListKombM. Program lengkapnya dapat dilihat pada
Lampiran 2. 3.
Konstruksi kode optimal kuat dengan jarak minimum d = 5 dan d = 7
Mengkonstruksi matriks cek paritas dalam hal ini matriks B dan
melakukan perluasan terhadap matriks tersebut. Bagaimana proses lengkapnya akan dijelaskan pada sub bab hasil eksplorasi.
3.4 Hasil Eksplorasi .
Berikut ini akan diilustrasikan konstruksi kode optimal kuat untuk kasus d =5 dan d= 7.
Untuk kasus double error correcting d = 5 , berdasarkan tabel Brouwer kode-kode optimal kuat mempunyai parameter terurut dari dimensi rendah:
[8, 2, 5], [11, 4, 5], [17, 9, 5], [23, 14, 5], [31, 21, 5] dan [33, 23, 5], sedangkan kode optimal kuat untuk k 23 merupakan open problem. Akan dijelaskan
bagaimana metode dan strategi diatas diterapkan untuk mengkonstruksi kode-
kode tersebut. Dimulai dari kode [8, 2, 5], dikonstruksi dengan mendefinisikan
matriks B berukuran 2
6 berikut
B = 1 1 1 1
1 1 1 1 .
Matriks ini kemudian dipakai sebagai matriks dasar untuk diperluas menjadi matriks
′
berordo 4 7 yang mendefinisikan kode optimal kuat [11, 4, 5]. Proses
perluasan dari B ke
′
dilakukan dengan menambah satu kolom nol pada B,
dilanjutkan menambah dua vektor 7 bit yang memenuhi syarat strategi. Tanpa memperhatikan relasi ekivalensi, hasil eksplorasi komputatif menunjukkan ada
108 macam
′
, salah satunya
= 1 1 1 1
1 1 1 1
1 1
1 1
1 1
1 1 Dengan langkah yang sama
diperluas ke berordo 9 8 yang
mendefinisikan kode optimal kuat [17, 9, 5]. Tanpa memperhatikan relasi ekivalensi, hasil eksplorasi komputatif menunjukkan ada 144 macam
, salah satunya
= 1 1 1 1
1 1 1 1
1 1
1 1
1 1
1 1 1 1
1 1 1 1 1
1 1
1 1 1 1
1 1 1 1
1 1 1 1 1 1 1
Percobaan untuk memperluas ke
untuk mendapatkan kode optimal kuat [23, 14, 5] adalah gagal. Dalam hal ini
hanya mampu diperluas ke lebih dari 872 kode optimal-D [22, 13, 5]. Namun demikian, strategi rekonstruksi
berhasil mendefinisikan 3 kode optimal kuat [23, 14, 5] yang salah satunya direpresentasikan oleh matriks
berordo 14 9 berikut