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

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

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

Διωνυµικοί Συντελεστές. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Δυναµικός Προγραµµατισµός 1

Δυναμικός Προγραμματισμός

Δυναμικός Προγραμματισμός

υναμικός Προγραμματισμός

Δυναμικός Προγραμματισμός

υναμικός Προγραμματισμός

Δυναµικός Προγραµµατισµός (ΔΠ)

Αλγόριθμοι και πολυπλοκότητα Δυναμικός Προγραμματισμός

υναμικός Προγραμματισμός

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

Θέματα Εφαρμογών Βάσεων Δεδομένων: Ιδιωτικότητα Δεδομένων

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

ιαίρει-και-βασίλευε ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

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

Δυναμικός Προγραμματισμός

Συντομότερες Διαδρομές

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

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

Συντομότερες Διαδρομές

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

Βραχύτερα Μονοπάτια σε Γράφους (CLR, κεφάλαιο 25)

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

Συντομότερες ιαδρομές

Αναδρομικές Σχέσεις «ιαίρει-και-βασίλευε»

Διαίρει-και-Βασίλευε. Διαίρει-και-Βασίλευε. MergeSort. MergeSort. Πρόβλημα Ταξινόμησης: Είσοδος : ακολουθία n αριθμών (α 1

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

Συντομότερες ιαδρομές

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

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

Συντομότερα Μονοπάτια για Όλα τα Ζεύγη Κορυφών

Διαίρει-και-Βασίλευε. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2

Προγραμματισμός Ι (ΗΥ120)

Τεχνικές Σχεδιασμού Αλγορίθμων

Πρόλογος. Πρόλογος 13. Πώς χρησιμοποείται αυτό το βιβλίο 17

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

Προσεγγιστικοί Αλγόριθμοι

HY118-Διακριτά Μαθηματικά

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

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

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

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

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

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

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

Διάλεξη 15: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου

(Γραμμικές) Αναδρομικές Σχέσεις

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

Ασυμπτωτικός Συμβολισμός

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

Αλγόριθμοι και πολυπλοκότητα Τα συντομότερα μονοπάτια(shortest Paths)

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

Ν. Μ. Μισυρλής. Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών. Καθηγητής: Ν. Μ. Μισυρλής 29 Μαΐου / 18

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

Το Πρόβλημα του Περιοδεύοντος Πωλητή - The Travelling Salesman Problem

Μάθημα 20: Δυναμικός Προγραμματισμός (DP)

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

Συνδυαστική Απαρίθμηση

Χαρακτηριστικά Δυναμικού Προγραμματισμού. Εισαγωγικά. 2 Δυναμικός Προγραμματισμός

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων

Graph Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Καούρη Γεωργία Μήτσου Βάλια

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

viii 20 Δένδρα van Emde Boas 543

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

Προσεγγιστικοί Αλγόριθμοι

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

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

Αλγοριθμικές Τεχνικές

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

ΑΝΑΚΟΙΝΩΣΗ ΚΑΤΑΤΑΚΤΗΡΙΩΝ ΕΞΕΤΑΣΕΩΝ ΑΚ. ΈΤΟΥΣ

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

Προγραμματισμός Ι (ΗΥ120)

(Γραμμικές) Αναδρομικές Σχέσεις

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

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

Σημειωματάριο μαθήματος 1ης Νοε. 2017

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

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

Ταξινόμηση με συγχώνευση Merge Sort

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

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

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

Παρουσίαση 2 ης Άσκησης:

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

ΣΤΟΧΑΣΤΙΚΕΣ ΔΙΕΡΓΑΣΙΕΣ & ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ Αίθουσα Νέα Κτίρια ΣΗΜΜΥ Ε.Μ.Π.

επιστρέφει το αμέσως μεγαλύτερο από το x στοιχείο του S επιστρέφει το αμέσως μικρότερο από το x στοιχείο του S

Υπολογιστικό Πρόβληµα

Αναζήτηση. 1. Σειριακή αναζήτηση 2. Δυαδική Αναζήτηση. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

καθ. Βασίλης Μάγκλαρης

Επιχειρησιακή Έρευνα. Εισαγωγική Διάλεξη

Πληροφοριακά Συστήματα Διοίκησης. Επισκόπηση μοντέλων λήψης αποφάσεων Τεχνικές Μαθηματικού Προγραμματισμού

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

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

1o Φροντιστήριο ΗΥ240

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

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

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

HY118- ιακριτά Μαθηµατικά

Αναδρομικοί Αλγόριθμοι

Transcript:

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

Δυναμικός προγραμματισμός Ο Δυναμικός Προγραμματισμός προτάθηκε από τον Αμερικανό μαθηματικό Richard Bellman περί το 1950 για την επίλυση προβλημάτων βελτιστοποίησης Προγραμματισμός εδώ σημαίνει σχεδιασμός Η κύρια ιδέα είναι: να επιλύσουμε πολλά μικρότερα επικαλυπτόμενα προβλήματα να καταγράψουμε τις λύσεις σε ένα πίνακα ώστε το κάθε υποπρόβλημα να επιλύεται μόνο μια φορά να λάβουμε τη λύση στην τελική κατάσταση του πίνακα Σχεδιασμός Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Κεφάλαιο 8ο 2

Παράδειγμα: αριθμοί Fibonacci Ορισμός αριθμών Fibonacci: f(0) = 0 f(1) = 1 f(n) = f(n 1) + f(n 2) Αναδρομικός υπολογισμός του n οστού αριθμού Fibonacci (top down) f(n) f(n 1) + f(n 2) f(n 2) + f(n 3) f(n 3) + f(n 4)... Σχεδιασμός Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Κεφάλαιο 8ο 3

Παράδειγμα: αριθμοί Fibonacci (2) Επαναληπτικός υπολογισμός του n οστού αριθμού Fibonacci (bottom up): f(0) = 0 f(1) ) = 1 f(2) = 0+1 = 1 f(3) = 1+1 = 2 f(4) = 1+2 = 3 f(n 2) = f(n 1) = f(n) ) = f(n 1) + f(n 2) Σχεδιασμός Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Κεφάλαιο 8ο 4

