t M (w) T ( w ) O( n) = O(n 2 )

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

Download "t M (w) T ( w ) O( n) = O(n 2 )"

Transcript

1 Κεφάλαιο 9 Υπολογιστική Πολυπλοκότητα Σύνοψη Πέρα από το ερώτημα του αν για ένα πρόβλημα υπάρχει Μηχανή Turing, που το επιλύει, μας απασχολεί επίσης και το ερώτημα του αν ένα πρόβλημα είναι «πρακτικά» επιλύσιμο. Το τελευταίο αυτό ερώτημα σχετίζεται με το γεγονός ότι τα προγράμματα, που σχεδιάζουμε, έχουν συγκεκριμένες απαιτήσεις σε πόρους χρόνου και χώρου. Συχνά λοιπόν βρισκόμαστε αντιμέτωποι με προβλήματα, που είναι «πρακτικά» μη επιλύσιμα, καθώς για μεγάλες εισόδους οι απαιτήσεις τους σε πόρους αυξάνονται τόσο γρήγορα, που γίνονται μη ρεαλιστικές. Γενικά θεωρούμε ότι αν οι απαιτήσεις σε πόρους αυξάνονται με ρυθμό, που είναι πολυωνυμική συνάρτηση ως προς το μέγεθος του προβλήματος, τότε το πρόβλημα είναι «πρακτικά» επιλύσιμο. Αν οι απαιτήσεις αυξάνονται με μεγαλύτερο ρυθμό, τότε μπορεί να επιλυθούν μόνο περιπτώσεις του προβλήματος με πολύ περιορισμένο μέγεθος εισόδου, ενώ στη γενική περίπτωση το πρόβλημα είναι «πρακτικά» μη επιλύσιμο. Κάποια προβλήματα είναι εύκολα. Για παράδειγμα, κάθε κανονική γλώσσα αποφασίζεται σε χρόνο, που δίνεται ως γραμμική συνάρτηση, εκτελώντας το αντίστοιχο ΝΠΑ. Κάποια άλλα προβλήματα είναι πιο δύσκολα. Ετσι, ο καλύτερος από τους γνωστούς αλγορίθμους, που αποφασίζει τη γλώσσα με τις λύσεις στο Πρόβλημα του Πλανώδιου Πωλητή 1, χρειάζεται χρόνο, που αυξάνεται εκθετικά ως προς το μέγεθος της εισόδου. Στο κεφάλαιο αυτό θα ορίσουμε 1 Δοθέντων n πόλεων και των μεταξύ τους αποστάσεων ανά δύο, να βρεθεί η συντομότερη διαδρομή που επιστρέφει στο αρχικό σημείο, αφού έχει προηγηθεί επίσκεψη σε κάθε άλλη πόλη ακριβώς μία φορά. 261

2 262 ΚΕΦ ΑΛΑΙΟ 9. ΥΠΟΛΟΓΙΣΤΙΚΗ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ιεραρχίες κλάσεων γλωσσών με βάση το χρόνο ή το χώρο, που απαιτεί ο καλύτερος γνωστός αλγόριθμος. Προαπαιτούμενη γνώση Για την κατανόηση του κεφαλαίου θα πρέπει ο αναγνώστης να έχει αφομοιώσει τις μαθηματικές έννοιες του Παραρτήματος I, καθώς και τους ορισμούς και τα αποτελέσματα των Κεφαλαίων 6 και Υπολογιστική πολυπλοκότητα προβλημάτων Κατά την ανάλυση της υπολογιστικής πολυπλοκότητας των διαφόρων προβλημάτων, αυτά θα περιγράφονται ως γλώσσες που αποφασίζονται (βλ. Ενότητα 1.2.3). Θα περιγράψουμε την πολυπλοκότητα με συναρτήσεις, που ορίζονται μόνο για ΜΤ που αποφασίζουν. Η συγκεκριμένη ανάλυση λοιπόν περιορίζεται μόνο στις αποφασίσιμες γλώσσες, που σημαίνει ότι δεν μας ενδιαφέρει να διατυπώσουμε ισχυρισμούς σχετικά με την πολυπλοκότητα γλωσσών, όπως η H (βλ. Ενότητα 7.1) και η P CP (βλ. Ενότητα 7.4.2). Αν δεν είχαμε κάνει αυτή τη διάκριση θα μπορούσαν κάποια προβλήματα να χαρακτηρίζονταν δύσκολα ε- ξαιτίας του μεγέθους της λύσης, που όμως δε χαρακτηρίζει τους απαιτούμενους πόρους για την εύρεση της λύσης. Στην Ενότητα 1.1 αναφερθήκαμε στην έννοια της κωδικοποίησης, αλλά για την αποφασισιμότητα γλωσσών αρκούσε ο ορισμός μιας οποιασδήποτε κωδικοποίησης, χωρίς να μας ενδιαφέρει αν μία συγκεκριμένη θα μπορούσε να είναι πιο «κατάλληλη» από τις άλλες. Οι χρονικές και οι χωρικές απαιτήσεις ενός προγράμματος απόφασης περιγράφονται ως μία συνάρτηση της εισόδου του προγράμματος και κατά συνέπεια έχει σημασία το ποια κωδικοποίηση επιλέγεται, καθώς αυτή επηρεάζει το μέγεθος της εισόδου. Στα περισσότερα προβλήματα η επιλογή της «κατάλληλης» κωδικοποίησης θα είναι προφανής. Για τους φυσικούς αριθμούς θα θεωρείται κατάλληλη οποιαδήποτε κωδικοποίηση σε σύστημα αρίθμησης με βάση μεγαλύτερη ή ίση του 2. Αποδεικνύεται ότι η επιλογή της βάσης μεταβάλει το μήκος της κωδικοποίησης οποιουδήποτε αριθμού μόνο κατά ένα σταθερό παράγοντα, αλλά όπως θα δούμε παρακάτω γενικά αγνοούμε τους σταθερούς παράγοντες στις περισσότερες από τις αναλύσεις μας. Για προβλήματα γράφων θεωρούμε ως κατάλληλες δύο πιθανές κωδικοποιήσεις. Για ένα γράφο G = (V, E), με V ένα σύνολο κορυφών και E ένα σύνολο ακμών, ας υποθέσουμε ότι ονομάζουμε τις κορυφές με τους ακέραιους από το 1 έως το n. Τότε οι δύο πιθανές κωδικοποιήσεις είναι:

3 9.1. ΥΠΟΛΟΓΙΣΤΙΚΗ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΠΡΟΒΛΗΜΑΤΩΝ 263 Η αναπαράσταση του γράφου G ως μία λίστα με τις ακμές από τις οποίες αυτός ορίζεται. Κάθε κορυφή θα αναπαριστάται από τη δυαδική συμβολοσειρά, που κωδικοποιεί το όνομά της. Κάθε ακμή θα ορίζεται από ένα ζεύγις δυαδικών συμβολοσειρών, που θα ορίζουν την αρχή και το τέλος τς ακμής. Η αναπαράσταση του γράφου G από έναν πίνακα γειτνίασης. Ο πίνακας θα έχει n γραμμές και n στήλες και η τιμή στο κελί (i, j) θα είναι 1 αν στο γράφο ορίζεται ακμή από την κορυφή i στην κορυφή j, ενώ σε διαφορετική περίπτωση θα είναι 0. Αφού λοιπόν η τιμή σε κάθε κελί μπορεί να κωδικοποιηθεί από ένα μόνο δυαδικό ψηφίο, ολόκληρος ο πίνακας τελικά κωδικοποιείται από μία συμβολοσειρά μήκους n 2. Σε κάθε μία από τις παραπάνω περιπτώσεις η αναπαράσταση του γράφου G θα είναι μία πολυωνυμική συνάρτηση του αριθμού των κορυφών του. Το βασικό ερώτημα που καλούμαστε να απαντήσουμε είναι αν υπάρχει ή δεν υπάρχει αλγόριθμος, που επιλύει ένα πρόβλημα σε χρόνο, που δεν αυξάνεται περισσότερο από μία πολυωνυμική συνάρτηση ως προς το μέγεθος της εισόδου. Η απάντηση όμως σ αυτό το ερώτημα δεν αλλάζει, είτε περιγράφεται το μέγεθος του γράφου G από τον αριθμό των κορυφών του, είτε από το μήκος κάποιας από τις δύο κωδικοποιήσεις που ορίσαμε προηγουμένως. Για να μπορούμε να λέμε ότι ένα πρόγραμμα με μία συγκεκριμένη είσοδο εκτελεί p βήματα και χρησιμοποιεί m θέσεις μνήμης, θα πρέπει πρώτα να ο- ρίσουμε το τι ακριβώς προσμετράται ως βήμα εκτέλεσης ή ως θέση μνήμης. Οι απαντήσεις και για τα δύο βρίσκονται στο μοντέλο υπολογισμού που χρησιμοποιούμε, τις ΜΤ. Η μέτρηση του χρόνου θα γίνεται μέσω της καταμέτρησης των βημάτων εκτέλεσης και η μέτρηση του χώρου μέσω της καταμέτρησης των τετραγώνων της ταινίας από τα οποία έχει περάσει η κεφαλή. Βέβαια αυτό το οποίο βασικά μας ενδιαφέρει δεν είναι η υπολογιστική αποδοτικότητα των ΜΤ, αλλά αυτή των πραγματικών ηλεκτρονικών υπολογιστών. Θυμίζουμε ότι στο Θεώρημα 6.4 δείξαμε ότι ο αριθμός των βημάτων, για την προσομοίωση μιας απλής αλλά ρεαλιστικής αρχιτεκτονικής υπολογιστή σε μία ΜΤ μιας ταινίας αυξάνεται το πολύ έως τον αριθμό των βημάτων της ρεαλιστικής μηχανής εις την έκτη. Σχεδόν σε όλες τις περιπτώσεις ανάλυσης υπολογιστικής πολυπλοκότητας, στις οποίες θα αναφερθούμε τείνουμε να αγνοούμε τους πολυωνυμικούς παράγοντες και αυτό μας δίνει την ευχέρεια να περιγράφουμε τα προγράμματα με ένα πιο συμβατικό προγραμματιστικό στυλ (όπως στην Ε- νότητα 6.4) και να καταμετρούμε τον αριθμό των βημάτων εκτέλεσης με τον προφανή τρόπο. Δοθείσης μιας συγκεκριμένης ΜΤ M και μιας εισόδου w, επιθυμούμε να καθορίσουμε ακριβώς τον αριθμό βημάτων που εκτελεί η M όταν αρχίζει τον

