4. ΚΩ ΙΚΟΠΟΙΗΣΗ ΣΕ ΠΕΡΙΒΑΛΛΟΝ ΧΩΡΙΣ

Σχετικά έγγραφα
ΤΕΙ ΛΑΡΙΣΑΣ ΤΜΗΜΑ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ

5. ΚΩ ΙΚΟΠΟΙΗΣΗ ΣΕ ΠΕΡΙΒΑΛΛΟΝ ΜΕ ΘΟΡΥΒΟ

ΕΕ728 Προχωρηµένα Θέµατα Θεωρίας Πληροφορίας 4η διάλεξη (4η έκδοση, 11/3/2013)

Εργαστήριο ΨΗΦΙΑΚΗ ΛΟΓΙΚΗ. Εισαγωγή

ΘΕΩΡΙΑ ΠΛΗΡΟΦΟΡΙΑΣ. Κεφάλαιο 3 : Πηγές Πληροφορίας Χρήστος Ξενάκης. Πανεπιστήμιο Πειραιώς, Τμήμα Ψηφιακών Συστημάτων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ, ΤΜΗΜΑ ΤΕΧΝΟΛΟΓΙΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ

Γενικές Παρατηρήσεις. Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα (1) Το Λήµµα της Αντλησης. Χρήση του Λήµµατος Αντλησης.

Κώδικες µεταβλητού µήκους

Απαντήσεις σε απορίες

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Τεχνολογία Πολυμέσων. Ενότητα # 9: Κωδικοποίηση εντροπίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κεφάλαιο 2 Πληροφορία και εντροπία

Χρήστος Ξενάκης. Πανεπιστήμιο Πειραιώς, Τμήμα Ψηφιακών Συστημάτων

Kεφάλαιο 10. Πόσα υποπαίγνια υπάρχουν εδώ πέρα; 2 υποπαίγνια.

Τηλεπικοινωνιακά Συστήματα ΙΙ

Θεωρία Πληροφορίας. Διάλεξη 4: Διακριτή πηγή πληροφορίας χωρίς μνήμη. Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής

( ) log 2 = E. Σεραφείµ Καραµπογιάς

Ποιές οι θεµελιώδεις δυνατότητες και ποιοί οι εγγενείς περιορισµοί των υπολογιστών ; Τί µπορούµε και τί δε µπορούµε να υπολογίσουµε (και γιατί);

Στοιχεία Θεωρίας Υπολογισµού (1): Τυπικές Γλώσσες, Γραµµατικές

Κεφάλαιο 2. Παραγοντοποίηση σε Ακέραιες Περιοχές

Κεφάλαιο 5 Οι χώροι. Περιεχόµενα 5.1 Ο Χώρος. 5.3 Ο Χώρος C Βάσεις Το Σύνηθες Εσωτερικό Γινόµενο Ασκήσεις

Κωδικοποίηση Πηγής. Δρ. Α. Πολίτης

1 Ορισµός ακολουθίας πραγµατικών αριθµών

Κωδικοποίηση Πηγής. Η λειτουργία ενός συστήματος επικοινωνίας (γενικό διάγραμμα):

(1) 98! 25! = 4 100! 23! = 4

Σηµειώσεις στις σειρές

Συμπίεση Δεδομένων

ΚΕΦΑΛΑΙΟ 2 ΜΗ ΓΡΑΜΜΙΚΕΣ ΕΞΙΣΩΣΕΙΣ

ΑΡΧΕΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ. Χρήστου Νικολαΐδη. Εισαγωγή στη Θεωρία της Πληροφορίας. Θεωρία & Ασκήσεις

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Εισαγωγή στην επιστήµη των υπολογιστών ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ

3 Αναδροµή και Επαγωγή

Μάθημα 5 ο : Μετάδοση Μηνυμάτων

11, 12, 13, 14, 21, 22, 23, 24, 31, 32, 33, 34, 41, 42, 43, 44.

ΘΕΑΝΩ ΕΡΙΦΥΛΗ ΜΟΣΧΟΝΑ ΣΥΜΠΛΗΡΩΜΑΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ

Συμπίεση χωρίς Απώλειες

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ

Αλγεβρα. Ενότητα: Πολυώνυµα πολλών µεταβλητών - ο αλγόριθµος της διαίρεσης. Ευάγγελος Ράπτης. Τµήµα Μαθηµατικών

Ασκήσεις για το µάθηµα «Ανάλυση Ι και Εφαρµογές» (ε) Κάθε συγκλίνουσα ακολουθία άρρητων αριθµών συγκλίνει σε άρρητο αριθµό.

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Εισαγωγή στην επιστήµη των υπολογιστών. Υπολογιστές και Δεδοµένα Κεφάλαιο 3ο Αναπαράσταση Αριθµών

5.1 Θεωρητική εισαγωγή

Παλαιότερες ασκήσεις

Κ. Ι. ΠΑΠΑΧΡΗΣΤΟΥ. Τοµέας Φυσικών Επιστηµών Σχολή Ναυτικών οκίµων ΟΡΙΖΟΥΣΕΣ. Ιδιότητες & Εφαρµογές

Εισαγωγή στην επιστήµη των υπολογιστών. Αναπαράσταση Αριθµών

ΠροσδιορισµόςΒέλτιστης Λύσης στα Προβλήµατα Μεταφοράς Η µέθοδος Stepping Stone

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους

ΕΕ728 Προχωρηµένα Θέµατα Θεωρίας Πληροφορίας 11η διάλεξη

ΚΕΦΑΛΑΙΟ 1 ο ΠΑΙΧΝΙ ΙΑ ΣΤΗΝ ΚΑΤΑΣΚΗΝΩΣΗ. Στο κεφάλαιο αυτό, θα προσπαθήσουµε να επιτύχουµε τους εξής στόχους:

1 η Θεµατική Ενότητα : Δυαδικά Συστήµατα

Θεωρία Πληροφορίας. Διάλεξη 5: Διακριτή πηγή πληροφορίας με μνήμη. Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής

σύνθεση και απλοποίησή τους θεωρήµατα της άλγεβρας Boole, αξιώµατα του Huntington, κλπ.

PROJECT ΣΤΟ ΜΑΘΗΜΑ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟ ΟΥΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

< 1 για κάθε k N, τότε η σειρά a k συγκλίνει. +, τότε η η σειρά a k αποκλίνει.

Θέµατα ( ικαιολογείστε πλήρως όλες τις απαντήσεις σας)

x 2 = b 1 2x 1 + 4x 2 + x 3 = b 2. x 1 + 2x 2 + x 3 = b 3

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΙΑΤΜΗΜΑΤΙΚΟ ΠΜΣ «ΜΑΘΗΜΑΤΙΚΑ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ & ΤΩΝ ΑΠΟΦΑΣΕΩΝ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ η Σειρά Ασκήσεων ΑΠΑΝΤΗΣΕΙΣ

Επεξεργασία Πολυµέσων. Δρ. Μαρία Κοζύρη Π.Μ.Σ. «Εφαρµοσµένη Πληροφορική» Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο Θεσσαλίας

ΜΕΛΕΤΗ ΣΥΝΑΡΤΗΣΗΣ. Άρτια και περιττή συνάρτηση. Παράδειγµα: Η f ( x) Παράδειγµα: Η. x R και. Αλγεβρα Β Λυκείου Πετσιάς Φ.- Κάτσιος.

ΕΠΙΤΑΧΥΝΣΗ- ΕΠΙΤΑΧΥΝΟΜΕΝΗ ΚΙΝΗΣΗ

Ασκήσεις Φροντιστηρίου «Υπολογιστική Νοηµοσύνη Ι» 7ο Φροντιστήριο 15/1/2008

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ

Μάθημα Εισαγωγή στις Τηλεπικοινωνίες Κωδικοποίηση πηγής- καναλιού Μάθημα 9o

2 o Καλοκαιρινό σχολείο Μαθηµατικών Νάουσα 2008

ΕΕ728 Προχωρηµένα Θέµατα Θεωρίας Πληροφορίας 6η διάλεξη

ιακριτά Μαθηµατικά και Μαθηµατική Λογική ΠΛΗ20 Ε ρ γ α σ ί α 3η Θεωρία Γραφηµάτων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ

ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

11 Το ολοκλήρωµα Riemann

Κεφάλαιο 3β. Ελεύθερα Πρότυπα (µέρος β)

Θέµατα ( ικαιολογείστε πλήρως όλες τις απαντήσεις σας)

Πρόβληµα 2 (15 µονάδες)

Κεφάλαιο 5 R (2, 3) R (3, 0)

Δομές Δεδομένων και Αλγόριθμοι

Θεωρία τησ Πληροφορίασ (Θ) ΔΙΔΑΚΩΝ: Δρ. Αναςτάςιοσ Πολίτησ

τη µέθοδο της µαθηµατικής επαγωγής για να αποδείξουµε τη Ϲητούµενη ισότητα.

Ακρότατα υπό συνθήκη και οι πολλαπλασιαστές του Lagrange

3.1 εκαδικό και υαδικό

Αριθµητική Ανάλυση 1 εκεµβρίου / 43

Ασκήσεις για το µάθηµα «Ανάλυση Ι και Εφαρµογές»

Γ. Κορίλη Αλγόριθµοι ροµολόγησης

οµή δικτύου ΣΧΗΜΑ 8.1

Πρόβληµα 2 (12 µονάδες)

Κεφάλαιο 9 ο Κ 5, 4 4, 5 0, 0 0,0 5, 4 4, 5. Όπως βλέπουµε το παίγνιο δεν έχει καµιά ισορροπία κατά Nash σε αµιγείς στρατηγικές διότι: (ΙΙ) Α Κ

Γραµµική Αλγεβρα Ι. Ενότητα: ιανυσµατικοί χώροι. Ευάγγελος Ράπτης. Τµήµα Μαθηµατικών

ΚΕΦΑΛΑΙΟ 3 ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. nn n n

Εισαγωγή στην Τοπολογία

Κατηγορίες Συμπίεσης. Συμπίεση με απώλειες δεδομένων (lossy compression) π.χ. συμπίεση εικόνας και ήχου

Μάθημα 7 ο. Συμπίεση Εικόνας ΤΜΗΥΠ / ΕΕΣΤ 1

5.1 Ιδιοτιµές και Ιδιοδιανύσµατα

ιαφορική εντροπία Σεραφείµ Καραµπογιάς

Φροντιστήριο 5. Το πρώτο πράγµα λοιπόν που πρέπει να κάνουµε είναι να βρούµε τις πιθανότητες εµφάνισης των συµβόλων. Έτσι έχουµε:

* τη µήτρα. Κεφάλαιο 1o

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ,

ΚΕΦΑΛΑΙΟ 3: Συνθήκες Αλυσίδων

Ορια Συναρτησεων - Ορισµοι

Συµπίεση Ψηφιακών Εικόνων: Συµπίεση µε Απώλειες. Πρότυπα Συµπίεσης Εικόνων

Transcript:

4. ΚΩ ΙΚΟΠΟΙΗΣΗ ΣΕ ΠΕΡΙΒΑΛΛΟΝ ΧΩΡΙΣ ΘΟΡΥΒΟ Στο κεφάλαιο αυτό θα θεωρήσουµε ότι το κανάλι επικοινωνίας είναι ιδανικό, χωρίς θόρυβο, ότι δηλαδή δεν συµβαίνουν σφάλµατα κατά τη µετάδοση της πληροφορίας. Εδώ έχουµε µια πηγή που στέλνει τα σύµβολα ενός αλφαβήτου, µε διαφορετική πιθανότητα το καθένα, και αναζητούµε µια κατάλληλη κωδικοποίηση των συµβόλων της πηγής που να λαµβάνει υπόψη της αυτό το γεγονός (να θυµηθούµε το παράδειγµα του ινδιάνικου χωριού Α στην εισαγωγή). Ας πάρουµε µια πηγή που στέλνει τα γράµµατα του ελληνικού αλφαβήτου και ας υποθέσουµε ότι καταναλώνουµε κάποια ενέργεια για την αποστολή κάθε γράµµατος. Είναι φανερό ότι σε ένα τυχαίο κείµενο δεν εµφανίζονται όλα τα γράµµατα του ελληνικού αλφαβήτου µε την ίδια συχνότητα. Εάν λοιπόν έχουµε στη διάθεσή µας µια συγκεκριµένη ποσότητα ενέργειας, θα ήταν «άδικο» να καταναλώνουµε την ίδια ενέργεια για να στείλουµε το γράµµα Α που εµφανίζεται πολύ συχνά µε την ενέργεια που ξοδεύουµε για το σπανιότερο γράµµα Ξ. Θα ήταν πιο λογικό να µετατοπίσουµε το βάρος της κατανάλωσης ενέργειας προς τα σπανιότερα γράµµατα, να στέλνουµε δηλαδή τα συχνά γράµµατα µε λιγότερη ενέργεια και τα σπάνια γράµµατα µε περισσότερη, ώστε να µειώσουµε κατά µέσο όρο την απαιτούµενη ενέργεια ανά σύµβολο. 4. ΤΙ ΣΗΜΑΙΝΕΙ ΚΑΤΑΛΛΗΛΗ ΚΩ ΙΚΟΠΟΙΗΣΗ ΠΩΣ ΕΚΜΕΤΑΛΛΕΥΟΜΑΣΤΕ ΤΗΝ ΕΝΤΡΟΠΙΑ ΤΗΣ ΠΗΓΗΣ Ας υποθέσουµε ότι µια πηγή εκπέµπει τα οκτώ σύµβολα µε ίσες πιθανότητες, δηλαδή Α, Β, Γ,, Ε, Ζ, Η, Θ p ( Α) = p( Β) = p( Γ) = p( ) = p( Ε) = p( Ζ) = p( Η) = p( Θ) = Η εντροπία της πηγής είναι H = 8 [ log2 8] = 8 3 = 3 bits/σύµβολο 8 8 8 49

Η µέση πληροφορία λοιπόν ανά σύµβολο είναι 3 bits. Αν θέλουµε να χρησιµοποιήσουµε το δυαδικό κανάλι επικοινωνίας για τη µεταφορά των συµβόλων, φαίνεται πολύ λογικό να αναπαραστήσουµε τα οκτώ γράµµατα µε τριάδες δυαδικών ψηφίων (υπάρχουν οκτώ ακριβώς!). Θα µπορούσαµε λοιπόν να κάνουµε την αντιστοίχιση (ή την κωδικοποίηση αν θέλετε): ΠΙΝΑΚΑΣ. Α 000 Β 00 Γ 00 0 Ε 00 Ζ 0 Η 0 Θ Έτσι χρειαζόµαστε 3 bits (δυαδικά ψηφία) ανά σύµβολο για µια καλή αναπαράσταση των γραµµάτων, όση είναι δηλαδή η εντροπία! Ας υποθέσουµε τώρα ότι η πηγή µας εκπέµπει τα ίδια σύµβολα αλλά µε διαφορετικές πιθανότητες, οι οποίες δίνονται στον παρακάτω πίνακα: Α Β Γ Ε Ζ Η Θ 2 8 8 6 6 6 32 32 Η εντροπία της πηγής αυτής είναι H = log2 2 + 2 ( log8) + 3 ( 8 6 log6) + 2 ( 32 log32) 3 5 37 = + 2 + 3 + 2 = = 2.325 bits/σύµβολο. 2 8 4 32 6 Χρησιµοποιώ τον ίδιο όρο bit, για να εκφράσω τόσο τη µονάδα µέτρησης του πληροφοριακού περιεχοµένου, όσο και το δυαδικό ψηφίο 0 ή. Πρέπει όµως να επισηµάνω ότι σύµπτωση υπάρχει µόνο στην περίπτωση που τα δυαδικά ψηφία 0 και είναι ισοπίθανα (βλέπε παράδειγµα, κεφαλαίου 2) 50

