• Minggu, 29 Mei 2011

      Huffman Coding

      Pada tahun 1951, David A. Huffman dalam kelas Informasi Teori di MIT diberikan pilihan untuk
      membuat sebuah term paper atau mengikuti ujian akhir. Pada saat itu pilihan term paper yang diberikan
      profesor Robert M. Fano adalah tentang menemukan kode biner yang paling efisien. Tidak dapat membuktikan kode apapun yang paling efisien, Huffman hampir menyerah dan mulai belajar untuk
      mengikuti ujian akhir saja, ketika ia menemukan ide untuk menggunakan pohon biner dengan pengurutan berdasarkan kekerapan dan berhasil membuktikan bahwa cara ini adalah yang paling efisien.
      Apa yang dilakukan Huffman melampaui profesornya sendiri, yang bekerja sama dengan pencipta bidang teori informasi Claude Shannon mengembangkan kode yang mirip. Huffman menghindari kesalahan besar dari kode Shannon-Fano yang kurang optimal dengan membangun pohon binernya dari bawah ke atas dan bukan dari atas ke. Makalah berjudul “A Method for the Construction of Minimum Redundancy Codes” tersebut lalu dipublikasikan oleh Huffman pada tahun 1952 dalam sebuah jurnal profesional untuk Institute of Radio Engineers.
      CONTOH :
      Terdapat sumber lima lambang dengan kemungkinan 0.3, 0.2, 0.2, 0.2, 0.1.
      Entropy dari sumber ini adalah H = −[0.3 log 0.3 + (3 × 0.2) log 0.2 + 0.1 log 0.1] = 2.246.
      Terdapat dua phase dalam menyusun kode huffman yaitu :
      a). reduction phase
      merupakan phase pengurangan, dimana bila terdapat beberapa simbol kemudian 2 simbol yang memiliki probabilitas paling kecil digabungkan menjadi satu simbol dengan probabilitas sama dengan jumlah probabilitas dari kedua simbol tersebut. Simbol hasil reduksi kemudian diperlakukan seperti simbol yang lain dan dilakukan reduksi lagi hingga mendapatkan 2 buah simbol dengan probabilitas yang tinggi.
      Contoh
      Terdapat beberapa simbol dengan peluang :
      S1 = 0.3, S2 = 0.2, S3 = 0.2, S4 = 0.2, S5 = 0.1
      Jika dilakukan reduction phase maka :
      S1 = 0.3, S2 = 0.3, S3 = 0.2, S4 = 0.2
      Kemudian
      S1 = 0.4, S2 = 0.3, S3 = 0.3
      Dan
      S1 = 0.6, S2 = 0.4
      Gambar diagramnya seperti berikut ini :
      b). splitting phase
      Merupakan phase pembalikan dari reductions phase. Dua simbol dengan probabilitas tinggi hasil reductions phase direpresentasikan kedalam satu komponen dengan code 1 dan O. Kemudian ambil mundur simbol sebelumnya dan representasikan kedalam dua komponen dengan code 00, 01, 10 dan 11. Begitu seterusnya hingga semua simbol sebelum direduksi telah direpesentasikan kedalam code.
      Contoh
      Hasil splitting phase dari simbol simbol diatas :
      0.6 = 0, 0.4 = 1
      Kemudian
      0.4 = 1, 0.3 = 00, 0.3 = 01
      Kemudian
      0.3 = 00, 0.3 = 01, 0.2 = 10, 0.2 = 11
      Dan
      0.3 = 00, 0.2 = 10, 0.2 = 11, 0.2 = 0.10, 0.1 = 011
      Gambar diagramnya seperti berikut ini :

      Dengan panjang rata rata nya (L)
      L = (2 × 0.3) + (2 × 0.2) + (2 × 0.2) + (3 × 0.2) + (3 ×0 .1) = 2.3
      Representasi dari Huffman Code tree contoh diatas adalah :

      0 komentar:

      Posting Komentar

      Subscribe To RSS

      Sign up to receive latest news