4 264 ΚΕΦ ΑΛΑΙΟ 9. ΥΠΟΛΟΓΙΣΤΙΚΗ ΠΟΛΥΠΛΟΚΟΤΗΤΑ υπολογισμό με τη συμβολοσειρά w στην ταινία. Η προσέγγιση που θα ακολουθήσουμε θα είναι αρκετά γενική, ώστε να δίνει απαντήσεις για μία οποιαδήποτε συμβολοσειρά εισόδου στην ταινία. Εστω M μία ΜΤ και έστω w μία συμβολοσειρά εισόδου της M. Ορίζουμε ως χρόνο εκτέλεσης t M (w) της M με είσοδο w ως: t M (w) := ο αριθμός των βημάτων που εκτελεί η M με είσοδο w Ως συνήθως, συμβολίζουμε με w τον αριθμό των συμβόλων της συμβολοσειράς w. Συμβολίζουμε επίσης με N 0 το σύνολο των μη αρνητικών ακεραίων. Ορισμός 9.1 (Συνάρτηση χρόνου εκτέλεσης T ) Εστω Σ ένα αλφάβητο, T : N 0 N 0 μία συνάρτηση, L Σ μία αποφασίσιμη γλώσσα και F : Σ Σ μία υπολογίσιμη συνάρτηση. Λέμε ότι μία ΜΤ M αποφασίζει τη γλώσσα L σε χρόνο T, αν t M (w) T ( w ) για όλες τις συμβολοσειρές w του Σ. Λέμε ότι μία ΜΤ M υπολογίζει τη συνάρτηση F σε χρόνο T, αν t M (w) T ( w ) για όλες τις συμβολοσειρές w του Σ. Με άλλα λόγια, η «συνάρτηση χρόνου εκτέλεσης» T είναι μία συνάρτηση ως προς το μήκος της εισόδου, που συνήθως το συμβολίζουμε με n. Για οποιοδήποτε n, η τιμή T (n) είναι ένα άνω όριο του χρόνου εκτέλεσης της ΜΤ M για οποιαδήποτε συμβολοσειρά εισόδου μήκους n. Ας αναφερθούμε στη ΜΤ του Παραδείγματος 6.1, που αποφασίζει τη γλώσσα των καρκινικών συμβολοσειρών άρτιου μήκους. Η κεφαλή αυτής της ΜΤ μετακινείται στην ταινία από τα αριστερά προς τα δεξιά, στη συνέχεια επιστρέφει πάλι στα αριστερά, μετά μετακινείται ξανά στα δεξιά κ.ο.κ. Κάθε φορά που η κεφαλή προσεγγίζει το αριστερότερο ή το δεξιότερο σύμβολο στη συνέχεια το αντικαθιστά με. Η συνάρτηση χρόνου εκτέλεσης αυτής της ΜΤ για οποιαδήποτε συμβολοσειρά μήκους n είναι O( n) = O(n 2 ) Στο ερώτημα του αν θα μπορούσαμε να υιοθετήσουμε ως μοντέλο υπολογισμού για τον ορισμό της συνάρτησης χρόνου εκτέλεσης μία ΜΤ πολλών ταινιών η απάντηση σχετίζεται με το αποτέλεσμα του Θεωρήματος 6.1: ο αριθμός των βημάτων που απαιτεί η εκτέλεση μιας ΜΤ μίας ταινίας αυξάνεται το πολύ έως το τετράγωνο του αριθμού των βημάτων, που απαιτούνται για την εκτέλεση μιας ΜΤ πολλών ταινιών.

5 9.2. Η ΚΛΆΣΗ ΠΟΛΥΠΛΟΚ ΟΤΗΤΑΣ P Η κλάση πολυπλοκότητας P Ορισμός 9.2 (Πολυωνυμικός χρόνος εκτέλεσης) Λέμε ότι μία ΜΤ M αποφασίζει τη γλώσσα L (αντίστοιχα υπολογίζει τη συνάρτηση F ) σε πολυωνυμικό χρόνο, αν υπάρχει ένας ακέραιος k 1, τέτοιος ώστε ο χρόνος εκτέλεσης της M είναι O(n k ), για οποιαδήποτε συμβολοσειρά μήκους n. Από την Ενότητα 9.1 είναι σαφές ότι αυτή η έννοια του «πολυωνυμικού χρόνου εκτέλεσης» δεν επηρεάζεται από το αν το μοντέλο υπολογισμού στο οποίο αναφερόμαστε είναι μία ΜΤ (μιας ή πολλών ταινιών) ή μία ρεαλιστική αρχιτεκτονική ηλεκτρονικού υπολογιστή. Ετσι, αν μία γλώσσα (ή μία συνάρτηση) αποφασίζεται (αντίστοιχα υπολογίζεται) σε πολυωνυμικό χρόνο σε κάποιο α- πό τα προαναφερόμενα μοντέλα υπολογισμού, τότε αποφασίζεται (αντίστοιχα υπολογίζεται) επίσης σε πολυωνυμικό χρόνο και σε όλα τα άλλα. Είμαστε λοιπόν σε θέση να ορίσουμε τις εξής δύο κλάσεις πολυπλοκότητας: και P = {L : η γλώσσα L είναι αποφασίσιμη σε πολυωνυμικό χρόνο} F P = {F : η συνάρτηση F είναι υπολογίσιμη σε πολυωνυμικό χρόνο} Παράδειγμα 9.1 (Γλώσσες στην κλάση P ) Μία κανονική γλώσσα ανήκει στην P, επειδή μπορεί να αποφασιστεί σε χρόνο που είναι γραμμική συνάρτηση του μήκους της εισόδου. Δοθείσας μιας κανονικής γλώσσας L υπάρχει κάποιο ΝΠΑ M, που κάνει δεκτή την L. Από το M μπορούμε να κατασκευάσουμε μία ντεντερμινιστική ΜΤ M, που θα προσομοιώνει τα βήματα του M μετακινώντας την κεφαλή ανάγνωσης/εγγραφής σε κάθε βήμα ένα τετράγωνο προς τα δεξιά χωρίς να αλλάζει το περιεχόμενο της ταινίας. Οταν η M διαβάσει, τότε τερματίζει και αν εκείνη τη στιγμή βρίσκεται σε κατάσταση αποδοχής, τότε αποδέχεται τη συμβολοσειρά εισόδου, ενώ σε διαφορετική περίπτωση την απορρίπτει. Παραλείπουμε τις λεπτομέρειες της κατασκευής της M, που θα αποφασίζει την L σε χρόνο που είναι γραμμική συνάρτηση. Κάθε γλώσσα χωρίς συμφραζόμενα ανήκει στην κλάση P, αφού υπάρχουν αλγόριθμοι συντακτικής ανάλυσης, που εκτελούνται σε μία αρχιτεκτονική

6 266 ΚΕΦ ΑΛΑΙΟ 9. ΥΠΟΛΟΓΙΣΤΙΚΗ ΠΟΛΥΠΛΟΚΟΤΗΤΑ υπολογιστή σε χρόνο O(n 3 ) και επομένως ΜΤ μιας ταινίας στις οποίες εκτελούνται σε χρόνο O(n 18 ). Ενας τέτοιος αλγόριθμος συντακτικής ανάλυσης με χρόνο εκτέλεσης O(n 3 ) σε συμβατικό υπολογιστή είναι ο αλγόριθμος των Cocke, Kasami και Younger. Μερικές γλώσσες που δεν είναι χωρίς συμφραζόμενα ανήκουν επίσης στην κλάση P. Ενα τέτοιο παράδειγμα είναι η γλώσσα {a n b n c n : n 0} για την οποία προτείναμε μία ΜΤ στην Ενότητα 6.1. Είναι εύκολο να δειχθεί ότι η συγκεκριμένη γλώσσα αποφασίζεται σε χρόνο O(n 2 ). Ενας γράφος είναι συνδεδεμένος αν και μόνο αν υπάρχει ένα μονοπάτι από κάθε κορυφή προς κάθε άλλη κορυφή. Ας περιοριστούμε στην περίπτωση των μη κατευθυνόμενων γράφων. Η γλώσσα L con = {< G >: G ένας μη κατευθυνόμενος γράφος και G είναι συνδεδεμένος} ανήκει στην κλάση P. Ας εξετάσουμε τον παρακάτω αλγόριθμο, που θα μπορούσαμε ασφαλώς να το γράψουμε σε μία γλώσσα προγραμματισμού υψηλού επιπέδου, ώστε να είναι εκτελέσιμος σε μία ρεαλιστική αρχιτεκτονική ηλεκτρονικού υπολογιστή σαν αυτή που περιγράψαμε στην Ενότητα 6.4. connected(< G : γράφος με κορυφές V και ακμές E >) = 1. Αρχικά ορίζουμε όλες οι κορυφές να μην έχουν σημάδι. 2. Θέσε ένα σημάδι στην κορυφή Η λίστα L περιέχει τις σημαδεμένες κορυφές για τις οποίες δεν έχουν εξεταστεί ακόμη οι κορυφές με τις οποίες συνδέονται. Αρχικοποιήσε την L ώστε να περιέχει μόνο την κορυφή Αρχικοποιήσε τον μετρητή mvc των σημαδεμένων κορυφών με την τιμή Μέχρι να αδειάσει η λίστα L εκτέλεσε: 5.1 Αφαίρεσε το πρώτο στοιχείο της L, που ας το ονομάσουμε cv. 5.2 Για κάθε ακμή e που συνδέει την κορυφή cv εκτέλεσε: Εστω nv η κορυφή του άλλου άκρου της e. Αν η nv δεν έχει ήδη σημαδευτεί εκτέλεσε: Σημάδεψε την nv. Πρόσθεσε την nv στην L. Αύξησε τον μετρητή mvc κατά 1.

