Teorya ng kodigo

Teorya ng kodigo () ang pag-aaral sa mga katangian ng kodigo at ang silbi nito sa ilang partikular na mga gawain. Ginagamit ang mga kodigo sa pagpapaliit ng datos, kriptograpiya, pagtukoy at pagtama sa error, pagpapadala ng datos, at pagtatabi ng datos. Pinag-aaralan sa maraming magkakaugnay na larangan ang mga kodigo, tulad halimbawa sa teorya ng impormasyon, inhinyerang elektrikal, matematika, lingwistika, at agham pangkompyuter, upang makadisenyo ng mga mas magaganda, mabibilis, at maaasahang paraan sa pagpapadala ng datos. Kadalasan, nagagawa ito sa pamamagitan ng pagtatanggal sa mga paulit-ulit o hindi kailangan na mga datos at pagtatama at pagtutukoy sa mga error sa naipadalang datos.


Nahahati sa apat ang pagkokodigo: pagpapaliit ng datos (o pagkokodigo sa pinagmulan), pagkontrol sa error (o pagkokodigo sa daanan), kriptograpiya, at pagkokodigo sa linya. Layunin ng pagpapaliit ng datos na matanggal ang mga hindi kailangan o paulit-ulit na mga datos mula sa pinagmulan upang mabilis itong maipadala sa patutunguhan nito. Halimbawa, pinapaliit ng algoritmong ZIP ang mga file upang maipadala ito sa internet nang mabilis. Samantala, layunin naman ng pagtatama sa error na magamit ang mga paulit-ulit na datos upang masiguro ang mas matibay at di magagambalang pagdaan ng datos sa isang daanan. Halimbawa, ginagamit sa mga compact disc ang kodigong Reed-Solomon upang maitama ang mga nawalang o nagulong datos mula sa pagkiskis o dumi.

 Kasaysayan 


Si Claude Shannon ang itinuturing na nagpasimula sa teorya ng kodigo nang inilathala niya noong 1948 ang "A Mathematical Theory of Information" sa dalawang magkahiwalay na bahagi sa isyu ng Hulyo at Oktubre ng Bell System Technical Journal. Dito niya inilatag ang mga ideya niya patungkol sa pinakamagandang paraan para maisakodigo ang impormasyon na gustong ipadala. Dinebelop ni Shannon ang entropiya ng impormasyon bilang panukat sa pagiging  hindi tiyak ng isang mensahe, na nagbigay-daan naman sa pagkabuo sa larangan ng teorya ng impormasyon.

Noong 1949, nadebelop ni Marcel Golay ang dalawahang kodigong Golay, isang kodigong pangtama ng error na kayang itama ang hanggang tatlong error sa bawat 24-bit na word, gayundin ang pagtukoy sa pang-apat.

Nanalo naman si Richard Hamming ng Gawad Turing noong 1968 para sa mga ginawa niya sa Bell Labs tulad ng mga paraang numerikal, mga awtomatikong sistemang pangkodigo, at mga kodigo sa pagtukoy at pagtama sa mga error.

Noong 1972, iminungkahi ni Nasir Ahmed ang konsepto ng discrete cosine transform (DCT), na kalauna'y ginawa niya rin noong 1973 kasama ang kanyang mga doktoral na estudyante at ang kaibigang niyang K.R. Rao sa Pamantasan ng Texas sa Arlington.  Ito ang pinakaginagamit na algoritmo para sa pagpapaliit na lossy, at ang basehan para sa mga format tulad ng JPEG.

 Disiplina 
 Pagpapaliit ng datos 


Isa sa apat na disiplinang pinag-aaralan sa ilalim ng teorya ng kodigo ang pagpapaliit ng datos () o pagkokodigo sa pinagmulan (). Layunin nito na paliitin ang inookupang datos ng isang bagay; halimbawa ay ang pagpapaliit sa mga masyadong malilinaw na larawan sa mga kompyuter upang makatipid ng espasyo. Nagiging posible ito dahil sa mga algoritmong naghahanap ng mga pwedeng tanggalin na mga nauulit na datos. May dalawang paraan ang pwedeng gawin para dito: lossless () at lossy ().

 Pagtukoy at pagtama sa error 


Layunin ng pagtukoy at pagtama sa error (, EDAC), o pagkokodigo sa daanan (), na masiguro na maipapadala ang impormasyon mula sa nagpadala nito papunta sa pinadalhan nito nang kumpleto at maayos. Ginagamit ito sa pagpapadala ng datos, tulad halimbawa ng sa internet. Hindi maasahan salahat ng pagkakataon ang mga daanan ng impormasyon, kaya naman ginawa ang ilang mga algoritmo para rito, tulad halimbawa ng kodigong Hamming at Reed-Solomon. Inuulit ng mga algoritmo angnilang bahagi ng impormasyon upang masiguro na makakarating ito sa papadalhan kahit na magkaproblema ito sa daan. Halimbawa, ginagamit sa mga CD ang kodigong Reed-Solomon upang ayusin ang mga datos na nawala o nasira dahil sa mga pagkiskis.

 Kriptograpiya 

250px|thumb|Ang enkripsiyong pampublikong susi (), isa sa mga pinakamadalas gamiting enkripsiyon sa internet. Si Alice ang nagpapadala, samantalang si Bob ang pinapadalhan. 

Kriptograpiya ang pag-aaral sa mga paraan upang maitago ang isang impormasyon at masiguro ang seguridad ng komunikasyon sa pagitan ng nagpapadala at pinapadalhan nito. Bagamat matagal na ang pag-aaral na ito, ginagamit na ngayon sa modernong kriptograpiya ang mga kompyuter upang gawin ang mga paraang hindi makokompyut nang mano-mano ng sinumang tao. Nakasalalay ang mga paraang ito sa ideya ng pagpapalagay sa kahirapang makompyut. Gayunpaman, hindi nito ginagarantiya na hindi ito mabubuksan. Dahil sa pagbilis ng pag-abante ng teknolohiya tulad ng mga superkompyuter, kinakailangan pa ring ma-update ang mga paraang ito upang manatiling hindi ito makokompyut nang maayos at mabilis.

 Kodigong linya 


Kodigong linya () ang tawag sa boltahe, daloy, o mga photon na ginagamit para kumatawan sa ipinapadalang digital na datos sa isang daanan ng komunikasyon o di kaya'y isinusulat sa isang taguan ng datos. Ginagawa nitong digital na signal ang mga datos na nasa anyong dalawahan () upang makadaan ito sa mga linya ng pagpapadala, tulad halimbawa ng mga broadband.

 Tingnan din 
 Kodigo
 Agham pangkompyuter
 Telekomunikasyon

 Talababa 

 Sanggunian