ΕΙΣΑΓΩΓΗ ΣΤΑ ΔΙΑΚΡΙΤΑ ΜΑΘΗΜΑΤΙΚΑ

Σχετικά έγγραφα
Περιεχόμενα. Περιεχόμενα

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

Πρόλογος. Πρόλογος 13. Πώς χρησιμοποείται αυτό το βιβλίο 17

Δομές Δεδομένων (Data Structures)

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 7η: Ουρές Προτεραιότητας Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

Δομές Δεδομένων (Data Structures)

Δομές Δεδομένων (Data Structures)

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ GD2670

Ενότητα 7 Ουρές Προτεραιότητας

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ

Περιεχόμενα. 2 Αριθμητικά συστήματα

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 4η: Σύνολα - Λεξικά Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

Ψηφιακή Σχεδίαση Εργαστήριο Τ.Ε.Ι. ΚΡΗΤΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜ. ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ

Αλγόριθμοι Ταξινόμησης Μέρος 4

Δομές Δεδομένων (Data Structures)

επιφάνεια πυριτίου Αναφορά στο Εκπαιδευτικό Υλικό : 5. Αναφορά στο Εργαστήριο :

Πρόγραμμα Επικαιροποίησης Γνώσεων Αποφοίτων

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

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

ΑΝΑΚΟΙΝΩΣΗ ΚΑΤΑΤΑΚΤΗΡΙΩΝ ΕΞΕΤΑΣΕΩΝ ΑΚ. ΈΤΟΥΣ

Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

ΑΣΠΑΙΤΕ Εργαστήριο Ψηφιακών Συστημάτων & Μικροϋπολογιστών Εργαστηριακές Ασκήσεις για το μάθημα «Λογική Σχεδίαση» ΑΣΚΗΣΗ 3 ΠΙΝΑΚΕΣ KARNAUGH

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

Λογική Σχεδίαση Ψηφιακών Συστημάτων

ΒΑΣΙΚΕΣ ΑΡΧΕΣ ΨΗΦΙΑΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ. Κεφάλαιο 3

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

ΕΝΟΤΗΤΑ 4 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ

Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων

Βασικές Έννοιες Δοµών Δεδοµένων

Δομές δεδομένων. Ενότητα 5η: Υλοποίηση Λεξικών με Ισοζυγισμένα Δένδρα Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

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

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

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

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Ελίνα Μακρή


Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον υποδειγματική διδασκαλία Κεφ. 3 Δομές Δεδομένων & αλγόριθμοι

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

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

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

Κεφάλαιο 10 Ψηφιακά Λεξικά

ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 3

Δομές δεδομένων. Ενότητα 8: Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Αριθμητικά Συστήματα. Επιμέλεια Διαφανειών: Δ.

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα.

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

Standard Template Library (STL) C++ library

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

Βασικές δοµές δεδοµένων. Ορολογία λιστών. 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

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

Γ2.1 Στοιχεία Αρχιτεκτονικής. Γ Λυκείου Κατεύθυνσης

Πληροφορική 2. Αλγόριθμοι

Οι δομές δεδομένων στοίβα και ουρά

K15 Ψηφιακή Λογική Σχεδίαση 1: Εισαγωγή

Κεφάλαιο 6 Ουρές Προτεραιότητας

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ. ΜΑΘΗΜΑ 2 ο. ΑΛΓΕΒΡΑ Boole ΛΟΓΙΚΑ ΚΥΚΛΩΜΑΤΑ

Βασικές Δομές Δεδομένων

ιακριτές Μέθοδοι για την Επιστήμη των Υπολογιστών

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

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

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

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος...9 ΚΕΦ. 1. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΚΩΔΙΚΕΣ

