Προτεινόμενοι Σύνδεσμοι:    greece   -   greece hotels   -   ειδησεις   -   greece news   -   ταβλι στο internet   -   livescore   -   νέα
 easypedia

Easypedia.gr
Ελλάδα
Αρχαία Ελλάδα
Ελληνες
Πρωθυπουργοί
Οικονομία
Γεωγραφία
Ιστορία
Γλώσσα
Πληθυσμός
Μυθολογία
Πολιτισμός & Τέχνες
Ζωγραφική
Θέατρο
Κινηματογράφος
Λογοτεχνία
Μουσική
Αρχιτεκτονική
Γλυπτική
Αθλητισμός
Μυθολογία
Θρησκεία
Θετικές & Φυσικές Επιστήμες
Ανθρωπολογία
Αστρονομία
Βιολογία
Γεωλογία
Επιστήμη υπολογιστών
Μαθηματικά
Τεχνολογία
Φυσική
Χημεία
Ιατρική
Φιλοσοφία & Κοινωνικ. Επιστήμες
Αρχαιολογία
Γλωσσολογία
Οικονομικά
Φιλοσοφία
Ψυχολογία
Γεωγραφία
Ασία
Αφρική
Ευρώπη
Πόλεις
Χώρες
Θάλασσες
Ιστορία
Ελληνική Ιστορία
Αρχαία Ιστορία
Βυζάντιο
Ευρωπαϊκή Ιστορία
Πόλεμοι
Ρωμαϊκή Αυτοκρατορία
Σύγχρονη Ιστορία
 

Θεωρία υπολογισμού

Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια

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

Για να πραγματοποιήσουν μια εξονυχιστική μελέτη των υπολογισμών, οι επιστήμονες υπολογιστών αντιμετωπίζουν τον υπολογιστή ως μια αφηρημένη μαθηματική έννοια, το μοντέλο υπολογισμού. Υπάρχουν διάφορες διατυπώσεις που χρησιμοποιούνται, αλλά η πιο συχνή είναι η μηχανή Τούρινγκ. Μπορεί κανείς να θεωρήσει τη μηχανή Τούρινγκ σαν έναν προσωπικό υπολογιστή με άπειρη μνήμη, αν και η μνήμη αυτή είναι προσβάσιμη μόνο σε μικρά διακριτά τμήματα. Οι επιστήμονες υπολογιστών μελετούν τη μηχανή Τούρινγκ γιατί έχει απλή μαθηματική διατύπωση και μπορούν να την αναλύσουν, να τη χρησιμοποιήσουν σε αποδείξεις, ενώ κατά πολλούς αντιπροσωπεύει το πιο ισχυρό εφικτό μοντέλο υπολογισμού. Αυτό σημαίνει ότι ένα πρόβλημα μπορεί να λυθεί αλγοριθμικά μόνο αν υπάρχει μηχανή Τούρινγκ που το επιλύει. Αν και η άπειρη μνήμη μπορεί να θεωρηθεί ανέφικτη, στην πραγματικότητα κάθε πρόβλημα που λύνει η μηχανή Τούρινγκ χρειάζεται πάντα πεπερασμένη μνήμη, άρα κάθε πρόβλημα που μπορεί να λυθεί από μια μηχανή Τούρινγκ θα μπορούσε να λυθεί από έναν προσωπικό υπολογιστή με επαρκή μνήμη.

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

Πίνακας περιεχομένων

Τυπικές γραμματικές

Κύριο άρθρο: Τυπική γραμματική

Στην επιστήμη υπολογιστών μια τυπική γραμματική (formal grammar) είναι μια αφηρημένη δομή που περιγράφει μια τυπική γλώσσα επακριβώς, δηλαδή είναι ένα σύνολο κανόνων που απεικονίζουν μαθηματικώς το σύνολο, (συνήθως απειροσύνολο), των πεπερασμένου μήκους στοιχειοσειρών / συμβολοσειρών που σχηματίζονται με διακριτά στοιχεία / σύμβολα (π.χ. γράμματα), τα οποία ανήκουν σε ένα σύνολο, συνήθως πεπερασμένο, που το λέμε αλφάβητο. Οι τυπικές γραμματικές ονομάστηκαν έτσι κατ’ αναλογία των γραμματικών των γλωσσών που μιλούν οι άνθρωποι, αλλά τα αλφάβητα τους δεν περιέχουν κατ’ ανάγκη γράμματα. Οι τυπικές γραμματικές διαχωρίζονται σε δυο κύριες κατηγορίες: γενετικές (generative) και αναλυτικές (analytic).

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