Θα µπορούσαµε να εφαρµόσουµε και πάλι την προηγούµενη κωδικοποίηση χρησιµοποιώντας 3 δυαδικά ψηφία ανά σύµβολο. Ωστόσο, υπάρχουν περιθώρια για βελτίωση. Θα ήταν πιο έξυπνο να κωδικοποιήσουµε τα πιο πιθανά σύµβολα µε λιγότερα ψηφία και τα πιο σπάνια µε περισσότερα έτσι ώστε να «ρίξουµε» το µέσο όρο δυαδικών ψηφίων ανά σύµβολο. Προτείνουµε την παρακάτω κωδικοποίηση: ΠΙΝΑΚΑΣ 2 Α 0 Β 00 Γ 0 00 Ε 0 Ζ 0 Η 0 Θ Παρατηρούµε τώρα ότι το µέσο µήκος του δεύτερου κώδικα είναι + 2 3 + 8 3 + 8 6 4 + 6 4 + 6 4 + 5 + 32 5 = 32 όση και η εντροπία! 74 = = 2.325 bits/σύµβολο 32 Με άλλα λόγια τι πετύχαµε; Αν θέλουµε να στείλουµε ένα κείµενο 0000 χαρακτήρων (γραµµάτων) µε την κωδικοποίηση του Πίνακα αναµένουµε ότι θα χρειαστούµε 30,000 bits (κατά µέσο όρο πάντα) ενώ µε την κωδικοποίηση του Πίνακα 2 αναµένουµε ότι θα χρειαστούµε µόνο 23,25 bits. Ο δεύτερος κώδικας λοιπόν έχει καλύτερη απόδοση όσον αφορά τη συµπίεση των δεδοµένων και κατ επέκταση εξασφαλίζει καλύτερη ταχύτητα µετάδοσης. Υποψιαζόµαστε λοιπόν ότι η εντροπία µιας πηγής εκφράζει ένα κριτήριο, ένα στόχο για το κατά πόσο µπορούµε να βελτιώσουµε την απόδοση της κωδικοποίησης. Στην τελευταία παράγραφο του κεφαλαίου αυτού θα διαπιστώσουµε ότι η υποψία µας θα βγει αληθινή. θυµίζω ότι για τη µέση τιµή των µηκών πολλαπλασιάζουµε το κάθε µήκος µε την αντίστοιχη πιθανότητα και αθροίζουµε 5

Με µια πρόχειρη µατιά θα αναρωτιόταν κανείς «γιατί να µην µειώσουµε κι άλλο το µήκος των κωδικών λέξεων ώστε να πάρουµε καλύτερο αποτέλεσµα». Όπως θα δούµε σε επόµενη παράγραφο, η κωδικοποίηση αυτή είναι η καλύτερη δυνατή που εξασφαλίζει µια οµαλή αποκωδικοποίηση στην έξοδο του καναλιού. ΠΑΡΑ ΕΙΓΜΑ. Κωδικοποιήστε το µήνυµα ΑΒΓΑ µε τους δύο παραπάνω τρόπους. Πόσα bits χρειάζεστε σε κάθε περίπτωση; Μπορείτε να αποκωδικοποιήσετε το µήνυµά σας; Μπορείτε να βρείτε µια λέξη που να απαιτεί περισσότερα bits µε το δεύτερο τρόπο; Για τη λέξη ΑΒΓΑ ος τρόπος : ΑΒΓΑ 000 00 00 000 2 bits 2 ος τρόπος : ΑΒΓΑ 0 00 0 0 8 bits Η κωδική λέξη της ης κωδικοποίησης 0000000000 αποκωδικοποιείται εύκολα µε βάση τον ΠΙΝΑΚΑ, αν χωρίσουµε το µήνυµα σε τριάδες. Προφανώς δίνει ΑΒΓΑ. Η κωδική λέξη της 2 ης κωδικοποίησης 00000, παρόλο που δεν ξέρουµε πως να τη χωρίσουµε σε οµάδες, αποκωδικοποιείται εύκολα µε βάση τον ΠΙΝΑΚΑ 2. ίνει και πάλι ΑΒΓΑ. Όπως είπαµε, η 2 η κωδικοποίηση είναι πιο οικονοµική, διότι κατά µέσο όρο απαιτεί λιγότερα bits. Αυτό βέβαια δε σηµαίνει ότι όλα τα µηνύµατα απαιτούν λιγότερα bits. Αν το µήνυµα που στέλνουµε περιέχει αρκετά «σπάνια» γράµµατα είναι πολύ πιθανό να απαιτεί περισσότερα bits στη δεύτερη περίπτωση. Π.χ. το µήνυµα ΘΗΒΑ περιέχει τα δύο σπανιότερα γράµµατα Θ και Η, οπότε ος τρόπος : ΘΗΒΑ 0 00 000 2 bits 2 ος τρόπος : ΘΗΒΑ 0 00 0 4 bits Στην δεύτερη κωδικοποίηση δώσαµε έτοιµο τον ΠΙΝΑΚΑ 2. Η εύρεση του κατάλληλου κάθε φορά κώδικα δεν είναι εύκολη υπόθεση και αποτελεί επιδίωξη των Τηλεπικοινωνιακών. Σε περιπτώσεις αρκετά βολικές, όπως ήταν το παράδειγµά µας, ο επόµενος τρόπος κωδικοποίησης είναι αρκετά ικανοποιητικός. 52

4.2 ΚΩ ΙΚΑΣ SHANNON-FANO. ΕΝΑΣ ΑΠΛΟΣ ΤΡΟΠΟΣ ΕΞΥΠΝΗΣ ΚΩ ΙΚΟΠΟΙΗΣΗΣ Χρησιµοποιούµε το παράδειγµα της προηγούµενης παραγράφου για να περιγράψουµε τον αλγόριθµό µας: Η πηγή εκπέµπει 8 σύµβολα µε πιθανότητες Α Β Γ Ε Ζ Η Θ /2 /8 /8 /6 /6 /6 /32 /32 Ακολουθούµε τα εξής βήµατα:. ιατάσσουµε τα σύµβολα κατά φθίνουσα σειρά πιθανοτήτων. [στο παράδειγµά µας είναι ήδη ταξινοµηµένα] 2. Χωρίζουµε τα σύµβολα σε δύο οµάδες όσο το δυνατό πιο ισοπίθανες. [δείτε στην πρώτη στήλη όπου χωρίσαµε σε {Α} και {Β,Γ,,Ε,Ζ,Η,Θ}] 3. Στην πρώτη οµάδα επισυνάπτουµε το ψηφίο 0 και στη δεύτερη το ψηφίο. [δείτε την πρώτη στήλη] 4. Αν κάποια οµάδα περιέχει µόνο ένα σύµβολο η κωδικοποίηση για το σύµβολο αυτό έχει τελειώσει. [εδώ π.χ. έχουµε τελειώσει για το σύµβολο Α] 5. ιαφορετικά χωρίζουµε ξανά την οµάδα µε µια οριζόντια γραµµή ακολουθώντας τα βήµατα 2 και µετά. [εδώ π.χ. συνεχίζουµε για την οµάδα {Β,Γ,,Ε,Ζ,Η,Θ} ] 6. Η διαδικασία τελειώνει όταν όλες οι οµάδες που προκύπτουν περιέχουν µόνο ένα σύµβολο. Με τον τρόπο αυτό κατασκευάζουµε τον ακόλουθο πίνακα Α /2 = 0.5 0 Β /8 = 0.25 0 0 Γ /8 = 0.25 0 /6 = 0.0625 0 0 Ε /6 = 0.0625 0 Ζ /6 = 0.0625 0 Η /32 = 0.0325 0 Θ /32 = 0.0325 η 2 η 3 η 4 η 5 η 53