Ψηφιακά Κυκλώματα (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία

ΠΕΡΙΕΧΟΜΕΝΑ 1 ΚΕΦΑΛΑΙΟ ΟΙ ΥΠΟΛΟΓΙΣΤΕΣ ΑΠΟ ΤΗΝ ΑΡΧΑΙΟΤΗΤΑ ΜΕΧΡΙ ΣΗΜΕΡΑ Ιστορική αναδρομή Υπολογιστικές μηχανές

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

ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

ΑΡΙΘΜΗΤΙΚΕΣ ΜΕΘΟΔΟΙ ΓΙΑ ΠΡΟΒΛΗΜΑΤΑ ΜΗΧΑΝΙΚΗΣ ΕΦΑΡΜΟΓΕΣ ΜΕ ΧΡΗΣΗ MATLAB ΔΕΥΤΕΡΗ ΕΚΔΟΣΗ [ΒΕΛΤΙΩΜΕΝΗ ΚΑΙ ΕΠΑΥΞΗΜΕΝΗ]

Ενότητα 7 Ουρές Προτεραιότητας

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

σύνθεση και απλοποίησή τους θεωρήµατα της άλγεβρας Boole, αξιώµατα του Huntington, κλπ.

Ελίνα Μακρή

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΠΑΤΡΑ) ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Περιεχόμενα. Πρώτο Κεφάλαιο. Εισαγωγή στα Ψηφιακά Συστήματα. Δεύτερο Κεφάλαιο. Αριθμητικά Συστήματα Κώδικες

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

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

Ελίνα Μακρή

Ηλεκτρονική Μάθημα Ι Ηλεκτρονικά Συστήματα. Καθηγητής Αντώνιος Γαστεράτος Τμήμα Μηχανικών Παραγωγής και Διοίκησης, Δ.Π.Θ.

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Άλγεβρα Boole και Λογικές Πύλες 2. Επιμέλεια Διαφανειών: Δ.

Κεφάλαιο 14 Προηγμένες Ουρές Προτεραιότητας

Υ52 Σχεδίαση Ψηφιακών Ολοκληρωμένων Κυκλωμάτων και Συστημάτων. Δεληγιαννίδης Σταύρος Φυσικός, MsC in Microelectronic Design

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

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Συνδυαστική Λογική. Επιμέλεια Διαφανειών: Δ.

Υπολογιστικό Πρόβληµα

Πολυπλοκότητα. Παράμετροι της αποδοτικότητας ενός αλγόριθμου: Χρόνος εκτέλεσης. Απαιτούμενοι πόροι, π.χ. μνήμη, εύρος ζώνης. Προσπάθεια υλοποίησης

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

Κεφάλαιο 4. Λογική Σχεδίαση

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

Λογική Σχεδίαση Ι - Εξεταστική Φεβρουαρίου 2013 Διάρκεια εξέτασης : 160 Ονοματεπώνυμο : Α. Μ. Έτος σπουδών:

Transcript:

ΕΙΣΑΓΩΓΗ ΣΤΑ ΔΙΑΚΡΙΤΑ ΜΑΘΗΜΑΤΙΚΑ 1. ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (30 Σεπτεμβρίου 2014) i. Περιγραφή των Αλγόριθμων ii. Δομές και Ροές δεδομένων (Arrays) iii. Σύνολα (Sets) iv. Πίνακες (Matrices) 2. ΣΥΝΔΥΑΣΤΙΚΗ ΑΝΑΛΥΣΗ (6 & 13 Οκτωβρίου 2014) i. Απαρίθμηση (Enumeration) ii. Επαγωγή (Induction) iii. Αναδρομή (Recursion) iv. Αλγοριθμική επάρκεια (Algorithm Efficiency) 3. ΛΟΓΙΚΗ ΚΑΙ ΚΥΚΛΩΜΑΤΑ (20 & 27 Οκτωβρίου 2014) i. Διακόπτες και Πύλες ii. Κυκλώματα και Λογικές Προτάσεις iii. Άλγεβρα Boole. iv. Ελάχιστες Μορφές