Συνοπτικά για την γενετική γραμματική :
  • λειτουργεί ως δημιουργός στοιχειοσειρών της γλώσσας, δηλαδή γράφει την γλώσσα,
  • η πορεία είναι από την γραμματική προς τις λέξεις της γλώσσας,
  • εφαρμόζεται παραγωγική (top-down) προσέγγιση, από το γενικό προς το μερικό.

Μια αναλυτική γραμματική, αντιθέτως, είναι ένα σύνολο κανόνων που υποθέτουν ότι μία αυθαίρετη στοιχειοσειρά δίνεται προς επεξεργασία και με διαδοχικά βήματα ανάλυσης προκύπτει ως αποτέλεσμα η τιμή μιας λογικής μεταβλητής:

  • ΑΛΗΘΗΣ, αν η στοιχειοσειρά ανήκει στην γλώσσα που περιγράφει η αναλυτική γραμματική
  • ΨΕΥΔΗΣ, αν η στοιχειοσειρά δεν ανήκει στην γλώσσα που περιγράφει η αναλυτική γραμματική.
Συνοπτικά για την αναλυτική γραμματική :
  • σαρώνει την στοιχειοσειρά, τεχνολογεί τα μέρη που την αποτελούν και τα αναγνωρίζει, (είναι συντακτικός αναλυτής (parser)), δηλαδή διαβάζει την γλώσσα,
  • η πορεία είναι από τις λέξεις της γλώσσας προς την γραμματική της,
  • εφαρμόζεται επαγωγική (bottom-up) προσέγγιση, από το μερικό προς το γενικό.

Βασικές αρχές

Αστέρι Κλέινι ή κλειστότητα Κλέινι (Kleene Star) ενός αλφαβήτου Σ ονομάζουμε το σύνολο Σ* όλων των δυνατών συμβολοσειρών που προκύπτουν από αυτό το αλφάβητο. Πρόκειται για ένα μετρήσιμο απειροσύνολο (Συμπέρασμα 1). Γλώσσα ονομάζουμε ένα υποσύνολο του Σ* για δεδομένο αλφάβητο Σ. Το σύνολο όλων των γλωσσών που προκύπτουν από ένα αλφάβητο Σ είναι το δυναμοσύνολο (το σύνολο όλων των δυνατών υποσυνόλων) του Σ* και είναι μη μετρήσιμο απειροσύνολο (Συμπέρασμα 2). Μπορούμε να καταλήξουμε σε διάφορους πεπερασμένους τρόπους αναπαράστασης γλωσσών (ασχέτως του αν οι ίδιες οι γλώσσες είναι πεπερασμένες ή άπειρες), όμως όλοι οδηγούν σε μία συμβολοσειρά ως τρόπο αναπαράστασης μίας γλώσσας. Όμως, δεδομένου ενός αλφαβήτου αναπαράστασης Σ, υπάρχουν μετρήσιμα άπειρες συμβολοσειρές αναπαράστασης (Συμπέρασμα 1) και μη μετρήσιμα άπειρες γλώσσες (Συμπέρασμα 2). Επομένως, αφού υπάρχουν περισσότερες γλώσσες απ' ότι αναπαραστάσεις, αναπόφευκτα θα υπάρχουν πάντα γλώσσες που δεν μπορούμε να αναπαραστήσουμε με πεπερασμένο τρόπο.

Υπάρχουν δύο ισοδύναμοι τρόποι περιγραφής μίας γλώσσας: είτε μέσω ενός παραγωγού γλώσσας, ενός εκφραστικού μηχανισμού που περιγράφει τις έγκυρες συμβολοσειρές της συγκεκριμένης γλώσσας, είτε μέσω ενός αναγνώστη γλώσσας, ενός μαθηματικού μοντέλου-μηχανής που αποδέχεται συμβολοσειρές της συγκεκριμένης γλώσσας (τερματίζοντας θετικά αν η είσοδος του είναι συμβολοσειρά που ανήκει στη γλώσσα). Υπάρχουν διάφορες κλάσεις παραγωγών και των αντίστοιχων αναγνωστών, με την κάθε κλάση να καλύπτει ένα υπερσύνολο των γλωσσών που καλύπτει η προηγούμενη. Κατηγοριοποιούνται με την ιεραρχία Τσόμσκι, από τις πιο περιορισμένες ως τις πιο ευρείες:


Παραγωγοί | Αναγνώστες


1) Κανονικές Εκφράσεις | Πεπερασμένα Αυτόματα

2)Γραμματικές Χωρίς Συμφραζόμενα| Αυτόματα Στοίβας

3) Γραμματικές Με Συμφραζόμενα |Γραμμικά Περιορισμένες Μηχανές Τούρινγκ

4)Γραμματικές Χωρίς Περιορισμούς| Μηχανές Τούρινγκ


Ένα αυτόματο αποτελείται από ένα σύνολο καταστάσεων στις οποίες εισέρχεται ανάλογα με το σε ποια κατάσταση βρίσκεται ήδη και ποιο σύμβολο διάβασε τελευταία από τη συμβολοσειρά εισόδου. Κάποιες από αυτές τις καταστάσεις είναι τελικές, δηλαδή αν η είσοδος εξαντληθεί όσο το αυτόματο είναι σε κάποια από αυτές η συμβολοσειρά είναι αποδεκτή. Υπάρχει ένας πίνακας μεταβάσεων που καθορίζει το σε ποια κατάσταση θα εισέλθει για κάθε περίπτωση.

Μία γλώσσα η οποία γίνεται αποδεκτή από κάποια Μηχανή Τούρινγκ, δηλαδή η τελευταία είναι βέβαιο ότι τερματίζει μόνο όταν δέχεται ως είσοδο συμβολοσειρά που ανήκει στη γλώσσα (διαφορετικά μπορεί να μπει σε ατέρμονα βρόχο), ονομάζεται MT-αποδεκτή. Μία γλώσσα η οποία αποφασίζεται από κάποια Μηχανή Τούρινγκ, δηλαδή η τελευταία τερματίζει για κάθε είσοδο και δίνει θετικό αποτέλεσμα αν η συμβολοσειρά ανήκει στη γλώσσα και αρνητικό αν δεν ανήκει, ονομάζεται ΜΤ-αποφασίσιμη. Επίσης η Μηχανή Τούρινγκ μπορεί να γράφει σύμβολα στην ταινία εισόδου της (σε αντίθεση με τα αυτόματα) οπότε μπορεί να υπολογίζει και συναρτήσεις -δεχόμενη μία συμβολοσειρά εισόδου και παράγοντας την αντίστοιχη συμβολοσειρά εξόδου.

Τόσο στα αυτόματα όσο και στις Μηχανές Τούρινγκ υπάρχει μία παραλλαγή τους που διαθέτει ένα πανίσχυρο αλλά αντιρεαλιστικό μαθηματικό χαρακτηριστικό: το μη ντετερμινισμό, τη δυνατότητα δηλαδή σε κάθε βήμα της λειτουργίας τους να μαντεύουν το σωστή διαδρομή που πρέπει να ακολουθήσουν στη συνέχεια από ένα πλήθος δυνατών διαδρομών. Τα μη ντετερμινιστικά αυτόματα συνήθως έχουν εκθετικά λιγότερες καταστάσεις από τα ρεαλιστικά αντίστοιχα ντετερμινιστικά, ενώ οι μη ντετερμινιστικές Μηχανές Τούρινγκ ολοκληρώνουν τη λειτουργία τους σε εκθετικά λιγότερο χρόνο από τις αντίστοιχες ρεαλιστικές ντετερμινιστικές. Ώστόσο κάθε μη ντετερμινιστικό πεπερασμένο αυτόματο μπορεί να μετασχηματιστεί σε ένα ισοδύναμο ντετερμινιστικό που αναγνωρίζει την ίδια γλώσσα (έστω και με πολύ περισσότερες καταστάσεις), καθώς και κάθε μη ντετερμινιστική Μηχανή Τούρινγκ μπορεί να μετασχηματιστεί σε μία ισοδύναμη ντετερμινιστική (έστω και με πολύ μεγαλύτερη χρονική πολυπλοκότητα). Αυτή η ισοδυναμία δεν ισχύει στα αυτόματα στοίβας, αφού υπάρχουν γλώσσες χωρίς συμφραζόμενα που γίνονται αποδεκτές μόνο από μη ντετερμινιστικά αυτόματα στοίβας για τα οποία δεν υπάρχουν αντίστοιχα ντετερμινιστικά. Ειδικά για τις Μηχανές Τούρινγκ έχουν προταθεί και διάφορες άλλες παραλλαγές (πιο ρεαλιστικές, όπως π.χ. με ταινία διπλής κατεύθυνσης ή πολλαπλές κεφαλές ανάγνωσης συμβόλων) οι οποίες όμως έχει αποδειχθεί ότι επίσης είναι ισοδύναμες με την πρότυπη ντετερμινιστική Μηχανή Turing και μάλιστα με την ίδια χρονική πολυπλοκότητα.

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

