7ο ΕΡΓΑΣΤΗΡΙΟ AAAABBBBAAAAABBBBBBCCCCCCCCCCCCCCBBABAAAABBBBBBCCCCD



Σχετικά έγγραφα
Δομές Δεδομένων και Αλγόριθμοι

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

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

1 Το πρόβλημα της συντομότερης διαδρομής

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

ΠΛΗ21 Κεφάλαιο 2. ΠΛΗ21 Ψηφιακά Συστήματα: Τόμος Α Κεφάλαιο: 2 Δυαδική Κωδικοποίηση

Μελετάμε την περίπτωση όπου αποθηκεύουμε ένα (δυναμικό) σύνολο στοιχειών. Ένα στοιχείο γράφεται ως, όπου κάθε.

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

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

Συμπίεση Δεδομένων Δοκιμής (Test Data Compression) Νικολός Δημήτριος, Τμήμα Μηχ. Ηλεκτρονικών Υπολογιστών & Πληροφορικής, Παν Πατρών

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ουρές Προτεραιότητας. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

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

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

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

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

ΘΕΜΑ : ΣΥΣΤΗΜΑΤΑ ΑΡΙΘΜΗΣΗΣ. ΔΙΑΡΚΕΙΑ: 1 περιόδους. 22/1/ :11 Όνομα: Λεκάκης Κωνσταντίνος καθ. Τεχνολογίας

Πληροφορική. Ενότητα 4 η : Κωδικοποίηση & Παράσταση Δεδομένων. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 9 : Συμπίεση δεδομένων. Δρ. Γκόγκος Χρήστος

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

Σχεδιαση Αλγοριθμων -Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο

Ανάκτηση Πληροφορίας

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

1 Διάσχιση κατευθυνόμενων γραφημάτων

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Πληροφορική Ι. Μάθημα 9 ο Συμπίεση δεδομένων. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Δρ.

13/5/2015 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ. Δομές Δεδομένων. Ουρές Προτεραιότητας

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

Κ15 Ψηφιακή Λογική Σχεδίαση 2: Δυαδικό Σύστημα / Αναπαραστάσεις

επιφάνεια πυριτίου Αναφορά στο Εκπαιδευτικό Υλικό : 5. Αναφορά στο Εργαστήριο :

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΑΣΚΗΣΗ 5 Ανάπτυξη Προγράμματος Συμπίεσης/Αποσυμπίεσης Αρχείων

Δομές Δεδομένων και Αλγόριθμοι. Λουκάς Γεωργιάδης

ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ

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

Πληροφορική 2. Δομές δεδομένων και αρχείων

Θέματα Συστημάτων Πολυμέσων

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Τετάρτη 5-12/11/2014. ΣΗΜΕΙΩΣΕΙΣ 3 ου και 4 ου ΜΑΘΗΜΑΤΟΣ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΑΡΧΙΤΕΚΤΟΝΙΚΗ Η/Υ Α ΕΞΑΜΗΝΟ

Πελάτες φθάνουν στο ταμείο μιας τράπεζας Eνα μόνο ταμείο είναι ανοικτό Κάθε πελάτης παρουσιάζεται με ένα νούμερο - αριθμός προτεραιότητας Όσο ο

Δομές Δεδομένων Ενότητα 4

Δομές Δεδομένων. Ενότητα 9: Τα ΔΔΑ ως Αναδρομικές Δομές Δεδομένων-Εφαρμογή Δυαδικών Δέντρων: Κωδικοί Huffman. Καθηγήτρια Μαρία Σατρατζέμη

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

Τεράστιες ανάγκες σε αποθηκευτικό χώρο

Συμπίεση Πολυμεσικών Δεδομένων

Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης

Αριθμητικά Συστήματα

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

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

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (3)

Τα µπιτ και η σηµασία τους. Σχήµα bit. ΚΕΦΑΛΑΙΟ 1: Αποθήκευση εδοµένων (1/2) 1.7 Αποθήκευση κλασµάτων 1.8 Συµπίεση δεδοµένων 1.9 Σφάλµατα επικοινωνίας

Εισαγωγή στην επιστήμη των υπολογιστών

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

Εισαγωγή στον Προγραμματισμό

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

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

Προγραμματισμός Ι (HY120)