ΕΙΣΑΓΩΓΗ ΣΤΑ ΔΙΑΚΡΙΤΑ ΜΑΘΗΜΑΤΙΚΑ 4. ΓΡΑΦΟΙ (Graphs) (4 & 11 Νοεμβρίου 2014) i. Δένδρα και Ανίχνευση (Trees and Search) ii. iii. iv. Γράφοι του Euler & Κυκλώματα του Hamilton (Euler Graphs & Hamilton s circuits) Ελάχιστες Διαδρομές και Κυκλώματα (Minimal Paths & Circuits) Δένδρα Επέκτασης 5. ΑΛΓΟΡΙΘΜΟΙ ΓΡΑΦΩΝ (18, 25 Νοεμβρίου & 2 Δεκεμβρίου 2014) i. Χρωματισμός Γράφων (Coloring) ii. iii. Δίκτυα (Networks) Διάδοση Σφαλμάτων (Error Propagation) 6. ΣΧΕΣΕΙΣ, ΑΛΓΕΒΡΙΚΑ ΣΥΣΤΗΜΑΤΑ ΚΑΙ ΜΗΧΑΝΕΣ (9, 16 & 23 Δεκεμβρίου 2014) i. Σχεσιακοί Εγκλεισμοί και Σχέσεις Ισοδυναμίας (Relational Inclusions & Equivalence Relations) ii. iii. iv. Μερικώς Διατεταγμένα Σύνολα (POSets), Αλγεβρικά Συστήματα και Μηχανές Μονοειδή και Ομάδες (Monoides & Groups) Συμμετρίες, Διατάξεις, Δακτύλιοι και Πεδία (Symmetries, Ordering Rings & Fields) v. Μηχανές (Machines)

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Αλγόριθμος είναι μια διαδοχή λογικών προτάσεων (ΛΠ) που παράγουν τη λύση ενός προβλήματος Λογικό διάγραμμα είναι μια γραφική παράσταση της λογικής αλληλουχίας των ΛΠ του αλγόριθμου. Σημασία των αλγορίθμων στην αναπαράσταση δυναμικών συστημάτων Άσκηση: Να σχεδιαστεί το λογικό διάγραμμα αλγόριθμου μετατροπής αριθμού από το δεκαδικό στο δυαδικό σύστημα αρίθμησης

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Δομή Δεδομένων: είναι ένας ιδιαίτερος τρόπος αποθήκευσης πληροφορίας σε ένα σύστημα ώστε η εκμετάλλευσή τους να έχει τη βέλτιστη απόδοση. Η έννοια του αφηρημένου τύπου δεδομένων (ΑΤΔ). Πίνακες (θα γίνει εκτενής αναφορά στα επόμενα) Εγγραφές. DT Σύνολα. Συμβολοσειρές (strings): Ακολουθία συμβόλων που επιλέγονται από ένα σύνολο ή μια αλφάβητο. Στοίβες: είναι μία από τις δομές δεδομένων που χρησιμοποιούνται συνήθως. Μια στοίβα είναι επίσης γνωστή ως το πρώτο στην είσοδο τελευταίαο στην έξοδο (LIFO) συστήματος. Μπορεί να θεωρηθεί ως μια γραμμική λίστα στην οποία προσθήκη και διαγραφή μπορεί να πραγματοποιηθεί μόνο όταν ένα άκρο καλεί την κορυφή. Η δομή αυτή λειτουργεί με τον ίδιο τρόπο όπως μια στοίβα του δίσκους.

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Στοίβα : είναι μια γραμμική διάταξη στοιχείων, στην οποία στοιχεία μπορούν να εισαχθούν ή να εξαχθούν μόνο από το ένα άκρο. Το άκρο αυτό λέγεται κεφαλή της στοίβας. Η στοίβα υλοποιεί τη μέθοδο Last In First Out (LIFO). Για παράδειγμα έστω ότι μια στοίβα περιέχει τα στοιχεία (τελευταίο προς πρώτο) Α, Β, Γ. Αν θέλουμε να εισάγουμε το Δ, τα στοιχεία της λίστας κατά σειρά θα είναι Α, Β, Γ, Δ. Για να βγάλουμε το Β πρέπει πρώτα να βγάλουμε τα Δ και Γ. Οι ενέργειες που μπορούν να γίνουν σε μια στοίβα είναι η εισαγωγή (push) και η εξαγωγή (pop). Αναδρομή: πρόκειται για μια λειτουργία που ορίζεται αναδρομικά όταν περιγράφεται χρησιμοποιώντας τον εαυτό της

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Λίστες: Μια λίστα είναι μια δομή δεδομένων που συγκρατεί μια διατεταγμένη συλλογή στοιχείων, δηλαδή μπορείτε να αποθηκεύσετε μια ακολουθία (sequence) αντικειμένων στη λίστα. Αυτό είναι εύκολο να το φανταστείτε αν σκεφτείτε μια λίστα για αγορές, όπου έχετε μια λίστα με αντικείμενα που πρέπει να αγοράσετε, και εκτός αυτού πιθανόν έχετε κάθε στοιχείο σε διαφορετική γραμμή στη λίστα αγορών σας, ενώ στην Python τοποθετείτε κόμματα ανάμεσα στα στοιχεία. Η λίστα των στοιχείων πρέπει να κλείνεται σε αγκύλες (δηλαδή [ και ] ) έτσι ώστε να καταλαβαίνει η Python ότι καθορίζεται μια λίστα. Αφού έχετε δημιουργήσει μια λίστα μια φορά μπορείτε να προσθέσετε, να μετακινήσετε ή να ψάξετε για στοιχεία σ' αυτή τη λίστα. Από τη στιγμή που μπορούμε να προσθέσουμε και να μετακινήσουμε στοιχεία, λέμε ότι η λίστα είναι ένας μεταβλητός τύπος δεδομένων (mutable data type), δηλαδή αυτός ο τύπος μπορεί να αλλαχθεί.

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Δένδρα: δυαδικά δένδρα, δυαδικά δένδρα αναζήτησης. Ισοζυγισμένα δένδρα (AVL). Γραφήματα: υλοποίηση, αλγόριθμοι. Αναζήτηση με μετασχηματισμό κλειδιού (hashing). Υλοποίηση των ΑΤΔ με μια γλώσσα αντικειμενοστραφούς προγραμματισμού (C++). Ροή δεδομένων καλείται ένα μαθηματικό πρότυπο που επιτρέπει την αποθήκευση πληροφορίας. Γραμμική ροή δεδομένων είναι ένας πίνακας 1xn σε κάθε θέση του οποίου τοποθετείται μια στοιχειώδης μονάδα πληροφορίας Σωροί Θεωρία ουρών (Qeueing Theory) : ουρές προτεραιότητας

