Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

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

Παρόμοιες παρουσιάσεις


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

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

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

3 Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 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ο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 Συμπέρασμα: η προταξινόμηση δεν βοηθά την περίπτωση αυτή Σημειώσεις στο πρόβλημα της επιλογής

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

6 Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 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 Ίδια βελτίωση για την εύρεση της τυπικής τιμής

7 Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 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 Συμπέρασμα: η προταξινόμηση και πάλι βοηθά την επίδοση

8 Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 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 αγνώστους ?

9 Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 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)

10 Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 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)

11 Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 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 απαλοιφή (μερική περιστροφή)

12 Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 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 Δεν χρειάζεται έξτρα χώρος 100 210 1/21/212103-3 002

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

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

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

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

17 Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 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 δίνονται οι γενικές περιπτώσεις των περιστροφών

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

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

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

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

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

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

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

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

26 Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 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 θέσεις 9 1 53 42 1 2 3 4 5 6 9 5 3 1 4 2

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

28 Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 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

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

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

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

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

33 Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 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 Οπτικοποίηση με πίνακα

34 Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 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)

35 Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 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 Αποδοτικότητα

36 Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο36 b b Υπολογισμός a n. Θεωρούμε n = b l 2 l + b l-1 2 l-1 + … + b 1 2 + 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)

37 Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 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)

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

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


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

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google