Ecco alcuni esempi di lingue riconoscibili Turing, in contrasto con altre classi di lingua:
Esempi di lingue riconoscibili di Turing:
* La lingua di tutte le macchine Turing che si fermano sulla stringa vuota: Possiamo costruire una macchina Turing che simula una data macchina Turing sulla stringa vuota. Se la macchina simulata si ferma, la nostra macchina accetta. Se si avvicina per sempre, la nostra macchina si schiera per sempre. Questo è riconoscibilmente; Non c'è modo di dire in modo definitivo una macchina * non si fermerà.
* La lingua di tutte le vere dichiarazioni nell'aritmetica del primo ordine: Il teorema di completezza di Gödel mostra che ogni vera affermazione può essere dimostrata. Una macchina Turing può elencare sistematicamente tutte le prove possibili e accettare una dichiarazione se viene trovata una prova. Tuttavia, se un'istruzione è falsa, la macchina non si fermerà mai.
* Il linguaggio di tutte le grammatiche senza contesto che generano almeno una stringa di lunghezza 10: Una macchina Turing può generare sistematicamente tutte le stringhe di un determinato CFG e verificare la loro lunghezza. Se trova una di lunghezza 10, accetta. Se il CFG non genera alcuna stringa del genere, la macchina potrebbe essere eseguita indefinitamente nel tentativo di trovarne una.
* Il linguaggio di tutte le coppie di macchine Turing (M1, M2) tale che M1 si interrompe quando viene data la codifica di M2 come input: Questo illustra la complessità. Possiamo creare una macchina che simula M1 sulla codifica di M2. Se M1 si ferma, la nostra macchina accetta. Altrimenti, loop. Ciò evidenzia l'indecidabilità inerente a molti problemi riconoscibili.
Come differiscono da altri tipi di lingue:
La differenza chiave sta nel comportamento di arresto:
* Turing-decidabile (ricorsivo) Lingue: Queste sono lingue per le quali esiste una macchina Turing che si ferma sempre e decide correttamente se una determinata stringa è nella lingua o meno. Ogni stringa ottiene una risposta "Sì" o "No" definita. Gli esempi includono lingue regolari, lingue senza contesto (con alcune restrizioni) e molti altri che possono essere decisi da algoritmi con risoluzione garantita.
* Turing-Rognizable (ricorsivamente enumerabili) Lingue: Come discusso in precedenza, queste lingue sono riconosciute dalle macchine Turing che possono annebbiare per sempre su stringhe non nella lingua. Sono un * superset * di lingue decidabili di Turing; Ogni lingua decidebile è anche riconoscibile.
* Lingue non riconoscibili: Queste lingue non possono nemmeno essere riconosciute da una macchina Turing. Non esiste un algoritmo, per quanto inefficiente, che possa identificare correttamente tutte le stringhe nella lingua. Un esempio è il complemento del problema di arresto (il linguaggio di tutte le macchine Turing che * non * si fermano sulla stringa vuota).
In sintesi:
| Classe linguistica | Fare comportamento | Esempio |
| ------------------------- | -------------------------------------------------------- | ------------------------------------------------------------------------ |
| Turing-decidabile | Si ferma sempre, decide correttamente l'iscrizione | Lingue regolari, lingue senza contesto (con restrizioni) |
| Turing-Rognizable | Si ferma e accetta stringhe nella lingua, può loop altrimenti | Lingua di macchine Turing che si fermano sulla stringa vuota |
| Non riconoscibile non riconoscibile | Nessuna macchina Turing può riconoscerlo | Complemento del problema di arresto |
La gerarchia è:Turing-decidabile ⊂ Turing-riconoscibile ⊂ Tutte le lingue. L'inclusione è rigorosa; Ci sono lingue riconoscibili che non sono decidibili. E ci sono molte lingue oltre anche quelle riconoscibili.
Programmazione © www.354353.com