Αναλυτικά: Στην η στήλη χωρίσαµε το σύνολο {Α,Β,Γ,,Ε,Ζ,Η,Θ} στις οµάδες {Α} και {Β,Γ,,Ε,Ζ,Η,Θ} µε άθροισµα πιθανοτήτων 0.5 σε κάθε οµάδα. Στην πρώτη οµάδα επισυνάψαµε το 0, στη δεύτερη το. Με την πρώτη οµάδα τελειώσαµε διότι περιέχει ένα µόνο σύµβολο. Στην 2 η στήλη χωρίσαµε το σύνολο {Β,Γ,,Ε,Ζ,Η,Θ} στις οµάδες {Β,Γ} και {,Ε,Ζ,Η,Θ} µε άθροισµα πιθανοτήτων 0.25 σε κάθε οµάδα. Στην πρώτη οµάδα επισυνάψαµε το 0, στη δεύτερη το. Θα συνεχίσουµε και µε τις δύο οµάδες. Στην 3 η στήλη χωρίσαµε το σύνολο {Β,Γ} στις οµάδες {Β} και {Γ} µε άθροισµα πιθανοτήτων 0.25 σε κάθε οµάδα. Στην πρώτη οµάδα επισυνάψαµε το 0, στη δεύτερη το. χωρίσαµε το σύνολο {,Ε,Ζ,Η,Θ} στις οµάδες {,Ε} και {Ζ,Η,Θ} µε άθροισµα πιθανοτήτων 0.25 σε κάθε οµάδα. Στην πρώτη οµάδα επισυνάψαµε το 0, στη δεύτερη το. Συνεχίζουµε µε τις οµάδες {,Ε} και {Ζ,Η,Θ} Στην 4 η στήλη χωρίσαµε το σύνολο {,Ε} στις οµάδες { } και {Ε} µε άθροισµα πιθανοτήτων 0.0625 σε κάθε οµάδα. Στην πρώτη οµάδα επισυνάψαµε το 0, στη δεύτερη το. χωρίσαµε το σύνολο {Ζ,Η,Θ} στις οµάδες {Ζ} και {Η,Θ} µε άθροισµα πιθανοτήτων 0.0625 σε κάθε οµάδα. Στην πρώτη οµάδα επισυνάψαµε το 0, στη δεύτερη το. 54

Συνεχίζουµε µόνο µε την οµάδα {Η,Θ} Στην 5 η στήλη χωρίσαµε το σύνολο {Η,Θ} στις οµάδες {Η} και {Θ} Στην πρώτη οµάδα επισυνάψαµε το 0 στη δεύτερη το. Έτσι προέκυψε η δεύτερη κωδικοποίηση της προηγούµενης παραγράφου. Η κωδικοποίηση Shannon-Fano παρουσιάστηκε ενδεικτικά για εκπαιδευτικούς λόγους. Όπως καταλαβαίνουµε η κωδικοποίηση αυτή δίνει καλά αποτελέσµατα µόνο όταν βρίσκουµε συνεχώς περίπου ισοπίθανες οµάδες σε κάθε διαχωρισµό. Αυτό βέβαια συµβαίνει σπάνια και ο τρόπος αυτός δεν παρέχει πάντα τόσο κατάλληλη κωδικοποίηση. Υπάρχουν κι άλλοι έξυπνοι τρόποι κωδικοποίησης οι οποίοι εξαρτώνται κάθε φορά από την πηγή του συστήµατος επικοινωνίας. ΠΑΡΑ ΕΙΓΜΑ 2. Μία πηγή εκπέµπει 5 σύµβολα Α,Β,Γ,,Ε µε ίσες πιθανότητες. α) Ποια είναι η εντροπία της πηγής; β) Να δοθεί µια δυαδική κωδικοποίηση µε σταθερό µήκος κωδικών λέξεων. γ) Να βρεθεί µια καλύτερη κωδικοποίηση µε τον αλγόριθµο Shannon-Fano. δ) Να γίνει σύγκριση µεταξύ της απόδοσης των δύο κωδικοποιήσεων και της εντροπίας της πηγής. ΛΥΣΗ: α) H = log 2 5 = 2. 329 β) Με κωδικές λέξεις µήκους 2 θα µπορούσαµε να εκφράσουµε µόνο τέσσερα σύµβολα. Άρα χρειαζόµαστε µήκος τουλάχιστον 3. Π.χ. Α 000 Β 00 Γ 00 00 Ε 55

γ) Ο αλγόριθµος Shannon-Fano δίνει σύµβολο πιθανότητα κωδική λέξη Α 0,2 00 Β 0,2 0 Γ 0,2 0 0,2 0 Ε 0,2 παρατηρούµε ότι δεν είναι δυνατός ο χωρισµός σε ισοπίθανες οµάδες, οπότε χωρίζουµε την πρώτη φορά σε οµάδες µε πιθανότητες 0.4 και 0.6 αντίστοιχα κ.ο.κ. δ) Η πρώτη κωδικοποίηση απαιτεί 3 bits/σύµβολο. Η δεύτερη κωδικοποίηση απαιτεί 0.2 2 + 0.2 2 + 0.2 2 + 0.2 3 + 0.2 3 = 2.4 bits/σύµβολο. Η απόδοσή της δηλαδή βρίσκεται αρκετά κοντά στην τιµή της εντροπίας. ΠΑΡΑ ΕΙΓΜΑ 3. Έστω ότι µια πηγή εκπέµπει 7 σύµβολα µε πιθανότητες που δίνονται στον παρακάτω πίνακα: Α E Ι Κ Λ Ρ Σ 0,20 0,0 0,2 0,0 0,05 0,3 0,30 Θα βρούµε έναν κατάλληλο δυαδικό κώδικα σε περιβάλλον χωρίς θόρυβο µε τον αλγόριθµο Shannon-Fano. Σ 0,30 0 0 Α 0,20 0 Ρ 0,3 0 0 Ι 0,2 0 Ε 0,0 0 Κ 0,0 0 Λ 0,05 56