Βιβλιογραφία Harry Lewis and Larry Denenberg, Data Structures and Their Algorithms, Harper Collins Publishers, Inc., New York, 1991. Μιchael T. Goodrich and Roberto Tamassia, Data Structures and Algorithms in Java, John Wiley & Sons, Inc., (4th edition). Michael T. Goodrich, Roberto Tamassia, and David M. Mount, Data Structures and Algorithms in C++, John Wiley & Sons, Inc. Παναγιώτης Μποζάνης, Δομές δεδομένων, 960-418-010-Χ, Τζιόλας, 2003. Cormen, Leiserson and Rivest, Introduction to Algorithms, MIT Press, 1990. (Το βιβλίο κυκλοφορεί μεταφρασμένο από τις Πανεπιστημιακές Εκδόσεις Κρήτης σε δύο μέρη.) Sahni, Δομές Δεδομένων, Αλγόριθμοι και Εφαρμογές στη C++, Μετάφραση: Γιάννης Θεοδωρίδης & Γιάννης Μανωλόπουλος, Εκδόσεις Τζιόλα, 2004. Γεώργιος Φ. Γεωργακόπουλος, Δομές Δεδομένων: Έννοιες, Τεχνικές, Αλγόριθμοι, Πανεπιστημιακές Εκδόσεις Κρήτης, Ηράκλειο 2002. Ι. Μανωλόπουλος, Δομές Δεδομένων, Μια προσέγγιση με Pascal, Εκδόσεις Art of Text, Θεσσαλονίκη.