Παραδείγματα αλγορίθμων Δυν. Προγραμματισμού Υπολογισμός διωνυμικών συντελεστών Αλυσιδωτός πολλαπλασιασμός πινάκων Κατασκευή δυαδικών δένδρων αναζήτησης Αλγόριθμος Warshall s για μεταβατική κλειστότητα Αλγόριθμος Floyd για συντομότερα μονοπάτια Δύσκολα διακριτά προβλήματα βελτιστοποίησης: πρόβλημα περιοδεύοντας πωλητή πρόβλημα σάκου Σχεδιασμός Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Κεφάλαιο 8ο 5

Δυωνυμικοί συντελεστές Αλγόριθμος βασισμένος στην ταυτότητα (a a + b) n = C(n,0),0)a n b 0 +... + C(n,k)a n k b k +... + C(n,n)a) 0 b n Αναδρομη: C(n,k) ) = C(n 1, 1,k) + C(n 1, 1,k 1) 1), n > k > 0 C(n,0) = 1, C(n,n) ) = 1 for n 0 0 1 2..... k-1 1 k 0 1 1 1 1... n-1 C(n-1, 1,k-1) 1) C(n-1, 1,k) n C(n,k Σχεδιασμός Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Κεφάλαιο 8ο 6

Δυωνυμικοί συντελεστές ψευδοκώδικας Χρονική αποδοτικότητα: Θ(nk) Χωρική αποδοτικότητα: Θ(nk)

Αλγόριθμος Warshall Υπολογίζει τη μεταβατική κλειστότητα μιας σχέσης, δηλ. όλα τα μονοπάτια ενός κατευθυνόμενου γράφου Παράδειγμα: 3 1 1 3 2 4 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 2 4 0 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 Σχεδιασμός Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Κεφάλαιο 8ο 8

Αλγόριθμος Warshall (2) Κύρια ιδέα: υπάρχει ένα μονοπάτι μεταξύ των κορυφών i και j αν υπάρχει ακμή από την i στην j, υπάρχει μονοπάτι από την i στην j μέσω της κορυφής 1; υπάρχει μονοπάτι από την i στην j μέσω των κορυφών 1 ή/και 2;... υπάρχει μονοπάτι από την i στην j μέσω οποιασδήποτε από τις άλλες κορυφές 3 3 3 1 3 1 3 1 3 1 1 2 R 0 4 2 R 1 4 2 R 2 4 2 4 2 0010 0 0 0010 0 0 0010 0 0 0010 0 0 0010 0 0 1 0 0 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0100 0 0 0100 0 0 1 1 11 1 1111 1 1 1 1111 1 1 1 R 3 R 4 4 Σχεδιασμός Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Κεφάλαιο 8ο 9

Αλγόριθμος Warshall (3) Στο k οστό στάδιο βρίσκουμε αν υπάρχει ένα μονοπάτι μεταξύ των κορυφών i, j χρησιμοποιώντας μόνο τις κορυφές 1,,k R (k 1) [i,j] (μονοπάτι μόνο με 1,,k 1) { R (k) [i,j] = or (R (k 1) [ik] [i,k] & R (k 1) [kj]) [k,j]) (μονοπάτι από i σε k και από k σε i χρησιμοποιώντας μόνο τις 1,,k 1) 1) k i k th stage j Σχεδιασμός Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Κεφάλαιο 8ο 10

