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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

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

Transcript

1 Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα.0 Αλγοριθμική Τεχνική Απληστίας Ελάχιστες Διαδρομές Dijkstra, Bllman-Ford Ελάχιστα Συνδετικά Δένδρα Kruskal, Prim Σταύρος Δ. Νικολόπουλος 0- Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Wbag:

2 Αλγοριθμικές Τεχνικές Τεχνική Απληστίας Στην εμβληματική ταινία Wall Strt του 0, ο Michal Douglas σηκώνεται μπροστά σε ένα πλήθος μετόχων και διακηρύσσει... Η απληστία είναι καλή! Η απληστία είναι σωστή!! Η απληστία αποδίδει!!!

3 Αλγοριθμικές Τεχνικές Τεχνική Απληστίας Στη εμβληματική σχεδίαση αλγορίθμων ταινία Wall Strt του 0, ο Michal Douglas σηκώνεται μπροστά σε ένα πλήθος μετόχων και διακηρύσσει... Η απληστία είναι καλή? Η απληστία είναι σωστή?? Η απληστία αποδίδει???

4 Αλγοριθμικές Τεχνικές Τεχνική Απληστίας Δεν είναι εύκολο να ορίσουμε με ακρίβεια τι εννοούμε με τον όρο άπληστος αλγόριθμος (grdy algorithm). Ένας αλγόριθμος είναι άπληστος όταν δομεί μια λύση με μικρά βήματα, παίρνοντας «μυωπικές αποφάσεις» σε κάθε βήμα, με στόχο τη βελτιστοποίηση κάποιου κριτηρίου.

5 Αλγοριθμικές Τεχνικές Τεχνική Απληστίας Ένας άπληστος αλγόριθμος ακολουθεί την ευρετική (huristic) επίλυση προβλημάτων κάνοντας σε κάθε βήμα μια τοπική βέλτιστη επιλογή, με την «ελπίδα» τελικά να βρει μια ολική βέλτιστη λύση του προβλήματος!!! Θεμελιώδες χαρακτηριστικό : Σε κάθε βήμα ένας άπληστος αλγόριθμος κάνει μια τοπικά βέλτιστη επιλογή και δεν «ξανασκέφτεται» αυτή την επιλογή του!!!

6 Αλγοριθμικές Τεχνικές Τεχνική Απληστίας Εύλογο Ερώτημα!!!????? Κάνοντας μια τοπική βέλτιστη επιλογή σε κάθε βήμα, μπορούμε να επιτύχουμε ένα ολικό βέλτιστο? δηλ. μια βέλτιστη λύση του προβλήματός μας? δεδομένου ότι η άπληστη τεχνική δεν επιτρέπει να αναθεωρήσουμε επιλογές που έχουμε ήδη κάνει!!!

7 Αλγοριθμικές Τεχνικές Τεχνική Απληστίας Σε πολλά προβλήματα, η άπληστη στρατηγική αποτυγχάνει να δώσει βέλτιστη λύση!!! Μ Για παράδειγμα, στην κατάκτηση του υψηλότερου σημείου μιας οροσειράς! Τοπική βέλτιστη επιλογή : m «σε κάθε επανάληψη επίλεξε να μεταβαίνεις σε υψηλότερη θέση, ξεκινώντας από το σημείο Α»!!! Απληστία : σημείο οροσειράς m Βέλτιστο: σημείο οροσειράς Μ A

8 Αλγοριθμικές Τεχνικές Τεχνική Απληστίας Σε πολλά προβλήματα, η άπληστη στρατηγική αποτυγχάνει να δώσει βέλτιστη λύση!!! Για παράδειγμα, στην εύρεση μιας max διαδρομής σε ένα δένδρο! Τοπική βέλτιστη επιλογή : «σε κάθε επανάληψη επίλεξε τον κόμβο με το μεγαλύτερο κόστος και πρόσθεσέ τον στην διαδρομή»!!! Απληστία : κόστος διαδρομής Βέλτιστο: κόστος διαδρομής 0

9 Αλγοριθμικές Τεχνικές Τεχνική Απληστίας Σε πολλά προβλήματα, η άπληστη στρατηγική αποτυγχάνει να δώσει βέλτιστη λύση!!! Για παράδειγμα, στην εύρεση μιας max διαδρομής σε ένα δένδρο! Τοπική βέλτιστη επιλογή : «σε κάθε επανάληψη επίλεξε τον κόμβο με το μεγαλύτερο κόστος και πρόσθεσέ τον στην διαδρομή»!!! Απληστία : κόστος διαδρομής Βέλτιστο: κόστος διαδρομής 0

10 Αλγοριθμικές Τεχνικές Τεχνική Απληστίας Σε άλλα προβλήματα, η άπληστη τεχνική δίδει βέλτιστη λύση!!! Όπως, για παράδειγμα, στην ανταλλαγή ενός νομίσματος αξίας (Euro, USD, ) με το ελάχιστο πλήθος κερμάτων αξίας,, 0, 0. 0 = 0 = = = Τοπική βέλτιστη επιλογή : «σε κάθε επανάληψη επίλεξε το κέρμα με την μεγαλύτερη αξία που δεν ξεπερνάει το ποσό που θα πληρωθεί»! Απληστία = Βέλτιστο : = =0

11 Αλγοριθμικές Τεχνικές Τεχνική Απληστίας Σε άλλα προβλήματα, η άπληστη τεχνική δίδει βέλτιστη λύση!!! Τέλεια!!!... Η απληστία δουλεύει καλά!!! Νόμισμα αξίας: Κέρματα :,, 0,, 00 Απληστία :,,,,, Βέλτιστο:,,,,,!!!!!

12 Αλγοριθμικές Τεχνικές Τεχνική Απληστίας Σε άλλα προβλήματα, η άπληστη τεχνική δίδει βέλτιστη λύση!!! Τέλεια!!!... Η απληστία δουλεύει καλά!!! Νόμισμα αξίας:. $ Κέρματα :,, 0,, 00 Απληστία : x00, x, 0, x Βέλτιστο: x00, x, 0, x!!!!!

13 Αλγοριθμικές Τεχνικές Τεχνική Απληστίας Σε άλλα προβλήματα, η άπληστη τεχνική δίδει βέλτιστη λύση!!! Τέλεια!!!... Η απληστία δουλεύει καλά!!! Γραμματόσημα αξίας: 0 $ Γραμματόσημα :, 0,,, 0, 00, 0,, 00 Απληστία : 00,,,,,,,!!!!!

14 Αλγοριθμικές Τεχνικές Τεχνική Απληστίας Σε άλλα προβλήματα, η άπληστη τεχνική δίδει βέλτιστη λύση!!! Τέλεια!!!... Η απληστία δουλεύει καλά!!! Γραμματόσημα αξίας: 0 $ Γραμματόσημα :, 0,,, 0, 00, 0,, 00 Απληστία : 00,,,,,,, Βέλτιστο: 0, 0 Αποτυχία!!!?????

15 Αλγοριθμικές Τεχνικές Τεχνική Απληστίας Η απληστία θέλει μεγάλη προσοχή!!!????? Μεταφορικά, με την άπληστη τεχνική είναι σαν να «περπατάμε» σε «ναρκοθετημένο» πεδίο!!! Όλα φαίνονται καλά στην επιφάνεια, αλλά εάν λίγο δεν προσέξουμε οι κρυμμένες λεπτομέρειες μπορεί να πυροδοτήσουν την «έκρηξη»!!!... δηλ. την αποτυχία!!!... που είναι η κατάρρευση της ιδέας του αλγορίθμου μας!!!

16 Αλγοριθμική Τεχνική Απληστίας Τεχνική Απληστίας Είναι εύκολο να επινοήσουμε άπληστους αλγορίθμους για σχεδόν οποιοδήποτε πρόβλημα!!! Η πρόκληση είναι : Η εύρεση περιπτώσεων στις οποίες οι άπληστοι αλγόριθμοι λειτουργούν καλά, και η απόδειξη ότι πράγματι αποδίδουν!! Ας δούμε με ένα απλό παράδειγμα πόσο εύκολα μπορεί κάποιος να παρασυρθεί σε λάθος άπληστες προσεγγίσεις!!!

17 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Παράδειγμα Ας εξετάσουμε το πρόβλημα του Χρονοπρογραμματισμού Διαστημάτων (Intrval Schduling Problm).

18 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Στο πρόβλημα του Χρονοπρογραμματισμού Διαστημάτων έχουμε : Ένα πόρο : Για παράδειγμα, έναν υπερυπολογιστή, ένα ηλεκτρονικό μικροσκόπιο, ή μια αίθουσα διδασκαλίας, και πολλοί ζητούν να τον χρησιμοποιήσουν για κάποιες χρονικές περιόδους (ο πόρος μπορεί να χρησιμοποιηθεί το πολύ από ένα άτομο την φορά). Αιτήματα : Θέλω να χρησιμοποιήσω τον πόρο από την ώρα si έως την ώρα fi. Στόχος : Έχοντας ένα σύνολο n αιτημάτων A = {,,, n}, θέλουμε να μεγιστοποιήσουμε το πλήθος των αιτημάτων που θα γίνουν αποδεκτά!

19 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Έστω ένα σύνολο αιτημάτων A = {,,, n}. Το αίτημα i αντιστοιχεί σε ένα χρονικό διάστημα [s(i), f(i)]. Μοντελοποίηση: s() f() s() f()

20 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Ένα σύνολο αιτημάτων S λέγεται συμβατό (comatibl) εάν ανά δύο τα αιτήματά του δεν επικαλύπτονται χρονικά. Στόχος είναι να υπολογίσουμε ένα συμβατό υποσύνολο με το μέγιστο πλήθος διαστημάτων, το οποίο ονομάζουμε βέλτιστο (otimal).

21 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Ένα σύνολο αιτημάτων S λέγεται συμβατό (comatibl) εάν ανά δύο τα αιτήματά του δεν επικαλύπτονται χρονικά. Στόχος είναι να υπολογίσουμε ένα συμβατό υποσύνολο με το μέγιστο πλήθος διαστημάτων, το οποίο ονομάζουμε βέλτιστο (otimal). Συμβατό: S = {,, }

22 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Ένα σύνολο αιτημάτων S λέγεται συμβατό (comatibl) εάν ανά δύο τα αιτήματά του δεν επικαλύπτονται χρονικά. Στόχος είναι να υπολογίσουμε ένα συμβατό υποσύνολο με το μέγιστο πλήθος διαστημάτων, το οποίο ονομάζουμε βέλτιστο (otimal). Μη-συμβατό : S = {,,, }

23 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Ένα σύνολο αιτημάτων S λέγεται συμβατό (comatibl) εάν ανά δύο τα αιτήματά του δεν επικαλύπτονται χρονικά. Στόχος είναι να υπολογίσουμε ένα συμβατό υποσύνολο με το μέγιστο πλήθος διαστημάτων, το οποίο ονομάζουμε βέλτιστο (otimal). Βέλτιστο : S = {,,, }

24 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Ένα σύνολο αιτημάτων S λέγεται συμβατό (comatibl) εάν ανά δύο τα αιτήματά του δεν επικαλύπτονται χρονικά. Στόχος είναι να υπολογίσουμε ένα συμβατό υποσύνολο με το μέγιστο πλήθος διαστημάτων, το οποίο ονομάζουμε βέλτιστο (otimal). Βέλτιστο : S = {,,, }

25 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Βασική ιδέα ενός άπληστου αλγόριθμου o Χρησιμοποίησε έναν απλό κανόνα για την τοπική βέλτιστη επιλογή του πρώτου αιτήματος i (άπληστη επιλογή), απορρίπτοντας τα μη-συμβατά αιτήματα με αυτό. o Επίλεξε με βάση τον κανόνα το επόμενο αίτημα i, απορρίπτοντας τα μη-συμβατά αιτήματα με το i, και συνέχισε έως να εξαντληθούν όλα τα αιτήματα.

26 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Βασική ιδέα ενός άπληστου αλγόριθμου o Χρησιμοποίησε έναν απλό κανόνα για την τοπική βέλτιστη επιλογή του πρώτου αιτήματος i (άπληστη επιλογή), απορρίπτοντας τα μη-συμβατά αιτήματα με αυτό. o Επίλεξε με βάση τον κανόνα το επόμενο αίτημα i, απορρίπτοντας τα μη-συμβατά αιτήματα με το i, και συνέχισε έως να εξαντληθούν όλα τα αιτήματα.

27 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Βασική ιδέα ενός άπληστου αλγόριθμου o Χρησιμοποίησε έναν απλό κανόνα για την τοπική βέλτιστη επιλογή του πρώτου αιτήματος i (άπληστη επιλογή), απορρίπτοντας τα μη-συμβατά αιτήματα με αυτό. o Επίλεξε με βάση τον κανόνα το επόμενο αίτημα i, απορρίπτοντας τα μη-συμβατά αιτήματα με το i, και συνέχισε έως να εξαντληθούν όλα τα αιτήματα.

28 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Βασική ιδέα ενός άπληστου αλγόριθμου o Χρησιμοποίησε έναν απλό κανόνα για την τοπική βέλτιστη επιλογή του πρώτου αιτήματος i (άπληστη επιλογή), απορρίπτοντας τα μη-συμβατά αιτήματα με αυτό. o Επίλεξε με βάση τον κανόνα το επόμενο αίτημα i, απορρίπτοντας τα μη-συμβατά αιτήματα με το i, και συνέχισε έως να εξαντληθούν όλα τα αιτήματα.

29 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Βασική ιδέα ενός άπληστου αλγόριθμου o Χρησιμοποίησε έναν απλό κανόνα για την τοπική βέλτιστη επιλογή του πρώτου αιτήματος i (άπληστη επιλογή), απορρίπτοντας τα μη-συμβατά αιτήματα με αυτό. o Επίλεξε με βάση τον κανόνα το επόμενο αίτημα i, απορρίπτοντας τα μη-συμβατά αιτήματα με το i, και συνέχισε έως να εξαντληθούν όλα τα αιτήματα.

30 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Βασική ιδέα ενός άπληστου αλγόριθμου o Χρησιμοποίησε έναν απλό κανόνα για την τοπική βέλτιστη επιλογή του πρώτου αιτήματος i (άπληστη επιλογή), απορρίπτοντας τα μη-συμβατά αιτήματα με αυτό. o Επίλεξε με βάση τον κανόνα το επόμενο αίτημα i, απορρίπτοντας τα μη-συμβατά αιτήματα με το i, και συνέχισε έως να εξαντληθούν όλα τα αιτήματα. Άπληστη λύση : S = {,,, }