7 9.2. Η ΚΛΑΣΗ ΓΛΩΣΣΩΝ P Αν mvc = V ο γράφος G γίνεται δεκτός, αλλιώς απορρίπτεται. Ο αλγόριθμος connected σημαδεύει και καταμετρά τις κορυφές, που είναι προσεγγίσιμες από την κορυφή 1. Αφού ο γράφος G είναι μη κατευθυνόμενος, αν υπάρχει ένα μονοπάτι από την κορυφή 1 σε κάποια κορυφή n, τότε θα υπάρχει και ένα μονοπάτι από την n στην 1. Κατά συνέπεια, αν υπάρχει ένα μονοπάτι από την κορυφή 1 προς κάθε άλλη κορυφή, τότε θα υπάρχει ένα μονοπάτι από κάθε άλλη κορυφή πίσω στην κορυφή 1 και από κει προς κάθε άλλη κορυφή. Άρα ο γράφος G θα είναι συνδεδεμένος. Αν από την άλλη μεριά υπάρχει κάποια κορυφή, που δεν είναι προσεγγίσιμη από την κορυφή 1, τότε ο G δεν είναι συνδεδεμένος. Απομένει να δείξουμε ότι ο χρόνος εκτέλεσης του connected είναι μία πολυωνυμική συνάρτηση ως προς το < G > : Για το βήμα 1 ο χρόνος εκτέλεσης είναι O( V ). Για τα βήματα 2, 3 και 4 χρειάζεται σε όλες τις περιπτώσεις μία σταθερή ποσότητα χρόνου. Ο εξωτερικός βρόγχος του βήματος 5 μπορεί να εκτελεστεί το πολύ V φορές, αφού καμία κορυφή δε μπορεί να μπει στη λίστα L περισσότερες από μία φορές. Το βήμα 6 εκτελείται σε σταθερή ποσότητα χρόνου. Το βήμα 5.1 εκτελείται σε σταθερή ποσότητα χρόνου. Ο βρόγχος στο βήμα 5.2 μπορεί να εκτελεστεί το πολύ E φορές και για κάθε φορά απαιτείται το πολύ O( V ) χρόνος (εξαρτάται από το πώς γίνεται η αναπαράσταση και το σημάδεμα των κορυφών). Ο συνολικός χρόνος που απαιτείται για την εκτέλεση του αλγορίθμου connected είναι V O( E ) O( V ) = O( V 2 E ). Παρατηρούμε όμως ότι E V 2 και έτσι ο συνολικός χρόνος που απαιτείται για την εκτέλεση του αλγορίθμου είναι O( V 4 ). Παράδειγμα 9.2 (Συναρτήσεις στην κλάση F P ) Οι παρακάτω συναρτήσεις ανήκουν στην κλάση F P : F 1 : N 0 N 0, F 1 (x) := x + 1,

8 268 ΚΕΦ ΑΛΑΙΟ 9. ΥΠΟΛΟΓΙΣΤΙΚΗ ΠΟΛΥΠΛΟΚΟΤΗΤΑ F 2 : N 2 0 N 0, F 2 (x, y) := x + y, F 2 : N 2 0 N 0, F 3 (x, y) := xy. 9.3 Η κλάση πολυπλοκότητας N P Πριν δώσουμε τον ορισμό της κλάσης πολυπλοκότητας N P, ας εξετάσουμε κάποιες χαρακτηριστικές περιπτώσεις προβλημάτων. Παράδειγμα 9.3 (Κύκλος Hamilton σε γράφο) Εστω ότι G είναι ένας γράφος με σύνολο κορυφών το V = {1, 2,..., m} και σύνολο ακμών E. Ενας κύκλος Hamilton είναι ένας κύκλος στο γράφο G, που διέρχεται από κάθε κορυφή ακριβώς μία φορά. Τυπικά ορίζεται ως μία ακολουθία κορυφών v 1, v 2,..., v m τέτοια ώστε: 1. {v 1, v 2,..., v m } = V και 2. {(v 1, v 2 ), (v 2, v 3 ),..., (v m 1, v m ), (v m, v 1 )} E Ορίζουμε λοιπόν τη γλώσσα: L HC = {< G >: ο γράφος G περιέχει ένα κύκλο Hamilton } Δεν είναι γνωστό αν η γλώσσα L HC ανήκει στην κλάση P ή όχι. Παράδειγμα 9.4 ( Άθροισμα υποσυνόλου) Η γλώσσα του αθροίσματος υποσυνόλου ορίζεται ως εξής: L SOS = {< a 1, a 2,..., a m, b >: m, a 1, a 2,..., a m, b N 0 και I {1, 2,..., m}, i I a i = b} Γι αυτή την περίπτωση γλώσσας επίσης, δεν υπάρχει γνωστός αλγόριθμος πολυωνυμικού χρόνου, δηλαδή δεν είναι γνωστό αν η γλώσσα L SOS ανήκει στην κλάση P.

9 9.3. Η ΚΛΑΣΗ ΓΛΩΣΣΩΝ N P 269 Παράδειγμα 9.5 (Μη πρώτοι αριθμοί) Ενας ακέραιος x 2 είναι πρώτος, αν δεν υπάρχουν a, b N τέτοια ώστε a x, b x και x = ab. Επομένως, η γλώσσα όλων των μη πρώτων, που είναι μεγαλύτεροι ή ίσοι του δύο είναι: L NP rim = {< x >: x 2 και ο x δεν είναι ένας πρώτος αριθμός} Δεν είναι καθόλου προφανές αν η γλώσσα L NP rim ανήκει στην κλάση P. Στην πραγματικότητα, μόλις το 2002 κατορθώθηκε να δειχθεί ότι η L NP rim ανήκει στην P. Το κοινό χαρακτηριστικό των τριών γλωσσών, που περιγράψαμε στα παραδείγματα 9.3, 9.4 και 9.6 είναι ότι αν έχουμε μία «λύση» για οποιαδήποτε δοθείσα είσοδο, τότε μπορούμε σε πολυωνυμικό χρόνο να επαληθεύσουμε αν αυτή η «λύση» είναι ή δεν είναι μία ορθή λύση. Επιπλέον, για οποιαδήποτε είσοδο σε καθένα από τα τρία προβλήματα, υπάρχει μία «λύση», που το μήκος της δίνεται ως πολυωνυμική συνάρτηση του μήκους της εισόδου. Για το πρόβλημα του κύκλου Hamilton, οποιαδήποτε λύση δίνεται ως μία ακολουθία κορυφών v 1, v 2,..., v m. Αυτή η ακολουθία είναι ορθή αν και μόνο αν: 1. {v 1, v 2,..., v m } = {1, 2,..., m} και 2. {(v 1, v 2 ), (v 2, v 3 ),..., (v m 1, v m ), (v m, v 1 )} E Αυτές οι δύο συνθήκες μπορούν να επαληθευτούν σε πολυωνυμικό χρόνο. Ε- πιπλέον, το μήκος της λύσης δίνεται ως πολυωνυμική συνάρτηση του μήκους του γράφου της εισόδου. Ας δούμε τώρα το πρόβλημα του αθροίσματος υποσυνόλου. Μία οποιαδήποτε λύση δίνεται ως μία ακολουθία c 1, c 2,..., c m. Μία τέτοια λύση θα είναι ορθή αν και μόνο αν: 1. c i {0, 1} για όλα τα i με 1 i m και 2. m i=1 c ia i = b. Επομένως, το σύνολο I {1, 2,..., m} στον ορισμό της L SOS είναι το σύνολο των δεικτών i για τους οποίους c i = 1. Σ αυτή την περίπτωση επίσης οι δύο προαναφερόμενες συνθήκες μπορούν να επαληθευτούν σε πολυωνυμικό χρόνο και το μήκος της λύσης είναι πολυωνυμική συνάρτηση του μήκους της εισόδου. Τέλος, ας εξετάσουμε τη γλώσσα L NP rim. Εστω x 2 ένας ακέραιος. Οι ακέραιοι a και b σχηματίζουν μία «λύση» για το x αν και μόνο αν:

10 270 ΚΕΦ ΑΛΑΙΟ 9. ΥΠΟΛΟΓΙΣΤΙΚΗ ΠΟΛΥΠΛΟΚΟΤΗΤΑ 1. 2 a < x, 2. 2 b < x και 3. x = ab Είναι ξεκάθαρο ότι οι τρεις αυτές συνθήκες μπορούν να επαληθευτούν σε πολυωνυμικό χρόνο. Επιπλέον, το μήκος αυτής της λύσης, δηλαδή ο συνολικός αριθμός των bits στη δυαδική αναπαράσταση των a και b είναι πολυωνυμική συνάρτηση του αριθμού των bits στη δυαδική αναπαράσταση του x. Οι γλώσσες, που έχουν την ιδιότητα ότι η ορθότητα μιας προτεινόμενης «λύσης» μπορεί να επαληθευτεί σε πολυωνυμικό χρόνο, ανήκουν στην κλάση πολυπλοκότητας N P : Ορισμός 9.3 (Κλάση πολυπλοκότητας N P ) Μία γλώσσα L ανήκει στην κλάση NP, αν υπάρχει ένα πολυώνυμο p και μία γλώσσα N P τέτοια ώστε για κάθε συμβολοσειρά w, w L s : s p( w ) και < w, s > N Δηλαδή, μία γλώσσα L ανήκει στην κλάση NP, αν για κάθε συμβολοσειρά w, w N αν και μόνο αν ικανοποιούνται οι εξής δύο συνθήκες: 1. Υπάρχει μία «λύση» s, που το μήκος της s είναι πολυωνυμική συνάρτηση του μήκους της w (αυτό γράφεται ως s p( w ), όπου p είναι ένα πολυώνυμο). 2. Μπορούμε να επαληθεύσουμε σε πολυωνυμικό χρόνο αν η s είναι μία ορθή «λύση» για την w (αυτό γράφεται ως < w, s > N και N P ). Επομένως, η γλώσσα N μπορεί να θεωρηθεί ότι είναι η «γλώσσα επαλήθευσης»: N = {< w, s >: η s είναι μία ορθή «λύση» για την w} Εχουμε ήδη δώσει άτυπες αποδείξεις για το γεγονός ότι οι γλώσσες L HC, L SOS, L NP rim ανήκουν όλες στην κλάση NP. Στη συνέχεια θα δώσουμε μία τυπική απόδειξη για το ότι L NP rim NP. Για να αποδειχθεί αυτός ο ισχυρισμός θα πρέπει να ορίσουμε ένα πολυώνυμο p και τη γλώσσα N P. Αρχικά παρατηρούμε ότι: L NP rim = {< x >: υπάρχουν a και b στο N τέτοια ώστε

11 9.3. Η ΚΛΑΣΗ ΓΛΩΣΣΩΝ N P a < x, 2 b < x και x = ab} (9.1) Ορίζουμε το πολυώνυμο p ως p(n) := n + 2 και τη γλώσσα N ως N = {< x, a, b >: x 2, 2 a < x, 2 b < x και x = ab} Είναι προφανές ότι N P : για κάθε τρεις θετικούς ακέραιους μπορούμε να επαληθεύσουμε σε πολυωνυμικό χρόνο αν < x, a, b > N ή όχι. Για να γίνει αυτό, πρέπει μόνο να ελεγχθεί αν ισχύουν οι σχέσεις x 2, 2 a < x, 2 b < x και x = ab ή όχι. Αν ισχύουν ταυτόχρονα οι τέσσερις αυτές συνθήκες, τότε < x, a, b > N. Αν τουλάχιστο μία απ αυτές δεν ικανοποιείται, τότε < x, a, b >/ N. Απομένει τώρα να δείξουμε ότι για όλα τα x N: < x > L NP rim a, b : < a, b > < x > + 2 και < x, a, b > N (9.2) όπου < x > συμβολίζει τον αριθμό των bits στη δυαδική αναπαράσταση του x και < a, b > = < a > + < b >. Εστω ότι x L NP rim. Από την (9.1) προκύπτει ότι υπάρχουν a και b στο N, τέτοια ώστε 2 a < x, 2 b < x και x = ab. Αφού x = ab 2 2 = 4 2, προκύπτει ότι < x, a, b > N. Απομένει να δείξουμε ότι: < a, b > < x > + 2 Η δυαδική αναπαράσταση του x περιέχει log x + 1 bits, δηλαδή < x > = log x + 1. Κατά συνέπεια έχουμε: < a, b > = < a > + < b > = ( log a + 1) + ( log b + 1) log a + log b + 2 = log ab + 2 = log x + 2 log x + 3 = < x > + 2 Ετσι, έχει αποδειχθεί η μία κατεύθυνση της (9.2). Για να αποδείξουμε την άλλη κατεύθυνση, υποθέτουμε ότι υπάρχουν θετικοί ακέραιοι a και b τέτοιοι ώστε < a, b > < x > + 2 και < x, a, b > N. Τότε, προκύπτει άμεσα από την (9.1) και από τον ορισμό της γλώσσας N ότι

