Translate bab 8 rintania - [DTETI] Departemen Teknik...
Transcript of Translate bab 8 rintania - [DTETI] Departemen Teknik...
MEI 2010
8.0 Penyandian Sumber dan Penyandian Kanal
Karakteristik umum sinyal yang dibangkitkan oleh sumber fisik adalah sinyal
tsb mengandung sejumlah informasi yang secara signifikan berlebihan . Transmisi
dari informasi yang berlebih ini sangat sia-sia untuk sumberdaya komunikasi. Untuk
penggunaan sumberdaya yang efisien, informasi yang berlebihan harus disingkirkan
dari sinyal transmisi utama. Proses ini disebut sebagai penyadian sumber, terdapat
dua skema:
1. Operasi tanpa kehilangan informasi, disebut sebagai data compaction atau
kompresi data tanpa rugi-rugi, dimana data asli dapat direkonstruksi dari data
tersandinya tanpa kehilangan informasi.
2. Operasi dengan hilangnya informas, disebut sebagai kompresi data, dimana
data yang direkonstruksi mungkin memiliki perbedaan dengan data aslinya.
Skema data komprei sering dipergunakan dalam pengolahan sinyal analog
seperti audio dan video , ketika sejumlah derajat tertentu distorsi sinyal
diperbolehkan. Dalam bab ini, untuk penyandian sumber, kami akan focus pada
skema kompresi tanpa kehilangan data dan tidak akan membahas mengenai kompresi
data.
Sebagai contoh, asumsikan bahwa data biner mengandung sejumlah daftar
panjang dari ‘0’ yang berurutan. Pengerim harus mengirim ulang ‘0’ beberapa kali
tanpa penyandian. Efisiensi system seperti ini dapat diperbaiki dengan menggantikan
‘0’ yang berurutan dengan beberapa sandi kata spesifik. Sebagai contoh, jika yang
berurutan ’0’ sebanyak 100, kemudian pengirim mungkin hanya mengirim beberapa
informasi untuk memberitahu penerima bahwa terdapat 100 ‘0’ dalam arus data yang
berikutnya. Agar encoder sumber menjadi efisien, kita memerlukan pengetahuan
statistic mengenai sumber. Jika beberapa symbol sumber dikenali sebagai lebih
mungkin daripada yang lain, sehingga kita dapat menggunakan bentuk ini dalam
pembangkitan sandi sumber. Idenya sangat sederhana, penggunaan kata sandi pendek
untuk symbol sumber yang sering digunakan dan kata sandi panjang untuk symbol
sumber yang jarang digunakan. Skema penyandian seperti ini disebut sebagai sandi
bervariasi-panjang.
Sandi morse merupakan salah satu contoh dari sandi bervariasi-panjang.
Tulisan abjad disandikan ke dalam tanda dan ruang, dinotasikan sebagai titik dan
garis putus-putus, dan sebaliknya. Kita bisa pahami titik-titik dan garis-garis putus ini
sebagai ‘0’ dan ‘1’, seperti yang digunakan dalam system komunikasi digital. Analisa
statistic atas sastradalam bahasa Inggris, menunjukan bahwa tulisan ‘e’ dijumpai
lebih sering daripada tulisan ‘q’. Sehingga, sandi Morse menyandikan tulisan 'e’
menjadi sebuah titik tunggal, kata sandi paling pendek dalam skema, dan
menyandikan ‘q’ menjadi - - -, kata sandi paling panjang dalam skema.
Dalam sebuah system komunikasi praktis, terdapat masalah penting lainnya,
bahwa informasi digital mungkin tidak secara tepat diterima oleh penerima.
Fenomena ini mungkin disebabkan oleh derau atau ketidak-cocokan lain di dalam
kanal komunikasi. Adalah hal penting dalam system komunikasi digital, untuk
menyediakan suatu tingkat kehandalan tertentu. Untuk sebuah kanal yang tidak
handal, pilihan praktis yang tersedia hanya untuk meningkatkan kehandalan adalah
penggunaan penyandian kanal, dibatasi dengan ‘kendali kesalahan penyandian’.
Penyandian kanal menambah kelebihan berdasarkan pada aturan yang telah
ditentukan. Sebagai contoh, kita akan menyandikan bit informasi ‘0’ sebagai bit
tersandi ‘000’ dan ‘1’ sebagai ‘111’, dengan dua bit kelebihan yang ditambahkan
merupakan tiruan dari bit informasi.
Gambar 8.1 menunjukan system komunikasi khas, yang menggunakan kedua
penyandian, penyandian kanal dan penyandian sumber. Sumber diskret
membangkitkan informasi dalam bentuk symbol biner. Kelebihan informasi dari
sumber pertama-tama dihilangkan dengan encoder sumber. Encoder kanal pada
pengirim menerima bit pesan dari encoder sumber dan menambahkan kelebihan
berdasarkan aturan penyandian kanal. Bit tersandi kemudian dipetakan ke symbol
kanal dengan menggunakan sebuah modulator dan mengirimkannya melalui kanal.
Pada ujung penerima, sinyal yang diterima mungkin mengalami pengurangan dengan
derau kanal yang secara umum merupakan kesalahan decoding dari sumber primer.
Sinyal yang diterima kemudian di-demodulasi dengan menggunakan sebuah
demodulator dan kemudian dilewatkan melalui decoder kanal. Dekoder kanal
memanfaatkan kelebihan untuk memperbaiki kesalahan informasi tertentu. Tujuan
dari encoder dan decoder kanal adalah untuk meminimalisir efek dari derau kanal.
Selanjutnya jumlah kesalahan antara masukan encoder kanal dan keluaran decoder
kanal diturunkan. Informasi dari kanal encoder kemudian diumpankan lewat sandi
sumber, dimana sumber diskret asli telah diperbaiki.
Gambar 8.1 Sebuah Model Sistem Komunikasi Digital
Terdapat sejumlah skema penyandian sumber dank anal. Di dalam bab ini,
kita fokuskan pada konsep penyandian dan bahaimana kerja skema penyandian
dengan pengmabilan contoh daripada teori penyandian. Kita akan memperkenalkan
beberapa teknik penyandian sumber, yang paling terkenal sandi Huffman dipilih
sebagai Palu. Selanjutnya kita akan perkenalkzn teknik pemyamdian kanal. Untuk itu,
sandi Hamming dan sandi konvolusional digunakan sebagai contoh.
8.1 Panjang Kata Sandi Rata-rata dari Penyandian Sumber.
Sebuah sumber biner diskrete dari abjad A={0,1} dengan statistic {p0,p1}.
Dengan p0 merupakan probabilitas terjadinya sebuah bit ‘0’ dan probabilitas
terjadinya sebuah bit ‘1’ merupaka p1. Kita asumsikan bahwa symbol dipancarkan
oleh sumber interval sinyalnya berurutan secara statistic independent.
Bit informasi sumber pertama-tama dikelompokkan ke dalam blok dengan
panjang N, hasilnya dalam semua 2Nkemungkinan kata-kata biner yang dinyatakan
sebagai A(N). Sebagai contoh, jika N=2 dan kita memiliki semua kemungkinan kata-
kata biner dari A(2)={00,01,10,11} dengan himpunan statistic { p02, p0p1,p1 p0,
p12}. Kita bisa menuliskan kata-kata biner s0={00}, s1={01}, s2={10}, dan s3={11}.
Sekarang, jika p0≠p1, probabilitas terjadinya element A(2) berbeda. Sebagai contoh,
jika p0= ¾, p1= ¼, selanjutnya kita peroleh statistic { 9/16, 3/16, 3/16, 1/16 }. Untuk
penyandian bervasiasi-panjang sumber, kita bisa rancang sebuah himpunan kata sandi
dengan panjang yang berbeda untuk menyatakan elemen dari A(2). Tiga kemungkinan
sandi symbol disajikan dalam table 8-1.
Proses encoding secara sederhana menugaskan sebuah sandi kata unik untuk
masing-masing elemen A(N) yang diubah menjadi sebuah string ‘0’ dan ‘1’. Kita
asumsikan bahwa sumber memiliki sebuah abjad dengan perbedaan symbol K=2N,
dan symbol ke-k sk terjadi dengan probabilitas pk. Kata sandi biner yang diperuntukan
untuk symbol sk oleh encoder memiliki panjang lk, diukur dalam bit. Selanjutnya
dalam table 8-1, symbol-simbol 00,01,10, dan 11, dengan probabilitas masing-masing
9/16, 3/16, 3/16, dan 1/16. Panjang masing-masing symbol =2. Panjang kata sandi
rata-rata dari encoder sumber adalah didefinisikan sebagai berikut:
(8-1)
Parameter merepresentasikan jumlah bit per simbol sumber rata-rata yang
digunakan dalam proses encoding sumber. Kita bisa juga mendifinisikan panjang
rata-rata per bit informasi adalah sebagai berikut:
(8-2)
Tabel 8-1 Ilustrasi tiga sandi sumber
Sebagai contoh, dari table 8-1, jika tidak ada penyandian sumber, digit dari sumber
secara langsung ditransmisikan tanpa proses apapun. Dalam hal ini, panjang sandi
sandi rata-rata adalah sebagai berikut:
Panjang bit informasi rata-rata dapat dihitung sebagai berikut:
Sekarang asumsikan penyandian sumber digunakan. Sebagai contoh, kita
asumsikan bahwa sandi III dalam table 8-1 digunakan. Sandi 8-1 menyandikan kata
sandi dengan pemetaan sebagai berikut:
Hal ini akan memberikan keluaran ‘0’ jika berhadapan dengan digit sumber
‘00’ dan keluaran ‘10’ jika menghadapi digit sumber ‘01’ dan seterusnya. Sebagai
contoh, jika bit sumber asli adalah ‘001011010000’, maka encoder mengambil tiap
dua bit sebagai sebuah grup dan memetakannya ke kata sandi yang bersesuaian
sehingga menghasilkan rangkaian’01101111000’
Panjang kode sandi rata-rata dari sandi III dapat dihitung sebagai berikut
Hasilnya menunjukkan bahwa jika sandi III digunakan, maka panjang kata sandi rata-
rata dapat dikurangi dari 2 menjadi 1,6875, sehingga kita bisa menggunakan bit
tersandi yang lebih sedikit untuk merepresentasikan bit informasi asli. Panjang rata-
rata per bit informasi untuk sandi III dapat dihitung sebagai berikut:
8.7 Sandi Konvolusional
Seperti yang dituliskan pada sub bab 8.4, sandi konvolusional berbeda
dengan sandi blok yang di dalam encodernya dilengkapi memory. Pada satuan waktu
kapan pun yang diberikan, encoder menerima k bit informasi dan mengeluarkan n bit
tersandi. N sandi tersandi pada satuan waktu kapanpun yang diberikan tergantung
tidak hanya pada k masukan saat itu tetapi juga tergantung pada m masukan
sebelumnya. Kita akan menunjukan sandi konvolusional sebagai sandi konvolusional
(n,k,m).
Sebuah contoh sederhana dari sandi konvolusional disajikan dalam gambar 8-
10. Rangkaian informasi masukan merupakan satu bit pada waktu kapan pun dan
ditunjukkan dengan ui pada waktu berindex i. Terdapat dua bit keluaran tersandi pada
waktu kapan pun. Bit tersandi ditunjukkan dengan vi(1) dan vi
(2). Dua elemen memory
yang digunakan dalam encoder untuk menyimpan bit informasi sebelumnya ui-1 dan
ui-2. Bit tersandi vi(1) dan vi
(2)merupakan fungsi dari ui, ui-1 dan ui-2 dan dinyatakan
sebagai berikut:
(8-12)
dimana notasi menunjukan operator logika eksklusif OR (XOR). Karena encoder
merupakan sebuah rangkaian sekuensial maka merupakan mesin keadaan berhingga (
FSM=Finite State Machine ). Dari sini perilakunya dapat ditebak dengan
menggunakan diagram keadaan.
Gambar 8-10 Encoder Konvolusional (2,1,2 )
Difinisikan keadaan encoder pada waktu I sebagai (ui-1, ui-2 ), yang terdiri dari
dua bit pesan yang disimpan dalam register geser. Terdapat 2m = 22 = 4 kemungkinan
keadaan. Pada waktu kapan pun, encoder harus berada dalam satu dari tiga keadaan.
Encoder mengalami keadaan transisi ketika bit pesan digeser ke dalam register.
Masukan ui dapat menyebabkan keadaan transisi dari (ui-1, ui-2 )ke (ui, ui-1 ).
Keluaran vi(1) dan vi
(2) dapat dengan mudah dimengerti sebagai sebuah fungsi dari
keadaan saat ini (ui-1, ui-2 )dan masukan ui. Masing-masing keadaan disajikan dalam
sebuah vertex atau titik pada suatu bidang. Transisi dari keadaan satu ke keadaan
lainnya disajikan dalm sebuah garis berarah.
Gambar 8-11 menunjukan FSM sebuah encoder. MAsing-masing cabang
diberi label dengan sebuah notasi masukan/keluaran ui/ vi(1) vi
(2). Sebagai contoh,
label 1/01 menyatakan bahwa informasi masukan adalah ui=1, dan keluarannya
vi(1) vi
(2)=01.
Gambar 8-11 Diagram Transisi Keadaan dari Sebuah Sandi Konvolusional ( 2, 1, 2 )
Diagram transisi keadaan dapat juga dijabarkan dengan sebuah pohon sandi, seperti
yang disajikan dalam gambar 8-12 untuk sebuah masukan stringdari tiga bit.
Dalam pohon ini, masing-masing bit di atas tepi merupakan bit input dan dua
bit di bawah tepi merupakan bit-bit keluaran. Catatan bit keluaran tidak berhubungan
dengan bit masukan secara tepat, hal ini merupakan karakteristik khusus dari sandi
konvolusional.
Gambar 8-12 Pohon Sandi untuk Sandi Konvolusional
Dalam aplikasi praktis, panjang bit informasi adalah berhingga. Panjang bit
informasi dinyatakan dengan L. Maka (u1, u2, …., uL) menjadi bit informasi. Keadaan
awal dari encoder seharusnya dibuat tetap menjadi (ui-1, ui-2 )=(0,0). Untuk tampilan
yang lebih baik, keadaan final dari encoder juga harus dibuat nol. Oleh karena itu,
pada ujung masing-masing rangkaian informasi, m zero ( nol )harus ditambahkan
untuk menggeser keluar register sehingga keadaan final dapat diakhiri pada keadaan
zero. Pada contoh ini, karena m=2, dua zero diperlukan untuk ditambahkan pada
ujung rangkaian informasi, menghasilkan rangkaian informasi yang ditambahi zero
(u1, u2, …., uL, 0). Rangkaian tertambahi zero kemudian dimasukkan ke encoder
konvolusional. Keluaran encoder konvolusional dapat dinyatakan sebagai:
Kita dapat nyatakan rangkaian tersebut dengan vector berikut ini:
Untuk aplikasi umum, L sangat besar jika dibandingkan dengan m, jika overhead
dari kelimpahan ditambahan pada ujung rangkaian tersandi tidaklah signifikan.
Kita ambil contoh sederhana, dengan L= 5, maka (u1, u2, u3, u4, u5) =
( 1,0,1,1,1 ). Rangakaian tertambahi zero menjadi (u1, u2, u3, u4, u5, 0, 0) =
( 1,0,1,1,1,0,0 ). Dari persamaan (8-12) atau dari gambar 8-11 dengan keadaan awal
(0,0), kita dapatkan rangkaian tersandi sebagai (1,1,0,1,0,0,1,0,0,1,1,0,1,1).
Selanjutnya kita anggap bahwa kita akan mengirimkan dua bit, sebut aja 00,
01, 10, dan 11. Karena kita telah tetapkan bahwa kita harus kembali ke keadaan
sebelumnya yaitu keadaaan awal, kita tambahkan 00 ke masing-masing string
masukan. Sehingga, string masukan menjadi 0000, 0100, 1000, dan 1100. String
masukan dan kata sandi yang bersesuaian sebagai berikut:
Bayangkan jika kita menerima 000110111, kita dapat dengan mudah menemukan
kata tersandi dan tidak ada kesalahan. Andai kata kita menerima 00111111, kita dapat
menentukan bahwa kata sandi terdekat dengan kata yang diterima adalah 00110111
dan kita selanjutnya masih dapat menyimpulkan bahwa bit string yang dikirim adalah
0100.
Setiap kata sandi dari sebuah sandi konvolusi dapat disajikan sebagai sebuah
tapak berarah di dalam diagram transisi keadaan dan tapak berarah manapun dari
panjang L merupakan kata sandi. Keadaan awal dari tapak seharusnya dibuat
keadaan zero, dan keadaan final seharusnya juga dibuat keadaan zero. Diagram
transisi keadaan sangat bermanfaat untuk menentukan unjukkerja dari sandi
konvolusional.
Unjuk kerja sandi konvolusional dinyatakan dengan jarak sandi konvolusional
Hamming. Ukuran jarak yang paling penting untuk sandi konvolusional adalah jarak
minimum bebas yang dinyatakan sebagai dfree. Jika panjang bit L dibuat tetap, kita
bisa melihat sandi konvolusional sebagai sebuah sandi block dengan bit masukan kL
dan bit keluaran n(L+m). CL menjadi himpunann semua kemungkinan kode sandi
informasi dengan panjang L. Jarak bebas untuk CL :
(8-13)
Dimana H( v1, v2 ) merupakan jarak Hamming antar v1 dan v2. Bobot
Hamming dinotasikan sebagai sebuah vector dengan W(v) yang menyajikan sejumlah
elemen non-zero dari v. Sehingga kita dapat menunjukan bahwa
Sebagai contoh tentukan v1 = (1,0,1,1) dan v2=(0,1,1,0).
Dengan jelas terlihat bahwa H( v1, v2 )=3. Sekarang tentukan v=v1 v2=(1,1,0,1),
kita juga memiliki W(v1 v2)=W(v)=3.
Sandi konvolusional memiliki properti tersebut, jika v1 dan v2 semestinya CL,
vector v=v1 v2 juga semestinya CL, sehingga sandi konvolusional linear sesuai
aturan dalam XOR. Oleh karena itu, jarak bebas dapat disederhanakan menjadi:
(8-14)
Persamaan di atas mengindikasikan bahwa jarak bebas sandi konvolusional
merupakan bobot minimum dari kata sandi nonzero. Bobot minimum dari kata sandi
nonzero dapat ditentukan dari diagram transisi keadaan, kita bisa mencari bobot
minimum kata sandi nonzero merupakan tapak dari keadaan (00) ke (10), (01) dan
kembali ke keadaan (00). Bobot dari kata sandi yang bersesuaian adalah 2+1+2=5.
Oleh karena itu, jarak bebas dari sandi konvolusional = 5.
Gambar 8-13 Sebuah Diagram Transisi Keadaan dengan Pelabelan Bobot
Proses Dekoding
Bayangkan bahwa penerima menerima rangkaian bit y= 111110. Tugas dari
proses decoding adalah menentukan rangkaian bit terkirim yang harus memiliki
panjang=3, dalam kasus ini. Untuk mengilustrasikan proses, mari kita pertama-tama
menampilkan proses encoding secara keseluruhan untuk sebuah string masukan dari
tiga bit seperti pada gambag 8-14.
Gambar 8-14 Sebuah Pohon Ilustrasi Proses Penyandian yang Melibatkan Sebuah
Rangkaian Masukan 3-bit
Seperti yang terlihat, terdapat 23=8 rangkaian kemungkinan; dan untuk
masing-masing rangkaian xi bersesuaian dengan rangkaian tersandi yi seperti yang
diperlihatkan. Bit di atas masing2 tepi merupakan bit masukan dan dua bit
dibawahnyamerupakan bit output yang bersesuaian. Catatan bahwa keluaran bukan
merupakan fungsi dari masukan, hanya sebagai sandi konvolusi yang memiliki
memori.
Untuk menentukan rangkaian masukan asli, kita bisa mencari secara
mendalam dari semua ats kedelapan rangkaian keluaran dan konsekuensinya
menentukan jarak antara y7=111010 dan y=111110 adalah 1 merupakan yang
terkecil. Sehingga kita simpulkan bahwa rangkaian masukan adalah 110. Hal ini
harus dibuat jelas bahwa tidak ada error selama rangkaian bit ditransmisikan.
Untuk masing-masing rangkaian yang diterima, kita mungkin mengubah
pohon pada gambar 8-14 menjadi pohon lain yang sesuai dengan rangkaian ini.
Contoh seperti yang ditampilkan pada gambar 8-15. Pada Masing-masing tepi dari
pohon pembeda pada gambar 8-15, kita sesuaikan dengan harga yang berbeda antara
dua bit yang diterima dan dua bit yang disandikan. Sebagai contoh, dengan tepi v01
v11 adalah 2. Di pihak lain, untuk tepi v01 v12, bit tersandinya adalah 11 dan bit yang
diterima juga 11. Konsekuensinya, harga dari tepi v01 v12adalah 0.
Gambar 8-15 Pohon pembeda untuk Rangkaian Bit yang Diterima y=111110
Dengan membangun sebuag pohon yang berbeda, masalah decoding menjadi
penemuan tapak/ jalur terpendek dari akar v01 untuk titik daun dari pohon. Pada kasus
ini, jalur terpendek merupakan adalah v01 v12 v24 v37 yang memiliki total 0+1+0=`
yang merupakan jalur terpendek diantara semua harga jalur. Sekali lagi, jalur
terpendek ini berseuaian dengan rangkaian masukan 110 yang sesuai.
Pendekatan ini untuk men-dekode rangkaian yang diterima secara lansung dan
mudah untuk diimplementasikan, hal ini menghadapi masalah yang serius yaitu
jumlah titik daun akan meningkat eksponensial dengan panjang rangkaian masukan.
Sebagai contoh, jika rangkaian masukan terdiri dari 4 bit, pohon yang berseuaian
akan memiliki 16 titik daun. Secara umum, jika panjang rangkaian masukan adalah k,
maka akan terdapat 2k titik daun dan 2k jalur untuk menemukannya. Ketika sandi
konvolusional kita tidak menempatkan sebuah batasan pada panjang rangkaian
masukan, pendekatan semacam ini tidaklah praktis.
Dapatkah kita mencegah sebuah peningkatan eksponensial akan pencarian
mendalam? Ya, kita dapat mencegahnya. Mari kita pertama-tama mengeksploitasi
penandaan keadaan. Lihat kembali gambar 8-11. Dalam gambar tersebut, kita dapat
melihat bahwa terdapat empat keadaan yaitu : (00),(01),(10), dan (11). Untuk
kenyamanan, mari kita kasih label sebagai a=(00), b=(11), c=(01) dan d=(10).
Kemudian kita gambar ulang gambar 8-15 sehingga diperoleh gambar 8-16, fakta
bahwa hanya terdapat empat keadaan yang berbeda. Tandai bahwa jalur pada gambar
8-16 adalah bukan lagi merupakan sebuah pohon, suatu karakteristik yang kita
seharusnya gunakan untuk men-dekode pesan yang diterima. Kita dengan mudah
menyebutnya sebagai sebuah jalur multi-tingkatan yang berbeda.
Gambar 8-16 Sebuah Jalur Multi-Tingkatan untuk Rangkaian Masukan
y=111110
Marilah kita pertimbangkan titik c3. Terdapat dua jalur yang berakhir pada
titik ini, disebut sebagai a0a1b2c3 dan a0b1d2c3. Harga untuk a0a1b2c3= 2+0+2=4 dan
untuk yang a0b1d2c3= 0+1+0=1. Kemudian kita bisa mengabaikan jalur a0b1d2c3
karena tidak masalah jika yang berikutnya dari sini, kita tidak pernah menggunakan
jalur ini. Catat bahwa kedua jalur a0a1a2b3 dan a0b1c2b3 dibatasi oleh b3. Dengan alas
an yang sama, kita bisa mengabaikan jalur a0a1a2b3karena harga jalur ini =2+2+1=5
yang lebih besar daripada harga jalur a0b1c2b3 yang memiliki harga =0+1+1=2.
Berdasarkan pada diskusi di atas, kita bisa menggambarkan ulang gambar 8-16
sebagai pohon pembeda yang disederhanakan seperti pada gambar 8-17, jalur yang
dapat diabaikan saat ini telah diabaikan.
Catat bahwa hanya terdapat empat titik daun di dalam pohon pembeda seperti
pada gambar 8-17. Kita dapat dengan mudah melihat dari sana, dengan menggunakan
alas an yang sama, kita bisa selalu mengurangi jalur pembeda ke dalam pohon
pembeda dengan hanya meninggalkan empat titik daun. Gambar 8-18 menunjukkan
kasus dengan memperluas pohon dengan tingkatan yang lain. Pembaca dengan
mudah melihat bahwa terdapat dua jalur pembatas yang disebut sebagai b4 dan salah
satu diantara mereka diabaikan.
Gambar 8-17 Jalur Pembeda dalam Gambar 8-16 Disederhanakan dengan
Mengabaikan Beberapa Jalur
Penjelasn di atas merupakan prinsip yang digunakan dalam algoritma Viterbi
untuk men-dekode sandi konvolusional. Sebenarnya, hal ini merupakan strategi
pengembangan pemrograman, yaitu merupakan sebuah strategi yang secara umum
digunakan untuk perancangan algoritma. BAnyak algoritma yang didasarkan pada
pendekatan ini. Kita seharusnya tidak menguraikan pemrograman dinamis dalam
buku ini. Pembaca bisa secara tersamar memahami prinsipnya sebagai berikut:
andaikata kita ingin mencari jalur terpendek dari s ke t. Andaikata terdapat dua titik,
katakanlah x dan y, pergi ke y dan kemudian ke t . Terdapat jalur berbeda dari s ke x
dan jalur berbeda antara s dan y. Kita tidak tahu dalam solusi final, titik mana yang
seharusnya digunakan. Pemrograman dinamis mengajari kita bahwa tidak masalah
apakah x merupakan solusi final atau bukan, kita seharusnya hanya
mempertimbangkan jalur terpendek dari s ke x dan mengabaikan semua jalur dari s ke
x. Argumen yang sama digunakan untuk s ke y.
Gambar 8-18 Pohon dalam Gambar 8-17 Diperluas dengan Tingkatan yang Lain