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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Αλγόριθμοι Αναζήτησης
Advertisements

-Στοίβα-Ουρά - Πλεονεκτήματα πινάκων -Δομές δεδομένων δευτερεύουσας μνήμης -Πληροφορική και δεδομένα -Παραδείγματα-Προβλήματα ψευδοκώδικα.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
Διακριτά Μαθηματικά ΙI Δυαδικά Δέντρα Αναζήτησης
Δομές Δεδομένων - Δυαδικά Δένδρα (binary trees)
Αλγόριθμοι Ταξινόμησης
11-1 ΜΑΘΗΜΑ 12 ο Γράφοι, Διάσχιση Γράφων Υλικό από τις σημειώσεις Ν. Παπασπύρου, 2006.
1Πέτρος ΣτεφανέαςΠρογραμματιστικές Τεχνικές ΓΡΑΦΟΙ (GRAPHS) ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Νίκος Παπασπύρου.
Συνέπεια Τόξου (Arc Consistency)
Γραφήματα & Επίπεδα Γραφήματα
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
Προσεγγιστικοί Αλγόριθμοι
A Balanced Tree Structure for Peer-to-Peer Networks
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Χειριζόμαστε ένα σύνολο στοιχείων όπου το κάθε.
Δομές Δεδομένων 1 Στοίβα. Δομές Δεδομένων 2 Στοίβα (stack)  Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή – πρώτη εξαγωγή)  Περιορισμένος.
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου.
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου.
Γράφοι: Προβλήματα και Αλγόριθμοι
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι12-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ο αλγόριθμος του Prim και ο αλγόριθμος του Kruskal.
Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο1 Άπληστοι αλγόριθμοι βελτιστοποίησης Προβλήματα βελτιστοποίησης λύνονται με μια σειρά επιλογών.
Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο1 Διαίρει και Βασίλευε γνωστότερη Η γνωστότερη μέθοδος σχεδιασμού αλγορίθμων: Διαιρούμε.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Διδάσκων: Παύλος Παυλικκάς1 Ολυμπιάδα Πληροφορικής Γράφοι – Διάσχιση.
Ε. ΠετράκηςΣτοίβες, Ουρές1 Στοίβες  Στοίβα: περιορισμένη ποικιλία λίστας  τα στοιχεία μπορούν να εισαχθούν ή να διαγραφούν μόνο από μια άκρη : λίστες.
Ουρά Προτεραιότητας: Heap
Lists– Λίστες 1. Αυτό-αναφορικές δομές Τα μέλη μίας δομής μπορεί να είναι οποιουδήποτε τύπου, ακόμα και δείκτες σε δομές του ίδιου τύπου. Χρησιμοποιώντας.
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής,
Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο1 Ωμή Βία Είναι μία άμεση προσέγγιση που βασίζεται στην εκφώνηση του προβλήματος και τους ορισμούς.
Συντομότερες Διαδρομές
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο
Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο1 Μετασχημάτισε και Κυριάρχησε Μπορούμε να επιλύσουμε ένα πρόβλημα με μετασχηματισμό σε: b απλοποίηση.
Χωρικοί-χρονικοί συμβιβασμοί
Διερεύνηση γραφήματος. Ένας αλγόριθμος διερεύνησης γραφήματος επισκέπτεται τους κόμβους του γραφήματος με μια καθορισμένη στρατηγική, π.χ. κατά εύρος.
Διαφάνειες παρουσίασης Πίνακες (συνέχεια) Αριθμητικοί υπολογισμοί Αναδρομή.
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Τμ. Πληροφορικής,
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 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 Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες:
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 4: Συνδεσμικότητα Data Engineering Lab 1.
Λεξικό, Union – Find Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Διερεύνηση γραφήματος. Ένας αλγόριθμος διερεύνησης γραφήματος επισκέπτεται τους κόμβους του γραφήματος με μια καθορισμένη στρατηγική, π.χ. κατά εύρος.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Αναζήτηση Κατά Βάθος Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - 4ο εξάμηνο1 Ανάλυση Αλγορίθμων b Θέματα: Ορθότητα Χρονική αποδοτικότητα Χωρική αποδοτικότητα Βελτιστότητα b Προσεγγίσεις:
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
ΔιαΙρεςη και κυριαρχια
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι13-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ο αλγόριθμος Dijkstra για εύρεση βραχυτέρων μονοπατιών.
1 ΤΜΗΜΑ ΜΠΕΣ Αλγόριθμοι Αναζήτησης Εργασία 1 Τυφλή Αναζήτηση.
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - 4ο εξάμηνο
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές TSP, Μέτρα κεντρικότητας, Dijkstra Data Engineering Lab.
Δομές ΔεδομένωνΤμήμα Πληροφορικής ΑΠΘ1 Δομές Δεδομένων - DFS σε κατευθυνόμενο γράφο - Ελάχιστα Μονοπάτια - Τοπολογική Ταξινόμηση - Eλάχιστα Ζευγνύοντα.
1 ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ. 2 Θέματα μελέτης Πρόβλημα αναζήτησης σε γραφήματα –Αναζήτηση κατά βάθος (Depth-first search – DFS) –Αναζήτηση κατά πλάτος (Breadth-first.
Θεωρία & Αλγόριθμοι Γράφων Θεωρία & Αλγόριθμοι Γράφων Εφαρμογές DFS Data Science Lab 1.
Γράφημα Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα:
Δυναμικός Κατακερματισμός
Επίλυση Προβλημάτων με Αναζήτηση
Διερεύνηση γραφήματος
Μέγιστη ροή Κατευθυνόμενο γράφημα 12 Συνάρτηση χωρητικότητας
Διδάσκων: Δρ. Τσίντζα Παναγιώτα
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - Κεφάλαιο 9ο
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο
EPL231 – Data Structures and Algorithms
Δυναμικός Προγραμματισμός
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
ΣΤΟΙΧΕΙΑ ΘΕΩΡΙΑΣ ΓΡΑΦΗΜΑΤΩΝ II
Δυναμικός Κατακερματισμός
Μεταγράφημα παρουσίασης:

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

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο2 b Μείωση κατά ένα: Ταξινόμηση με εισαγωγή Αλγόριθμοι αναζήτησης σε γράφους: – –DFS, BFS, τοπολογική ταξινόμηση Αλγόριθμοι για τη δημιουργία διατάξεων, υποσυνόλων b Μείωση κατά ένα σταθερό όρο: Δυαδική αναζήτηση Προβλήματα κίβδηλων νομισμάτων Πολλαπλασιασμός αλά ρωσικά Πρόβλημα του Josephus b Μείωση κατά μεταβλητό μέγεθος: Αλγόριθμος του Ευκλείδη Επιλογή με διαμέριση Παραδείγματα «Μείωσε και Βασίλευε»

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο3 Ποιά είναι η διαφορά? Έστω το πρόβλημα της ύψωσης σε δύναμη: a n b Ωμή Βία: b Διαίρει και Βασίλευε: b Μείωσε κατά ένα: b Μείωσε κατά ένα σταθερό όρο:

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο4 Ταξινόμηση με εισαγωγή Algorithm InsertionSort(A[0..n-1]) for i  1 to n-1 do v  A[i]; j  i-1; while j>=0 and A[j]>v do A[j+1]  A[j]; j  j-1 A[j+1]  v b b Βελτιώσεις: κόμβος φρουρός, δυαδική εισαγωγή, ταξινόμηση του Shell b b Αποδοτικότητα ?

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο5 Διάσχιση γράφων b b Πολλά προβλήματα απαιτούν τη συστηματική επεξεργασία των κορυφών ενός γράφου b b Αλγόριθμοι διάσχισης γράφου: Αναζήτηση κατά βάθοςΑναζήτηση κατά βάθος (depth-first search) Αναζήτηση κατά πλάτοςΑναζήτηση κατά πλάτος (breadth-first search)

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο6 Αναζήτηση κατά βάθος b b Εξερευνούμε το γράφο G=(V,E) κινούμενοι πάντοτε όσο το δυνατό μακρύτερα από την τελευταία επισκεφθείσα κορυφή b b Ομοιότητα με την προδιατεταγμένη διάσχιση δένδρου b Algorithm DFS(G) count :=0 mark each vertex with 0 (unvisited) for each vertex v ∈ V do if v is marked with 0 dfs(v) count  count + 1 mark v with count for each vertex w adjacent to v do if w is marked with 0 dfs(w)

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο7 Παράδειγμα – Μη κατευθυνόμενος γράφος b b Σειρά επίσκεψης με αναζήτηση κατά βάθος: ab ef cd gh

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο8 Τύποι ακμών σε ένα δάσος DFS b Δενδρικές ακμές b Δενδρικές ακμές (tree edges): ακμές που σχηματίζουν το δένδρο b Οπίσθιες ακμές b Οπίσθιες ακμές (back edges): ακμές προς κόμβους-προγόνους

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο9 Παράδειγμα – κατευθυνόμενος γράφος ab ef cd gh b Σειρά επίσκεψης με αναζήτηση κατά βάθος:

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο10 Τύποι ακμών σε ένα δάσος DFS b Δενδρικές ακμές b Δενδρικές ακμές (tree edges): ακμές που σχηματίζουν το δένδρο b Οπίσθιες ακμές b Οπίσθιες ακμές (back edges): ακμές προς κόμβους-προγόνους b Εμπρόσθιες ακμές b Εμπρόσθιες ακμές (forward edges): ακμές προς κόμβους-απογόνους b Διασταυρούμενες ακμές b Διασταυρούμενες ακμές (cross edges): καμία περίπτωση από τις ανωτέρω

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο11 Αναζήτηση κατά βάθος b b Η DFS μπορεί να υλοποιηθεί με γράφους που αναπαρίστανται: Πίνακα γειτνίασης: Θ(V 2 ) Συνδεδεμένες λίστες γειτνίασης: Θ(V+E) b b Δίνει δύο διακριτές διατάξεις κορυφών: προδιατεταγμένη: καθώς οι κορυφές συναντώνται για πρώτη φορά (όταν ωθούνται σε μία στοίβα) μεταδιατεταγμένη: καθώς οι κορυφές συναντώνται για δεύτερη φορά (όταν απωθούνται από τη στοίβα) b b Εφαρμογές (Hopcroft-Tarjan): Έλεγχος συνδεσιμότητας, εύρεση συνδεδεμένων συνιστωσών Έλεγχος κύκλων, σημεία συναρμογής Εύρεση του χώρου καταστάσεων του προβλήματος προς επίλυση (AI)

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

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο13 Αλγόριθμος αναζήτησης κατά πλάτος bfs(v) count  count+1 mark v with count initialize queue with v while queue is not empty do a  front of queue for each vertex w adjacent to a do if w is marked with 0 count  count+1 mark w with count add w to the end of the queue remove a from the front of the queue Algorithm BFS(G) count  0 mark each vertex with 0 for each vertex v € V do bfs(v)

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο14 Παράδειγμα – Μη κατευθυνόμενης γράφος ab ef cd gh b Σειρά επίσκεψης με αναζήτηση κατά πλάτος:

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο15 Παράδειγμα – Κατευθυνόμενος γράφος ab ef cd gh b Σειρά επίσκεψης με αναζήτηση κατά πλάτος:

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο16 b b Η BFS έχει την ίδια αποτελεσματικότητα με τη DFS αναλόγως αν ο γράφος υλοποιείται με: Πίνακες γειτνίασης: Θ(V 2 ) Συνδεδεμένες λίστες γειτνίασης: Θ(V+E) b b Δίνει μόνο μία διάταξη των κορυφών (η σειρά εισαγωγής/εξαγωγής από την ουρά είναι ίδια) Αναζήτηση κατά πλάτος: σημειώσεις

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο17 Κατευθυνόμενος άκυκλος γράφος (dag) b Dag είναι ένας κατευθυνόμενος γράφος χωρίς κύκλους b Προκύπτουν σε πολλά προβλήματα όπως: Δομές με προαπαιτούμεναΔομές με προαπαιτούμενα Τροφικές αλυσίδεςΤροφικές αλυσίδες b Βασίζονται σε μερικές διατάξεις του πεδίου

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο18 fish human shrimp sheep wheatplankton tiger b b Nα βρεθεί μία συνολική διάταξη συμβατή με τις μερικές διατάξεις Να διαταχθούν οι κόμβοι ώστε να μην περιμένει κάποιο για το γεύμα του (π.χ. από το κατώτερο προς το ανώτερο με συμβατό τρόπο προς την τροφική αλυσίδα) Το πρόβλημα επιλύεται αν και μόνο το αν ο γράφος είναι dag Τοπολογική ταξινόμηση

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο19 Αλγόριθμοι τοπολογικής ταξινόμησης 1. Αλγόριθμοι βασισμένοι σε DFS: Διασχίζουμε με DFS και καταγράφουμε τη διάταξη με την οποία οι κόμβοι απωθούνται από τη στοίβα Αναστρέφοντας τη διάταξη επιλύεται το πρόβλημα Αν συναντηθούν οπίσθιες ακμές  δεν είναι dag! 2. Αλγόριθμος με διαγραφή πηγής (source) Διαδοχικά βρίσκει και απομάκρυνει μία πηγή (ένας κόμβος χωρίς εισερχόμενες ακμές) b b Κοινή επίδοση Θ(V+E) με συνδεδεμένες λίστες γειτνίασης

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο20 Δημιουργία μεταθέσεων b Χρήσιμη σε εξαντλητικούς αλγορίθμους αναζήτησης b Απαίτηση ελάχιστης μεταβολής (minimal-change requirement) b Δίνεται: μία μετάθεση k-1 αντικειμένων b Μέθοδος: Δημιουργία μίας νέας μετάθεσης εισάγοντας το k-οστό αντικείμενο σε όλες τις δυνατές θέσεις μετακινούμενοι κατά μία κατεύθυνση (από τα αριστερά προς τα δεξιά). Στη συνέχεια, εισάγουμε το (k+1)-οστό αντικείμενο εναλλάσσοντας την κατεύθυνση (από τα δεξιά προς τα αριστερά) b Παράδειγμα

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο21 Δημιουργία μεταθέσεων – Johnson-Trotter Τέχνασμα κινητό (mobile) Τέχνασμα: ένας βέλος δείχνει την κατεύθυνση ενός αντικειμένου. Ένα αντικείμενο ονομάζεται κινητό (mobile) αν δείχνει σε ένα μικρότερο αντικείμενο. Δεν δημιουργούνται μικρότερα στιγμιότυπα. Αλγόριθμος Johnson-Trotter Initialize the first permutation … n while there exist a mobile integer k do find the largest mobile integer k swap k and the adjacent integer its arrow points to reverse the direction of all integers that are larger than k Παράδειγμα 123, 132, 312, 321, 231, 213 Επίδοση

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο22 Ο αλγόριθμος Johnson-Trotter δεν παράγει μεταθέσεις σε λεξικογραφική διάταξη Παράδειγμα 123, 132, 213, 231, 312, 321 Ιδέα: ξεκινούμε από το τέλος προς την αρχή και ελέγχουμε αν a n-1 <a n. Στη συνέχεια θεωρούμε την a n-2 θέση και βγάζουμε έξω το μικρότερο από τα τρία ψηφία, και τοποθετούμε τα υπόλοιπα δύο σε αύξουσα τάξη. Στη συνέχεια, οπισθοδρόμηση. Δημιουργία μεταθέσεων

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο23 Δημιουργία υποσυνόλων Χρήσιμη στο πρόβλημα του σάκου (εξαντλητική λύση). Δυναμοσύνολο : ένα σύνολο 2 n συνόλων Μείωση κατά ένα Ιδέα: δημιουργούμε ένα δυναμοσύνολο με τα αντικείμενα {1,2,…, n-1} και εισάγουμε το αντικείμενο n στο καθένα από αυτά. Παράδειγμα:

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο24 Χρησιμοποιούμε ένα bitstring για την αναπαράσταση των συνόλων: 101 ≈ {a 1, a 3 } Παράδειγμα: για 3 αντικείμενα έχουμε 8 σύνολα που αναπαρίστανται με 000, 001, 010, …, 110, 111. Επεκτάσεις b b Δεν υπάρχει λεξικογραφική διάταξη, συμπιεσμένη διάταξη (squashed order) b b Διάταξη με ελάχιστη αλλαγή (minimal change order) Gray code: 000, 001, 011, 010, 110, 111, 101, 100 Δημιουργία υποσυνόλων

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο25 b Μεταξύ n νομισμάτων με ίδια όψη, το ένα είναι κίβδηλο. Έστω ότι είναι ελαφρύτερο. b Χωρίζουμε τα νομίσματα σε δύο κατηγορίες από n/2 νομίσματα, συν 1 νόμισμα αν το n είναι περιττός αριθμός b Αναδρομική εξίσωση: b Τι θα συμβεί αν χωρίσουμε σε 3 κατηγορίες? Μείωση κατά σταθερό όρο: κίβδηλο νόμισμα

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο26 Πολλαπλασιασμός αλά ρωσικά b Αλλιώς καλείται μέθοδος του ρώσου χωρικού b Έστω δύο θετικοί ακέραιοι n και m b Αν το n είναι άρτιο, τότε : n. m = n/2. 2m b Αν το n είναι περιττό, τότε : n. m = (n-1)/2. 2m + m b Παράδειγμα :

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο27 Το πρόβλημα του Josephus b Ιστορικό πρόβλημα b N αποκλεισμένοι άνδρες, για να μην παραδοθούν, θα σκοτώσουν διαδοχικά ο ένας τον άλλο. Να βρεθεί ο τελευταίος επιζών. b Παράδειγμα για N = 6, 7 b Αναδρομική εξίσωση για τη θέση του επιζώντα J(2k) = 2J(k)-1J(2k) = 2J(k)-1 J(2k+1) = 2J(k)+1J(2k+1) = 2J(k)+1

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο28 Μείωση κατά μεταβλητό μέγεθος: υπολογισμός μέσου b Στατιστικά διατάξεων: βρες τον k-οστό αριθμό b Μία λύση είναι να ταξινομήσουμε και να επιλέξουμε τον k-οστό b Καλύτερα να διαμερίσουμε όπως στη γρήγορη ταξινόμηση b Παράδειγμα : 4, 1, 10, 9, 7, 12, 8, 2, 15 b Επίδοση στην καλύτερη, χειρότερη και μέση περίπτωση

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο29 Αναζήτηση παρεμβολής b Η δυαδική αναζήτηση δεν είναι πανάκεια b Δοθέντος ενός ταξινομημένου πίνακα A, όπου το A[l] είναι το ελάχιστο και A[r] το μέγιστο, να βρεθεί η θέση της τιμής v. b Λύση : δοκίμασε τη θέση x = l + (v-A[l])(r-l)/(A[r]-A[l]) b Επίδοση της καλύτερης, χειρότερης και μέσης περίπτωσης

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο30 Δυαδικά δένδρα αναζήτησης b b Τοποθέτηση κλειδιών σε ένα δυαδικό δένδρο με την ιδιότητα του δυαδικού δένδρου αναζήτησης: k <k>k Παράδειγμα 1: 5, 10, 3, 1, 7, 12, 9 Παράδειγμα 2: 4, 5, 7, 2, 1, 3, 6 Τι συμβαίνει με επαναλαμβανόμενα κλειδιά?

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο31 Αναζήτηση και εισαγωγή σε δυαδικό δένδρο b Αναζήτηση – εύκολη δουλειά b Εισαγωγή – αναζήτηση κλειδιού και εισαγωγή στο φύλλο όπου καταλήγει η αναζήτηση b Στη χειρότερη περίπτωση: h+1 συγκρίσεις κλειδιών b lgn ≤ h ≤ n–1 b Κατά μέσο όρο για τυχαία αρχεία: h = 1.41 lg n b Άρα: Χειρότερη περίπτωση: Θ(n)Χειρότερη περίπτωση: Θ(n) Avμέση περίπτωση: Θ(lgn)Avμέση περίπτωση: Θ(lgn) b Πλεονέκτημα: η ενδοδιατεταγμένη διάσχιση παράγει ταξινομημένες λίστες