Αλγόριθμοι και πολυπλοκότητα Βασικές αρχές και τεχνικές ανάλυσης χρόνου εκτέλεσης αλγορίθμων και ασυμπτωτικοί συμβολισμοί Ο, Ω και Θ Αλγόριθμοι ταξινόμησης και αναζήτησης Τρεις βασικές τεχνικές σχεδίασης αλγορίθμων: άπληστη προσέγγιση, διαίρει-και-βασίλευε, δυναμικός προγραμματισμός Στοιχειώδεις αλγόριθμοι γράφων (αναζήτηση κατα πλάτος και βάθος και εφαρμογές τους, δέντρα επικάλυψης, συντομότερα μονοπάτια, ταίριασμα) NP-πληρότητα, αναγωγές, προσεγγιστικοί αλγόριθμοι

Η έννοια του συνόλου Το σύνολο δεν ορίζεται καθώς είναι πρωταρχική έννοια στην ανθρώπινη αντίληψη. Αντιλαμβανόμαστε το σύνολο Α, ως μια συλλογή για την οποία, όταν υποδειχτεί ένα στοιχείο είμαστε σε θέση να αποφανθούμε αν το στοιχείο x ανήκει, δεν ανήκει ή ανήκει μερικώς στη συλλογή αυτή. Ως συμμετοχή ορίζουμε μια συνάρτηση οι τιμές της οποίας εκφράζουν τη σχέση ενός στοιχείου x προς το σύνολο Α Σαφή σύνολα (Crisp sets) λέγονται εκείνα για τα οποία η συνάρτηση συμμετοχής έχει πεδίο τιμών το {0,1} Ασαφή σύνολα (Fuzzy sets) λέγονται εκείνα για τα οποία η συνάρτηση συμμετοχής έχει πεδίο τιμών το [0,1] Παραδείγματα συνόλων Crisp versus Fuzzy sets Applet presentation for color mixing

Άλγεβρα Συνόλων Αν και ο όρος χρησιμοποιείται καταχρηστικά, αναφέρεται ότι άλγεβρα καλείται μια δομή που αποτελείται Από ένα σύνολο Από μια (ή περισσότερες) πράξεις μεταξύ των στοιχείων του συνόλου Οι πράξεις αυτές δύνανται να είναι εσωτερικές ή εξωτερικές Το σύνολο δύναται να είναι κλειστό ή ανοιχτό ως προς τις πράξεις με τις οποίες είναι εφοδιασμένο. Από τις ιδιότητες των πράξεων αυτών. Η άλγεβρα των κλασσικών συνόλων Η άλγεβρα των ασαφών συνόλων http://plato.stanford.edu/entries/logic-fuzzy/

Άλγεβρα Boole. Αξιώματα άλγεβρας Boole 1. Αντιμεταθετικότητα AVB = BVA και AΛB = BΛA 2. Προσεταιριστικότητα (ΑVΒ)VC = AV(BVC) και (ΑΛΒ)ΛC = AΛ(BΛC) 3. Επιμεριστικότητα ΑV(ΒΛC) = (AVB)Λ(AVC) και AΛ(BVC) = (AΛB) V(AΛC) 4. Απορροφητικό στοιχείο (ΑΛΒ)VΑ = Α και (AVB)ΛA= A 5. Συμπληρώματα Α Λ Α' = 1 και ΑVΑ' = 0 6. Ουδέτερο στοιχείο AΛ0 = 0 και ΑV1= 1 και ΑV0= A και ΑΛ1= Α 7. Κλειστότητα του συνόλου {0,1} ως προς τους τελεστές AND, OR, NOT. George Boole (1815-1864) ΒΙΟΓΡΑΦΙΑ: http://www.kerryr.net/pioneers/boole.htm http://en.wikipedia.org/wiki/george_boole http://www.sjsu.edu/depts/museum/boole.ht ml http://www.samos.aegean.gr/math/andpapas/courses/ics/presentations/boole-2.pdf

