răspunsuri algoritmi

Noțiunea intuitivă a unui algoritm. algoritmi Properties.

Algoritmul este o secvență definită de pași pentru rezolvarea unei probleme specifice.

Aceste proprietăți sunt:

• Rezoluție (discontinuitate separat) - algoritmul ar trebui să reprezinte procesul de soluționare a problemei ca punerea în aplicare consecventă a etapelor (definite sau anterior) simplu. Fiecare acțiune, cu condiția ca algoritmul este executat numai după executarea sa încheiat anterior.

• Certitudine - fiecare algoritm regulă trebuie să fie clare, lipsite de ambiguitate și nu lasă loc pentru arbitrariu. Datorita acestei proprietati algoritmul este mecanic și nu necesită instrucțiuni sau informații suplimentare cu privire la sarcina la îndemână.

• Eficacitatea (desigur) - algoritmul ar trebui să conducă la soluția problemei într-un număr finit de pași.

• Grassroots - algoritm soluție este dezvoltat într-un mod general, adică, ar trebui să fie aplicabilă pentru o anumită clasă de probleme, care diferă numai în datele originale. Astfel, datele originale pot fi selectate dintr-o regiune numita regiune de aplicabilitate a algoritmului.

Masina de post. Descriere, obiective, exemple. Formularea l.

Masina de post (MT) - o mașină de calcul abstract, propus Emilem Leonom Mesaj (născut Emil Leon post.), care diferă de la o mașină Turing mai mare simplitate. Ambele mașini sunt algoritmic „echivalente“ și au fost concepute pentru a clarifica conceptul de „algoritm“. In 1936, matematicianul american Emil post articol a descris sistemul cu simplitate algoritmică și este în măsură să determine dacă acest lucru sau că problema este rezolvabilă algoritmic. În cazul în care sarcina are o soluție algoritmică, atunci acesta poate fi reprezentat sub forma unei secvențe de comenzi pentru masina de post.

Adăugarea a două numere este banal - suficient pentru a pune 1 între acestea și ștergeți două din dreapta „1“ în Q. Programul constă în scăderea schimbări succesive stînga „1“ în secvența de „1“ din imagine și Q dreapta „1“ în secvența de „1“ imaginea P. Căruciorul începutul programului instalat pe cel mai din stânga „1“, la Q:

2. 1, 3 - dacă celula este goală, mergeți la pasul 1, în cazul în care nu, până la 3

3. 0 - elimina eticheta

5. 4, 6 - în cazul în care celula este goală, mergeți la pasul 4, în cazul în care nu, până la 6

6. 0 - elimina eticheta

8. 9, 1 - în cazul în care celula este goală, mergeți la pasul 9, în cazul în care nu, la 1

Rețineți că numărul de echipa de tranziție nu este specificat, în cazul în care are loc trecerea la următorul în linia de comandă (pentru claritatea textului). Bucla linia a 6 poate, în cazul în care Q> P.

Definiția unei mașini Turing. Utilizarea de mașini Turing la cuvintele.

mașină Turing (MT) - Performer abstraktny (computer abstract). Alan Turing a fost oferit în 1936 pentru a formaliza noțiunea de algoritm.

mașină Turing este o extensie a unui automat finit, și în conformitate cu teza lui Church - Turing. capabil să simuleze toți artiștii (prin stabilirea unor reguli de tranziție), în orice mod realizând calcul proces pas în care fiecare pas este suficient de calcul elementar.

mașină Turing are un alfabet extern A = cod care este înregistrat pe o mașină de bandă, și stările interne ale alfabetului Q =, în cazul în care q1 - starea inițială, Q0 - finala. Funcționarea mașinii determinată de program (schema bloc funcțională). Programul este format din comenzi. Fiecare echipa T (i, j) (i = 1, 2, ..., m; j = 0, 1, ..., n) este o expresie a unuia dintre următoarele tipuri:

răspunsuri algoritmi
;
răspunsuri algoritmi
;
răspunsuri algoritmi
. unde 0 ≤ k ≤ m; 0 ≤ l ≤ n, C - mașina continuă să respecte aceeași celulă, n - aparatul este mutat la celula din dreapta, A - pe celula la stânga. Sinteza unei mașini Turing este o sarcină dificilă, care necesită un anumit nivel de dezvoltare a gândirii algoritmice. O mașină Turing funcționează cu cuvinte de alfabet sale externe. Să ^ = A (unde 0 - simbolul unei celule goale). Este util să se introducă următoarea notație. Pentru un X natural este:
răspunsuri algoritmi
.
răspunsuri algoritmi
. Prezentăm următorul program mașini Turing „schimbare la stânga“
răspunsuri algoritmi
și „schimbare de dreapta“
răspunsuri algoritmi
. Primul din poziția standard inițială transformă 01x0 cuvântul în același cuvânt și se oprește cu vedere la extremitatea stângă celulei la zero. A doua mașină de la starea inițială, care este realizat studii de celule din stânga cu zero, procesele 01x0 în același cuvânt și standuri cu vedere la celula din dreapta la zero.

