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

Τεχνολογία

Η μηχανή Turing (MT) είναι ένας αφηρημένος εκτελεστής (abstract computing machine).

Συνδυασμοί αλγορίθμων είναι το όνομα που δίνεται σε έναν αριθμό συγκεκριμένων τρόπων κατασκευής νέων αλγορίθμων από πολλούς δεδομένους.

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

Οι συνδυασμοί αλγορίθμων για μια μηχανή Turing περιγράφονται από λειτουργίες σε μηχανές Turing.

1. Λειτουργία σύνθεσης.

Έστω M 1 και M 2 μηχανές Turing που έχουν το ίδιο εξωτερικό αλφάβητο A« (a 0 ,a 1 ,...,a p ). Ας συμβολίσουμε τα σύνολα των καταστάσεων τους ως Q1 « (q 0 ,q 1 ,...,q n ) και Q2 « (q 0" ,q 1" ,...,q m" ).

Ορισμός.

Μια σύνθεση των μηχανών M 1 και M 2 είναι μια μηχανή, που συμβολίζεται M=M 1 ×M 2 , της οποίας το πρόγραμμα έχει το αλφάβητο A, το σύνολο των καταστάσεων Q« (q 0 ,q 1 ,...,q n ,q n +1 ,... ,q n+m ) και προκύπτει από τα προγράμματα των μηχανών M 1 και M 2 ως εξής: παντού στο πρόγραμμα της μηχανής M 1 όπου υπάρχουν «τριπλάσια» με το σύμβολο q 1 ( η τελική κατάσταση της μηχανής M 1), αντικαθίσταται από το σύμβολο q 0" (η αρχική κατάσταση της μηχανής M 2), όλα τα άλλα σύμβολα στα προγράμματα των μηχανών M 1 και M 2 παραμένουν αμετάβλητα (τελικά, απομένει να επαναριθμηθούν όλες οι καταστάσεις της μηχανής M: (q 0 ,q 1" ,q 2 ,...,q n ,q 0 " ,q 2" ,...,q m" )).

Η σύνθεση αρχίζει να "λειτουργεί" σαν μηχανή M 1 , αλλά σε εκείνες τις περιπτώσεις που το μηχάνημα M 1 πρέπει να σταματήσει, υπάρχει αλλαγή στο πρόγραμμα του μηχανήματος M 2 λόγω αντικατάστασης του q 1 από το q 0 ". είναι προφανές ότι η λειτουργία σύνθεσης είναι συνειρμική, αλλά όχι ανταλλακτική.

Η λειτουργία του είναι ισοδύναμη με τη διαδοχική λειτουργία των μηχανών Τ1 και Τ2.

Το σχήμα δείχνει τη σύνθεση των μηχανών Turing που υλοποιεί τον τελεστή υπέρθεσης για n=1 και m=1.

Εικόνα 1.

Ορισμός.

Μια επανάληψη μιας μηχανής Turing M είναι η μηχανή

2. Λειτουργία υποκαταστήματος.

Έστω M 1 , M 2 και M 3 μηχανές Turing με το ίδιο εξωτερικό αλφάβητο A« (a 0 ,a 1 ,...,a i ,...,a j ,...,a p ) και, κατά συνέπεια, σύνολα καταστάσεις : Q1 « (q 0 ,q 1 ,...,q n ), Q2 « (q 0" ,q 1" ,...,q m" ), Q3 « (q 0", q 1" ,.. ., q l").

Ορισμός.

Το αποτέλεσμα μιας λειτουργίας διακλάδωσης στις μηχανές Turing M 1 , M 2 και M3 είναι μια μηχανή Turing M της οποίας το πρόγραμμα λαμβάνεται από τα προγράμματα μηχανής M 1 , M 2 και M 3 ως εξής: γράφεται το πρόγραμμα μηχανής M1 και μετά η μηχανή εκχωρούνται τα προγράμματα M 2 και M 3. Εάν το σύμβολο a i παρατηρείται στην τελική κατάσταση q 1 της μηχανής M1, τότε ο έλεγχος μεταφέρεται στη μηχανή M 2 , δηλ. το σύμβολο q 1 αντικαθίσταται από το σύμβολο q 0" και το μηχάνημα M 2 αρχίζει να λειτουργεί. Εάν, ωστόσο, το σύμβολο a j παρατηρηθεί στην τελική κατάσταση q 1 της μηχανής M 1, τότε ο έλεγχος μεταφέρεται στη μηχανή M 3 , δηλαδή το σύμβολο q 1 αντικαθίσταται από το σύμβολο q 0" και η μηχανή M 3 αρχίζει να λειτουργεί. Όλοι οι άλλοι χαρακτήρες στα προγράμματα των μηχανών M 1 και M 2 παραμένουν αμετάβλητοι. Το μηχάνημα M τερματίζει στην τελική κατάσταση q 1 (συμπερασματικά, μένει να πραγματοποιηθεί μια συνεχής αναμέτρηση των καταστάσεων της μηχανής M).

Το αποτέλεσμα της λειτουργίας διακλάδωσης στις μηχανές Turing M 1 , M 2 και M3 συμβολίζεται ως εξής:

Για μηχανές Turing δύο γραμμάτων (μηχανές Turing με αλφάβητο δύο γραμμάτων), η λειτουργία διακλάδωσης σε αυθαίρετες μηχανές Turing M1 , M2 και M3 συμβολίζεται ως εξής:

εκείνοι. εάν το σύμβολο a 0 παρατηρείται κατά τη λειτουργία της μηχανής M1 στην κατάσταση q 1 , τότε ο έλεγχος μεταφέρεται στη μηχανή M2 , διαφορετικά, στη μηχανή M3.

3. Ποδηλατική λειτουργία.

Έστω M μια μηχανή Turing με αλφάβητο A« (a 0 ,a 1 ,...,a p ) και σύνολο κατάστασης Q« (q 0 ,q 1 ,...,q n ).

Ορισμός.

Το αποτέλεσμα της λειτουργίας βρόχου θα ονομάζεται μηχανή Turing, που συμβολίζεται με (i=0,2,3,...,n; j=0,1,2,...,p; s=0,2, 3,..., ιδ)

του οποίου το πρόγραμμα προκύπτει από το πρόγραμμα της μηχανής Μ αντικαθιστώντας την εντολή q i a j ®q 1 a t r, rн(L,R,L), t=0,1,2,...p, το σύμβολο q 1 με το σύμβολο q s στο επακόλουθο e.

2.4 Παραλλαγές μηχανών Turing

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

Ως παράδειγμα μιας τέτοιας ισοδυναμίας, εξετάστε τη μείωση οποιουδήποτε ΜΤ σε ΜΤ που λειτουργεί σε μια ημι-άπειρη ταινία .

Θεώρημα:Για οποιαδήποτε μηχανή Turing, υπάρχει μια αντίστοιχη μηχανή Turing που λειτουργεί σε μια ημι-άπειρη ταινία.

Απόδειξη:

Εξετάστε την απόδειξη του Yu. G. Karpov. Η απόδειξη αυτού του θεωρήματος είναι εποικοδομητική, δηλαδή θα δώσουμε έναν αλγόριθμο με τον οποίο, για οποιαδήποτε μηχανή Turing, μπορεί να κατασκευαστεί μια ισοδύναμη μηχανή Turing με δηλωμένη ιδιότητα. Πρώτον, αριθμούμε αυθαίρετα τα κελιά της ταινίας εργασίας MT, δηλαδή προσδιορίζουμε τη νέα θέση των πληροφοριών στην ταινία:

Εικόνα 1.

Στη συνέχεια, επαναριθμούμε τα κελιά και θα υποθέσουμε ότι το σύμβολο "*" δεν περιέχεται στο λεξικό MT:

Εικόνα 1.

2.5 Υπολογισιμότητα και αποφασιστικότητα Turing

Αποδείχθηκε παραπάνω ότι οι κατηγορίες συναρτήσεων που μπορούν να υπολογιστούν χρησιμοποιώντας αναδρομικές συναρτήσεις, μηχανές Turing ή κανονικούς αλγόριθμους Markov συμπίπτουν. Αυτό μας επιτρέπει να θεωρήσουμε την έννοια του «υπολογιστικού αλγόριθμου» αμετάβλητη στη μέθοδο περιγραφής. Διαφορές παρατηρούνται μόνο στη χρήση αλγοριθμικών αντικειμένων. Εάν για τις αναδρομικές συναρτήσεις τα αντικείμενα είναι αριθμοί και αριθμητικές συναρτήσεις και η διαδικασία υπολογισμού καθορίζεται από τους τελεστές υπέρθεσης, αναδρομής, ελαχιστοποίησης και επανάληψης, τότε για τις μηχανές Turing τέτοια αντικείμενα είναι σύμβολα του αλφαβήτου της εξωτερικής και εσωτερικής μνήμης και ο υπολογισμός Η διαδικασία καθορίζεται από ένα πρωτόκολλο που χρησιμοποιεί την έξοδο, τη μετάβαση και την κίνηση της κεφαλής. Για έναν κανονικό αλγόριθμο Markov, τέτοια αντικείμενα είναι λέξεις ή ακολουθίες χαρακτήρων και η διαδικασία υπολογισμού καθορίζεται από κανόνες αντικατάστασης ή προϊόντα που αλλάζουν τη σύνθεση και τη δομή της αρχικής ακολουθίας χαρακτήρων στο επιθυμητό αποτέλεσμα.

Αριθμητική (αριθμητική) συνάρτηση είναι μια συνάρτηση της οποίας το εύρος είναι υποσύνολο του συνόλου N και της οποίας το πεδίο ορισμού είναι στοιχείο του συνόλου N.

Για αλγοριθμικά προβλήματα, μια τυπική κατάσταση είναι όταν πρέπει να βρείτε έναν αλγόριθμο για τον υπολογισμό μιας αριθμητικής συνάρτησης f(x 1 , x 2 , …, x n) ανάλογα με τις ακέραιες τιμές των ορισμάτων x 1 , x 2 , …, x n .

Ονομάζουμε μια συνάρτηση f:N n →N υπολογίσιμη εάν υπάρχει ένας αλγόριθμος που επιτρέπει σε οποιοδήποτε σύνολο τιμών των ορισμάτων της να υπολογίσει την τιμή της συνάρτησης (ή υποδεικνύει ότι η συνάρτηση δεν ορίζεται σε αυτό το σύνολο). Δεδομένου ότι ο ορισμός μιας υπολογίσιμης συνάρτησης χρησιμοποιεί τη διαισθητική έννοια ενός αλγορίθμου, ο όρος "διαισθητικά υπολογίσιμη συνάρτηση" χρησιμοποιείται συχνά αντί του όρου "υπολογίσιμη συνάρτηση". Έτσι, ένα πρόβλημα μάζας έχει λύση εάν η αριθμητική συνάρτηση που αντιστοιχεί σε αυτό το πρόβλημα είναι διαισθητικά υπολογίσιμη.

Η συνάρτηση f(x 1 , x 2 , …, x n) ονομάζεται αποτελεσματικά υπολογίσιμη εάν για τις δεδομένες τιμές k 1 , k 2 , …, k n των ορισμάτων, μπορείτε να βρείτε την τιμή της συνάρτησης f(k 1 , k 2 , …,k n) χρησιμοποιώντας κάποια διαθέσιμη μηχανική διαδικασία (αλγόριθμος).

Αντί να αποσαφηνιστεί η έννοια του αλγορίθμου, μπορεί κανείς να εξετάσει μια τελειοποίηση της έννοιας της «υπολογίσιμης συνάρτησης». Συνήθως, ενεργούν με τον ακόλουθο τρόπο:

1. Εισάγεται μια ακριβώς καθορισμένη κατηγορία συναρτήσεων.

2. Βεβαιωθείτε ότι όλες οι συναρτήσεις από αυτήν την κλάση είναι υπολογίσιμες.

3. Αποδεχτείτε την υπόθεση (θέση) ότι η κλάση των υπολογίσιμων συναρτήσεων συμπίπτει με την εισαγόμενη κατηγορία συναρτήσεων.

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

διατριβή Turing. Οποιοσδήποτε διαισθητικός αλγόριθμος μπορεί να εφαρμοστεί χρησιμοποιώντας κάποια μηχανή Turing.

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

Θα πρέπει να σημειωθεί ότι σε αυτές τις περιπτώσεις αρκεί η χρήση του αλφαβήτου (0,|), όπου το 0 είναι ένα κενό σύμβολο. Για παράδειγμα, οι φυσικοί αριθμοί, συμπεριλαμβανομένου του 0, κωδικοποιούνται σε αυτό το αλφάβητο ως εξής: 0 - |; 1 - ||; 2-

Ν - ||…| (n + 1 φορές). Μια μερική αριθμητική n τοπική συνάρτηση f(x1 , x2 , …, xn) ονομάζεται υπολογίσιμη Turing εάν υπάρχει μια μηχανή M που την υπολογίζει με την ακόλουθη έννοια: 1. Εάν το σύνολο των τιμών των ορισμάτων ανήκει στο πεδίο ορισμού της συνάρτησης f , τότε η μηχανή M, ξεκινά την εργασία στη διαμόρφωση 0 |x1+1 0 |x2+1 … 0 |xn q1 |, όπου |x = ||… | (x φορές) , και ο πιο δεξιός χαρακτήρας γίνεται αποδεκτός, σταματάει, καταλήγοντας στη διαμόρφωση 0|yq0 |, όπου y = f(x1 , x2 , …, xn). 2. Αν το σύνολο των τιμών των ορισμάτων δεν ανήκει στο πεδίο ορισμού της συνάρτησης f, τότε το μηχάνημα Μ, ξεκινώντας την εργασία στην αρχική διαμόρφωση, λειτουργεί επ' αόριστον, δηλαδή δεν έρχεται στην τελική κατάσταση. Μια μηχανή Turing είναι ένας ακριβής επίσημος ορισμός ενός αλγορίθμου. Χρησιμοποιώντας αυτή την έννοια, μπορεί κανείς να αποδείξει τη δυνατότητα επίλυσης ή μη αποφασιστικότητας των αλγοριθμικών προβλημάτων. Εάν βρεθεί ένας αλγόριθμος υπολογισμού για να λύσει ένα πρόβλημα που ανήκει σε μια μεμονωμένη κατηγορία προβλημάτων, τότε το πρόβλημα λέγεται ότι είναι ένα αλγοριθμικά επιλύσιμο πρόβλημα. Με άλλα λόγια, υποχρεωτική προϋπόθεση για την υπολογισιμότητα ή την αποτελεσματικότητα ενός υπολογισμού είναι η αλγοριθμική επιλυσιμότητα του. Υπό αυτή την έννοια, η έννοια της «αποφασιστικότητας» είναι επίσης μια βασική έννοια στη θεωρία των αλγορίθμων. Μια ανάλυση τριών τύπων μοντέλων δείχνει ότι οι κύριες ιδιότητες της διακριτικότητας, του ντετερμινισμού, του μαζικού χαρακτήρα και της αποτελεσματικότητας παραμένουν αμετάβλητες για διάφορες μεθόδους περιγραφής: Ιδιότητα διακριτικότητας: ο αλγόριθμος αποτελείται από ξεχωριστές στοιχειώδεις ενέργειες που εκτελούνται βήμα προς βήμα. το σύνολο των στοιχειωδών βημάτων που συνθέτουν την αλγοριθμική διαδικασία είναι πεπερασμένο και μετρήσιμο. Ιδιότητα ντετερμινισμού: μετά από κάθε βήμα, δίνεται μια ακριβής ένδειξη πώς και με ποια σειρά πρέπει να εκτελεστούν τα ακόλουθα βήματα της αλγοριθμικής διαδικασίας. Ιδιότητα χαρακτήρα μάζας: η χρήση ενός αλγορίθμου είναι αποδεκτή για ένα σύνολο αλγοριθμικών αντικειμένων ενός δεδομένου τύπου και μιας δεδομένης κατηγορίας προβλημάτων. Ιδιότητα αποδοτικότητας: η διακοπή της αλγοριθμικής διαδικασίας είναι υποχρεωτική μετά από έναν πεπερασμένο αριθμό βημάτων που υποδεικνύουν το επιθυμητό αποτέλεσμα. Ωστόσο, η διατριβή δεν μπορεί να αποδειχθεί, καθώς συνδέεται με την ακριβή έννοια της υπολογισιμότητας του Turing με την ανακριβή έννοια μιας διαισθητικά υπολογίσιμης συνάρτησης.

ΤΟ ΠΡΟΒΛΗΜΑ ΤΗΣ ΑΥΤΟΕΦΑΡΜΟΓΗΣ

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

Π: τσιένα ajένα ® q rένα όπως καιένα S tένα , a = 1, 2, …, k , όπου S1-R, S2- Λ, S3- ντο . (*)

Σε αυτή την περίπτωση, μπορούμε να υποθέσουμε ότι υπάρχουν μερικά κοινά αλφάβητα Α0και Q0, στο οποίο γράφονται χαρακτήρες ένα και q για όλες τις μηχανές Turing. Μετά τα σύμβολα τσιένα, ajένα , q rένα, όπως καιένα, S tέναείναι σύμβολα αλφαβήτων Α0και Q0.

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

Αρίθμηση Gödel των μηχανών Turing. Αφήνω p1, p2, p3 , … - μια ακολουθία πρώτων αριθμών διατεταγμένων σε αύξουσα σειρά, για παράδειγμα, 2, 3, 5, 7, 11, 13, …

Αριθμός μηχανής Turing με πρόγραμμα (*)κάλεσε έναν αριθμό

n(T) = .

Παράδειγμα

Ένα μηχάνημα που υλοποιεί μια λειτουργία μικρό(Χ)= x + 1 , έχει πρόγραμμα στο αλφάβητο {0,  } . Ο αριθμός αυτού του προγράμματος, λαμβάνοντας υπόψη το γεγονός ότι ένα 0 = 0 , Α'1= | ο αριθμός θα είναι:

n(T)= 2 1 3 1 5 1 7 1 11 1 13 1 17 0 19 0 23 1 29 3 .

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

Αυτοκίνητο Τεφαρμόζεται στη λέξη n(Τ)(δηλαδή στον κωδικό του δικού σας αριθμού), που ονομάζεται αυτο-εφαρμοστέο .

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

Το πρόβλημα της αυτο-εφαρμογήςσυνίσταται στα εξής: να υποδείξει έναν αλγόριθμο που, δεδομένης οποιασδήποτε μηχανής Turing, θα καθόριζε εάν είναι αυτο-εφαρμόσιμος ή όχι.

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

Ας, για παράδειγμα, αυτό το μηχάνημα Τεφαρμόζεται στον κώδικα n * ) . Αν το μηχάνημα Τ * αυτο-εφαρμόζεται, στη συνέχεια η τελική διαμόρφωση του μηχανήματος Τέχει τη μορφή ένα" q0 | ΣΙ", και αν το μηχάνημα Τ * δεν είναι αυτοδύναμη, τότε η τελική διαμόρφωση του μηχανήματος Τέχει τη μορφή ένα" q0 ". Εδώ α", Β", α", Β"- οι λέξεις.