12 272 ΚΕΦ ΑΛΑΙΟ 9. ΥΠΟΛΟΓΙΣΤΙΚΗ ΠΟΛΥΠΛΟΚΟΤΗΤΑ x L NP rim και έτσι έχει αποδειχθεί και η άλλη κατεύθυνση της (9.2). Μ αυτό το αποτέλεσμα ολοκληρώνεται η απόδειξη του ισχυρισμού ότι L NP rim NP Παράδειγμα 9.6 (Ικανοποιησιμότητα λογικού τύπου με 3 το πολύ ατομικές προτάσεις - 3SAT ) Στο παράδειγμα αυτό αναφερόμαστε σε Boolean λογικούς τύπους φ με μεταβλητές x 1, x 2,..., x m, που είναι της μορφής: όπου κάθε C i, 1 i k είναι της μορφής φ = C 1 C 2... C k (9.3) C i = l i 1 li 2 li 3 Κάθε la i μπορεί να είναι μία μεταβλητή ή η άρνηση μιας μεταβλητής. Ενα παράδειγμα τέτοιου τύπου είναι το εξής: φ = (x 1 x 1 x 2 ) (x 3 x 2 x 4 ) ( x 1 x 3 x 4 ) Ενας τύπος φ της μορφής (9.3) λέμε ότι είναι ικανοποιήσιμος, αν υπάρχει μία τιμή αληθείας στο {0, 1} για κάθε μία από τις μεταβλητές x 1, x 2,..., x m, τέτοια ώστε ο τύπος φ να είναι αληθής. Σε ότι αφορά τον τύπο του παραδείγματος, αυτός είναι ικανοποιήσιμος: αν θεωρήσουμε x 1 = 0 και x 2 = 1 και δώσουμε στις x 3 και x 4 μία οποιαδήποτε τιμή, τότε φ = (0 1 0) (x 3 1 x 4 ) (1 x 3 x 4 ) = 1 Ορίζουμε την παρακάτω γλώσσα: L 3SAT = {< φ >: ο φ είναι της μορφής (9.3) και είναι ικανοποιήσιμος} Μπορεί να αποδειχθεί ότι L 3SAT NP Διαισθητικά, είναι ξεκάθαρο ότι P NP, επειδή μία γλώσσα: ανήκει στην P, αν για κάθε συμβολοσειρά w είναι δυνατό να υπολογιστεί μία «λύση» s σε πολυωνυμικό χρόνο,

13 9.3. Η ΚΛΑΣΗ ΓΛΩΣΣΩΝ N P 273 ανήκει στην NP, αν για κάθε συμβολοσειρά w και για οποιαδήποτε δοθείσα «λύση» s, μπορεί να επαληθευτεί σε πολυωνυμικό χρόνο αν η s είναι μία ορθή λύση ή όχι για τη w. Στη δεύτερη περίπτωση δε χρειάζεται να υπολογιστεί η λύση s, αλλά μόνο να επαληθευτεί. Θεώρημα 9.1 (Κλάσεις πολυπλοκότητας P και N P ) Ισχύει ότι P NP Απόδειξη: Εστω μία γλώσσα L P. Θα αποδείξουμε ότι L NP. Ο- ρίζουμε το πολυώνυμο p ως p(n) := 0 για όλα τα n N 0 και τη γλώσσα N = {< w, ɛ >: w L} Αφού L P, η γλώσσα N ανήκει επίσης στην κλάση P. Εύκολα διαπιστώνουμε ότι w L s : s p( w ) = 0 και < w, s > N Ετσι ολοκληρώνεται η απόδειξη. Ας επιστρέψουμε τώρα στο πρόβλημα του αθροίσματος υποσυνόλου (Παράδειγμα 9.4), που είναι εύκολο να επαληθευτεί, αλλά δύσκολο να υπολογιστεί μια λύση. Δοθέντος ενός συνόλου ακεραίων, υπάρχει ένα μη κενό υποσύνολο αυτών που άθροισμα σε 0; Για παράδειγμα, υπάρχει ένα υποσύνολο του συνόλου { 2, 3, 15, 14, 7, 10} που το άθροισμα των στοιχείων του είναι 0; Η απάντηση είναι καταφατική, επειδή εύκολα επαληθεύεται με τρεις προσθέσεις ότι τα στοιχεία του υποσυνόλου { 2, 3, 10, 15} αθροίζουν σε 0. Δε γνωρίζουμε αν υπάρχει αλγόριθμος, που να βρίσκει ένα τέτοιο υποσύνολο σε πολυωνυμικό χρόνο, αλλά αν ισχύει ότι P = NP, τότε θα ξέραμε ότι υπάρχει ένας τέτοιος αλγόριθμος. Επομένως, αυτό το πρόβλημα ανήκει στην κλάση N P (εύκολα επαληθεύσιμο), αλλά όχι απαραίτητα στην κλάση P (εύκολα επιλύσιμο). Μία απάντηση στο ερώτημα αν ισχύει ότι P = NP θα μας διαφώτιζε στο αν τα προβλήματα που μπορούν να επαληθευτούν σε πολυωνυμικό χρόνο, όπως το πρόβλημα του αθροίσματος υποσυνόλου, μπορούν επίσης και να επιλυθούν σε πολυωνυμικό χρόνο. Αν τελικά προέκυπτε ότι P NP, αυτό θα σήμαινε ότι υπάρχουν προβλήματα στην κλάση NP που είναι πιο δύσκολο να υπολογιστεί η λύση τους, από το να επαληθευτεί: δε θα μπορούσαν να επιλυθούν σε

14 274 ΚΕΦ ΑΛΑΙΟ 9. ΥΠΟΛΟΓΙΣΤΙΚΗ ΠΟΛΥΠΛΟΚΟΤΗΤΑ πολυωνυμικό χρόνο, αλλά η λύση θα μπορούσε να επαληθευτεί σε πολυωνυμικό χρόνο. Ο ακριβής ορισμός του προβλήματος της σχέσης μεταξύ των κλάσεων P και NP δόθηκε το 1971 από τον Stephen Cook [1] και το πρόβλημα θεωρείται σήμερα από πολλούς ως το πιο σημαντικό ανοικτό πρόβλημα στο χώρο [2]. Είναι ένα από τα επτά προβλήματα για το Millennium Prize, που επιλέχθηκαν από το Clay Mathematics Institute για το οποίο η πρώτη ορθή λύση αποφέρει βραβείο αξίας δολαρίων. Οι περισσότεροι επιστήμονες πιστεύουν ότι πράγματι η κλάση P είναι ένα γνήσιο υποσύνολο της NP. Μία απόδειξη όμως, πέρα από τη σημαντικότητα της για τη Θεωρία Υπολογισμού, θα είχε προφανείς επιπτώσεις στα μαθηματικά, στην κρυπτογραφία, στην αλγοριθμκή, στην τεχνητή νοημοσύνη, στη θεωρία παιγνίων, στην επεξεργασία πολυμέσων, στη φιλοσοφία, στην οικονομική επιστήμη και σε πολλούς άλλους χώρους. Εστω τώρα L μία γλώσσα στην NP. Θα υπάρχει τότε ένα πολυώνυμο p και μία γλώσσα N P, τέτοια ώστε για όλες τις συμβολοσειρές w, w L s : s p( w ) και < w, s > N (9.4) Πώς αποφασίζεται αν μία οποιαδήποτε δοθείσα συμβολοσειρά w ανήκει στη γλώσσα L; Αν μπορούμε να βρούμε μία συμβολοσειρά s, που ικανοποιεί το δεξί μέρος της (9.4), τότε γνωρίζουμε ότι w L. Αν από την άλλη μεριά, δεν υπάρχει μία τέτοια συμβολοσειρά s, τότε w / L. Πόσος χρόνος χρειάζεται για να αποφασιστεί αν υπάρχει μία τέτοια συμβολοσειρά s ή όχι; Για παράδειγμα, έστω ότι όπου L αναφερόμαστε στη γλώσσα L NP rim και έστω x N. Ο παρακάτω αλγόριθμος αποφασίζει αν < x > L NP rim ή όχι. NonP rime(< x >: x N) = 1. Αν x = 0 ή x = 1 ή x = 2 τότε ο x απορρίπτεται 2. διαφορετικά: 2.1 a := Οσο a < x εκτέλεσε Αν x mod a = 0 τότε ο x γίνεται δεκτός διαφορετικά a := a Ο x απορρίπτεται. Είναι σαφές ότι ο αλγόριθμος NonP rime είναι σωστός. Εστω n το μήκος της δυαδικής αναπαράστασης του x, δηλαδή n = log x + 1. Αν x > 2 και ο x είναι ένας πρώτος αριθμός, τότε στον επαναληπτικό βρόγχο του βήματος 2.2 θα