31 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής Η πρόκληση για το σχεδιασμό ενός καλού άπληστου αλγόριθμου βρίσκεται στην απόφαση για τον απλό κανόνα για την επιλογή!!! Για το πρόβλημα του Χρονοπρογραμματισμού Διαστημάτων, όπως και για πολλά άλλα, υπάρχουν πολλοί φυσικοί (καλοί και κακοί) κανόνες! Για παράδειγμα, απλοί κανόνες επιλογής θα μπορούσαν να είναι: Επίλεξε πάντα το διαθέσιμο διάστημα που ξεκινάει νωρίτερα, ή Αυτό που απαιτεί το μικρότερο χρονικό διάστημα ολοκλήρωσης, ή ακόμα Το διάστημα που απορρίπτει το μικρότερο πλήθος μη-συμβατών αιτημάτων, ή Το διαθέσιμο διάστημα που τελειώνει νωρίτερα.

32 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που ξεκινάει νωρίτερα δηλ. το αίτημα με το μικρότερο s(i)!!! Ιδέα της άπληστης επιλογής : Ο πόρος μας θα ξεκινά να χρησιμοποιείται όσο το δυνατόν νωρίτερα και έτσι θα μείνει χρόνος για να ικανοποιηθούν περισσότερα αιτήματα!

33 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που ξεκινάει νωρίτερα δηλ. το αίτημα με το μικρότερο s(i)!!!

34 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που ξεκινάει νωρίτερα δηλ. το αίτημα με το μικρότερο s(i)!!!

35 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που ξεκινάει νωρίτερα δηλ. το αίτημα με το μικρότερο s(i)!!!

36 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που ξεκινάει νωρίτερα δηλ. το αίτημα με το μικρότερο s(i)!!!

37 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που ξεκινάει νωρίτερα δηλ. το αίτημα με το μικρότερο s(i)!!!

38 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που ξεκινάει νωρίτερα δηλ. το αίτημα με το μικρότερο s(i)!!! Άπληστη λύση : S = {,,, } Βέλτιστη

39 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που ξεκινάει νωρίτερα δηλ. το αίτημα με το μικρότερο s(i)!!! Ερώτηση: Ο Κανόνας Τοπικής Επιλογής δίνει πάντα βέλτιστη λύση?????

40 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που ξεκινάει νωρίτερα δηλ. το αίτημα με το μικρότερο s(i)!!! Αντιπαράδειγμα????

41 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που ξεκινάει νωρίτερα δηλ. το αίτημα με το μικρότερο s(i)!!! Αντιπαράδειγμα????

42 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που ξεκινάει νωρίτερα δηλ. το αίτημα με το μικρότερο s(i)!!! Αντιπαράδειγμα???? Ο κανόνας αποτυγχάνει!!!

43 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που απαιτεί το μικρότερο χρονικό διάστημα δηλ. το αίτημα για το οποίο το δ(i) = f(i)-s(i) είναι όσο το δυνατό μικρότερο!!! Ιδέα της άπληστης επιλογής : Το επιλεγόμενο αίτημα έχοντας με μικρό χρόνο εξυπηρέτησης εκτιμάται ότι θα απορρίπτει το λιγότερο δυνατό πλήθος μη-συμβατών αιτημάτων κάθε φορά!

44 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που απαιτεί το μικρότερο χρονικό διάστημα δηλ. το αίτημα για το οποίο το δ(i) = f(i)-s(i) είναι όσο το δυνατό μικρότερο!!!

45 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που απαιτεί το μικρότερο χρονικό διάστημα δηλ. το αίτημα για το οποίο το δ(i) = f(i)-s(i) είναι όσο το δυνατό μικρότερο!!! δ()

46 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που απαιτεί το μικρότερο χρονικό διάστημα δηλ. το αίτημα για το οποίο το δ(i) = f(i)-s(i) είναι όσο το δυνατό μικρότερο!!! δ()

47 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που απαιτεί το μικρότερο χρονικό διάστημα δηλ. το αίτημα για το οποίο το δ(i) = f(i)-s(i) είναι όσο το δυνατό μικρότερο!!! δ()

48 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που απαιτεί το μικρότερο χρονικό διάστημα δηλ. το αίτημα για το οποίο το δ(i) = f(i)-s(i) είναι όσο το δυνατό μικρότερο!!! δ()

49 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που απαιτεί το μικρότερο χρονικό διάστημα δηλ. το αίτημα για το οποίο το δ(i) = f(i)-s(i) είναι όσο το δυνατό μικρότερο!!! Άπληστη λύση : S = {,,, } Βέλτιστη

50 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που απαιτεί το μικρότερο χρονικό διάστημα δηλ. το αίτημα για το οποίο το δ(i) = f(i)-s(i) είναι όσο το δυνατό μικρότερο!!! Ερώτηση: Ο Κανόνας Τοπικής Επιλογής δίνει πάντα βέλτιστη λύση?????

51 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που απαιτεί το μικρότερο χρονικό διάστημα δηλ. το αίτημα για το οποίο το δ(i) = f(i)-s(i) είναι όσο το δυνατό μικρότερο!!! Αντιπαράδειγμα????

52 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που απαιτεί το μικρότερο χρονικό διάστημα δηλ. το αίτημα για το οποίο το δ(i) = f(i)-s(i) είναι όσο το δυνατό μικρότερο!!! Αντιπαράδειγμα δ(.)????

53 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που απαιτεί το μικρότερο χρονικό διάστημα δηλ. το αίτημα για το οποίο το δ(i) = f(i)-s(i) είναι όσο το δυνατό μικρότερο!!! Αντιπαράδειγμα???? Αυτός ο κανόνας αποτυγχάνει!!!

54 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που απορρίπτει το μικρότερο πλήθος μη-συμβατών αιτημάτων δηλ. το αίτημα με τις λιγότερες «διενέξεις»!!! Ιδέα της άπληστης επιλογής : Το αίτημα να επιλέγεται έτσι ώστε πράγματι να απορρίπτει το λιγότερο δυνατό πλήθος μη-συμβατών αιτημάτων κάθε φορά!

55 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που απορρίπτει το μικρότερο πλήθος μη-συμβατών αιτημάτων δηλ. το αίτημα με τις λιγότερες «διενέξεις»!!!

56 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που απορρίπτει το μικρότερο πλήθος μη-συμβατών αιτημάτων δηλ. το αίτημα με τις λιγότερες «διενέξεις»!!!

57 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που απορρίπτει το μικρότερο πλήθος μη-συμβατών αιτημάτων δηλ. το αίτημα με τις λιγότερες «διενέξεις»!!!

58 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που απορρίπτει το μικρότερο πλήθος μη-συμβατών αιτημάτων δηλ. το αίτημα με τις λιγότερες «διενέξεις»!!!

59 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που απορρίπτει το μικρότερο πλήθος μη-συμβατών αιτημάτων δηλ. το αίτημα με τις λιγότερες «διενέξεις»!!!

60 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που απορρίπτει το μικρότερο πλήθος μη-συμβατών αιτημάτων δηλ. το αίτημα με τις λιγότερες «διενέξεις»!!! Άπληστη λύση : S = {,,, } Βέλτιστη

61 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που απορρίπτει το μικρότερο πλήθος μη-συμβατών αιτημάτων δηλ. το αίτημα με τις λιγότερες «διενέξεις»!!! Ερώτηση: Ο Κανόνας Τοπικής Επιλογής δίνει πάντα βέλτιστη λύση?????

62 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που απορρίπτει το μικρότερο πλήθος μη-συμβατών αιτημάτων δηλ. το αίτημα με τις λιγότερες «διενέξεις»!!! Αντιπαράδειγμα????

63 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που απορρίπτει το μικρότερο πλήθος μη-συμβατών αιτημάτων δηλ. το αίτημα με τις λιγότερες «διενέξεις»!!! Αντιπαράδειγμα????

64 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που απορρίπτει το μικρότερο πλήθος μη-συμβατών αιτημάτων δηλ. το αίτημα με τις λιγότερες «διενέξεις»!!! Αντιπαράδειγμα????

65 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που απορρίπτει το μικρότερο πλήθος μη-συμβατών αιτημάτων δηλ. το αίτημα με τις λιγότερες «διενέξεις»!!! Αντιπαράδειγμα????

66 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που απορρίπτει το μικρότερο πλήθος μη-συμβατών αιτημάτων δηλ. το αίτημα με τις λιγότερες «διενέξεις»!!! Αντιπαράδειγμα???? Και αυτός ο κανόνας αποτυγχάνει!!!

67 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που τελειώνει νωρίτερα δηλ. το αίτημα με το μικρότερο f(i)!!! Αυτή είναι επίσης μια αρκετά φυσική ιδέα: διασφαλίσουμε ότι οι πόροι μας απελευθερώνονται όσο το δυνατόν πιο σύντομα, και έτσι μεγιστοποιούμε το χρόνο που απομένει για την ικανοποίηση των άλλων αιτημάτων!!! Αυτός ο άπληστος κανόνας οδηγεί σε βέλτιστη λύση!!!!!!!

68 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που τελειώνει νωρίτερα δηλ. το αίτημα με το μικρότερο f(i)!!! Αυτός ο άπληστος κανόνας οδηγεί σε βέλτιστη λύση!!!!!!!

69 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που τελειώνει νωρίτερα δηλ. το αίτημα με το μικρότερο f(i)!!! Αυτός ο άπληστος κανόνας οδηγεί σε βέλτιστη λύση!!!!!!!

70 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που τελειώνει νωρίτερα δηλ. το αίτημα με το μικρότερο f(i)!!! Αυτός ο άπληστος κανόνας οδηγεί σε βέλτιστη λύση!!!!!!!

71 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που τελειώνει νωρίτερα δηλ. το αίτημα με το μικρότερο f(i)!!! Αυτός ο άπληστος κανόνας οδηγεί σε βέλτιστη λύση!!!!!!!

72 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που τελειώνει νωρίτερα δηλ. το αίτημα με το μικρότερο f(i)!!! Αυτός ο άπληστος κανόνας οδηγεί σε βέλτιστη λύση!!!!!!!

73 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που τελειώνει νωρίτερα δηλ. το αίτημα με το μικρότερο f(i)!!! Αυτός ο άπληστος κανόνας οδηγεί σε βέλτιστη λύση!!!!!!!

74 Αλγοριθμική Τεχνική Απληστίας Χρονοπρογραμματισμός Διαστημάτων Κανόνας Επιλογής : Επίλεξε πάντα το διαθέσιμο διάστημα που τελειώνει νωρίτερα δηλ. το αίτημα με το μικρότερο f(i)!!! Προσοχή! Αυτό είναι ένα παράδειγμα και όχι απόδειξη! Απαιτείται απόδειξη ότι αυτός ο άπληστος κανόνας δίδει πάντα βέλτιστη λύση!!! Αυτός ο άπληστος κανόνας οδηγεί σε βέλτιστη λύση!!!!!!!

75 Αλγοριθμική Τεχνική Απληστίας Χαρακτηριστικά της Τεχνικής Τα προβλήματα βελτιστοποίησης όπου η άπληστη τεχνική λειτουργεί καλά έχουν δύο κοινά χαρακτηριστικά: Ιδιότητα άπληστης επιλογής (Grdy choic rorty): Από ένα τοπικό βέλτιστο μπορούμε να επιτύχουμε ένα ολικό βέλτιστο, δηλ. μια βέλτιστη λύση του προβλήματος, χωρίς να αναθεωρούμε αποφάσεις που έχουμε ήδη πάρει! Ιδιότητα Βέλτιστης υποδομής (Otimal substructur rorty): Μια βέλτιστη λύση του προβλήματος μπορεί να κατασκευαστεί από βέλτιστες λύσεις των υποπροβλημάτων του!!

76 Αλγοριθμική Τεχνική Απληστίας Χαρακτηριστικά της Τεχνικής Τα υπέρ και τα κατά της απληστίας : ) Οι άπληστοι αλγόριθμοι κυρίως (αλλά όχι πάντα) αποτυγχάνουν να βρουν μια βέλτιστη λύση, επειδή συνήθως δεν λειτουργούν εξαντλητικά σε όλα τα δεδομένα. ) Αναλαμβάνουν δεσμεύσεις πολύ νωρίς για ορισμένες επιλογές που τους εμποδίζουν αργότερα να βρουν την καλύτερη συνολική λύση. o Για παράδειγμα, όλοι οι γνωστοί άπληστοι αλγόριθμοι για το πρόβλημα του χρωματισμού γραφημάτων, και για όλα τα άλλα NP-πλήρη προβλήματα, αποτυγχάνουν να δώσουν βέλτιστες λύσεις. ) Παρόλα αυτά, είναι χρήσιμοι επειδή είναι γρήγοροι και συχνά δίνουν καλές προσεγγίσεις στο βέλτιστο!!!

77 Αλγοριθμική Τεχνική Απληστίας Χαρακτηριστικά της Τεχνικής Τα υπέρ και τα κατά της απληστίας : ) Όταν ένας άπληστος αλγόριθμος επιλύει βέλτιστα ένα πρόβλημα, αυτό μας δείχνει κάτι ενδιαφέρον και χρήσιμο για τη δομή του ίδιου του προβλήματος: υπάρχει ένας τοπικός κανόνας αποφάσεων τον οποίο μπορεί κανείς να χρησιμοποιήσει για να κατασκευάσει βέλτιστες λύσεις! ) Η τοπικά βέλτιστη επιλογή που κάνει ένας άπληστος αλγόριθμος σε ένα βήμα δεν βασίζεται στις μελλοντικές επιλογές! ) Οι άπληστοι αλγόριθμοι μπορούν να χαρακτηριστούν ως «κοντόφθαλμοι» και είναι ιδανικοί μόνο για προβλήματα που έχουν την ιδιότητα της βέλτιστης υποδομής.

78 Αλγοριθμική Τεχνική Απληστίας Χαρακτηριστικά της Τεχνικής Τα υπέρ και τα κατά της απληστίας : ) Σε ορισμένες περιπτώσεις υπάρχουν πολλές άπληστες παραδοχές, αλλά μόνο λίγες από αυτές δίνουν βέλτιστη λύση (χρονοπρογραμματισμός διαστημάτων). ) Γενικά οι άπληστοι αλγόριθμοι είναι απλοί, γρήγοροι και εύκολα υλοποιήσιμοι καθώς βασίζονται μόνο σε τοπικές επιλογές και όχι σε μελλοντικές επιλογές ούτε σε λύσεις υποπροβλημάτων. ) Η απόδειξη της ορθότητας τους μπορεί να απαιτήσει αυστηρές μαθηματικές αποδείξεις και μερικές φορές είναι εξαιρετικά δύσκολη!! 0) Ωστόσο, όταν δεν έχουμε τίποτα άλλο στη διάθεσή μας η άπληστη τεχνική μπορεί να είναι η μόνη «σωτηρία» μας!!!