Ας αποκωδικοποιήσουµε το µήνυµα 0000000. Είναι 0 00 0 00 0 Λ Α Ρ Ι Σ Α Παρατηρούµε και πάλι ότι µε την κωδικοποίηση Shannon-Fano µειώνουµε τον µέσο αριθµό bits ανά σύµβολο αντιστοιχίζοντας µικρότερες κωδικές λέξεις σε πιο πιθανά σύµβολα, µε άλλα λόγια συµπιέζουµε τα δεδοµένα. Εάν οι όλες κωδικές λέξεις είχαν ίδιο µήκος θα χρειαζόµασταν τουλάχιστον 3 bits/σύµβολο. Έτσι η λέξη ΛΑΡΙΣΑ π.χ. θα καταλάµβανε 6x3=8 bits, ενώ τώρα καταλαµβάνει 6 bits (καθώς περιέχει περισσότερα πιθανά σύµβολα). Έτσι τα µηνύµατα καταλαµβάνουν γενικά λιγότερο χώρο και µεταδίδονται ταχύτερα. Αν υπολογίσουµε και εδώ το µέσο µήκος του κώδικά µας θα διαπιστώσουµε ότι πλησιάζει αρκετά κοντά στην τιµή της εντροπίας. Όπως είπαµε, σε ορισµένες περιπτώσεις µπορούµε να βρούµε ακόµα καλύτερες κωδικοποιήσεις (δείτε το πρόβληµα αυτού του Κεφαλαίου). Η απόδοση µπορεί πλησιάσει αρκετά κοντά στην τιµή της εντροπίας αλλά δεν µπορεί να γίνει µικρότερη όπως θα δούµε στην παράγραφο 4.5. Ας απαντήσουµε όµως πρώτα σε ένα ερώτηµα που εκκρεµεί. 4.3 ΓΙΑΤΙ ΕΝ ΜΕΙΩΝΟΥΜΕ ΠΕΡΙΣΣΟΤΕΡΟ ΤΟ ΜΗΚΟΣ ΤΩΝ ΚΩ ΙΚΩΝ ΛΕΞΕΩΝ ΑΠΟΚΩ ΙΚΟΠΟΙΗΣΗ Στην παράγραφο 4. αφήσαµε ένα ερώτηµα αναπάντητο. Στη δεύτερη κωδικοποίηση αντιστοιχίσαµε κάποια γράµµατα µε ένα bit και κάποια άλλα µε 5 bits. εν µπορούµε να µειώσουµε περαιτέρω τα µήκη των δυαδικών λέξεων; Αν το πράξουµε, οι κώδικες που θα πάρουµε θα παρουσιάζουν προβλήµατα στην αποκωδικοποίηση. Η µείωση του µήκους των κωδικών λέξεων πρέπει να γίνει µε τέτοιο τρόπο ώστε να εξασφαλίζεται η δυνατότητα οµαλής αποκωδικοποίησης στην έξοδο του συστήµατός µας. Ας δούµε τα προβλήµατα της αποκωδικοποίησης µε κάποια παραδείγµατα. Γνωρίζουµε ότι οποιαδήποτε αντιστοίχιση συµβόλων µε δυαδικά bits αποτελεί κώδικα. ίνουµε λοιπόν τέσσερις κώδικες για τα σύµβολα Α,Β,Γ,. 57

ος 2 ος 3 ος 4 ος Α 00 0 0 Β 0 00 00 0 Γ 0 00 000 00 00 00 000 Ο πρώτος κώδικας δεν είναι καλός διότι τα σύµβολα Β και Γ κωδικοποιούνται µε τον ίδιο τρόπο, οπότε στην αποκωδικοποίηση θα έχουµε πρόβληµα. εν είναι όπως λέµε ευκρινής. Ένας κώδικας θα λέγεται ευκρινής όταν διαφορετικά σύµβολα κωδικοποιούνται µε διαφορετικές κωδικές λέξεις. Στο δεύτερο κώδικα, αν και είναι ευκρινής, δεν είναι πάντοτε δυνατό να αναγνωρίζουµε τις κωδικές λέξεις σε µια ακολουθία κωδικών συµβόλων. Π.χ αν προσπαθήσουµε να αποκωδικοποιήσουµε το µήνυµα 000 αυτό µπορεί να ερµηνευτεί είτε ως ΑΑΑ είτε ως ΑΓ είτε ως ΓΑ. εν ορίζεται λοιπόν µονοσήµαντα το αποτέλεσµα. Ένας ευκρινής κώδικας θα λέγεται µονοσήµαντος όταν κάθε ακολουθία συµβόλων αποκωδικοποιείται µε µοναδικό τρόπο. Ο τρίτος κώδικας είναι µεν µονοσήµαντος αλλά δεν είναι στιγµιαία αποκωδικοποιήσιµος διότι ορισµένες φορές για να αποκωδικοποιήσουµε µια λέξη πρέπει να ελέγξουµε και επόµενα ψηφία. Επιθυµία µας είναι η κάθε κωδική λέξη να αναγνωρίζεται αµέσως µόλις πάρουµε και το τελευταίο της ψηφίο. Π.χ. ας αποκωδικοποιήσουµε το µήνυµα 000000: Φτάνοντας στο δεύτερο ψηφίο δεν είµαστε ακόµη σίγουροι αν το 0 αντιστοιχεί στο Α η αν ακολουθεί κι άλλο 0 ώστε να πάρουµε Β ή ακόµη και Γ. Στο τρίτο ψηφίο επίσης δεν είµαστε σίγουροι αν έχουµε το σύµβολο Β ή ακολουθεί κι άλλο 0 ώστε να πάρουµε το Γ. Μόλις εξετάσουµε και το τέταρτο κωδικό σύµβολο και δούµε θα καταλάβουµε ότι η προηγούµενη τριάδα αντιστοιχούσε στο Β. Η αποκωδικοποίηση βέβαια είναι εφικτή, το µήνυµα που αναζητάµε είναι ΒΑΓ, αλλά δεν έχουµε στιγµιαία αποκωδικοποίηση. Ένας κώδικας θα λέγεται προθεµατικός (ή και στιγµιαία αποκωδικοποιήσιµος) αν καµία κωδική λέξη δεν αποτελεί πρόθεµα σε κάποια άλλη. 58

Με την ιδιότητα του προθεµατικού κώδικα εξασφαλίζουµε ότι µόλις λάβουµε και το τελευταίο ψηφίο µιας κωδικής λέξης τελειώνει η αποκωδικοποίηση της λέξης αυτής. Ο 3 ος κώδικας λοιπόν δεν είναι προθεµατικός. Ο τέταρτος κώδικας είναι προθεµατικός διότι καµία κωδική λέξη δεν αποτελεί πρόθεµα σε κάποια άλλη. Το ψηφίο µας προειδοποιεί κάθε φορά ότι η κωδική λέξη τερµατίζει και η κωδικοποίηση γίνεται στιγµιαία. Έτσι εύκολα και στιγµιαία διαπιστώνουµε πχ ότι 0000000 = ΒΑ ΓΒΑ Τέλος, να σηµειώσουµε ότι Η κωδικοποίηση Shannon-Fano µας δίνει πάντοτε προθεµατικό κώδικα. 4.4 ΥΑ ΙΚΑ ΕΝΤΡΑ ΓΙΑ ΠΡΟΘΕΜΑΤΙΚΟΥΣ ΚΩ ΙΚΕΣ Ένας προθεµατικός κώδικας µπορεί να αναπαρασταθεί µε ένα δυαδικό δέντρο ως εξής. Ξεκινάµε από έναν κόµβο στην κορυφή και σχηµατίζουµε δύο κλάδους 0 Στον αριστερό κλάδο τοποθετούµε 0 ενώ στον δεξιό. Συνεχίζουµε µε τον ίδιο τρόπο από κάθε νέο κόµβο µέχρι να συµπληρωθούν διαδροµές που αντιστοιχούν σε κωδικές λέξεις. Έτσι στον κώδικα Shannon-Fano του παραδείγµατος 3 Σ 00 Α 0 Ρ 00 Ι 0 Ε 0 Κ 0 Λ αντιστοιχεί το παρακάτω δυαδικό δέντρο 59

0 0 0 Σ Α 0 0 Ρ Ι Ε 0 Κ Λ Στους τελικούς κόµβους (λέγονται και φύλλα του δέντρου) τοποθετούµε τα αντίστοιχα σύµβολα του κώδικα. Αντίστροφα, από ένα δυαδικό δέντρο µπορούµε να πάρουµε έναν δυαδικό κώδικα και µάλιστα το δέντρο µας εξασφαλίζει ότι ο κώδικας είναι προθεµατικός. Γιατί; ΠΑΡΑ ΕΙΓΜΑ 4. Ποιος κώδικας αντιστοιχεί στο παρακάτω δέντρο; Α Β Γ Ε Ζ Η Θ Αν τοποθετήσουµε 0 σε κάθε αριστερό κλάδο και σε κάθε δεξιό, το σύµβολο Ε για παράδειγµα αντιστοιχεί στην κωδική λέξη 0. ουλεύοντας παρόµοια για όλα τα σύµβολα θα πάρουµε τον κώδικα Shannon-Fano της παραγράφου 4.2. 60