Construcția mașinii Turing. Compozițiile mașini Turing.

Exemplul 3. Să încercăm să construim o mașină Tyurin-n care n unități de rând să plece s-a înregistrat pe unitățile de bandă n-2, așa cum sunt înregistrate într-un rând, în cazul în care n> 2, și ar funcționa pentru totdeauna dacă n = 0 sau n = 1. In un set de două piese externă a alfabetului take-TION a =. Numărul de stări interne necesare vor fi definite în cadrul procesului de programare. Noi credem că mașina începe să curgă de la un zheniya standard de polo inițială, și anume atunci când în starea q1 este realizat studii extreme matematica dreapta-SED IZP înregistrate pe bandă. Pentru început, se va șterge primul în cazul în care este disponibil, trece la următorul Ferris a părăsit celula și se va șterge unitate, în cazul în care este scris în celulă. Pe fiecare astfel de mașină de tranziție ar trebui să se mute într-o nouă stare internă, pentru că altfel totul va fi pierdut toate unitățile înregistrate într-un rând. Aici sunt comenzi, care efectuează acești pași: q11 q20L; q21 q30L. Aparatul se află într-o stare q3 are vedere al treilea la dreapta celulei. în care cuvântul este scris (n unități). Fără a schimba conținutul examinat celula, mașina trebuie să rămână-novitsya, și anume du-te la final Q0 de stat, independent-mo din conținutul unei celule. Aici sunt comenzi: q30 Q00; q31 Q01. Rămâne acum să ia în considerare situația în care înregistrarea pe o bandă pe o singură unitate sau audio înregistrate. Dacă banda este înregistrată o singură unitate, după prima etapă (efectuarea Coman do q11 q20L) Masina va fi în q2 de stat, și va observa a doua celula din dreapta, în care a înregistrat 0. Prin starea-Vey, în acest caz, aparatul ar trebui să ruleze pentru totdeauna . Acest lucru poate fi realizat, de exemplu, următoarea comandă: q20P q20 performante care pas cu pas. aparatul se va deplasa pe lenjerie-dreapta pe cei nelimitat (sau se întinde banda peste cap out-conductor citit de la dreapta la stânga). În cele din urmă, în cazul în care banda nu este înregistrată nici o unitate, aparatul, cu condiția, și ar trebui totdeauna Rabo hoț. În acest caz, în q1 starea inițială a examinat celula cu conținutul 0, iar lucrarea veșnică a mașinii este prevăzută cu următoarea comandă: q10P q10.

Funcția Turing calculabil. Funcția calculabilitate corectă de către o mașină Turing.

Teza Turing (ipoteza principală a teoriei algoritmilor). mașini Turing și calculatoare moderne.

Turing teză: Funcții Clasa algoritmic calculabile cu privire la orice funcție (sau funcții ale clasei), este clasa de funcții parțiale, în ceea ce privește partea recursiv (respectiv, în raport cu sistemul).

teza Turing rezultă din teza lui Church.

Originile de funcții recursive.

(De la recursio târziu - retur)

numele pentru a atribui una dintre cele mai comune variante ale conceptului general al algoritmului rafinament aritmetică, adică, astfel de algoritm, datele de intrare valabile, care reprezintă sistemul de numere naturale și posibilele rezultate ale utilizării sunt numere naturale. Funcții recursive au fost introduse în 30-e. 20. Kleene. la rândul său, se bazează pe cercetarea lui Gödel. Herbrand J. și colab. Matematicieni.

Fiecare funcție recursivă specifică sistemului final de ecuații exact tipul caracterizat în sensul că valorile sunt calculate prin utilizarea acestui sistem de ecuații pentru reguli precise de formulare, mai mult decât atât, astfel încât se obține în cele din urmă valorile pentru calcularea unei funcții predeterminate a algoritmului recursiv pentru un anumit tip.

Funcții recursive sunt funcții parțiale, adică. E. Funcții, nu neapărat peste tot definite. Pentru a sublinia acest fapt, de multe ori folosit ca sinonim pentru termenul „funcțiile recursive parțiale.“ Funcții recursive definite pentru toate valorile argumentelor, numite funcții recursive.

Concepte de bază ale teoriei funcțiilor recursive și teza bisericii.

Teza bisericii. class algoritmic (sau mașină) funcții numerice parțiale calculabile identice cu clasa funcțiilor recursive parțiale. Cu alte cuvinte, funcția aritmetică, calculabile, în sensul general, este esența unei funcții recursive. Respectiv.

Funcția aritmetică parțială, calculabile în sens general, există funcția recursive parțială. Aceasta nu este o definiție strictă, este de ieșire la nivelul tezei (nu a fost dovedit, dar nu respinge)