15 9.3. Η ΚΛΑΣΗ ΓΛΩΣΣΩΝ N P 275 έχουμε συνολικά x 2 επαναλήψεις. Γι αυτό, αφού n 1 = log x log x, ο χρόνος εκτέλεσης αυτού του αλγορίθμου είναι τουλάχιστο x 2 2 n 1 2 δηλαδή είναι τουλάχιστο μία εκθετική συνάρτηση του μήκους της εισόδου. Θεώρημα 9.2 (Κλάσεις πολυπλοκότητας N P και EXP ) Ορίζουμε την κλάση πολυπλοκότητας EXP ως EXP = {L :υπάρχει ένα πολυώνυμο p, τέτοιο ώστε η L να μπορεί να Αποδεικνύεται ότι αποφασιστεί σε χρόνο 2 p(n) } NP EXP Απόδειξη: Εστω L μία οποιαδήποτε γλώσσα στην NP. Εστω p ένα πολυώνυμο και N P μία γλώσσα, τέτοια ώστε για όλες τις συμβολοσειρές w, w L s : s p( w ) και < w, s > N (9.5) Ο παρακάτω αλγόριθμος αποφασίζει, για οποιαδήποτε δοθείσα είσοδο w αν w L ή όχι. Αυτό γίνεται εξετάζοντας όλες τις πιθανές συμβολοσειρές s για τις οποίες s p( w ): Για όλα τα s με s p( w ): αν < w, s > N, τότε η w αποδεκτή Η w απορρίπτεται. Η ορθότητα του αλγορίθμου είναι συνέπεια της (9.5). Για να βρούμε το χρόνο εκτέλεσής του υποθέτουμε ότι οι w και s αναπαριστώνται από δυαδικές συμβολοσειρές. Εστω ότι το μήκος της εισόδου είναι n, δηλαδή n = w. Μας ενδιαφέρει να βρούμε πόσες δυαδικές συμβολοσειρές s υπάρχουν με μήκος το πολύ p( w ). Κάθε τέτοια s μπορεί να περιγραφεί από μία ακολουθία μήκους p( w ) = p(n) αποτελούμενη από 0, 1 και το σύμβολο του κενού. Επομένως, υπάρχουν το πολύ 3 p(n) δυαδικές συμβολοσειρές s με s p(n) και γι αυτό ο επαναληπτικός βρόγχος του αλγορίθμου εκτελείται το πολύ 3 p(n) φορές.

16 276 ΚΕΦ ΑΛΑΙΟ 9. ΥΠΟΛΟΓΙΣΤΙΚΗ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Αφού N P, υπάρχει ένας αλγόριθμος και ένα πολυώνυμο q, τέτοιο ώστε αυτός ο αλγόριθμος, όταν εκτελείται για τη συμβολοσειρά εισόδου z να αποφασίζει σε χρόνο q( z ) αν z N ή όχι. Αυτή η είσοδος z έχει τη μορφή < w, s > και έτσι έχουμε: z = w + s w + p( w ) = n + p(n) Προκύπτει λοιπόν ότι ο συνολικός χρόνος εκτέλεσης του αλγόριθμου που α- ποφασίζει αν w L φράσσεται άνω από την έκφραση: 3 p(n) q(n + p(n)) 2 2p(n) q(n + p(n)) 2 2p(n) 2 q(n+p(n)) = 2 p (n) όπου p είναι το πολυώνυμο, που ορίζεται ως p = 2p(n) + q(n + p(n)). Ετσι ολοκληρώνεται η απόδειξη του θεωρήματος. Σήμερα δεν είναι ακόμη γνωστό αν η κλάση NP είναι γνήσιο υποσύνολο της EXP. Από τις P NP και NP EXP προκύπτει ότι P EXP. Εχει αποδειχθεί ότι η κλάση P είναι ένα γνήσιο υποσύνολο της EXP, δηλαδή υ- πάρχουν γλώσσες που μπορούν να αποφασιστούν σε εκθετικό χρόνο, αλλά δεν είναι δυνατό να αποφασιστούν σε πολυωνυμικό χρόνο. Η συντόμευση N P αναφέρεται σε χρόνο εκτέλεσης που είναι μη ντεντερμινιστικά πολυωνυμικός (Non-deterministic Polynomial). Μέχρι στιγμής αναφερθήκαμε μόνο σε ντεντερμινιστικούς αλγορίθμους, που σημαίνει ότι οποιαδήποτε στιγμή κατά τον υπολογισμό το επόμενο βήμα καθορίζεται με μοναδικό τρόπο. Στην Ενότητα 1.6 είδαμε ότι σε ένα μη ντεντερμινιστικό αλγόριθμο υπάρχουν περισσότερες από μία δυνατότητες για το επόμενο βήμα στον υπολογισμό και ο αλγόριθμος επιλέγει κάθε φορά μία απ αυτές. Για να δώσουμε ένα παράδειγμα, ας εξετάσουμε τη γλώσσα L SOS του Παραδείγματος 9.4. Εστω ότι τα m, a 1, a 2,..., a m και b είναι στοιχεία του N 0. Τότε, < a 1, a 2,..., a m, b > L SOS υπάρχουν c 1, c 2,..., c m {0, 1} m τέτοια ώστε c i a i = b Ο παρακάτω μη ντεντερμινιστικός αλγόριθμος αποφασίζει τη γλώσσα L SOS : SOS(m, a 1, a 2,..., a m, b) = i=1

17 9.3. Η ΚΛΑΣΗ ΓΛΩΣΣΩΝ N P s := 0 2. Για i := 1 έως m εκτέλεσε: 2.1 s := s s := s + a i 3. Αν s = b τότε η είσοδος είναι αποδεκτή 4. διαφορετικά απορρίπτεται. Η γραμμή s := s s := s + a i σημαίνει ότι είτε εκτελείται η εντολή s := s είτε η s := s + a i. Ας υποθέσουμε ότι < a 1, a 2,..., a m, b > L SOS. Τότε υπάρχουν c 1, c 2,..., c m {0, 1} τέτοια ώστε m i=1 c ia i = b. Ας υποθέσουμε ότι ο αλγόριθμός μας κάνει το παρακάτω για κάθε i με 1 i m: Στην i επανάληψη, αν c i = 0, τότε εκτελείται η εντολή s := s, αν c i = 1, τότε εκτελείται η εντολή s := s + a i. Τότε, μετά από τον επαναλητπικό βρόγχο έχουμε s = b και ο αλγόριθμος αποδέχεται την είσοδο, επομένως ο αλγόριθμος ορθά βρίσκει ότι < a 1, a 2,..., a m, b > L SOS. Με άλλα λόγια, σ αυτή την περίπτωση, υπάρχει τουλάχιστο ένας υπολογισμός αποδοχής. Από την άλλη μεριά, αν < a 1, a 2,..., a m, b >/ L SOS, τότε ο αλγόριθμος πάντα απορρίπτει την είσοδο ανεξάρτητα από το ποια από τις δύο εντολές εκτελείται σε κάθε επανάληψη του βρόγχου. Σ αυτή την περίπτωση, δεν υπάρχει υπολογισμός αποδοχής. Ορισμός 9.4 (Μη ντεντερμινιστική απόφαση σε χρόνο T ) Λέμε ότι ένας μη ντεντερμινιστικός αλγόριθμος M αποφασίζει μία γλώσσα L σε χρόνο T, αν για κάθε συμβολοσειρά w ισχύει το εξής: w L αν και μόνο αν υπάρχει τουλάχιστον ένας υπολογισμός, που με είσοδο w αποδέχεται την είσοδο μέσα σε το πολύ T ( w ) χρόνο. Ο μη ντεντερμινιστικός αλγόριθμος, που είδαμε, αποφασίζει τη γλώσσα L SOS σε χρόνο που είναι γραμμική συνάρτηση του μήκους της εισόδου. Εστω < a 1, a 2,..., a m, b > L SOS και έστω ότι το μήκος της εισόδου είναι n. Τότε, n = < a 1 > + < a 2 > < a m > + < b > m

18 278 ΚΕΦ ΑΛΑΙΟ 9. ΥΠΟΛΟΓΙΣΤΙΚΗ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Γι αυτή την είσοδο, υπάρχει ένας υπολογισμός που κάνει δεκτή την είσοδο και παίρνει O(m) = O(n) χρόνο. Η έννοια του πολυωνυμικού χρόνου εκτέλεσης ορίζεται και στην περίπτωση των μη ντεντερμινιστικών αλγορίθμων με ανάλογο τρόπο ως προς τον Ορισμό 9.2. Το παρακάτω θεώρημα, η απόδειξη του οποίου παραλείπεται, συσχετίζει την έννοια του πολυωνυμικού χρόνου εκτέλεσης με την κλάση NP, που ορίστηκε στον Ορισμό 9.3. Θεώρημα 9.3 (Απόφαση γλώσσας N P σε πολυωνυμικό χρόνο) Μία γλώσσα L ανήκει στην κλάση πολυπλοκότητας NP αν και μόνο αν υπάρχει μία μη ντεντερμινιστική ΜΤ, που αποφασίζει την L σε πολυωνυμινό χρόνο. 9.4 Κλάσεις Χωρικής Πολυπλοκότητας Βιβλιογραφία - Αναφορές [1] Stephen A. Cook. The complexity of theorem-proving procedures. In Proceedings of the Third Annual ACM Symposium on Theory of Computing, STOC 71, pages , New York, NY, USA, ACM. doi: / URL [2] Lance Fortnow. The status of the p versus np problem. Commun. ACM, 52(9):78 86, September ISSN doi: / URL

L A P. w L A f(w) L B (10.1) u := f(w)

L A P. w L A f(w) L B (10.1) u := f(w) Κεφάλαιο 10 NP -πληρότητα Σύνοψη Οι γλώσσες στην κλάση πολυπλοκότητας P μπορούν να αποφασίζονται σε πολωνυμικό χρόνο. Οι επιστήμονες πιστεύουν, αν και δε μπορούν να το αποδείξουν ότι η P είναι ένα γνήσιο

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

Chapter 7, 8 : Time, Space Complexity

Chapter 7, 8 : Time, Space Complexity CSC 314: Switching Theory Chapter 7, 8 : Time, Space Complexity 12 December 2008 1 1 Υπολογίσιμα και Εφικτά Υπολογίσιμα Προβλήματα Είδαμε ότι 1. Οτιδήποτεμπορούμεναπεριγράψουμεμεένααλγόριθμο μπορεί να

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

Θεωρία Υπολογισμού και Πολυπλοκότητα

Θεωρία Υπολογισμού και Πολυπλοκότητα Θεωρία Υπολογισμού και Πολυπλοκότητα Κλάσεις P, NP NP-πληρότητα 15 Απριλίου 2008 Δρ. Παπαδοπούλου Βίκη 1 Υπολογίσιμα και Εφικτά Υπολογίσιμα Προβλήματα Είδαμε ότι 1. Οτιδήποτε μπορούμε να περιγράψουμε με

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 24: Μη Ντεντερμινιστικές Μηχανές Turing Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως

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

Θεωρία Υπολογισμού και Πολυπλοκότητα