4.5 ΤΟ ΠΡΩΤΟ ΘΕΩΡΗΜΑ ΤΟΥ SHANNON (ΣΕ ΠΕΡΙΒΑΛΛΟΝ ΧΩΡΙΣ ΘΟΡΥΒΟ) Βλέπουµε λοιπόν ότι το ζητούµενο στην κωδικοποίηση σε ένα αθόρυβο περιβάλλον είναι να βελτιώσουµε το µέσο µήκος των κωδικών λέξεων ώστε να έχουµε ταχύτερη µεταφορά δεδοµένων. Στα παραδείγµατα της παραγράφου 4.2 είδαµε ότι καθώς βελτιώνεται το µέσο µήκος των κωδικών λέξεων πλησιάζει την τιµή της εντροπίας της πηγής. Στο Παράδειγµα, µε τον αλγόριθµο Shannon-Fano πετύχαµε ακριβώς την τιµή της εντροπίας. Στο παράδειγµα 2 την πλησιάσαµε αρκετά. Χαρακτηριστικό είναι και το πρόβληµα αυτού του κεφαλαίου όπου η εντροπία της πηγής είναι H 2.7 ενώ βρίσκουµε τρεις κώδικες µε µέσο µήκος κωδικών λέξεων 3, 2.3 και 2.2 bits/σύµβολο αντίστοιχα. Μέχρι ποιο σηµείο µπορούµε να συµπιέσουµε τα δεδοµένα µας ώστε να µεταδίδονται ταχύτερα; Η εντροπία παίζει πράγµατι καθοριστικό ρόλο προς την αναζήτηση ενός καλύτερου κώδικα; Την απάντηση στα ερωτήµατα αυτά τη δίνει ο Shannon. Προηγουµένως θα εξηγήσουµε το σκεπτικό του θεωρήµατος µε ένα απλό παράδειγµα. Έστω η πηγή Α που περιγράφεται από τον πίνακα a b c 0,7 0,2 0, Η εντροπία της πηγής είναι H.57 bits/σύµβολο. Με τον αλγόριθµο Shannon-Fano παίρνουµε τον κώδικα σύµβολο κωδική λέξη a 0 b 0 c µε µέσο µήκος κωδικών λέξεων 0.7 + 0.2 2 + 0. 2 =.3 bits/σύµβολο Είναι φανερό πως δεν µπορούµε να συµπιέσουµε περισσότερο τις κωδικές λέξεις των συµβόλων a, b, c. Μπορούµε όµως να σκεφτούµε ως εξής. Ένα µήνυµα που έχει για παράδειγµα τη µορφή 6

abccbabb µπορεί να θεωρηθεί αντί για ακολουθία 8 συµβόλων, ως ακολουθία των «διπλών» συµβόλων ab, cc, ba, bb. Aν θεωρήσουµε λοιπόν την δεύτερη επέκταση της πηγής έχουµε 9 (διπλά) σύµβολα πηγής aa ab ac ba bb bc ca cb cc 0,49 0,4 0,07 0,4 0,04 0,02 0,07 0,02 0,0 και κάθε µήνυµα µπορεί να γραφεί ως συνδυασµός αυτών των νέων συµβόλων. Οι αντίστοιχες πιθανότητες προκύπτουν από τον αρχικό πίνακα πιθανοτήτων (θυµίζω πχ ότι p(ab)=p(a)p(b)=(0.7)(0.2)=0.4). Ο αλγόριθµος Shannon-Fano τώρα δίνει σύµβολο Πιθαν. κωδική λέξη aa 0,49 0 ab 0,4 00 ba 0,4 0 ac 0,07 00 ca 0,07 0 bb 0,04 0 bc 0,02 0 cb 0,02 0 cc 0,0 Η εντροπία της νέας πηγής είναι Η(Α 2 )=2Η(Α)=2,34 bits/«διπλό»-σύµβολο ενώ το νέο µέσο µήκος κωδικών λέξεων είναι 0.49 + 0.4 3 + 0.4 3 + 0.07 4 + 0.07 4 + 0.04 4 + 0.02 5 + 0.02 6 + 0.0 6 = 2,33 bits/«διπλό»-σύµβολο Ουσιαστικά το νέο µέσο µήκος κωδικών λέξεων είναι 2,33 =.65 bits/σύµβολο 2 62

Συνοψίζοντας έχουµε Εντροπία πηγής Η=.57 Μέσο µήκος κωδικών λέξεων αρχικού κώδικα.3 Μέσο µήκος κωδικών λέξεων νέου κώδικα (επέκταση).65 Το νέο µέσο µήκος λοιπόν είναι ακόµη µικρότερο και πλησιάζει ακόµη περισσότερο στην αρχική εντροπία Η(Α). Εφαρµόζοντας λοιπόν κωδικοποίηση στην επέκταση της πηγής πετυχαίνουµε µεγαλύτερη συµπίεση δεδοµένων. Ο Shannon απέδειξε το εξής: ΘΕΩΡΗΜΑ (Περιγραφή). Έστω µια πηγή Α (µε m σύµβολα) και εντροπία Η(Α). Επεκτείνοντας κατάλληλα την πηγή, µπορούµε να βρούµε έναν δυαδικό κώδικα µε το µέσο µήκος των κωδικών λέξεων να συµπιέζεται όσο επιθυµούµε µέχρι το κατώτατο όριο που είναι η εντροπία της πηγής Η(Α). Γενικότερα, αν χρησιµοποιήσουµε αλφάβητο κωδικοποίησης µε k σύµβολα (αντί για το δυαδικό όπου k=2), το κατώτατο όριο της συµπίεσης είναι H ( A) log 2 k bits/σύµβολο Υπάρχει όµως ένα αντίτιµο στην αναζήτηση του καλύτερου κώδικα ) Η διαδικασία κωδικοποίησης είναι δύσκολη 2) Αυξάνεται ο χρόνος κωδικοποίησης και αποκωδικοποίησης Ο Shannon µας επιτρέπει να είµαστε αισιόδοξοι και να αναζητούµε ολοένα και καλύτερους κώδικες. Η αισιοδοξία που πηγάζει από το θεώρηµα αυτό αποτέλεσε κίνητρο και έδωσε ώθηση στη θεωρία των Κωδίκων και κατ επέκταση στις τηλεπικοινωνίες. Το δυσάρεστο είναι ότι η απόδειξη του Shannon δεν είναι κατασκευαστική, µας εξασφαλίζει δηλαδή ότι υπάρχουν καλύτεροι κώδικες αλλά δεν µας παρέχει τη µέθοδο για να τους βρούµε. 4.6 ΚΩ ΙΚΑΣ HUFFMAN Θα παρουσιάσουµε έναν ακόµη αλγόριθµο κατασκευής κώδικα, τον αλγόριθµο Huffman, που βασίζεται στην αναπαράσταση του δυαδικού δέντρου που περιγράψαµε νωρίτερα. Ο αλγόριθµος αυτός είναι πιο αποτελεσµατικός από τον αλγόριθµο Shannon-Fano. 63