ΘεώρημαΤο πρόβλημα της αυτο-εφαρμογής είναι αλγοριθμικά άλυτο, δηλαδή δεν υπάρχει μηχανή Turing που να λύνει αυτό το πρόβλημα με την παραπάνω έννοια.

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

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

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

Όσον αφορά τις μηχανές Turing, παρόμοια με τη διατύπωση του προβλήματος της αυτο-εφαρμογής, αυτό το πρόβλημα διατυπώνεται ως εξής: είναι δυνατόν να κατασκευαστεί μια μηχανή που θα μπορούσε να εφαρμοστεί σε όλες τις λέξεις της μορφής n(Τ)0 Χ , όπου Ττυχαία μηχανή, Χ είναι λέξη αυθαίρετη, και αν η μηχανή Τισχύει για τη λέξη Χ ένα" q0 |Β" , και αν το αυτοκίνητο Τδεν ισχύει για τη λέξη Χ , θα οδηγούσε στην τελική διαμόρφωση ένα" q0 0Β" . Εδώ α", Β"και α", Β"- αυθαίρετες λέξεις.

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

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


Αρίθμηση αλγορίθμων

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

Η αρίθμηση των αλγορίθμων είναι ταυτόχρονα και η αρίθμηση όλων των αλγοριθμικά υπολογισμένων συναρτήσεων και κάθε συνάρτηση μπορεί να έχει άπειρο αριθμό αριθμών.

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