Θεωρία Υπολογισμού και Πολυπλοκότητα Θεωρία Υπολογισμού και Πολυπλοκότητα Κεφάλαιο 14. Χρονική Πολυπλοκότητα 17, 20, 24 Απριλίου 2007 Δρ. Παπαδοπούλου Βίκη 1 Υπολογίσιμα και Εφικτά Υπολογίσιμα Προβλήματα Είδαμε ότι 1. Οτιδήποτε μπορούμε να

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

CSC 314: Switching Theory

CSC 314: Switching Theory CSC 314: Switching Theory Course Summary 9 th January 2009 1 1 Θέματα Μαθήματος Ερωτήσεις Τι είναι αλγόριθμος? Τι μπορεί να υπολογιστεί? Απαντήσεις Μοντέλα Υπολογισμού Δυνατότητες και μη-δυνατότητες 2

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

Λύσεις 4ης Σειράς Ασκήσεων

Λύσεις 4ης Σειράς Ασκήσεων Λύσεις 4ης Σειράς Ασκήσεων Άσκηση 1 Αναγάγουμε τν Κ 0 που γνωρίζουμε ότι είναι μη-αναδρομική (μη-επιλύσιμη) στην γλώσσα: L = {p() η μηχανή Turing Μ τερματίζει με είσοδο κενή ταινία;} Δοσμένης της περιγραφής

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 13: Παραλλαγές Μηχανών Turing και Περιγραφή Αλγορίθμων

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 13: Παραλλαγές Μηχανών Turing και Περιγραφή Αλγορίθμων ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Διάλεξη 13: Παραλλαγές Μηχανών Turing και Περιγραφή Αλγορίθμων Τι θα κάνουμε σήμερα Εισαγωγή Πολυταινιακές Μηχανές Turing (3.2.1) Μη Ντετερμινιστικές Μηχανές

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 18: Χρονική και Χωρική Πολυπλοκότητα

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 18: Χρονική και Χωρική Πολυπλοκότητα ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Διάλεξη 18: Χρονική και Χωρική Πολυπλοκότητα Τι θα κάνουμε σήμερα Εισαγωγικά Χρονική Πολυπλοκότητα (7) Κλάση P (7.2) Κλάση ΝΡ (7.3) ΝΡ-πληρότητα (7.4) Χωρική

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

Θεωρία Υπολογισμού Άρτιοι ΑΜ. Διδάσκων: Σταύρος Κολλιόπουλος. eclass.di.uoa.gr. Περιγραφή μαθήματος

Θεωρία Υπολογισμού Άρτιοι ΑΜ. Διδάσκων: Σταύρος Κολλιόπουλος. eclass.di.uoa.gr. Περιγραφή μαθήματος Περιγραφή μαθήματος Θεωρία Υπολογισμού Άρτιοι ΑΜ Σκοπός του μαθήματος είναι η εισαγωγή στη Θεωρία Υπολογισμού και στη Θεωρία Υπολογιστικής Πολυπλοκότητας (Θεωρία Αλγορίθμων). Διδάσκων: Σταύρος Κολλιόπουλος

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

Θεωρία Υπολογισμού Αρτιοι ΑΜ Διδάσκων: Σταύρος Κολλιόπουλος eclass.di.uoa.gr

Θεωρία Υπολογισμού Αρτιοι ΑΜ Διδάσκων: Σταύρος Κολλιόπουλος eclass.di.uoa.gr Θεωρία Υπολογισμού Άρτιοι ΑΜ Διδάσκων: Σταύρος Κολλιόπουλος eclass.di.uoa.gr Περιγραφή μαθήματος Σκοπός του μαθήματος είναι η εισαγωγή στη Θεωρία Υπολογισμού και στη Θεωρία Υπολογιστικής Πολυπλοκότητας

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 26: Καθολική Μηχανή Turing Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που

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

Υπολογιστική Πολυπλοκότητα Εξέταση Ιουνίου 2017 Σελ. 1 από 5

Υπολογιστική Πολυπλοκότητα Εξέταση Ιουνίου 2017 Σελ. 1 από 5 Υπολογιστική Πολυπλοκότητα Εξέταση Ιουνίου 2017 Σελ. 1 από 5 Στη σελίδα αυτή γράψτε μόνο τα στοιχεία σας. Γράψτε τις απαντήσεις σας στις επόμενες σελίδες, κάτω από τις αντίστοιχες ερωτήσεις. Στις απαντήσεις

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

Chapter 7, 8 : Time, Space Complexity

Chapter 7, 8 : Time, Space Complexity CSC 314: Switching Theory Chapter 7, 8 : Time, Space Complexity 19 December 2008 1 1 Κλάση NP 2 Μη-Ντετερμινιστικές Μηχανές Turing: Eίναι δυνατόν σε μια συνολική κατάσταση να υπάρχουν πολλές δυνατές επόμενες

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

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

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

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

Περιεχόμενα Ορισμός και λειτουργία των μηχανών Turing Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Επ. Καθ. Π. Κατσαρός Τμήμ

Περιεχόμενα Ορισμός και λειτουργία των μηχανών Turing Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Επ. Καθ. Π. Κατσαρός Τμήμ Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 21: Υπολογισμοί ΜΤ - Αναδρομικές Γλώσσες Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως

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

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

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

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

244 ΚΕΦ ΑΛΑΙΟ 8. ΥΠΟΛΟΓΙΣΙΜΕΣ ΣΥΝΑΡΤΗΣΕΙΣ Η f είναι μία μερική συνάρτηση στο πεδίο X, αν και μόνο αν η συνάρτηση ορίζεται για μηδέν ή περισσότερα στοι

244 ΚΕΦ ΑΛΑΙΟ 8. ΥΠΟΛΟΓΙΣΙΜΕΣ ΣΥΝΑΡΤΗΣΕΙΣ Η f είναι μία μερική συνάρτηση στο πεδίο X, αν και μόνο αν η συνάρτηση ορίζεται για μηδέν ή περισσότερα στοι Κεφάλαιο 8 Υπολογίσιμες Συναρτήσεις Σύνοψη Εχοντας αναπτύξει τη θεωρία γύρω από τις Μηχανές Turing (ΜΤ) δεν περιοριζόμαστε πλέον μόνο στην ανάλυση προβλημάτων απόφασης γλωσσών (βλ. Ενότητα 1.2.3). Οι ΜΤ

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

