Fiecare algoritm de vocabular U face cu un alfabet A, o soluție la o problemă specifică este redusă la prelucrarea cuvintelor într-un anumit alfabet asupra unor reguli predefinite S. O astfel de abordare în teoria algoritmilor dezvoltat de AA Markov, care a propus conceptul de algoritm normale ca un concept de model matematic Procedura de calcul.
algoritmi normali U = - Dicționar clasă de algoritmi, de exemplu, algoritmi (care se aplică cuvintele unui alfabet A), acțiunile elementare care înlocuiești cuvintele (a tuplul este schema S).
Fiecare algoritm normal de a fi un algoritm într-un alfabet A, generează într-un proces determinist de cuvinte de prelucrare. Prin urmare, orice algoritm standard în alfabet fix A este complet determinată prin specificarea S circuit de - ordonate lista formulelor de substituție finale în formula A. Fiecare astfel de pereche este în mod substanțial
Algoritmul normal U în alfabetul A este o rețetă bazată pe premisa cuvânt arbitrar P în A (PÎA *), secvența de cuvinte ai.
Având în vedere sistemul algoritmică de mai sus „algoritm normal“ este după cum urmează:
aplicare normală a algoritmului cuvântului U este numit un proces definit de următoarea regulă (care reprezintă o schemă logică a algoritmului normal):
1. Să presupunem că i = 1. Mergeți la pasul 2.
2. Verificați dacă se pretează pentru a converti cuvântul i-lea ecuație. Dacă da, mergeți la pasul 3, în cazul în care nu - la pasul 5.
3. Prima apariție a unui simplu din partea stanga, cu formula i-lea în cuvântul convertit pentru a înlocui partea dreaptă a formulei I-lea. Rezultat considerat cuvânt în continuare convertibile, mergeți la pasul 4.
4. Dacă formula i-lea este o substituție finală, procesul se încheie. În caz contrar, mergeți la pasul 1.
5. Verificați dacă există egalitate i = n. Dacă este așa, atunci procesul se încheie, în caz contrar, mergeți la pasul 6.
6. Creșterea valorii i de 1 și mergeți la pasul 2.
Orice cuvânt în alfabetul P poate servi date ca date de intrare pentru algoritmul în alfabetul normal de A. În acest caz, pot exista cazuri:
- Procesul de executare unui algoritm de cuvânt normală unÎ* Formula A se termina ai ® · bi după un număr finit de pași. În acest caz se spune algoritmul normal de aplicabil cuvântul a, iar performanța sa obținut după cuvântul bÎA * se numește rezultatul.
- Procesul de executare a algoritmului, cu un cuvânt obișnuit inițialÎ* Și niciodată nu se termină sau există oprire neconcludent (de exemplu, nu pe formula AI-ul ® ° bi). În acest caz, se spune că algoritmul normală nu se aplică cuvântul a.
Algoritmul U =<í0, 1ý
De exemplu, cuvântul 100 acest algoritm normale convertește în mod constant în cuvinte 0 h10, 0h10, 00h1, h00h1, 0h0h1, h0h0h1, hh0h0h1, x0h0h1, 0xh0h1, 0x0h1, 00xh1, 00x1, 001x, 001Ù.
Ultimul termen al acestei secvențe este considerată a fi rezultatul aplicării algoritmului cuvântului Ua = 100 și U este notată (a). Se presupune că U reciclează a = 100 b = 001, și scrie U (a) = b (în acest exemplu, U (100) = 001).
Algoritmul U =<ía, bý,
Astfel, vorbind babaa de pornire al primei tranziții (adică folosind Haba formula bah®), obținem baaaba (aici h = BAA), iar după cea de a doua (adică, folosind formula bah® Haba din nou) au aabaaba (aici h = aaba). Aplicarea formulei aah® · h pentru a obține rezultatul cuvânt aabaaba Baaba (adică U (babaa) = Baaba).
Cu toate acestea, luând ca cuvântul de pornire al unui = Baaba, obținem o secvență de abaaba infinit, baabab, abababa, bababab, babababa, ... în care nu există nici un cuvânt Aah. Aceasta înseamnă că algoritmul nu se va aplica la un U un cuvânt = Baaba.
În cazul în care datele sursă abaab iau cuvântul, obținem o secvență finită baabb, abbaba, bbabab, în care ultimul cuvânt nu poate fi permis să aplice o tranziție, care este un caz de oprire inutil (aceasta înseamnă, de asemenea, Neaplicabilitatea unui anumit algoritm pentru U abaab cuvânt).
Se crede că, pentru orice algoritm în alfabetul Un algoritm normal de U poate fi construit pe acest alfabet, procesarea arbitrară cuvânt oÎO * în același rezultat, care reciclează algoritmul original B. Acest acord este cunoscut în teoria algoritmilor, principiul de normalizare numit.
În acest sens, noțiunea de sisteme de A.Markova algoritmice algoritm de rafinament A.Chercha și A.Tyuringa sunt echivalente.
O altă rafinare a conceptului de algoritm asociat cu calculul asociativ, care este mulțimea tuturor cuvintelor în unele alfabet, împreună cu orice sistem finit de substituții permise.
Calculul asociativă (sistem Thue) U - un sistem formal F.S. dând curs un anumit sistem asociativ (semi) Ku.
Admisibila în ceea ce privește lista # 931; acțiunea asupra cuvintelor într-un alfabet A este orice permutare a uneia dintre părțile din orice raport # 945; i ↔ # 946; i ((# 945; i ↔ # 946; i)Î# 931;) în loc să încheie o altă parte a aceluiași raport.
Calculul asociativă U = Ea reprezintă permisiunea de a produce, pornind de la orice cuvânt RÎA *. orice valabilă în ceea ce privește lista # 931; acțiuni.
Schimbare ab↔bcb aplică patru metode de cuvânt P1 = abcbcbab: înlocuirea fiecăruia dintre cele două apariții ale cuvântului va BCB aabcbab și abcabab, și înlocuirea fiecare dintre cele două apariții ale ab și dă cuvinte bcbcbcbab abcbcbbcb. În același timp, modul în care P2 = bacb această înlocuire nu se aplică, și înlocuirea formei # 945; ↔e mijloace de transformare cuvânt Pi ÎA * este aruncată apariție # 945, și că între oricare două litere ale cuvintelor convertite sau înainte de el sau în spatele lui se introduce cuvântul # 945; (Cuvânt E-gol, eÎA *. eÏA). Toate cuvintele Q, care se obțin în acest caz (inclusiv cea mai mare parte a cuvântului inițial P), spun că acestea sunt echivalente în calculul asociativă P U = (În notație simbolică U: P # 9576; Q).
atitudine # 9576; pentru orice calcul asociativ U este reflexivă, simetrică și tranzitivă. In plus, de la U: P1 # 9576; Q și P2 # 9576; R, rezultă că U: P1 P2 # 9576; QR. Acesta oferă un mod natural de a compara fiecare calcul asociativă U unele asociativă sistem Ku finit. luând ca ei clase elemente cuvinte care sunt echivalente reciproc în U =, ci ca o operațiune de multiplicare în Ku - concatenare operațiune de cuvinte în alfabet A.
Sistemul Ku asociativă configurat astfel va monoid, și anume va avea un element neutru eÎA *; Elemente de Ku reprezentate literele alfabetului A, se va constitui un sistem de elemente generatoare de Ku, și lista de relații # 931; va reprezenta un sistem complet de relații între elementele generatoare de Ku, în sensul că elementele de Ku. Cuvintele prezentate P și Q sunt identice în Ku, dacă și numai dacă P și Q sunt echivalente în U =. În acest sens, elementele de recunoaștere a identității în Ku pentru a recunoaște echivalența cuvintelor în U =.
Acest lucru explică importanța studierii solvabilitatii problemelor algoritmice recunoașterea echivalenței cuvintelor într-un calcul asociativ arbitrar. Problema constă în faptul că pentru orice U = necesară pentru a construi un algoritm care, pentru orice pereche de cuvinte în A U = ar permite unui număr finit de pași pentru a afla dacă echivalentul în U = cuvinte care alcătuiesc această pereche. În interpretarea algebrică a acestei probleme este problema identității pentru semigrupul Ku.
„Există un calcul asociativ în care recunoașterea echivalenței cuvintelor problemei este algoritmic nerezolvabil“
Într-adevăr, având în vedere mașina Turing ca un model matematic al algoritmului, putem reduce problema recunoașterii echivalenței cuvintelor în U = problema opririi mașinii Turing (și această problemă este algoritmic nerezolvat).
Să ne și următoarele două teoreme:
„Pentru orice set recenzată de permutări există sistem M, o multitudine de cuvinte finale din care coincide cu M '
„Calculul asociativă două cuvinte sunt echivalente dacă acestea corespund celor două configurații ale unei mașini Turing astfel încât pentru un număr finit de cicluri a mașinii trece de la prima la a doua configurație“
Este evident că teorema: „Există un semigrup date de relațiile care definesc în care recunoașterea problemei echivalenței (egalitate) este algoritmic cuvânt nerezolvabil“ este o reformulare a teorema lui Markov-Post.
la problema echivalenței cuvintelor în calcul asociativ reduce multe probleme matematice.
Astfel, orice formulă de limbajul matematicii poate fi privită ca un cuvânt într-un anumit alfabet. Procesul de transformări sau de ieșire, în acest caz, echivalent este o transformare care implică acele cuvinte sau alte substituții care apar ca legile axiome de identitate.