Ψηφιακή Επεξεργασία και Ανάλυση Εικόνας Ενότητα 6 η : Συμπίεση Εικόνας. Καθ. Κωνσταντίνος Μπερμπερίδης Πολυτεχνική Σχολή Μηχανικών Η/Υ & Πληροφορικής

ΠΛΗ111. Ανοιξη Μάθηµα 7 ο. έντρο. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

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

Εισαγωγή στην Επιστήμη των Υπολογιστών

Αλγόριθµοι και Πολυπλοκότητα

Ελαφρύτατες διαδρομές

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 2 Εντολές Εισόδου/Εξόδου Τελεστές. Δρ. Γιώργος Λαμπρινίδης 23/10/2015 Η - Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Θέματα Υπολογισμού στον Πολιτισμό - Δένδρα. Δένδρα

3. ΤΕΧΝΙΚΕΣ ΣΥΜΠΙΕΣΗΣ ΠΟΛΥΜΕΣΩΝ

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

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μαθήματα 6 και 7 Αναπαράσταση της Πληροφορίας στον Υπολογιστή. 1 Στέργιος Παλαμάς

Ενδεικτικές Ερωτήσεις Θεωρίας

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 9: Άπληστοι Αλγόριθμοι. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ

DOMES DEDOMENWN KAI ANALUSH ALGORIJMWN. ParousÐash 8: Huffman Encoding

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

Εισαγωγή ενός νέου στοιχείου. Επιλογή i-οστoύ στοιχείου : Εύρεση στοιχείου με το i-οστό μικρότερο κλειδί


Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Εισαγωγή στην Επιστήμη των Υπολογιστών

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 3 : Αναπαράσταση αριθμών στο δυαδικό σύστημα. Δρ.

Συστήματα αρίθμησης. = α n-1 *b n-1 + a n-2 *b n-2 + +a 1 b 1 + a 0 όπου τα 0 a i b-1

Οργάνωση Υπολογιστών

Συστήματα Πολυμέσων. Ενότητα 3: Εισαγωγικά θέματα Συμπίεσης. Θρασύβουλος Γ. Τσιάτσος Τμήμα Πληροφορικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Αρχές κωδικοποίησης. Τεχνολογία Πολυµέσων 08-1

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Αρχιτεκτονική-Ι. Ενότητα 1: Εισαγωγή στην Αρχιτεκτονική -Ι

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

Σύστημα Πλεονάσματος και Αναπαράσταση Αριθμών Κινητής Υποδιαστολής

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

Group (JPEG) το 1992.

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

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

2. ΑΡΙΘΜΗΤΙΚΗ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. 2.1 Αριθμητικά συστήματα

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

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Αναπαράσταση αριθμών στο δυαδικό σύστημα. Δρ.

Διάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου

Transcript:

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΛΑΜΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2010 11 Ιστοσελίδα μαθήματος: http://eclass.teilam.gr/di288 1 Συμπίεση αρχείων 7ο ΕΡΓΑΣΤΗΡΙΟ Με τον όρο συμπίεση αρχείου χαρακτηρίζεται η διαδικασία αλλαγής της αναπαράστασης ενός αρχείου έτσι ώστε να καταλαμβάνει μικρότερο χώρο στο αποθηκευτικό μέσο ή να χρειάζεται λιγότερο χρόνο μετάδοσης, ενώ, ταυτόχρονα, να είναι δυνατή η αποκατάσταση της αρχικής μορφής από την συμπιεσμένη. Η συμπίεση με αυτές τις ιδιότητες ονομάζεται συμπίεση χωρίς απώλειες(lossless) σε αντιδιαστολή με την συμπίεση με απώλειες(lossy) η οποία χρησιμοποιείται κατά την κωδικοποιήση ορισμένων τύπων δεδομένων, όπως εικόνων jpeg. Οι αλγόριθμοι συμπίεσης εκμεταλλεύονται δύο χαρακτηριστικά των αρχείων: την περιοδικότητα και την ανισοκατανομή στις συχνότητες εμφάνισης χαρακτήρων ή block χαρακτήρων. 1.1 Κωδικοποίηση μήκους επανάληψης Η απλούστερη ιδέα συμπίεσης βασίζεται στο γεγονός ότι ορισμένα αρχεία περιέχουν μακριές ακολουθίες από επαναλαμβανόμενους χαρακτήρες. Παράδειγματος χάριν η επόμενη ακολουθία εμφανίζει πολλές επαναλήψεις. AAAABBBBAAAAABBBBBBCCCCCCCCCCCCCCBBABAAAABBBBBBCCCCD Αυτή η ακολουθία μπορεί να αποθηκευθεί σε πιο συμπιεσμένη μορφή, αντικαθιστώντας κάθε επαναλαμβανόμενη υποακολουθία χαρακτήρων από ένα αντίγραφο του χαρακτήρα και από ένα αριθμό που δηλώνει πόσες φορές επαναλαμβάνεται. Αυτός ο τρόπος συμπίεσης ονομάζεται κωδικοποίηση μήκους επανάληψης. Για παράδειγμα, η προηγούμενη ακολουθία μπορεί να κωδικοποιηθεί ως εξής: 4A4B5A6B14C2B1A1B4A6B4C1D Παρατηρούμε ότι δεν αξίζει να κωδικοποιούμε επαναλήψεις ενός ή δύο χαρακτήρων, αφού χρειάζονται δύο χαρακτήρες για την κωδικοποίηση. Για τα δυαδικά αρχεία(που περιέχουν μόνο 0 ή 1) χρησιμοποιείται μια τροποποιημένη έκδοση αυτής της μεθόδου. Η ιδέα είναι να αποθηκεύουμε μόνο τα μήκη της επανάληψης, εκμεταλευόμενοι το γεγονός ότι οι επαναλήψεις διαφοροποιούνται από 0 σε 1, αποφεύγοντας να αποθηκεύσουμε τα 0 και 1 καθαυτά. Για παράδειγμα, η επόμενη δυαδική λέξη 0000000000111000000111110000000001111111111111100000000000 μπορεί να κωδικοποιηθεί από την ακολουθία: 10,3,6,5,9,14,11 Προφανώς, το μειονέκτημα τις κωδικοποίησης επανάληψης είναι ότι απαιτεί χωριστές αναπαραστάσεις για το αρχείο που θα κωδικοποιηθεί και για την κωδικοποιημένη έκδοσή του, και έτσι δεν μπορεί να δουλεύει για όλα τα αρχεία(π.χ. σε αρχεία με αριθμητικά σύμβολα). Ετσι απαιτεί την ύπαρξη ειδικών χαρακτήρων που ονομάζονται χαρακτήρες διαφυγής escape characters. 1