Σειρά Προβλημάτων 5 Λύσεις

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) ({ G η G είναι μια ασυμφραστική γραμματική που δεν παράγει καμιά λέξη με μήκος μικρότερο του 2 } (β) { Μ,w

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

Πεπερασμένος έλεγχος καταστάσεων

Πεπερασμένος έλεγχος καταστάσεων Κεφάλαιο 6 Μηχανές Turing Σύνοψη Οι Μηχανές Turing (ΜΤ) δεν είναι απλά μία ακόμη μηχανή αναγνώρισης για κάποια ευρύτερη οικογένεια γλωσσών από τις γλώσσες, που γίνονται δεκτές από τα Αυτόματα Στοίβας.

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

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

Κατώτερα φράγματα Κατώτερο φράγμα: εκτίμηση της ελάχιστης εργασίας που απαιτείται για την επίλυση ενός προβλήματος. Παραδείγματα: Αριθμός συγκρίσεων π Περιορισμοί Αλγοριθμικής Ισχύος Κατηγοριοποίηση πολυπλοκοτήτων Κατώτερα φράγματα Κατώτερο φράγμα: εκτίμηση της ελάχιστης εργασίας που απαιτείται για την επίλυση ενός προβλήματος. Παραδείγματα: Αριθμός

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

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της; 1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες (μορφές) της; Η δομή επανάληψης χρησιμοποιείται όταν μια σειρά εντολών πρέπει να εκτελεστεί σε ένα σύνολο περιπτώσεων, που έχουν κάτι

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

Σειρά Προβλημάτων 4 Λύσεις

Σειρά Προβλημάτων 4 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing που να διαγιγνώσκει τη γλώσσα { n 3 } (α) H ζητούμενη μηχανή Turing μπορεί να διατυπωθεί ως την επτάδα Q,

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

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

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

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

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

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

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

num(m(w 1 ;... ; w k )) = f(num(w 1 ),..., num(w k ))

num(m(w 1 ;... ; w k )) = f(num(w 1 ),..., num(w k )) Υπολογισμοί με Μ.Τ. Εστω M = (K, Σ, δ, s, {y, n}) μια Μ.Τ. Κάθε συνολική κατάσταση τερματισμού της οποίας η κατάσταση τερματισμού είναι το y, θα ονομάζεται συνολική κατάσταση αποδοχής, ενώ αν η κατάσταση

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

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

ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Ενότητα 12: Μη ντετερμινιστικές μηχανές Turing Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

Σειρά Προβλημάτων 5 Λύσεις

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Πιο κάτω υπάρχει ένα σχεδιάγραμμα που τοποθετεί τις κλάσεις των κανονικών, ασυμφραστικών, διαγνώσιμων και αναγνωρίσιμων γλωσσών μέσα στο σύνολο όλων των γλωσσών. Ακολουθούν

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

Σειρά Προβλημάτων 4 Λύσεις

Σειρά Προβλημάτων 4 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία να διαγιγνώσκει τη γλώσσα { w w = (ab) 2m b m (ba) m, m 0 } (β) Να διατυπώσετε

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Αναγωγές

Θεωρία Υπολογισμού και Πολυπλοκότητα Αναγωγές Θεωρία Υπολογισμού και Πολυπλοκότητα Αναγωγές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ανεπίλυτα Προβλήματα από τη Θεωρία Γλωσσών (5.1) To Πρόβλημα της Περάτωσης Το Πρόβλημα της Κενότητα

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Α2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών Α3. Ο αλγόριθμος

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

Σειρά Προβλημάτων 4 Λύσεις

Σειρά Προβλημάτων 4 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing που να διαγιγνώσκει την ακόλουθη γλώσσα. { a n b n+2 c n 2 n 2 } Λύση: H ζητούμενη μηχανή Turing μπορεί να

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

214 ΚΕΦΑΛΑΙΟ 7. ΕΠΙΛΥΣΙΜΟΤΗΤΑ - ΜΗ ΕΠΙΛΥΣΙΜΟΤΗΤΑ 7.1 Το Πρόβλημα του Τερματισμού Θεώρημα 7.1 (Πρόβλημα του Τερματισμού - ημιαπόφαση) Η γλώσσα του Προβ

214 ΚΕΦΑΛΑΙΟ 7. ΕΠΙΛΥΣΙΜΟΤΗΤΑ - ΜΗ ΕΠΙΛΥΣΙΜΟΤΗΤΑ 7.1 Το Πρόβλημα του Τερματισμού Θεώρημα 7.1 (Πρόβλημα του Τερματισμού - ημιαπόφαση) Η γλώσσα του Προβ Κεφάλαιο 7 Επιλυσιμότητα - Μη επιλυσιμότητα Σύνοψη Στα προηγούμενα κεφάλαια επικεντρωθήκαμε σε επιλύσιμα προβλήματα και μελετήσαμε υπολογιστικά μοντέλα με δυνατότητες, που συνεχώς διευρύναμε. Το τελευταίο

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

, για κάθε n N. και P είναι αριθμήσιμα.

, για κάθε n N. και P είναι αριθμήσιμα. ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΑΚΡΙΤA ΜΑΘΗΜΑΤΙΚΑ Διδάσκοντες: Δ.Φωτάκης Θ. Σούλιου η Γραπτή Εργασία Ημ/νια παράδοσης 5/4/8 Θέμα (Διαδικασίες Απαρίθμησης.

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

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

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

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

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

Φροντιστήριο 9 Λύσεις Άσκηση 1 Φροντιστήριο 9 Λύσεις Να κατασκευάσετε μια μηχανή Turing με δύο ταινίες η οποία να αποδέχεται στην πρώτη της ταινία μια οποιαδήποτε λέξη w {a,b} * και να γράφει τη λέξη w R στη δεύτερη της ταινία.

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

ILP-Feasibility conp

ILP-Feasibility conp Διάλεξη 19: 23.12.2014 Θεωρία Γραμμικού Προγραμματισμού Γραφέας: Χαρίλαος Τζόβας Διδάσκων: Σταύρος Κολλιόπουλος 19.1 Θεωρία Πολυπλοκότητας και προβλήματα απόφασης Για να μιλήσουμε για προβλήματα και τον

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο

Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Σύνολα Συναρτήσεις και Σχέσεις Γραφήματα Λέξεις και Γλώσσες Αποδείξεις ΕΠΛ 211 Θεωρία

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

Σειρά Προβλημάτων 4 Λύσεις

Σειρά Προβλημάτων 4 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία να διαγιγνώσκει τη γλώσσα { ww w {a,b}* }. (β) Να διατυπώσετε την τυπική περιγραφή

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

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

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

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

Σειρά Προβλημάτων 5 Λύσεις

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) { G,k η G είναι μια ασυμφραστική γραμματική η οποία παράγει κάποια λέξη 1 n όπου n k } (β) { Μ,k η Μ είναι

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

Υπολογιστική Πολυπλοκότητα

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

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

Βρόχοι. Εντολή επανάληψης. Το άθροισμα των αριθμών 1 5 υπολογίζεται με την εντολή. Πρόβλημα. Πώς θα υπολογίσουμε το άθροισμα των ακέραιων ;

Βρόχοι. Εντολή επανάληψης. Το άθροισμα των αριθμών 1 5 υπολογίζεται με την εντολή. Πρόβλημα. Πώς θα υπολογίσουμε το άθροισμα των ακέραιων ; Εντολή επανάληψης Το άθροισμα των αριθμών 1 5 υπολογίζεται με την εντολή Πρόβλημα Πώς θα υπολογίσουμε το άθροισμα των ακέραιων 1 5000; Ισοδύναμοι υπολογισμοί του Ισοδύναμοι υπολογισμοί του Ισοδύναμοι υπολογισμοί

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

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

Φροντιστήριο 8 Λύσεις Άσκηση 1 Φροντιστήριο 8 Λύσεις Θεωρήστε την πιο κάτω Μηχανή Turing όπου όλες οι μεταβάσεις που απουσιάζουν οδηγούν στην κατάσταση απόρριψης (q απόρριψης). Σε κάθε σκέλος, να προσδιορίσετε την ακολουθία

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

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

ΑΣΥΜΠΤΩΤΙΚΗ ΑΝΑΛΥΣΗ & ΠΡΟΣΘΕΣΗ ΑΣΥΜΠΤΩΤΙΚΗ ΑΝΑΛΥΣΗ & ΠΡΟΣΘΕΣΗ Θέματα μελέτης Ορθότητα και απόδοση αλγορίθμων Παρουσίαση και ανάλυση αλγορίθμου για πρόσθεση Al Khwarizmi Αλγόριθμοι Το δεκαδικό σύστημα εφευρέθηκε στην Ινδία περίπου το

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

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

Φροντιστήριο 10 Λύσεις Άσκηση 1 Φροντιστήριο 10 Λύσεις Να κατασκευάσετε μια μηχανή Turing με δύο ταινίες η οποία να αποδέχεται στην πρώτη της ταινία μια οποιαδήποτε λέξη w {0,1} * και να γράφει τη λέξη w R στη δεύτερη της ταινία.

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

Υπολογίσιμες Συναρτήσεις

Υπολογίσιμες Συναρτήσεις Υπολογίσιμες Συναρτήσεις Σ Π Υ Ρ Ι Δ Ω Ν Τ Ζ Ι Μ Α Σ Δ Τ Ο Μ Ε Α Σ Τ Μ Η Μ Α Μ Α Θ Η Μ Α Τ Ι Κ Ω Ν Σ Χ Ο Λ Η Θ Ε Τ Ι Κ Ω Ν Ε Π Ι Σ Τ Η Μ Ω Ν Π Α Ν Ε Π Ι Σ Τ Η Μ Ι Ο Ι Ω Α Ν Ν Ι Ν Ω Ν Υπολογίσιμες Συναρτήσεις

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

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

Φροντιστήριο 8 Λύσεις Άσκηση 1 Θεωρήστε την πιο κάτω Μηχανή Turing. Φροντιστήριο 8 Λύσεις Σε κάθε σκέλος, να προσδιορίσετε την ακολουθία των φάσεων τις οποίες διατρέχει η μηχανή όταν δέχεται τη διδόμενη λέξη. (α) 11 (β) 1#1

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

Μια TM µπορεί ένα από τα δύο: να αποφασίζει µια γλώσσα L. να αναγνωρίζει (ηµιαποφασίζει) µια γλώσσα L. 1. Η TM «εκτελεί» τον απαριθµητή, E.

Μια TM µπορεί ένα από τα δύο: να αποφασίζει µια γλώσσα L. να αναγνωρίζει (ηµιαποφασίζει) µια γλώσσα L. 1. Η TM «εκτελεί» τον απαριθµητή, E. Οι γλώσσες των Μηχανών Turing Αποφασισιµότητα / Αναγνωρισιµότητα Μια TM µπορεί ένα από τα δύο: να αποφασίζει µια γλώσσα L Αποδέχεται όταν (η είσοδος στην TM) w L. Ορέστης Τελέλης telelis@unipi.gr Τµήµα

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

Περιεχόμενα ΜΤ Τυχαίας Προσπέλασης Θεωρία Υπολογισμού Ενότητα 23: Μηχανές Turing Τυχαίας Προσπέλασης Επ. Καθ. Π. Κατσαρός Τμήμα Πληροφορικής Επ. Καθ.

Περιεχόμενα ΜΤ Τυχαίας Προσπέλασης Θεωρία Υπολογισμού Ενότητα 23: Μηχανές Turing Τυχαίας Προσπέλασης Επ. Καθ. Π. Κατσαρός Τμήμα Πληροφορικής Επ. Καθ. Θεωρία Υπολογισμού Ενότητα 23: Μηχανές Turing Τυχαίας Προσπέλασης Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως

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

NP-πληρότητα. Λεωνίδας Παληός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων

NP-πληρότητα. Λεωνίδας Παληός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων NP-πληρότητα Λεωνίδας Παληός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων Πολυωνυμικός μετασχηματισμός Ένας πολυωνυμικός μετασχηματισμός από την L 1 Σ 1 * στην L 2 Σ 2 * είναι μια συνάρτηση

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

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

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

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

4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη.

4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη. 4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη. Η μετατροπή μιας εντολής επανάληψης σε μία άλλη ή στις άλλες δύο εντολές επανάληψης, αποτελεί ένα θέμα που αρκετές φορές έχει εξεταστεί σε πανελλαδικό

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

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΣΤΑΘΕΡΕΣ είναι τα μεγέθη που δεν μεταβάλλονται κατά την εκτέλεση ενός αλγόριθμου. Εκτός από τις αριθμητικές σταθερές (7, 4, 3.5, 100 κλπ), τις λογικές σταθερές (αληθής και ψευδής)

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

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i. Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

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

Σειρά Προβλημάτων 4 Λύσεις

Σειρά Προβλημάτων 4 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία να διαγιγνώσκει τη γλώσσα { w#z w, z {a,b}* και η z είναι υπολέξη της w}. Συγκεκριμένα,

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

Πρόβλημα 29 / σελίδα 28

Πρόβλημα 29 / σελίδα 28 Πρόβλημα 29 / σελίδα 28 Πρόβλημα 30 / σελίδα 28 Αντιμετάθεση / σελίδα 10 Να γράψετε αλγόριθμο, οποίος θα διαβάζει τα περιεχόμενα δύο μεταβλητών Α και Β, στη συνέχεια να αντιμεταθέτει τα περιεχόμενά τους

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

Η NTM αποδέχεται αν µονοπάτι στο δέντρο που οδηγεί σε αποδοχή.

Η NTM αποδέχεται αν µονοπάτι στο δέντρο που οδηγεί σε αποδοχή. Μη ντετερµινιστικές Μηχανές Turing - NTMs (1/6) Μηχανές Turing: Μη ντετερµινισµός, Επιλύσιµα Προβλήµατα Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς 10 εκεµβρίου 2016

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

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

ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Ενότητα 8: Ιδιότητες Γραμματικών χωρίς Συμφραζόμενα Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

Μη Ντετερμινισμός και NP-Πληρότητα

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

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

Ελληνικό Ανοικτό Πανεπιστήµιο Σπουδές στην Πληροφορική. Φαινόµενα πολυπλοκότητας στα Μαθηµατικά και στη Φυσική: ύο όψεις του ίδιου νοµίσµατος;

Ελληνικό Ανοικτό Πανεπιστήµιο Σπουδές στην Πληροφορική. Φαινόµενα πολυπλοκότητας στα Μαθηµατικά και στη Φυσική: ύο όψεις του ίδιου νοµίσµατος; Ελληνικό Ανοικτό Πανεπιστήµιο Σπουδές στην Πληροφορική Φαινόµενα πολυπλοκότητας στα Μαθηµατικά και στη Φυσική: ύο όψεις του ίδιου νοµίσµατος; Γιάννης Κ. Σταµατίου ΣΕΠ ΠΛΗ 10 Πάτρα, Ιουνιος 2003 οµή και

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

Σειρά Προβλημάτων 5 Λύσεις

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) { R η R είναι μια κανονική έκφραση η οποία παράγει μια μη πεπερασμένη γλώσσα} (β) { G η G είναι μια CFG η οποία

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

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

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

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

q 0 q 0.2 q 0.1 q 0.05 q 0.05 q 0.25 q 0.15 q 0.1 q 0.2 q 0.25 q 0.25 q 0.25

q 0 q 0.2 q 0.1 q 0.05 q 0.05 q 0.25 q 0.15 q 0.1 q 0.2 q 0.25 q 0.25 q 0.25 Κεφάλαιο 2 Κανονικές Γλώσσες & Πεπερασμένα Αυτόματα Σύνοψη Τα Πεπερασμένα Αυτόματα (ΠΑ) είναι το απλούστερο και το πιο ευρέως διαδεδομένο μοντέλο υπολογισμού από αυτά που θα εξετάσουμε. Είναι επίσης γνωστά

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

Υποθέσεις - - Θεωρήματα Υποθέσεις - Θεωρήματα Στα μαθηματικά και στις άλλες επιστήμες κάνουμε συχνά υποθέσεις. Οταν δείξουμε ότι μια υπόθεση είναι αλη

Υποθέσεις - - Θεωρήματα Υποθέσεις - Θεωρήματα Στα μαθηματικά και στις άλλες επιστήμες κάνουμε συχνά υποθέσεις. Οταν δείξουμε ότι μια υπόθεση είναι αλη Υποθέσεις - - Θεωρήματα Μαθηματικά Πληροφορικής 1ο Μάθημα Τμήμα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών Υποθέσεις - - Θεωρήματα Υποθέσεις - Θεωρήματα Στα μαθηματικά και στις άλλες επιστήμες

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

Ενδεικτικές Ερωτήσεις Θεωρίας

Ενδεικτικές Ερωτήσεις Θεωρίας Ενδεικτικές Ερωτήσεις Θεωρίας Κεφάλαιο 2 1. Τι καλούμε αλγόριθμο; 2. Ποια κριτήρια πρέπει οπωσδήποτε να ικανοποιεί ένας αλγόριθμος; 3. Πώς ονομάζεται μια διαδικασία που δεν περατώνεται μετά από συγκεκριμένο

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

Υπολογιστική Πολυπλοκότητα

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

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

Σειρά Προβλημάτων 5 Λύσεις

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) { D το D είναι ένα DFA το οποίο αποδέχεται όλες τις λέξεις στο Σ * } (α) Για να διαγνώσουμε το πρόβλημα μπορούμε

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

Αποφασισιµότητα / Αναγνωρισιµότητα. Μη Επιλύσιµα Προβλήµατα. Η έννοια της αναγωγής. Τερµατίζει µια δεδοµένη TM για δεδοµένη είσοδο;

Αποφασισιµότητα / Αναγνωρισιµότητα. Μη Επιλύσιµα Προβλήµατα. Η έννοια της αναγωγής. Τερµατίζει µια δεδοµένη TM για δεδοµένη είσοδο; Αποφασισιµότητα / Αναγνωρισιµότητα Ορέστης Τελέλης telelis@unipi.gr Μη Επιλύσιµα Προβλήµατα Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς 2/12/2015 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Αποφασισιµότητα 2/12/2015

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

Blum Complexity. Αλγόριθμοι και Πολυπλοκότητα ΙΙ. Παναγιώτης Γροντάς. Δεκέμβριος

Blum Complexity. Αλγόριθμοι και Πολυπλοκότητα ΙΙ. Παναγιώτης Γροντάς. Δεκέμβριος Blum Complexity Αλγόριθμοι και Πολυπλοκότητα ΙΙ Παναγιώτης Γροντάς µπλ Δεκέμβριος 2011 Ιστορικά Στοιχεία Manuel Blum (1938, Caracas Venezuela) Turing Award (1995) Foundations Of Computational Complexity

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

Σημειώσεις Λογικής I. Εαρινό Εξάμηνο Καθηγητής: Λ. Κυρούσης

Σημειώσεις Λογικής I. Εαρινό Εξάμηνο Καθηγητής: Λ. Κυρούσης Σημειώσεις Λογικής I Εαρινό Εξάμηνο 2011-2012 Καθηγητής: Λ. Κυρούσης 2 Τελευταία ενημέρωση 28/3/2012, στις 01:37. Περιεχόμενα 1 Εισαγωγή 5 2 Προτασιακή Λογική 7 2.1 Αναδρομικοί Ορισμοί - Επαγωγικές Αποδείξεις...................

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

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

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

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

Chapter 7, 8 : Completeness

Chapter 7, 8 : Completeness CSC 314: Switching Theory Chapter 7, 8 : Completeness 19 December 2008 1 1 Αναγωγές Πολυωνυμικού Χρόνου Ορισμός. f: Σ * Σ * ονομάζεται υπολογίσιμη σε πολυνωνυμικό χρόνο αν υπάρχει μια πολυωνυμικά φραγμένη

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ 1) Πότε χρησιμοποιείται η δομή επανάληψης

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Χρονική Πολυπλοκότητα

Θεωρία Υπολογισμού και Πολυπλοκότητα Χρονική Πολυπλοκότητα Θεωρία Υπολογισμού και Πολυπλοκότητα Χρονική Πολυπλοκότητα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Μέτρηση της Πολυπλοκότητας (7.1) Η κλάση Ρ (7.2) Η κλάση ΝΡ (7.3) ΝΡ-πληρότητα (7.4)

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2013-2014

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2013-2014 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2013-2014 Επιμέλεια: Ομάδα Διαγωνισμάτων από το Στέκι των Πληροφορικών Θέμα Α A1. Να γράψετε στο τετράδιό σας τους

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

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

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

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

Κλάσεις Πολυπλοκότητας

Κλάσεις Πολυπλοκότητας Κλάσεις Πολυπλοκότητας Παύλος Εφραιμίδης pefraimi ee.duth.gr Κλάσεις Πολυπλοκότητας 1 Οι κλάσεις πολυπλοκότητας P και NP P: Polynomial ΗκλάσηP περιλαμβάνει όλα τα υπολογιστικά προβλήματα που μπορούν

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2)

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2) Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αυτόματα Στοίβας (2.2) Τυπικός Ορισμός Παραδείγματα Ισοδυναμία με Ασυμφραστικές

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

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