Έστω ότι υπάρχει κάποιο πρόβλημα μάζας με ένα σύνολο αρχικών αντικειμένων X και ένα σύνολο επιθυμητών αντικειμένων Y. Για την ύπαρξη λύσης στο πρόβλημα μάζας, είναι απαραίτητο τα στοιχεία των συνόλων X και Y να είναι κατασκευαστικά αντικείμενα. Επομένως, τα στοιχεία αυτών των συνόλων μπορούν να απαριθμηθούν με φυσικούς αριθμούς. Έστω x∈ X κάποιο αρχικό αντικείμενο, συμβολίζουμε με n(x) τον αριθμό του. Εάν στο πρόβλημα μάζας απαιτείται να ληφθεί το επιθυμητό αντικείμενο y∈ Y με τον αριθμό n(y) από το αρχικό αντικείμενο x, τότε ορίζουμε μια αριθμητική συνάρτηση f: Nn →N τέτοια ώστε f(n(x))= n(y).

Ως παράδειγμα κατασκευής αριθμητικών συναρτήσεων για προβλήματα μάζας, εξετάστε τα προβλήματα μάζας.

1. Εάν δίνεται ένας πίνακας ] φυσικών αριθμών, τότε μπορεί να συσχετιστεί με έναν φυσικό αριθμό 2x1, 3x2,... p(n)xn , όπου p(n) είναι ο ν-ος πρώτος αριθμός. Εξετάστε για παράδειγμα έναν πίνακα μήκους 5:

] 2x13x25x37x411x5.

