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

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

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

Transcript

1

2

3 Περιεχόμενα Σχετικά με τους συγγραφείς...3 Πρόλογος Πρόλογος της ελληνικής έκδοσης Εισαγωγή: Κάποια αντιπροσωπευτικά προβλήματα Ένα πρώτο πρόβλημα: Ευσταθές Ταίριασμα Πέντε αντιπροσωπευτικά προβλήματα...37 Λυμένες ασκήσεις...45 Ασκήσεις...49 Σημειώσεις και πρόσθετα αναγνώσματα Βασικά στοιχεία ανάλυσης αλγορίθμων Υπολογιστική επιλυσιμότητα Ασυμπτωτικός ρυθμός αύξησης Υλοποίηση του αλγορίθμου Ευσταθούς Ταιριάσματος με λίστες και πίνακες Μια επισκόπηση συνηθισμένων χρόνων εκτέλεσης Μια πιο πολύπλοκη δομή: ουρές προτεραιότητας...87 Λυμένες ασκήσεις...95 Ασκήσεις...97 Σημειώσεις και πρόσθετα αναγνώσματα Γραφήματα Βασικοί ορισμοί και εφαρμογές Συνεκτικότητα γραφήματος και διάτρεξη γραφήματος Υλοποίηση διάτρεξης γραφήματος με τη χρήση ουρών και στοιβών Έλεγχος διμερότητας: Μια εφαρμογή της αναζήτησης πρώτα κατά πλάτος Συνεκτικότητα σε κατευθυνόμενα γραφήματα...129

4 6 Περιεχόμενα 3.6 Κατευθυνόμενα ακυκλικά γραφήματα και τοπολογική διάταξη Λυμένες ασκήσεις Ασκήσεις Σημειώσεις και πρόσθετα αναγνώσματα Άπληστοι αλγόριθμοι Χρονοπρογραμματισμός διαστημάτων: Ο άπληστος αλγόριθμος υπερτερεί Χρονοπρογραμματισμός για ελαχιστοποίηση καθυστέρησης: ένα επιχείρημα ανταλλαγής Βέλτιστη κρυφή μνήμη: ένα πιο περίπλοκο επιχείρημα ανταλλαγής Συντομότερες διαδρομές σε ένα γράφημα Το πρόβλημα του Ελάχιστου Γεννητικού Δένδρου Υλοποίηση του αλγορίθμου του Kruskal: η δομή δεδομένων Union-Find Δημιουργία συστάδων Κώδικες Huffman και συμπίεση δεδομένων *4.9 Δενδροειδή ελάχιστου κόστους: Ένας άπληστος πολυφασικός αλγόριθμος Λυμένες ασκήσεις Ασκήσεις Σημειώσεις και πρόσθετα αναγνώσματα Διαίρει και βασίλευε Μια πρώτη αναδρομή: Ο αλγόριθμος Mergesort Περαιτέρω αναδρομικές σχέσεις Μέτρηση αντιστροφών Εύρεση του πλησιέστερου ζεύγους σημείων Πολλαπλασιασμός ακεραίων Συνελίξεις και ο ταχύς μετασχηματισμός Fourier Λυμένες ασκήσεις Ασκήσεις Σημειώσεις και πρόσθετα αναγνώσματα Δυναμικός προγραμματισμός Σταθμισμένος Χρονοπρογραμματισμος Διαστημάτων: Μια αναδρομική διαδικασία Αρχές δυναμικού προγραμματισμού Τμηματοποιημένα ελάχιστα τετράγωνα: Πολλαπλές επιλογές Αθροίσματα υποσυνόλων και σακίδια: Προσθήκη μιας μεταβλητής Δευτερεύουσα δομή RNA: Δυναμικός προγραμματισμός σε διαστήματα Ευθυγράμμιση ακολουθίας...319

5 Περιεχόμενα Ευθυγράμμιση ακολουθίας σε γραμμικό χώρο μέσω "διαίρει και βασίλευε" Συντομότερες διαδρομές σε ένα γράφημα Συντομότερες διαδρομές και πρωτόκολλα διανύσματος απόστασης *6.10 Αρνητικοί κύκλοι σε ένα γράφημα Λυμένες ασκήσεις Ασκήσεις Σημειώσεις και πρόσθετα αναγνώσματα Ροή δικτύου Το πρόβλημα της Μέγιστης Ροής και ο αλγόριθμος Ford-Fulkerson Μέγιστες ροές και ελάχιστες αποκοπές σε ένα δίκτυο Επιλογή καλών διαδρομών επαύξησης *7.4 Ο αλγόριθμος Μέγιστης Ροής με Προροή-Προώθηση Μια πρώτη εφαρμογή: Το πρόβλημα του Διμερούς Ταιριάσματος Ασύνδετες διαδρομές σε κατευθυνόμενα και μη κατευθυνόμενα γραφήματα Επεκτάσεις στο πρόβλημα Μέγιστης Ροής Σχεδιασμός διεξαγωγής έρευνας Χρονοπρογραμματισμός αεροπορικών δρομολογίων Τμηματοποίηση εικόνας Επιλογή έργων Αποκλεισμός στο μπέιζμπολ *7.13 Μια πρόσθετη κατεύθυνση: Προσθήκη κόστους στο πρόβλημα Ταιριάσματος Λυμένες ασκήσεις Ασκήσεις Σημειώσεις και πρόσθετα αναγνώσματα ΝΡ και υπολογιστική δυσεπιλυσιμότητα Αναγωγές πολυωνυμικού χρόνου Αναγωγές μέσω "μικροεργαλείων": Το πρόβλημα της Ικανοποιησιμότητας Αποδοτική πιστοποίηση και ο ορισμός του ΝΡ NP-πλήρη προβλήματα Προβλήματα καθορισμού ακολουθίας Προβλήματα διαμέρισης Χρωματισμός γραφήματος Αριθμητικά προβλήματα Co-ΝΡ και η ασυμμετρία του ΝΡ Μερική κατηγοριοποίηση δύσκολων προβλημάτων...556

6 8 Περιεχόμενα Λυμένες ασκήσεις Ασκήσεις Σημειώσεις και πρόσθετα αναγνώσματα PSPACE: Μια κλάση προβλημάτων πέρα από το ΝΡ PSPACE Μερικά δύσκολα προβλήματα του PSPACE Επίλυση ποσοτικοποιημένων προβλημάτων και παιχνιδιών σε πολυωνυμικό χώρο Επίλυση του προβλήματος Σχεδιασμού σε πολυωνυμικό χώρο Απόδειξη προβλημάτων ότι είναι PSPACE-πλήρη Λυμένες ασκήσεις Ασκήσεις Σημειώσεις και πρόσθετα αναγνώσματα Επέκταση των ορίων της επιλυσιμότητας Εύρεση μικρών Καλύψεων Κορυφών Επίλυση ΝΡ-δύσκολων προβλημάτων σε δένδρα Χρωματισμός ενός συνόλου κυκλικών τόξων *10.4 Δενδρική Διάσπαση Γραφημάτων *10.5 Κατασκευή μιας δενδρικής διάσπασης Λυμένες ασκήσεις Ασκήσεις Σημειώσεις και πρόσθετα αναγνώσματα Προσεγγιστικοί αλγόριθμοι Άπληστοι αλγόριθμοι και όρια του βέλτιστου: Το πρόβλημα Εξισορρόπησης Φορτίου Το πρόβλημα της Επιλογής Κέντρων Κάλυψη Συνόλου: Μια γενική άπληστη ευρετική μέθοδος Η μέθοδος τιμολόγησης: Κάλυψη κορυφών Μεγιστοποίηση μέσω της μεθόδου τιμολόγησης Γραμμικός προγραμματισμός και στρογγυλοποίηση: Μια εφαρμογή της Κάλυψης Κορυφών *11.7 Και πάλι η Εξισορρόπηση Φορτίου: Μια πιο προηγμένη εφαρμογή ΓΠ Αυθαίρετα καλές προσεγγίσεις: Το πρόβλημα του Σακιδίου Λυμένες ασκήσεις Ασκήσεις Σημειώσεις και πρόσθετα αναγνώσματα...727

