1.1) Ιεραρχία Συναρτήσεων
1.2) Αναδρομικές Σχέσεις (Θεώρημα Κυριαρχίας, Μέθοδος Επανάληψης)
2) Άπληστος Αλγόριθμος (Αντιπαράδειγμα ε μη ορθό αλγόριθμο υπολογισμού συντομότερου μονοπατιού)
3.1) 0*1*11*: ΚΕ σε ΜΠΑε σε ΜΠΑ σε ΝΠΑ και Κανονική Γραμματική
3.2) Διακριση Κανονικών και μη Κανονικών Γλωσσών
4) Διάκριση Γλωσσών Χωρίς Συμφραζόμενα και Γλωσσών Όχι Χωρίς Συμφραζόμενα (Γραμματική Χωρίς Συμφραζόμενα, Αυτόματο Στοίβας) και (Λήμμα Άντλησης για Γλώσσες Χωρίς Συμφραζόμενα.
5.1) Μηχανή Turing για συμπλήρωμα ισότητας
5.2) Αναγωγές μη Επιλυσιμότητας
6) NP-πληρότητα (το πρόβλημα της κομβικής επικάλυψης και το πρόβλημα του ανεξαρτήτου συνόλου)
1) Εισαγώγή
1.1) Σχήμα Απόδειξης Αναγωγής
1.2) Αναγωγές της Προτασιακής Λογικής
2) Το πρόβλημα HAMILTON-PATH είναι NP-πλήρες
2.1) HAMILTON-PATH ανήκει στο NP
2.2) 3SAT ανάγεται στο HAMILTON-PATH
3) Το πρόβλημα HAMILTON-CYCLE είναι NP-πλήρες
3.1) HAMILTON-CYCLE ανήκει στο NP
3.2) HAMILTON-PATH ανάγεται στο HAMILTON-CYCLE
4) Το πρόβλημα 3-COLORING είναι NP-πλήρες
4.1) 3-COLORING ανήκει στο NP
4.2) 3SAT ανάγεται στο 3-COLORING
Ασκήσεις
1) To 7-COLORING είναι NP-πλήρες
2) Το TSP είναι NP-πλήρες
1) Απληστοι Αλγόριθμοι
1.1) Συντομότερο Μονοπάτι σε Γράφο
1.1.1) Ο αλγόριθμος του Dijkstra
1.2) Ελάχιστο Συνδετικό Δένδρο
1.2.1) Ο αλγόριθμος του Prim
1.2.2) Ο αλγόριθμος του Kruskal
1.3) Ελαχιστοποίηση Νομισμάτων με Ρέστα
Εφαρμογές
1) Επιστροφή χρηματικού ποσού για ρέστα
2) Άπληστος Αλγόριθμος για Χρωματισμό Γραφήματος
1.1) Ιεραρχία Συναρτήσεων
1.2) Αναδρομικές Σχέσεις (Θεώρημα Κυριαρχίας, Μέθοδος Επανάληψης)
2) Άπληστος Αλγόριθμος (Αντιπαράδειγμα ε μη ορθό αλγόριθμο υπολογισμού συντομότερου μονοπατιού)
3.1) 0*1*11*: ΚΕ σε ΜΠΑε σε ΜΠΑ σε ΝΠΑ και Κανονική Γραμματική
3.2) Διακριση Κανονικών και μη Κανονικών Γλωσσών
4) Διάκριση Γλωσσών Χωρίς Συμφραζόμενα και Γλωσσών Όχι Χωρίς Συμφραζόμενα (Γραμματική Χωρίς Συμφραζόμενα, Αυτόματο Στοίβας) και (Λήμμα Άντλησης για Γλώσσες Χωρίς Συμφραζόμενα.
5.1) Μηχανή Turing για συμπλήρωμα ισότητας
5.2) Αναγωγές μη Επιλυσιμότητας
6) NP-πληρότητα (το πρόβλημα της κομβικής επικάλυψης και το πρόβλημα του ανεξαρτήτου συνόλου)
1) Εισαγώγή
1.1) Σχήμα Απόδειξης Αναγωγής
1.2) Αναγωγές της Προτασιακής Λογικής
2) Το πρόβλημα HAMILTON-PATH είναι NP-πλήρες
2.1) HAMILTON-PATH ανήκει στο NP
2.2) 3SAT ανάγεται στο HAMILTON-PATH
3) Το πρόβλημα HAMILTON-CYCLE είναι NP-πλήρες
3.1) HAMILTON-CYCLE ανήκει στο NP
3.2) HAMILTON-PATH ανάγεται στο HAMILTON-CYCLE
4) Το πρόβλημα 3-COLORING είναι NP-πλήρες
4.1) 3-COLORING ανήκει στο NP
4.2) 3SAT ανάγεται στο 3-COLORING
Ασκήσεις
1) To 7-COLORING είναι NP-πλήρες
2) Το TSP είναι NP-πλήρες
1) Απληστοι Αλγόριθμοι
1.1) Συντομότερο Μονοπάτι σε Γράφο
1.1.1) Ο αλγόριθμος του Dijkstra
1.2) Ελάχιστο Συνδετικό Δένδρο
1.2.1) Ο αλγόριθμος του Prim
1.2.2) Ο αλγόριθμος του Kruskal
1.3) Ελαχιστοποίηση Νομισμάτων με Ρέστα
Εφαρμογές
1) Επιστροφή χρηματικού ποσού για ρέστα
2) Άπληστος Αλγόριθμος για Χρωματισμό Γραφήματος
1) Εισαγώγή
1.1) Σχήμα Απόδειξης Αναγωγής
1.2) Αναγωγές της Προτασιακής Λογικής
2) Το πρόβλημα INDEPENDENT-SET είναι NP-πλήρες
2.1) INDEPENDENT-SET ανήκει στο NP
2.2) 3SAT ανάγεται στο INDEPENDENT-SET
3) Το πρόβλημα CLIQUE είναι NP-πλήρες
3.1) CLIQUE ανήκει στο NP
3.2) INDEPENDENT-SET ανάγεται στο CLIQUE
4) Το πρόβλημα VERTEX-COVER είναι NP-πλήρες
4.1) VERTEX-COVER ανήκει στο NP
4.2) INDEPENDENT-SET ανάγεται στο VERTEX-COVER
5) Το πρόβλημα SUBGRAPH-ISOMORPHISM είναι NP-πλήρες
5.1) SUBGRAPH-ISOMORPHISM ανήκει στο NP
5.2) CLIQUE ανάγεται στο SUBGRAPH-ISOMORPHISM
Ασκήσεις
1) To (n/2)-CLIQUE είναι NP-πλήρες
2) Το KITE είναι NP-πλήρες
3) Το k-DENSEST-SUBGRAPH είναι NP-πλήρες
4) Το k-LIGHTEST-SUBGRAPH είναι NP-πλήρες
1) Εισαγωγή
1.1) Είδη Προβλημάτων
1.2) Μοντέλα Υπολογισμού
2) Το πρόβλημα της ικανοποιησιμότητας - SAT
2.1) Διατυπωση του προβλήματος
2.2) To SAT λύνεται σε ντετερμιιστικό εκθετικό χρόνο.
2.3) To SAT λύνεται σε ντετερμινιστικό πολυωνυμικό χρόνο?
2.4) Το SAT λύνεται σε μη ντετερμινιστικό πολυωνυμικό χρόνο.
2.5) Σύνοψη για το πρόβλημα SAT
3) Θεωρία Πολυπλοκότητας
3.1) Η κλάση P
3.2) Η κλάση NP
3.3) Η κλάση EXP
3.4) P ⊆푵NP푷⊆퐄EXP퐗퐏
3.5) NP-πληρότητα
4) NP-πληρότητα
4.1) Αποδείξεις NP-πληρότητας
4.2) Ιδιότητες NP-Complete προβλημάτων
4.3) Το ανοικτό πρόβλημα P=NP
4.4) Η κλάση NP-Complete
4.5) Ιεραρχία κλάσεων αν P ≠ NP푷
4.6) Ιεραρχία κλάσεων αν P = NP푷
Ασκήσεις
1) Η αποδεικτική διαδικασία της αναγωγής
1.1) Σκεπτικό: Η γλώσσα Halting
1.2) Το Θεώρημα Αναγωγής
1.3) Σχήμα Απόδειξης Αναγωγής
2) Παραδείγματα Αναγωγών
2.1) Ο πιο συχνά χρησιμοποιούμενος μετασχημαισμός
2.2) Τερματίζει ένα πρόγραμμα με οποιαδήποτε είσοδο;
2.3) Τερματίζει ένα πρόγραμμα με είσοδο την κενή συμβολοσειρά;
2.4) Τερματίζει ένα πρόγραμμα με είσοδο έστω μία συμβολοσειρά;
2.5) Είναι δύο προγράμματα ισοδύναμα;
2.6) Το πρόγραμμα δεν τερματίζει για καμία είσοδο
3) Άλλες Μη Επιλύσιμες Γλώσσες
3.1) Αναγνώριση συνόλου γλώσσας
3.2) Ασκ.Αυτ.2.2 και Δραστ.2.2
3.3) Μη Επιλύσιμες Γλώσσες για Γλώσσες Χωρίς Συμφραζόμενα
1) Μηχανές Turing που αποδέχονται γλώσσες
1.1) Ορισμός Αποδεκτής Γλώσσας
1.2) Κάθε Αποφασίσιμη Γλώσσα είναι Αποδεκτή
2) Καθολική Μηχανή Turing
2.1) Ορισμός του Αλγορίθμου
2.2) Η θέση Church-Turing
2.3) Μηχανές που τρέχουν μηχανές
2.4) Καθολική Μηχανή Turing
3) Η γλώσσα Halting
3.1) Ορισμός
3.2) Απόδειξη ότι δεν είναι αποφασίσιμη
3.3) Απόδειξη ότι είναι αποδεκτή
4) Κλειστότητα στις Αποδεκτές Γλώσσες
4.1) Κλειστότητα στην Ένωση
4.2) Κλειστότητα στην Τομή
4.3) Κλειστότητα στην Παράθεση
4.4) Κλειστότητα στο Αστέρι Kleene
4.5) ΌΧΙ Κλειστότητα στο Συμπλήρωμα
Ασκήσεις
1) Εισαγώγή
1.1) Σχήμα Απόδειξης Αναγωγής
1.2) Αναγωγές της Προτασιακής Λογικής
2) Το πρόβλημα 3SAT είναι NP-πλήρες
2.1) 3SAT ανήκει στο NP
2.2) SAT ανάγεται στο 3SAT
3) Το πρόβλημα 1-IN-3-SAT είναι NP-πλήρες
3.1) 1-IN-3-SAT ανήκει στο NP
3.2) 3SAT ανάγεται στο 1-IN-3-SAT
4) Το πρόβλημα NAE-3SAT είναι NP-πλήρες
4.1) NAE-3SAT ανήκει στο NP
4.2) 3SAT ανάγεται στο NAE-3SAT
Ασκήσεις
1) To NOT-ALL-ZERO-SAT είναι NP-πλήρες
2) Το 5SAT είναι NP-πλήρες
3) Το AtLeast3SAT είναι NP-πλήρες
4) To AlmostSAT είναι NP-πλήρες
Α.Θεωρία
1) Ενοποίηση και Κανόνες Συλλογισμού
1.1) Ενοποίηση
1.2) Κανόνες Συλλογισμού
1.3) Παραδείγματα Αναγωγών
2) Αναγωγή μέσω αντίκρουσης της αντίφασης
2.1) Ορισμός
2.2) Παράδειγμα
2.3) Αλγόριθμος Αναγωγής μέσω Αντικρουσης της Αντίφασης
2.4) Ευρετικά για την εύρεση της απόδειξης
2.5) Εξαγωγή Απαντήσεων
3) Επεκτάσεις
3.1) Εξαγωγή Απαντήσεων
3.2) Συμπερασμός
3.3) Διορθώσεις σε Αντιφατική Βάση Γνώσης
Β.Ασκήσεις
1) Κλειστότητα των Κανονικών Γλωσσών
1.1) Κλειστότητα στην Ένωση
1.2) Κλειστότηα στην Παράθεση
1.3) Κλειστότητα στο Αστέρι Kleene
1.4) Κλειστότητα στο Συμπλήρωμα
1.5) Κλειστότητα στην Τομή
1.5.1) Απλοποίηση ΝΠΑ
2) Επιπλέον Κατασκευές
2.1) Κατασκευή ΝΠΑ για την Ένωση
2.2) Κατασκευή ΝΠΑ για την Διαφορά
1) Εισαγώγή
1.1) Σχήμα Απόδειξης Αναγωγής
1.2) Αναγωγές της Προτασιακής Λογικής
2) Το πρόβλημα INDEPENDENT-SET είναι NP-πλήρες
2.1) INDEPENDENT-SET ανήκει στο NP
2.2) 3SAT ανάγεται στο INDEPENDENT-SET
3) Το πρόβλημα CLIQUE είναι NP-πλήρες
3.1) CLIQUE ανήκει στο NP
3.2) INDEPENDENT-SET ανάγεται στο CLIQUE
4) Το πρόβλημα VERTEX-COVER είναι NP-πλήρες
4.1) VERTEX-COVER ανήκει στο NP
4.2) INDEPENDENT-SET ανάγεται στο VERTEX-COVER
5) Το πρόβλημα SUBGRAPH-ISOMORPHISM είναι NP-πλήρες
5.1) SUBGRAPH-ISOMORPHISM ανήκει στο NP
5.2) CLIQUE ανάγεται στο SUBGRAPH-ISOMORPHISM
Ασκήσεις
1) To (n/2)-CLIQUE είναι NP-πλήρες
2) Το KITE είναι NP-πλήρες
3) Το k-DENSEST-SUBGRAPH είναι NP-πλήρες
4) Το k-LIGHTEST-SUBGRAPH είναι NP-πλήρες
1) Εισαγωγή
1.1) Είδη Προβλημάτων
1.2) Μοντέλα Υπολογισμού
2) Το πρόβλημα της ικανοποιησιμότητας - SAT
2.1) Διατυπωση του προβλήματος
2.2) To SAT λύνεται σε ντετερμιιστικό εκθετικό χρόνο.
2.3) To SAT λύνεται σε ντετερμινιστικό πολυωνυμικό χρόνο?
2.4) Το SAT λύνεται σε μη ντετερμινιστικό πολυωνυμικό χρόνο.
2.5) Σύνοψη για το πρόβλημα SAT
3) Θεωρία Πολυπλοκότητας
3.1) Η κλάση P
3.2) Η κλάση NP
3.3) Η κλάση EXP
3.4) P ⊆푵NP푷⊆퐄EXP퐗퐏
3.5) NP-πληρότητα
4) NP-πληρότητα
4.1) Αποδείξεις NP-πληρότητας
4.2) Ιδιότητες NP-Complete προβλημάτων
4.3) Το ανοικτό πρόβλημα P=NP
4.4) Η κλάση NP-Complete
4.5) Ιεραρχία κλάσεων αν P ≠ NP푷
4.6) Ιεραρχία κλάσεων αν P = NP푷
Ασκήσεις
1) Η αποδεικτική διαδικασία της αναγωγής
1.1) Σκεπτικό: Η γλώσσα Halting
1.2) Το Θεώρημα Αναγωγής
1.3) Σχήμα Απόδειξης Αναγωγής
2) Παραδείγματα Αναγωγών
2.1) Ο πιο συχνά χρησιμοποιούμενος μετασχημαισμός
2.2) Τερματίζει ένα πρόγραμμα με οποιαδήποτε είσοδο;
2.3) Τερματίζει ένα πρόγραμμα με είσοδο την κενή συμβολοσειρά;
2.4) Τερματίζει ένα πρόγραμμα με είσοδο έστω μία συμβολοσειρά;
2.5) Είναι δύο προγράμματα ισοδύναμα;
2.6) Το πρόγραμμα δεν τερματίζει για καμία είσοδο
3) Άλλες Μη Επιλύσιμες Γλώσσες
3.1) Αναγνώριση συνόλου γλώσσας
3.2) Ασκ.Αυτ.2.2 και Δραστ.2.2
3.3) Μη Επιλύσιμες Γλώσσες για Γλώσσες Χωρίς Συμφραζόμενα
1) Μηχανές Turing που αποδέχονται γλώσσες
1.1) Ορισμός Αποδεκτής Γλώσσας
1.2) Κάθε Αποφασίσιμη Γλώσσα είναι Αποδεκτή
2) Καθολική Μηχανή Turing
2.1) Ορισμός του Αλγορίθμου
2.2) Η θέση Church-Turing
2.3) Μηχανές που τρέχουν μηχανές
2.4) Καθολική Μηχανή Turing
3) Η γλώσσα Halting
3.1) Ορισμός
3.2) Απόδειξη ότι δεν είναι αποφασίσιμη
3.3) Απόδειξη ότι είναι αποδεκτή
4) Κλειστότητα στις Αποδεκτές Γλώσσες
4.1) Κλειστότητα στην Ένωση
4.2) Κλειστότητα στην Τομή
4.3) Κλειστότητα στην Παράθεση
4.4) Κλειστότητα στο Αστέρι Kleene
4.5) ΌΧΙ Κλειστότητα στο Συμπλήρωμα
Ασκήσεις
1) Εισαγώγή
1.1) Σχήμα Απόδειξης Αναγωγής
1.2) Αναγωγές της Προτασιακής Λογικής
2) Το πρόβλημα 3SAT είναι NP-πλήρες
2.1) 3SAT ανήκει στο NP
2.2) SAT ανάγεται στο 3SAT
3) Το πρόβλημα 1-IN-3-SAT είναι NP-πλήρες
3.1) 1-IN-3-SAT ανήκει στο NP
3.2) 3SAT ανάγεται στο 1-IN-3-SAT
4) Το πρόβλημα NAE-3SAT είναι NP-πλήρες
4.1) NAE-3SAT ανήκει στο NP
4.2) 3SAT ανάγεται στο NAE-3SAT
Ασκήσεις
1) To NOT-ALL-ZERO-SAT είναι NP-πλήρες
2) Το 5SAT είναι NP-πλήρες
3) Το AtLeast3SAT είναι NP-πλήρες
4) To AlmostSAT είναι NP-πλήρες
Α.Θεωρία
1) Ενοποίηση και Κανόνες Συλλογισμού
1.1) Ενοποίηση
1.2) Κανόνες Συλλογισμού
1.3) Παραδείγματα Αναγωγών
2) Αναγωγή μέσω αντίκρουσης της αντίφασης
2.1) Ορισμός
2.2) Παράδειγμα
2.3) Αλγόριθμος Αναγωγής μέσω Αντικρουσης της Αντίφασης
2.4) Ευρετικά για την εύρεση της απόδειξης
2.5) Εξαγωγή Απαντήσεων
3) Επεκτάσεις
3.1) Εξαγωγή Απαντήσεων
3.2) Συμπερασμός
3.3) Διορθώσεις σε Αντιφατική Βάση Γνώσης
Β.Ασκήσεις
1) Κλειστότητα των Κανονικών Γλωσσών
1.1) Κλειστότητα στην Ένωση
1.2) Κλειστότηα στην Παράθεση
1.3) Κλειστότητα στο Αστέρι Kleene
1.4) Κλειστότητα στο Συμπλήρωμα
1.5) Κλειστότητα στην Τομή
1.5.1) Απλοποίηση ΝΠΑ
2) Επιπλέον Κατασκευές
2.1) Κατασκευή ΝΠΑ για την Ένωση
2.2) Κατασκευή ΝΠΑ για την Διαφορά
1.1) Ιεραρχία Συναρτήσεων
1.2) Αναδρομικές Σχέσεις (Θεώρημα Κυριαρχίας, Μέθοδος Επανάληψης)
2.1) Όρια και Ασυμπτωτικοί Συμβολισμοί
2.2) Διαίρει και Βασίλευε αλγόριθμος (αναδρομική σχέση και υπολογισμός φραγμάτων)
3.1) (011+11)*: ΚΕ σε ΜΠΑε σε ΜΠΑ σε ΝΠΑ σε Κανονική Γραμματική
3.2) Διάκριση Κανονικών και μη Κανονικών Γλωσσών
4.1) Ανισότητα 2 πραγμάτων: Γραμματική Χωρίς Συμφραζόμενα και Αυτόματο Στοίβας
4.2) Ανισότητα 3 πραγμάτων (όχι ΓΧΣ με 2ο λήμμα άντλησης)
5.1) Αναλογία 3 πραγμάτων (Μηχανή Turing)
5.2) Απόδειξη μη επιλυσιμότητας
6) Σωστά/Λάθος για NP-πληρότητα
1.1) Ιεραρχία Συναρτήσεων
1.2) Αναδρομικές Σχέσεις (Θεώρημα Κυριαρχίας, Μέθοδος Επανάληψης)
2) Όρια και Ασυμπτωτικοί Συμβολισμοί
3.1) "αρχίζει"+"περιέχει"+"τελειώνει": ΚΕ σε ΜΠΑε σε ΜΠΑ σε ΝΠΑ σε Κανονική Γραμματική
3.2) Διάκριση Κανονικών και μη Κανονικών Γλωσσών
4.1) Αναλογία 2 πραγμάτων: Γραμματική Χωρίς Συμφραζόμενα και Αυτόματο Στοίβας
4.2) Αναλογία 3 πραγμάτων (όχι ΓΧΣ με 2ο λήμμα άντλησης)
5.1) Κανονική Γλώσσα (Μηχανή Turing)
5.2.Α) Απόδειξη ότι μία γλώσσα είναι αποδεκτή
5.2.Β) Απόδειξη μη επιλυσιμότητας
6) ΑΡΑΙΟ ΥΠΟΓΡΑΦΗΜΑ είναι NP-complete
1.1) Ιεραρχία Συναρτήσεων
1.2) Αναδρομικές Σχέσεις (Θεώρημα Κυριαρχίας, Μέθοδος Επανάληψης)
2) Αναδρομικός Αλγόριθμος (Ψευδοκώδικας για αναδρομική σχέση δυναμικού προγραμματισμού και εύρεση κάτω φράγματος)
3.1) (ab+aab)*: ΚΕ σε ΜΠΑε σε ΜΠΑ σε ΝΠΑ σε Κανονική Γραμματική
3.2) Διάκριση Κανονικών και μη Κανονικών Γλωσσών
4.1) Ισότητα 2 πραγμάτων: Γραμματική Χωρίς Συμφραζόμενα και Αυτόματο Στοίβας
4.2) Αναλογία 3 πραγμάτων (όχι ΓΧΣ με 2ο λήμμα άντλησης)
5.1) Αναλογία 2 πραγμάτων (Μηχανή Turing)
5.2) Αναγωγή μη επιλυσιμότητας
6) Το At Least 6 SAT είναι NP-complete
1.1) Ιεραρχία Συναρτήσεων
1.2) Αναδρομικές Σχέσεις (Θεώρημα Κυριαρχίας, Μέθοδος Επανάληψης)
3.1) Κανονική Έκφραση σε ΜΠΑ
3.2) (10*)*: Κανονική Έκφρασε σε ΜΠΑ σε ΝΠΑ
3.3) Αναλογία: Διάκριση Κανονικών Γλωσσών και Γλωσσών Χωρίς Συμφραζόμενα
4.1) Γραμματικές Χωρίς Συμφραζόμενα
4.2) Συμμετρία στο Κέντρο (Λήμμα Αντλήσης, Γραμματική Χωρίς Συμφραζόμενα, Μη Ντετερμινιστικό Αυτόματο Στοίβας, Ντετερμινιστικό Αυτόματο Στοιβας)
5.1) Μηχανή Turing για συμμετρία στο κέντρο.
1.1) Ιεραρχία Συναρτήσεων
1.2) Αναδρομικές Σχέσεις (Θεώρημα Κυριαρχίας, Μέθοδος Επανάληψης)
2) Δυναμικός Προγραμματισμός (Ψευδοκώδικας για αναδρομική σχέση δυναμικού προγραμματισμού)
3.1) 1*10*1*: ΚΕ σε ΜΠΑε σε ΜΠΑ σε ΝΠΑ σε Κανονική Γραμματική
3.2) Διάκριση Κανονικών και μη Κανονικών Γλωσσών
4.1) Ανισότητα 2 πραγμάτων: Γραμματική Χωρίς Συμφραζόμενα και Αυτόματο Στοίβας
4.2) Ανισότητα 3 πραγμάτων (όχι ΓΧΣ με 2ο λήμμα άντλησης)
5.1) Ισότητα 2 πραγμάτων (Μηχανή Turing)
5.2) Αναγωγή μη επιλυσιμότητας
6) Το At Least 7 SAT είναι NP-complete
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)Dimitris Psounis
ΠΕΡΙΕΧΟΜΕΝΑ ΜΑΘΗΜΑΤΟΣ
Α. Θεωρία
1.Διαχείριση Μνήμης
1.1.Στατική Δέσμευση Μνήμης
1.2.Στατική Δέσμευση Μνήμης για Συνήθεις Μεταβλητές
1.3.Στατική Δέσμευση Μνήμης για Αντικείμενα
2.Δυναμική Δέσμευση Μνήμης
2.1.Δείκτες (Υπενθύμιση από C)
2.2.Οι τελεστές new και delete
2.3.Δυναμική Δέσμευση για Συνήθεις Μεταβλητές
2.4.Δυναμική Δέσμευση για Αντικείμενα
2.5.Δυναμική Δέσμευση και Κατασκευαστές
3.Κλάσεις που περιέχουν δείκτες
3.1.Παράδειγμα κλάσης που περιέχει δείκτες
3.2.…και ένα πρόβλημα (χωρίς λύση για την ώρα)
4..Δυναμική Δέσμευση Μνήμης για Πίνακες
4.1.Μονοδιάστατοι πίνακες
4.2.Παράδειγμα δέσμευσης μνήμης για μονοδιάστατους πίνακες
4.3.Διδιάστατοι πίνακες
4.4.Παράδειγμα δέσμευσης μνήμης για διδιάστατους πίνακες
B. Ασκήσεις
ΠΕΡΙΕΧΟΜΕΝΑ ΜΑΘΗΜΑΤΟΣ
Α. Θεωρία
1.Διαχείριση Μνήμης
1.1.Στατική Δέσμευση Μνήμης
1.2.Στατική Δέσμευση Μνήμης για Συνήθεις Μεταβλητές
1.3.Στατική Δέσμευση Μνήμης για Αντικείμενα
2.Δυναμική Δέσμευση Μνήμης
2.1.Δείκτες (Υπενθύμιση από C)
2.2.Οι τελεστές new και delete
2.3.Δυναμική Δέσμευση για Συνήθεις Μεταβλητές
2.4.Δυναμική Δέσμευση για Αντικείμενα
2.5.Δυναμική Δέσμευση και Κατασκευαστές
3.Κλάσεις που περιέχουν δείκτες
3.1.Παράδειγμα κλάσης που περιέχει δείκτες
3.2.…και ένα πρόβλημα (χωρίς λύση για την ώρα)
4..Δυναμική Δέσμευση Μνήμης για Πίνακες
4.1.Μονοδιάστατοι πίνακες
4.2.Παράδειγμα δέσμευσης μνήμης για μονοδιάστατους πίνακες
4.3.Διδιάστατοι πίνακες
4.4.Παράδειγμα δέσμευσης μνήμης για διδιάστατους πίνακες
B. Ασκήσεις
Α. Θεωρία
1. Κλάσεις
1.1 Γενικά
1.2 Ορισμός Κλάσης
1.3 Δημόσια (public) στοιχεία της κλάσης
1.4 Ιδιωτικά (private) στοιχεία της κλάσης
1.5 Παράδειγμα (προδιαγραφές)
2 Περισσότερα για τις κλάσεις
2.1 Ορισμός Συναρτήσεων έξω από την Κλάση
2.2 Παρουσίαση Ιδιωτικών – Δημόσιων Μέλων μιας κλάσης
2.3 Χωρισμός σε Αρχεία
3. Ειδικές Μεθόδοι Κλάσεων
3.1 Γενικά
3.2 Κατασκευαστής (constructor)
3.3 Καταστροφέας (destructor)
3.4 Ελεγκτές Πρόσβασης (accessors)
B. Ασκήσεις
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)Dimitris Psounis
Α. Θεωρία
1. Κλάσεις
1.1 Γενικά
1.2 Ορισμός Κλάσης
1.3 Δημόσια (public) στοιχεία της κλάσης
1.4 Ιδιωτικά (private) στοιχεία της κλάσης
1.5 Παράδειγμα (προδιαγραφές)
2 Περισσότερα για τις κλάσεις
2.1 Ορισμός Συναρτήσεων έξω από την Κλάση
2.2 Παρουσίαση Ιδιωτικών – Δημόσιων Μέλων μιας κλάσης
2.3 Χωρισμός σε Αρχεία
3. Ειδικές Μεθόδοι Κλάσεων
3.1 Γενικά
3.2 Κατασκευαστής (constructor)
3.3 Καταστροφέας (destructor)
3.4 Ελεγκτές Πρόσβασης (accessors)
B. Ασκήσεις
ΠΕΡΙΕΧΟΜΕΝΑ ΜΑΘΗΜΑΤΟΣ
Α. Θεωρία
1. Η Γλώσσα C++
1.1. Γενικά
1.2. Ιστορία – Εκδόσεις
1.3. Η αναγκαιότητα της C
1.4. Μεταγλωττιστές
2. Hello World!
2.1. Πηγαίος Κώδικας
2.2. Σχόλια
2.3. Βιβλιοθήκη iostream
2.4. main, block κώδικα, return
2.5 Είσοδος/Έξοδος
2.5.1. Έξοδος με την cout
2.5.2. Οδηγία using
2.5.3. Περισσότερα για την cout
2.5.4. Είσοδος με την cin
3. Στοιχεία της C
3.1. Μεταβλητές
3.2. Σταθερές
3.3. Τελεστές και η Δομή Ελέγχου
3.4. Δομές Επανάληψης
3.5. Συναρτήσεις
3.5.1. Πολυμορφισμός Συναρτήσεων
3.6. Πίνακες
3.7. Συμβολοσειρές
3.8. Δείκτες
B.Ασκήσεις
Εφαρμογή 1
Εφαρμογή 2
Εφαρμογή 3
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)Dimitris Psounis
ΠΕΡΙΕΧΟΜΕΝΑ ΜΑΘΗΜΑΤΟΣ
Α. Θεωρία
1. Η Γλώσσα C++
1.1. Γενικά
1.2. Ιστορία – Εκδόσεις
1.3. Η αναγκαιότητα της C
1.4. Μεταγλωττιστές
2. Hello World!
2.1. Πηγαίος Κώδικας
2.2. Σχόλια
2.3. Βιβλιοθήκη iostream
2.4. main, block κώδικα, return
2.5 Είσοδος/Έξοδος
2.5.1. Έξοδος με την cout
2.5.2. Οδηγία using
2.5.3. Περισσότερα για την cout
2.5.4. Είσοδος με την cin
3. Στοιχεία της C
3.1. Μεταβλητές
3.2. Σταθερές
3.3. Τελεστές και η Δομή Ελέγχου
3.4. Δομές Επανάληψης
3.5. Συναρτήσεις
3.5.1. Πολυμορφισμός Συναρτήσεων
3.6. Πίνακες
3.7. Συμβολοσειρές
3.8. Δείκτες
B.Ασκήσεις
Εφαρμογή 1
Εφαρμογή 2
Εφαρμογή 3
Αρχές Οικονομικής Θεωρίας - Το γραπτό των πανελλαδικών εξετάσεωνPanagiotis Prentzas
Αρχές Οικονομικής Θεωρίας (ΑΟΘ): Τι πρέπει να προσέξουν οι υποψήφιοι κατά τη διάρκεια των πανελλαδικών εξετάσεων στη δομή των απαντήσεών τους, αλλά και στην εμφάνιση του γραπτού τους.
Μπορείτε να δείτε και τη διαδραστική παρουσίαση στο www.study4economy.edu.gr.
2. ∆ηµήτρης Ψούνης – ΠΛΗ30, Επαναληπτικό ∆ιαγώνισµα 2 2
ΘΕΜΑ 1: (Μονάδες 10+10)
(Α) Να ταξινοµηθούν οι ακόλουθες συναρτήσεις κατά αύξουσα τάξη µεγέθους:
n
n
nn
nnf
nnf
n
nnn
nf
3log4
3
log
2
4
1
9
2
3log)(
)(log8)(
log
logloglog
)(
+=
+=
+
=
Ο συµβολισµός log παριστάνει λογάριθµο µε βάση το 2. . Η συνάρτηση f έχει την ίδια τάξη µεγέθους (ίδιο ρυθµό
αύξησης) µε την g (f ≡ g), αν f = Θ(g) (ισοδύναµα Θ(f) = Θ(g)). Η συνάρτηση f έχει µικρότερη τάξη µεγέθους
(µικρότερο ρυθµό αύξησης) από την g (f < g), αν f = o(g).
3. ∆ηµήτρης Ψούνης – ΠΛΗ30, Επαναληπτικό ∆ιαγώνισµα 2 3
(Β) Να υπολογίσετε την λύση των αναδροµικών σχέσεων:
n
n
T
n
TnT +
+
=
7
5
12
9
)()1(
4
2
18)()2( n
n
TnT +
=
2
3 2
3 4
5
5)()3( n
n
TnT +
=
2
3
5
25)()4( n
n
TnT +
=
Στη συνέχεια, να διαταχθούν οι λύσεις τους κατά αύξουσα τάξη µεγέθους.
Θεώρηµα Κυριαρχίας: Έστω η αναδροµική εξίσωση T(n) = aT(n/b) + f(n), όπου a≥1, b>1 είναι σταθερές, και
f(n) είναι µια ασυµπτωτικά θετική συνάρτηση. Τότε διακρίνονται οι ακόλουθες τρεις περιπτώσεις:
log log
( ) ( ), ( )b ba a
(1) αν f n O n για κάποια σταθερά ε>0, τότε T(n) = nεεεε−−−−
= Θ= Θ= Θ= Θ
log log
( ) ( ), ( log )b ba a
(2) αν f n n τότε T(n) = n n= Θ Θ= Θ Θ= Θ Θ= Θ Θ
log
( ) ( ), ,
( ( )).
b a
0
0
(3) αν f n n για κάποια σταθερά ε>0, και αν υπάρχει σταθερά n τέτοια
n
ώστε, για κάθε n n , af cf(n) για κάποια σταθερά c<1, τότε T(n) = f n
b
εεεε++++
= Ω= Ω= Ω= Ω
≥ ≤ Θ≥ ≤ Θ≥ ≤ Θ≥ ≤ Θ
4. ∆ηµήτρης Ψούνης – ΠΛΗ30, Επαναληπτικό ∆ιαγώνισµα 2 4
ΘΕΜΑ 2: (Μονάδες 10+5+5)
Υποθέστε ότι προσλαµβάνεστε ως διαχειριστής έργων (project manager) σε µια εταιρεία. Για κάθε έργο που σας
αναθέτει, η διοίκηση της εταιρείας θέλει να γνωρίζει τον αριθµό εργάσιµων ηµερών που απαιτούνται για την
ολοκλήρωση του ανατιθέµενου έργου.
Για να ικανοποιήσετε την απαίτηση αυτή, αναλύετε κάθε έργο σε υποέργα διάρκειας µίας εργάσιµης ηµέρας και
καθορίζετε τις αλληλοεξαρτήσεις τους (δηλ. ποιο υποέργο πρέπει να περιµένει τα αποτελέσµατα άλλων
υποέργων προκειµένου να εκτελεστεί). Υποέργα εξαρτώµενα από ήδη ολοκληρωµένα υποέργα µπορούν να
εκτελεστούν παράλληλα κατά την διάρκεια µιας µέρας. Κατόπιν, µοντελοποιείτε την εκτέλεση των υποέργων ως
ένα κατευθυνόµενο γράφηµα G = (V, E) στο οποίο κάθε κορυφή v αντιστοιχεί σε ένα υποέργο, και υπάρχει
κατευθυνόµενη ακµή (u,v) στο G αν το υποέργο v χρειάζεται τα αποτελέσµατα του υποέργου u προκειµένου να
εκτελεστεί. Η φύση των έργων είναι τέτοια, έτσι ώστε η προκύπτουσα µοντελοποίηση έχει τις εξής ιδιότητες:
(1) Το προκύπτον γράφηµα G είναι ακυκλικό, αφού δεν µπορεί να υπάρχει κυκλική αλληλεξάρτηση µεταξύ των
υποέργων. Αυτό σηµαίνει ότι οι κορυφές µπορούν να διαταχθούν τοπολογικά, δηλ. να αριθµηθούν µε τέτοιο
τρόπο v1, …, vn (υποθέτοντας ότι έχετε n υποέργα) έτσι ώστε για κάθε ακµή (vi, vj) ∈ E να ισχύει πάντοτε ότι i <
j.
(2) Κάθε κορυφή εκτός από την vn έχει τουλάχιστον µία εξερχόµενη ακµή και κάθε κορυφή εκτός από την v1 έχει
τουλάχιστον µία εισερχόµενη ακµή, δηλαδή, για κάθε κορυφή vi, µε i = 1, 2, ..., n – 1, υπάρχει τουλάχιστον µία
ακµή της µορφής (vi, vj) και για κάθε κορυφή vj, µε j = 2, 3, ..., n, υπάρχει τουλάχιστον µία ακµή της µορφής
(vk, vj).
Για να βρείτε τώρα τον αριθµό εργάσιµων ηµερών που απαιτούνται για την ολοκλήρωση του ανατιθέµενου
έργου αρκεί να υπολογίσετε το µήκος της µεγαλύτερης διαδροµής µεταξύ του πρώτου υποέργου (v1) και του
τελευταίου υποέργου (vn), και να προσθέσετε 1.
Με άλλα λόγια, καλείστε να επιλύσετε το ακόλουθο πρόβληµα: δεδοµένου ενός κατευθυνόµενου ακυκλικού
γραφήµατος µε κόστη ακµών ίσα µε 1, και στο οποίο οι κορυφές έχουν διαταχθεί τοπολογικά, κάθε κορυφή
εκτός της vn έχει βαθµό εξόδου τουλάχιστον 1 και κάθε κορυφή εκτός της v1 έχει βαθµό εισόδου τουλάχιστον 1,
βρείτε το µήκος της µεγαλύτερης διαδροµής από την κορυφή v1 στην κορυφή vn.
Θεωρήστε, για παράδειγµα, το παρακάτω κατευθυνόµενο ακυκλικό γράφηµα
όπου η µεγαλύτερη διαδροµή έχει µήκος 5 και αποτελείται από τις ακµές (v1, v2), (v2, v3), (v3, v4), (v4, v6) και (v6,
v7). Συνεπώς απαιτούνται 6 εργάσιµες µέρες, παρατηρώντας ότι η v5 µπορεί να γίνει παράλληλα µε τη v3.
(A) Σχεδιάστε έναν αλγόριθµο δυναµικού προγραµµατισµού ο οποίος, δεδοµένου ενός κατευθυνόµενου
ακυκλικού γραφήµατος µε κόστη ακµών ίσα µε 1 όπως παραπάνω, βρίσκει το µήκος της µεγαλύτερης
διαδροµής από την κορυφή v1 στην κορυφή vn (κόστος βέλτιστης λύσης). Η περιγραφή του αλγορίθµου µπορεί
να είναι σε άτυπη µορφή, αλλά πρέπει να περιλαµβάνει οπωσδήποτε την/τις αναδροµική/-κες σχέση/-εις που
διέπουν τον αλγόριθµο και συµπληρώνουν τον πίνακα δυναµικού προγραµµατισµού. ∆ώστε τον χρόνο
εκτέλεσης του αλγορίθµου σας, ο οποίος πρέπει να είναι πολυωνυµικός ως προς το n.
v1 v2 v3 v4 v5 v6 v7
5. ∆ηµήτρης Ψούνης – ΠΛΗ30, Επαναληπτικό ∆ιαγώνισµα 2 5
(Β) Εκτελέστε τον αλγόριθµό σας στο παραπάνω παράδειγµα δίνοντας τις τιµές του πίνακα δυναµικού
προγραµµατισµού σε κάθε βήµα.
(Γ) Με βάση τον αλγόριθµο που σχεδιάσατε, προτείνετε (σε άτυπη µορφή) µια µέθοδο υπολογισµού της
µεγαλύτερης διαδροµής από την κορυφή v1 στην κορυφή vn και εκτελέστε την στο παραπάνω παράδειγµα.
Υπόδειξη: ακολουθήστε οπισθόδροµα τον πίνακα δυναµικού προγραµµατισµού – δηλ. από την τελευταία προς
την αρχική του θέση – επιλέγοντας κάθε φορά να συνεχίσετε προς τα πίσω σε εκείνη τη θέση (που
περιλαµβάνεται στο δεξιό µέλος της αναδροµικής σχέσης), η οποία καθόρισε το αποτέλεσµα της τρέχουσας
θέσης του πίνακα και σηµειώνοντας παράλληλα την κορυφή που ανήκει στη βέλτιστη λύση.
6. ∆ηµήτρης Ψούνης – ΠΛΗ30, Επαναληπτικό ∆ιαγώνισµα 2 6
ΘΕΜΑ 3: (Μονάδες 10+10)
1. ∆ίδεται η κανονική έκφραση: 0*1 + 1*0
(A) ∆ώστε Μη Ντετερµινιστικό Πεπερασµένο Αυτόµατο (ΜΠΑ) της L
(Β) ∆ώστε το ισοδύναµο Ντετερµινιστικό Πεπερασµένο Αυτόµατο (ΝΠΑ) της L
7. ∆ηµήτρης Ψούνης – ΠΛΗ30, Επαναληπτικό ∆ιαγώνισµα 2 7
2. Από τις παρακάτω γλώσσες η µία είναι κανονική και η άλλη δεν είναι κανονική. Για την µη
κανονική γλώσσα χρησιµοποιήστε το λήµµα της άντλησης για να αποδείξετε ότι δεν είναι
κανονική. Για την κανονική γλώσσα δώστε την αντίστοιχη κανονική έκφραση.
A = {04
1n
04
| n ≥ 0}
B = {x∈{0,1}* | o αριθµός των µηδενικών είναι µεγαλύτερος από τον αριθµό των άσσων}
Το Λήµµα Άντλησης για Κανονικές Γλώσσες:
Έστω µια άπειρη κανονική γλώσσα. Τότε υπάρχει ένας αριθµός (µήκος άντλησης) τέτοιος ώστε κάθε ∈ µε | | να
µπορεί να γραφεί στην µορφή όπου για τις συµβολοσειρές , και ισχύει:
| |
∈ για κάθε φυσικό
8. ∆ηµήτρης Ψούνης – ΠΛΗ30, Επαναληπτικό ∆ιαγώνισµα 2 8
ΘΕΜΑ 4: (Μονάδες 5+5+5+5)
(Α) ∆ώστε µια γραµµατική χωρίς συµφραζόµενα που παράγει τη γλώσσα:
L1 = {an
ban
| n ∈ } όπου είναι το σύνολο των φυσικών αριθµών
(B) ∆ώστε µια γραµµατική χωρίς συµφραζόµενα που παράγει τη γλώσσα:
L2 = {ban
bm
| n < m}.
(Γ) ∆ώστε µια γραµµατική χωρίς συµφραζόµενα που παράγει τη γλώσσα:
L3 = {wccwR
| w ∈ {a,b}*}
(∆) ∆ώστε µια γραµµατική χωρίς συµφραζόµενα που παράγει τη γλώσσα:
L4 = {ak+1
bk+2
an+3
bn+2
| n,k≥0}.
9. ∆ηµήτρης Ψούνης – ΠΛΗ30, Επαναληπτικό ∆ιαγώνισµα 2 9
ΘΕΜΑ 5: (Μονάδες 10+10)
Να ταξινοµηθούν οι παρακάτω συναρτήσεις σε αύξουσα σειρά τάξης µεγέθους, καθώς το n τείνει στο άπειρο:
f1(n) = n2
log n + log2013
n3
f2(n) = 2n
+ n2
f3(n) = nlog n
+ n2
logn
f4(n) = n0.5
+ log0.5
2n
f5(n) = n2
log2 + 2log2
n
10. ∆ηµήτρης Ψούνης – ΠΛΗ30, Επαναληπτικό ∆ιαγώνισµα 2 10
(Β) Εχουµε να επιλέξουµε ανάµεσα στους ακόλουθους τρεις αλγορίθµους Α, Β και Γ:
Ο αλγόριθµος A λύνει προβλήµατα µεγέθους n µε το να επιλύει αναδροµικά οκτώ υποπροβλήµατα του µισού
µεγέθους καθένα, και συνδυάζοντας τις λύσεις τους σε γραµµικό χρόνο ως προς n.
Ο αλγόριθµος B λύνει προβλήµατα µεγέθους n µε το να επιλύει αναδροµικά ένα υποπρόβληµα µεγέθους n–1
και, στην συνέχεια, συνάγει την τελική λύση σε γραµµικό χρόνο.
Ο αλγόριθµος Γ λύνει προβλήµατα µεγέθους n µε το να επιλύει αναδροµικά εννιά υποπροβλήµατα µεγέθους n/3
και συνδυάζοντας τις λύσεις τους σε Ο(n2
) χρόνο.
Ποιοι είναι οι ασυµπτωτικοί χρόνοι εκτέλεσης για καθένα από τους τρεις αλγορίθµους και ποιον από αυτούς θα
διαλέγατε µε βάση την ασυµπτωτική του πολυπλοκότητα;
Θεώρηµα Κυριαρχίας: Έστω η αναδροµική εξίσωση T(n) = aT(n/b) + f(n), όπου a≥1, b>1 είναι σταθερές, και
f(n) είναι µια ασυµπτωτικά θετική συνάρτηση. Τότε διακρίνονται οι ακόλουθες τρεις περιπτώσεις:
log log
( ) ( ), ( )b ba a
(1) αν f n O n για κάποια σταθερά ε>0, τότε T(n) = nεεεε−−−−
= Θ= Θ= Θ= Θ
log log
( ) ( ), ( log )b ba a
(2) αν f n n τότε T(n) = n n= Θ Θ= Θ Θ= Θ Θ= Θ Θ
log
( ) ( ), ,
( ( )).
b a
0
0
(3) αν f n n για κάποια σταθερά ε>0, και αν υπάρχει σταθερά n τέτοια
n
ώστε, για κάθε n n , af cf(n) για κάποια σταθερά c<1, τότε T(n) = f n
b
εεεε++++
= Ω= Ω= Ω= Ω
≥ ≤ Θ≥ ≤ Θ≥ ≤ Θ≥ ≤ Θ
11. ∆ηµήτρης Ψούνης – ΠΛΗ30, Επαναληπτικό ∆ιαγώνισµα 2 11
ΘΕΜΑ 6: (Μονάδες 8+8+4)
∆ίδονται τα ντετερµινιστικά πεπερασµένα αυτόµατα Μ1 και Μ2 που αναγνωρίζουν τις γλώσσες
L1 και L2 αντίστοιχα
Μ1 Μ2
(Α) Κατασκευάστε µε τον αλγόριθµο κλειστότητας της τοµής το ΝΠΑ της τοµής των δύο
αυτοµάτων.
(Β) Απλοποιήστε το ΝΠΑ που προκύπτει.
(Γ) ∆ώστε τις κανονικές εκφράσεις των γλωσσών L1,L2 και L1∩L2