functii recursive primitive - functii recursive obținute din funcțiile originale, ca urmare a unui număr finit de aplicații simple operatori superpoziție și recursie primitive. Ele formează propria lor parte din clasa de funcții recursive generale. In binecunoscutul teorema Kleene formă normală funcție recursivă pot fi menționate astfel de funcții primitive recursive specifice ale unei variabile U și de la n + Tn 2 variabile, că pentru orice variabile recursive OTN funcția cp și pentru orice numere întregi x 1. egalitate xn deține φ (x 1. xn) ≅ U (y), gdeu este cel mai mic număr de z astfel încât T n (φ x 1. xn, z.) = 0 (unde φ reprezintă așa-numita funcție număr Godel cp .. - un număr care este construit în mod eficient de către sistemul de ecuații care definesc funcția cp). Din această teoremă, în particular, implică faptul că pentru o funcție recursivă de n variabile pot fi construite funcție recursivă universal de variabile n +1, t. E. O funktsiyaF recursivă n, că pentru fiecare dintre funcții recursive φ n variabile și pentru orice naturale numerele x 1. xn deține egalitatea condiționată

Să subliniem o serie de funcții aritmetice bine-cunoscute sunt recursive primitive.

Funcția de a adăuga două numere întregi () poate fi privit ca o funcție recursivă primitivă a două variabile, care se obțin prin aplicarea operatorului recursie primitive funcții și. al doilea care este obținut prin substituirea funcțiilor de bază în funcție de bază S:

Calculabilitate Turing functii recursive primitive.

Funcția Ackermann - un exemplu simplu de o funcție calculabil definită peste tot. care nu este recursiv primitiv. Este nevoie de două numere întregi non-negative ca parametri și returnează un număr întreg. indicată. Această funcție este în creștere foarte rapid, de exemplu, numărul este atât de mare încât numărul de cifre în dreapta acestui număr depășește numărul de atomi din universul observabil.

minimizând operatorul Să fie o funcție f (x1, ... .xn). Ea face parte din setul de funcții aritmetice parțiale (Chaf). Să presupunem că există un fel de mecanism pentru a calcula, valoarea funcției nu este definită dacă și numai dacă acest mecanism funcționează pe termen nelimitat, fără a da nici un rezultat bine definit. Reparăm orice valoare de x1. xn-1 pentru prima n-1 argumentele funcției f și ia în considerare ecuația: f (. x1 xn-1, y) = xn La o soluție y (număr natural) această ecuație va fi calculată cu ajutorul „mecanismul“ valoare secvențială menționată mai sus f ( x1. xn-1, y) y = 0,1,2. Cea mai mică valoare a, pentru care rândul său f (x1. Xn-1, a) = xn. denota μy (f (x1 xn-1, y) = xn.) Procesul descris constatare expresie μy va continua la nesfârșit în următoarele cazuri (f (x1 xn-1, y) = xn.):

In toate aceste cazuri, expresia valoarea μy (f (x1. Xn-1, y) = xn) este nedefinit. In caz contrar, se termină procesul descris și oferă cea mai mică soluția ecuației y = a f (x1. Xn-1, y) = xn .. Această soluție, așa cum a spus, va vyrazheniyaμy valoare (f (x1. Xn-1, y) = xn). De exemplu, pentru diferența funcției f (x, y) = xy în conformitate cu numitul simbol sens μ, pentru orice x, y, avem: f (x, y) = xy = μz (y + z = x) Calculul valorilor funcției f ( x, y) = xy în acest caz, va avea loc în două scenarii.

parte recursive și o funcție recursivă.

Metoda recursie se numește o funcție de referință în care valorile funcției determinate pentru valori arbitrare argument sunt exprimate într-o manieră cunoscută prin valorile funcției fiind definite pentru valori mai mici ale argumentelor. Să considerăm ecuația f (x) = g (x), unde f (x) și g (x), anumite funcții. Când spunem că această ecuație este o ecuație, aceasta înseamnă că ecuația este tratată ca o propoziție nedeterminată, pentru anumite valori a lui x este adevărat, în alte false. Definiția. Funcția este generală recursivă, în cazul în care este definit printr-o serie de ecuații de un anumit tip.

Definiția. O funcție parțială f este parțial recursivă dacă poate fi obținut din funcții simple O, S, UMN număr finit de operații de substituție, recurențe primitive și minimizarea. Determinarea din numitul principale următoarele proprietăți direct funcții recursive relative.

Fiecare funcție parțială, relativ primitive ale sistemului recursivă funcții σ și este σ otnositeno parțial recursivă. În special, toate funcțiile recursive primitive sunt recursiv partiale.

Clasa de funcții recursive parțiale mai largi decât clasa de funcții recursive primitive, din moment ce toate funcțiile recursive primitive sunt definite peste tot, iar printre funcțiile recursive parțiale și funcțiile care nu găsesc peste tot definit, de exemplu, este funcția definită nicăieri

operații substituții, recursie primitive și minimizarea produs asupra funcțiilor, relative recursive parțiale sistemului σ, au ca rezultat o funcție, relativ recursive din nou parțială sigma.

Definiția. Parțială Funcția arifmiticheskaya f este parțial recursivă dacă poate fi obținut din funcții simple O, S, numărul Umnkonechnym de operații de substituție, primitiv recursie iminimizatsii.

articole similare