7 Περιεχόμενα Τοπική αναζήτηση Το τοπίο ενός προβλήματος βελτιστοποίησης Ο αλγόριθμος Metropolis και η Προσομοιωμένη Ανόπτηση Μια εφαρμογή της τοπικής αναζήτησης στα νευρωνικά δίκτυα Hopfield Προσέγγιση Μέγιστης Αποκοπής μέσω τοπικής αναζήτησης Επιλογή της σχέσης γειτνίασης *12.6 Κατηγοριοποίηση μέσω τοπικής αναζήτησης Δυναμική της καλύτερης αντίδρασης και ισορροπίες Nash Λυμένες ασκήσεις Ασκήσεις Σημειώσεις και πρόσθετα αναγνώσματα Τυχαιοποιημένοι αλγόριθμοι Μια πρώτη εφαρμογή: Επίλυση ανταγωνισμού Εύρεση της καθολικής ελάχιστης αποκοπής Οι τυχαίες μεταβλητές και οι μέσες τιμές τους Ένας τυχαιοποιημένος προσεγγιστικός αλγόριθμος για το MAX 3-SAT Τυχαιοποιημένη μέθοδος Διαίρει και Βασίλευε: Διάμεσο στοιχείο & Quicksort Κατακερματισμός: Μια τυχαιοποιημένη υλοποίηση λεξικών Εύρεση του πλησιέστερου ζεύγους σημείων: Μια τυχαιοποιημένη προσέγγιση Τυχαιοποιημένη κρυφή μνήμη Όρια Chernoff Εξισορρόπηση φορτίου Δρομολόγηση πακέτων Υπόβαθρο: Μερικοί βασικοί ορισμοί πιθανοτήτων Λυμένες ασκήσεις Ασκήσεις Σημειώσεις και πρόσθετα αναγνώσματα Επίλογος: Αλγόριθμοι που εκτελούνται για πάντα Βιβλιογραφία Λεξικό όρων Ευρετήριο...905

8

9 4.4 Συντομότερες διαδρομές σε ένα γράφημα 171 με τον αλγόριθμο του Απώτατου Μελλοντικού Στοιχείου. Θα εξετάσουμε αυτή την ανάλυση, καθώς και την ανάλυση μιας τυχαιοποιημένης παραλλαγής της αρχής LRU, όταν θα επιστρέψουμε στο πρόβλημα της χρήσης κρυφής μνήμης στο Κεφάλαιο Συντομότερες διαδρομές σε ένα γράφημα Κάποιοι από τους βασικούς αλγορίθμους για γραφήματα βασίζονται σε αρχές άπληστου σχεδιασμού. Στην ενότητα αυτή θα εφαρμόσουμε έναν άπληστο αλγόριθμο στο πρόβλημα της εύρεσης των συντομότερων διαδρομών, ενώ στην επόμενη ενότητα θα εξετάσουμε την κατασκευή γεννητικών δένδρων ελάχιστου κόστους. Το πρόβλημα Όπως έχουμε δει, τα γραφήματα χρησιμοποιούνται συχνά για τη μοντελοποίηση δικτύων στα οποία ταξιδεύει κανείς από το ένα σημείο στο άλλο διασχίζοντας μια ακολουθία λεωφόρων μέσω κόμβων, ή διασχίζοντας μια ακολουθία συνδέσμων επικοινωνίας μέσω ενδιάμεσων δρομολογητών. Κατά συνέπεια, ένα βασικό αλγοριθμικό πρόβλημα είναι ο προσδιορισμός της συντομότερης διαδρομής μεταξύ των κόμβων ε- νός γραφήματος. Μπορεί να το θέσουμε αυτό ως ερώτηση σημείου προς σημείο: Δεδομένων των κόμβων u και v, ποια είναι η συντομότερη διαδρομή u-v; Ή μπορεί να ζητήσουμε περισσότερες πληροφορίες: Δεδομένου ενός κόμβου εκκίνησης s, ποια είναι η συντομότερη διαδρομή από τον s προς κάθε άλλο κόμβο; Η συγκεκριμένη διευθέτηση του προβλήματος συντομότερης διαδρομής είναι η εξής. Μας δίνεται ένα κατευθυνόμενο γράφημα G = (V, E), με έναν καθορισμένο κόμβο εκκίνησης s. Υποθέτουμε ότι ο s διαθέτει διαδρομή προς όλους τους κόμβους του γραφήματος G. Κάθε ακμή e έχει μήκος l e 0, το οποίο δηλώνει το χρόνο (ή την απόσταση, ή το κόστος) που απαιτείται για τη διάσχιση της ακμής e. Για μια διαδρομή P, το μήκος της P που συμβολίζεται με l(p) είναι το άθροισμα των μηκών όλων των ακμών της P. Ο σκοπός μας είναι να προσδιορίσουμε τη συντομότερη διαδρομή από τον s προς οποιονδήποτε άλλον κόμβο του γραφήματος. Θα πρέπει να αναφέρουμε ότι, αν και το πρόβλημα καθορίζεται για ένα κατευθυνόμενο γράφημα, μπορούμε να χειριστούμε την περίπτωση του μη κατευθυνόμενου γραφήματος αντικαθιστώντας απλώς κάθε μη κατευθυνόμενη ακμή e = (u, v) μήκους l e με δύο κατευθυνόμενες ακμές (u, v) και (v, u), κάθε μία μήκους l e. Σχεδιασμός του αλγορίθμου Το 1959 ο Edsger Dijkstra πρότεινε έναν πολύ απλό άπληστο αλγόριθμο για την επίλυση του προβλήματος των συντομότερων διαδρομών μίας αφετηρίας (single-source shortest-paths). Θα ξεκινήσουμε με την περιγραφή ενός αλγορίθμου ο οποίος απλώς προσδιορίζει το μήκος της συντομότερης διαδρομής από τον s προς οποιονδήποτε

