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

Σχετικά έγγραφα
auth Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

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

Αλγόριθμοι Γραφημάτων

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

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

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

6η Διάλεξη Διάσχιση Γράφων και Δέντρων

Αναζήτηση Κατά Πλάτος

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Αναζήτηση Κατά Βάθος. Επιμέλεια διαφανειών: Δ. Φωτάκης Συμπληρώσεις: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Αναζήτηση Κατά Πλάτος

Αναζήτηση Κατά Βάθος. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Αναζήτηση Κατά Πλάτος

Αναζήτηση Κατά Βάθος. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Αναζήτηση Κατά Πλάτος

Αναζήτηση Κατά Βάθος. Επιµέλεια διαφανειών:. Φωτάκης διαφάνειες για SCC: A. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ

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

Αλγόριθµοι Τύπου Μείωσης Προβλήµατος

ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ 1

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

Στοιχεία Θεωρίας Γράφων (Graph Theory)

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

Αναζήτηση στους γράφους. - Αναζήτηση η κατά βάθος Συνεκτικές Συνιστώσες - Αλγόριθμος εύρεσης συνεκτικών συνιστωσών

Αλγόριθµοι Γραφηµάτων

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

ΕΠΛ 231 Δοµές Δεδοµένων και Αλγόριθµοι 11-1

Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

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

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας

auth Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

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

Εισαγωγή στους Αλγορίθμους

auth Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

Εισαγωγή στους Αλγόριθμους

Γράφοι: κατευθυνόμενοι και μη

Ενότητα 10 Γράφοι (ή Γραφήµατα)

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

Ορθότητα Χωρική αποδοτικότητα. Βελτιστότητα. Θεωρητική ανάλυση Εμπειρική ανάλυση. Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

Αλγόριθμοι Γραφημάτων

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες

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

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 3

Αλγόριθμοι Γραφημάτων

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

Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007

ΘΕΩΡΙΑ ΓΡΑΦΩΝ. 10 η Διάλεξη Κατευθυνόμενοι Γράφοι Βασικά χαρακτηριστικά Αλγόριθμοι διάσχισης κατευθυνόμενων γράφων Λίγα Λόγια για Αλυσίδες Markov

Κατ οίκον Εργασία 5 Σκελετοί Λύσεων

Ενότητα 5: Αλγόριθμοι γράφων και δικτύων

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης

Άσκηση 3 (ανακοινώθηκε στις 14 Μαΐου 2018, προθεσμία παράδοσης: 8 Ιουνίου 2018, 12 τα μεσάνυχτα).

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

Κεφάλαιο 3. Γραφήµατα v1.0 ( ) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

(elementary graph algorithms)

Θεωρία και Αλγόριθμοι Γράφων

Κεφάλαιο 3. Γραφήματα. v1.3 ( ) Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Διάλεξη 18: Γράφοι I Εισαγωγή

Αλγόριθμοι Γραφημάτων

Περιεχόμενα. Περιεχόμενα

Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές

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

Εισαγωγή στους Αλγορίθμους

Θεωρία και Αλγόριθμοι Γράφων

ΑΛΓΟΡΙΘΜΟΙ ΜΕ C. ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής. CMOR Lab. Computational Methodologies and Operations Research

Κεφάλαιο 4 Γραφήματα και Δένδρα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ EPL035: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

3η Σειρά Γραπτών Ασκήσεων

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 10η: Γράφοι Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

Σχέση Μερικής ιάταξης Σχέση Μερικής ιάταξης (ή µερική διάταξη): ανακλαστική, αντισυµµετρική, και µεταβατική. Αριθµοί: α β (αλλά όχι α < β), α β, Σύνολ

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 7

Σχέσεις Μερικής ιάταξης

Διάλεξη 18: Γράφοι I - Εισαγωγή

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

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

ΠΡΟΛΟΓΟΣ. Θεσσαλονίκη, Μάρτιος Οι συγγραφείς. Κ. Παπαρρίζος, Ν. Σαμαράς, Α. Σιφαλέρας.

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Διάλεξη 20: Γράφοι I - Εισαγωγή

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

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

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

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