Αυτή η αρίθμηση ορίζει την αριθμητική συνάρτηση f (για παράδειγμα, f(73500) = f(22315372110) = 20315272113 = 4891425).

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

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

3. Η αρίθμηση των κειμένων του προγράμματος μπορεί να γίνει ως εξής: οποιοδήποτε πρόγραμμα μπορεί να εκληφθεί ως εγγραφή ενός αριθμού στο σύστημα αριθμών 256 (εάν χρησιμοποιήθηκαν χαρακτήρες πίνακα ASCII για τη σύνταξη του προγράμματος).

Η μετάβαση από ένα πρόβλημα μάζας σε μια αριθμητική συνάρτηση μας επιτρέπει να μειώσουμε το ζήτημα της ύπαρξης λύσης στο πρόβλημα μάζας στο ζήτημα της ύπαρξης ενός αποτελεσματικού τρόπου υπολογισμού των τιμών μιας αριθμητικής συνάρτησης από το όρισμά της( μικρό).

Αρίθμηση συνόλων αριθμών

Στη θεωρία των αλγορίθμων, έχει γίνει ευρέως διαδεδομένη μια τεχνική που καθιστά δυνατή τη μείωση της μελέτης συναρτήσεων πολλών μεταβλητών στη μελέτη συναρτήσεων μιας μεταβλητής. Βασίζεται στην απαρίθμηση συνόλων αριθμών, έτσι ώστε να υπάρχει μια διπλή αντιστοιχία μεταξύ των συνόλων αριθμών και των αριθμών τους, και οι συναρτήσεις που καθορίζουν τον αριθμό του από ένα σύνολο αριθμών και από τον αριθμό του ίδιου του συνόλου αριθμών είναι γενικές αναδρομικές . Για παράδειγμα, για μια συνάρτηση που περιέχει δύο ανεξάρτητες μεταβλητές (x, y), αυτή η αντιστοίχιση h(x, y) μπορεί να μοιάζει με αυτό:

Εικόνα 1.

Έστω τα ζεύγη (x, y) να σχηματίσουν ένα μερικώς διατεταγμένο σύνολο N (2) . Δίνεται h(x, y) = n, τότε υπάρχει μια αντίστροφη αντιστοίχιση: x = h -1 1 (n) και y= h -1 2 (n), δηλαδή h(h -1 1 (n), h - 1 2 (n)) = n. Αυτό σας επιτρέπει να υπολογίσετε τον αριθμό n για οποιοδήποτε ζεύγος (x, y) και, αντίθετα, να υπολογίσετε τις τιμές των x και y από τον αριθμό n:

Χρησιμοποιώντας αυτούς τους κανόνες, μπορεί κανείς να υπολογίσει την αρίθμηση των τριπλών h 2 (x, y, z) = h(h(x, y), z) = n και, αντίθετα, με τον αριθμό του τριπλού - τις τιμές x , y, z. Για παράδειγμα, αν h 2 (x, y, z) = n, τότε z= h -1 2 (n), y= h -1 2 (h -1 1 (n)), x= h -1 1 ( h -1 1 (n)), h 2 (x, y, z) = h(h(h -1 1 (h -1 1 (n)), h -1 2 (h -1 1 (n)) ), h -1 2 (n)). Οι τριάδες (x, y, z) σχηματίζουν ένα μερικώς διατεταγμένο σύνολο N (3) . Ομοίως, για έναν αυθαίρετο αριθμό αριθμών έχουμε:

h n-1 (x1, x2,…, xn)=h(h…h(h(x1, x2), x3)… x n-1), xn). Αν h n-1 (x1, x2,…, xn)=m, τότε xn = h -1 2 (m), x n-1 =h -1 2 (h -1 1 (m)), ... ................................., x2 = h -1 2 (h -1 1 (... h -1 1 (m)...)), x1 = h -1 2 (h (...h (m)...)).

Έχοντας την αρίθμηση των συνόλων των συνόλων N (1) , N (2) ,..., N (i) ,..., N(n , όπου N (i) είναι το σύνολο των συνόλων (i) αριθμών, μπορεί κανείς να δημιουργήσει μια συνδυασμένη αρίθμηση αυθαίρετων συνόλων αριθμών M = N (1) N (2) ... N (i) .. N(n) , όπου M N. Για οποιοδήποτε n N έχουμε h(x1,x2, ..., xn )= h(h n −1 (x1,x2,..., xn), n −1).

Αν h(x,1x ,2..., x)n = m, τότε h n−1 (x ,1x ,2..., x)n = h -1 1 (m), n= h -1 2 (m)+1. Χρησιμοποιώντας τους παραπάνω τύπους, μπορείτε να ανακτήσετε τις τιμές των x1, x2,…, xn.


Παρόμοιες πληροφορίες.


Λειτουργία μηχανής Turing:

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

Μια μηχανή Turing λειτουργεί με τρία αλφάβητα:

1. αλφάβητο εισαγωγής ΑΛΛΑ={ένα 0a n), με τη βοήθεια των οποίων καταγράφονται πληροφορίες εισόδου, ενδιάμεσων, εξόδου. ένα 0– κενός χαρακτήρας (μη σημαντικό μηδέν, Ù, ΣΤΟ, #), Α'1– 1 ή |

2. εσωτερικό αλφάβητο, ή αλφάβητο των κρατών Q={q0q m}, q0- τελική κατάσταση q 1- αρχική κατάσταση q 0 …q n- κατάσταση λειτουργίας

3. αλλαγή αλφαβήτου (L, V, N) ή (-1, +1, 0) (αριστερά, δεξιά, στη θέση του)

Μια μηχανή Turing αποτελείται από τα ακόλουθα μέρη:

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

2) συσκευή ελέγχου(UU), που με τη βοήθεια του προγράμματος ελέγχει τη μηχανή Turing. Το CU ανά πάσα στιγμή μπορεί να βρίσκεται μόνο σε μία από τις καταστάσεις του αλφαβήτου Q.

3) κεφάλι(αναγνώστης και συγγραφέας) σε κάθε χρονική στιγμή εκτελεί τις παρακάτω ενέργειες

διαβάζει τον χαρακτήρα που είναι γραμμένος στο κελί

το αντικαθιστά με έναν άλλο χαρακτήρα του αλφαβήτου ΑΛΛΑή αφήστε το ίδιο

μετατοπίζεται κατά μήκος της ταινίας προς τα δεξιά, προς τα αριστερά κατά ένα κελί ή παραμένει στη θέση του