10 172 Κεφάλαιο 4 Άπληστοι αλγόριθμοι άλλον κόμβο του γραφήματος. κατόπιν είναι εύκολο να παραγάγουμε και τις ίδιες τις διαδρομές. Ο αλγόριθμος διατηρεί ένα σύνολο S από κορυφές u για τις οποίες έχουμε προσδιορίσει την απόσταση της συντομότερης διαδρομής d(u) από τον κόμβο s. αυτό είναι το "εξερευνημένο" τμήμα του γραφήματος. Αρχικά S = {s} και d(s) = 0. Τώρα, για κάθε κόμβο v V S, προσδιορίζουμε τη συντομότερη διαδρομή που μπορεί να κατασκευαστεί αν διατρέξουμε μια διαδρομή μέσω του εξερευνημένου τμήματος S προς κάποιον κόμβο u S, και στη συνέχεια ακολουθήσουμε την ακμή (u, v). Με άλλα λόγια, εξετάζουμε την ποσότητα d'(v) = min e=(u, v):u S d(u) + l e. Επιλέγουμε τον κόμβο v V S για τον οποίο αυτή η ποσότητα είναι η ελάχιστη, προσθέτουμε τον v στο S, και ορίζουμε ότι το d(v) είναι η τιμή d'(v). Αλγόριθμος του Dijkstra (G, l) Έστω S το σύνολο των εξερευνημένων κόμβων For each u S, αποθηκεύουμε μια απόσταση d(u) Αρχικά S = {s} και d(s) = 0. While S V Διάλεξε έναν κόμβο v S με τουλάχιστον μία ακμή από το S για τον οποίο το d'(v) = min d(u) + l e=(u,v):u S είναι όσο το δυνατόν μικρότερο e Πρόσθεσε το v στο S και όρισε d(v) = d'(v) EndWhile Είναι εύκολο να παραγάγουμε τις διαδρομές s-u που αντιστοιχούν στις αποστάσεις τις οποίες βρίσκει ο αλγόριθμος του Dijkstra. Καθώς κάθε κόμβος v προστίθεται στο σύνολο S, καταγράφουμε απλώς την ακμή (u, v) με την οποία επιτυγχάνεται η τιμή min e=(u, v):u S d(u) + l e. Η διαδρομή P v αναπαριστάνεται έμμεσα από τις ακμές αυτές: αν (u, v) είναι η ακμή που έχουμε αποθηκεύσει για τον κόμβο v, τότε η P v είναι απλώς (αναδρομικά) η διαδρομή P u ακολουθούμενη από την ακμή (u, v). Με άλλα λόγια, για να κατασκευάσουμε την P v, ξεκινάμε απλώς από τον κόμβο v. ακολουθούμε την ακμή που έχουμε αποθηκεύσει για τον v κατά την αντίστροφη κατεύθυνση, ώστε να φτάσουμε στον κόμβο u. μετά ακολουθούμε προς την αντίστροφη κατεύθυνση την ακμή που έχουμε αποθηκεύσει για τον κόμβο u ώστε να φτάσουμε στον πρόκατοχό του, κ.ο.κ. μέχρι να φθάσουμε στον s. Σημειώστε ότι θα πρέπει να φτάσουμε τελικά στον κόμβο s, επειδή η αντίστροφη πορεία μας από τον κόμβο v επισκέπτεται συνεχώς κόμβους που έχουμε προσθέσει σε προηγούμενα βήματα στο S. Για να αποκτήσουμε μια καλύτερη αίσθηση για το τι κάνει ο αλγόριθμος, εξετάστε το στιγμιότυπο εκτέλεσής του που φαίνεται στην Εικόνα 4.7. Στο σημείο που φαίνεται στην εικόνα έχουν εκτελεστεί δύο επαναλήψεις: η πρώτη πρόσθεσε τον κόμβο u και η δεύτερη πρόσθεσε τον κόμβο v. Στην επανάληψη που πρόκειται να εκτελεστεί θα προστεθεί ο κόμβος x, επειδή επιτυγχάνει την μικρότερη απόσταση d'(x). χάρη στην ακμή (u, x) έχουμε d'(x) = d(u) + l ux = 2. Παρατηρήστε ότι η προσπάθεια να προστεθεί ο κόμβος y ή ο κόμβος z στο σύνολο S σε αυτό το σημείο θα οδηγήσει σε λανθασμένη τιμή για τις αποστάσεις των συντομότερων διαδρομών τους. τελικά, οι κόμβοι αυτοί θα προστεθούν λόγω των ακμών τους από τον κόμβο x.

11 4.4 Συντομότερες διαδρομές σε ένα γράφημα y 1 u 1 1 s 4 x 2 2 Σύνολο S: κόμβοι που έχουν ήδη v εξερευνηθεί 3 2 Εικόνα 4.7 Ένα στιγμιότυπο της εκτέλεσης του αλγορίθμου του Dijkstra. Ο επόμενος κόμβος που θα προστεθεί στο σύνολο S είναι ο x, λόγω της διαδρομής μέσω του u. Ανάλυση του αλγορίθμου Σε αυτό το παράδειγμα βλέπουμε ότι ο αλγόριθμος του Dijkstra κάνει το σωστό και αποφεύγει τις συνεχείς παγίδες: η επαύξηση του συνόλου S με λανθασμένο κόμβο μπορεί να οδηγήσει σε υπερεκτίμηση της απόστασης συντομότερης διαδρομής προς αυτόν τον κόμβο. Το ερώτημα είναι το ακόλουθο: Είναι πάντοτε αληθές ότι, όταν ο αλγόριθμος του Dijkstra προσθέτει έναν κόμβο v, παίρνουμε πραγματικά την απόσταση της συντομότερης διαδρομής προς τον v; Θα απαντήσουμε τώρα σε αυτό το ερώτημα αποδεικνύοντας την ορθότητα του αλγορίθμου, και δείχνοντας ότι οι διαδρομές P u είναι πράγματι οι συντομότερες διαδρομές. Ο αλγόριθμος του Dijkstra είναι άπληστος, με την έννοια ότι πάντοτε σχηματίζουμε τη νέα συντομότερη διαδρομή s-v που μπορούμε να δημιουργήσουμε από μια διαδρομή του S που ακολουθείται από μία μόνο ακμή. Θα αποδείξουμε την ορθότητα του αλγορίθμου αυτού χρησιμοποιώντας μια παραλλαγή του πρώτου μας στυλ ανάλυσης: θα δείξουμε ότι ο αλγόριθμος "υπερτερεί" από όλες τις άλλες λύσεις αποδεικνύοντας επαγωγικά ότι κάθε φορά που επιλέγει μία διαδρομή προς έναν κόμβο v, αυτή η διαδρομή είναι η συντομότερη από κάθε άλλη δυνατή διαδρομή προς τον κόμβο v. (4.14) Θεωρήστε το σύνολο S σε κάθε σημείο της εκτέλεσης του αλγορίθμου. Για κάθε u S, η διαδρομή P u είναι η συντομότερη διαδρομή s-u. Σημειώστε ότι αυτό το γεγονός αποδεικνύει αμέσως την ορθότητα του αλγορίθμου του Dijkstra, καθώς μπορούμε απλώς να το εφαρμόσουμε στο σημείο τερματισμού του αλγορίθμου, όπου το S περιλαμβάνει όλους τους κόμβους. Απόδειξη. Θα αποδείξουμε αυτήν την πρόταση με επαγωγή ως προς το μέγεθος του S. Η περίπτωση S = 1 είναι εύκολη, αφού τότε έχουμε S = {s} και d(s) = 0. Υποθέστε z

