Existența unor probleme vychisliteley.Algoritmicheskie universale și sisteme de algoritmice relație.
Existența unor calculatoare universale.
Acum ne gândim la asta. De fiecare dată când vom construi un program pentru un nou mașini Turing, chiar dacă suntem în acest caz utilizate pentru alte masini programul nu a asumat în mod explicit faptul că într-un fel, undeva, cineva a construit un transport cu un anumit set de condiții, se poate recunoaște și scrie caractere dintr-un anumit alfabet, etc. Construcția unui astfel de transport - în sine nu este o sarcină ușoară. Pentru fiecare algoritm nou, avem de a construi o nouă cântăreață. Se pare ca și în cazul în care fiecare program nou, a trebuit să construim un computer nou.
Și dacă nu poți construi un interpret care ar fi capabil să execute orice algoritm specificat într-un program pentru mașini Turing? Un răspuns pozitiv la această întrebare ar fi o justificare matematică pentru existența unui calculator universal, și anume, capabil să execute orice înregistrate în mod corespunzător un algoritm pentru a calcula orice funcție calculabil.
Deci, să ne trebuie să construiască o mașină universală Turing, numesc UMT, pentru care:
datele originale sunt alt program de mașină, să-l numim MT, cu datele D original al acestuia din urmă;
UMT rezultatul aplicării acestor date de intrare trebuie să fie aceeași ca și aplicarea MT la datele sale inițiale, și anume
Datorită stangacia pur tehnică nu vom da o dovadă completă a existenței UMT, ci da numai o justificare pentru existența sa. În acest raționament, vom arăta ideea de bază a dovezii.
se reprezenta ca atare UMT și descrie în mod intuitiv algoritmul de funcționare. Starea de transport imaginar vor fi scrise sub banda de celule examinate. Programul MT simulat cred încă dat într-un tabel.
Algoritmul Interpretive pentru UMT:
celula Examinat sub care este scris litera (stat);
Caute rândul din tabel desemnat prin această scrisoare;
Șirul potrivire fro trei caractere, care se află la intersecția cu coloana marcată cu litera înscrisă în celula examinată;
Înlocuiți o scrisoare la celula observată pe prima literă a trio-ului;
„!“ Dacă a doua literă este un trio, apoi se opri;
Dacă a treia litera „H“ în celulă observată, apoi șterge litera sub examinat celula si scrie a doua literă la troika (schimbarea de stare);
În cazul în care a examinat trei al treilea litera „L“, apoi șterge litera sub celula examinate, sa mutat, la stânga, și scrie oa doua literă care triplete de celule;
În cazul în care a examinat trei al treilea litera „P“, apoi șterge litera sub examinat celula, sa mutat, la dreapta și să scrie în conformitate cu această unitate a doua literă a troicii;
Mergeți la pasul 1.
Pentru a converti această descriere la programul de mașini Turing, este necesar să se rezolve două probleme majore:
Cum se setează programul și configurația MT simulate pe bandă?
Din moment ce un MT arbitrar poate fi un alfabet arbitrar, care alfabet ar trebui să fie la UMT?
Prima problemă este împărțit în două:
cum să setați programul pe bandă?
cum să setați configurația pentru a marca poziția curentă a transportului simulat MT (decizia prin simbolul sub celula curentă nu este necesară).
Programul MT va înregistra cinciari
aqbp *, în cazul în care a, bÎD; p, qÎQ; *Î.
caracterul a- aici. rând din tabelul corespunzător;
q - tabel coloană.
În Figura 4.1. prezintă diagrama funcțională liniară scriere pentru U1 (n).
Fig. 4.1. Linear înregistrare schema funcțională PTM, care calculează U1 (n).
O astfel de prezentare a programului prevede o corespondență cu formularul de înscriere de masă, și, prin urmare, nici unul dintre tabele nu este pierdut, și se adaugă nimic.
Cum se setează configurația pe bandă a mașinii simulate? Să ne amintim că, în configurația mașinilor Turing, înțelegem cuvântul pe bandă și poziția transportului în raport cu cuvântul. Aici, principala dificultate este în cazul în care pentru a înregistra caracterul stadiului actual al transportului.
Vom scrie caracterele inițiale de cuvinte pe o bandă prin celulă. În celulele goale rezultate benzi vor fi scrise la dreapta simbolului analizată starea actuală a transportului.
Acum, ia în considerare problema alfabetului. Reamintim, problema constă în faptul că UMT trebuie să aibă un anumit alfabet, care nu poate fi modificat. În același timp, nu putem ști în avans, cu unele alfabete vor lucra MT, care va interpreta UMT nostru. Soluția la această problemă - codificarea caracterelor din caractere ale alfabetului MT UMT alfabet. Este important să se asigure că:
același caracter din alfabetul MT descris întotdeauna aceeași secvență de caractere din alfabet UMT;
simboluri diferite din alfabetul MT a descris întotdeauna diferitele secvențe de simboluri din alfabetul UMT.
Ca un alfabet UMT alege alfabetul, avansat o cantitate mică de caractere auxiliare. Să presupunem că avem nevoie pentru a codifica TM simboluri, care | DMT | = k; | QMT | = m.
Ia 3 + K + m cuvinte de forma 1000 ...... 01, și anume, zero, secvență între unități. Aceste cuvinte vor fi numite grupuri de cod (KP). Figura 4.2 prezintă codul manual pentru simbolul D, Q, și
100001 în cazul în care numărul de zerouri este întotdeauna chiar.
1000001 Există întotdeauna un număr impar de zerouri
Fig. 4.2 Cod pentru caracterul manual de D, Q, și
Acum, pentru demonstrația teoremei este necesar algoritm de interpretare este scris în ceea ce privește grupurile de cod, software-ul de criptare și de configurare criptare. De exemplu, etapa 1 va suna acum este după cum urmează:
Încoace și încolo în cutia de viteze configurație cifru dispusă în partea stângă a CP, cu un număr impar de zerouri, adică Codul de starea actuală a transportului (rețineți că această configurație manual este întotdeauna același cifrul. Asigurați-vă că în ea).
Etapele 2 și 3 iau forma următoare:
Localizați un circuit funcție de cifrare perechea de manual adiacente care coincide cu o pereche KP configurație cifru în care primul manual - naviga și etc ...
Pentru fiecare pas al algoritmului interpretează necesitatea de a construi MT cu alfabetul, și apoi să le combine în mod corespunzător, folosind operații O, ||, în cazul în care-apoi-altceva, în timp ce-do.
Solvabilitatea problemelor algoritmice.
În această secțiune, vom da exemple de dovezi de probleme specifice imprecizie algoritmică - problema de sine.
Definiție 4.1: algoritmică problemă se numește problema construirii unui algoritm pentru rezolvarea unei clase de probleme.
Problema apare în mod natural: Are de rezolvat fiecare problema algoritmică? Până la începutul secolului al XX-lea, printre matematicieni a existat încredere în solvabilitatea fiecărei probleme matematice. După cum sa menționat în introducere, Leibniz a fost unul dintre primii care au venit la ideea de calcul. El credea că soluția la o problemă de matematică se reduce la manipularea simbolurilor folosind reguli de inferenta special selectate (necesită schimbarea unor combinații de simboluri pe de altă parte). Problema, în conformitate cu Leibniz, a fost doar pentru a construi un sistem adecvat de reguli. Mai mult decât atât - se crede că este posibil să se construiască un set universal de reguli pentru a rezolva orice problemă de matematică. Dzhonatan Svift în cartea sa „Călătoriile lui Gulliver“ a făcut haz de această idee de Leibniz sub forma unui salvie, o roată rotativ cu plăci pentru a găsi soluțiile potrivite.
Matematicianul englez Biserica a dat primul exemplu al unei poblemy de nerezolvat cunoscut sub numele de problema eclozabilitatea.
Având în vedere un sistem de reguli de substituire a R și doi dintre W și S. posibilă determinarea W este derivabilă din S folosind R?
Biserica a demonstrat că nu există nici un algoritm care, pentru orice sistem de reguli de substituție și a oricăror două cuvinte a dat răspunsul la această întrebare.
Un alt exemplu bine-cunoscut pentru noi probleme algoritmice de nerezolvat - a 10-problemă Hilbert.
Definiția 4.2. Algoritmul A este de sine în cazul în care se aplică cuvântul, care este descrierea acestuia.
Descrierea algoritmului A este necesar pentru a construi un algoritm care ar trebui să descrie orice algoritm A definit. Și dacă algoritmul de sine sau nu.
Teorema 4.1. Recunoașterea de sine algoritmic de nerezolvat.
Dovada: Pentru a demonstra aceasta teorema va fi de contradicție. Să algoritm Există o recunoaștere de sine aplicabilitate. Apoi, astfel încât să revizuiască
se oprește în cazul în care un samoprimenim
T - în cazul în care A - nu samoprimenim
Astfel, B este aplicabilă samoneprimenimym algoritmi și nu se aplică la auto-aplicabilitate.
Luați în considerare V (B), adică. E. În Aplicației însuși. Dacă în (B) dă t, în consecință, V - samoprimenim, dar în construcția acestora t oferă nu numai avlgoritmah auto aplicabile. Dacă B (B) nu se oprește, aceasta înseamnă că, - nu samoprimenim, ci de construcție, în acest caz, el ar trebui să dea t. O contradicție. Prin urmare, un astfel de algoritm există în. Prin urmare, nu poate fi nici un algoritm A. - ipoteza existenței unui algoritm care recunoaște auto-aplicabilitate nu este adevărat!
Notă: de obicei, dovada imprecizie a problemelor algoritmice este construit de informații. Ideea acestei metode este că, pentru a studia problema P, este dovedit că poate fi redusă la o altă problemă ¢ P. despre care știm că este de nerezolvat.
Relația sistemelor algoritmice.
Datorită existenței unor probleme algoritmice de nerezolvat este o întrebare:
Sau, dacă este așa că problema algoritmică este insolubil într-un sistem algoritmic va fi solubil în celălalt? De exemplu, este o problemă care nu rezolvabile în ceea ce privește mașina Turing va rezolvabilă în ceea ce privește SUA.
Definiția 4.3. Două sistem algoritmică a spus să fie echivalentă dacă setul de algoritmi care pot fi descrise în primul sistem, echivalent cu setul de algoritmi care pot fi descrise de o secundă.
Ca urmare a rezumatelor Turing și Markov, mașini Turing și Markov algoritmi normale - .. sistem algoritmică Echivalent, că acestea descriu la același set de algoritmi corespunzătoare funcțiilor calculabile.
În această secțiune, exemplul MT și SUA, vom arăta că pentru sistemele de algoritmice echivalente nu poate fi faptul că unele probleme algoritmică este de nerezolvat în MT, va fi solubil în SUA. Vom dovedi că putem alege N astfel SUA pentru orice MT U, care
U (P) = N (P) și vice-versa.
De aici rezultă că, dacă unele probleme algoritmice rezolvabilă în MT, acesta va fi rezolvată în mod automat în SUA și vice-versa.
Teorema 4.2 Pentru orice mașină Turing există U WE N astfel încât
Dovada: Pentru a dovedi această teoremă, ne arată modul în care fiecare regulă mașinile ap®bqw U construi regula de substituție pentru N. SUA Astfel, avem, știind diagrama funcțională U, vom construi un sistem de reguli pentru N.
Diagrama funcțională a mașinii U poate satisface echipa din următoarele tipuri:
Luați în considerare mai întâi aparatul pentru forma U (1), t. E. Înregistrarea la poziția curentă în locul simbolului unui simbol b, și o deplasare spre stânga. Relevante din SUA N vom ocupa de caracterul în marca verbală p pe simbolul din stânga al statului respectiv DN = DU UQU U. Apoi, echipa de la (1) compară următorul grup regula de substituție ..:
aici, simbolul Ñ „Screen“ q din următoarele simboluri în cuvântul prelucrat.
Comenzile de forma (2) este comparabil cu tipul regulii de substituție
Comenzile de forma (4) - qj AAB.
Cel mai recent în sistem, vom rescrie reguli vor începe regula
unde qo - starea inițială de U.
Notă: .. Dacă = L, adică comenzi LQJ ®bqs w nevoie să se potrivească regulii QJ ®qs b sau ®bqs QJ în funcție de valoarea lui w. Toate regulile astfel de substituție ar trebui să fie colectate la sfârșitul circuitului, imediat înainte de regula inițială.
Rețineți că, dacă cuvântul fișier de intrare N la care U nu se aplică, atunci N va înlocui pe termen nelimitat QO la începutul cuvântului.
N aplicat aceleași cuvinte ca U.
Să presupunem existența P, care se aplică U și N - nr. Odată ce U este cazul, apoi lăsați comanda sa finală este un aq®b comanda! H. S corespunde cu regula de construcție N substituție terminală, care trebuie să fie îndeplinite, adică. K. O diagrama N au două reguli cu aceleași părți drepte ..
O contradicție.
Dovada teoremei 4.2 este completă.
Teorema 4.3. Pentru orice US N, există o mașină Turing U astfel încât
U * (P) = P m. E. MT. punând simbolul * înainte de a procesa.
U! (P) = P a rămas neschimbat cuvinte.