Περιεχόμενα. 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

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

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

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

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

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

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

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

Περιεχόμενα. Περιεχόμενα Περιεχόμενα 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 Εκφράσεις...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Σχεδίαση & Ανάλυση Αλγορίθμων Σχεδίαση & Ανάλυση Αλγορίθμων Ενότητα 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

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

Κεφάλαιο 11 Ένωση Ξένων Συνόλων

Κεφάλαιο 11 Ένωση Ξένων Συνόλων Κεφάλαιο 11 Ένωση Ξένων Συνόλων Περιεχόμενα 11.1 Εισαγωγή... 227 11.2 Εφαρμογή στο Πρόβλημα της Συνεκτικότητας... 228 11.3 Δομή Ξένων Συνόλων με Συνδεδεμένες Λίστες... 229 11.4 Δομή Ξένων Συνόλων με Ανοδικά

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

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

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

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

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

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

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

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

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

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

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

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

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

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 3/2/2019 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 3/2/ / 37

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

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

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

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

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

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

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

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

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 Πρέπει να βρούμε όλες τις καλές προτάσεις φίλων για τον

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 Άσκηση

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αλγόριθμοι Προσέγγισης για NP-Δύσκολα Προβλήματα

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

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

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

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

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

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

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

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

Αλγόριθμοι εύρεσης ελάχιστων γεννητικών δέντρων (MST)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τυχαιοκρατικοί Αλγόριθμοι

Τυχαιοκρατικοί Αλγόριθμοι Πιθανότητες και Αλγόριθμοι Ανάλυση μέσης περίπτωσης Μελέτα τη συμπεριφορά ενός αλγορίθμου σε μια «μέση» είσοδο (ως προς κάποια κατανομή) Τυχαιοκρατικός αλγόριθμος Λαμβάνει τυχαίες αποφάσεις καθώς επεξεργάζεται

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

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

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

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

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

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

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

ΠΛΗ 20, 4 η ΟΣΣ: Βασικές Έννοιες Θεωρίας Γραφημάτων

ΠΛΗ 20, 4 η ΟΣΣ: Βασικές Έννοιες Θεωρίας Γραφημάτων ΠΛΗ 20, 4 η ΟΣΣ: Βασικές Έννοιες Θεωρίας Γραφημάτων Δημήτρης Φωτάκης Διακριτά Μαθηματικά και Μαθηματική Λογική Πληροφορική Ελληνικό Ανοικτό Πανεπιστήμιο 3 η Εργασία: Γενική Εικόνα Αρκετά απαιτητικά ερωτήματα,

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

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

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

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

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

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

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