Αλγόριθμος Warshall παράδειγμα 3 1 0010 0 0 0010 0 0 1 0 0 1 1 0 1 1 R (0) = 0 0 0 0 R (1) = 0 0 0 0 2 4 0 1 0 0 0 1 0 0 R (2) = 0 0 1 0 0 0 1 0 0 0 1 0 1011 1 1 1011 1 1 1 1 11 1 0 0 0 0 R (3) = 0 0 0 0 R (4) = 0 0 0 0 1 1 1 1 1111 1 1 1 1111 1 1 1

Αλγόριθμος Warshall ψευδοκώδικας Algorithm Warshall(A[1..n,1..n]) R (0) A for k 1 to n do for i 1 to n do for j 1 to n do R (k) [i,j] R (k 1) [i,j] or R (k 1) [i,k] and R (k 1) [k,j] return R (k) Χρονική αποτελεσματικότητα: Θ(n 3 ) Χωρική αποτελεσματικότητα: Θ(n 2 ) επαναχρησιμοποίηση χώρου Σχεδιασμός Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Κεφάλαιο 8ο 12

Αλγόριθμος Floyd: All pairs shortest paths Να βρούμε τα συντομότερα μονοπάτια μεταξύ όλων των κορυφών ενός ζυγισμένου γράφου Ιδέα: να βρούμε τη λύση μέσω μιας σειράς πινάκων D(0), D(1), χρησιμοποιώντας ένα αρχικό υποσύνολο κορυφών ως ενδιάμεσες Παράδειγμα: 1 4 3 6 1 5 1 2 3 4 Σχεδιασμός Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Κεφάλαιο 8ο 13

Αλγόριθμος Floyd παράδειγμα 2 1 2 0 3 0 3 3 6 7 2 0 2 0 5 D (0) = 7 0 1 D (1) = 7 0 1 3 4 1 6 0 6 9 0 D (2) = 0 3 0 10 3 4 0 10 3 4 2 0 5 2 0 5 6 2 0 5 6 9 7 0 1 D (3) = 9 7 0 1 D (4) = 7 7 0 1 6 9 0 6 16 90 61690

Αλγόριθμος Floyd Algorithm Floyd(W[1..n,1..n]) D W for k 1 to n do for i 1 to n do for j 1 to n do D[i,j] min(d[i,j],d[i,k]+d[k,j]) i [ij] [ik] [kj]) return D Χρονική και Χωρική αποτελεσματικότητα Πότε δεν δουλεύει?? Αρχή της βελτιστότητας Σχεδιασμός Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Κεφάλαιο 8ο 15