ίνεται µια πηγή ( A, Π) µε A = a, a, K, a } και Π = p p K p ]. Για ευκολία { 2 n [ 2 n υποθέτουµε ότι τα σύµβολα βρίσκονται σε φθίνουσα σειρά πιθανοτήτων (αν όχι τα διατάσσουµε). Κατασκευάζουµε ένα δυαδικό δέντρο ακολουθώντας τα εξής βήµατα:. Τοποθετούµε τα σύµβολα σε µια σειρά κόµβων σηµειώνοντας επάνω τις αντίστοιχες πιθανότητες p a p 2 a 2 p n a n 2. Από τα δύο τελευταία σύµβολα x και y (µε τις µικρότερες πιθανότητες), σχηµατίζουµε έναν νέο κόµβο όπως φαίνεται παρακάτω, σηµειώνοντας επάνω το άθροισµα των δύο πιθανοτήτων p(x)+p(y) x y 3. ιατάσσουµε ξανά µε φθίνουσα σειρά πιθανοτήτων τα σύµβολα που προκύπτουν (όπου στη θέση των δυο παλιών είναι σαν να έχουµε ένα µόνο νέο σύµβολο) και πηγαινουµε στο βήµα 2, µέχρι να καταλήξουµε σε έναν κόµβο (την κορυφή του δέντρου). Στο τέλος σχηµατίζουµε τον προθεµατικό κώδικα που αντιστοιχεί στο δέντρο που κατασκευάσαµε. Σηµείωση: Η τοποθέτηση σε φθίνουσα σειρά δεν είναι απαραίτητη. Σηµασία έχει να ενώνουµε κάθε φορά τα δύο σύµβολα µε τη µικρότερη πιθανότητα. Έτσι, ανάλογα µε τη σειρά που τοποθετούµε κάθε φορά τα σύµβολα, µπορεί να προκύψουν διαφορετικά δέντρα, άρα και διαφορετικοί κώδικες αλλά θα όλοι θα έχουν την ίδια απόδοση. Στη βιβλιογραφία συνήθως δεν συναντάµε την τοποθέτηση σε φθίνουσα σειρά, ωστόσο εδώ την προτιµούµε για µια πιο «τακτοποιηµένη» κατασκευή του δέντρου. Ας γίνουµε πιο σαφείς µε ένα παράδειγµα. 64

ΠΑΡΑ ΕΙΓΜΑ 5. Θεωρούµε την πηγή του παραδείγµατος 3: Α E Ι Κ Λ Ρ Σ 0,20 0,0 0,2 0,0 0,05 0,3 0,30 Θα βρούµε έναν κατάλληλο δυαδικό κώδικα σε περιβάλλον χωρίς θόρυβο µε τον αλγόριθµο Huffman. Αρχικά 0.30 0.20 0.3 0.2 0.0 0.0 0.05 Σ Α Ρ Ι Ε Κ Λ Ενώνουµε τα δύο τελευταία σύµβολα Κ και Λ σε ένα, το οποίο θα έχει πιθανότητα 0.5 και άρα θα τοποθετηθεί τρίτο στη σειρά 0.30 0.20 0.5 0.3 0.2 0.0 Σ Α Ρ Ι Ε Κ Συνεχίζουµε µε τον ίδιο τρόπο Λ 0.30 0.22 0.20 0.5 0.3 Σ Α Ρ Ι Ε Κ Λ µετά 0.30 0.28 0.22 0.20 Σ Α Ρ Ι Ε µετά Κ Λ 0.42 0.30 Σ 0.28 Α Ρ Ι Ε Κ Λ 65

µετά 0.58 0.42 Σ Α Ρ Ι Ε και τελικά Κ Λ.00 Σ Α Ρ Ι Ε Κ Λ Αν τοποθετήσουµε 0 σε κάθε αριστερό κλάδο και σε κάθε δεξιό λαµβάνουµε Σ 00 Κ 000 Λ 00 Ρ 0 Ι 00 Ε 0 Α Ο κώδικας αυτός είναι µεν διαφορετικός από τον κώδικα που βρήκαµε στο παράδειγµα 3, ωστόσο εµφανίζονται τα ίδια µήκη κωδικών λέξεων στα αντίστοιχα σύµβολα, µε αποτέλεσµα να έχουµε την ίδια απόδοση. Σε άλλες περιπτώσεις ο αλγόριθµος Huffman δίνει καλύτερη απόδοση. Γενικά ο αλγόριθµος Huffman δίνει την καλύτερη δυνατή απόδοση. 66

ΑΣΚΗΣΕΙΣ 4. Μια πηγή εκπέµπει 5 σύµβολα Α,Β,Γ,,Ε µε τις παρακάτω πιθανότητες Α Β Γ Ε 0,5 0,5 0,5 0,4 0,5 α) Ποια είναι η εντροπία της πηγής; (δίνεται log 2 0.5 = -2.74 και log 2 0.4 = -.32) β) ώστε µια δυαδική κωδικοποίηση µε σταθερό µήκος κωδικών λέξεων. γ) Βρείτε µια καλύτερη κωδικοποίηση µε τον αλγόριθµο Shannon-Fano. δ) Συγκρίνετε την απόδοση των δύο κωδίκων µε την εντροπία της πηγής. ε) Υπάρχουν και καλύτερες κωδικοποιήσεις. Εξετάστε την απόδοση του κώδικα Α 00 Β 0 Γ 0 0 Ε στ) Εξηγήστε γιατί οι παραπάνω κώδικες είναι στιγµιαία αποκωδικοποιήσιµοι. 4.2 ίνονται οι κώδικες Εξετάστε αν είναι ευκρινείς, µονοσήµαντοι ή προθεµατικοί (στιγµιαία αποκωδικοποιήσιµοι) ος 2 ος 3 ος Α 0 0 0 Β 00 0 00 Γ 000 0 00 0000 0 0 Ε 00000 0 4.3 ίνεται η πηγή εισόδου m n o p q r s t 0,0 0,2 0,20 0,05 0,02 0,3 0,30 0,08 α) Να κατασκευάσετε έναν block κώδικα (δηλ. όλες οι κωδικές λέξεις να έχουν το ίδιο µήκος) µε το µικρότερο δυνατό µήκος. Ποια είναι η απόδοσή του; 67

β) Να βρείτε έναν καταλληλότερο δυαδικό κώδικα από τον block κώδικα του α) µε τον αλγόριθµο Shannon-Fano. γ) Με τον κώδικα Shannon-Fano που βρήκατε, να αποκωδικοποιήσετε το µήνυµα 0000000 Πόσα bits θα χρειαζόµασταν για το ίδιο µήνυµα µε τον κώδικα του ερωτήµατος α); Πετυχαίνουµε συµπίεση; Σχολιάστε το αποτέλεσµα. δ) Να υπολογιστεί το µέσο µήκος του κώδικα. Πόσα bits θα καταλάµβανε κατά µέσο όρο ένα κείµενο 000 χαρακτήρων µε block κώδικα και πόσα µε τον κώδικα Shannon-Fano που κατασκευάσατε; ε) Εξηγήστε γιατί η εντροπία της πηγής Α είναι µικρότερη από 3 bits/σύµβολο. 4.4 ίνεται η πηγή A={a,b,c} µε αντίστοιχες πιθανότητες x, και 8. 8 α) Να υπολογίσετε το x και την εντροπία της πηγής Α. Για ποια κατανοµή πιθανοτήτων θα είχαµε τη µέγιστη εντροπία στην πηγή Α και ποια είναι αυτή η µέγιστη τιµή; [δίνεται log 2 3 =. 58 ] β) Να βρείτε κατάλληλο δυαδικό κώδικα µε τον αλγόριθµο Shannon-Fano και να µετρήσετε την απόδοσή του (µέσο µήκος κωδικών λέξεων). γ) Αφού βρείτε την επέκταση Α 2 και υπολογίσετε τις πιθανότητες των νέων συµβόλων, εφαρµόστε τον αλγόριθµο Shannon Fano για σύµβολα της πηγής Α 2. δ) Μετρήστε την απόδοση του νέου κώδικα (σε bits/διπλό_σύµβολο και τελικά σε bits/σύµβολο) ε) είξτε πως πετυχαίνουµε συµπίεση δεδοµένων κωδικοποιώντας και µε τους δύο κώδικες το µήνυµα aabaacaa Συγκρίνετε το µέσο µήκος των δύο κωδίκων. Τι πετυχαίνουµε; Μέχρι ποιο σηµείο µπορεί να βελτιωθεί η απόδοση αυτή; (Σχολιάστε σε σχέση µε το πρώτο θεώρηµα του Shannon) 4.5 Μια πηγή A εκπέµπει 2 σύµβολα a,b µε πιθανότητες 3 και 4 α) Υπολογίστε την εντροπία της πηγής (δίνεται ότι log 2 3, 58 ) αντίστοιχα. 4 β) Εφαρµόστε τον αλγόριθµο Shannon-Fano για τα σύµβολα της πηγής Α, της επέκτασης Α 2 και της επέκτασης Α 3. Βελτιώνεται η απόδοση; γ) Προσπαθήστε να βρείτε έναν καλύτερο κώδικα για την επέκταση Α 3 τροποποιώντας ελαφρώς µόνο το πρώτο βήµα του αλγορίθµου Shannon-Fano και υπολογίστε την απόδοσή του. 68