79 Αλγοριθμική Τεχνική Απληστίας Χαρακτηριστικά της Τεχνικής Τα υπέρ και τα κατά της απληστίας : ) Δεν υπάρχει γενικός κανόνας εφαρμογής της άπληστης μεθόδου σε ένα δεδομένο πρόβλημα, ωστόσο οι ίδιες οι προδιαγραφές του προβλήματος μπορεί να σας δώσουν μια καλή ιδέα! ) Οι προχωρημένες μαθηματικές έννοιες μπορεί να μας βοηθήσουν να αποδείξουμε ότι ένα πρόβλημα μπορεί να λυθεί βέλτιστα με την άπληστη τεχνική, αλλά τελικά όλα καταλήγουν στην διαίσθηση, την εμπειρία και την βαθιά γνώση του επιστήμονα! ) Παρά την αυστηρότητα της απληστίας, θα πρέπει να «κοιτάμε» τις άπληστες προσεγγίσεις με το μάτι ενός «ντετέκτιβ» και όχι ενός «επιστήμονα»!!!

80 Αλγοριθμική Τεχνική Απληστίας Χαρακτηριστικά της Τεχνικής Τα υπέρ και τα κατά της απληστίας : ) Η άπληστη τεχνική προτιμάται έναντι άλλων μεθόδων, όπως είναι ο δυναμικός προγραμματισμός, όταν αποδειχθεί ότι δίδει βέλτιστη λύση σε μια κλάση προβλημάτων!!! ) Παραδείγματα προβλημάτων και άπληστων αλγορίθμων βέλτιστης λύσης είναι: οι γνωστοί μας αλγόριθμοι συγχώνευσης και τοπολογικής ταξινόμησης, ο αλγόριθμος του Dijkstra για την εύρεση ελάχιστων διαδρομών, οι αλγόριθμοι των Kruskal και Prim για την εύρεση ελάχιστων συνδετικών δέντρων, και ο αλγόριθμος για την εύρεση βέλτιστων δέντρων Huffman.

81 Άπληστοι Αλγόριθμοι Ελάχιστες Διαδρομές dijkstra bllman-ford shortst ath algorithms

82 Άπληστοι Αλγόριθμοι Ελάχιστες Διαδρομές dijkstra bllman-ford shortst ath algorithms

83 Πρόβλημα Οδικό Δίκτυο

84 Πρόβλημα Οδικό Δίκτυο

85 Πρόβλημα 0 km Ελάχιστες Διαδρομές από την πόλη S km S km

86 Πρόβλημα Ελάχιστες Διαδρομές 0 0 S από την πόλη S

87 Πρόβλημα Ελάχιστες Διαδρομές 0 X 0 S από την πόλη S

88 Πρόβλημα Ελάχιστες Διαδρομές 0 S από την πόλη S X 0 d(s, X) =

89 Πρόβλημα Ελάχιστες Διαδρομές 0 S Y από την πόλη S X 0 d(s, X) =

90 Πρόβλημα Ελάχιστες Διαδρομές 0 S Y από την πόλη S X 0 d(s, X) = d(s, Y) =

91 Πρόβλημα Ελάχιστες Διαδρομές 0 0 από την πόλη S S Δένδρο Ελαχίστων Διαδρομών

92 Ελάχιστες Διαδρομές Βάρος ή Κόστος Διαδρομής Έστω G=(V,E) ένα γράφημα (κατευθυνόμενο ή μη), έμβαρο (δηλ. γράφημα στο οποίο κάθε ακμή φέρει κάποιο βάρος ή κόστος που κατά κανόνα δίδεται από μια συνάρτηση βάρους w : E R), και έστω P = (v, v,, vk) μια διαδρομή του G από τον κόμβο v στον vk. Το βάρος ή κόστος της διαδρομής P ορίζεται ως εξής: Όροι: Διαδρομή = Μονοπάτι

93 Ελάχιστες Διαδρομές Βάρος ή Κόστος Ελάχιστης Διαδρομής Ορίζουμε το βάρος ή κόστος μιας ελάχιστης διαδρομής (shortst ath) P = (v, v,, vk) ενός έμβαρου γραφήματος G από τον κόμβο v στον vk ως εξής: min{w(p): v d(v,vk) vk } σε κάθε άλλη περίπτωση Όροι: Ελάχιστη Διαδρομή = Συντομότατη Διαδρομή

94 Ελάχιστες Διαδρομές - Ιδιότητες Βασικές Παρατηρήσεις Είδαμε ότι τα προβλήματα όπου η άπληστη τεχνική λειτουργεί καλά έχουν δύο κοινά χαρακτηριστικά: Ιδιότητα άπληστης επιλογής (Grdy choic rorty): Από ένα τοπικό βέλτιστο μπορούμε να επιτύχουμε ένα ολικό βέλτιστο χωρίς να αναθεωρούμε αποφάσεις που έχουμε ήδη πάρει! Ιδιότητα Βέλτιστης υποδομής (Otimal substructur rorty): Μια βέλτιστη λύση του προβλήματος μπορεί να κατασκευαστεί από βέλτιστες λύσεις των υποπροβλημάτων του!! Εύλογο Ερώτημα Τι ισχύει για το πρόβλημα των Ελαχίστων Διαδρομών???????

95 Ελάχιστες Διαδρομές - Ιδιότητες Βασικές Παρατηρήσεις Ιδιότητα Βέλτιστης υποδομής (Otimal substructur rorty): Οι αλγόριθμοι υπολογισμού ελάχιστων διαδρομών βασίζονται κατά κανόνα στην ιδιότητα ότι μία ελάχιστη διαδρομή P : x ~> y ενός γραφήματος εμπεριέχει άλλες ελάχιστες διαδρομές!!! Η Ιδιότητα της Βέλτιστης Υποδομής των ελάχιστων διαδρομών διατυπώνεται ακριβέστερα στο Λήμμα. Υπενθυμίζουμε ότι η Ιδιότητα της Βέλτιστης Υποδομής αποτελεί μία από τις βασικές «ενδείξεις» για την δυνατότητα εφαρμογής τόσο της άπληστης τεχνικής όσο και του δυναμικού προγραμματισμού. Παρατήρηση: Ο αλγόριθμος του Dijkstra ανήκει στην κατηγορία των άπληστων αλγορίθμων, ενώ ο αλγόριθμος των Floyd-Watshall, τον οποίο θα εξετάσουμε σε επόμενη ενότητα, εμπίπτει στον δυναμικό προγραμματισμό!!!

96 Ελάχιστες Διαδρομές - Ιδιότητες Βασικές Παρατηρήσεις Έστω G=(V,E) ένα έμβαρο γράφημα, s V ένας κόμβος αφετηρίας και έστω d(s,u) το κόστος της ελάχιστης διαδρομής s ~> u. Τότε, για κάθε ακμή (u,v) E ισχύει: d(s,v) d(s,u) + w(u,v) u s 0 x Τριγωνική Ιδιότητα (Triangl Prorty) 0 v

97 Ελάχιστες Διαδρομές - Ιδιότητες Βασικές Παρατηρήσεις Έστω δύο ελάχιστες διαδρομές P και Q ενός γραφήματος. P ελάχιστη διαδρομή x ~> y Q ελάχιστη διαδρομή y ~> z? P Q ελάχιστη x ~> z y x z

98 Ελάχιστες Διαδρομές - Ιδιότητες Βασικές Παρατηρήσεις Έστω ότι η ελάχιστη διαδρομή x ~> z z x y η οποία αποτελείται από την διαδρομή P : x ~> y ακολουθούμενη από την Q : y ~> z Τότε: P είναι ελάχιστη διαδρομή x ~> y Q είναι ελάχιστη διαδρομή y ~> z

99 Ελάχιστες Διαδρομές - Ιδιότητες Ιδιότητα Βέλτιστης Υποδομής Λήμμα (Οι υποδιαδρομές από ε.δ αποτελούν ε.δ) Έστω G έμβαρο, P = (v,v,,vn) μια ε.δ v ~> vn και Q = (v,v+,,vq) μια υποδιαδρομή vp ~> vq της P. Τότε, η υποδιαδρομή Q είναι ελάχιστη διαδρομή vp ~> vq v P v Q vq P Q Εάν υπήρχε Q συντομότερη της Q, τότε P δεν θα ήταν ε.δ. vn

100 Ελάχιστες Διαδρομές - Ιδιότητες Ιδιότητα Βέλτιστης Υποδομής Πόρισμα (Οι υποδιαδρομές από ε.δ αποτελούν ε.δ) Έστω ότι η ελάχιστη διαδρομή P = (s,, v) διαμερίζεται P: s P u v Τότε, d(s,v) = d(s,u) + w(u,v) Απόδειξη: Από Λήμμα, η διαδρομή P είναι ελάχιστη από το κόμβο s στο κόμβο u. Επομένως, d(s,v) = w(p) = w(p ) + w(u,v) = d(s,u) + w(u,v)

101 Αλγόριθμος Dijkstra!!!!!!. Αλγόριθμος Dijkstra Βασική Ιδέα!!! x y s u S v V-S Επέκταση του Δένδρου Ελάχιστων Αποστάσεων κατά ένα κόμβο σε κάθε επανάληψη!... Άπληστη προσέγγιση!!!

102 Αλγόριθμος Dijkstra Βασική Ιδέα!!! x Άπληστη προσέγγιση!!! Ο αλγόριθμος διατηρεί ένα σύνολο S από κόμβους u για τους οποίους έχει υπολογίσει το κόστος d(s,u)=d(u) των ε.δ από τον κόμβο s. y s u v S V-S Δένδρο Ελαχίστων Διαδρομών με κόμβους του S Σε κάθε βήμα, ακλουθώντας ένα κριτήριο άπληστης επιλογής, κάνει τα εξής: ελέγχει τους κόμβους v V-S για τους οποίους υπάρχει διαδρομή της μορφής (s,,u,v), όπου (s,,u) η ε.δ s ~> u στο S και (u,v) Ε, και επιλέγει αυτόν που έχει την ελάχιστη τέτοια διαδρομή και τον προσθέτει στο S.

103 Αλγόριθμος Dijkstra Βασική Ιδέα!!! x Άπληστη προσέγγιση!!! Αρχικά S={s} και του d(s)=0 y s u S v V-S Στο βήμα i ( i n), κάνει τα εξής: () για κάθε κόμβο v V-S για τον οποίο διαδρομή της μορφής (s,,u,v), υπολογίζει το κόστος d (v) της συντομότερης διαδρομής μεταξύ όλων των διαδρομών αυτής της μορφής, δηλ. d (v) = min{d(u) + w(u,v)} u S : (u,v) Ε, και () επιλέγει τον κόμβο v V-S που ελαχιστοποιεί την ποσότητα d (v) μεταξύ όλων των κόμβων v V-S για τους οποίους διαδρομή (s,,u,v) και τον προσθέτει στο S θέτοντας d(v) = d (v).

104 Αλγόριθμος Dijkstra Παράδειγμα u s y Μια ενδιάμεση κατάσταση εκτέλεσης του Αλγόριθμου Το αρχικό (αρχικοποίηση), και δύο επαναλήψεις. x v S Στο Σχήμα έχουν εκτελεστεί Βήματα: z V-S Στο σύνολο S έχουν προστεθεί κόμβοι: ο κόμβος εκκίνησης s,και οι κόμβοι v και u.

105 Αλγόριθμος Dijkstra Παράδειγμα Βήμα u Αρχικοποίηση: S={s} και d(s)=0 s y x Βήμα Επέλεξε τον κόμβο v V-S, και τον πρόσθεσε στο S θέτοντας d(v) = v S d(s) = 0 d(v) = d(u) = z V-S d(x) =, d(y) =, d(z) = Βήμα Επέλεξε τον κόμβο u V-S, και τον πρόσθεσε στο S θέτοντας d(u) =

106 Αλγόριθμος Dijkstra Παράδειγμα Βήμα u d (v) = min{d(u) + w(u,v)} s y d (x) = min{+,0+,+} = x d (z) = min{+} = v S d(s) = 0 d(v) = d(u) = d (y) = min{+,+} = z V-S d(x) =, d(y) =, d(z) =

107 Αλγόριθμος Dijkstra Παράδειγμα Βήμα u d (v) = min{d(u) + w(u,v)} s y d (x) = min{+,0+,+} = x d (z) = min{+} = v S d(s) = 0 d(v) = d(u) = d (y) = min{+,+} = z V-S d(x) =, d(y) =, d(z) = Επιλέγει τον κόμβο x V-S διότι ελαχιστοποιεί την ποσότητα d (x) μεταξύ των κόμβων {y,x,z}.

108 Αλγόριθμος Dijkstra Παράδειγμα Βήμα y u d (y) = min{+,+} = x s d (v) = min{d(u) + w(u,v)} d (x) = min{+,0+,+} = d (z) = min{+} = v S d(s) = 0 d(v) = d(u) = z V-S d(x) =, d(y) =, d(z) = Προσθέτει τον κόμβο x στο S θέτοντας d(v) = Tο Δένδρο Ελαχίστων Διαδρομών επεκτείνεται με τον κόμβο x και με την ακμή (u,x) γιατί?

109 Αλγόριθμος Dijkstra Παράδειγμα Βήμα y u d (y) = min{+,+,+} = x s d (z) = min{+,+} = v S d(s) = 0 d(v) = d(u) = d (v) = min{d(u) + w(u,v)} z V-S d(x) =, d(y) =, d(z) =

110 Αλγόριθμος Dijkstra Παράδειγμα Βήμα y u d (y) = min{+,+,+} = x s d (z) = min{+,+} = v S d(s) = 0 d(v) = d(u) = d (v) = min{d(u) + w(u,v)} z V-S d(x) =, d(y) =, d(z) = Επιλέγει τον κόμβο y V-S διότι ελαχιστοποιεί την ποσότητα d (y) μεταξύ των κόμβων {y,z}.

111 Αλγόριθμος Dijkstra Παράδειγμα Βήμα d (v) = min{d(u) + w(u,v)} u d (y) = min{+,+,+} = x s y d (z) = min{+,+} = Προσθέτει τον κόμβο y στο S θέτοντας d(y) = v S d(s) = 0 d(v) = d(u) = z V-S d(x) =, d(y) =, d(z) = Tο Δένδρο Ελαχίστων Διαδρομών επεκτείνεται με τον κόμβο y και με την ακμή (x,y)!!!

112 Αλγόριθμος Dijkstra Παράδειγμα Βήμα d (v) = min{d(u) + w(u,v)} u d (z) = min{+,+} = x s y v S d(s) = 0 d(v) = d(u) = z V-S d(x) =, d(y) =, d(z) =

