Αλγόριθμοι και Πολυπλοκότητα ΙΙ (ΜΠΛΑ)
Forum μαθήματος
Recursively Enumerable
Δύο απορίες:
1) Όταν μια γλώσσα είναι recursively enumerable, η μηχανή πρέπει πάντα να κολλάει όταν παίρνει ως είσοδο λέξη που δεν ανήκει στη γλώσσα; Ρωτάω γιατί στο αντίστοιχο μάθημα που είχα παρακολουθήσει στο προπτυχιακό του μαθηματικού, (ουσιαστικά πηγαίναμε με βάση το βιβλίο του Sipser) λέγαμε ότι υπάρχουν τρία ενδεχόμενα: yes, no, loop (δηλαδή για λέξη που δεν ανήκει στη γλώσσα μπορεί να πει όχι ή να κολλήσει).
2) Άσχετα με το προηγούμενο ερώτημα, στη σελίδα 62 στο βιβλίο του Παπαδημητρίου λέει: "If for a Machine M there is a string x such that M(x) is neither "yes" nor "loop", then, by convention, L(M)=empty." Δηλαδή αν υπάρχει έστω και μία λέξη για την οποία η ΜΤ πάει στην κατάσταση "no" ή "halt" τότε λέμε ότι η γλώσσα της είναι η κενή; Και αν αυτό ισχύει, υποθέτω ότι οι "deciders" (που λένε πάντα "yes","no") αποτελούν εξαίρεση;
Βασικά ο Παπαδημητρίου θεωρεί ότι μια γλώσσα είναι αποδεκτή από μια ΤΜ μόνο αν τερματίζει με "yes" (αν το string ανήκει στην γλώσσα) ή μπαίνει σε loop διαφορετικά. Μάλιστα στην σελίδα 62 που λες, γράφει "a machine may halt with a "no", which is incompatible with our definition of acceptance". Παρόμοιο ορισμό δίνει και στο βιβλίο που έχει γράψει με τον Lewis.
Πάντως και ο ορισμός που έχει η wikipedia συμφωνεί με τον Sipser:
"A recursively enumerable language is a formal language for which there exists a Turing machine (or other computable function) that will halt and accept when presented with any string in the language as input but may either halt and reject or loop forever when presented with a string not in the language. Contrast this to recursive languages, which require that the Turing machine halts in all cases."