1.2 Κωδικοποίηση Huffman Η κωδικοποίηση Huffman είναι μια κωδικοποίηση μεταβλητού μήκους. Οι χαρακτήρες με περισσότερες εμφανίσεις κωδικοποιούνται από λέξεις με μικρότερο μήκος απ ότι οι χαρακτήρες με λιγότερες εμφανίσεις. Το σύνολο αυτών των λέξεων ονομάζεται κώδικας Huffman. Ενας κώδικας με την ιδιότητα ότι καμιά λέξη του δεν είναι πρόθεμα μιας άλλης λέξης του ονομάζεται προθεματικός κώδικας(prefix code). Κάθε προθεματικός κώδικας μπορεί να αναπαρασταθεί(και να κατασκευασθεί χρησιμοποιώντας ένα (πλήρες)δυαδικόδένδρο,όπουσεκάθεαριστερόδεσμόθέτουμε 0καισεκάθεδεξιόδεσμό 1.Τασύμβολα είναι στα φύλλα του δένδρου και η λέξη του κώδικα που αντιστοιχεί στο σύμβολο παράγεται με ένα μονοπάτι από τη ρίζα προς το αντίστοιχο φύλλο. Τοεπόμενοδυαδικόδένδροαντιστοιχείσεέναπροθεματικόκώδικαγιατασύμβολα A, B, Cκαι D. A B C D Στο Aαντιστοιχείτο 0,στο Bτο 100,στο Cτο 101καιστο Dτο 11. Ετσι, η λέξη AABCDABBC κωδικοποείται από την ακολουθία 00100101110100100101 Η αποκωδικοποίηση κάθε ακολουθίας από bits είναι μοναδική: Αρχίζουμε από την ρίζα, και διαβάζουμε την ακολουθία από αριστερά προς δεξιά. Κινούμαστε προς το αριστερό ή το δεξιο παιδί κάθε κόμβου αν διαβάζουμε 0 ή 1 αντίστοιχα. Μόλις φτάσουμε σε φύλλο προκύπτει το αντίστοιχο σύμβολο και επιστρέφουμε στη ρίζα. Συνεχίζουμε μέχρις ότου εξαντλήσουμε την ακολουθία. Ετσι, η ακολουθία 0111011011110000100 κωδικοποιεί την λέξη A D C C D B A A B 1 101 101 11 100 0 00 Προφανώς, το μήκος της κωδικοποιημένης ακολουθίας εξαρτάται από τον προθεματικό κώδικα. Για παράδειγμα, ένα αρχείο στο οποίο εμφανίζονται οι χαρακτήρες A,B,C και D με τις επόμενες συχνότητες Σύμβολο Συχνότητα Κώδικας A 70 εκατομμύρια 0 B 3 εκατομμύρια 100 C 20 εκατομμύρια 101 D 37 εκατομμύρια 11 κωδικοποείται, με βάση τον προηγούμενο προθεματικό κώδικα, από μια δυαδική λέξη με μήκος 70 1+3 3+20 3+37 2 = 213 megabits Αντίθετα, αν χρησιμοποιούσαμε ASCII κωδικοποίηση θα απαιτούνταν 8 130 = 1040 megabits, ενώ αν χρησιμοποιούσαμε κωδικοποίηση σταθερού μήκους για παράδειγμα αν κωδικοποιούσαμε τα A, B, C και D με 00, 01, 10και 11αντίστοιχαθααπαιτούνταν 2 130=260 megabits. Μεδεδομένεςτιςσυχνοτήτεςεμφάνισης f 1, f 2,..., f n για nσύμβολα,οαλγόριθμοςτου Huffman υπολογίζει τον βέλτιστο προθεματικό κώδικα ώστε η κωδικοποίηση να έχει όσο το δυνατόν μικρότερο μήκος. Η υλοποίηση του αλγορίθμου του Huffman γίνεται με τη βοήθεια μιας ουράς προτεραιότητας Q με στοιχεία τις κορυφές του προθεματικού δένδρου και κλειδιά τις τιμές των συχνοτήτων κάθε κορυφής. 2

Αλγόριθμος Huffman Είσοδος: Ενας πίνακας συχνοτήτων F Εξοδος: Ενα δυαδικό δένδρο με n φύλλα Τα βήματα του αλγορίθμου Huffman είναι τα εξής: Αρχικά τοποθετούνται όλα τα σύμβολα ως κορυφές στην ουρά Q. Οσο η ουρά περιέχει τουλαχιστον δύο κορυφές. Αφαίρεσε δύο κορυφές με τις μικρότερες συχνότητες. Θέσε τις κορυφές αυτές ως παιδιά μιας νέας κορυφής. Θέσε ως συχνότητα αυτής της κορυφής το άθροισμα των παιδιών της. Πρόσθεσε αυτή την κορυφή στην ουρά προτεραιότητας. Παράδειγμα Γιακάποιααλυσίδα DNAπουαποτελείταιαπότιςβάσεις A, C, G, T είναιγνωστόότιοισυχνότητες εμφάνισης των βάσεων είναι 31%, 20%, 9% και 40% αντίστοιχα. Η εκτέλεση του αλγορίθμου του Huffman στο παράδειγμα αυτό είναι η εξής: 1. Οπίνακαςσυχνοτήτωνέχειπεριέχειτιςτιμές [31,20,9,40] Αρχικά, το δυαδικό δένδρο είναι κενό. Η ουρά προτεραιότητας είναι κενή. 2. Τοποθετούμεόλατασύμβολαστηνουρά Q 31 20 9 40 Q=[ A C G T ] 3. Αφαιρούμετα Cκαι Gπουέχουνταμικρότερακλειδιά 9και 20 31 40 Q=[ A T ] 4. Θέτουμετα Cκαι Gωςπαιδιάτης v 1 μεσυχνότητα 20+9 = 29. 0 0101 5. Εισάγουμετην v 1 στηνουρά Q. 31 40 Q=[ A T ] 31 40 29 Q=[ A T v 1 ] 3

6. Αφαιρούμετα Aκαι v 1 πουέχουνταμικρότερακλειδιά 31και 29 0 01 40 Q=[ T ] 7. Θέτουμετα A, v 1 ωςπαιδιάτης v 2 μεσυχνότητα 31+29 = 60. v 2 [60] 0 01 40 Q=[ T ] 8. Εισάγουμετην v 2 στηνουρά Q. v 2 [60] 40 60 Q=[ T v 2 ] 4

9. Αφαιρούμετα T, v 2 πουέχουνταμικρότερακλειδιά 40, 60 v 2 [60] Q=[ ] 10.Θέτουμετα T, v 2 ωςπαιδιάτης v 3 μεσυχνότητα 40+60 = 100. T[40] v 2 [60] Q=[ ] 11.Εισάγουμετην v 3 στηνουρά Q. T[40] v 2 [60] 100 Q=[ v 3 ] 5

12. Η ουρά έχει λιγότερα από δύο στοιχεία, τέλος. T[40] v 2 [60] C[20] G[9] 100 Q=[ v 3 ] Το μειονέκτημα της κωδικοποίησης Huffman είναι ότι απαιτεί από την αρχή την γνώση των συχνοτήτων εμφάνισης κάθε χαρακτήρα, επομένως χρειάζεται τροποποίηση για να εφαρμοστεί σε streaming αρχεία. Ασκήσεις 1. Μιααλυσίδα DNAμήκους100.000.000αποτελείταιαπότιςβάσεις A, C, G, T. Η Aέχει 5.000.000 εμφανίσεις, η C 25.000.000 εμφανίσεις, η G 60.000.000 εμφανίσεις και η T 10.000.000 εμφανίσεις. Να βρεθεί ο βέλτιστος προθεματικός κώδικας για την αποθήκευση αυτής της αλυσίδας. 2. Να βρεθεί ο βέλτιστος προθεματικός κώδικας Huffman για κάθε μια από τις επόμενες φράσεις(και στη συνέχεια να βρεθεί το μήκος της κάθε μιας κωδικοποιημένης φράσης) i. ΜΗΝΙΝ ΑΕΙΔΕ ΘΕΑ ΠΗΛΗΙΑΔΕΩ ΑΧΙΛΗΟΣ ΟΥΛΟΜΕΝΗΝ Η ΜΥΡΙ ΑΧΑΙΟΙΣ ΑΛΓΕ ΕΘΗΚΕ ii. ΤΟΥ ΚΥΚΛΟΥ ΤΑ ΓΥΡΙΣΜΑΤΑ ΠΟΥ ΑΝΕΒΟΚΑΤΕΒΑΙΝΟΥ ΚΑΙ ΤΟΥ ΤΡΟΧΟΥ ΠΟΥ ΩΡΕΣΨΗΛΑΚΙΩΡΕΣΣΤΑΒΑΘΗΠΗΑΙΝΟΥ iii. ΝΟΟΣ ΝΟΕΡΟΥ ΝΟΕΡΩΣ ΤΩ ΗΜΕΤΕΡΩ ΝΟΙ ΣΥΛΛΑΛΗΣΑΝΤΟΣ iv. ΝΕΡΟ ΛΙΝΑΡΙ ΝΕΡΟΛΙΝΑΡΟ ΝΕΡΟΚΑΘΑΡΟΛΙΝΑΡΟ v. ΝΙΨΟΝ ΑΝΟΜΗΜΑΤΑ ΜΗ ΜΟΝΑΝ ΟΨΙΝ vi. λοπαδοτεμαχοσελαχογαλεοκρανιολειψανοδριμυποτριμματοσιλφιοκαραβομελιτοκατακεχυμενοκιχλεπικοσσυφοφαττοπεριστεραλεκτρυονοπτοκεφαλλιοκιγκλοπελειολαγωοσιραιοβαφητραγανοπτερύγων (η μεγαλυτέρη ελληνική λέξη, πιάτο φαγητού, Αριστοφάνης, Εκκλησιάζουσες) 3. Να βρεθεί ο βέλτιστος προθεματικός κώδικας Huffman για την φράση ΟΝΟΜΑ ΕΠΩΝΥΜΟ ΤΟΥ ΠΑΤΡΟΝΥΜΟ στην οποία θα χρησιμοποιήσετε τα δικά σας στοιχεία και στη συνέχεια να κωδικοποιηθει. 6