Παγκόσμια Μηχανή Τούρινγκ ονομάζεται μία Μηχανή Τούρινγκ που δέχεται ως είσοδο κατάλληλα κωδικοποιημένες συμβολοσειρές που συμβολίζουν άλλες Μηχανές Τούρινγκ (Μ) και μία είσοδο γι' αυτές (w) και προσομοιώνει τη λειτουργία της Μ με είσοδο w. Με αυτόν τον τρόπο κωδικοποίησης ένα οποιοδήποτε υπολογιστικό πρόβλημα μπορεί να εκφραστεί ως ένα σύνολο συμβολοσειρών, δηλαδή μία γλώσσα, και να επιλυθεί από μία κατάλληλη Μηχανή Τούρινγκ που αποφασίζει αυτήν τη γλώσσα -δηλαδή τερματίζει με βεβαιότητα για όλες τις εισόδους της. Σύμφωνα λοιπόν με τη Θέση Τσερτς-Τούρινγκ η ντετερμινιστική Μηχανή Τούρινγκ που αποφασίζει μία γλώσσα είναι το έσχατο και πιο ευρύ υπολογιστικό μοντέλο -μία αυστηρή μαθηματική περιγραφή της άτυπης έννοιας του αλγορίθμου! Αν για ένα υπολογιστικό πρόβλημα δεν μπορεί να βρεθεί μία Μηχανή Τούρινγκ που να αποφασίζει την αντίστοιχη γλώσσα, τότε το πρόβλημα αυτό είναι μη επιλύσιμο -δεν μπορεί δηλαδή να υπάρξει αλγόριθμος που το επιλύει. Ένα διάσημο μη επιλύσιμο πρόβλημα είναι το πρόβλημα του τερματισμού (η εύρεση μίας Μηχανής Τούρινγκ που αποφασίζει αν μία άλλη Μηχανή Τούρινγκ θα τερματίσει με συγκεκριμένη είσοδο ή θα πέσει σε ατέρμονα βρόχο), το οποίο χρησιμεύει ώστε να ανάγονται άλλα προβλήματα σε αυτό και να αποδεικνύεται έτσι ότι είναι μη επιλύσιμα. Η Μηχανή Τούρινγκ είναι το πιο ισχυρό μοντέλου υπολογισμού γιατί διαθέτει άπειρη μνήμη (την ταινία εισόδου / εξόδου), ενώ τα πεπερασμένα αυτόματα και τα αυτόματα στοίβας έχουν σοβαρούς περιορισμούς μνήμης (στα πρώτα η μνήμη τους είναι κωδικοποιημένη στις καταστάσεις τους ενώ τα δεύτερα έχουν επιπλέον και μια στοίβα).

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

Τα προβλήματα του NP που δε φαίνεται να ανήκουν στο P έχουν την ιδιότητα να ανάγονται όλα σε ένα μικρό σύνολο βασικών και καλά μελετημένων προβλημάτων. Αυτή η ιδιότητα ονομάζεται πληρότητα και αυτά τα προβλήματα ονομάζονται NP-πλήρη.Έχει αποδειχθεί ότι αν ανακαλυφθεί κάποτε Μηχανή Τούρινγκ που να επιλύει κάποιο από αυτά ντετερμινιστικά σε πολυωνυμικό χρόνο (οπότε αυτό θα ανήκει στο P), τότε όλα τα NP-πλήρη προβλήματα θα ανήκουν στο P. Όπως προαναφέρθηκε αυτό δε θεωρείται πιθανό.

Βιβλιογραφία

Στοιχεία Θεωρίας Υπολογισμού, Harry Lewis και Χρήστος Παπαδημητρίου, Εκδόσεις Κριτική