Πίνακες Karnaugh Η απεικόνιση Karnaugh, επίσης γνωστή ως διάγραμμα Veitch (KV χάρτη ή-κχάρτη για σύντομα), είναι ένα εργαλείο για να διευκολυνθεί η απλοποίηση των Boolean άλγεβρα IC εκφράσεις. Ο χάρτης Karnaugh μειώνει την ανάγκη για εκτεταμένες υπολογισμούς με την αξιοποίηση του ανθρώπινου τρόπου διεξαγωγής της αναγνώρισης και επιτρέπει την ταχεία αναγνώριση και την εξάλειψη των δυνητικών κινδύνων φυλής. Ένα χάρτη Karnaugh μπορεί να περιέχει οποιονδήποτε αριθμό boolean μεταβλητές, αλλά συνήθως χρησιμοποιούνται όταν υπάρχουν λιγότερες από έξι μεταβλητές. Κάθε μεταβλητή συμβάλλει δύο δυνατότητες: την αρχική τιμή, και το αντίστροφο? Ως εκ τούτου οργανώνει όλες τις δυνατότητες του συστήματος. Οι μεταβλητές που Γκρέι είναι διατεταγμένα σε κώδικα με τον οποίο μόνο μία δυνατότητα μιας μεταβλητής αλλαγές μεταξύ δύο γειτονικών δίκτυο κουτιά. Μετά τις μεταβλητές που έχουν οριστεί, η παραγωγή δυνατότητες μεταγραφής σύμφωνα με τις πλέγματος που παρέχονται από την τοποθεσία μεταβλητών. Έτσι, για κάθε ενδεχόμενο μιας boolean μεταβλητή εισόδου ή εξόδου η δυνατότητα ορίζεται. Όταν το χάρτη Karnaugh έχει ολοκληρωθεί, να αποκομίζει ελαχιστοποιείται η λειτουργία "1S" ή επιθυμητά αποτελέσματα συγκεντρώνονται σε ένα όσο το δυνατόν μεγαλύτερο ορθογώνιο ομάδες στις οποίες ο αριθμός των κιβωτίων δίκτυο (output δυνατότητες) σε ομάδες πρέπει να είναι ίση με μια δύναμη του 2. Για παράδειγμα, οι ομάδες μπορούν να είναι 4 κουτιά σε μια γραμμή, 2 θέσεις υψηλής κατά 4 θέσεις καιρό, 2 θέσεις κατά 2 θέσεις, και ούτω καθεξής. "Δεν με ενδιαφέρει (s)" δυνατότητες (συνήθως εκπροσωπούνται από ένα "Χ") έχουν συγκεντρωθεί μόνο αν η ομάδα που δημιουργείται είναι μεγαλύτερο από την ομάδα με "δεν ενδιαφερόμαστε" αποκλείεται. Οι θέσεις μπορεί να χρησιμοποιηθεί περισσότερο από μία φορά μόνο αν δημιουργεί το λιγότερο αριθμό των ομάδων. Όλα τα "1S" ή έξοδο επιθυμητής δυνατότητες που πρέπει να περιέχονται στο πλαίσιο ομάδας. Οι ομάδες που δημιουργούνται στη συνέχεια μετατρέπεται σε boolean έκφραση με: τον εντοπισμό και μετα το μεταβλητό δυνατότητα δόθηκε στο πλαίσιο και από το αξίωμα των νόμων boolean άλγεβρα - κατά την οποία αν το (πρώτο) μεταβλητές δυνατότητα και την αντίστροφη περιέχονται μέσα στην ίδια ομάδα η μεταβλητή διάρκεια απομακρύνεται. Κάθε ομάδα ορίζει ένα "προϊόν" να δημιουργηθεί ένα "άθροισμα των προϊόντων" στην boolean έκφραση. Για να προσδιορίσετε το αντίστροφο του χάρτη Karnaugh, το "0s" ομαδοποιούνται αντί του "1S". Οι δύο έκφρασης δεν είναι συμπληρωματικές.

Πολυωνυμικός χρόνος Ο αλγόριθμος τρέχει σε ισχυρώς πολυωνυμικό χρόνο αν ο αριθμός των ενεργειών του αριθμητικού μοντέλου υπολογισμού οριοθετείται από ένα πολυώνυμο αριθμού ίσου με το πλήθος των ακεραίων στην περίπτωση εισόδου και ο χώρος που χρησιμοποιείται από τον αλγόριθμο περιορίζεται από ένα πολυώνυμο μεγέθους των δεδομένων εισόδου. NP κλάση πολυπλοκότητας Μηχανή Turing