Κανόνας της μηχανής Turing:

Μηχανή Turing, να είσαι σε κατάσταση τσικαι διαβάζοντας τον χαρακτήρα aj, γράφει έναν χαρακτήρα σε αυτό το κελί ένα κ, πηγαίνει στο κράτος q ε, εκτελεί μετατόπιση. Ταυτόχρονα, λένε ότι το μηχάνημα έχει εκτελέσει μία εντολή: a j q i® a k q e S SО(L, P, N)

Το σύνολο των εντολών ονομάζεται πρόγραμμα MT.

a j q i– οι αρχικοί χαρακτήρες των εντολών πρέπει να είναι διαφορετικοί. Εάν πληρούται αυτή η προϋπόθεση, καλείται το μηχάνημα ντετερμινιστική , σε διαφορετική περίπτωση - μη ντετερμινιστικό . Το μηχάνημα λειτουργεί σε διακριτούς χρόνους.

Έτσι, μια πλήρης περιγραφή της μηχανής Turing σε κάθε χρονική στιγμή, με την οποία μπορεί να προσδιοριστεί η περαιτέρω συμπεριφορά της, περιέχει πληροφορίες σχετικά με:

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



Η λειτουργία μιας μηχανής Turing μπορεί να αναπαρασταθεί ως μια ακολουθία διαμορφώσεων κ 1® k2®…® k n.

Η προεπιλεγμένη αρχική διαμόρφωση είναι η ανάγνωση του αριστερότερου μη κενού χαρακτήρα στην κατάσταση q 1

Τυπική τελική διαμόρφωση - το μηχάνημα έχει εισέλθει στην τελική κατάσταση:

Εάν το μηχάνημα έχει εισέλθει στην τελική κατάσταση, ισχύει για τη δεδομένη λέξη εισόδου, εάν λειτουργεί επ' αόριστον, τότε το μηχάνημα δεν ισχύει για τη δεδομένη λέξη.

Το MT είναι ένα σύνολο που αποτελείται από το αλφάβητο εισόδου, το αλφάβητο των καταστάσεων και το πρόγραμμα. Μ= . A - αλφάβητο εισαγωγής Q - εσωτερικό αλφάβητο P - πρόγραμμα

Το πρόγραμμα του μηχανήματος μπορεί να ρυθμιστεί ως εξής:

1) λίστα εντολών: a j q i® a k q n S

2) χρησιμοποιώντας τον πίνακα

ένα 0 Α'1 Α2
q0 a k, q m, S
q 1

3) χρησιμοποιώντας ένα γράφημα κατηγορήματος (οι κορυφές είναι καταστάσεις, κάθε εντολή αντιστοιχεί σε ένα τόξο)

Σχεδιασμός μηχανών Turing:

Σχεδιάστε μια μηχανή Turing - κατασκευάστε το πρόγραμμά της. Γίνεται σε δύο στάδια:

1) λεκτική περιγραφή του αλγορίθμου του προβλήματος που επιλύεται

2) μετάφραση της λεκτικής περιγραφής του αλγορίθμου στη γλώσσα της μηχανής Turing (για αυτό, ΕΝΑ, Q, Π)

Παράδειγμα: κατασκευάστε μια μηχανή Turing που αξιολογεί τη συνάρτηση f(n)=n+1, όπου το n δίνεται δυαδικά.

ΑΛΛΑ={0,1,ένα 0), το σύνολο Q καθορίζεται στη διαδικασία κατασκευής του προγράμματος.

Αλγόριθμος:

1. μετακινήστε το κεφάλι από την άκρα δεξιά κατάσταση στην άκρα αριστερά

2. αν το μηχάνημα δείχνει 0 στην άκρα δεξιά θέση, τότε τοποθετήστε το στο κελί 1 και σταματήστε· εάν η κεφαλή γράφει 1, βάλτε το στο κελί 0 και μετακινηθείτε ένα βήμα προς τα αριστερά.



Επαναλάβετε το Βήμα 2

Παράδειγμα: Ένας φυσικός δεκαδικός αριθμός είναι γραμμένος στην ταινία. Είναι απαραίτητο να κατασκευαστεί μια μηχανή Turing που να αυξάνει αυτόν τον αριθμό κατά 1. Αρχικά, η κεφαλή δείχνει το πρώτο ψηφίο του αριθμού. Παίρνουμε: A = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a 0 ), Q = (q 1 , q 2 , q 0 ). P - βλέπε πίνακα.

q 1 0> q1 1> q1 2> q1 3> q1 4> q1
q2 1=q0 2=q0 3=q0 4=q0 5=q0
ένα 0
5> q1 6> q1 7> q1 8> q1 9> q1 ένα 0
6=q0 7=q0 8=q0 9=q0 0 1=q0

Γενική ιδέα - μετακινήστε την κεφαλή στο τελευταίο ψηφίο του αριθμού και αν αυτό το ψηφίο δεν είναι 9, τότε αυξήστε το κατά ένα, διαφορετικά γυρίστε το στο μηδέν και μεταβείτε στο προηγούμενο κελί.

Σύνθεση μηχανών:

Η σύνθεση μηχανής είναι η διαδοχική εκτέλεση δύο μηχανών.

