Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο1 Μετασχημάτισε και Κυριάρχησε Μπορούμε να επιλύσουμε ένα πρόβλημα με μετασχηματισμό σε: b απλοποίηση.

Slides:



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

Αλγόριθμοι σχεδίασης βασικών 2D σχημάτων (ευθεία)
Βασικές Συναρτήσεις Πινάκων
ΜοντελοποίησηΈργα ΜαθήματαΑξιολόγηση Αναστοχασμος Μαθήματα.
Τα στοιχειώδη περί γεωδαιτικών υπολογισμών
ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
Ισορροπημένα Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να επιτύχουμε χρόνο εκτέλεσης για.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Δυναμικός Κατακερματισμός.
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A εισαγωγή αναζήτησηεπιλογή διατεταγμένος πίνακας.
Αλγόριθμοι Ταξινόμησης
Σχεδίαση Αλγορίθμων Προτεινόμενα βιβλία:
Ψηφιακά Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να χρησιμοποιήσουμε την παραπάνω αναπαράσταση.
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος γ
Δρ. Παναγιώτης Συμεωνίδης
Επιλογή Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο.
Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL
ΗΥ150 – Προγραμματισμός Ξενοφών Ζαμπούλης ΗΥ-150 Προγραμματισμός Ταξινόμηση και Αναζήτηση.
Εργασία Η υλοποίηση του αλγορίθμου συγχώνευσης θα πρέπει να χρησιμοποιεί την ιδέα των ροών (streams). Θα πρέπει να υπάρχουν δύο διαφορετικά είδη.
Κεφάλαιο 2ο Πεπερασμένα αυτόματα.
Γραφήματα & Επίπεδα Γραφήματα
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Συναρτησιακές Εξαρτήσεις.
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
Διαίρει-και-Βασίλευε
Δυναμικός Προγραμματισμός
Η αλληλουχία των ενεργειών δεν είναι πάντα μία και μοναδική!!!
Προγραμματισμός ΙΙ Διάλεξη #6: Απλές Δομές Ελέγχου Δρ. Νικ. Λιόλιος.
Ισορροπημένα Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να επιτύχουμε χρόνο εκτέλεσης για.
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Χειριζόμαστε ένα σύνολο στοιχείων όπου το κάθε.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
Δομές Δεδομένων 1 Στοίβα. Δομές Δεδομένων 2 Στοίβα (stack)  Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή – πρώτη εξαγωγή)  Περιορισμένος.
Ψηφιακά Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να χρησιμοποιήσουμε την παραπάνω αναπαράσταση.
Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο1 Άπληστοι αλγόριθμοι βελτιστοποίησης Προβλήματα βελτιστοποίησης λύνονται με μια σειρά επιλογών.
Τεχνολογία ΛογισμικούSlide 1 Αλγεβρική Εξειδίκευση u Καθορισμός τύπων αφαίρεσης σε όρους σχέσεων μεταξύ τύπων λειτουργιών.
Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο1 Διαίρει και Βασίλευε γνωστότερη Η γνωστότερη μέθοδος σχεδιασμού αλγορίθμων: Διαιρούμε.
Ουρά Προτεραιότητας: Heap
Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο1 Ωμή Βία Είναι μία άμεση προσέγγιση που βασίζεται στην εκφώνηση του προβλήματος και τους ορισμούς.
Συντομότερες Διαδρομές
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο
Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο1 Μείωσε και Βασίλευε Μειώνουμε το στιγμιότυπο του προβλήματος σε ένα μικρότερο στιγμιότυπο.
Ταξινόμηση και Αναζήτηση
Χωρικοί-χρονικοί συμβιβασμοί
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεδιασμός Σχεσιακών Σχημάτων.
Διαφάνειες παρουσίασης Πίνακες (συνέχεια) Αριθμητικοί υπολογισμοί Αναδρομή.
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 3 Η Σημασιολογία των Γλωσσών Προγραμματισμού Προπτυχιακό.
Αναζήτηση – Δέντρα (2 ο Μέρος) Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων)
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ.
Δομές Δεδομένων - Ισοζυγισμένα Δυαδικά Δένδρα (balanced binary trees)
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες:
Λεξικό, Union – Find Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Quicksort Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο.
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - 4ο εξάμηνο1 Ανάλυση Αλγορίθμων b Θέματα: Ορθότητα Χρονική αποδοτικότητα Χωρική αποδοτικότητα Βελτιστότητα b Προσεγγίσεις:
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές TSP, Μέτρα κεντρικότητας, Dijkstra Data Engineering Lab.
Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - 4ο εξάμηνο1 Ανάλυση Αλγορίθμων b Θέματα: Ορθότητα Χρονική αποδοτικότητα Χωρική αποδοτικότητα Βελτιστότητα.
ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ. Δυαδική αναζήτηση (Binary search) ΔΕΔΟΜΕΝΟ: ένα μεγάλο αρχείο που περιέχει τιμές z [0,1,…,n-1] ταξινομημένες.
Μετασχημάτισε και Κυριάρχησε
Δυναμικός Κατακερματισμός
Διδάσκων: Δρ. Τσίντζα Παναγιώτα
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο
Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε χρόνο εκτέλεσης
Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης
Ουρά Προτεραιότητας (priority queue)
Δομές Αναζήτησης Χειριζόμαστε ένα σύνολο στοιχείων όπου το κάθε στοιχείο έχει ένα κλειδί από ολικά διατεταγμένο σύνολο Θέλουμε να υποστηρίξουμε δύο.
14η Διάλεξη Δέντρα Δυαδικής Αναζήτησης Ε. Μαρκάκης
Δυναμικός Κατακερματισμός
Μεταγράφημα παρουσίασης:

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο1 Μετασχημάτισε και Κυριάρχησε Μπορούμε να επιλύσουμε ένα πρόβλημα με μετασχηματισμό σε: b απλοποίηση στιγμιότυπου b Ένα περισσότερο βολικό στιγμιότυπο του ιδίου προβλήματος (απλοποίηση στιγμιότυπου) Προταξινόμηση, Gaussian απαλοιφή, αντιστροφή πίνακα, υπολογισμός ορίζουσας b αλλαγή αναπαράστασης b Μία διαφορετική αναπαράσταση του ίδιου στιγμιότυπου (αλλαγή αναπαράστασης) Ισοζυγισμένα δυαδικά δένδρα, σωροί και ταξινόμηση με σωρό, υπολογισμός πολυωνύμου με τον κανόνα του Horner, γρήγορος μετασχηματισμός Fourier b μείωση προβλήματος b ένα τελείως διαφορετικό πρόβλημα (μείωση προβλήματος) Μείωση σε προβλήματα γράφων, γραμμικός προγραμματισμός

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο2 Απλοποίηση στιγμιότυπου - Προταξινόμηση Ένα στιγμιότυπο ενός προβλήματος επιλύεται μετα- σχηματίζοντάς το σε ένα απλούστερο/ευκολότερο στιγμιότυπο του ιδίου προβλήματος Προταξινόμηση Προταξινόμηση: Πολλά προβλήματα με λίστες επιλύονται ευκολότερα αν οι λίστες είναι ταξινομημένες b b Μοναδικότητα στοιχείου b b Υπολογισμός της τυπικής τιμής (mode) b b Υπολογισμός επαναλαμβανόμενων στοιχείων b b Αναζήτηση b b Υπολογισμός του μεσαίου

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο3 Το πρόβλημα της επιλογής Βρες το k-οστό μικρότερο στοιχείο μεταξύ των A[1],…,A[n] Το ελάχιστο: k = 1Το ελάχιστο: k = 1 Το μέγιστο: k = nΤο μέγιστο: k = n Το μεσαίο: k = n/2Το μεσαίο: k = n/2 b Αλγόριθμοι με προταξινόμηση Ταξινόμησε τη λίσταΤαξινόμησε τη λίστα Επίστρεψε το A[k]Επίστρεψε το A[k] b Αλγόριθμοι με διαμερισμό (μείωσε και βασίλευε): Με διαμερισμό τοποθέτησε τον pivot στη θέση A[s]Με διαμερισμό τοποθέτησε τον pivot στη θέση A[s] Αν s=k, τότε επίστρεψε A[s]Αν s=k, τότε επίστρεψε A[s] Αλλιώς αν s<k, τότε επανάλαβε με την υπολίστα A[s+1],…,A[n]Αλλιώς αν s<k, τότε επανάλαβε με την υπολίστα A[s+1],…,A[n] Αλλιώς αν s>k, τότε επανάλαβε με την υπολίστα A[1],…,A[s-1]Αλλιώς αν s>k, τότε επανάλαβε με την υπολίστα A[1],…,A[s-1]

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο4 b b Αλγόριθμοι με προταξινόμηση: Ω(nlgn) + Θ(1) = Ω(nlgn) b b Αλγόριθμοι με διαμερισμό (μείωσε και βασίλευε): Χειρότερη περίπτωση: T(n) =T(n-1) + (n+1)  Θ(n 2 ) Καλύτερη περίπτωση: Θ(n) Μέση περίπτωση: T(n) =T(n/2) + (n+1)  Θ(n) Bonus: βρίσκει επίσης τα k μικρότερα στοιχεία b b Ειδικές περιπτώσεις max, min: καλύτεροι και απλούστεροι γραμμικοί αλγόριθμοι (ωμή βία) b Συμπέρασμα b Συμπέρασμα: η προταξινόμηση δεν βοηθά την περίπτωση αυτή Σημειώσεις στο πρόβλημα της επιλογής

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο5 Εύρεση επαναλαμβανόμενων στοιχείων b b Αλγόριθμος ωμής βίας: Θ(n 2 ) b b Αλγόριθμος με προταξινόμηση: Ταξινόμηση με συγχώνευση: Θ(nlgn) Σάρωσε τον πίνακα για την εύρεση ίδιων διαδοχικών στοιχείων: Θ(n) Συνολικά: Θ(nlgn) b Συμπέρασμα b Συμπέρασμα: η προταξινόμηση βελτιώνει σημαντικά

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο6 Έλεγχος μοναδικότητας στοιχείου b b Αλγόριθμος ωμής βίας: Θ(n 2 ) b Algorithm PresortedElementUniqueness Sort the array A for i  0 to n-2 do if A[i]=A[i+1] return false else return true b Συμπέρασμα b Συμπέρασμα: η προταξινόμηση βελτιώνει την επίδοση b b Ίδια βελτίωση για την εύρεση της τυπικής τιμής

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο7 Έλεγχος της τυπικής τιμής b Τυπική τιμή (mode) b Τυπική τιμή (mode) είναι το συχνότερο στοιχείο b Ωμή βία: b Ωμή βία: Σάρωσε τη λίστα, υπολόγισε τις συχνότητες, βρες τη μεγαλύτερη b Algorithm PresortedMode Sort the array A i  1; modefrequency  0; while i ≤ n-1 do runlength  1; runvalue  A[i]; while i+runlength≤n-1 and A[i+runlength]=runvalue runlength  runlength+1 if runlength>modefrequency modefrequency  runlength, modevalue  runvalue i  i+runlength return modevalue b Συμπέρασμα b Συμπέρασμα: η προταξινόμηση και πάλι βοηθά την επίδοση

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο8 Gaussian απαλοιφή b b Δίνεται σύστημα δύο εξισώσεων με δύο αγνώστους a 11 x + a 12 y = b 1 a 21 x + a 22 y = b 2 b b Έχει μία μοναδική λύση εκτός αν οι συντελεστές είναι ανάλογοι b b Εκφράζουμε τη μία μεταβλητή ως συνάρτηση της άλλης και αντικαθιστούμε για να επιλύσουμε μία εξίσωση b b Τι συμβαίνει σε σύστημα με n εξισώσεις και n αγνώστους ?

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο9 b b Μετασχηματίζουμε τη Ax=b σε A’x=b’, όπου ο πίνακας A’ είναι άνω τριγωνικός b b Η λύση είναι εφικτή με αντικατάσταση προς τα πίσω b Βασικές πράξεις Ανταλλαγή εξισώσεων Αντικατάσταση μίας εξίσωσης με ένα πολλαπλάσιο (μη μηδενικό) Αντικατάσταση μίας εξίσωσης με το άθροισμα ή τη διαφορά της εξίσωσης αυτής με το πολλαπλάσιο μίας άλλης b Παράδειγμα 2x 1 - x 2 + x 3 = 1 4x 1 + x 2 - x 3 = 5 x 1 + x 2 + x 3 = 0 Gaussian απαλοιφή (2)

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο10 b Algorithm GaussElimination for i  1 to n do A[i,n+1]  b[i] for i  1 to n-1 do for j  i+1 to n do for k  i to n+1 do A[j,k]  A[j,k]- A[i,k]*A[j,i]/A[i,i] b b Προβληματική λύση αν το A[i,i] είναι 0 ή πολύ μικρό Gaussian απαλοιφή (3)

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο11 b Algorithm GaussElimination2 for i  1 to n do A[i,n+1]  b[i] for i  1 to n-1 do pivotrow  i for j  i+1 to n do if |A[j,i]|>|A[pivot,i]| pivotrow  j for k  i to n+1 do swap(A[i,k],A[pivotrow,k]) for j  i+1 to n do temp  A[j,i]/A[i,i] for k  I to n+1 do A[j,k]  A[j,k]-A[I,k]*temp b Efficiency Gaussian απαλοιφή (μερική περιστροφή)

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο12 LU αποσύνθεση b b Υποπροϊόν of Gaussian απαλοιφής b b Παράδειγμα A=LU b b LUx=b. Συμβολίζουμε y=Ux  Ly=b b b Επιλύουμε το Ly=b, και μετά το Ux=y b b Επιλύουμε όσες φορές χρειάζεται με διαφορετικά b b b Δεν χρειάζεται έξτρα χώρος /21/

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο13 Αντιστροφή πίνακα b b AA -1 =I b ιδιάζων (singular) b Ο ιδιάζων (singular) πίνακας δεν έχει αντίστροφο b b Ένας πίνακας είναι ιδιάζων αν και μόνο αν κάποια από τις γραμμές είναι γραμμικός συνδυασμός άλλων γραμμών b b Εφαρμογή Gaussian απαλοιφής. Αν προκύψει άνω- τριγωνικός πίνακας χωρίς κάποιο μηδενικό στη διαγώνιο, τότε ο πίνακας δεν είναι ιδιάζων b b Πως θα βρούμε τον αντίστροφο ενός πίνακα? b b Ax j =e j

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο14 Υπολογισμός της ορίζουσας b b Ο γνωστός αναδρομικός τύπος b b Τι συμβαίνει αν το n είναι μεγάλο ? Απόδοση ? b b Εφαρμογή Gaussian απαλοιφής b b Η ορίζουσα ενός άνω-τριγωνικού πίνακα ισούται με το γινόμενο των στοιχείων της διαγωνίου b b Απόδοση ? b b Ο κανόνας του Cramer

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο15 Ταξινόμηση αλγορίθμων αναζήτησης b Στοιχειώδεις αλγόριθμοι αναζήτησης Σειριακή αναζήτηση Δυαδική αναζήτηση Αναζήτηση δυαδικού δένδρου b Αναζήτηση ισοζυγισμένου δένδρου Δένδρα AVL Κόκκινα-μαύρα δένδρα Πολυκατευθυνόμενα ισοζυγισμένα δένδρα (δένδρα 2-3, δένδρα 2-3-4, B-δένδρα) b Κατακερματισμός Ξεχωριστές αλυσίδες Ανοικτές διευθύνσεις

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο16 Ισοζυγισμένα δένδρα: δένδρα AVL b b Σε κάθε κόμβο, η διαφορά των υψών του αριστερού και του δεξιού υποδένδρου είναι το πολύ 1 b περιστροφές b Η ιδιότητα AVL διατηρείται με περιστροφές, κάθε φορά που το δένδρο δεν είναι ισοζυγισμένο b στη μέση περίπτωση b lg n ≤ h ≤ lg (n + 2) στη μέση περίπτωση: 1.01 lg n για μεγάλα n b b Μειονέκτημα: θέλει έξτρα χώρο για την διατήρηση του παράγοντα ισοζυγισμού των κόμβων b b Μία παρόμοια ιδέα: τα κόκκινα-μαύρα δένδρα (τα ύψη των υποδένδρων μπορούν να διαφέρουν μέχρι 2 φορές)

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο17 AVL περιστροφές b b Μικρά παραδείγματα: 1, 2, 3 3, 2, 1 1, 3, 2 3, 1, 2 b b Μεγαλύτερο παράδειγμα: 4, 5, 7, 2, 1, 3, 6 b b Στα σχήματα 6.4 και 6.5 δίνονται οι γενικές περιπτώσεις των περιστροφών

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο18 Γενική περίπτωση: απλή R-περιστροφή

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο19 Διπλή LR-περιστροφή

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο20 Παράγοντας ισοζυγισμού b παράγοντα ισοζυγισμού b Ο αλγόριθμος διατηρεί έναν παράγοντα ισοζυγισμού για κάθε κόμβο

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο21 Σωρός Ορισμός: Ορισμός: Ο σωρός (heap) είναι ένα δυαδικό δένδρο με τις εξής προϋποθέσεις: b b Είναι σχεδόν πλήρες: b b Το κλειδί κάθε κόμβου είναι ≥ από τα κλειδιά των παιδιών του

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο22 Συνέπειες ορισμού b b Δεδομένου του n, υπάρχει ένα μοναδικό δυαδικό δένδρο με n κόμβους που είναι σχεδόν πλήρες με h= lg n b b Η ρίζα έχει το μεγαλύτερο κλειδί b b Καθένα από τα δύο υποδένδρα είναι επίσης σωροί

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο23 Ταξινόμηση με σωρό Κτίζουμε το σωρό Απομακρύνουμε τη ρίζα – ανταλλάσουμε με το τελευταίο (δεξιότερο) φύλλο Φτιάχνουμε και πάλι το σωρό (πλην του τελευταίου φύλλου) Επαναλαμβάνουμε τα βήματα 2,3 μέχρι ο σωρός να περιέχει ένα μόνο στοιχείο

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο24 Κτίσιμο του σωρού b b Εισάγουμε τα στοιχεία με τη δεδομένη σειρά στο δυαδικό δένδρο με bfs b b Ξεκινώντας από τον τελευταίο (δεξιότερο) κόμβο που είναι πατέρας, τακτοποιούμε τον αντίστοιχο σωρό, αν δεν ικανοποιεί τις συνθήκες του ορισμού: 1. 1.Ανταλλάσουμε με το μεγαλύτερο παιδί 2. 2.Τακτοποιούμε το υποδένδρο που βρίσκεται στη θέση του μεγαλύτερου παιδιού Παράδειγμα:

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο25 Διαγραφή ρίζας Η ρίζα του σωρού εξάγεται και ο σωρός τακτοποιείται ως εξής: b b Η ρίζα ανταλλάσσεται με το τελευταίο φύλλο b b Η νέα ρίζα συγκρίνεται με κάθε παιδί της και αν ένα από αυτά είναι μεγαλύτερο από τη ρίζα, τότε το ανταλλάσουμε με αυτή b b Συνεχίζουμε τις συγκρίσεις/ανταλλαγές με τα παιδιά της νέας ρίζας μέχρι να φθάσει σε ένα επίπεδο του δένδρου όπου θα είναι μεγαλύτερη από τα αντίστοιχα παιδιά

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο26 Αναπαράσταση b b Χρησιμοποιούμε ένα πίνακα για να υποθηκεύσουμε το σωρό με bfs b b Παράδειγμα: b b Το αριστερό παιδί του κόμβου j είναι το 2j b b Το δεξιό παιδί του κόμβου j είναι το 2j+1 b b Ο πατέρας του κόμβου j είναι ο j /2 b b Οι πατρικοί κόμβοι βρίσκονται στις πρώτες n /2 θέσεις

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο27 Αλγόριθμος κατασκευής σωρού

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο28 Ανάλυση της ταξινόμησης με σωρό Με βάση την προηγούμενη διαφάνεια b b Η τακτοποίηση του σωρού στο ύψος j απαιτεί 2j συγκρίσεις b b Για το υποδένδρο στο επίπεδο i εκτελούνται 2(h-i) συγκρίσεις b b Συνολικά: Σ 2(h-i) 2 i = 2 ( n – lg (n + 1)) = Θ(n) i=0 h-1 # nodes at level i

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο29 Συνολικά για τον αλγόριθμο: Κτίσιμο σωρούΘ(n) Εξαγωγή ρίζας – ανταλλαγή με το τελευταίο φύλλο Τακτοποίηση σωρού (εκτός του τελευταίου φύλλου) Θ(logn) Επανάληψη (n-1) φορές των 2, 3 μέχρι ο σωρός να περιέχει ένα φύλλο Χειρότερη περίπτωση Χειρότερη περίπτωση: Θ(n) + Θ( n log n) = Θ(n log n) Μέση περίπτωση Μέση περίπτωση επίσης Θ(n log n) Ανάλυση της ταξινόμησης με σωρό (2)

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο30 Εισαγωγή σε σωρό b b Εισαγωγή στοιχείου στην τελευταία θέση του σωρού b b Σύγκριση με τον πατέρα, αν παραβιάζει ο ορισμός, τότε τους ανταλλάσουμε b b Συνεχίζουμε τις συγκρίσεις του νέου στοιχείου με τους κόμβους που βρίσκονται στο μονοπάτι προς τη ρίζα μέχρι να ισχύει ο ορισμός του σωρού Παράδειγμα: Αποτελεσματικότητα:

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο31 Κατασκευή σωρού b b Από επάνω προς τα κάτω: Ο σωρός μπορεί να κατασκευασθεί με διαδοχικές εισαγωγές σε ένα αρχικά κενό σωρό b b Από κάτω προς τα επάνω: Βάζουμε όλα τα στοιχεία στον πίνακα και τα τακτοποιούμε b b Ποιο είναι καλύτερο?

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο32 Ουρά προτεραιότητας b ουρά προτεραιότητας b Η ουρά προτεραιότητας είναι ένας αφηρημένος τύπος δεδομένων (ADT) ενός αταξινόμητου συνόλου με τις εξής πράξεις: Βρες το στοιχείο με τη μεγαλύτερη προτεραιότητα Διάγραψε το στοιχείο με τη μεγαλύτερη προτεραιότητα Εισάγαγε ένα στοιχείο με τυχαίο προτεραιότητα b b Ο σωρός είναι ιδανική δομή για την υλοποίηση ουρών προτεραιότητας

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο33 Ο κανόνας του Horner b b Ανακοινώθηκε στις αρχές του 19 ου αιώνα b b Κατά τον Knuth, η μέθοδος χρησιμοποιήθηκε από το Νευτονα b b Υπολογισμός του πολυωνύμου στο σημείο x p(x) = a n x n + a n-1 x n-1 + … + a 1 x + a 0 p(x) = ( … (a n x + a n-1 ) x + … )x + a 0 b b Παράδειγμα: υπολογισμός του p(x)=2x 4 -x 3 +3x 2 +x-5 στο x=3 p(x) = x (x (x (2x-1) + 3) + 1) - 5 b b Οπτικοποίηση με πίνακα

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο34 b Algorithm Horner(P[0..n],x) // Evaluate polynomial at a given point // Input: an array P[0..n] of coefficients and a number x //Output: the value of polynomial at point x p  P[n] for i  n-1 down to 0 do p  x*p + P[i] return p b b Αποτελεσματικότητα ? b Παραπροϊόν b Παραπροϊόν: συντελεστές του πηλίκου της διαίρεσης του p(x) δια (x-x 0 ) Ο κανόνας του Horner (2)

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο35 Δυαδική εκθετικοποίηση b b Ο κανόνας του Horner δεν είναι αποτελεσματικός για τον υπολογισμό του p(x)=x n at x=a. Εκφυλίζεται σε ωμή βία b b Έστω η δυαδική αναπαράσταση n=b l b l-1 … b i … b 1 b 0 b b n = p(x) = b l x l + b l-1 x l-1 + … + b 1 x + b 0 για x=2 b b Algorithm LeftRightBinaryExponentiation product  a for i  l-1 down to 0 do product  product * product if b i  1 then product  product*a return product b b Παράδειγμα: υπολογισμός a 13, n=13=1101 b b Αποδοτικότητα

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο36 b b Υπολογισμός a n. Θεωρούμε n = b l 2 l + b l-1 2 l-1 + … + b b 0 και πολλαπλασιάζουμε ανεξαρτήτους όρους b Algorithm RightLeftBinaryExponentiation term  a if b 0 =1 then product  a else product  1 for i  1 to l do term  term * term if b i = 1 then product  product * term return product b b Παράδειγμα: υπολογισμός a 13, n=13=1101 b b Αποδοτικότητα Δυαδική εκθετικοποίηση (2)

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο37 Ελάχιστο κοινό πολλαπλάσιο b b lcm(24,60)=120, lcm(11,5)=55 b b Παράδειγμα: 24 = 2 x 2 x 2 x 3 60 = 2 x 2 x 3 x 5 lcm(24,60) = (2x2x3) x 2 x 5 b b Αποτελεσματικότητα (απαιτείται λίστα πρώτων) b b lcm(m,n) = mn / gcd(m,n)

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο38 Μέτρηση μονοπατιών σε γράφο b b Το πλήθος των διαφορετικών μονοπατιών μήκους k>0 από τον κόμβο i στον κόμβο j ισούται με το στοιχείο (i,j) του πίνακα A k, όπου A ο πίνακας γειτνίασης b b Παράδειγμα b b Αποδοτικότητα

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο39 Μείωση σε προβλήματα γράφων b b Εφαρμόζεται σε πλήθος προβλημάτων παιχνιδιών και γρίφων b b Κτίζουμε το γράφο του χώρου καταστάσεων b b Παράδειγμα: χωρικός, λύκος, κατσίκα, λάχανο b b Διασχίζουμε το γράφο εφαρμόζοντας … ?