113 Αλγόριθμος Dijkstra Παράδειγμα Βήμα d (v) = min{d(u) + w(u,v)} u d (z) = min{+,+} = x s y Επιλέγει τον κόμβο z V-S διότι ελαχιστοποιεί την ποσότητα d (z) μεταξύ των κόμβων {z}. v S d(s) = 0 d(v) = d(u) = z V-S d(x) =, d(y) =, d(z) =

114 Αλγόριθμος Dijkstra Παράδειγμα Βήμα d (v) = min{d(u) + w(u,v)} u d (z) = min{+,+} = x s y Προσθέτει τον κόμβο z στο S θέτοντας d(z) = z v S d(s) = 0 d(v) = d(u) = Tο Δένδρο Ελαχίστων Διαδρομών επεκτείνεται με τον κόμβο z και με την ακμή (x,z)!!! V-S d(x) =, d(y) =, d(z) =

115 Αλγόριθμος Dijkstra Παράδειγμα Βήμα d (v) = min{d(u) + w(u,v)} u d (z) = min{+,+} = x s y Προσθέτει τον κόμβο z στο S θέτοντας d(z) = z v S d(s) = 0 d(v) = d(u) = Tο Δένδρο Ελαχίστων Διαδρομών επεκτείνεται με τον κόμβο z και με την ακμή (x,z)!!! V-S Ισοδύναμη επιλογή d(x) =, d(y) =, d(z) = Κόμβος z και ακμή (v,z)!!!

116 Αλγόριθμος Dijkstra Ορθότητα!!! x Στο παράδειγμα είδαμε ότι ο αλγόριθμος του Dijjstra κάνει το σωστό και αποφεύγει τις «παγίδες»!!! y s u v S V-S Η επαύξηση του συνόλου S με λανθασμένο κόμβο v μπορεί να οδηγήσει σε υπερεκτίμηση του κόστους της ε.δ από τον s προς τον v!!! Εύλογο Ερώτημα: Είναι πάντοτε αληθές ότι, όταν ο αλγόριθμος του Dijjstra προσθέτει έναν κόμβο v στο σύνολο S, παίρνουμε πραγματικά το κόστος της ελάχιστης διαδρομής από τον s προς τον v?

117 Ορθότητα Αλγόριθμου Dijkstra Θεώρημα Έστω G=(V,E) έμβαρο γράφημα με μη-αρνητικά βάρη, έστω s V ένας κόμβος αφετηρίας και (S,V-S) μια διαμέριση του V : s S και d(s,u) u S. x y s S u v V-S Εάν (u,v) είναι η ακμή που ελαχιστοποιεί την ποσότητα d(s,u) + w(u,v) μεταξύ όλων των ακμών (x, y) με x S και y V-S, τότε P = (s,,u,v) είναι ε.δ. s ~> v.

118 Ορθότητα Αλγόριθμου Dijkstra Απόδειξη y s u S v Έστω = (u,v) και έστω (s,,u) η ελάχιστη διαδρομή s ~> u. Για την διαδρομή P = (s,,u,v) από τον s στον v ισχύει : w(p) = d(s,u) + w() () V-S

119 Ορθότητα Αλγόριθμου Dijkstra Απόδειξη x y s u S v V-S Έστω Q = (s,,x,y,,v) μια ελάχιστη διαδρομή s ~> v στο G, και έστω y ο πρώτος κόμβος της διαδρομής Q : y V-S. Θα δείξουμε ότι w(p) w(q).

120 Ορθότητα Αλγόριθμου Dijkstra Απόδειξη x y s u S v V-S Από την Eq.() και από το κριτήριο επιλογής της ακμής = (u,v), έχουμε: w(p) = d(s,u) + w() d(s,x) + w(x,y) ()

121 Ορθότητα Αλγόριθμου Dijkstra Απόδειξη x y s u S v V-S Η διαδρομή (s,,x) είναι ελάχιστη με τιμή d(s,x). Από την Ιδιότητα Βέλτιστης Υποδομής, επειδή (s,,x,y) είναι υποδιαδρομή της ε.δ Q = (s,,x,y,,v) και οι ακμές έχουν μη-αρνητικά βάρη, ισχύει: d(s,x) + w(x,y) w(q) ()

122 Ορθότητα Αλγόριθμου Dijkstra Απόδειξη x y s u S v V-S Από Eq.() και Eq.(), δηλ. Eq.() : w(p) = d(s,u) + w() d(s,x) + w(x,y) Eq.() : d(s, x) + w(x, y) παίρνουμε: w(p) w(q) w(q)

123 Ορθότητα Αλγόριθμου Dijkstra Θεώρημα (Ορθότητα Αλγορίθμου Dijkstra) Έστω G=(V,E) έμβαρο γράφημα με μη-αρνητικά βάρη και s V. Ο αλγόριθμος του Dijkstra υπολογίζει τις ε.δ από τον κόμβο s προς κάθε άλλο κόμβο v V του G που είναι προσπελάσιμος από τον s. Απόδειξη Με επαγωγή στην ακολουθία των κόμβων όπως αυτή δημιουργείται από την πρόσθεσή τους στο δένδρο ελάχιστων-διαδρομών. Χρήση του Θεωρήματος.

124 Ελάχιστες Διαδρομές Αλγοριθμικές Σκέψεις Δύο Σημαντικές Παρατηρήσεις!!! Παρατήρηση. Ο αλγόριθμος του Dijkstra δεν δίνει πάντα σωστό αποτέλεσμα όταν το γράφημα περιέχει ακμές με αρνητικά βάρη!!! Πολλές εφαρμογές περιλαμβάνουν αρνητικά βάρη ακμών, και σε αυτή την περίπτωση απαιτείται ένας πιο πολύπλοκος αλγόριθμος όπως αυτός των Bllman-Ford!!! Παρατήρηση. Ο αλγόριθμος του Dijkstra είναι, κατά μία έννοια, πολύ πιο απλούστερος απ ότι τον περιγράψαμε!!! Ο αλγόριθμος στην πραγματικότητα είναι μια «έξυπνη» εκδοχή του αλγορίθμου διερεύνησης BFS, και το κίνητρό του προέρχεται από μια φυσική διαισθητική ιδέα που θα περιγράψουμε στη συνέχεια!!!

125 Ελάχιστες Διαδρομές Αλγοριθμικές Σκέψεις. Αρνητικά Βάρη!!! a 0 s c b d h g q f Κόστος ελάχιστης διαδρομής: d(s,d) = w(s,c) + w(c,d) = Διαδρομές: (s,,f), (s,,f,,f), (s,,f,,f,,f), (s,,f,,,f) Κύκλος αρνητικού κόστους: (,f,) = w(,f) + w(f,) = - < 0

126 Ελάχιστες Διαδρομές Αλγοριθμικές Σκέψεις. Αρνητικά Βάρη!!! Αντιπαράδειγμα Ελάχιστη διαδρομή P από τον s στον v: P = (s,u,v) d(v) = Ο αλγόριθμος του Dijkstra δεν δίνει πάντα σωστό αποτέλεσμα όταν το γράφημα περιέχει ακμές με αρνητικά βάρη u s - v

127 Ελάχιστες Διαδρομές Αλγοριθμικές Σκέψεις. Αρνητικά Βάρη!!! Αντιπαράδειγμα Ελάχιστη διαδρομή P από τον s στον v: Βήμα P = (s,u,v) d(v) = Αρχικοποίηση: S={s} και d(s)=0 u s S - v V-S

128 Ελάχιστες Διαδρομές Αλγοριθμικές Σκέψεις. Αρνητικά Βάρη!!! Αντιπαράδειγμα Ελάχιστη διαδρομή P από τον s στον v: Βήμα P = (s,u,v) d(v) = Αρχικοποίηση: S={s} και d(s)=0 u Βήμα Επιλέγει τον κόμβο v V-S, διότι d (u) = min{0+} = s S - v V-S d (v) = min{0+} =

129 Ελάχιστες Διαδρομές Αλγοριθμικές Σκέψεις. Αρνητικά Βάρη!!! Αντιπαράδειγμα Ελάχιστη διαδρομή P από τον s στον v: Βήμα P = (s,u,v) d(v) = Αρχικοποίηση: S={s} και d(s)=0 u Βήμα Επιλέγει τον κόμβο v V-S, διότι d (u) = min{0+} = - s d (v) = min{0+} = v και τον προσθέτει στο S θέτοντας d(v) =!!! S V-S

130 Ελάχιστες Διαδρομές Αλγοριθμικές Σκέψεις. Αρνητικά Βάρη!!! Αντιπαράδειγμα Ελάχιστη διαδρομή P από τον s στον v: Βήμα P = (s,u,v) d(v) = Αρχικοποίηση: S={s} και d(s)=0 u Βήμα Επιλέγει τον κόμβο v V-S, διότι d (u) = min{0+} = - s d (v) = min{0+} = v και τον προσθέτει στο S θέτοντας d(v) =!!! S V-S Λάθος, διότι d(v) = και από την στιγμή που ο v προστίθεται στο S το d(v) δεν αλλάζει!!!

131 Ελάχιστες Διαδρομές Αλγοριθμικές Σκέψεις. Αρνητικά Βάρη!!! Σε αυτή την περίπτωση προσφεύγουμε στον Αλγόριθμο των Ελάχιστη διαδρομή P από τον s στον v: P = (s,u,v) d(v) = u Bllman-Ford s - v Επιτρέπει αρνητικά βάρη ακμών Εντοπίζει κύκλους αρνητικού βάρους (κόστους)

132 Ελάχιστες Διαδρομές Αλγοριθμικές Σκέψεις. Αλγοριθμικές Σκέψεις!!! BFS-tr s a s b BFS d(s,s)=0 d(s,b)= d(s,a)= a b c d d(s,d)= c d(s,c)= d d(s,)=

133 Ελάχιστες Διαδρομές Αλγοριθμικές Σκέψεις. Αλγοριθμικές Σκέψεις!!! s s a d c b b a c d

134 Ελάχιστες Διαδρομές Αλγοριθμικές Σκέψεις. Αλγοριθμικές Σκέψεις!!! BFS-tr s s a d c b b a c d

135 Ελάχιστες Διαδρομές Αλγοριθμικές Σκέψεις. Αλγοριθμικές Σκέψεις!!! BFS-tr s d(s,s)=0 s d()= a b d d(s,a)= c a b d()= d()= d()= d()= d()= d()= c d()= d(s,d)= d(s,b)= d d()= d(s,c)= d(s,)=

136 Ελάχιστες Διαδρομές Αλγοριθμικές Σκέψεις. Αλγοριθμικές Σκέψεις!!! G s 0 s a 0 b Έμβαρο γράφημα G 00 a b 00

137 Ελάχιστες Διαδρομές Αλγοριθμικές Σκέψεις. Αλγοριθμικές Σκέψεις!!! G s 0 = d(s,s) s a 0 BFS b Έμβαρο γράφημα G 00 a b 00 0

138 Ελάχιστες Διαδρομές Αλγοριθμικές Σκέψεις Αλγόριθμος «Αφύπνισης» d(s,s) = 0 Ρύθμισε ένα ρολόι για τον κόμβο s να χτυπήσει την χρονική στιγμή 0 s d(s,a) = a d Επανάλαβε έως ότου χτυπήσουν όλα τα ρολόγια: c b Έστω ότι το επόμενο ρολόι χτυπά την χρονική στιγμή t για τον κόμβο u, τότε: Η απόσταση του u από τον s είναι d(s,u) = t Για κάθε γείτονα x του u στο G: Ρύθμισε την αφύπνιση του x ίση με t + w(u,x) εάν δεν αφύπνιση για τον x ή κάποια τη χρονική στιγμή t > t + w(u,x), άλλως μη κάνεις τίποτε!

139 Ελάχιστες Διαδρομές Διαδικασία Udat() Αλγοριθμική Ρύθμιση της «Αφύπνισης» d(s, v) = d(v) Εκτιμητής Ελάχιστη Απόσταση Udat(u,v,w): if d(v) > d(u) + w(u,v) thn d(v) d(u) + w(u,v) rv(v) u d(v) = d(u) = u v d(v) = d(u) = u v

140 Αλγόριθμοι Dijkstra & Bllman-Ford Χρήση της διαδικασίας Udat(u,v,w)!!! Θα παρουσιάσουμε τον αλγόριθμο του Dijkstra και τον αλγόριθμο των Bllman-Ford για τον υπολογισμό των ελάχιστων διαδρομών από ένα κόμβο s σε ένα έμβαρο γράφημα, βασιζόμενοι στην διαδικασία Udat(u,v,w). Αλγόριθμος Dijkstra. Αλγόριθμος Bllman-Ford S

141 Αλγόριθμοι Dijkstra & Bllman-Ford Χαρακτηριστικά των Δύο Αλγορίθμων!!!. Αλγόριθμος Dijkstra Επιτρέπει μόνο μη-αρνητικά βάρη ακμών.. Αλγόριθμος Bllman-Ford Επιτρέπει αρνητικά βάρη ακμών. Εντοπίζει κύκλους αρνητικού βάρους (κόστους).

142 Udat() Αλγόριθμος Dijkstra!!!!!!. Αλγόριθμος Dijkstra Επέκταση Βασικής Ιδέας!!! d(v) = d(u) = u u ss v d(v) = d(u) = v u v Μπορούμε να αποδώσουμε πιο απλά την ίδια ακριβώς λειτουργία του αλγορίθμου του Dijkstra που περιγράψαμε, χρησιμοποιώντας την διαδικασία Udat()!

143 Udat() Αλγόριθμος Dijkstra!!!!!!. Αλγόριθμος Dijkstra Επέκταση Βασικής Ιδέας!!! x y s u S v V-S Επιλέγει τον κόμβο v από το σύνολο V-S με τον min εκτιμητή d(v), επεκτείνει το Δένδρο Ελαχίστων Διαδρομών προσθέτοντας τον v στο S), και ενημερώνει με Udat() τους γείτονες του v στο σύνολο V-S!

144 Udat() Αλγόριθμος Dijkstra Ενδιαφέρουσες Παρατηρήσεις Βήμα u d (x) = min{+,0+,+} = s d (v) = min{d(u) + w(u,v)} d (y) = min{+,+} = 0 y x d (z) = min{+} = Udat(u,v,w) v S z V-S if d(v) > d(u) + w(u,v) thn d(v) d(u) + w(u,v)

145 Udat() Αλγόριθμος Dijkstra Ενδιαφέρουσες Παρατηρήσεις Βήμα u 0 y d (y) = min{+,+,+} = d (z) = min{+,+} = x s Udat(u,v,w) v S d (v) = min{d(u) + w(u,v)} z V-S if d(v) > d(u) + w(u,v) thn d(v) d(u) + w(u,v)