12 174 Κεφάλαιο 4 Άπληστοι αλγόριθμοι ότι ο ισχυρισμός ισχύει όταν S = k για κάποια τιμή k 1. αυξάνουμε τώρα το μέγεθος του S σε k + 1 με την προσθήκη του κόμβου v. Έστω ότι (u, v) είναι η τελική ακμή της διαδρομής s-v P v. Λόγω της υπόθεσης της επαγωγής, η P u είναι η συντομότερη διαδρομή s-u για οποιοδήποτε u S. Θεωρήστε τώρα κάθε άλλη διαδρομή s-v P. θέλουμε να δείξουμε ότι έχει τουλάχιστον το ίδιο μήκος με την P v. Για να φθάσει στον κόμβο v, αυτή η διαδρομή P πρέπει κάπου να αφήσει το σύνολο S. έστω ότι y είναι ο πρώτος κόμβος της P που δεν ανήκει στο S, και έστω x S ο κόμβος ακριβώς πριν από τον y. Η κατάσταση αυτή φαίνεται στην Εικόνα 4.8, και η ουσία της απόδειξης είναι πολύ απλή: η P δεν μπορεί να είναι συντομότερη από την P v επειδή έχει ήδη τουλάχιστον το ίδιο μήκος με την P v τη στιγμή που άφησε το σύνολο S. Πράγματι, στην επανάληψη k+1 ο αλγόριθμος του Dijkstra πρέπει να έχει εξετάσει την προσθήκη του κόμβου y στο σύνολο S μέσω της ακμής (x, y) και απέρριψε αυτή την επιλογή έναντι της προσθήκης του v. Αυτό σημαίνει ότι δεν υπάρχει διαδρομή από τον s στον y μέσω του x που να είναι συντομότερη από την P v. Όμως η μερική διαδρομή της P μέχρι τον κόμβο y είναι μια τέτοια διαδρομή, οπότε αυτή η μερική διαδρομή έχει τουλάχιστον το ίδιο μήκος με την P v. Επειδή τα μήκη των ακμών δεν είναι αρνητικά, η πλήρης διαδρομή P έχει τουλάχιστον το ίδιο μήκος με την P v. Εικόνα 4.8 Η συντομότερη διαδρομή P v και μία εναλλακτική s-v διαδρομή P μέσω του κόμβου y. Αυτό μας δίνει την πλήρη απόδειξη. μπορούμε να διατυπώσουμε τον ισχυρισμό της προηγούμενης παραγράφου χρησιμοποιώντας τις ακόλουθες ανισότητες. Έστω P' η μερική διαδρομή της P από τον κόμβο s στον κόμβο x. Επειδή x S, γνωρίζουμε από την υπόθεση της επαγωγής ότι η P x είναι η συντομότερη διαδρομή s-x (μήκους d(x)), οπότε l(p') l(p x ) = d(x). Έτσι η μερική διαδρομή της P από τον κόμβο y έχει μήκος l(p') + l(x, y) d(x) + l(x, y) d'(y), και η πλήρης διαδρομή P έχει τουλάχιστον το ίδιο μήκος με αυτή τη μερική διαδρομή. Τέλος, επειδή ο αλγόριθμος του Dijkstra επέλεξε τον κόμβο v σε αυτή την επανάληψη, γνωρίζουμε ότι d'(y) d'(v) = l(p v ). Ο συνδυασμός αυτών των ανισοτήτων δείχνει ότι l(p) l(p') + l(x, y) l(p v ). Ας αναφέρουμε δύο παρατηρήσεις σχετικά με τον αλγόριθμο του Dijkstra και την ανάλυσή του. Πρώτον, ο αλγόριθμος δεν βρίσκει πάντοτε τις συντομότερες διαδρομές αν κάποιες από τις ακμές μπορούν να έχουν αρνητικά μήκη. (Βλέπετε σε ποιο σημείο "χαλάει" η απόδειξη;) Πολλές εφαρμογές συντομότερης διαδρομής περιλαμβάνουν αρ-

13 4.4 Συντομότερες διαδρομές σε ένα γράφημα 175 νητικά μήκη ακμών, και σε αυτή την περίπτωση απαιτείται ένας πιο πολύπλοκος αλγόριθμος αυτός των Bellman και Ford. Θα δούμε αυτόν τον αλγόριθμο όταν θα εξετάσουμε το θέμα του δυναμικού προγραμματισμού. Η δεύτερη παρατήρηση είναι ότι ο αλγόριθμος του Dijkstra είναι, κατά μία έννοια, ακόμη απλούστερος απ' ό,τι τον περιγράψαμε εδώ. Ο αλγόριθμος του Dijkstra είναι στην πραγματικότητα μια "συνεχής" εκδοχή του αλγορίθμου αναζήτησης πρώτα κατά πλάτος για τη διάσχιση ενός γραφήματος, και το κίνητρό του είναι η ακόλουθη φυσική διαισθητική ιδέα. Υποθέστε ότι οι ακμές του γραφήματος G σχηματίζουν ένα σύστημα σωληνώσεων γεμάτων με νερό, που συνδέονται στους κόμβους. κάθε ακμή e έχει μήκος l e και σταθερή διατομή. Υποθέστε τώρα ότι πέφτει μία ακόμα σταγόνα νερού στον κόμβο s και ξεκινά ένα κύμα από τον s. Καθώς το κύμα επεκτείνεται από τον κόμβο s με σταθερή ταχύτητα, η διογκούμενη σφαίρα του μετώπου του κύματος φθάνει στους κόμβους κατά αύξουσα σειρά της απόστασής τους από τον s. Είναι εύκολο να πιστέψουμε (και ισχύει φυσικά) ότι η διαδρομή που ακολούθησε το μέτωπο του κύματος για να πάει σε κάποιον κόμβο v είναι η συντομότερη διαδρομή. Πράγματι, είναι εύκολο να δούμε ότι αυτή ακριβώς είναι η διαδρομή προς τον v που βρίσκει ο αλγόριθμος του Dijkstra, και ότι οι κόμβοι που ανακαλύπτονται από το "διογκούμενο νερό" είναι στην ίδια σειρά με αυτήν που ανακαλύπτονται από τον αλγόριθμο του Dijkstra. Υλοποίηση και χρόνος εκτέλεσης Για να ολοκληρώσουμε την ανάλυσή μας για τον αλγόριθμο του Dijkstra, θα εξετάσουμε το χρόνο εκτέλεσής του. Υπάρχουν n-1 επαναλήψεις του βρόχου While για ένα γράφημα με n κόμβους, καθώς κάθε επανάληψη προσθέτει ένα νέο κόμβο v στο S. Η επιλογή του σωστού κόμβου v με αποδοτικό τρόπο είναι ένα πιο δύσκολο ζήτημα. Η πρώτη εντύπωση είναι ότι κάθε επανάληψη θα πρέπει να εξετάσει κάθε κόμβο v S, και να διατρέξει όλες τις ακμές μεταξύ του S και του v για να προσδιορίσει την ελάχιστη ποσότητα min e=(u, v):u S d(u) + l e, έτσι ώστε να μπορεί να επιλέξει τον κόμβο v για τον οποίο αυτή η ποσότητα είναι η μικρότερη. Για ένα γράφημα με m ακμές ο υπολογισμός αυτών των ελάχιστων τιμών μπορεί να χρειαστεί O(m) χρόνο, οπότε αυτό θα οδηγήσει σε μία υλοποίηση που εκτελείται σε O(mn) χρόνο. Μπορούμε όμως να τα πάμε καλύτερα αν χρησιμοποιήσουμε τις σωστές δομές δεδομένων. Πρώτον, θα διατηρούμε ρητά τις τιμές των ελάχιστων ποσοτήτων d'(v) = min e=(u, v):u S d(u) + l e για κάθε κόμβο v V S, αντί να τις υπολογίζουμε εκ νέου σε κάθε επανάληψη. Μπορούμε να βελτιώσουμε ακόμα περισσότερο την απόδοση διατηρώντας τους κόμβους V S σε μια ουρά προτεραιότητας, με τις τιμές d'(v) ως κλειδιά τους. Οι ουρές προτεραιότητας εξετάστηκαν στο Κεφάλαιο 2. είναι δομές δεδομένων που έχουν σχεδιαστεί να διατηρούν ένα σύνολο n στοιχείων, το καθένα από τα οποία διαθέτει ένα κλειδί. Σε μια ουρά προτεραιότητας μπορούμε με αποδοτικό τρόπο να εισάγουμε στοιχεία, να διαγράφουμε στοιχεία, να αλλάζουμε το κλειδί ενός στοιχείου, και να εξάγουμε το στοιχείο με το ελάχιστο κλειδί. Θα χρειαστούμε την τρίτη και την τέταρτη από τις παραπάνω λειτουργίες: τις λειτουργίες ChangeKey και ExtractMin.

14 176 Κεφάλαιο 4 Άπληστοι αλγόριθμοι Πώς θα υλοποιήσουμε τον αλγόριθμο του Dijkstra με τη χρήση μιας ουράς προτεραιότητας; Τοποθετούμε τους κόμβους V σε μία ουρά προτεραιότητας με το d'(v) ως κλειδί για v V. Για να επιλέξουμε τον κόμβο v που θα πρέπει να προστεθεί στο σύνολο S, χρειαζόμαστε τη λειτουργία ExtractMin. Για να δείτε πώς γίνεται η ενημέρωση των κλειδιών, θεωρήστε μια επανάληψη στην οποία ο κόμβος v προστίθεται στο S, και έστω w S ένας κόμβος που παραμένει στην ουρά προτεραιότητας. Τι πρέπει να κάνουμε για να ενημερώσουμε την τιμή του d'(w); Αν το (v, w) δεν είναι ακμή, τότε δεν χρειάζεται να κάνουμε τίποτε: το σύνολο των ακμών που εξετάζονται στην ελάχιστη ποσότητα min e=(u, w):u S d(u) + l e είναι ακριβώς το ίδιο με πριν και μετά την προσθήκη του v στο S. Από την άλλη πλευρά, αν e' = (v, w) E, τότε η νέα τιμή για το κλειδί είναι min(d'(w), d(v) + l e' ). Αν d'(w) > d(v) + l e' τότε πρέπει να χρησιμοποιήσουμε τη λειτουργία ChangeKey για να μειώσουμε κατάλληλα το κλειδί του κόμβου w. Αυτή η λειτουργία ChangeKey μπορεί να συμβεί το πολύ μία φορά για κάθε ακμή, όταν το τέλος της ακμής e' προστίθεται στο S. Συνοψίζοντας, έχουμε το ακόλουθο αποτέλεσμα. (4.15) Αν χρησιμοποιήσουμε ουρά προτεραιότητας, μπορούμε να υλοποιήσουμε τον αλγόριθμο του Dijkstra για ένα γράφημα με n κόμβους και m ακμές έτσι ώστε να ε- κτελείται σε χρόνο O(m), συν το χρόνο για τις n λειτουργίες ExtractMin και τις m λειτουργίες ChangeKey. Αν χρησιμοποιήσουμε την υλοποίηση των ουρών προτεραιότητας που βασίζεται σε σωρούς, την οποία εξετάσαμε στο Κεφάλαιο 2, κάθε λειτουργία ουράς προτεραιότητας μπορεί να εκτελεστεί σε χρόνο O(log n). Έτσι ο συνολικός χρόνος για την υλοποίηση είναι O(m log n). 4.5 Το πρόβλημα του Ελάχιστου Γεννητικού Δένδρου Θα εφαρμόσουμε τώρα το επιχείρημα ανταλλαγής στα πλαίσια του δεύτερου θεμελιώδους προβλήματος για γραφήματα: το πρόβλημα του Ελάχιστου Γεννητικού Δένδρου (Minimum Spanning Tree Problem). Το πρόβλημα Υποθέστε ότι έχουμε ένα σύνολο τοποθεσιών V = {v 1, v 2,..., v n } και θέλουμε να δομήσουμε ένα δίκτυο επικοινωνιών επάνω σε αυτές. Το δίκτυο θα πρέπει να είναι συνεκτικό θα πρέπει να υπάρχει μια διαδρομή ανάμεσα σε κάθε ζευγάρι κόμβων όμως επιθυμούμε να το κατασκευάσουμε με όσο το δυνατόν μικρότερο κόστος, ικανοποιώντας πάντα την προηγούμενη απαίτηση. Για κάποια ζευγάρια (v i, v j ) μπορούμε να κατασκευάσουμε έναν άμεσο σύνδεσμο μεταξύ των v i και v j με συγκεκριμένο κόστος c (v i, v j ) > 0. Έτσι μπορούμε να αναπαραστήσουμε το σύνολο των δυνατών συνδέσμων που μπορούμε να δημιουργήσουμε χρησιμοποιώντας ένα γράφημα G = (V, E), με θετικό κόστος c e για κάθε ακμή e =

15 4.5 Το πρόβλημα του Ελάχιστου Γεννητικού Δένδρου 177 (v i, v j ). Το πρόβλημα είναι να βρεθεί ένα υποσύνολο των ακμών T E έτσι ώστε το γράφημα (V, T) να είναι συνεκτικό και το συνολικό κόστος e Tc e όσο το δυνατόν μικρότερο. (Θα υποθέσουμε ότι το αρχικό γράφημα G είναι συνεκτικό. διαφορετικά δεν υπάρχει λύση.) Μια βασική παρατήρηση είναι η ακόλουθη. (4.16) Έστω T μια λύση ελάχιστου κόστους για το παραπάνω πρόβλημα σχεδιασμού δικτύου. Τότε το (V, T) είναι ένα δένδρο. Απόδειξη. Εξ ορισμού, το (V, T) πρέπει να είναι συνεκτικό. θα δείξουμε επίσης ότι δεν περιέχει κύκλους. Πράγματι, υποθέστε ότι περιείχε έναν κύκλο C, και έστω e ο- ποιαδήποτε ακμή του C. Ισχυριζόμαστε ότι το (V, T {e}) εξακολουθεί να είναι συνεκτικό, καθώς κάθε διαδρομή που προηγουμένως χρησιμοποιούσε την ακμή e μπορεί τώρα να ακολουθήσει "τη μεγάλη πορεία" μέσω του υπόλοιπου τμήματος του κύκλου C. Αυτό σημαίνει ότι το (V, T) {e} είναι επίσης έγκυρη λύση του προβλήματος και έχει μικρότερο κόστος άτοπο. Αν επιτρέψουμε σε κάποιες ακμές να έχουν μηδενικό κόστος (δηλαδή, υποθέτουμε μόνο ότι τα κόστη c e είναι μη αρνητικά), τότε η λύση στο πρόβλημα του σχεδιασμού δικτύου με ελάχιστο κόστος μπορεί να έχει πρόσθετες ακμές ακμές που έχουν κόστος 0 και που προαιρετικά θα μπορούσαν να διαγραφούν. Αλλά ακόμα και σε αυτή την περίπτωση υπάρχει πάντοτε μία λύση ελάχιστου κόστους που είναι δένδρο. Ξεκινώντας από οποιαδήποτε βέλτιστη λύση, θα μπορούσαμε να διαγράφουμε ακμές σε κύκλους μέχρι να έχουμε δένδρο. με μη αρνητικές ακμές, το κόστος δεν θα αυξανόταν στη διάρκεια αυτής της διαδικασίας. Θα ονομάζουμε ένα υποσύνολο T E γεννητικό δένδρο (spanning tree) του G αν το (V, T) είναι δένδρο. Η πρόταση (4.16) λέει ότι ο στόχος του προβλήματος σχεδιασμού δικτύου μπορεί να διατυπωθεί ως εύρεση του φθηνότερου γεννητικού δένδρου για το γράφημα. γι' αυτόν το λόγο ονομάζεται γενικά πρόβλημα του Ελάχιστου Γεννητικού Δένδρου (Minimum Spanning Tree Problem). Αν το G δεν είναι ένα πολύ απλό γράφημα, τότε θα έχει εκθετικά πολλά διαφορετικά γεννητικά δένδρα, των οποίων οι δομές μπορεί να είναι πολύ διαφορετικές η μία από την άλλη. Έτσι δεν είναι καθόλου προφανής ο αποδοτικός τρόπος εύρεσης του φθηνότερου δένδρου μεταξύ όλων αυτών των επιλογών. Σχεδιασμός αλγορίθμων Όπως και με τα προηγούμενα προβλήματα που συναντήσαμε, είναι εύκολο να βρούμε μια σειρά από φυσικούς άπληστους αλγορίθμους για το πρόβλημα. Όμως παραδόξως, και ευτυχώς, αυτή είναι η περίπτωση όπου πολλοί από τους πρώτους άπληστους αλγορίθμους που δοκιμάζει κανείς αποδεικνύονται σωστοί: καθένας από αυτούς επιλύει με βέλτιστο τρόπο το πρόβλημα. Θα εξετάσουμε τώρα μερικούς από αυτούς τους αλγορίθμους και μετά θα ανακαλύψουμε, μέσω ενός ωραίου ζεύγους επιχειρημάτων ανταλλαγής, κάποιες από τις αιτίες στις οποίες οφείλεται αυτή η πληθώρα των απλών, βέλτιστων αλγορίθμων.

16 178 Κεφάλαιο 4 Άπληστοι αλγόριθμοι Ας δούμε τρεις άπληστους αλγορίθμους, όπου και οι τρεις βρίσκουν σωστά ένα ελάχιστο γεννητικό δένδρο. Ένας απλός αλγόριθμος ξεκινά χωρίς καθόλου ακμές και δομεί ένα γεννητικό δένδρο με διαδοχική εισαγωγή ακμών από το E κατά αύξουσα σειρά κόστους. Καθώς προχωρούμε μέσω των ακμών με αυτή τη σειρά, εισάγουμε κάθε ακμή e εφόσον δεν δημιουργεί κύκλο όταν προστίθεται στις ακμές που έχουν ήδη εισαχθεί. Αν όμως η εισαγωγή της e θα οδηγούσε σε κύκλο, τότε απλώς απορρίπτουμε την e και συνεχίζουμε. Αυτή η προσέγγιση ονομάζεται αλγόριθμος του Kruskal. Ένας άλλος απλός άπληστος αλγόριθμος μπορεί να σχεδιαστεί σε αναλογία με τον αλγόριθμο του Dijkstra για διαδρομές, αν και στην πράξη είναι ακόμα πιο α- πλός στον προσδιορισμό από τον αλγόριθμο του Dijkstra. Ξεκινάμε με έναν κόμβο ρίζας s και προσπαθούμε, με άπληστο τρόπο, να δημιουργήσουμε ένα δένδρο που ξεκινά από τον s και εκτείνεται προς τα έξω. Σε κάθε βήμα προσθέτουμε α- πλώς τον κόμβο που μπορεί να προσαρτηθεί με όσο το δυνατόν μικρότερο κόστος στο μερικό δένδρο που ήδη έχουμε. Πιο συγκεκριμένα, διατηρούμε ένα σύνολο S V για το οποίο έχει ήδη κατασκευαστεί ένα γεννητικό δένδρο. Αρχικά S = {s}. Σε κάθε επανάληψη προσαυξάνουμε το S κατά έναν κόμβο, προσθέτοντας τον κόμβο v που ελαχιστοποιεί το "κόστος προσάρτησης" min e=(u, v):u S c e, και συμπεριλαμβάνοντας στο γεννητικό δένδρο την ακμή e = (u,v) που επιτυγχάνει αυτή την ελάχιστη τιμή. Αυτή η προσέγγιση ονομάζεται αλγόριθμος του Prim. Τέλος, μπορούμε να σχεδιάσουμε έναν άπληστο αλγόριθμο εκτελώντας μια "αντίστροφη" εκδοχή του αλγορίθμου του Kruskal. Συγκεκριμένα, ξεκινάμε με ολόκληρο το γράφημα (V, E) και αρχίζουμε να διαγράφουμε ακμές κατά φθίνουσα σειρά κόστους. Καθώς φθάνουμε σε κάθε ακμή e (ξεκινώντας από την πιο ακριβή), τη διαγράφουμε εφόσον αυτό δεν θα επιφέρει τη μη συνεκτικότητα του γραφήματος που έχουμε. Προς αναζήτηση καλύτερου ονόματος, αυτή η προσέγγιση γενικά ονομάζεται Αλγόριθμος Αντίστροφης Διαγραφής (Reverse-Delete Algorithm) (απ' όσα μπορούμε να γνωρίζουμε, δεν έχει πάρει το όνομα κάποιου συγκεκριμένου ατόμου). Για παράδειγμα, η Εικόνα 4.9 παρουσιάζει τις τέσσερις πρώτες ακμές που προστέθηκαν από τους αλγορίθμους των Prim και Kruskal, αντίστοιχα, σε ένα γεωμετρικό στιγμιότυπο του προβλήματος του Ελάχιστου Γεννητικού Δένδρου όπου το κόστος κάθε ακμής είναι ανάλογο της γεωμετρικής απόστασης στο επίπεδο. Το γεγονός ότι καθένας από αυτούς τους αλγορίθμους εγγυάται την παραγωγή μιας βέλτιστης λύσης υπονοεί μια "ανθεκτικότητα" στο πρόβλημα του Ελάχιστου Γεννητικού Δένδρου υπάρχουν πολλοί τρόποι για να πάρουμε την απάντηση. Στη συνέχεια θα εξερευνήσουμε τις αιτίες για τις οποίες τόσο πολλοί διαφορετικοί αλγόριθμοι παράγουν γεννητικά δένδρα ελάχιστου κόστους.

17 4.5 Το πρόβλημα του Ελάχιστου Γεννητικού Δένδρου 179 a r c d e f g b (α) h a r c d e f g b (β) Εικόνα 4.9 Παράδειγμα εκτέλεσης των αλγορίθμων Ελάχιστου Γεννητικού Δένδρου των (α) Prim και (β) Kruskal για την ίδια είσοδο. Οι 4 πρώτες ακμές που προστέθηκαν στο γεννητικό δένδρο εμφανίζονται με συνεχείς γραμμές. η επόμενη ακμή που θα προστεθεί εμφανίζεται με διακεκομμένη γραμμή. Ανάλυση των αλγορίθμων Όλοι αυτοί οι αλγόριθμοι πραγματοποιούν τη συνεχή εισαγωγή ή διαγραφή ακμών σε μία μερική λύση. Έτσι, για να τους αναλύσουμε, είναι χρήσιμο να έχουμε στη διάθεσή μας κάποια βασικά στοιχεία που να λένε πότε είναι "ασφαλές" να συμπεριλάβουμε μια ακμή στο ελάχιστο γεννητικό δένδρο, ή αντίστοιχα πότε είναι ασφαλές να απαλείψουμε μια ακμή με το σκεπτικό ότι δεν θα ήταν δυνατόν να ανήκει στο ελάχιστο γεννητικό δένδρο. Για τους σκοπούς της ανάλυσης αυτής, θα κάνουμε την απλουστευμένη υπόθεση ότι όλα τα κόστη των ακμών διαφέρουν μεταξύ τους (δηλαδή, δεν υπάρχουν δύο ίδια κόστη). Αυτή η υπόθεση κάνει ευκολότερη τη διατύπωση των προτάσεων που α- κολουθούν. στη συνέχεια της ενότητας θα δείξουμε πώς μπορεί να απαλειφθεί εύκολα αυτή η υπόθεση. Πότε είναι ασφαλές να συμπεριλαμβάνεται μια ακμή στο Ελάχιστο Γεννητικό Δένδρο; Το κρίσιμο γεγονός για την εισαγωγή μιας ακμής είναι η ακόλουθη πρόταση, την οποία θα αναφέρουμε ως Ιδιότητα Αποκοπής (Cut Property). (4.17) Υποθέστε ότι όλα τα κόστη των ακμών είναι διαφορετικά. Έστω S ένα τυχαίο υποσύνολο κόμβων που δεν είναι ούτε κενό ούτε ίσο με το V, και έστω ότι η ακμή e = (v, w) είναι η ακμή ελάχιστου κόστους με το ένα άκρο στο S και το άλλο στο V S. Τότε κάθε ελάχιστο γεννητικό δένδρο θα περιέχει την ακμή e. Απόδειξη. Έστω T ένα γεννητικό δένδρο που δεν περιέχει την e. πρέπει να δείξουμε ότι το T δεν έχει το ελάχιστο δυνατό κόστος. Θα το επιτύχουμε αυτό χρησιμοποιώντας ένα επιχείρημα ανταλλαγής: θα προσδιορίσουμε μια ακμή e' στο T που είναι πιο ακριβή από την e, και η οποία έχει την ιδιότητα ότι η ανταλλαγή της e με την e' μας δίνει h

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

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

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

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

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

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

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

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

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

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

viii 20 Δένδρα van Emde Boas 543 Περιεχόμενα Πρόλογος xi I Θεμελιώδεις έννοιες Εισαγωγή 3 1 Ο ρόλος των αλγορίθμων στις υπολογιστικές διαδικασίες 5 1.1 Αλγόριθμοι 5 1.2 Οι αλγόριθμοι σαν τεχνολογία 12 2 Προκαταρκτικές έννοιες και παρατηρήσεις

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

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

Περιεχόμενα. Περιεχόμενα Περιεχόμενα xv Περιεχόμενα 1 Αρχές της Java... 1 1.1 Προκαταρκτικά: Κλάσεις, Τύποι και Αντικείμενα... 2 1.1.1 Βασικοί Τύποι... 5 1.1.2 Αντικείμενα... 7 1.1.3 Τύποι Enum... 14 1.2 Μέθοδοι... 15 1.3 Εκφράσεις...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 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. Χρονοπρογραμματισμός Διαστημάτων

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

ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων. Λουκάς Γεωργιάδης

ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων. Λουκάς Γεωργιάδης ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων Λουκάς Γεωργιάδης loukas@cs.uoi.gr www.cs.uoi.gr/~loukas Βασικές έννοιες και εφαρμογές Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Δομή

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 11: Minimum Spanning Trees Αλγόριθμος Prim Αλγόριθμος Kruskal Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

για NP-Δύσκολα Προβλήματα

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

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

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

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

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

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

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

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

Ελάχιστα Γεννητορικά ένδρα

Ελάχιστα Γεννητορικά ένδρα λάχιστα Γεννητορικά ένδρα Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Ο αλγόριθµος του Prim και ο αλγόριθµος του Kruskal για εύρεση λάχιστων Γεννητορικών ένδρων ΠΛ 23 οµές εδοµένων και Αλγόριθµοι

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

Τομές Γραφήματος. Γράφημα (μη κατευθυνόμενο) Συνάρτηση βάρους ακμών. Τομή : Διαμέριση του συνόλου των κόμβων σε δύο μη κενά σύνολα

Τομές Γραφήματος. Γράφημα (μη κατευθυνόμενο) Συνάρτηση βάρους ακμών. Τομή : Διαμέριση του συνόλου των κόμβων σε δύο μη κενά σύνολα Τομές Γραφήματος Γράφημα (μη κατευθυνόμενο) Συνάρτηση βάρους ακμών Τομή : Διαμέριση του συνόλου των κόμβων σε δύο μη κενά σύνολα και 12 26 20 10 9 7 17 14 4 Τομές Γραφήματος Γράφημα (μη κατευθυνόμενο)

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

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

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

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

Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων ΣΗΜΜΥ - Ε.Μ.Π.

Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων ΣΗΜΜΥ - Ε.Μ.Π. Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων CO.RE.LAB. ΣΗΜΜΥ - Ε.Μ.Π. Άσκηση 1 η : Παιχνίδι επιλογής ακμών Έχουμε ένα ακυκλικό κατευθυνόμενο γράφο, μια αρχική κορυφή και δυο παίκτες. Οι παίκτες διαδοχικά

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

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

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

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

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

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

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

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Γραφήματα. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Γραφήματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Γραφήματα Κατευθυνόμενο Γράφημα Ένα κατευθυνόμενο γράφημα G είναι ένα ζευγάρι (V, E) όπου V είναι ένα

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

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

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

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

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

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

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

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

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

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

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

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

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

Προσεγγιστικοί Αλγόριθμοι για NP- ύσκολα Προβλήματα

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

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

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

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

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

Προσεγγιστικοί Αλγόριθμοι για NP- ύσκολα Προβλήματα

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

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

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

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

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

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

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

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

1 Το πρόβλημα της συντομότερης διαδρομής

1 Το πρόβλημα της συντομότερης διαδρομής ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΛΑΜΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 00 Ιστοσελίδα μαθήματος: http://eclass.teilam.gr/di88 6ο ΕΡΓΑΣΤΗΡΙΟ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ Φροντιστήριο #7: Ελάχιστα Επικαλυπτικά Δένδρα, Αλγόριθμος Kruskal, Δομές Union-Find Άσκηση # 0 5 0 0 0

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

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

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

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

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

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

Ταιριάσματα. Γράφημα. Ταίριασμα (matching) τέτοιο ώστε κάθε κορυφή να εμφανίζεται σε το πολύ μια ακμή του

Ταιριάσματα. Γράφημα. Ταίριασμα (matching) τέτοιο ώστε κάθε κορυφή να εμφανίζεται σε το πολύ μια ακμή του Ταιριάσματα Γράφημα Ταίριασμα (matching) Σύνολο ακμών τέτοιο ώστε κάθε κορυφή να εμφανίζεται σε το πολύ μια ακμή του Θέλουμε να βρούμε ένα μέγιστο ταίριασμα (δηλαδή με μέγιστο αριθμό ακμών) Ταιριάσματα

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

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

ΕΥΡΕΣΗ ΕΛΑΧΙΣΤΩΝ ΜΟΝΟΠΑΤΙΩΝ & ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΕΥΡΕΣΗ ΕΛΑΧΙΣΤΩΝ ΜΟΝΟΠΑΤΙΩΝ & ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΩΝ Εύρεση ελάχιστων μονοπατιών Αλγόριθμος του ijkstra Θέματα μελέτης Πρόβλημα εύρεσης ελάχιστων μονοπατιών σε γραφήματα (shortest path problem) Αλγόριθμος

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

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

Αλγόριθμοι Γραφημάτων Αλγόριθμοι Γραφημάτων. Γραφήματα. Αναπαράσταση Γραφημάτων 3. Διερεύνηση σε Πρώτα σε Πλάτος (BFS) Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Γράφημα Ορισμός: Ένα γράφημα G είναι το διατεταγμένο ζεύγος

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

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

5. Απλή Ταξινόμηση. ομές εδομένων. Χρήστος ουλκερίδης. Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 5. Απλή Ταξινόμηση 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 11/11/2016 Εισαγωγή Η

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

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

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

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 10β: Αλγόριθμοι Γραφημάτων-Γραφήματα- Αναπαράσταση Γραφημάτων- Διερεύνηση Πρώτα σε Πλάτος (BFS) Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το

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

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

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

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

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

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

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

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

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

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

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

1 Διάσχιση κατευθυνόμενων γραφημάτων ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΛΑΜΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2010 11 Ιστοσελίδα μαθήματος: http://eclass.teilam.gr/di288 5ο ΕΡΓΑΣΤΗΡΙΟ

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

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Παύλος Εφραιμίδης V1.1,

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

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

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

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

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

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

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

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

Επίπεδα Γραφήματα : Προβλήματα και Υπολογιστική Πολυπλοκότητα

Επίπεδα Γραφήματα : Προβλήματα και Υπολογιστική Πολυπλοκότητα Αλγόριθμοι πολυωνυμικού χρόνου Ένας αλγόριθμος πολυωνυμικού χρόνου έχει χρόνο εκτέλεσης όπου είναι μία (θετική) σταθερά Κλάση πολυπλοκότητας : περιλαμβάνει τα προβλήματα που επιδέχονται λύση σε πολυωνυμικό

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

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

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

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

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

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

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

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

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

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

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

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

Ελάχιστο Συνδετικό Δέντρο

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

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

Πίνακες Διασποράς. Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h. Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση

Πίνακες Διασποράς. Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h. Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση Πίνακες Διασποράς Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση κλειδί k T 0 1 2 3 4 5 6 7 U : χώρος πιθανών κλειδιών Τ : πίνακας μεγέθους

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

Υπολογιστικά & Διακριτά Μαθηματικά

Υπολογιστικά & Διακριτά Μαθηματικά Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 2:Στοιχεία Μαθηματικής Λογικής Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,

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

Ελάχιστο Συνδετικό έντρο

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

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

Ελάχιστο Συνδετικό έντρο

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

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

Κεφάλαιο 4ο: Δικτυωτή Ανάλυση

Κεφάλαιο 4ο: Δικτυωτή Ανάλυση Κεφάλαιο ο: Δικτυωτή Ανάλυση. Εισαγωγή Η δικτυωτή ανάλυση έχει παίξει σημαντικό ρόλο στην Ηλεκτρολογία. Όμως, ορισμένες έννοιες και τεχνικές της δικτυωτής ανάλυσης είναι πολύ χρήσιμες και σε άλλες επιστήμες.

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

4.4 Το πρόβλημα του ελάχιστου ζευγνύοντος δένδρου

4.4 Το πρόβλημα του ελάχιστου ζευγνύοντος δένδρου . Το πρόβλημα του ελάχιστου ζευγνύοντος δένδρου Σ αυτή την παράγραφο θα εξεταστεί μια παραλλαγή του προβλήματος της συντομότερης διαδρομής, το πρόβλημα του ελάχιστου ζευγνύοντος δένδρου. Σ αυτό το πρόβλημα

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Εξεταστική Ιανουαρίου 2014 Διδάσκων : Ευάγγελος Μαρκάκης 20.01.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες και

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

Ελάχιστο Συνδετικό Δέντρο

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

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

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

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

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

Περιεχόμενα. Κεφάλαιο 3 Οι ιδιότητες των αριθμών... 37 3.1 Αριθμητικά σύνολα... 37 3.2 Ιδιότητες... 37 3.3 Περισσότερες ιδιότητες...

Περιεχόμενα. Κεφάλαιο 3 Οι ιδιότητες των αριθμών... 37 3.1 Αριθμητικά σύνολα... 37 3.2 Ιδιότητες... 37 3.3 Περισσότερες ιδιότητες... Περιεχόμενα Πρόλογος... 5 Κεφάλαιο Βασικές αριθμητικές πράξεις... 5. Τέσσερις πράξεις... 5. Σύστημα πραγματικών αριθμών... 5. Γραφική αναπαράσταση πραγματικών αριθμών... 6.4 Οι ιδιότητες της πρόσθεσης

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

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

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες

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

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

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

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

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

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

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

Μελετάμε την περίπτωση όπου αποθηκεύουμε ένα (δυναμικό) σύνολο στοιχειών. Ένα στοιχείο γράφεται ως, όπου κάθε.

Μελετάμε την περίπτωση όπου αποθηκεύουμε ένα (δυναμικό) σύνολο στοιχειών. Ένα στοιχείο γράφεται ως, όπου κάθε. Ψηφιακά Δένδρα Μελετάμε την περίπτωση όπου αποθηκεύουμε ένα (δυναμικό) σύνολο στοιχειών τα οποία είναι ακολουθίες συμβάλλων από ένα πεπερασμένο αλφάβητο Ένα στοιχείο γράφεται ως, όπου κάθε. Μπορούμε να

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

ΑΡΙΘΜΗΤΙΚΗ ΠΡΟΟΔΟΣ. Σύμφωνα με τα παραπάνω, για μια αριθμητική πρόοδο που έχει πρώτο όρο τον ...

ΑΡΙΘΜΗΤΙΚΗ ΠΡΟΟΔΟΣ. Σύμφωνα με τα παραπάνω, για μια αριθμητική πρόοδο που έχει πρώτο όρο τον ... ΑΡΙΘΜΗΤΙΚΗ ΠΡΟΟΔΟΣ Ορισμός : Μία ακολουθία ονομάζεται αριθμητική πρόοδος, όταν ο κάθε όρος της, δημιουργείται από τον προηγούμενο με πρόσθεση του ίδιου πάντοτε αριθμού. Ο σταθερός αριθμός που προστίθεται

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

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 1 / Απληστοι (Greedy) Αλγόριθµοι

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

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

Κεφάλαιο 3. Γραφήµατα v1.0 ( ) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. Κεφάλαιο 3 Γραφήµατα v1.0 (2010-05-25) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 3.1 Βασικοί Ορισµοί και Εφαρµογές γραφήµατα γράφηµα G: ένας τρόπος κωδικοποίησης των σχέσεων

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

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

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

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

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

ΠΡΟΛΟΓΟΣ. Θεσσαλονίκη, Μάρτιος 2009. Οι συγγραφείς. Κ. Παπαρρίζος, Ν. Σαμαράς, Α. Σιφαλέρας. ΠΡΟΛΟΓΟΣ Το βιβλίο «Δικτυακή Βελτιστοποίηση» γράφτηκε με κύριο στόχο να καλύψει τις ανάγκες της διδασκαλίας του μαθήματος «Δικτυακός Προγραμματισμός», που διδάσκεται στο Τμήμα Εφαρμοσμένης Πληροφορικής,

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

Ασκήσεις στους Γράφους. 1 ο Σετ Ασκήσεων Βαθμός Μονοπάτια Κύκλος Euler Κύκλος Hamilton Συνεκτικότητα

Ασκήσεις στους Γράφους. 1 ο Σετ Ασκήσεων Βαθμός Μονοπάτια Κύκλος Euler Κύκλος Hamilton Συνεκτικότητα Ασκήσεις στους Γράφους 1 ο Σετ Ασκήσεων Βαθμός Μονοπάτια Κύκλος Euler Κύκλος Hamilton Συνεκτικότητα Ασκηση 1 η Να αποδείξετε ότι κάθε γράφημα περιέχει μια διαδρομή από μια κορυφή u σε μια κορυφή w αν και

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

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 15 Ιουνίου 2009 1 / 26 Εισαγωγή Η ϑεωρία

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

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

Θέματα Υπολογισμού στον Πολιτισμό - Δένδρα. Δένδρα Δένδρα Δένδρα Ειδική κατηγορία γραφημάτων: συνεκτικά γραφήματα που δεν περιέχουν απλά κυκλώματα [1857] Arthur Cayley: για απαρίθμηση ορισμένων ειδών χημικών ενώσεων Χρησιμοποιούνται σε πληθώρα προβλημάτων,

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

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

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

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

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

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

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