Εισαγωγή στους Αλγορίθμους Ενότητα 7η

Εφαρμόζονται σε προβλήματα στα οποία δεν υπάρχει πληροφορία που να επιτρέπει την αξιολόγηση των καταστάσεων του χώρου αναζήτησης.

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή

Κατ οίκον Εργασία 5 Σκελετοί Λύσεων

Ουρά Προτεραιότητας: Heap

Σχεδίαση και Ανάλυση Αλγορίθμων

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις

Αλγόριθμοι Γραφημάτων

Σχέσεις Μερικής ιάταξης

Κεφάλαιο 3. Γραφήµατα v1.1 ( ) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Transcript:

Σχεδίαση Αλγορίθμων Μείωσε και Βασίλευε http://delab.csd.auth.gr/~gounaris/courses/ad auth gounaris/courses/ad Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

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

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

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

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

Ανάλυση της ταξινόμησης με εισαγωγή Χρονική αποδοτικότητα C worst (n) = n(n 1)/2 Θ(n 2 ) C avg (n) n 2 /4 Θ(n 2 ) C best (n) = n 1 Θ(n) (είναι γρήγορη και για σχεδόν ταξινομημένους πίνακες) Χωρική αποδοτικότητα: επιτόπιος αλγόριθμος (in place) Ευστάθεια: ναι

Ταξινόμηση με εισαγωγή - παράδειγμα Παράδειγμα: Ταξινόμησε τους αριθμούς 6, 4, 1, 8, 5 6 4 1 8 5 4 6 1 8 5 1 4 6 8 5 1 4 6 8 5 1 4 5 6 8 Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ -Eξάμηνο 4ο 7

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

Αναζήτηση κατά βάθος (DFS) Εξερευνούμε το γράφο G=(V,E) κινούμενοι πάντοτε όσο το δυνατό μακρύτερα από την τελευταία επισκεφθείσα κορυφή Ομοιότητα με την προδιατεταγμένη διάσχιση δένδρου 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) 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ο 9

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

Παράδειγμα Μη κατευθυνόμενος γράφος a b c d e f g h Σειρά επίσκεψης με αναζήτηση κατά βάθος: Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ -Eξάμηνο 4ο 11

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

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

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

Αλγόριθμος αναζήτησης κατά πλάτος Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ -Eξάμηνο 4ο 15

Παράδειγμα Μη κατευθυνόμενης γράφος a b c d e f g h Σειρά επίσκεψης με αναζήτηση κατά πλάτος: Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ -Eξάμηνο 4ο 16

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

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

Παράδειγμα κατευθυνόμενος γράφος a b c d e f g h Σειρά επίσκεψης με αναζήτηση κατά βάθος: Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ -Eξάμηνο 4ο 19

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

Παράδειγμα Κατευθυνόμενος γράφος a b c d e f g h Σειρά επίσκεψης ψηςμε αναζήτηση ηκατά πλάτος: Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ -Eξάμηνο 4ο 21

Τοπολογική ταξινόμηση Nα βρεθεί μία συνολική διάταξη συμβατή με την τροφική αλυσίδα tiger human fish shrimp plankton wheat sheep Το πρόβλημα επιλύεται αν και μόνο το αν ο γράφος είναι dag Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ -Eξάμηνο 4ο 22

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

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

Δημιουργία μεταθέσεων Johnson-Trotter Τέχνασμα: ένας βέλος δείχνει την κατεύθυνση ενός αντικειμένου. Ένα αντικείμενο ονομάζεται κινητό (mobile mobile) αν δείχνει σε ένα μικρότερο αντικείμενο. Δεν δημιουργούνται στιγμιότυπα μικρότερου μεγέθους. Αλγόριθμος Johnson-Trotter Initialize the first permutation ti 1 2 3 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ο 25

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

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

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