Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 3: Δένδρα
|
|
- Εύανδρος Ταμτάκος
- 7 χρόνια πριν
- Προβολές:
Transcript
1 Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Διακριτά Μαθηματικά Ενότητα 3: Δένδρα Αν. Καθηγητής Κ. Στεργίου Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών
2 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2
3 Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ψηφιακά Μαθήματα στο Πανεπιστήμιο Δυτικής Μακεδονίας» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3
4 Περιεχόμενα Εισαγωγή στα Δέντρα και βασικός ορισμός δέντρου. Εναλλακτικοί Ορισμοί. Δέντρα με ρίζα. Δυαδικά και m-αδικά δέντρα Βασικές έννοιες και ιδιότητες. Διάσχιση δέντρων. Post-order, pre-order, in-order, κατά πλάτος. Δυαδικά δέντρα αναζήτησης. Βασικές λειτουργίες (αναζήτηση, εισαγωγή, διαγραφή). Ελάχιστα επικαλύπτοντα δέντρα. Οι αλγόριθμοι των Prim και Kruskal. 4
5 Στόχοι Εισαγωγή στη μελέτη δέντρων ως σημαντικότατης ειδικής κατηγορίας γραφημάτων. Εξοικείωση με την ορολογία των δέντρων και με τις κατηγοριοποιήσεις τους. Μελέτη ορισμένων βασικών προβλημάτων σε δέντρα, όπως η διάσχιση ενός δέντρου, η αναζήτηση/εισαγωγή/διαγραφή κόμβων σε δυαδικά δέντρα αναζήτησης, και η εύρεση ελάχιστου επικαλύπτοντος δέντρου σε εμβαρημένο γράφημα (με τους αλγορίθμους των Prim και Kruskal). 5
6 Δένδρα (1/14) Δένδρο: Συνεκτικό (μη κατευθυνόμενο) άκυκλο γράφημα. Τα δένδρα παίζουν κεντρικό ρόλο στην επιστήμη των υπολογιστών: Ανάλυση αλγορίθμων (π.χ. δένδρα αναδρομής). Δομές δεδομένων (π.χ. δένδρα αναζήτησης). Κατηγορίες (αύξουσα σειρά γενικότητας): Δυαδικά και m-αδικά δένδρα Διατεταγμένα δένδρα. Δένδρα με ρίζα. Ελεύθερα δένδρα. 6
7 Δένδρα (2/14) Δένδρο: Συνεκτικό (μη κατευθυνόμενο) άκυκλο γράφημα. Τα δένδρα παίζουν κεντρικό ρόλο στην επιστήμη των υπολογιστών: Ανάλυση αλγορίθμων (π.χ. δένδρα αναδρομής). Δομές δεδομένων (π.χ. δένδρα αναζήτησης). Κατηγορίες (αύξουσα σειρά γενικότητας): Δυαδικά και m-αδικά δένδρα Διατεταγμένα δένδρα. Δένδρα με ρίζα. Ελεύθερα δένδρα. εσωτερικός κόμβος (ή κόμβος διακλάδωσης) φύλλο (ή τερματικός κόμβος ή εξωτερικός κόμβος) 7
8 Δένδρα (3/14) Δένδρο: Συνεκτικό (μη κατευθυνόμενο) άκυκλο γράφημα. Δάσος: Συλλογή από διαζευγμένα δένδρα (άκυκλο γράφημα). 8
9 Δένδρα (4/14) Δένδρο: Συνεκτικό (μη κατευθυνόμενο) άκυκλο γράφημα. Έστω το πλήθος των κορυφών και το πλήθος των ακμών Ιδιότητες 1. Υπάρχει μοναδικό μονοπάτι μεταξύ κάθε δύο κορυφών Εαν τότε υπάρχουν τουλάχιστον 2 φύλλα 9
10 Δένδρα (5/14) Δένδρο: Συνεκτικό (μη κατευθυνόμενο) άκυκλο γράφημα. Έστω το πλήθος των κορυφών και το πλήθος των ακμών Ιδιότητες 1. Υπάρχει μοναδικό μονοπάτι μεταξύ κάθε δύο κορυφών Απόδειξη Έστω ότι υπάρχουν 2 μονοπάτια μεταξύ των κορυφών και πρώτος κόμβος στον οποίο συγκλίνουν τα δύο μονοπάτια πρώτος κόμβος στον οποίο αποκλίνουν τα δύο μονοπάτια υπάρχει (στοιχειώδες) κύκλωμα 10
11 Δένδρα (6/14) Δένδρο: Συνεκτικό (μη κατευθυνόμενο) άκυκλο γράφημα. Έστω το πλήθος των κορυφών και το πλήθος των ακμών Ιδιότητες 1. Υπάρχει μοναδικό μονοπάτι μεταξύ κάθε δύο κορυφών 2. Απόδειξη Επαγωγικά ως προς. Προφανώς ισχύει για Υποθέτουμε ότι ισχύει για κάθε δένδρο με λιγότερες από Θεωρούμε δένδρο με κορυφές. Αφαιρώντας μία ακμή λαμβάνουμε δάσος με 2 δένδρα. κορυφές. 11
12 Δένδρα (7/14) Δένδρο: Συνεκτικό (μη κατευθυνόμενο) άκυκλο γράφημα. Έστω το πλήθος των κορυφών και το πλήθος των ακμών Ιδιότητες 1. Υπάρχει μοναδικό μονοπάτι μεταξύ κάθε δύο κορυφών 2. Απόδειξη Επαγωγικά ως προς. Προφανώς ισχύει για Υποθέτουμε ότι ισχύει για κάθε δένδρο με λιγότερες από κορυφές. Θεωρούμε δένδρο με κορυφές. Αφαιρώντας μία ακμή λαμβάνουμε δάσος με 2 δένδρα. Έστω ότι το ένα έχει κορυφές και ακμές και το άλλο κορυφές και ακμές. Τότε και Προσθέτωντας τις δύο ισότητες λαμβάνουμε 12
13 Δένδρα (8/14) Δένδρο: Συνεκτικό (μη κατευθυνόμενο) άκυκλο γράφημα. Έστω το πλήθος των κορυφών και το πλήθος των ακμών Ιδιότητες Απόδειξη 1. Υπάρχει μοναδικό μονοπάτι μεταξύ κάθε δύο κορυφών Εαν τότε υπάρχουν τουλάχιστον 2 φύλλα Σε οποιοδήποτε γράφημα το άθροισμα των βαθμών όλων των κορυφών του είναι ίσο με. Επομένως αν υπάρχει το πολύ μία κορυφή με βαθμό 1 τότε. Αν το γράφημα είναι δένδρο τότε από την ιδιότητα 2 έχουμε που προφανώς είναι άτοπο για αφού 13
14 Δένδρα (9/14) Δένδρο: Συνεκτικό (μη κατευθυνόμενο) άκυκλο γράφημα. Λήμμα: Ένα γράφημα στο οποίο υπάρχει μοναδικό μονοπάτι μεταξύ δύο οποιονδήποτε κορυφών είναι δένδρο. Απόδειξη: Συνεπάγεται ότι το γράφημα είναι συνεκτικό και άκυκλο άρα είναι δένδρο. 14
15 Δένδρα (10/14) Ικανές συνθήκες για να είναι δένδρο ένα γράφημα. Λήμμα Ένα συνεκτικό γράφημα στο οποίο είναι δένδρο. Απόδειξη Υποθέτουμε ότι το γράφημα έχει ένα στοιχειώδες κύκλωμα με κορυφές και επομένως και ακμές. Αφού το γράφημα είναι συνεκτικό πρέπει να έχει τουλάχιστον έτσι ώστε οι κορυφές που δεν ανήκουν στο να συνδέονται με τις κορυφές του. ακμές Επομένως υπάρχουν τουλάχιστον ακμές, που είναι άτοπο. 15
16 Δένδρα (11/14) Ικανές συνθήκες για να είναι δένδρο ένα γράφημα. Λήμμα Ένα γράφημα με που δεν περιέχει κύκλωμα είναι δένδρο. Απόδειξη Από το προηγούμενο λήμμα αρκεί να δείξουμε ότι το γράφημα είναι συνεκτικό. Έστω οι συνεκτικές συνιστώσες του γραφήματος όπου η συνιστώσα έχει κορυφές και ακμές. Αφού το γράφημα δεν περιέχει κύκλωμα κάθε είναι συνεκτικό και άκυκλο άρα είναι δένδρο και επομένως ισχύει. Αθροίζοντας έχουμε και από την υπόθεση του λήμματος προκύπτει. 16
17 Δένδρα (12/14) Δένδρα με ρίζες. Κατευθυνόμενο δένδρο: Κατευθυνόμενο γράφημα που μετατρέπεται σε δένδρο αν αγνοήσουμε τις κατευθύνσεις των ακμών. 17
18 Δένδρα (13/14) Δένδρα με ρίζες. Κατευθυνόμενο δένδρο: Κατευθυνόμενο γράφημα που μετατρέπεται σε δένδρο αν αγνοήσουμε τις κατευθύνσεις των ακμών. Δένδρο με ρίζα: Κατευθυνόμενο δένδρο στο οποίο υπάρχει ένας κόμβος με βαθμό εισόδου 0 και όλοι οι υπόλοιποι κόμβοι έχουν βαθμό εισόδου 1. ρίζα 18
19 Δένδρα (14/14) Δένδρα με ρίζες. Κατευθυνόμενο δένδρο: Κατευθυνόμενο γράφημα που μετατρέπεται σε δένδρο αν αγνοήσουμε τις κατευθύνσεις των ακμών. Δένδρο με ρίζα: Κατευθυνόμενο δένδρο στο οποίο υπάρχει ένας κόμβος με βαθμό εισόδου 0 και όλοι οι υπόλοιποι κόμβοι έχουν βαθμό εισόδου 1. ρίζα ρίζα 19
20 Δέντρα με Ρίζα Από ένα δέντρο χωρίς ρίζα με n κόμβους μπορούμε να πάρουμε n δέντρα με ρίζα. ρίζα Ίδιο δέντρο με διαφορά στην επιλογή ρίζας ρίζα 20
21 Δέντρα με Ρίζες (1/8) Κατευθυνόμενο δένδρο: Κατευθυνόμενο γράφημα που μετατρέπεται σε δένδρο αν αγνοήσουμε τις κατευθύνσεις των ακμών. Δένδρο με ρίζα: Κατευθυνόμενο δένδρο στο οποίο υπάρχει ένας κόμβος με βαθμό εισόδου 0 και όλοι οι υπόλοιποι κόμβοι έχουν βαθμό εισόδου 1. Ο κόμβος είναι γονιός του κόμβου εάν υπάρχει η ακμή Επίσης λέμε ότι ο είναι παιδί του. Δύο κόμβοι είναι αδέλφια εάν έχουν τον ίδιο γονιό. Ο είναι πρόγονος του εάν υπάρχει μονοπάτι από τον στον. Επίσης λέμε ότι ο είναι απόγονος του. ρίζα 21
22 Δέντρα με Ρίζες (2/8) Κατευθυνόμενο δένδρο: Κατευθυνόμενο γράφημα που μετατρέπεται σε δένδρο αν αγνοήσουμε τις κατευθύνσεις των ακμών. Δένδρο με ρίζα: Κατευθυνόμενο δένδρο στο οποίο υπάρχει ένας κόμβος με βαθμό εισόδου 0 και όλοι οι υπόλοιποι κόμβοι έχουν βαθμό εισόδου 1. απλοποιημένη αναπαράσταση Μπορούμε να παραλείψουμε τις κατευθύνσεις των ακμών. 22
23 Δέντρα με Ρίζες (3/8) Κατευθυνόμενο δένδρο: Κατευθυνόμενο γράφημα που μετατρέπεται σε δένδρο αν αγνοήσουμε τις κατευθύνσεις των ακμών. Δένδρο με ρίζα: Κατευθυνόμενο δένδρο στο οποίο υπάρχει ένας κόμβος με βαθμό εισόδου 0 και όλοι οι υπόλοιποι κόμβοι έχουν βαθμό εισόδου 1. Υποδένδρο του (υποδένδρο με ρίζα το ) Έχει κόμβους το και τους απογόνους του στο αρχικό δένδρο και περιλαμβάνει όλες τις ακμές του αρχικού δένδρου που συνδέουν κόμβους του υποδένδρου. 23
24 Δέντρα με Ρίζες (4/8) Κατευθυνόμενο δένδρο: Κατευθυνόμενο γράφημα που μετατρέπεται σε δένδρο αν αγνοήσουμε τις κατευθύνσεις των ακμών. Δένδρο με ρίζα: Κατευθυνόμενο δένδρο στο οποίο υπάρχει ένας κόμβος με βαθμό εισόδου 0 και όλοι οι υπόλοιποι κόμβοι έχουν βαθμό εισόδου 1. Διατεταγμένο δένδρο: Δένδρο με ρίζα στο οποίο υπάρχει διάταξη των παιδιών κάθε κόμβου. Π.χ. = 1 ο παιδί του = 2 ο παιδί του = 3 ο παιδί του = 1 ο παιδί του = 2 ο παιδί του 24
25 Δέντρα με Ρίζες (5/8) Κατευθυνόμενο δένδρο: Κατευθυνόμενο γράφημα που μετατρέπεται σε δένδρο αν αγνοήσουμε τις κατευθύνσεις των ακμών. Δένδρο με ρίζα: Κατευθυνόμενο δένδρο στο οποίο υπάρχει ένας κόμβος με βαθμό εισόδου 0 και όλοι οι υπόλοιποι κόμβοι έχουν βαθμό εισόδου 1. Διατεταγμένο δένδρο: Δένδρο με ρίζα στο οποίο υπάρχει διάταξη των παιδιών κάθε κόμβου. είναι διαφορετικά διατεταγμένα δένδρα 25
26 Δέντρα με Ρίζες (6/8) Κατευθυνόμενο δένδρο: Κατευθυνόμενο γράφημα που μετατρέπεται σε δένδρο αν αγνοήσουμε τις κατευθύνσεις των ακμών. Δένδρο με ρίζα: Κατευθυνόμενο δένδρο στο οποίο υπάρχει ένας κόμβος με βαθμό εισόδου 0 και όλοι οι υπόλοιποι κόμβοι έχουν βαθμό εισόδου 1. Διατεταγμένο δένδρο: Δένδρο με ρίζα στο οποίο υπάρχει διάταξη των παιδιών κάθε κόμβου. m-αδικό δένδρο Διατεταγμένο δένδρο όπου κάθε κόμβος έχει το πολύ παιδιά. Π.χ. 26
27 Δέντρα με Ρίζες (7/8) Κατευθυνόμενο δένδρο: Κατευθυνόμενο γράφημα που μετατρέπεται σε δένδρο αν αγνοήσουμε τις κατευθύνσεις των ακμών. Δένδρο με ρίζα: Κατευθυνόμενο δένδρο στο οποίο υπάρχει ένας κόμβος με βαθμό εισόδου 0 και όλοι οι υπόλοιποι κόμβοι έχουν βαθμό εισόδου 1. Διατεταγμένο δένδρο: Δένδρο με ρίζα στο οποίο υπάρχει διάταξη των παιδιών κάθε κόμβου. m-αδικό δένδρο Διατεταγμένο δένδρο όπου κάθε κόμβος έχει το πολύ παιδιά. Κανονικό m-αδικό δένδρο m-αδικό δένδρο όπου κάθε εσωτερικός κόμβος εχει ακριβώς παιδιά. Π.χ. 27
28 Δέντρα με Ρίζες (8/8) Κατευθυνόμενο δένδρο: Κατευθυνόμενο γράφημα που μετατρέπεται σε δένδρο αν αγνοήσουμε τις κατευθύνσεις των ακμών. Δένδρο με ρίζα: Κατευθυνόμενο δένδρο στο οποίο υπάρχει ένας κόμβος με βαθμό εισόδου 0 και όλοι οι υπόλοιποι κόμβοι έχουν βαθμό εισόδου 1. Διατεταγμένο δένδρο: Δένδρο με ρίζα στο οποίο υπάρχει διάταξη των παιδιών κάθε κόμβου. m-αδικό δένδρο Διατεταγμένο δένδρο όπου κάθε κόμβος έχει το πολύ παιδιά. Κανονικό m-αδικό δένδρο m-αδικό δένδρο όπου κάθε εσωτερικός κόμβος εχει ακριβώς παιδιά. Δυαδικό δένδρα Σημαντική κατηγορία m-αδικών δένδρων με. 28
29 Δυαδικό δένδρα (1/4) Δυαδικό δένδρα: Σημαντική κατηγορία m-αδικών δένδρων με. = αριστερό παιδί του = δεξί παιδί του Παράδειγμα: Αναπαράσταση αριθμητικών εκφράσεων 29
30 Δυαδικό δένδρα (2/4) Θεώρημα: Ένα δέντρο με ρίζα είναι δυαδικό αν και μόνο αν κάθε κόμβος εκτός από τη ρίζα έχει βαθμό, και η ρίζα έχει βαθμό. 30
31 Δυαδικό δένδρα (3/4) Θεωρούμε ένα κανονικό δυαδικό δένδρο με εσωτερικούς κόμβους και φύλλα Αφού κάθε εσωτερικός κόμβος έχει 2 παιδιά και η ρίζα δεν έχει γονέα τότε ισχύει 31
32 Δυαδικό δένδρα (4/4) Γενικά σε ένα κανονικό m-αδικό δένδρο με εσωτερικούς κόμβους και φύλλα έχουμε ότι κάθε εσωτερικός κόμβος έχει παιδιά και η ρίζα δεν έχει γονέα οπότε 32
33 Παράδειγμα (1/2) Παράδειγμα Έστω ότι έχουμε μία μηχανή που υπολογίζει το άθροισμα 3 αριθμών με μία εντολή. Πόσες εντολές πρέπει να εκτελέσει για να υπολογίσει το άθροισμα 9 αριθμών ; Κάθε ακολουθία εκτελέσεων αυτής της εντολής αντιστοιχεί σε κάποιο κανονικό 3-αδικό δένδρο όπου κάθε εσωτερικός κόμβος αναπαριστά μία πράξη πρόσθεσης 3 αριθμών και τα φύλλα αντιστοιχούν στους αριθμούς της εισόδου. Π.χ. Έχουμε άρα χρειαζόμαστε 4 πράξεις ανεξάρτητα από τη σειρά των προσθέσεων με την οποία υπολογίζεται το ολικό άθροισμα. 33
34 Παράδειγμα (2/2) Παράδειγμα Έστω ότι έχουμε μία μηχανή που υπολογίζει το άθροισμα 3 αριθμών με μία εντολή. Πόσες εντολές πρέπει να εκτελέσει για να υπολογίσει το άθροισμα 9 αριθμών ; Κάθε ακολουθία εκτελέσεων αυτής της εντολής αντιστοιχεί σε κάποιο κανονικό 3-αδικό δένδρο όπου κάθε εσωτερικός κόμβος αναπαριστά μία πράξη πρόσθεσης 3 αριθμών και τα φύλλα αντιστοιχούν στους αριθμούς της εισόδου. Ποίος τρόπος είναι προτιμότερος όταν μπορούμε να κάνουμε παράλληλους υπολογισμούς; 34
35 Ύψος δένδρου (1/18) Ύψος δένδρου Μέγιστο από τα μήκη μονοπατιών του δένδρου Στα δένδρα με ρίζα το ύψος αντιστοιχεί στο μέγιστο αριθμό ακμών από τη ρίζα προς κάποιο φύλλο ύψος = 5 35
36 Ύψος δένδρου (2/18) Ύψος δένδρου Μέγιστο από τα μήκη μονοπατιών του δένδρου Στα δένδρα με ρίζα το ύψος αντιστοιχεί στο μέγιστο αριθμό ακμών από τη ρίζα προς κάποιο φύλλο επίπεδο 0 επίπεδο 1 ύψος = 5 επίπεδο 2 επίπεδο 3 επίπεδο 4 επίπεδο 5 36
37 Ύψος δένδρου (3/18) Ύψος δένδρου Μέγιστο από τα μήκη μονοπατιών του δένδρου Στα δένδρα με ρίζα το ύψος αντιστοιχεί στο μέγιστο αριθμό ακμών από τη ρίζα προς κάποιο φύλλο Ένα κανονικό m-αδικό δένδρο με ύψος έχει αριθμό φύλλων όπου (m-1) φύλλα στα επίπεδα 1 έως h-1 και m φύλλα στο επίπεδο h όλα τα φύλλα στο τελευταίο επίπεδο 37
38 Ύψος δένδρου (4/18) Ύψος δένδρου Μέγιστο από τα μήκη μονοπατιών του δένδρου Στα δένδρα με ρίζα το ύψος αντιστοιχεί στο μέγιστο αριθμό ακμών από τη ρίζα προς κάποιο φύλλο Ένα κανονικό m-αδικό δένδρο με ύψος έχει αριθμό φύλλων όπου Επιπλέον για το πλήθος των εσωτερικών κόμβων Άρα το δένδρο έχει συνολικά ισχύει κόμβους και επομένως. Έτσι 38
39 Ύψος δένδρου (5/18) επίπεδο ρίζας = 0 επίπεδο κόμβου = επίπεδο γονέα + 1 ύψος δένδρου = μέγιστο επίπεδο μήκος εσωτερικής διαδρομής = άθροισμα επιπέδου κάθε εσωτερικού κόμβου (=20) μήκος εξωτερικής διαδρομής = άθροισμα επιπέδου κάθε τερματικού κόμβου (=38) 5 Σε ένα κανονικό δυαδικό δένδρο ισχύει 39
40 Ύψος δένδρου (6/18) επίπεδο ρίζας = 0 επίπεδο κόμβου = επίπεδο γονέα + 1 ύψος δένδρου = μέγιστο επίπεδο ξεκινάμε με ένα φύλλο σε κάθε βήμα 5 40
41 Ύψος δένδρου (7/18) επίπεδο ρίζας = 0 επίπεδο κόμβου = επίπεδο γονέα + 1 ύψος δένδρου = μέγιστο επίπεδο
42 Ύψος δένδρου (8/18) επίπεδο ρίζας = 0 επίπεδο κόμβου = επίπεδο γονέα + 1 ύψος δένδρου = μέγιστο επίπεδο
43 Ύψος δένδρου (9/18) επίπεδο ρίζας = 0 επίπεδο κόμβου = επίπεδο γονέα + 1 ύψος δένδρου = μέγιστο επίπεδο
44 Ύψος δένδρου (10/18) επίπεδο ρίζας = 0 επίπεδο κόμβου = επίπεδο γονέα + 1 ύψος δένδρου = μέγιστο επίπεδο
45 Ύψος δένδρου (11/18) επίπεδο ρίζας = 0 επίπεδο κόμβου = επίπεδο γονέα + 1 ύψος δένδρου = μέγιστο επίπεδο
46 Ύψος δένδρου (12/18) επίπεδο ρίζας = 0 επίπεδο κόμβου = επίπεδο γονέα + 1 ύψος δένδρου = μέγιστο επίπεδο
47 Ύψος δένδρου (13/18) επίπεδο ρίζας = 0 επίπεδο κόμβου = επίπεδο γονέα + 1 ύψος δένδρου = μέγιστο επίπεδο
48 Ύψος δένδρου (14/18) επίπεδο ρίζας = 0 επίπεδο κόμβου = επίπεδο γονέα + 1 ύψος δένδρου = μέγιστο επίπεδο
49 Ύψος δένδρου (15/18) επίπεδο ρίζας = 0 επίπεδο κόμβου = επίπεδο γονέα + 1 ύψος δένδρου = μέγιστο επίπεδο
50 Ύψος δένδρου (16/18) επίπεδο ρίζας = 0 επίπεδο κόμβου = επίπεδο γονέα + 1 ύψος δένδρου = μέγιστο επίπεδο
51 Ύψος δένδρου (17/18) επίπεδο ρίζας = 0 επίπεδο κόμβου = επίπεδο γονέα + 1 ύψος δένδρου = μέγιστο επίπεδο ξεκινάμε με ένα φύλλο σε κάθε βήμα Αντικατάσταση εσωτερικού κόμβου στο επίπεδο k: - μήκος εσωτερικής διαδρομής αυξάνει κατά k - μήκος εξωτερικής διαδρομής αυξάνει κατά k+2 Επομένως 51
52 Ύψος δένδρου (18/18) επίπεδο ρίζας = 0 επίπεδο κόμβου = επίπεδο γονέα + 1 ύψος δένδρου = μέγιστο επίπεδο μήκος εσωτερικής διαδρομής = άθροισμα επιπέδου κάθε εσωτερικού κόμβου (=7) μήκος εξωτερικής διαδρομής = άθροισμα επιπέδου κάθε τερματικού κόμβου (=29) Σε ένα κανονικό m-αδικό δένδρο ισχύει 52
53 Διάσχιση Δέντρου H διάσχιση (traversal) ενός δέντρου είναι η διαδικασία επίσκεψης όλων των κόμβων ενός δέντρου (αρχίζοντας από τη ρίζα). Βασική λειτουργία όταν π.χ. θέλουμε να βρούμε έναν κόμβο με κάποια συγκεκριμένα χαρακτηριστικά και να τυπώσουμε τα στοιχεία του. Υπάρχουν διάφοροι τρόποι διάσχισης ενός δέντρου (δηλ. διάφοροι τρόποι να προσδιοριστεί η σειρά εκτύπωσης των στοιχείων των κόμβων). depth first: pre-order, post-order, in-order. breadth first. 53
54 Διάσχιση Δέντρου - Παράδειγμα A B C D E F T2 T4 G H I J K L T1 T3 T5 54
55 Pre-order (προδιάταξη) Αλγόριθμος: 1. Επισκέψου τον τρέχοντα κόμβο. 2. Κάνε ένα pre-order traversal των υποδέντρων κάτω από αυτόν τον κόμβο από αριστερά προς δεξιά. Ο αλγόριθμος είναι αναδρομικός μια και τα υποδέντρα του τρέχοντος κόμβου έχουν κι αυτά υποδέντρα κ.ο.κ. περισσότερα για αναδρομικούς αλγόριθμους αργότερα. Η διάσχιση με προδιάταξη είναι ισοδύναμη με τη γνωστή κατά βάθος διάσχιση του δέντρου. 55
56 Pre-order (παράδειγμα) (1/5) Αρχίζουμε στη ρίζα A. Κόμβοι που επισκεφθήκαμε: A. Ο κόμβος A έχει 5 υποδέντρα. Αρχίζουμε με το πιο αριστερό T1. Η ρίζα του υποδέντρου T1 είναι ο κόμβος B, οπότε επισκεπτόμαστε τον B. Κόμβοι που επισκεφθήκαμε: A B. A B C D E F G H T2 T4 I J K L T1 T3 T5 56
57 Pre-order (παράδειγμα) (2/5) Ο B έχει δύο υποδέντρα που περιέχουν τους κόμβους G and H. Πρώτα επισκεπτόμαστε τον G γιατί είναι πιο αριστερά. Κόμβοι που επισκεφθήκαμε: A B G Ο G δεν έχει υποδέντρα, οπότε πηγαίνουμε στο δεξί υποδέντρο κάτω από το B που έχει τον κόμβο H. Κόμβοι που επισκεφθήκαμε: A B G H A B C D E F G H T2 T4 I J K L T1 T3 T5 57
58 Pre-order (παράδειγμα) (3/5) Ο H δεν έχει υποδέντρα. Τελειώσαμε με το υποδέντρο T1 κάτω από το A και τώρα προχωράμε στο υποδέντρο T2. Το T2 έχει μόνο έναν κόμβο, τον C. Επισκεπτόμαστε τον C. Κόμβοι που επισκεφθήκαμε: A B G H C Ο C δεν έχει υποδέντρα, οπότε τελειώσαμε με το υποδέντρο T2 και μετακινούμαστε στο υποδέντρο T3. A B C D E F G H T2 T4 I J K L T1 T3 T5 58
59 Pre-order (παράδειγμα) (4/5) Το pre-order traversal του T3 δίνει D και I. Κόμβοι που επισκεφθήκαμε: A B G H C D I Το pre-order traversal του υποδέντρου T4 δίνει E. Κόμβοι που επισκεφθήκαμε: A B G H C D I E A B C D E F G H T2 T4 I J K L T1 T3 T5 59
60 Pre-order (παράδειγμα) (5/5) Τέλος, κάνουμε ένα pre-order traversal του υποδέντρου T5 που δίνει F, J, K, L Κόμβοι που επισκεφθήκαμε: A B G H C D I E F J K L Τελειώσαμε με όλα τα υποδέντρα κάτω από τη ρίζα A και ο αλγόριθμος τερματίζει. A B C D E F G H T2 T4 I J K L T1 T3 T5 60
61 Post-order (μεταδιάταξη) Αλγόριθμος: 1. Κάνε ένα post-order traversal των υποδέντρων κάτω από τον τρέχοντα κόμβο από αριστερά προς τα δεξιά. 2. Επισκέψου τον τρέχοντα κόμβο. Παρόμοια με την pre-order traversal. Μόνο που η σειρά επίσκεψης του τρέχοντος κόμβου και των υποδέντρων του είναι αντίστροφη. 61
62 Post-order (παράδειγμα) (1/6) Θα κάνουμε post-order διάσχιση του παρακάτω δέντρου. A B C D E F G H I J K L 62
63 Post-order (παράδειγμα) (2/6) Πρώτα κάνουμε post-order διάσχιση του πιο αριστερού υποδέντρου της ρίζας A. Κόμβοι που επισκεφθήκαμε: - Ο κόμβος Β έχει 2 υποδέντρα. Κάνουμε post-order διάσχιση πιο αριστερού. Ο κόμβος G δεν έχει υποδέντρα, οπότε τον επισκεπτόμαστε. Κόμβοι που επισκεφθήκαμε: G B C D E F A T2 T4 G H I J K L T1 T3 T5 63
64 Post-order (παράδειγμα) (3/6) Κάνουμε τώρα post-order διάσχιση του δεξιού υποδέντρου του Β. Ο Η δεν έχει υποδέντρα, οπότε τον επισκεπτόμαστε. Κόμβοι που επισκεφθήκαμε: G H A B C D E F G H T2 T4 I J K L T1 T3 T5 64
65 Post-order (παράδειγμα) (4/6) Επισκεπτόμαστε τώρα τον Β. Κόμβοι που επισκεφθήκαμε: G H Β Κάνουμε τώρα post-order διάσχιση του επόμενου υποδέντρου του Α. Το C δεν έχει υποδέντρα. Επισκεπτόμαστε τον C Κόμβοι που επισκεφθήκαμε: G H Β C A B C D E F G H T2 T4 I J K L T1 T3 T5 65
66 Post-order (παράδειγμα) (5/6) Κάνουμε τώρα post-order διάσχιση του επόμενου υποδέντρου του Α. Το post-order traversal του T3 δίνει I και D. Κόμβοι που επισκεφθήκαμε: G H Β C I D Το post-order traversal του υποδέντρου T4 δίνει E Κόμβοι που επισκεφθήκαμε: G H Β C I D E B C D E F A T2 T4 G H I J K L T1 T3 T5 66
67 Post-order (παράδειγμα) (6/6) Τέλος, κάνουμε ένα post-order traversal του υποδέντρου T5 που δίνει J, K, L, F Κόμβοι που επισκεφθήκαμε: G H B C I D E J K L F A Τελειώσαμε και με τη ρίζα A και ο αλγόριθμος τερματίζει. A B C D E F G H T2 T4 I J K L T1 T3 T5 67
68 In-order (ενδοδιάταξη) Αλγόριθμος: 1. Κάνε ένα in-order traversal του αριστερού υποδέντρου κάτω από τον τρέχοντα κόμβο. 2. Επισκέψου τον τρέχοντα κόμβο. 3. Κάνε ένα in-order traversal του δεξιού υποδέντρου κάτω από τον τρέχοντα κόμβο. Ο αλγόριθμος in-order εφαρμόζεται μόνο σε δυαδικά δέντρα! 68
69 In-order (παράδειγμα) (1/7) Θα κάνουμε in-order διάσχιση στο παρακάτω δέντρο: A B C G E F H I J K 69
70 In-order (παράδειγμα) (2/7) Πρώτα κάνουμε in-order διάσχιση του αριστερού υποδέντρου της ρίζας A. Κόμβοι που επισκεφθήκαμε: - Κάνουμε in-order διάσχιση του αριστερού υποδέντρου του Β. Κάνουμε in-order διάσχιση του αριστερού υποδέντρου του Ε. A B C G E F H I J K 70
71 In-order (παράδειγμα) (3/7) Ο Η δεν έχει υποδέντρα, οπότε τον επισκεπτόμαστε. Κόμβοι που επισκεφθήκαμε: H Επισκεπτόμαστε τώρα τον κόμβο Ε. Κόμβοι που επισκεφθήκαμε: Η Ε Κάνουμε in-order διάσχιση του δεξιού υποδέντρου του Ε. A E B F C G H I J K 71
72 In-order (παράδειγμα) (4/7) Ο Ι δεν έχει υποδέντρα, οπότε τον επισκεπτόμαστε. Κόμβοι που επισκεφθήκαμε: H Ε Ι Επισκεπτόμαστε τώρα τον κόμβο Β. Κόμβοι που επισκεφθήκαμε: H Ε Ι Β Κάνουμε in-order διάσχιση του δεξιού υποδέντρου του Β. A E B F C G H I J K 72
73 In-order (παράδειγμα) (5/7) Ο F δεν έχει υποδέντρα, οπότε τον επισκεπτόμαστε. Κόμβοι που επισκεφθήκαμε: H Ε Ι Β F Επισκεπτόμαστε τώρα τον κόμβο A. Κόμβοι που επισκεφθήκαμε: H Ε Ι Β F A A B C G E F H I J K 73
74 In-order (παράδειγμα) (6/7) Τώρα κάνουμε in-order διάσχιση του δεξιού υποδέντρου της ρίζας A. Ο κόμβος C δεν έχει δεξιό υποδέντρο, οπότε τον επισκεπτόμαστε. Κόμβοι που επισκεφθήκαμε: H Ε Ι Β F A C A E B F C G H I J K 74
75 In-order (παράδειγμα) (7/7) Η in-order διάσχιση του αριστερού υποδέντρου του C δίνει J G K Κόμβοι που επισκεφθήκαμε: H Ε Ι Β F A C J G K Τελειώσαμε έχοντας επισκεφτεί όλους τους κόμβους. A B C G E F H I J K 75
76 Αναζήτηση Πρώτα κατά Πλάτος (Breadth-First Search) H Breadth-First Search (BFS) διασχίζει ένα συνδεδεμένο κομμάτι ενός γράφου. Η BFS σε ένα δέντρο G λειτουργεί ως εξής: Στον αρχικό κόμβο (ρίζα) s, δίνεται η απόσταση 0. Στην πρώτη επανάληψη, ο αλγόριθμος επισκέπτεται όλους τους κόμβους που είναι παιδιά του αρχικού. Σε αυτούς δίνεται απόσταση 1. Στη συνέχεια η BFS επισκέπτεται όλους τους κόμβους που απέχουν απόσταση 2 από τον αρχικό, κ.ο.κ. 76
77 Breadth First (κατά πλάτος) Η breadth-first διάσχιση του παρακάτω δέντρου δίνει: Α Β C D E F G H I J K L A B C D E F G H I J K L 77
78 Δυαδικό δένδρο αναζήτησης (Binary Search Tree BST) Χρησιμοποιούνται για την αναπαράσταση ενός συνόλου αντικειμένων τα οποία είναι ολικά διατεταγμένα με βάση κάποιο κλειδί. Τα κλειδιά ανήκουν σε ένα ολικά διατεταγμένο σύνολο (π.χ. ακέραιοι αριθμοί). Θέλουμε μια δομή που να επιτρέπει τη γρήγορη αναζήτηση ενός αντικειμένου όταν δίνεται το κλειδί του αντικειμένου. Για το σκοπό αυτό μπορούμε να χρησιμοποιήσουμε ένα δυαδικό δένδρο όπου τα κλειδιά αποθηκεύονται στους κόμβους του δένδρου. 78
79 Δυαδικό δένδρο αναζήτησης (1/11) Έστω ότι έχουμε κλειδιά όπου. Κάθε κλειδί αποθηκεύεται σε ένα εσωτερικό κόμβο και ένα φύλλο. Επιπλέον στο αριστερότερο φύλλο μπορεί να αποθηκεύουμε ένα κλειδί. Π.χ. για τα κλειδιά 3,5,7,12 και 23 μπορούμε να έχουμε το δένδρο: 5 Αν ένας εσωτερικός κόμβος έχει κλειδι το αριστερό υποδένδρο του έχει κλειδιά και το δεξί υποδένδρο του έχει κλειδιά BST ιδιότητα τότε Η αναζήτηση ενός κλειδιού ξεκινάει από τη ρίζα και κατευθύνεται προς τα κάτω
80 Δυαδικό δένδρο αναζήτησης (2/11) Αναζήτηση x=12 12>
81 Δυαδικό δένδρο αναζήτησης (3/11) Αναζήτηση x= <
82 Δυαδικό δένδρο αναζήτησης (4/11) Αναζήτηση x= >
83 Δυαδικό δένδρο αναζήτησης (5/11) Αναζήτηση x= = βρέθηκε
84 Δυαδικό δένδρο αναζήτησης (6/11) Αναζήτηση x=15 15>
85 Δυαδικό δένδρο αναζήτησης (7/11) Αναζήτηση x= <
86 Δυαδικό δένδρο αναζήτησης (8/11) Αναζήτηση x= >
87 Δυαδικό δένδρο αναζήτησης (9/11) Αναζήτηση x= >
88 Δυαδικό δένδρο αναζήτησης (10/11) Αναζήτηση x= >12 Όταν η αναζήτηση του καταλήγει σε φύλλο με κλειδι τότε 7 12 δε βρέθηκε 88
89 Δυαδικό δένδρο αναζήτησης (11/11) Υπάρχουν διάφορετικά δυαδικά δένδρα αναζήτησης για δεδομένο σύνολο κλειδιών Ποιό είναι καλύτερο; 3 89
90 Βασική Δομή Δεδομένων Δέντρου Αναζήτησης (1/2) Η βασική δομή δεδομένων σε ένα BST είναι ένας κόμβος που ονομάζουμε BinaryNode. Αντίθετα με τα γενικά δέντρα όπου το πλήθος των παιδιών κάθε κόμβου δεν είναι γνωστό στατικά, ένας BST κόμβος μπορεί να έχει το πολύ δύο παιδιά. Οπότε, είναι λογικό να χρησιμοποιήσουμε δύο δείκτες lchild (left-child) και rchild (right-child). Υποθέτουμε ότι οι δείκτες των φύλλων είναι NULL. 90
91 Βασική Δομή Δεδομένων Δέντρου Αναζήτησης (2/2) class BinaryNode { private: int key; // the integer key BinaryNode *lchild; // pointer to left child BinaryNode *rchild; // pointer to right child public: // public methods go here } 91
92 Λειτουργίες σε Δέντρα Αναζήτησης Οι βασικές λειτουργίες σε ένα BST είναι: findmin: βρες το ελάχιστο κλειδί μέσα στο BST. findmax: βρες το μέγιστο κλειδί μέσα στο BST. find(x): βρες το κλειδί x μέσα στο BST. insert(x): εισήγαγε το κλειδί x μέσα στο BST. remove(x): διέγραψε το κλειδί x από το BST. isempty: δες αν το BST είναι άδειο. makeempty: άδειασε το BST. printtree: τύπωσε όλα τα κλειδιά στο BST. 92
93 findmin (1/2) Σε ένα δέντρο όλες οι διασχίσεις αρχίζουν από τη ρίζα. Σύμφωνα με την BST ιδιότητα, το κλειδί του lchild της ρίζας θα είναι < του κλειδιού της ρίζας. Το κλειδί του lchild του lchild της ρίζας θα είναι < του κλειδιού του lchild της ρίζας κ.ο.κ. Αν μια διάσχιση ενός BST αρχίσει στη ρίζα και «πηγαίνει συνέχεια αριστερά» καθώς κατεβαίνει προς τα κάτω, ο τελευταίος κόμβος στη διάσχιση θα έχει το μικρότερο κλειδί στο δέντρο. 93
94 findmin (2/2) Η παράμετρος εισόδου στη findmin μέθοδο είναι η ρίζα του BST. findmin(root); Η findmin μέθοδος επιστρέφει τον κόμβο που περιέχει το μικρότερο κλειδί στο BST. Έτσι, ο τύπος που επιστρέφει η findmin είναι BinaryNode*. 94
95 findmin Algorithm Βήματα αλγορίθμου: Ξεκίνα από τη ρίζα. Αν η ρίζα είναι NULL (άδειο BST) επέστρεψε NULL. Σε κάθε κόμβο πήγαινε στο lchild. Ολοκλήρωσε τη διάσχιση όταν συναντηθεί ο πρώτος NULL δείκτης. Επέστρεψε τον τελευταίο κόμβο που επισκέφτηκες. Ο αλγόριθμος μπορεί να υλοποιηθεί αναδρομικά ή μηαναδρομικά. 95
96 findmin Algorithm (χωρίς αναδρομή) // Non-recursive algorithm BinaryNode* findmin(binarynode *t) begin // έλεγξε αν το δέντρο είναι άδειο if (t!=null) begin // προχώρα κάτω προς το lchild σε κάθε κόμβο while (t->lchild!=null) t = t->lchild; end return t; end 96
97 findmin - Παράδειγμα
98 findmax Βήματα αλγορίθμου: Ξεκίνα από τη ρίζα. Αν η ρίζα είναι NULL (άδειο BST) επέστρεψε NULL. Σε κάθε κόμβο πήγαινε στο rchild. Ολοκλήρωσε τη διάσχιση όταν συναντηθεί ο πρώτος NULL δείκτης. Επέστρεψε τον τελευταίο κόμβο που επισκέφτηκες. Η παράμετρος εισόδου στη findmax και ο τύπος που επιστρέφει είναι ίδια με τη findmin. 98
99 findmax Algorithm (χωρίς αναδρομή) // Non-recursive algorithm BinaryNode* findmax(binarynode *t) begin // έλεγξε αν το δέντρο είναι άδειο if (t!=null) begin // προχώρα κάτω προς το rchild σε κάθε κόμβο while (t->rchild!=null) t = t->rchild; end return t; end 99
100 findmax - Παράδειγμα
101 find (1/2) Ο αλγόριθμος find είναι συνδυασμός των τεχνικών της findmin και της findmax. Η διαφορά μεταξύ του find και των findmin/findmax: Οι findmin/findmax εγγυώνται ότι θα επιστρέψουν έναν κόμβο όταν το BST δεν είναι άδειο. Από την άλλη, ο αλγόριθμος find επιστρέφει έναν κόμβο μόνο όταν το ζητούμενο κλειδί x βρεθεί μέσα στο BST. 101
102 find (2/2) Οι παράμετροι εισόδου είναι η ρίζα του BST και το κλειδί προς αναζήτηση: int x find(x, root); Η μέθοδος find επιστρέφει τον κόμβο στο BST που περιέχει το κλειδί x αν υπάρχει, και NULL αν δεν υπάρχει. Ο τύπος που επιστρέφει είναι πάλι BinaryNode*. 102
103 find Algorithm // Non-recursive algorithm BinaryNode* findmax(binarynode *t, key x) begin // έλεγξε αν το δέντρο είναι άδειο if (t!=null) begin while (t!=null && x!=t->key) begin if (x < t -> key) t = t->lchild; else if (x > t -> key) t = t->rchild; end end return t; end 103
104 find - Παράδειγμα Εύρεση του κλειδιού 12 Εύρεση του κλειδιού
105 Insert (1/4) Εισαγωγή του κλειδιού
106 Insert Παράδειγμα (εισαγωγή του 5) Ξεκινάμε από τη ρίζα που περιέχει το κλειδί 9. 5 < 9, πηγαίνουμε στο lchild του 9 που είναι το 7. 5 < 7, πηγαίνουμε στο lchild του 7 που είναι το 4. 5 > 4, πηγαίνουμε στο rchild του 4 που είναι το NULL. Δεν υπάρχει άλλο σημείο στο BST που μπορεί να περιέχει το 5 λόγω της BST ιδιότητας. Οπότε, εισάγουμε το 5 ως το rchild του
107 Insert (2/4) Υποθέτοντας ότι διπλά κλειδιά δεν υπάρχουν σε ένα BST. Αν θέλουμε να εισάγουμε το κλειδί x, πρώτα κάνουμε ένα find(x). Αν το x βρεθεί, δεν κάνουμε την εισαγωγή. Αν το x δε βρεθεί, προχωράμε με την εισαγωγή. Αν το x δε βρεθεί, τότε η find τελειώνει στον κόμβο κάτω από τον οποίο πρέπει να μπει το x. 107
108 Insert (3/4) insert (5, root). Πρώτα προσπαθούμε να βρούμε αν το 5 είναι ήδη στο BST. find algorithm. 5 < 9 πηγαίνουμε στο lchild του 9 που είναι το 7. 5 < 7 πηγαίνουμε στο lchild του 7 που είναι το 4. 5 > 4 πηγαίνουμε στο rchild του 4 που είναι null και η find τερματίζει επιστρέφοντας NULL. Ο τελευταίος κόμβος που επισκεφτήκαμε ήταν ο 4. Το καινούργιο κλειδί 5 πρέπει να εισαχθεί κάτω από τον 4. Δημιουργούμε έναν καινούργιο κόμβο με κλειδί 5 και μια 5 > 4 προσθέτουμε τον καινούργιο κόμβο ως rchild του
109 Insert (4/4) Βήματα Αλγορίθμου: Τρέξε ένα find για το κλειδί που θέλουμε να εισαχθεί. Αν το κλειδί βρεθεί, επέστρεψε NULL. Αν το κλειδί δε βρεθεί, εισήγαγε έναν καινούργιο κόμβο που περιέχει το κλειδί ως αριστερό ή δεξιό παιδί του τελευταίου κόμβου που επισκέφτηκε η find. Παράδειγμα: Εισαγωγή των κλειδιών 6, 9, 14, 17, 5, 7, 16, 20, 18, 19, 4, 11 σε ένα κενό αρχικά δέντρο αναζήτησης. 109
110 remove Όπως στην περίπτωση του insert, πρέπει πρώτα να κάνουμε ένα find. Αν δε βρεθεί ο κόμβος, προφανώς δε μπορούμε να τον διαγράψουμε. Αν βρεθεί υπάρχουν 3 διαφορετικές περιπτώσεις ανάλογα με το είδος του κόμβου: κόμβοι χωρίς παιδιά (φύλλα), κόμβοι με ένα παιδί, κόμβοι με δύο παιδιά. 110
111 remove κανόνες (1/4) Κανόνες: 1) Αν ο κόμβος που θέλουμε να διαγράψουμε είναι φύλλο, τότε διαγράφεται κατευθείαν Μπορεί να διαγραφεί κατευθείαν
112 remove κανόνες (2/4) 2) Αν ο κόμβος που θέλουμε να διαγράψουμε έχει ένα παιδί, το παιδί αυτό γίνεται το καινούργιο παιδί του πατέρα του διαγραμμένου κόμβου. 21 διέγραψε το
113 remove κανόνες (3/4) 3) Αν ο κόμβος που θέλουμε να διαγράψουμε έχει δύο παιδιά. Αντικατέστησε τον κόμβο προς διαγραφή με τον κόμβο που περιέχει το ελάχιστο κλειδί στο δεξιό του υποδέντρο (χρησιμοποιώντας τη findmin στη ρίζα του δεξιού υποδέντρου του κόμβου προς διαγραφή). Ο κόμβος με το ελάχιστο κλειδί δε μπορεί να έχει lchild. Αν είχε τότε το lchild θα περιείχε το ελάχιστο κλεδί. Οπότε ο κόμβος με το ελάχιστο κλειδί έχει μόνο rchild ή καθόλου παιδιά. 113
114 remove κανόνες (4/4) 6 Αντικατέστησε το 2 με το διέγραψε το 2 Το 2 έχει 2 παιδιά. findmin στη ρίζα του δεξιού υποδέντρου του 2 δίνει 3 που έχει ένα rchild Αυτός ο κόμβος και οι σχετιζόμενοι δείκτες διαγράφονται 114
115 Επικαλύπτοντα Δέντρα (Spanning Trees) Ένα επικαλύπτον δέντρο ενός γραφήματος G είναι ένα υπογράφημα του G που είναι δέντρο, περιέχει όλους τους κόμβους του G. 115
116 Ελάχιστα Επικαλύπτοντα Δέντρα (1/2) Μη κατευθυνόμενο, συνδεδεμένο γράφημα G = (V,E). Συνάρτηση Βάρους W: E R (δίνει κάποιο κόστος ή άλλη τιμή στις ακμές). Επικαλύπτον δέντρο: δέντρο που συνδέει όλους τους κόμβους (στο παράδειγμα;). Ελάχιστο επικαλύπτον δέντρο: συνδέει όλους τους κόμβους και ελαχιστοποιεί: w( T) w( u, v) ( u, v) T 116
117 Ελάχιστα Επικαλύπτοντα Δέντρα (2/2) Παράδειγμα: Έστω κάποιες πόλεις που συνδέονται με χωματόδρομους. Η ασφαλτόστρωση κάθε δρόμου έχει κάποιο συγκεκριμένο χρηματικό κόστος. Θέλουμε να ασφαλτοστρώσουμε με το ελάχιστο κόστος ένα υποσύνολο των δρόμων έτσι ώστε να συνδέονται όλες οι πόλεις. δίκτυο χωματόδρομων γράφημα πόλεις κορυφές γραφήματος δρόμοι ακμές γραφήματος κόστος ασφαλτόστρωσης δρόμου βάρος ακμής Το ζητούμενο είναι να προσδιοριστεί ένα ελάχιστο επικαλύπτον δέντρο. 117
118 Ο Αλγόριθμος του Prim (1/2) Βασίζεται στους κόμβους. Χτίζει ένα δέντρο Τ, κόμβο με κόμβο. Οι κόμβοι του Τ που έχουν ήδη υπολογιστεί ανήκουν σε ένα σύνολο S. Σε κάθε κόμβο v που βρίσκεται εκτός συνόλου δώσε την τιμή key[v] = το ελάχιστο βάρος μιας ακμής που συνδέει το v με έναν κόμβο μέσα στο σύνολο S. key[v] =, αν δεν υπάρχει τέτοιος κόμβος Πρόσθεσε στο S τον κόμβο με την ελάχιστη τιμή του key. Ο αλγόριθμος τελειώνει όταν όλοι οι κόμβοι ανήκουν στο S. 118
119 Ο Αλγόριθμος του Prim (2/2) MST-Prim(G,w,r) 01 Q := V[G] 02 for each u Q do 03 key[u] : 04 key[r] : 0 05 p[r] : NIL 06 while Q do 07 u : ExtractMin(Q) 08 for each v Adj[u] do 09 if v Q and w(u,v) < key[v] then 10 p[v] := u 11 key[v] := w(u,v) updating keys 119
120 Ο Αλγόριθμος του Prim Παράδειγμα (1/3) 120
121 Ο Αλγόριθμος του Prim Παράδειγμα (2/3) 121
122 Ο Αλγόριθμος του Prim Παράδειγμα (3/3) 122
123 Ο αλγόριθμος του Kruskal (1/5) Βασίζεται στις ακμές. Προσθέτει τις ακμές μία μία, με αυξανόμενο βάρος. Πρέπει να είναι ταξινομημένες. Ο αλγόριθμος διατηρεί ένα δάσος από δέντρα Α. Αρχικά υπάρχουν μόνο κορυφές στο δάσος. Μια ακμή γίνεται δεκτή αν συνδέει κόμβους από διαφορετικά δέντρα. Ο αλγόριθμος χρησιμοποιεί δύο συναρτήσεις Find-Tree(u):βρίσκει το δέντρο στο οποίο ανήκει η κορυφή u. Union-Trees(u,v):ενώνει τα δέντρα στα οποία ανήκουν οι κορυφές u και v. 123
124 Ο αλγόριθμος του Kruskal (2/5) Ο αλγόριθμος προσθέτει τη φτηνότερη ακμή που συνδέει δύο δέντρα του δάσους έτσι ώστε να μην προκύπτει κύκλος. MST-Kruskal(G,w) 01 A 02 for each vertex v V[G] do 03 Make-Tree(v) 04 sort the edges of E by non-decreasing weight w 05 for each edge (u,v) E, in order by non-decreasing weight do 06 if Find-Tree(u) Find-Tree(v) then 07 A A {(u,v)} 08 Union-Trees(u,v) 09 return A 124
125 Ο αλγόριθμος του Kruskal (3/5) 125
126 Ο αλγόριθμος του Kruskal (4/5) 126
127 Ο αλγόριθμος του Kruskal (5/5) 127
128 Τέλος Ενότητας 128
129 Σημείωμα Αναφοράς Copyright, Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών, Στεργίου Κωνσταντίνος. «Διακριτά Μαθηματικά». Έκδοση: 1.0. Κοζάνη Διαθέσιμο από τη δικτυακή διεύθυνση: https: //eclass.uowm.gr/courses/icte257/ 129
130 Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Όχι Παράγωγα Έργα Μη Εμπορική Χρήση 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] h t t p ://creativecommons.org/licenses/by-nc-nd/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό 130
131 Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους. 131
Δομές Δεδομένων Ενότητα 6
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 6: Γράφοι Απόστολος Παπαδόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότεραΠανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 2: Γραφήματα
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Διακριτά Μαθηματικά Ενότητα 2: Γραφήματα Αν. Καθηγητής Κ. Στεργίου e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης
Διαβάστε περισσότεραΣχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΔΕΝΤΡΑ
Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΔΕΝΤΡΑ Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος και Νέων Τεχνολογιών
Διαβάστε περισσότεραΕισαγωγή στους Αλγορίθμους Φροντιστήριο 8
Εισαγωγή στους Αλγορίθμους Φροντιστήριο 8 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό
Διαβάστε περισσότεραΕισαγωγή στους Αλγορίθμους Φροντιστήριο 4
Εισαγωγή στους Αλγορίθμους Φροντιστήριο 4 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό
Διαβάστε περισσότεραΕισαγωγή στους Αλγορίθμους Φροντιστήριο 5
Εισαγωγή στους Αλγορίθμους Φροντιστήριο 5 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό
Διαβάστε περισσότεραΕισαγωγή στους Αλγορίθμους
Εισαγωγή στους Αλγορίθμους Ενότητα 6 η Άσκηση - DFS δένδρα Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν
Διαβάστε περισσότεραΠανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 7: Σχέσεις και Συναρτήσεις
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Διακριτά Μαθηματικά Ενότητα 7: Σχέσεις και Συναρτήσεις Αν. Καθηγητής Κ. Στεργίου e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών
Διαβάστε περισσότεραΕισαγωγή στους Αλγορίθμους Ενότητα 7η
Εισαγωγή στους Αλγορίθμους Ενότητα 7η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό
Διαβάστε περισσότεραΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 11: Minimum Spanning Trees Αλγόριθμος Prim Αλγόριθμος Kruskal Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραΠανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 6. Δυαδικά Δέντρα 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 18/11/2016 Εισαγωγή Τα
Διαβάστε περισσότεραΕισαγωγή στους Αλγορίθμους Φροντιστήριο 3
Εισαγωγή στους Αλγορίθμους Φροντιστήριο 3 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Άσκηση αυτοαξιολόγησης 3-4 Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητες 3 & 4: ένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Άσκηση 1 Γράψτε
Διαβάστε περισσότεραΔένδρα. Μαθηματικά (συνδυαστικά) αντικείμενα. Έχουν κεντρικό ρόλο στην επιστήμη των υπολογιστών :
Δένδρα Μαθηματικά (συνδυαστικά) αντικείμενα. Έχουν κεντρικό ρόλο στην επιστήμη των υπολογιστών : Ανάλυση αλγορίθμων (π.χ. δένδρα αναδρομής) Δομές δεδομένων (π.χ. δένδρα αναζήτησης) ακμή Κατηγορίες (αύξουσα
Διαβάστε περισσότεραέντρα ιδάσκοντες:. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο
έντρα ιδάσκοντες:. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο έντρα έντρο: πρότυπο ιεραρχικής δομής. Αναπαράσταση
Διαβάστε περισσότεραΕισαγωγή στους Αλγορίθμους Φροντιστήριο 7
Εισαγωγή στους Αλγορίθμους Φροντιστήριο 7 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό
Διαβάστε περισσότεραΕισαγωγή στους Αλγορίθμους
Εισαγωγή στους Αλγορίθμους Ενότητα 5 η Άσκηση - Συγχώνευση Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν
Διαβάστε περισσότεραιδάσκοντες: Φ. Αφράτη,. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
έντρα ιδάσκοντες: Φ. Αφράτη,. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο έντρα έντρο: πρότυπο ιεραρχικής δομής.
Διαβάστε περισσότεραΣχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 11: ΠΡΟΒΛΗΜΑ ΔΙΑΤΡΕΞΗΣ ΓΡΑΦΗΜΑΤΟΣ
Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 11: ΠΡΟΒΛΗΜΑ ΔΙΑΤΡΕΞΗΣ ΓΡΑΦΗΜΑΤΟΣ Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος και Νέων Τεχνολογιών
Διαβάστε περισσότεραΔιδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 12: Δέντρα ΙΙ -Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης(ΔΔΑ) - Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου - Εισαγωγή
Διαβάστε περισσότεραΔιάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα
Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης (ΔΔΑ) Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου Εισαγωγή στοιχείου
Διαβάστε περισσότεραΕισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim
Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Emil: zro@ei.uptrs.r Άδειες Χρήσης Το παρόν
Διαβάστε περισσότεραΝέες Τεχνολογίες και Καλλιτεχνική Δημιουργία
Παιδαγωγικό Τμήμα Νηπιαγωγών Νέες Τεχνολογίες και Καλλιτεχνική Δημιουργία Ενότητα # 9: Ψηφιακός Ήχος - Audacity Θαρρενός Μπράτιτσης Παιδαγωγικό Τμήμα Νηπιαγωγών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό
Διαβάστε περισσότεραΔιακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά
Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων
Διαβάστε περισσότεραΕισαγωγή στους Αλγορίθμους
Εισαγωγή στους Αλγορίθμους Ενότητα 5 η Άσκηση Συγχώνευση & απαρίθμηση Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης
Διαβάστε περισσότεραΕισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal
Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskl Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Emil: zro@ei.uptrs.r Άδειες Χρήσης Το παρόν
Διαβάστε περισσότεραΕισαγωγή στους Αλγορίθμους Ενότητα 10η
Εισαγωγή στους Αλγορίθμους Ενότητα 10η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό
Διαβάστε περισσότεραΔομές δεδομένων. Ενότητα 8: Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Ενότητα 8: Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητα 8 Ξένα Σύνολα
Διαβάστε περισσότεραΜαθηματική Ανάλυση Ι
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Μαθηματική Ανάλυση Ι Ενότητα 1: Σύνολα, Πραγματικοί αριθμοί Επίκ. Καθηγητής Θ. Ζυγκιρίδης e-mail: tzygiridis@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών
Διαβάστε περισσότεραΜαθηματική Ανάλυση Ι
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Μαθηματική Ανάλυση Ι Ενότητα 5: Όρια και Συνέχεια Επίκ. Καθηγητής Θ. Ζυγκιρίδης e-mail: tzygiridis@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών
Διαβάστε περισσότεραΠανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 4: Εισαγωγή / Σύνολα
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Διακριτά Μαθηματικά Ενότητα 4: Εισαγωγή / Σύνολα Αν. Καθηγητής Κ. Στεργίου e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες
Διαβάστε περισσότεραΕισαγωγή στους Αλγορίθμους Φροντιστήριο 2
Εισαγωγή στους Αλγορίθμους Φροντιστήριο 2 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό
Διαβάστε περισσότεραΕισαγωγή στον δομημένο προγραμματισμό
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στον δομημένο προγραμματισμό Ενότητα 5 η : Πίνακες (Προχωρημένα Θέματα) Αν. καθηγητής Στεργίου Κώστας e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής
Διαβάστε περισσότεραΣχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 3: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΓΡΑΦΗΜΑΤΑ
Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 3: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΓΡΑΦΗΜΑΤΑ Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος και Νέων Τεχνολογιών
Διαβάστε περισσότεραΕισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra
Εισαγωγή στους Αλγορίθμους Ενότητα 1η Άσκηση Αλγόριθμος Dijkra Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upara.gr Άδειες Χρήσης Το παρόν
Διαβάστε περισσότεραΜαθηματική Ανάλυση Ι
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Μαθηματική Ανάλυση Ι Ενότητα 10: Δυναμοσειρές Επίκουρος Καθηγητής Θ. Ζυγκιρίδης e-mail: tzygiridis@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών
Διαβάστε περισσότεραΠληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 2: Εφαρμογές Δικτυωτής Ανάλυσης (1 ο Μέρος)
Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 2: Εφαρμογές Δικτυωτής Ανάλυσης (1 ο Μέρος) Μπεληγιάννης Γρηγόριος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων
Διαβάστε περισσότεραΔιδάσκων: Κωνσταντίνος Κώστα
Διάλεξη Ε4: Επανάληψη Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, Δυαδικά Δένδρα Αναζήτησης Ισοζυγισμένα Δένδρα & 2-3 Δένδρα Διδάσκων: Κωνσταντίνος
Διαβάστε περισσότεραΓενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 2: Κριτήρια Σύγκλισης Σειρών Λουκάς Βλάχος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΠληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 1: Δικτυωτή Ανάλυση (Θεωρία Γράφων)
Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 1: Δικτυωτή Ανάλυση (Θεωρία Γράφων) Μπεληγιάννης Γρηγόριος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων & Τροφίμων
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος
Προγραμματισμός Η/Υ Βασικές Προγραμματιστικές Δομές ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Δομή Ελέγχου Ροής (IF) Η εντολή IF χρησιμοποιείται όταν
Διαβάστε περισσότεραΕισαγωγή στην πληροφορική
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στην πληροφορική Ενότητα 4: Ψηφιακή Λογική, Άλγεβρα Boole, Πίνακες Αλήθειας (Μέρος Α) Αγγελίδης Παντελής Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών
Διαβάστε περισσότεραΟντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 8: C++ ΒΙΒΛΙΟΗΚΗ STL, ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Δομές Δεδομένων ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Δομές
Διαβάστε περισσότεραΛογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)
Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2) Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Άσκηση αυτοαξιολόγησης Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΗΥ2, Ενότητα : Ασκήσεις και Λύσεις Άσκηση 1 Ενότητα : Υλοποίηση Λεξικών µε
Διαβάστε περισσότεραΕισαγωγή στους Αλγορίθμους Φροντιστήριο 1
Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό
Διαβάστε περισσότεραΓράφημα. Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα: Σύνολο κορυφών (vertex set) Σύνολο ακμών (edge set) 4 5 πλήθος κορυφών πλήθος ακμών
Γράφημα Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα: Σύνολο κορυφών (vertex set) Σύνολο ακμών (edge set) 1 2 3 4 5 πλήθος κορυφών πλήθος ακμών Γράφημα Συνδυαστικό αντικείμενο που αποτελείται από
Διαβάστε περισσότεραΣχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 8: ΧΡΗΣΗ ΔΟΜΩΝ ΔΕΝΤΡΟΥ ΚΑΙ ΣΩΡΟΥ ΓΙΑ ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΤΑΞΙΝΟΜΗΣΗΣ ΑΛΓΟΡΙΘΜΟΣ HEAPSORT
Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 8: ΧΡΗΣΗ ΔΟΜΩΝ ΔΕΝΤΡΟΥ ΚΑΙ ΣΩΡΟΥ ΓΙΑ ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΤΑΞΙΝΟΜΗΣΗΣ ΑΛΓΟΡΙΘΜΟΣ HEAPSORT Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης
Διαβάστε περισσότεραΜαθηματική Ανάλυση ΙI
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Μαθηματική Ανάλυση ΙI Ενότητα 3: Συναρτήσεις πολλών μεταβλητών Επίκουρος Καθηγητής Θ. Ζυγκιρίδης e-mail: tzygiridis@uowm.gr Τμήμα Μηχανικών Πληροφορικής και
Διαβάστε περισσότεραΑλγόριθμοι και πολυπλοκότητα Περιήγηση Πανεπιστημίων
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Περιήγηση Πανεπιστημίων Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Περιήγηση Πανεπιστημίων 5/8/008 :46 AM Campus Tour Περίληψη και ανάγνωση
Διαβάστε περισσότεραΑλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Συγχωνευτική Ταξινόμηση (Merge Sort) 7 2 9 4 2 4 7 9 7 2 2 7 9 4
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 7η: Ουρές Προτεραιότητας Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Ενότητα 7η: Ουρές Προτεραιότητας Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητα 7 Ουρές Προτεραιότητας ΗΥ240 - Παναγιώτα Φατούρου 2 Ουρές
Διαβάστε περισσότεραΕισαγωγή στην Διοίκηση Επιχειρήσεων
Εισαγωγή στην Διοίκηση Επιχειρήσεων Ενότητα 7: ΑΣΚΗΣΕΙΣ ΜΕΓΕΘΟΥΣ ΕΠΙΧΕΙΡΗΣΗΣ Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης
Διαβάστε περισσότεραΑλγόριθμοι και πολυπλοκότητα Μελανέρυθρα δεντρα
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Μελανέρυθρα δεντρα Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Μελανέρυθρα δεντρα v 3 8 z Red-Black Trees 1 Περιγραφή και Διαβασμα Από
Διαβάστε περισσότεραΛογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.
Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους. Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες
Διαβάστε περισσότεραΔένδρα. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:
Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, ορισμοί, πράξεις και αναπαράσταση στη μνήμη ΔυαδικάΔένδρακαιΔυαδικάΔένδραΑναζήτησης ΕΠΛ 231 Δομές
Διαβάστε περισσότεραΜαθηματική Ανάλυση Ι
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Μαθηματική Ανάλυση Ι Ενότητα 3: Σειρές Πραγματικών Αριθμών Επίκ. Καθηγητής Θ. Ζυγκιρίδης e-mail: tzygiridis@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών
Διαβάστε περισσότεραΒάσεις Περιβαλλοντικών Δεδομένων
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Βάσεις Περιβαλλοντικών Δεδομένων Ενότητα 3: Μοντέλα βάσεων δεδομένων Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται
Διαβάστε περισσότεραΑλγόριθμοι Γραφημάτων
Αλγόριθμοι Γραφημάτων 1. Minimum Spanning Trees 2. Αλγόριθμος Prim 3. Αλγόριθμος Kruskal Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Minimum Spanning Tree Πρόβλημα: Για δοσμένο συνεκτικό, μη προσανατολισμένο,
Διαβάστε περισσότεραΑλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες
Διαβάστε περισσότεραΕισαγωγή στους Αλγορίθμους Φροντιστήριο 10
Εισαγωγή στους Αλγορίθμους Φροντιστήριο 10 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΑΛΓΟΡΙΘΜΟΙ. Ενότητα 9: Άπληστοι Αλγόριθμοι. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΛΓΟΡΙΘΜΟΙ Ενότητα 9: Άπληστοι Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΕισαγωγή στους Αλγορίθμους Φροντιστήριο 6
Εισαγωγή στους Αλγορίθμους Φροντιστήριο 6 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό
Διαβάστε περισσότεραΠληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 3: Εφαρμογές Δικτυωτής Ανάλυσης (2 ο Μέρος)
Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 3: Εφαρμογές Δικτυωτής Ανάλυσης (2 ο Μέρος) Μπεληγιάννης Γρηγόριος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων
Διαβάστε περισσότεραΕισαγωγή στους Αλγορίθμους Ενότητα 11η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων
Εισαγωγή στους Αλγορίθμους Ενότητα η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr
Διαβάστε περισσότεραΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ ΜΕΤΑΒΑΤΙΚΑ ΦΑΙΝΟΜΕΝΑ ΣΤΑ ΣΗΕ Λαμπρίδης Δημήτρης Κατσανού Βάνα Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών
Διαβάστε περισσότεραΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ ΜΕΤΑΒΑΤΙΚΑ ΦΑΙΝΟΜΕΝΑ ΣΤΑ ΣΗΕ Λαμπρίδης Δημήτρης Κατσανού Βάνα Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών
Διαβάστε περισσότεραΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ ΜΕΤΑΒΑΤΙΚΑ ΦΑΙΝΟΜΕΝΑ ΣΤΑ ΣΗΕ Λαμπρίδης Δημήτρης Κατσανού Βάνα Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών
Διαβάστε περισσότεραΕισαγωγή στους Αλγόριθμους
Εισαγωγή στους Αλγόριθμους Εύη Παπαϊωάννου Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος και Νέων Τεχνολογιών Σκοποί ενότητας Παρουσίαση και μελέτη αλγορίθμων
Διαβάστε περισσότεραΣτοιχεία Θεωρίας Γράφων (Graph Theory)
Στοιχεία Θεωρίας Γράφων (Graph Theory) Ε Εξάμηνο, Τμήμα Πληροφορικής & Τεχνολογίας Υπολογιστών ΤΕΙ Λαμίας plam@inf.teilam.gr, Οι διαφάνειες βασίζονται στα βιβλία:. Αλγόριθμοι, Σχεδιασμός & Ανάλυση, η έκδοση,
Διαβάστε περισσότερα4 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων
4 η Διάλεξη Ενδεικτικές λύσεις ασκήσεων 1 Περιεχόμενα 1 η Άσκηση... 3 2 η Άσκηση... 3 3 η Άσκηση... 4 4 η Άσκηση... 5 5 η Άσκηση... 6 6 η Άσκηση... 7 Χρηματοδότηση... 8 Σημείωμα Αναφοράς... 9 Σημείωμα
Διαβάστε περισσότεραΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Βασικές Ιδιότητες και Διάσχιση Κεφάλαιο 5 ( και ) Ε. Μαρκάκης Επίκουρος Καθηγητής
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Βασικές Ιδιότητες και Διάσχιση Κεφάλαιο 5 (5.1-5.2 και 5.4-5.6) Ε. Μαρκάκης Επίκουρος Καθηγητής Περίληψη Δέντρα Βασικοί ορισµοί Μαθηµατικές ιδιότητες Διάσχιση δέντρων Preorder, postorder,
Διαβάστε περισσότεραΕισαγωγή στους Η/Υ. Ενότητα 2β: Αντίστροφο Πρόβλημα. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών
Εισαγωγή στους Η/Υ Ενότητα 2β: Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Σκοποί ενότητας Εύρεση συνάρτησης Boole όταν είναι γνωστός μόνο ο πίνακας αληθείας.
Διαβάστε περισσότεραΒέλτιστος Έλεγχος Συστημάτων
Βέλτιστος Έλεγχος Συστημάτων Ενότητα 7: Βέλτιστος έλεγχος συστημάτων διακριτού χρόνου Καθηγητής Αντώνιος Αλεξανδρίδης Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σημείωμα
Διαβάστε περισσότεραΜαθηματική Ανάλυση Ι
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Μαθηματική Ανάλυση Ι Ενότητα 2: Ακολουθίες Πραγματικών Αριθμών Επίκ. Καθηγητής Θ. Ζυγκιρίδης e-mail: tzygiridis@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών
Διαβάστε περισσότεραΔιοικητική Λογιστική
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Διοικητική Λογιστική Ενότητα 10: Προσφορά και κόστος Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά
Διαβάστε περισσότεραΑλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (Quick-Sort)
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (Quick-Sort) Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Ταχυταξινόμηση (Quick-Sort) 7 4 9 6 2 2 4 6 7 9 4 2 2 4 7 9 7
Διαβάστε περισσότεραΑναζήτηση Κατά Πλάτος
Αναζήτηση Κατά Πλάτος ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΔομές Δεδομένων Ενότητα 2
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 2: Θέματα Απόδοσης Απόστολος Παπαδόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΕισαγωγή στον δομημένο προγραμματισμό
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στον δομημένο προγραμματισμό Ενότητα 12 η : Δυναμική Ανάθεση Θέσης Αν. καθηγητής Στεργίου Κώστας e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής
Διαβάστε περισσότεραΜηχανολογικό Σχέδιο Ι
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Ενότητα # 8: Άτρακτοι και σφήνες Μ. Γρηγοριάδου Μηχανολόγων Μηχανικών Α.Π.Θ. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες
Διαβάστε περισσότεραΔομές Δεδομένων Ενότητα 5
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 5: Δυαδικά Δένδρα Απόστολος Παπαδόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΗΛΕΚΤΡΟΤΕΧΝΙΑ-ΗΛΕΚΤΡΟΝΙΚΗ ΕΡΓΑΣΤΗΡΙΟ
ΗΛΕΚΤΡΟΤΕΧΝΙΑ-ΗΛΕΚΤΡΟΝΙΚΗ ΕΡΓΑΣΤΗΡΙΟ Ενότητα 3: Νόμος του Ohm Κανόνες του Kirchhoff Αριστείδης Νικ. Παυλίδης Τμήμα Μηχανολόγων Μηχανικών και Βιομηχανικού Σχεδιασμού ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΕκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραΕισαγωγή στους Αλγορίθμους Ενότητα 9η
Εισαγωγή στους Αλγορίθμους Ενότητα 9η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό
Διαβάστε περισσότεραΕισαγωγή στην Διοίκηση Επιχειρήσεων
Εισαγωγή στην Διοίκηση Επιχειρήσεων Ενότητα 11: Θεωρία Οργάνωσης & Διοίκησης Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης
Διαβάστε περισσότεραΑλγόριθμοι Γραφημάτων
Αλγόριθμοι Γραφημάτων 1. Συντομότατα μονοπάτια 2. Αλγόριθμος Bellman-Ford 3. Αλγόριθμος Dijkstra 4. Floyd-Warshall Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Single-Source Shortest Path Πρόβλημα:
Διαβάστε περισσότεραΕλληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 3 : Γραφήματα & Αποδείξεις. Αλέξανδρος Τζάλλας
1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Θεωρία Υπολογισμού Ενότητα 3 : Γραφήματα & Αποδείξεις Αλέξανδρος Τζάλλας 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Μηχανικών Πληροφορικής
Διαβάστε περισσότεραΕισαγωγή στην Πληροφορική
Εισαγωγή στην Πληροφορική Αριθμητικά Συστήματα ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Συντήρησης Πολιτισμικής Κληρονομιάς Βασικές Έννοιες Ένα Αριθμητικό Σύστημα αποτελείται από ένα
Διαβάστε περισσότεραΤεχνολογία και Καινοτομία - Οικονομική Επιστήμη και Επιχειρηματικότητα
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Τεχνολογία και Καινοτομία - Οικονομική Επιστήμη και Επιχειρηματικότητα Ενότητα: Επενδύσεις και χρηματοδότηση Αν. Καθηγητής Μπακούρος Ιωάννης e-mail: ylb@uowm.gr,
Διαβάστε περισσότεραΑλγόριθµοι και Πολυπλοκότητα
Αλγόριθµοι και Πολυπλοκότητα Ενότητα 3 Αλγόριθµοι Γραφηµάτων Prim-Kruskal Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Prim-Kruskal
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές Δεδομένων Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού
Διαβάστε περισσότεραΠΛΗ 20, 6 η ΟΣΣ: Δέντρα Εξετάσεις
ΠΛΗ 20, 6 η ΟΣΣ: Δέντρα Εξετάσεις Δημήτρης Φωτάκης Διακριτά Μαθηματικά και Μαθηματική Λογική Πληροφορική Ελληνικό Ανοικτό Πανεπιστήμιο Δέντρα Δέντρο: πρότυπο ιεραρχικής δομής. Αναπαράσταση (ιεραρχικών)
Διαβάστε περισσότεραΕυφυής Προγραμματισμός
Ευφυής Προγραμματισμός Ενότητα 6: Προβλήματα ΤΝ και Lisp Ιωάννης Χατζηλυγερούδης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Περιεχόμενα ενότητας Προβλήματα ΤΝ και Lisp 1. Αναζήτηση και Στρατηγικές
Διαβάστε περισσότεραΘέματα υπολογισμού στον πολιτισμό
Θέματα υπολογισμού στον πολιτισμό Ενότητα 3: Απεικόνιση δεδομένων: Δένδρα Εύη Παπαϊωάννου Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος και Νέων Τεχνολογιών Σκοποί
Διαβάστε περισσότεραΘερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής
Ανοικτά Ακαδημαϊκά Μαθήματα Τεχνολογικό Εκπαιδευτικό Ίδρυμα Αθήνας Πίνακες Νερού σε κατάσταση Κορεσμού Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής Διπλ. Ναυπηγός Μηχανολόγος Μηχανικός M.Sc. Διασφάλιση
Διαβάστε περισσότεραΔομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής
Ενότητα 8: Γραμμική Αναζήτηση και Δυαδική Αναζήτηση-Εισαγωγή στα Δέντρα και Δυαδικά Δέντρα-Δυαδικά Δέντρα Αναζήτησης & Υλοποίηση ΔΔΑ με δείκτες Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΛογισμός 3. Ενότητα 19: Θεώρημα Πεπλεγμένων (γενική μορφή) Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 19: Θεώρημα Πεπλεγμένων (γενική μορφή) Μιχ. Γ. Μαριάς Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative
Διαβάστε περισσότεραΜαθηματική Ανάλυση Ι
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Μαθηματική Ανάλυση Ι Ενότητα 4: Συναρτήσεις Επίκ. Καθηγητής Θ. Ζυγκιρίδης e-mail: tzygiridis@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες
Διαβάστε περισσότεραΣχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 6: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ: ΠΡΟΒΛΗΜΑ ΑΝΑΖΗΤΗΣΗΣ
Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 6: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ: ΠΡΟΒΛΗΜΑ ΑΝΑΖΗΤΗΣΗΣ Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος
Διαβάστε περισσότερα