146 Udat() Αλγόριθμος Dijkstra Ενδιαφέρουσες Παρατηρήσεις Ισοδυναμία κριτηρίων: u 0 y Το κόστος d (v) της συντομότερης διαδρομής μεταξύ όλων των διαδρομών από τον s στον v της μορφής(s,,u,v) Ισούται x s v S z V-S Με τον εκτιμητή ελάχιστης απόστασης d(v) του κόμβου v που υπολογίζεται με την συνάρτηση Udat(u,v,w).

147 Udat() Αλγόριθμος Dijkstra Ενδιαφέρουσες Παρατηρήσεις Κριτήριο άπληστης επιλογής: u 0 y z x s v S V-S Επίλεξε τον κόμβο v από το σύνολο V-S με τον min εκτιμητή d(v), πρόσθεσέ τον στο S, και ενημερώνει με Udat() τους γείτονες του v στο σύνολο V-S!

148 Udat() Αλγόριθμος Dijkstra. Αλγόριθμος Dijkstra u Initializ(G,s). για κάθε κόμβο v V: d(v) rv(v) NIL. d(s) 0 0 v s w

149 Udat() Αλγόριθμος Dijkstra. Αλγόριθμος Dijkstra u Dijkstra(G,w,s). Initializ(G,s). S ; Q V = V-S. whil Q : 0 v s w u xtract-min(q); S S {u} για κάθε ακμή (u,v) E: Udat(u,v,w). rturn d(), rv() if d(v) > d(u) + w(u,v) thn d(v) d(u) + w(u,v) rv(v) u

150 Udat() Αλγόριθμος Dijkstra Παράδειγμα Είσοδος Αλγόριθμου x q 0 s y

151 Udat() Αλγόριθμος Dijkstra Παράδειγμα Initializ(G,s) x για κάθε κόμβο v V: d(v) rv(v) NIL q d(s) s y d(s)=0 rv(s)=nil d(x)= rv(x)=λ d(y)= d()= rv(y)=λ rv()=λ d(q)= rv(q)=λ

152 Udat() Αλγόριθμος Dijkstra Παράδειγμα Q = {s,x,y,,q} x S={} 0 q 0 s y d(s)=0 rv(s)=nil d(x)= rv(x)=λ d(y)= d()= rv(y)=λ rv()=λ d(q)= rv(q)=λ

153 Udat() Αλγόριθμος Dijkstra Παράδειγμα Q = {s,x,y,,q} whil Q : x S={} 0 q 0 s y d(s)=0 rv(s)=nil d(x)= rv(x)=λ d(y)= d()= rv(y)=λ rv()=λ d(q)= rv(q)=λ

154 Udat() Αλγόριθμος Dijkstra Παράδειγμα Q = {s,x,y,,q} whil Q : x S={} 0 u xtract-min(q); q 0 s y d(s)=0 rv(s)=nil d(x)= rv(x)=λ d(y)= d()= rv(y)=λ rv()=λ d(q)= rv(q)=λ

155 Udat() Αλγόριθμος Dijkstra Παράδειγμα Q = {x,y,,q} whil Q : x S={} 0 u xtract-min(q); q 0 s y d(s)=0 rv(s)=nil

156 Udat() Αλγόριθμος Dijkstra Παράδειγμα Q = {x,y,,q} whil Q : x S u xtract-min(q); S S {u} q 0 0 s y d(s)=0 rv(s)=nil

157 Udat() Αλγόριθμος Dijkstra Παράδειγμα Q = {x,y,,q} whil Q : x S u xtract-min(q); S S {u} q Udat(u,v,w) 0 0 s y d(s)=0 rv(s)=nil

158 Udat() Αλγόριθμος Dijkstra Παράδειγμα Q = {x,y,,q} 0 x S whil Q : u xtract-min(q); S S {u} q Udat(u,v,w) 0 0 s y d(s)=0 rv(s)=nil

159 Udat() Αλγόριθμος Dijkstra Παράδειγμα Q = {x,y,,q} 0 x S whil Q : u xtract-min(q); S S {u} q Udat(u,v,w) 0 0 s y d(s)=0 rv(s)=nil

160 Udat() Αλγόριθμος Dijkstra Παράδειγμα Q = {x,y,,q} whil Q : 0 x S u xtract-min(q); q 0 0 s y d(s)=0 rv(s)=nil

161 Udat() Αλγόριθμος Dijkstra Παράδειγμα Q = {x,,q} whil Q : 0 x S u xtract-min(q); q 0 0 s y d(s)=0 rv(s)=nil d(y)= rv(y)=s

162 Udat() Αλγόριθμος Dijkstra Παράδειγμα Q = {x,,q} whil Q : 0 x S u xtract-min(q); S S {u} q 0 0 s y d(s)=0 rv(s)=nil d(y)= rv(y)=s

163 Udat() Αλγόριθμος Dijkstra Παράδειγμα Q = {x,,q} whil Q : 0 x S u xtract-min(q); S S {u} q Udat(u,v,w) 0 0 s y d(s)=0 rv(s)=nil d(y)= rv(y)=s

164 Udat() Αλγόριθμος Dijkstra Παράδειγμα Q = {x,,q} whil Q : 0 x S u xtract-min(q); S S {u} q Udat(u,v,w) 0 0 s y d(s)=0 rv(s)=nil d(y)= rv(y)=s

165 Udat() Αλγόριθμος Dijkstra Παράδειγμα Q = {x,,q} whil Q : 0 x S u xtract-min(q); S S {u} q Udat(u,v,w) 0 0 s y d(s)=0 rv(s)=nil d(y)= rv(y)=s

166 Udat() Αλγόριθμος Dijkstra Παράδειγμα Q = {x,,q} whil Q : 0 x S u xtract-min(q); S S {u} q Udat(u,v,w) 0 0 s y d(s)=0 rv(s)=nil d(y)= rv(y)=s

167 Udat() Αλγόριθμος Dijkstra Παράδειγμα Q = {x,,q} whil Q : x S u xtract-min(q); q 0 0 s y d(s)=0 rv(s)=nil d(y)= rv(y)=s

168 Udat() Αλγόριθμος Dijkstra Παράδειγμα Q = {x,q} whil Q : x S u xtract-min(q); q 0 0 s y d(s)=0 rv(s)=nil d(y)= rv(y)=s d()= rv()=y

169 Udat() Αλγόριθμος Dijkstra Παράδειγμα Q = {x,q} whil Q : x S u xtract-min(q); S S {u} q 0 0 s y d(s)=0 rv(s)=nil d(y)= rv(y)=s d()= rv()=y

170 Udat() Αλγόριθμος Dijkstra Παράδειγμα Q = {x,q} whil Q : x S u xtract-min(q); S S {u} q Udat(u,v,w) 0 0 s y d(s)=0 rv(s)=nil d(y)= rv(y)=s d()= rv()=y

171 Udat() Αλγόριθμος Dijkstra Παράδειγμα Q = {x,q} whil Q : x S u xtract-min(q); q 0 0 s y d(s)=0 rv(s)=nil d(y)= rv(y)=s d()= rv()=y

172 Udat() Αλγόριθμος Dijkstra Παράδειγμα Q = {q} whil Q : x S u xtract-min(q); q 0 0 s y d(s)=0 rv(s)=nil d(y)= rv(y)=s d()= rv()=y d(x)= rv(x)=y

173 Udat() Αλγόριθμος Dijkstra Παράδειγμα Q = {q} whil Q : x S u xtract-min(q); S S {u} q 0 0 s y d(s)=0 rv(s)=nil d(y)= rv(y)=s d()= rv()=y d(x)= rv(x)=y

174 Udat() Αλγόριθμος Dijkstra Παράδειγμα Q = {q} whil Q : x S u xtract-min(q); S S {u} q Udat(u,v,w) 0 0 s y d(s)=0 rv(s)=nil d(y)= rv(y)=s d()= rv()=y d(x)= rv(x)=y

175 Udat() Αλγόριθμος Dijkstra Παράδειγμα Q = {q} whil Q : x S u xtract-min(q); S S {u} q Udat(u,v,w) 0 0 s y d(s)=0 rv(s)=nil d(y)= rv(y)=s d()= rv()=y d(x)= rv(x)=y

176 Udat() Αλγόριθμος Dijkstra Παράδειγμα Q = {q} whil Q : x S u xtract-min(q); q 0 0 s y d(s)=0 rv(s)=nil d(y)= rv(y)=s d()= rv()=y d(x)= rv(x)=y

177 Udat() Αλγόριθμος Dijkstra Παράδειγμα Q = {} whil Q : x S u xtract-min(q); q 0 0 s y d(s)=0 rv(s)=nil d(y)= rv(y)=s d()= rv()=y d(x)= rv(x)=y d(q)= rv(q)=x

178 Udat() Αλγόριθμος Dijkstra Παράδειγμα Q = {} whil Q : x S u xtract-min(q); S S {u} q 0 0 s y d(s)=0 rv(s)=nil d(y)= rv(y)=s d()= rv()=y d(x)= rv(x)=y d(q)= rv(q)=x

179 Udat() Αλγόριθμος Dijkstra Παράδειγμα Q = {} whil Q : rturn d(), rv() x q 0 s y d(s)=0 rv(s)=nil d(y)= rv(y)=s d()= rv()=y d(x)= rv(x)=y d(q)= rv(q)=x

180 Udat() Αλγόριθμος Dijkstra Παράδειγμα Έξοδος Αλγόριθμου x Κόστος ελάχιστων διαδρομών q 0 0 s y

181 Udat() Αλγόριθμος Dijkstra Παράδειγμα Έξοδος Αλγόριθμου x Προκάτοχοι ελάχιστων διαδρομών rv(q)=x rv(x)=y q 0 s rv(s)=nil y rv(y)=s rv()=y

182 Udat() Αλγόριθμος Dijkstra Παράδειγμα Δένδρο Ελάχιστων Διαδρομών x q x q 0 s y s y

183 Udat() Αλγόριθμος Dijkstra Παράδειγμα Δένδρο Ελάχιστων Διαδρομών ΚΑΤΑΣΚΕΥΗ rv(x)=y rv(q)=x x q x q 0 rv(s)=λ s y rv(y)=s s rv()=y y

184 Udat() Αλγόριθμος Dijkstra Παράδειγμα Δένδρο Ελάχιστων Διαδρομών ΚΑΤΑΣΚΕΥΗ rv(x)=y rv(q)=x x q x q 0 rv(s)=λ s y rv(y)=s s rv()=y y

185 Udat() Αλγόριθμος Dijkstra Παράδειγμα Δένδρο Ελάχιστων Διαδρομών ΚΑΤΑΣΚΕΥΗ rv(x)=y rv(q)=x x q x q 0 rv(s)=λ s y rv(y)=s s rv()=y y

186 Udat() Αλγόριθμος Dijkstra Παράδειγμα Δένδρο Ελάχιστων Διαδρομών ΚΑΤΑΣΚΕΥΗ rv(x)=y rv(q)=x x q x q 0 rv(s)=λ s y rv(y)=s s rv()=y y

187 Udat() Αλγόριθμος Dijkstra Παράδειγμα Δένδρο Ελάχιστων Διαδρομών ΚΑΤΑΣΚΕΥΗ rv(x)=y rv(q)=x x q x q 0 rv(s)=λ s y rv(y)=s s rv()=y y

188 Udat() Αλγόριθμος Dijkstra Παράδειγμα Δένδρο Ελάχιστων Διαδρομών ΚΑΤΑΣΚΕΥΗ x s q 0 s y y x q

189 Πολυπλοκότητα Dijkstra Πολυπλοκότητα Αλγόριθμου Dijkstra Δομικά παρόμοιος με τον αλγόριθμο BFS Πιο αργός από BFS (ουρά προτεραιότητας vs απλής ουράς) Απαιτεί n λειτουργίες insrt στην ουρά, και επομένως: n xtract-min n+m insrt/udata Υλοποίηση ουράς με Ha O((n+m)logn)

190 Αλγόριθμος Bllman-Ford. Αλγόριθμος Bllman-Ford Βασική Ιδέα!!! u - ss v!!!!!! Ο αλγόριθμος των Bllman-Ford επιλύει το πρόβλημα των ελαχίστων διαδρομών στην πιο γενική περίπτωση όπου το γράφημα μπορεί να έχει αρνητικά ακμικά βάρη. Ενημερώνει με Udat() ΟΛΛΕΣ τις ακμές του γραφήματος G=(V,E) n- φορές, όπου n= V!

191 Από Dijkstra σε Bllman-Ford Ενδιαφέρουσες Παρατηρήσεις Ο αλγόριθμος του Dijkstra λειτουργεί σωστά διότι η ε.δ s ~> v «περνάει» αποκλειστικά από κόμβους που είναι πιο κοντά στον s. Η ε.δ (s,a,b) από τον s στον b «περνά» μέσω του a που είναι πιο κοντά στον s. s Αυτό ΔΕΝ ισχύει με αρνητικά βάρη! Η ε.δ (s,b,a) από τον s στον b «περνά» μέσω του b που είναι πιο μακριά στον s. a b a s - b

192 Από Dijkstra σε Bllman-Ford Ενδιαφέρουσες Παρατηρήσεις Πράγματι, εδώ ο Dijkstra δεν λειτουργεί σωστά!!! Θα δώσει λανθασμένα : d(s,a)= Ενώ ισχύει: d(s,a)= s - Τι πρέπει να αλλάξουμε στον Dijkstra a? b

193 Από Dijkstra σε Bllman-Ford Ενδιαφέρουσες Παρατηρήσεις Ιδιότητα των τιμών d(.) Κατά τη διάρκεια λειτουργίας του Dijkstra, ισχύει: d(.) είναι είτε υπερεκτιμημένες είτε βέλτιστες!!! Αρχικοποιούνται d(.)= και αλλάζουν μόνο: Udat(u,v,w): d(v) min{d(v), d(u) + w(u,v)} a s - b

194 Από Dijkstra σε Bllman-Ford Ενδιαφέρουσες Παρατηρήσεις Η διαδικασία Udat(u,v,w): () Δίνει την τιμή της ε.δ. στην d(v) όταν ο κόμβος u είναι προτελευταίος στην ε.δ. s ~> v () Δεν δίνει ποτέ στην d(v) τιμή < από την τιμή της ε.δ. s ~> v Όταν η d(v) πάρει την τιμή της ε.δ, στη συνέχεια όσες φορές και να εφαρμόσουμε την Udat(u,v,w) η τιμή της d(v) δεν αλλάζει!!!

195 Από Dijkstra σε Bllman-Ford Ενδιαφέρουσες Παρατηρήσεις Αλγόριθμο του Dijkstra: «Μια ακολουθία εκτελέσεων της Udat()» H ακολουθία των Udat() του Dijkstra δεν λειτουργεί σωστά με αρνητικά βάρη!????? Ερώτημα!!! Υπάρχει κάποια άλλη ακολουθία από Udat() που λειτουργεί σωστά? Εάν ναι, τι ιδιότητες πρέπει να έχει? a s - b (s,a), (s,b), (a,b)