4.6 Για να σταλεί µια ασπρόµαυρη φωτογραφία από έναν δορυφόρο αναλύεται σε,000,000 pixels (κουκίδες) όπου κάθε pixel είναι είτε άσπρο (Α) είναι µαύρο (Μ). Αρχικά χρησιµοποιείται η κωδικοποίηση Πηγή Κώδικας Α 0 Μ Ωστόσο, παρατηρείται γενικά ότι στις φωτογραφίες µόνο το /0 των pixels είναι µαύρα. Χρησιµοποιήστε την πληροφορία αυτή και α) βρείτε την τρίτη επέκταση X 3 της πηγής X={Α,Μ} µε τις αντίστοιχες πιθανότητες εµφάνισης για τα 8 νέα σύµβολα πηγής που προκύπτουν. x (για ευκολία στη συνέχεια, εκφράστε όλες τις πιθανότητες στη µορφή ) 000 β) βρείτε έναν αποδοτικότερο κώδικα εφαρµόζοντας τον αλγόριθµο Shannon-Fano στην πηγή X 3. γ) δείξτε πως πετυχαίνουµε συµπίεση δεδοµένων στην ακολουθία των pixels Α Α Α Α Α Μ Α Α Α δ) συγκρίνετε τις αποδόσεις των δύο κωδίκων (µέσος µήκος ανά pixel) ε) Μέχρι ποια τιµή µπορεί να φτάσει η βελτίωση της απόδοσης σύµφωνα µε το πρώτο Θεώρηµα Shannon; (δίνεται log 2 9 = 3. 7 και log 2 0 = 3. 322 ) 4.7 Προσπαθήστε να κατασκευάσετε δυαδικά δέντρα για τους τρεις κώδικες της άσκησης 2. Μπορείτε σε κάθε περίπτωση; Σχολιάστε. 4.8 Να βρεθεί ο κώδικας Huffman για την πηγή της άσκησης και να υπολογιστεί το µέσο µήκος του. 4.9 Να βρεθεί ο κώδικας Huffman για την πηγή της άσκησης 3 και να υπολογιστεί το µέσο µήκος του. 4.0 Να βρεθεί ο κώδικας Huffman για την πηγή Α, την δεύτερη επέκταση Α 2 και τη τρίτη επέκταση Α 3 της άσκησης 5. Βελτιώνεται η απόδοση; 69

ΣΥΝΤΟΜΕΣ ΑΠΑΝΤΗΣΕΙΣ ΤΩΝ ΑΣΚΗΣΕΩΝ 4. Η εντροπία είναι H 2,7. Ο κώδικας Shannon-Fano είναι Α 0 Β 0 Γ 0 00 Ε Οι τρεις κώδικες έχουν µέσο µήκος 3 bits/σύµβολο, 2.3 bits/σύµβολο, 2.2 bits/σύµβολο αντίστοιχα 4.2 ος : ευκρινής, όχι µονοσήµαντος. 2 ος : ευκρινής, µονοσήµαντος, όχι προθεµατικός 3 ος : ευκρινής, µονοσήµαντος, προθεµατικός 4.3 α) µηκος = 3 bits β) m 0 n 0 o 0 p 0 q r 00 s 00 t 0 γ) sosto, πετυχαίνουµε συµπίεση δ) Ένα κείµενο 000 χαρακτήρων θα καταλάµβανε κατά µέσο όρο µε τον block κώδικα 3000 bits ενώ µε τον κώδικα Shannon-Fαno 2720 bits ε) Την µέγιστη εντροπία θα την είχαµε αν τα οκτώ σύµβολα ήταν ισοπίθανα. Αυτή θα ήταν Η=ln8=3 bits/σύµβολο. Άρα η εντροπία της πηγής Α είναι µικρότερη από 3bits/σύµβολο 70

4.4 α) H (A) =.065 bits/σύµβολο, H max = β) Μέσο µήκος =.25 bits/σύµβολο.58 bits/σύµβολο γ) Ο αλγόριθµος Shannon-Fano για την δεύτερη επέκταση είναι aa 0 ab 00 ac 0 ba 0 ca 0 bb 00 bc 0 cb 0 cc δ) 2.56 bits/διπλό σύµβ =.078 bits/σύµβολο ε) Το µήνυµα κωδικοποιείται ως εξής: ος κώδικας: aabaacaa = 0 0 0 0 0 0 0 2ος κώδικας: aa ba ac aa = 0 0 0 0 (0 bits) (8 bits) 4.5 α) Η(Α) = 0.8 bits/σύµβολο β) ίνουµε τον κώδικα Shannon-Fano µόνο για την τρίτη επέκταση aaa 00 aab 0 aba 00 baa 0 abb 00 bab 0 bba 0 bbb Οι αντίστοιχες αποδόσεις των τριών κωδίκων (µέσα µήκη) είναι bit/σύµβολο,.68 bits/διπλό σύµβολο= 0.84 bits/σύµβολο 2.59 bits/τριπλό σύµβολο= 0.86 bits/σύµβολο γ) Καλύτερος κώδικας: aaa 0 aab 00 aba 0 baa 0 abb 00 bab 0 bba 0 bbb µε µέσο µήκος = 2.47 bits/τριπλό σύµβολο= 0.82 bits/σύµβολο 7

4.6 β) Ο κώδικας Shannon-Fano που προκύπτει είναι ΑΑΑ 0 ΑΑΜ 00 ΑΜΑ 0 ΜΑΑ 0 ΑΜΜ 00 ΜΑΜ 0 ΜΜΑ 0 ΜΜΜ γ) Αρχικός κώδικας 00000000 Shannon-Fano 0000 δ) bit/pixel και 0,532 bits/pixel ε) Η απόδοση µπορεί να µειωθεί µέχρι 0.469 bits/pixel 4.7 Μόνο στον τρίτο κώδικα. 0 0 0 Β Α 0 0 Γ Ε 4.8 Ο κώδικας Huffman είναι Α 00 Β 0 Γ 0 0 Ε µε µέσο µήκος 2.2 bits/σύµβολο. 4.9 Ο κώδικας Huffman είναι m 0 n 00 o p 000 q 00 r 0 s 00 t 000 µε µέσο µήκος 2.72 bits/σύµβολο. 72

4.0 Ο τρεις κώδικες Huffman είναι a 0 b aa 0 ab ba 00 bb 0 Οι αποδόσεις των τριών κωδίκων είναι aaa aab 00 aba 00 abb 00000 baa 0 bab 0000 bba 0000 bbb 000.00 bit/σύµβολο, 0.84 bits/σύµβολο, 0.82 bits/σύµβολο. 73

74