Βέλτιστα Δυαδικά Δένδρα Αναζήτησης Τα κλειδιά δεν αναζητώνται ισοπίθανα Έστωσαν τα κλειδιά A,B,C,D με πιθανότητες 01 0.1, 0.2, 02 0.4, 04 0.3 03 Ποιο είναι το μέσο κόστος αναζήτησης σε κάθε πιθανή δομή? Πόσες διαφορετικές δομές ςμπορούν να παραχθούν με n κόμβους? Καταλανικός αριθμός C(n)=comb(2n,n)/(n+1) )/( Σχεδιασμός Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Κεφάλαιο 8ο 16

Βέλτιστα Δυαδικά Δένδρα Αναζήτησης (2) Το C[i,j] δίνει το μικρότερο μέσο κόστος αναζήτησης σε ένα δένδρο με τα στοιχεία από i μέχρι χρjj Με βάση της αρχή της βελτιστότητας, το βέλτιστο δένδρο αναζήτησης παράγεται με βάση την αναδρομική εξίσωση: C[i,j] = min{c[i,k 1]+C[k+1,j]} k + Σp s για 1 i j n και i k j C[i,i] = p i Σχεδιασμός Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Κεφάλαιο 8ο 17

Βέλτιστα Δυαδικά Δένδρα Αναζήτησης (3) 0 1 j n 1 0 p 1 goal 0 p 2 i C[i,j] p n n+1 0 Σχεδιασμός Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Κεφάλαιο 8ο 18

Βέλτιστα Δυαδικά Δένδρα Αναζήτησης (4) Παράδειγμα: κλειδί A B C D πιθανότητα 0.1 0.2 0.4 0.3 i j 0 1 2 3 4 1 0.1.4 1.1 11 1.7 17 i j 0 1 2 3 4 1 1 2 3 3 C 2 0.2.8 1.4 2 2 3 3 B D 3 0.4 1.0 4 0.3 5 0 5 3 3 3 4 4 A βέλτιστο BST Χρονική αποτελεσματικότητα: Θ(n 3 ) αλλά μπορεί να μειωθεί σε Θ(n 2 ) Χρονική αποτελεσματικότητα: Θ(n ) αλλά μπορεί να μειωθεί σε Θ(n ) αν εκμεταλλευτούμε την μονοτονικότητα στον πίνακα ριζών. Χωρική αποτελεσματικότητα: Θ(n 2 )

Το πρόβλημα του σάκου Δίνονται n στοιχεία με βάρη w 1,w 2,,w n, αξίες v 1,v 2,,v n και χωρητικότητα σάκου W. Να βρεθεί το πολυτιμότερο υποσύνολο των στοιχείων που χωρούν στο σάκο Λύση με εξαντλητική αναζήτηση Έστω ότι το V[i,j] δίνει τη βέλτιστη λύση για τα πρώτα i στοιχεία και χωρητικότητα j. Σκοπός είναι ο υπολογισμός του V[n,W] Αναδρομή { max{v[i 1,j],v i +V[i 1,j w i ]} if j w i 0 V[i,j] = {V[i 1,j] if j w i <0 Σχεδιασμός Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Κεφάλαιο 8ο 20

Το πρόβλημα του σάκου (2) Παράδειγμα W=5 είδος βάρος αξία 1 2 12 2 1 10 3 3 20 4 2 15 i,j 0 1 2 3 4 5 0 0 0 0 0 0 0 1 0 2 0 3 0 4 0? Χρονική και Χωρική αποτελεσματικότητα Σχεδιασμός Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Κεφάλαιο 8ο 21

Συναρτήσεις Μνήμης Ένα μειονέκτημα του δυναμικού προγραμμα τισμού είναι ότι επιλύει υποπροβλήματα που δεν χρειάζονται τελικά Μια εναλλακτική τεχνική είναι ο συνδυασμός της top down με την bottom up προσέγγιση (δηλ. αναδρομή συν ένα πίνακα προσωρινών αποτελεσμάτων) Σχεδιασμός Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Κεφάλαιο 8ο 22

Συναρτήσεις Μνήμης (2) Algorithm MFKnapsack(i,j) if V[i,j]<0 if j<weights[i] value MFKnapack[i 1,j] else value max{mfknapsack(i 1,j), Vl Values[i] + MFKnapsack[i 1,j Weights[i]]} 1jWiht[i]]} V[i,j] value return V[i,j] Σχεδιασμός Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Κεφάλαιο 8ο 23

Συναρτήσεις Μνήμης (3) Παράδειγμα W=5 είδος βάρος αξία 1 2 12 2 1 10 3 3 20 4 2 15 i,j 0 1 2 3 4 5 0 0 0 0 0 0 0 1 0 2 0 3 0 4 0? Χρονική και Χωρική αποτελεσματικότητα: παραμένουν ίδιες Σχεδιασμός Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Κεφάλαιο 8ο 24