196 Από Dijkstra σε Bllman-Ford Ενδιαφέρουσες Παρατηρήσεις Η Ρ σε γράφημα τάξης n έχει το πολύ n- ακμές (γιατί?) Έστω P: s ~> v μια ε.δ. s u u u uk v Εάν η ακολουθία εκτελέσεων Udat() είναι: (s,u), (u,u), (u,u),, (uk,v) τότε, λόγω τις (), η τιμή d(v) θα υπολογιστεί σωστά! () H διαδικασία Udat(u,v,w) δίνει την τιμή της ε.δ. στην d(v) όταν ο κόμβος u είναι προτελευταίος στην ε.δ s ~> v

197 Από Dijkstra σε Bllman-Ford Ενδιαφέρουσες Παρατηρήσεις Η Ρ σε γράφημα τάξης n έχει το πολύ n- ακμές (γιατί?) Έστω P: s ~> v μια ε.δ. s u u u uk v Όταν υπολογιστεί η βέλτιστη τιμή d(v), λόγω της (), όποιες άλλες ενημερώσεις Udat() γίνουν στις ακμές (s,u), (u,u), (u,u),, (uk,v) δεν επηρεάζουν το αποτέλεσμα! () Δεν θα δώσει ποτέ στην d(v) τιμή μικρότερη από την τιμή της ε.δ s ~> v

198 Από Dijkstra σε Bllman-Ford Ενδιαφέρουσες Παρατηρήσεις Όμως!!! ΔΕΝ γνωρίζουμε εκ των προτέρων όλες τις ε.δ του G και, επομένως, ΔΕΝ είμαστε βέβαιοι ότι ενημερώνουμε, με Udat(), τις σωστές ακμές με τη σωστή σειρά!?????? s u u u Πρόβλημα!!!... Μπορώ να σκεφτώ κάτι? uk v

199 Από Dijkstra σε Bllman-Ford Ορίστε μια Λύση!!!! s u u u uk v Ενημέρωσε, με Udat(), ΟΛΕΣ τις ακμές n- φορές! Η διαδικασία αυτή είναι, απλά, ο γνωστός αλγόριθμος των Bllman-Ford

200 Αλγόριθμος Bllman-Ford. Αλγόριθμος Bllman-Ford u Initializ(G,s). για κάθε κόμβο v V: d(v) rv(v) NIL. d(s) 0 0 v - s w

201 Αλγόριθμος Bllman-Ford. Αλγόριθμος Bllman-Ford u Bllman-Ford(G,w,s). Initializ(G,s). επανάλαβε n- φορές: για κάθε ακμή (u,v) E: Udat(u,v,w). rturn d(.) 0 v - s w

202 Αλγόριθμος Bllman-Ford Παραδείγματα u n = m = x 0 - s Udat στις ακμές φορές y v - V = {s, u, v, x, y} Ε = {(y,x),(u,x),(y,v),(s,u),(x,v),(s,v)}

203 Αλγόριθμος Bllman-Ford Παράδειγμα u n = m = x 0 - s Udat στις ακμές φορές η y v Επανάληψη - S: (y,x), (u,x), (y,v), (s,u), (x,v), (s,v)

204 Αλγόριθμος Bllman-Ford Παράδειγμα u x 0 - s n = m = Udat στις ακμές φορές η y v Επανάληψη - S: (y,x), (u,x), (y,v), (s,u), (x,v), (s,v)

205 Αλγόριθμος Bllman-Ford Παράδειγμα u n = m = x 0 - s Udat στις ακμές φορές η y v - Επανάληψη Καμία Αλλαγή! S: (y,x), (u,x), (y,v), (s,u), (x,v), (s,v)

206 Αλγόριθμος Bllman-Ford Παράδειγμα u n = m = x 0 - s Udat στις ακμές φορές η y v - Επανάληψη Καμία Αλλαγή! Γιατί? S: (y,x), (u,x), (y,v), (s,u), (x,v), (s,v)

207 Αλγόριθμος Bllman-Ford Παράδειγμα u x 0 - s n = m = Udat στις ακμές φορές η y v Επανάληψη - S: (s,u), (u,x), (y,x), (s,v), (x,v), (y,v)

208 Αλγόριθμος Bllman-Ford Παράδειγμα u n = m = x 0 - s Udat στις ακμές φορές η y v - Επανάληψη Καμία Αλλαγή! Γιατί? S: (s,u), (u,x), (y,x), (s,v), (x,v), (y,v)

209 Αλγόριθμος Bllman-Ford Παρατήρηση!!! x u 0 n = m = Udat στις ακμές φορές s y v 0 s u v x y

210 Αλγόριθμος Bllman-Ford Παρατήρηση!!!. επανάλαβε n- φορές: για κάθε ακμή (u,v) E: Udat(u,v,w) k Διάμετρος G = (V,E) k

211 Αλγόριθμος Bllman-Ford Αρνητικοί Κύκλοι? u u 0 s v - w 0 s v -? w? Εάν υπάρχει αρνητικός κύκλος δεν έχει νόημα να αναζητούμε ελάχιστες διαδρομές!!!

212 Αλγόριθμος Bllman-Ford Αρνητικοί Κύκλοι? u Bllman-Ford(G,w,s). Initializ(G,s). επανάλαβε n- φορές: για κάθε ακμή (u,v) E: Udat(u,v,w). για κάθε ακμή (u,v) E: if d(v) > d(u) + w(u,v) thn rturn FALSE. rturn d(.) 0 s - w? v?

213 Αλγόριθμος Bllman-Ford Πολυπλοκότητα Bllman-Ford Βήμα : Αρχικές τιμές: O(n), n= V Βήμα : Εκτελείται n- φορές και γίνεται Udat() σε m ακμές κάθε φορά. Επομένως, η πολυπλοκότητα του βήματος είναι Ο(n m)

214 Αλγόριθμος Bllman-Ford Πολυπλοκότητα Bllman-Ford Βήμα : Ελέγχεται m φορές η συνθήκη: d(v) > d(u) + w(u,v) Επομένως, η πολυπλοκότητα του βήματος είναι Ο(n m) Συνολική Πολυπλοκότητα: Ο(n m)

215 Ελάχιστες Διαδρομές Παρατηρήσεις Παρατήρηση!!! Dijkstra Bllman-Ford u xtract-min(q); για κάθε ακμή (u,v) E: επανάλαβε n- φορές: για κάθε ακμή (u,v) E: Udat(u,v,w) if d(v) > d(u) + w(u,v) thn d(v) d(u) + w(u,v) Udat(u,v,w)

216 Ελάχιστες Διαδρομές Παρατηρήσεις Παρατήρηση!!! Dijkstra Bllman-Ford u xtract-min(q); για κάθε ακμή (u,v) E: επανάλαβε n- φορές: για κάθε ακμή (u,v) E: Udat(u,v,w) if d(v) > d(u) + w(u,v) thn d(v) d(u) + w(u,v) rv(v) u Udat(u,v,w)

217 Ελάχιστες Διαδρομές Παρατηρήσεις Παρατήρηση!!! Dijkstra Bllman-Ford u xtract-min(q); για κάθε ακμή (u,v) E: επανάλαβε n- φορές: για κάθε ακμή (u,v) E: Udat(u,v,w) Udat(u,v,w) if d(v) > d(u) + w(u,v) thn d(v) d(u) + w(u,v) rv(v) u f(v) charactristic(u)

218 Ελάχιστες Διαδρομές Παρατηρήσεις Μπορούμε να υπολογίσουμε Ελάχιστες Διαδρομές σε ένα γράφημα χρησιμοποιώντας Δυναμικό Προγραμματισμό Επόμενη Ενότητα!

219 Άπληστοι Αλγόριθμοι Ελάχιστα Συνδετικά Δέντρα kruskal rim minimum sanning tr algorithms

220 Άπληστοι Αλγόριθμοι Ελάχιστα Συνδετικά Δέντρα kruskal rim minimum sanning tr algorithms

221 Πρόβλημα Οδικό Δίκτυο

222 Πρόβλημα Οδικό Δίκτυο

223 Πρόβλημα Καταστροφή Δικτύου

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

Σχεδίαση & Ανάλυση Αλγορίθμων Σχεδίαση & Ανάλυση Αλγορίθμων Ενότητα 4.2 Διαδρομές σε Γραφήματα Σταύρος Δ. Νικολόπουλος Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros Πρόβλημα Οδικό Δίκτυο

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 1 / 42 Εύρεση Ελάχιστου Μονοπατιού

Διαβάστε περισσότερα

Ελάχιστο Γεννητικό Δένδρο. Παράδειγμα - Αλγόριθμος Prim. Γιατί δουλεύουν αυτοί οι αλγόριθμοι;

Ελάχιστο Γεννητικό Δένδρο. Παράδειγμα - Αλγόριθμος Prim. Γιατί δουλεύουν αυτοί οι αλγόριθμοι; Άπληστοι Αλγόριθμοι ΙΙI Αλγόριθμοι γραφημάτων Ελάχιστο Γεννητικό Δένδρο Παράδειγμα Κατασκευή δικτύων Οδικά, επικοινωνίας Έχουμε ένα συνεκτικό γράφημα (V,E) και ένας βάρος we σε κάθε ακμή e. Να βρεθεί υποσύνολο

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ενότητα 3 Αλγόριθµοι Γραφηµάτων Dijkstra Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra

Διαβάστε περισσότερα

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

Βραχύτερα Μονοπάτια σε Γράφους (CLR, κεφάλαιο 25) Βραχύτερα Μονοπάτια σε Γράφους (CLR, κεφάλαιο 25) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Ο αλγόριθµος των BellmanFord Ο αλγόριθµος του Dijkstra ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 61

Διαβάστε περισσότερα

Διάλεξη 21: Γράφοι IV - Βραχύτερα Μονοπάτια σε Γράφους

Διάλεξη 21: Γράφοι IV - Βραχύτερα Μονοπάτια σε Γράφους Διάλεξη 2: Γράφοι IV - Βραχύτερα Μονοπάτια σε Γράφους Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Βραχύτερα Μονοπάτια σε γράφους - Ο αλγόριθμος Dijkstra για εύρεση της βραχύτερης απόστασης

Διαβάστε περισσότερα

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

Σχεδίαση και Ανάλυση Αλγορίθμων Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4.0 Επιλογή Αλγόριθμοι Επιλογής Select και Quick-Select Σταύρος Δ. Νικολόπουλος 2016-17 Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros

Διαβάστε περισσότερα

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

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Άπληστοι Αλγόριθμοι Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Άπληστοι Αλγόριθμοι Είναι δύσκολο να ορίσουμε ακριβώς την έννοια του άπληστου

Διαβάστε περισσότερα

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

Συντομότερες Διαδρομές Συντομότερες Διαδρομές Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Συντομότερη Διαδρομή Κατευθυνόμενο G(V, E, w) με μήκη Μήκος διαδρομής

Διαβάστε περισσότερα

Άσκηση 1. Ψευδοκώδικας Kruskal. Παρακάτω βλέπουμε την εφαρμογή του στο παρακάτω συνδεδεμένο γράφημα.

Άσκηση 1. Ψευδοκώδικας Kruskal. Παρακάτω βλέπουμε την εφαρμογή του στο παρακάτω συνδεδεμένο γράφημα. Άσκηση 1 Ψευδοκώδικας Kruskal Παρακάτω βλέπουμε την εφαρμογή του στο παρακάτω συνδεδεμένο γράφημα. Αντιστοιχίζω τους κόμβους με αριθμούς από το 0 έως το 4. 2Η ΕΡΓΑΣΙΑ ΑΛΓΟΡΙΘΜΟΙ & ΠΟΛΥΠΛΟΚΟΤΗΤΑ - MAY 2018

Διαβάστε περισσότερα

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

Προσεγγιστικοί Αλγόριθμοι Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον. http://xkcd.com/287/ Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον. Πως μπορούμε να αντιμετωπίσουμε το γεγονός ότι είναι απίθανη(;)

Διαβάστε περισσότερα

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

Προσεγγιστικοί Αλγόριθμοι Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον. http://xkcd.com/287/ Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον. Πως μπορούμε να αντιμετωπίσουμε το γεγονός ότι είναι απίθανη(;)

Διαβάστε περισσότερα

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

Συντομότερες ιαδρομές Συντομότερες ιαδρομές ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Συντομότερη ιαδρομή Κατευθυνόμενο G(V, E, w) με μήκη Μήκος διαδρομής Απόσταση d(u,

Διαβάστε περισσότερα

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

Συντομότερες Διαδρομές Συντομότερη Διαδρομή Συντομότερες Διαδρομές Διδάσκοντες: Σ Ζάχος, Δ Φωτάκης Επιμέλεια διαφανειών: Δ Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Κατευθυνόμενο G(V, E, w) με μήκη Μήκος

Διαβάστε περισσότερα

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

Ελαφρύτατες διαδρομές Ελαφρύτατες διαδρομές Ελαφρύτατες διαδρομές Κατευθυνόμενο γράφημα Συνάρτηση βάρους Ελαφρύτατη διαδρομή από το u στο v : διαδρομή με και ελάχιστο βάρος s 3 t 7 x 5 3 y z Βάρος ελαφρύτατης διαδρομής εάν

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Εισαγωγή στους Αλγορίθμους Ενότητα 10η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

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

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων Τεχνικές Σχεδιασμού Αλγορίθμων Αλγοριθμικές Τεχνικές Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr Ορισμένες γενικές αρχές για τον σχεδιασμό αλγορίθμων είναι: Διαίρει και Βασίλευε (Divide and

Διαβάστε περισσότερα

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

Συντομότερες ιαδρομές Συντομότερες ιαδρομές ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17)

Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17) Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Σχεδιασµός αλγορίθµων µε Άπληστους Αλγόριθµους Στοιχεία άπληστων αλγορίθµων Το πρόβληµα επιλογής εργασιών ΕΠΛ 232

Διαβάστε περισσότερα

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

Σχεδίαση & Ανάλυση Αλγορίθμων Σχεδίαση & Ανάλυση Αλγορίθμων Ενότητα 3 Αλγόριθμοι Επιλογής Σταύρος Δ. Νικολόπουλος Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros Αλγόριθμοι Επιλογής Γνωρίζουμε

Διαβάστε περισσότερα

Δρομολόγηση μιας οντότητας ανάμεσα σε δύο σημεία ενός δικτύου έτσι ώστε να ελαχιστοποιήσουμε ένα κόστος, μια διάρκεια, κτλ.

