Week 05
Huffman Code and
Graph Colouring
OUTLINE MATERI :
1. Huffman Code
2. Graph Colouring
Huffman code digunakan dalam teori komunikasi dan di bidang kompresi data secara luas. Agar
komunikasi terjadi, simbol atau pesan terkait harus dikodekan menggunakan teknik
pengkodean apa pun. Tugas ini dilakukan oleh encoder. Encoder memberikan alamat unik
untuk semua simbol dan kemudian pesan ditransmisikan melintasi saluran sebagai rangkaian 0
dan 1; pesan diterima melalui saluran dan diterjemahkan menggunakan blok dekoder. Pesan
yang didekodekan diterima oleh penerima. Oleh karena itu, kode memainkan peran penting
dalam komunikasi. Oleh karena itu, pemilihan kode yang optimal merupakan prasyarat dalam
teori komunikasi. Banyak kode populer yang tersedia, seperti ASCII EBCDIC, biner, atau kode
abu-abu.
Huffman code merupakan salah satu teknik kompresi yang ditemukan oleh David A. Huffman
pada tahun 1952. Huffman code adalah kode populer serta kode alamat variabel. Ini
memberikan kode ke simbol berdasarkan pentingnya kode. Ini memberikan kode yang lebih
panjang untuk simbol yang sangat langka dan kode pendek untuk simbol yang sering muncul.
Huffman code dibangun menggunakan pendekatan greedy.
Langkah 1: Buat daftar simbol dan urutkan menurut frekuensinya dalam urutan menaik.
Langkah 3: Buat simpul baru. Tambahkan probabilitas simbol yang dipilih pada Langkah 2
dan beri label simpul baru dengan itu
Langkah 4: Ulangi Langkah 2 dan 3 sampai hanya satu simpul yang tersisa
Langkah 5: Untuk setiap simpul internal, mulailah menetapkan kode 0 untuk anak kiri dan 1
untuk anak kanan
Langkah 6: Untuk setiap simpul daun, buat kata kode dengan menelusuri kode dari akar ke
simpul daun yang mewakili setiap label.
Mari kita memahami konsep pengkodean Huffman dengan bantuan contoh berikut.
Dari kalimat diatas kita akan mencari Huffman Code-nya. Berikut Langkah – langkahnya:
B I N A U S T R O L E G Sp
1 3 7 5 1 1 1 2 1 2 2 1 3
B U S T O G R L E I Sp A N
1 1 1 1 1 1 2 2 2 3 3 5 7
Pembentukan Huffman Tree akan berdasarkan pada penggabungan kolom demi kolom.
Berikut simulasinya.
B U S T O G R L E I Sp A N
1 1 1 1 1 1 2 2 2 3 3 5 7
S T O G B, U R L E I Sp A N
1 1 1 1 2 2 2 2 3 3 5 7
B, U S, T O, G R L E I Sp A N
2 2 2 2 2 2 3 3 5 7
O, G R L E I Sp B, U, S, T A N
2 2 2 2 3 3 4 5 7
L E I Sp B, U, S, T O, G, R A N
2 2 3 3 4 4 5 7
B, U, S, T O, G, R L, E A I, Sp N
4 4 4 5 6 7
L, E A I, Sp N B, U, S, T, O, G, R
4 5 6 7 8
B, U, S, T, O, G, R L, E, A I, Sp, N
8 9 13
B, U, S, T, O, G, R, L, E, A, I, Sp, N
30
Setelah membentuk Huffman Tree maka proses selanjutnya adalah menentukan Huffman
Code. Pembentukan Huffman Code akan menggantikan nilai bit ASCII dari masing –
masing karakter dimana pemberian nilai akan dilihat dari jalur tree ke node tersebut kiri
bernilai 0 dan kanan bernilai 1.
𝟏𝟎𝟏
Space saving = (𝟏 − 𝟐𝟒𝟎) × 𝟏𝟎𝟎%
2. Graph Coloring
Permasalahan yang berkaitan dengan pewarnaan peta wilayah, seperti peta belahan dunia telah
banyak menghasilkan hasil dalam teori graf. Saat peta diwarnai, dua wilayah dengan batas yang
sama biasanya diberi warna yang berbeda. Salah satu cara untuk memastikan bahwa dua daerah
yang berdekatan tidak pernah memiliki warna yang sama adalah dengan menggunakan warna
yang berbeda untuk setiap daerah. Namun, ini tidak efisien, dan pada peta dengan banyak
wilayah akan sulit untuk membedakan warna yang serupa. Sebaliknya, sejumlah kecil warna
harus digunakan bila memungkinkan. Pertimbangkan masalah menentukan jumlah paling
sedikit warna yang dapat digunakan untuk mewarnai peta sehingga daerah yang berdekatan
tidak pernah memiliki warna yang sama. Misalnya, untuk peta yang ditunjukkan di sebelah kiri
pada Gambar 1, empat warna cukup, tetapi tiga warna tidak cukup. Pada peta di sebelah kanan
pada Gambar 1, tiga warna sudah cukup (tetapi dua tidak).
Setiap peta di pesawat dapat diwakili oleh grafik. Untuk mengatur korespondensi ini setiap
wilayah peta diwakili oleh sebuah simpul. Tepi menghubungkan dua simpul jika daerah yang
diwakili oleh simpul ini memiliki perbatasan yang sama. Dua daerah yang bersentuhan hanya
pada satu titik tidak dianggap berdekatan. Grafik yang dihasilkan disebut grafik ganda peta.
Omong-omong bagaimana grafik ganda peta dibangun, jelas bahwa setiap peta di pesawat
memiliki grafik ganda planar.
Masalah mewarnai daerah-daerah suatu peta sama dengan masalah mewarnai simpul-simpul
dari graf ganda sehingga tidak ada dua simpul bertetangga dalam graf ini yang memiliki warna
yang sama.
Definisi 1. Pewarnaan graf sederhana adalah pemberian warna pada setiap titik pada graf
sehingga tidak ada dua titik bertetangga yang diberi warna yang sama.
Graf dapat diwarnai dengan memberikan warna yang berbeda untuk setiap simpulnya. Namun,
untuk sebagian besar graf, pewarnaan dapat ditemukan yang menggunakan lebih sedikit warna
daripada jumlah simpul dalam graf. Berapa jumlah paling sedikit warna yang diperlukan?
Definisi 2. Bilangan kromatis suatu graf adalah jumlah warna paling sedikit yang diperlukan
untuk mewarnai graf tersebut
Teorema. Teorema empat warna. Bilangan kromatik graf planar tidak lebih dari empat
Teorema Empat Warna awalnya diajukan sebagai dugaan pada tahun 1850-an. Akhirnya
dibuktikan oleh ahli matematika Amerika Kenneth Appel dan Wolfgang Haken pada tahun
1976. Sebelum tahun 1976, banyak bukti yang salah diterbitkan, seringkali dengan kesalahan
yang sulit ditemukan. Selain itu, banyak upaya sia-sia dilakukan untuk membangun contoh
tandingan dengan menggambar peta yang membutuhkan lebih dari empat warna.
(Membuktikan Teorema Lima Warna tidak terlalu sulit;)
Mungkin bukti keliru yang paling terkenal dalam semua matematika adalah bukti yang salah
dari Teorema Empat Warna yang diterbitkan pada tahun 1879 oleh pengacara London dan
matematikawan amatir, Alfred Kempe. Matematikawan menerima buktinya sebagai benar
Perhatikan bahwa Teorema Empat Warna hanya berlaku untuk graf planar. Graf nonplanar
dapat memiliki bilangan kromatik besar yang berubah-ubah,
Dua hal diperlukan untuk menunjukkan bahwa bilangan kromatik suatu graf adalah k. Pertama,
kita harus menunjukkan bahwa graf dapat diwarnai dengan k warna. Ini dapat dilakukan dengan
membuat pewarnaan seperti itu. Kedua, kita harus menunjukkan bahwa graf tidak dapat
diwarnai dengan menggunakan kurang dari k warna.
Contoh:
A: 3
B: 2
D: 3
A: 3
D: 3
B: 2
C: 2
3) Kemudian berikan pewarnaan dimulai dari node dengan degree tertinggi dan lakukan
pengecekan apakah warna pada node tersebut sama dengan warna pada node lain. Warna
yang diberikan adalah warna terkecil yang tersedia
A: 1
D: 2 (karena D terhubung dengan node A maka warna terkecil yang tersedia adalah 2)
C: 3 (karena C terhubung dengan node A dan D tapi tidak terhubung dengan node B)
4) Setelah proses tersebut maka kita dapat menentukan nilai kromatisnya dimana nilai
kromatis merupakan jumlah kombinasi warna yang digunakan. Dalam hal ini nilai kromatis
graph diatas adalah 3.
Huffman tree adalah pohon biner yang meminimalkan panjang jalur berbobot dari akar ke daun
dengan bobot yang telah ditentukan. Aplikasi terpenting dari Huffman tree adalah Huffman code.
Huffman code adalah skema pengkodean panjang variabel bebas awalan yang optimal yang
memberikan string bit ke simbol berdasarkan frekuensinya dalam teks yang diberikan. Ini dicapai
dengan konstruksi serakah dari pohon biner yang daunnya mewakili simbol alfabet dan tepinya
diberi label dengan 0 dan 1.
Ezhilarasu, P., Krishnaraj, N., & Babu, V. S. (2015). Huffman Coding for Lossless Data
Compression-A Review. Middle-East Journal of Scientific Research, 23(8), 1598–1603.
https://doi.org/10.5829/idosi.mejsr.2015.23.08.22429
Rosen, K. (2006). Discrete mathematics and its applications. McGraw Hill Higher Education.
Sridhar, S. (2015). Design and Analysis of Algorithms. Oxford University Press.
Graph Coloring Problem - Backtracking, www.youtube.com/watch?v=052VkKhIaQ4
Graph Theory: 64. Vertex Colouring, www.youtube.com/watch?v=4FE79y_JkCE
How Computers Compress Text: Huffman Coding and Huffman Trees,
www.youtube.com/watch?v=JsTptu56GM8
Huffman Coding - Greedy Method, www.youtube.com/watch?v=co4_ahEDCho
Introduction to Graph Colouring, www.youtube.com/watch?v=RSSfO0lnEp8