Τ 1=(Α'1, Q1, Σ 1) Τ 2=(Α2, Ε2, Σ 2) Q1Ç Ε2

Σύνθεσημηχανές Τ 1° Τ 2κάλεσε το μηχάνημα Τ(ΕΝΑ, Q, Π), όπου ΑΛΛΑ=Α'1È Α2; Q=(Q1È Ε2)\{q 10} (q 10- τελική κατάσταση Τ 1). Αυτοκίνητο Τλειτουργεί σύμφωνα με τον ακόλουθο κανόνα: U- κάποια λέξη Τ(U)=Τ 1° Τ 2(U)=Τ 2(Τ 1(U))

Θεώρημα.Σύνθεση μηχανών Τ 1° Τ 2υπάρχει.

Q1={q 10, q 1,…, q n}

Ε2={q 20, q` 1 , …, q`n), στη συνέχεια για να κατασκευάσουμε το Q αφαιρούμε την κατάσταση q 10 , μετονομάζοντάς την σε q n +1 , που συμπίπτει με την αρχική κατάσταση της δεύτερης μηχανής, και όλες οι άλλες καταστάσεις βρίσκονται σε q` i = q n + 1 .

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

Καλείται η συνάρτηση f(x 1 …x n). Υπολογίσιμο Turingεάν υπάρχει μηχανή Turing που αξιολογεί την τιμή αυτής της συνάρτησης όταν δίνονται οι τιμές ορίσματος. Η συνάρτηση f(x 1 …x n) ορίζεται στο σύνολο των φυσικών αριθμών, αλλά η θεωρία των αλγορίθμων θεωρεί το εκτεταμένο σύνολο φυσικών αριθμών NÈ(0).

Τα ορίσματα της συνάρτησης f(x 1 ... x n) στην ταινία αντιπροσωπεύονται ως η ακόλουθη λέξη:

Κάθε όρισμα αντιστοιχεί σε τόσα sticks όσες και η τιμή αυτού του ορίσματος. Εάν η συνάρτηση f ορίζεται σε ένα δεδομένο σύνολο τιμών της μεταβλητής x 1 ... x n, τότε ως αποτέλεσμα της λειτουργίας της μηχανής Turing, ο αριθμός των ραβδιών που καταγράφονται σε μια σειρά στην ταινία πρέπει να είναι ίσος στην τιμή της συνάρτησης σε αυτό το σύνολο. Εάν η συνάρτηση f δεν ορίζεται στο δεδομένο σύνολο, τότε η μηχανή Turing πρέπει να λειτουργεί επ' αόριστον.

Αρχική διαμόρφωση - διαβάζοντας το αριστερό ραβδί.

Ορισμός, λειτουργία και τρόποι ορισμού μηχανής Turing

Ως μηχανή Turing νοείται κάποια υποθετική (αφηρημένη) μηχανή που αποτελείται από τα ακόλουθα μέρη (Εικ. 3.1.)

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

2) μια συσκευή ελέγχου (κεφαλή εργασίας), η οποία ανά πάσα στιγμή μπορεί να βρίσκεται σε μία από τις καταστάσεις από το σετ . Σε κάθε μια από τις καταστάσεις, η κεφαλή τοποθετείται απέναντι από το κελί και μπορεί να διαβάσει (προβολή) ή να γράψει ένα γράμμα από το αλφάβητο σε αυτό ΑΛΛΑ.


Ρύζι. 3.1. Μηχανή Turing

Η λειτουργία του ΜΤ αποτελείται από μια ακολουθία στοιχειωδών βημάτων (κύκλων). Κάθε βήμα κάνει τα εξής:

1. η κεφαλή εργασίας διαβάζει (βλέπει) τον χαρακτήρα.

2. Ανάλογα με την κατάστασή του και το παρατηρούμενο σύμβολο, η κεφαλή δημιουργεί ένα σύμβολο και το γράφει στο παρατηρούμενο κελί (πιθανώς =) ;

3. το κεφάλι μετακινεί ένα κελί προς τα δεξιά (R), αριστερά (ΜΕΓΑΛΟ)ή μείνε στη θέση του (ΜΙ);

4. Το κεφάλι εισέρχεται σε διαφορετική εσωτερική κατάσταση. (πιθανόν =).

Η κατάσταση ονομάζεται αρχική, - οριστική. Κατά την είσοδο στην τελική κατάσταση, το μηχάνημα σταματά.

Η πλήρης κατάσταση του ΜΤ ονομάζεται διαμόρφωση . Αυτή είναι η κατανομή των γραμμάτων στα κελιά της ταινίας, η κατάσταση της κεφαλής εργασίας και του παρακολουθούμενου κελιού. Διαμόρφωση σε διακριτικότητα tγράφεται ως: , όπου είναι η υπολέξη στα αριστερά του κελιού που παρακολουθείται, είναι το γράμμα στο παρακολουθούμενο κελί, είναι η υπολέξη στα δεξιά.

Η αρχική διαμόρφωση και η τελική ονομάζονται τυπικές.

Υπάρχουν 3 τρόποι για να περιγράψετε τη λειτουργία του MT:

Προβολή συστήματος εντολών

Πίνακας λειτουργιών;

Γράφημα (διάγραμμα) μεταπτώσεων.

Ας τα δούμε με παραδείγματα.

Παράδειγμα 1Κατασκευάστε ένα ΜΤ που υλοποιεί τη συνένωση δύο λέξεων στο αλφάβητο. Οι λέξεις στην κασέτα χωρίζονται με * . Η αρχική διαμόρφωση είναι στάνταρ.

Το σύστημα εντολών MT έχει τη μορφή:

Στην κατάσταση, η κεφαλή μετακινείται προς τα δεξιά σε έναν κενό χαρακτήρα.

Ο πιο δεξιός χαρακτήρας διαγράφεται.

Ο αστερίσκος διαγράφεται αν η πρώτη λέξη είναι κενή.

Η δεξιά λέξη μετατοπίζεται προς τα αριστερά κατά μία θέση χαρακτήρα ανά χαρακτήρα.

Μετάβαση στην τυπική διαμόρφωση στόχου.

Πίνακας λειτουργιών

ένα σι * μεγάλο
-
-
-
-

Οι παύλες στον πίνακα σημαίνουν ότι το l δεν μπορεί να συναντηθεί σε καταστάσεις.



a/aL b/bL
Το διάγραμμα μετάβασης μοιάζει με:
a/aR b/bR */*R

Τυπική τελική διαμόρφωση.

Ο υπολογισμός μιας συνάρτησης λεξικού στο MT θα γίνει κατανοητός ως εξής. Αφήστε τη λέξη a να γραφτεί στην κασέτα στην αρχική διαμόρφωση. Εάν η τιμή έχει καθοριστεί, τότε μετά από έναν πεπερασμένο αριθμό βημάτων (κύκλων) το μηχάνημα πρέπει να μεταβεί στην τελική διαμόρφωση, στην οποία η λέξη είναι γραμμένη στην ταινία. Διαφορετικά, το MT θα πρέπει να λειτουργεί επ' αόριστον.

Χρησιμοποιώντας το MT, μπορείτε να περιγράψετε την απόδοση των αριθμητικών πράξεων στους αριθμούς. Σε αυτήν την περίπτωση, οι αριθμοί εμφανίζονται στην ταινία ως λέξεις σε ένα αλφάβητο που αποτελείται από ψηφία κάποιου συστήματος αριθμών και χωρίζονται με ένα ειδικό σύμβολο που δεν περιλαμβάνεται σε αυτό το αλφάβητο, για παράδειγμα, *. Το πιο συχνά χρησιμοποιούμενο σύστημα είναι unary, που αποτελείται από έναν χαρακτήρα -1. Ο αριθμός Χ στην κασέτα είναι γραμμένος στη λέξη, (ή συντομογραφία) στο αλφάβητο A=(1).

Μια αριθμητική συνάρτηση είναι σωστά υπολογίσιμη (ή απλά υπολογίσιμη) με την έννοια του Turing εάν υπάρχει ένα MT που μεταφέρει τη διαμόρφωση στη διαμόρφωση όταν = y, ή εκτελείται επ' αόριστον όταν δεν έχει οριστεί.

Παράδειγμα 2Η λειτουργία της πρόσθεσης δύο αριθμών σε ενιαίο κώδικα.

Αρχική διαμόρφωση:

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

Δίνουμε μια περιγραφή του MT με τη μορφή ενός λειτουργικού πίνακα:

* μεγάλο
-
-
-

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

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

Ας περιγράψουμε 4 βασικούς τρόπους σύνθεσης ΜΤ:

Διαδοχική σύνθεση (υπέρθεση);

Παράλληλη σύνθεση;

Διακλάδωση

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


και συμβολίζεται.

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

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

Παράδειγμα 3Κατασκευάστε έναν αλγόριθμο πολλαπλασιασμού 2*Χ σε μονογενή κώδικα χρησιμοποιώντας μια μηχανή αντιγραφής που μεταφράζει τη λέξη a στη λέξη a*a και μια μηχανή πρόσθεσης. Το επιθυμητό MT μοιάζει με αυτό:


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


και σημειώνεται: .

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

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

Για την υλοποίηση παράλληλης σύνθεσης nμηχανήματα που χρησιμοποιούνται n-ταινία δαπέδου.

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

Παράδειγμα 4. Εφαρμογή παράλληλης σύνθεσης μηχανών και , υπολογιστικών συναρτήσεων στο δυαδικό σύστημα και α+βστο ενιαίο σύστημα.

Η λέξη εισαγωγής έχει τη μορφή: .

Ας περιγράψουμε τη λειτουργία του MT από ένα σύστημα εντολών:

Κίνηση προς τα δεξιά στη λέξη β

Ξαναγράφοντας τη λέξη β στον δεύτερο όροφο

Μετακίνηση αριστερά στη λέξη α

Προσθήκη 1 στο Χ.

Κίνηση προς τα δεξιά στη λέξη β.

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

Η τελική κατάσταση ολόκληρης της ΜΤ.

Θα πρέπει να σημειωθεί ότι σε όλες τις περιπτώσεις, στην αρχή του αλγορίθμου, είναι απαραίτητο να εισαχθεί ένας έλεγχος των αρχικών δεδομένων για ειδικές τιμές (συνήθως για 0), η μη συμμόρφωση με αυτήν την απαίτηση μπορεί να οδηγήσει σε βρόχο .

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

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

Το διάγραμμα μοιάζει με γράφημα:

Τιμή πίνακα μηχανής

Τραπέζι 1

  1. Μερικές λειτουργίες σε μηχανές Turing

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

Θεώρημα 1. Αν ένα
και
είναι υπολογίσιμοι ο Τούρινγκ και στη συνέχεια η σύνθεσή τους
είναι επίσης υπολογίσιμος ο Turing.

Αφήνω - μια μηχανή που υπολογίζει , ένα - μια μηχανή που υπολογίζει , και το σύνολο των καταστάσεων τους, αντίστοιχα
και
.

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

Αφήνω
ορίζεται. Επειτα
και

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

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

Το μηχάνημα κατασκευάστηκε με αυτόν τον τρόπο θα ονομαστεί σύνθεση μηχανών και και ορίζουν
()), καθώς και να απεικονίσετε σε μπλοκ διάγραμμα:

  1. Σύνθεση μηχανών Turing

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

Σύνθεση
μηχανές και που ονομάζεται αυτοκίνητοΤ , του οποίου το πρόγραμμα είναι η ένωση των συνόλων
και

, όπου
υποδηλώνει το σύνολο των εντολών που λαμβάνονται από αντικαθιστώντας όλα στο .

  1. Διακλαδώσεις Turing Machines

μηχανές διακλάδωσης,,επί
, συμβολικά

που ονομάζεται αυτοκίνητοΤ , του οποίου το πρόγραμμα προκύπτει ως εξής: από εξαιρούνται οι εντολές
και
Για
, θα κληθεί το σύνολο που προκύπτει ; έπειτα.

  1. Μηχανή Turing Universal

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

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

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


, αν

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

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

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

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