Δρομολόγηση μιας οντότητας ανάμεσα σε δύο σημεία ενός δικτύου έτσι ώστε να ελαχιστοποιήσουμε ένα κόστος, μια διάρκεια, κτλ. Προβλήματα βέλτιστων μονοπατιών Δρομολόγηση μιας οντότητας ανάμεσα σε δύο σημεία ενός δικτύου έτσι ώστε να ελαχιστοποιήσουμε ένα κόστος, μια διάρκεια, κτλ. Εφαρμογές: Χρονοπρογραμματισμός (διαχείριση εργασιών,

Διαβάστε περισσότερα

Περιεχόμενα. 1. Εισαγωγή: Κάποια αντιπροσωπευτικά προβλήματα... 25. 2. Βασικά στοιχεία ανάλυσης αλγορίθμων... 57. 3. Γραφήματα...

Περιεχόμενα. 1. Εισαγωγή: Κάποια αντιπροσωπευτικά προβλήματα... 25. 2. Βασικά στοιχεία ανάλυσης αλγορίθμων... 57. 3. Γραφήματα... Περιεχόμενα Σχετικά με τους συγγραφείς...3 Πρόλογος... 11 Πρόλογος της ελληνικής έκδοσης... 23 1. Εισαγωγή: Κάποια αντιπροσωπευτικά προβλήματα... 25 1.1 Ένα πρώτο πρόβλημα: Ευσταθές Ταίριασμα...25 1.2

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Δρομολόγηση μιας οντότητας ανάμεσα σε δύο σημεία ενός δικτύου έτσι ώστε να ελαχιστοποιήσουμε ένα κόστος, μια διάρκεια, κτλ.

Δρομολόγηση μιας οντότητας ανάμεσα σε δύο σημεία ενός δικτύου έτσι ώστε να ελαχιστοποιήσουμε ένα κόστος, μια διάρκεια, κτλ. Προβλήματα βέλτιστων μονοπατιών Δρομολόγηση μιας οντότητας ανάμεσα σε δύο σημεία ενός δικτύου έτσι ώστε να ελαχιστοποιήσουμε ένα κόστος, μια διάρκεια,, κτλ. Εφαρμογές: Χρονοπρογραμματισμός (διαχείριση

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 6 Εισαγωγή στους Αλγορίθμους Φροντιστήριο 6 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

Κεφάλαιο 1. Πέντε Αντιπροσωπευτικά Προβλήματα. Έκδοση 1.4, 30/10/2014. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Κεφάλαιο 1. Πέντε Αντιπροσωπευτικά Προβλήματα. Έκδοση 1.4, 30/10/2014. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. Κεφάλαιο 1 Πέντε Αντιπροσωπευτικά Προβλήματα Έκδοση 1.4, 30/10/2014 Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 1.2 Πέντε Αντιπροσωπευτικά Προβλήματα 1. Χρονοπρογραμματισμός Διαστημάτων

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Παναγιώτα Παναγοπούλου Χριστίνα Σπυροπούλου 8η Διάλεξη 8 Δεκεμβρίου 2016 1 Ασύγχρονη κατασκευή BFS δέντρου Στα σύγχρονα συστήματα ο αλγόριθμος της πλημμύρας είναι ένας απλός αλλά

Διαβάστε περισσότερα

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

Αλγόριθμοι και Πολυπλοκότητα 7ο εξάμηνο Σ.Η.Μ.Μ.Υ. & Σ.Ε.Μ.Φ.Ε. http://www.corelab.ece.ntua.gr/courses/ 4η εβδομάδα: Εύρεση k-οστού Μικρότερου Στοιχείου, Master Theorem, Τεχνική Greedy: Knapsack, Minimum Spanning Tree, Shortest Paths

Διαβάστε περισσότερα

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

Συντομότερες ιαδρομές Συντομότερες ιαδρομές ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

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

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Ροή Δικτύου Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Μοντελοποίηση Δικτύων Μεταφοράς Τα γραφήματα χρησιμοποιούνται συχνά για την μοντελοποίηση

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Ενότητα 8η Εισαγωγή στους Αλγορίθμους Ενότητα 8η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άπληστοι Αλγόριθμοι Χρονοπρογραμματισμός

Διαβάστε περισσότερα

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ Φροντιστήριο #: Εύρεση Ελαχίστων Μονοπατιών σε Γραφήματα που Περιλαμβάνουν και Αρνητικά Βάρη: Αλγόριθμος

Διαβάστε περισσότερα

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

Αλγοριθμικές Τεχνικές Αλγοριθμικές Τεχνικές Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr Αλγοριθμικές Τεχνικές 1 Τεχνικές Σχεδιασμού Αλγορίθμων Ορισμένες γενικές αρχές για τον σχεδιασμό αλγορίθμων είναι: Διαίρει και

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 30 Απριλίου 2015 1 / 48 Εύρεση Ελάχιστου

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 10 Εισαγωγή στους Αλγορίθμους Φροντιστήριο 10 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

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

Αλγόριθμοι Γραφημάτων Αλγόριθμοι Γραφημάτων 1. Minimum Spanning Trees 2. Αλγόριθμος Prim 3. Αλγόριθμος Kruskal Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Minimum Spanning Tree Πρόβλημα: Για δοσμένο συνεκτικό, μη προσανατολισμένο,

Διαβάστε περισσότερα

Outline 1 Άσκηση 1 2 Άσκηση 2 3 Άσκηση 3 4 Άσκηση 4 5 Άσκηση 5 6 Προγραμματιστική Άσκηση 1 7 Προγραμματιστική Άσκηση 2 (CoReLab - NTUA) Αλγόριθμοι - 3

Outline 1 Άσκηση 1 2 Άσκηση 2 3 Άσκηση 3 4 Άσκηση 4 5 Άσκηση 5 6 Προγραμματιστική Άσκηση 1 7 Προγραμματιστική Άσκηση 2 (CoReLab - NTUA) Αλγόριθμοι - 3 Αλγόριθμοι και Πολυπλοκότητα 3η Σειρά Γραπτών και Προγραμματιστικών Ασκήσεων CoReLab ΣΗΜΜΥ - Ε.Μ.Π. Ιανουάριος 2019 (CoReLab - NTUA) Αλγόριθμοι - 3η σειρά ασκήσεων Ιανουάριος 2019 1 / 54 Outline 1 Άσκηση

Διαβάστε περισσότερα

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

Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Ενότητα 1 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΓΡΑΦΗΜΑΤΩΝ Σταύρος Δ. Νικολόπουλος 2017-18 www.cs.uoi.gr/~stavros Σχετικά με το Μάθημα Ώρες γραφείου: Δευτέρα Παρασκευή

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Ενότητα 11η Εισαγωγή στους Αλγορίθμους Ενότητα 11η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Δυναμικός Προγραμματισμός Σταθμισμένος Χρονοπρογραμματισμός

Διαβάστε περισσότερα

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

Αλγόριθμοι και Πολυπλοκότητα Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Αλγόριθμοι και Πολυπλοκότητα Παραδείγματα Δυναμικού Προγραμματισμού Προσαρμογή από διαφάνειες Σταύρου Νικολόπουλου (Παν.

Διαβάστε περισσότερα

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

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Βιβλιογραφία Jon Kleinberg και Éva Tardos, Σχεδιασμός αλγορίθμων, Εκδόσεις Κλειδάριθμος,

Διαβάστε περισσότερα

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

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες Κατευθυνόμενο γράφημα Συνάρτηση χωρητικότητας 2 6 20 Ροή δικτύου Συνάρτηση αφετηρίακός κόμβος 0 με τις ακόλουθες ιδιότητες 9 7 τερματικός κόμβος Περιορισμός χωρητικότητας: Αντισυμμετρία: Διατήρηση ροής:

Διαβάστε περισσότερα

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

Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Ενότητα 5 ΣΥΝΕΚΤΙΚΟΤΗΤΑ Σταύρος Δ. Νικολόπουλος 2017-18 www.cs.uoi.gr/~stavros Συνεκτικότητα Έννοια της συνδεσμικότητας: «Ποσότητα συνδεσμικότητας»...

Διαβάστε περισσότερα

Διαίρει και Βασίλευε. πρόβλημα μεγέθους Ν. διάσπαση. πρόβλημα μεγέθους k. πρόβλημα μεγέθους Ν-k

Διαίρει και Βασίλευε. πρόβλημα μεγέθους Ν. διάσπαση. πρόβλημα μεγέθους k. πρόβλημα μεγέθους Ν-k Διαίρει και Βασίλευε πρόβλημα μεγέθους Ν διάσπαση πρόβλημα μεγέθους k πρόβλημα μεγέθους Ν-k Διαίρει και Βασίλευε πρόβλημα μεγέθους Ν διάσπαση επιλύουμε αναδρομικά τα υποπροβλήματα πρόβλημα μεγέθους k πρόβλημα

Διαβάστε περισσότερα

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

Σχεδίαση και Ανάλυση Αλγορίθμων Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα. Δυναμικός & Γραμμικός Προγραμματισμός Προβλήματα Ροές σε Δίκτυα Σταύρος Δ. Νικολόπουλος -7 Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros

Διαβάστε περισσότερα

Θεωρία Γραφημάτων 5η Διάλεξη

Θεωρία Γραφημάτων 5η Διάλεξη Θεωρία Γραφημάτων 5η Διάλεξη Α. Συμβώνης Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Εφαρμοσμένων Μαθηματικών και Φυσικών Επιστημών Τομέας Μαθηματικών Φεβρουάριος 2017 Α. Συμβώνης (ΕΜΠ) Θεωρία Γραφημάτων 5η Διάλεξη

Διαβάστε περισσότερα

Μη γράφετε στο πίσω μέρος της σελίδας

Μη γράφετε στο πίσω μέρος της σελίδας Εισαγωγή στο Σχεδιασμό & την Ανάλυση Αλγορίθμων Εξέταση Φεβρουαρίου 2016 Σελ. 1 από 7 Στη σελίδα αυτή γράψτε μόνο τα στοιχεία σας. Γράψτε τις απαντήσεις σας στις επόμενες σελίδες, κάτω από τις αντίστοιχες

Διαβάστε περισσότερα

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

Γράφοι: κατευθυνόμενοι και μη Γράφοι: κατευθυνόμενοι και μη (V,E ) (V,E ) Γράφος (ή γράφημα): ζεύγος (V,E), V ένα μη κενό σύνολο, Ε διμελής σχέση πάνω στο V Μη κατευθυνόμενος γράφος: σχέση Ε συμμετρική V: κορυφές (vertices), κόμβοι

Διαβάστε περισσότερα

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 2: Μαθηματικό Υπόβαθρο

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 2: Μαθηματικό Υπόβαθρο ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Διάλεξη 2: Μαθηματικό Υπόβαθρο Τι θα κάνουμε σήμερα Συναρτήσεις & Σχέσεις (0.2.3) Γράφοι (Γραφήματα) (0.2.4) Λέξεις και Γλώσσες (0.2.5) Αποδείξεις (0.3) 1

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Εισαγωγή στους Αλγορίθμους Ενότητα 7η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Αλγόριθμοι Γραφημάτων Τοπολογική Διάταξη

Διαβάστε περισσότερα

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 18 Dijkstra s Shortest Path Algorithm 1 / 12 Ο αλγόριθμος εύρεσης της συντομότερης διαδρομής του Dijkstra

Διαβάστε περισσότερα

q(g \ S ) = q(g \ S) S + d = S.

q(g \ S ) = q(g \ S) S + d = S. Διάλεξη 9: 9.11.2016 Θεωρία Γραφημάτων Διδάσκων: Σταύρος Κολλιόπουλος Γραφέας: Παναγιωτίδης Αλέξανδρος & Σ. Κ. Θεώρημα 9.1 Εστω γράφημα G = (V, E), υπάρχει τέλειο ταίριασμα στο G αν και μόνο αν για κάθε

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ενότητα 3 Αλγόριθµοι Γραφηµάτων Bellman Ford Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

u v 4 w G 2 G 1 u v w x y z 4

u v 4 w G 2 G 1 u v w x y z 4 Διάλεξη :.0.06 Θεωρία Γραφημάτων Γραφέας: Σ. Κ. Διδάσκων: Σταύρος Κολλιόπουλος. Εισαγωγικοί ορισμοί Ορισμός. Γράφημα G καλείται ένα ζεύγος G = (V, E) όπου V είναι το σύνολο των κορυφών (ή κόμβων) και E

Διαβάστε περισσότερα

Φροντιστήριο 11 Λύσεις

Φροντιστήριο 11 Λύσεις Άσκηση 1 Φροντιστήριο 11 Λύσεις Να αποδείξετε ότι η κλάση Ρ είναι κλειστή ως προς τις πράξεις της ένωσης, της συναρμογής και του συμπληρώματος. Θα πρέπει να δείξουμε ότι: (α) Ένωση: Αν οι Λ 1 και Λ 2 είναι

Διαβάστε περισσότερα

Maximal Independent Set

Maximal Independent Set Maximal Indpndnt St Quick Rviw Μας δίνεται γράφος. Στους κόμβους του βρίσκονται ακίνητοι επεξεργαστές οι οποίοι επικοινωνούν σύγχρονα μέσω των ακμών. Οι επεξεργαστές προσπαθούν να λύσουν ένα πρόβλημα ανταλλάζοντας

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Εκλογή αρχηγού και κατασκευή BFS δένδρου σε σύγχρονο γενικό δίκτυο Παναγιώτα Παναγοπούλου Περίληψη Εκλογή αρχηγού σε γενικά δίκτυα Ορισμός του προβλήματος Ο αλγόριθμος FloodMax

Διαβάστε περισσότερα

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

Σχεδιαση Αλγοριθμων -Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο Σχεδίαση Αλγορίθμων Άπληστοι Αλγόριθμοι http://delab.csd.auth.gr/~gounaris/courses/ad 1 Άπληστοι αλγόριθμοι Προβλήματα βελτιστοποίησης ηςλύνονται με μια σειρά επιλογών που είναι: εφικτές τοπικά βέλτιστες

Διαβάστε περισσότερα

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

Κατ οίκον Εργασία 2 Σκελετοί Λύσεων Κατ οίκον Εργασία 2 Σκελετοί Λύσεων 1. Ο αλγόριθµος κτίζει όλες τις δυνατές αναθέσεις εργασιών στους φοιτητές (υπάρχουν n! διαφορετικές αναθέσεις) και επιστρέφει εκείνη µε το µέγιστο βαθµό καταλληλότητας.

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Ενότητα 8η Εισαγωγή στους Αλγορίθμους Ενότητα 8η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

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

3η Σειρά Γραπτών Ασκήσεων 1/48 3η Σειρά Γραπτών Ασκήσεων Αλγόριθμοι και Πολυπλοκότητα ΣΗΜΜΥ, Εθνικό Μετσόβιο Πολυτεχνείο 2/48 1 Άσκηση 1: Πομποί και Δέκτες 2 Άσκηση 2: Διακοπές στην Ικαρία 3 Άσκηση 3: Επιστροφή στη Γη 4 Άσκηση

Διαβάστε περισσότερα

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

Αλγόριθμοι Γραφημάτων Αλγόριθμοι Γραφημάτων 1. Συντομότατα μονοπάτια 2. Αλγόριθμος Bellman-Ford 3. Αλγόριθμος Dijkstra 4. Floyd-Warshall Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Single-Source Shortest Path Πρόβλημα:

Διαβάστε περισσότερα

Αριθμητική Ανάλυση και Εφαρμογές

Αριθμητική Ανάλυση και Εφαρμογές Αριθμητική Ανάλυση και Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 07-08 Αριθμητική Παραγώγιση Εισαγωγή Ορισμός 7. Αν y f x είναι μια συνάρτηση ορισμένη σε ένα διάστημα

Διαβάστε περισσότερα

Θεωρία Γραφημάτων 6η Διάλεξη

Θεωρία Γραφημάτων 6η Διάλεξη Θεωρία Γραφημάτων 6η Διάλεξη Α. Συμβώνης Εθνικο Μετσοβειο Πολυτεχνειο Σχολη Εφαρμοσμενων Μαθηματικων και Φυσικων Επιστημων Τομεασ Μαθηματικων Φεβρουάριος 2016 Α. Συμβώνης (ΕΜΠ) Θεωρία Γραφημάτων 6η Διάλεξη

Διαβάστε περισσότερα

Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Προηγμένα Συστήματα Πληροφορικής»

Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Προηγμένα Συστήματα Πληροφορικής» Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Προηγμένα Συστήματα Πληροφορικής» Μεταπτυχιακή Διατριβή Τίτλος Διατριβής Μελέτη του Προβλήματος των Κίβδηλων Νομισμάτων Ονοματεπώνυμο

Διαβάστε περισσότερα

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 23: Βραχύτερα Μονοπάτια σε Γράφους Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Βραχύτερα Μονοπάτια σε γράφους Ο αλγόριθμος Dijkstra για εύρεση της βραχύτερης απόστασης Ο αλγόριθμος

Διαβάστε περισσότερα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 3: Βραχύτερα Μονοπάτια σε Γράφους Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Βραχύτερα Μονοπάτια σε γράφους -Ο αλγόριθμος ijkstraγια εύρεση της βραχύτερης απόστασης -Ο αλγόριθμος

Διαβάστε περισσότερα

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

Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Ενότητα ΔΕΝΔΡΑ Σταύρος Δ. Νικολόπουλος 2017-18 www.cs.uoi.gr/~stavros Εισαγωγή Ένα γράφημα G είναι δένδρο αν: 1. Είναι συνδεδεμένο και δεν έχει κύκλους.

Διαβάστε περισσότερα

Θεωρία Γραφημάτων 5η Διάλεξη

Θεωρία Γραφημάτων 5η Διάλεξη Θεωρία Γραφημάτων 5η Διάλεξη Α. Συμβώνης Εθνικο Μετσοβειο Πολυτεχνειο Σχολη Εφαρμοσμενων Μαθηματικων και Φυσικων Επιστημων Τομεασ Μαθηματικων Φεβρουάριος 2016 Α. Συμβώνης (ΕΜΠ) Θεωρία Γραφημάτων 5η Διάλεξη

Διαβάστε περισσότερα

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

Σχεδίαση & Ανάλυση Αλγορίθμων Σχεδίαση & Ανάλυση Αλγορίθμων Ενότητα 6 Γραμμικός Προγραμματισμός Σταύρος Δ. Νικολόπουλος Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros Γραμμικός Προγραμματισμός

Διαβάστε περισσότερα

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ»

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ» Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ» 2 ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Προβλήματα ελάχιστης συνεκτικότητας δικτύου Το πρόβλημα της ελάχιστης

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Εισαγωγή στους Αλγορίθμους Ενότητα 9η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Ελάχιστα Γεννητικά Δένδρα Ελάχιστο Γεννητικό

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Εκλογή αρχηγού σε γενικά δίκτυα 20 Οκτωβρίου 2016 Παναγιώτα Παναγοπούλου Εκλογή αρχηγού σε γενικά δίκτυα Προηγούμενη διάλεξη Σύγχρονα Κατανεμημένα Συστήματα Μοντελοποίηση συστήματος Πρόβλημα εκλογής αρχηγού

Διαβάστε περισσότερα

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Φεβρουάριος 2005 Σύνολο μονάδων: 91

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Φεβρουάριος 2005 Σύνολο μονάδων: 91 Ε.Μ.Πoλυτεχνείο ΣΗΜΜΥ, ΣΕΜΦΕ Τομέας Τεχνολογίας Πληροφορικής & Υπολογιστών Διδάσκων: Ε.Ζαχος Ονοματεπώνυμο:... Αριθμός Μητρώου:... Σχολή:... εξάμηνο:... ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Φεβρουάριος 005 Σύνολο

Διαβάστε περισσότερα

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 7 Φεβρουαρίου 2017 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 7 Φεβρουαρίου / 38

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 7 Φεβρουαρίου 2017 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 7 Φεβρουαρίου / 38 4η Γραπτή Άσκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 7 Φεβρουαρίου 2017 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Άσκηση 7 Φεβρουαρίου 2017 1 / 38 Άσκηση 1 Πρέπει να βρούμε όλες τις καλές προτάσεις φίλων για τον

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

4.3 Ορθότητα και Πληρότητα

4.3 Ορθότητα και Πληρότητα 4.3 Ορθότητα και Πληρότητα Συστήματα αποδείξεων όπως η μορφολογική παραγωγή και η κατασκευή μοντέλων χρησιμοποιούνται για να δείξουμε την εγκυρότητα εξαγωγών συμπερασμάτων. Ένα σύστημα αποδείξεων μπορεί

Διαβάστε περισσότερα

Σημειωματάριο Δευτέρας 4 Δεκ. 2017

Σημειωματάριο Δευτέρας 4 Δεκ. 2017 Σημειωματάριο Δευτέρας 4 Δεκ. 2017 Ο αλγόριθμος Floyd-Warshall για την έυρεση όλων των αποστάσεων σε ένα γράφημα με βάρη στις ακμές Συνεχίσαμε σήμερα το θέμα της προηγούμενης Τετάρτης. Έχουμε ένα γράφημα

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Ενότητα 7η Εισαγωγή στους Αλγορίθμους Ενότητα 7η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. Κεφάλαιο 8 NP και Υπολογιστική Δυσεπιλυσιμότητα Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 πρόβλημα αναζήτησης (search problem) Ένα πρόβλημα αναζήτησης είναι ένα πρόβλημα στο

Διαβάστε περισσότερα

Σειρά Προβλημάτων 1 Λύσεις

Σειρά Προβλημάτων 1 Λύσεις ΕΠΛ2: Θεωρία Υπολογισμού και Πολυπλοκότητα Σειρά Προβλημάτων Λύσεις Άσκηση Να βρείτε το σφάλμα στην πιο κάτω απόδειξη. Ισχυρισμός: Όλα τα βιβλία που έχουν γραφτεί στη Θεωρία Υπολογισμού έχουν τον ίδιο

Διαβάστε περισσότερα

Περιεχόμενα. Εισαγωγή του επιμελητή, Γιάννης Σταματίου 15 Πρόλογος 17 Εισαγωγή 23. Μέρος I. ΕΠΑΝΑΛΗΠΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΑΝΑΛΛΟΙΩΤΕΣ ΣΥΝΘΗΚΕΣ

Περιεχόμενα. Εισαγωγή του επιμελητή, Γιάννης Σταματίου 15 Πρόλογος 17 Εισαγωγή 23. Μέρος I. ΕΠΑΝΑΛΗΠΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΑΝΑΛΛΟΙΩΤΕΣ ΣΥΝΘΗΚΕΣ Περιεχόμενα Εισαγωγή του επιμελητή, Γιάννης Σταματίου 15 Πρόλογος 17 Εισαγωγή 23 Μέρος I. ΕΠΑΝΑΛΗΠΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΑΝΑΛΛΟΙΩΤΕΣ ΣΥΝΘΗΚΕΣ 1. Επαναληπτικοί αλγόριθμοι: Μέτρα προόδου και αναλλοίωτες συνθήκες.....................................................29

Διαβάστε περισσότερα

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 9 P vs NP 1 / 13 Δυσκολία επίλυσης υπολογιστικών προβλημάτων Κάποια προβλήματα είναι εύκολα να λυθούν με

Διαβάστε περισσότερα

Γράφοι (συνέχεια) Ο αλγόριθµος Dijkstra για εύρεση βραχυτέρων µονοπατιών Ta µονοπάτια Euler

Γράφοι (συνέχεια) Ο αλγόριθµος Dijkstra για εύρεση βραχυτέρων µονοπατιών Ta µονοπάτια Euler Γράφοι (συνέχεια) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Ο αλγόριθµος Dijkstra για εύρεση βραχυτέρων µονοπατιών Ta µονοπάτια Euler ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

Διαβάστε περισσότερα

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

ΣΥΝΕΚΤΙΚΟΤΗΤΑ ΓΡΑΦΗΜΑΤΩΝ Συνεκτικότητα Γραφημάτων 123 ΚΕΦΑΛΑΙΟ 4 ΣΥΝΕΚΤΙΚΟΤΗΤΑ ΓΡΑΦΗΜΑΤΩΝ 4.1 Τοπική και Ολική Συνεκτικότητα Γραφημάτων 4.2 Συνεκτικότητα Μη-κατευθυνόμενων Γραφημάτων 4.3 Συνεκτικότητα Κατευθυνόμενων Γραφημάτων

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Παναγιώτα Παναγοπούλου 11η Διάλεξη 12 Ιανουαρίου 2017 1 Ανεξάρτητο σύνολο Δοθέντος ενός μη κατευθυνόμενου γραφήματος G = (V, E), ένα ανεξάρτητο σύνολο (independent set) είναι ένα

Διαβάστε περισσότερα

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

ΕΥΡΕΣΗ ΕΛΑΧΙΣΤΩΝ ΜΟΝΟΠΑΤΙΩΝ & ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΕΥΡΕΣΗ ΕΛΑΧΙΣΤΩΝ ΜΟΝΟΠΑΤΙΩΝ & ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΩΝ (ΑΛΓΟΡΙΘΜΟΙ, Sanjoy Dasgupta, Christos Papadimitriou, Umesh Vazirani, Κεφάλαιο 4 ΣΧΕΔΙΑΣΜΟΣ ΑΛΓΟΡΙΘΜΩΝ, Jon Kleinberg, Eva Tardos, Κεφάλαιο 4) 1 Θέματα

Διαβάστε περισσότερα

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους Επίλυση Προβληµάτων µε Greedy Αλγόριθµους Περίληψη Επίλυση προβληµάτων χρησιµοποιώντας Greedy Αλγόριθµους Ελάχιστα Δέντρα Επικάλυψης Αλγόριθµος του Prim Αλγόριθµος του Kruskal Πρόβληµα Ελάχιστης Απόστασης

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Αλγόριθμοι για αυτόματα

Αλγόριθμοι για αυτόματα Κεφάλαιο 8 Αλγόριθμοι για αυτόματα Κύρια βιβλιογραφική αναφορά για αυτό το Κεφάλαιο είναι η Hopcroft, Motwani, and Ullman 2007. 8.1 Πότε ένα DFA αναγνωρίζει κενή ή άπειρη γλώσσα Δοθέντος ενός DFA M καλούμαστε

Διαβάστε περισσότερα

d(v) = 3 S. q(g \ S) S

d(v) = 3 S. q(g \ S) S Διάλεξη 9: 9.11.2016 Θεωρία Γραφημάτων Διδάσκων: Σταύρος Κολλιόπουλος Γραφέας: Παναγιωτίδης Αλέξανδρος Θεώρημα 9.1 Εστω γράφημα G = (V, E), υπάρχει τέλειο ταίριασμα στο G αν και μόνο αν για κάθε S υποσύνολο

Διαβάστε περισσότερα

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

Στοιχεία Θεωρίας Γράφων (Graph Theory) Στοιχεία Θεωρίας Γράφων (Graph Theory) Ε Εξάμηνο, Τμήμα Πληροφορικής & Τεχνολογίας Υπολογιστών ΤΕΙ Λαμίας plam@inf.teilam.gr, Οι διαφάνειες βασίζονται στα βιβλία:. Αλγόριθμοι, Σχεδιασμός & Ανάλυση, η έκδοση,

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Σχεδίαση & Ανάλυση Αλγορίθμων Σχεδίαση & Ανάλυση Αλγορίθμων Απαιτήσεις Μαθήματος Εργαστηρίου Σκιαγράφηση Μαθήματος μια Πρώτη Εισαγωγή Σταύρος Δ. Νικολόπουλος Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros

Διαβάστε περισσότερα

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός Κατευθυνόμενα γραφήματα Μαθηματικά Πληροφορικής 6ο Μάθημα Τμήμα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών Κατευθυνόμενο γράφημα G είναι ένα ζεύγος (V, E ) όπου V πεπερασμένο σύνολο του οποίου

Διαβάστε περισσότερα

Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο

Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Σύνολα Συναρτήσεις και Σχέσεις Γραφήματα Λέξεις και Γλώσσες Αποδείξεις ΕΠΛ 211 Θεωρία

Διαβάστε περισσότερα

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

Δομές Δεδομένων & Αλγόριθμοι Θέματα Απόδοσης Αλγορίθμων 1 Η Ανάγκη για Δομές Δεδομένων Οι δομές δεδομένων οργανώνουν τα δεδομένα πιο αποδοτικά προγράμματα Πιο ισχυροί υπολογιστές πιο σύνθετες εφαρμογές Οι πιο σύνθετες εφαρμογές απαιτούν

Διαβάστε περισσότερα

Εισαγωγή Στις Αρχές Της Επιστήμης Των Η/Υ. Η έννοια του Προβλήματος - ΚΕΦΑΛΑΙΟ 2

Εισαγωγή Στις Αρχές Της Επιστήμης Των Η/Υ. Η έννοια του Προβλήματος - ΚΕΦΑΛΑΙΟ 2 Εισαγωγή Στις Αρχές Της Επιστήμης Των Η/Υ Η έννοια του Προβλήματος - ΚΕΦΑΛΑΙΟ 2 2. Η έννοια του προβλήματος 2 2. Η έννοια του προβλήματος 2.1 Το πρόβλημα στην επιστήμη των Η/Υ 2.2 Κατηγορίες προβλημάτων

Διαβάστε περισσότερα