Πληροφορική 2. Αλγόριθμοι Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων Πληροφορικής 2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών 3. Ο αλγόριθμος

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

Μαθηματικά. Ενότητα 2: Διαφορικός Λογισμός. Σαριαννίδης Νικόλαος Τμήμα Διοίκησης Επιχειρήσεων (Κοζάνη)

Μαθηματικά. Ενότητα 2: Διαφορικός Λογισμός. Σαριαννίδης Νικόλαος Τμήμα Διοίκησης Επιχειρήσεων (Κοζάνη) Μαθηματικά Ενότητα 2: Διαφορικός Λογισμός Σαριαννίδης Νικόλαος Τμήμα Διοίκησης Επιχειρήσεων (Κοζάνη) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

Σειρά Προβλημάτων 4 Λύσεις

Σειρά Προβλημάτων 4 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing που να διαγιγνώσκει τη γλώσσα { a 2n b n c 3n n 2 } : H ζητούμενη μηχανή Turing μπορεί να διατυπωθεί ως την

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

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

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

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

Αλγόριθμοι Αναπαράσταση αλγορίθμων Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με:

Αλγόριθμοι Αναπαράσταση αλγορίθμων Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με: Αλγόριθμοι 2.2.1. Ορισμός: Αλγόριθμος είναι μια πεπερασμένη σειρά εντολών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος. Τα κυριότερα χρησιμοποιούμενα

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

Σειρά Προβλημάτων 5 Λύσεις

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) { Μ η Μ είναι μια ΤΜ η οποία διαγιγνώσκει το πρόβλημα ΙΣΟΔΥΝΑΜΙΑ ΤΜ (διαφάνεια 9 25)} (α) Γνωρίζουμε ότι το

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

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

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

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 8: Πεπερασμένα Αυτόματα Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

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

ΚΕΦΑΛΑΙΟ 3 ΤΟ ΔΙΩΝΥΜΙΚΟ ΘΕΩΡΗΜΑ

ΚΕΦΑΛΑΙΟ 3 ΤΟ ΔΙΩΝΥΜΙΚΟ ΘΕΩΡΗΜΑ ΚΕΦΑΛΑΙΟ 3 ΤΟ ΔΙΩΝΥΜΙΚΟ ΘΕΩΡΗΜΑ Εισαγωγή Οι αριθμοί που εκφράζουν το πλήθος των στοιχείων ανά αποτελούν ίσως τους πιο σημαντικούς αριθμούς της Συνδυαστικής και καλούνται διωνυμικοί συντελεστές διότι εμφανίζονται

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ Θέμα Α ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2016-2017 Πάτρα 3/5/2017 Ονοματεπώνυμο:.. Α1. Να γράψετε στην κόλλα σας τον αριθμό

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

Μ Α Θ Η Μ Α Τ Α Γ Λ Υ Κ Ε Ι Ο Υ

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

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

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

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

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

ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ

ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ Ενότητα 4 Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Δημήτρης Πλεξουσάκης

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Δημήτρης Πλεξουσάκης ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Λογική Δημήτρης Πλεξουσάκης 2ο μέρος σημειώσεων: Συστήματα Αποδείξεων για τον ΠΛ, Μορφολογική Παραγωγή, Κατασκευή Μοντέλων Τμήμα Επιστήμης Υπολογιστών Άδειες Χρήσης

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

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ ) Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ. 25 48) Τι είναι αλγόριθμος; Γ ΛΥΚΕΙΟΥ Αλγόριθμος είναι μία πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρονικό διάστημα,

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

Αλγόριθμοι για αυτόματα

Αλγόριθμοι για αυτόματα Κεφάλαιο 8 Αλγόριθμοι για αυτόματα Κύρια βιβλιογραφική αναφορά για αυτό το Κεφάλαιο είναι η Hopcroft, Motwani, and Ullman 2007. 8.1 Πότε ένα DFA αναγνωρίζει κενή ή άπειρη γλώσσα Δοθέντος ενός DFA M καλούμαστε

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

Σε αυτό το µάθηµα. Εισαγωγή στις Μηχανές Turing. Μηχανή Turing (Turing Machine - TM) Μηχανές Turing. Παραδείγµατα Μηχανών Turing

Σε αυτό το µάθηµα. Εισαγωγή στις Μηχανές Turing. Μηχανή Turing (Turing Machine - TM) Μηχανές Turing. Παραδείγµατα Μηχανών Turing Σε αυτό το µάθηµα Εισαγωγή στις Μηχανές Turing Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Παραδείγµατα Μηχανών Turing Παραλλαγές: Πολυταινιακές, Μη ντετερµινιστικές

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