Ho trovato molte definizioni di linguaggi ricorsivi e ricorsivamente enumerabili. Ma non riuscivo a capire cosa fossero.
Qualcuno può dirmi cosa sono in parole semplici?
Ho trovato molte definizioni di linguaggi ricorsivi e ricorsivamente enumerabili. Ma non riuscivo a capire cosa fossero.
Qualcuno può dirmi cosa sono in parole semplici?
Risposte:
Non proprio. Dovresti leggere alcuni libri. Forse possiamo consigliarne alcuni.
Detto questo, una lingua è ricorsiva se esiste una macchina di Turing che può sempre rispondere "sì" o "no" se una determinata stringa fa parte di questa lingua. Se eliminiamo questo requisito per dire semplicemente "sì" per le stringhe della lingua (può funzionare per sempre se non lo è), allora abbiamo un linguaggio ricorsivamente enumerabile. Non è difficile vedere che un linguaggio ricorsivo può essere deciso da una macchina di Turing, mentre un linguaggio ricorsivamente enumerabile può avere le sue stringhe elencate (ad esempio, eseguendo un numero infinito di macchine di Turing in parallelo - sì, è possibile, vedi coda di rondine - su tutte le stringhe dell'alfabeto e emissione di una stringa se la TM corrispondente accetta). Esistono molte, molte definizioni equivalenti.
Un problema è ricorsivo o decidibile se una macchina può calcolare la risposta.
Un problema è ricorsivamente enumerabile o semidecidabile se una macchina può essere convinta che la risposta sia positiva.
Una lingua è solo un insieme di stringhe. Forse di infinita cardinalità.
Una lingua è enumerabile ricorsiva se esiste una TM che continua a produrre stringhe che appartengono alla lingua (e solo tali stringhe), in modo tale che alla fine ogni stringa nella lingua sarà nell'output.
Una lingua è ricorsiva se, la TM di cui sopra non solo emette tutte le stringhe nella lingua, ma lo fa anche in ordine! (diciamo lessicograficamente).
Sono sicuro che puoi facilmente pensare a linguaggi ricorsivi (e costruire una TM che li emetta per ordine). È abbastanza difficile inventare lingue ricorsive enumerabili (che non sono ricorsive), a meno che tu non legga qualcosa in più su indecidibilità e diagonalizzazione. Ma esistono tali lingue.
Le lingue ricorsive sono decidibili da alcune Turing Machine, cioè c'è una TM che può, data qualsiasi stringa di input (sopra l'alfabeto appropriato) rispondere correttamente sì se la stringa è nella lingua o no se non lo è.
Le lingue ricorsivamente enumerabili sono riconosciute solo, cioè esiste una Turing Machine che accetta quando la stringa è nella lingua ma può essere ripetuta per sempre se la stringa non è nella lingua.
Sento che la differenza principale tra le lingue ricorsive e quelle ricorsivamente enumerabili è che la macchina di Turing ricorsiva si ferma in uno stato non finale se non accetta una stringa
La macchina di Turing enumerabile in modo ricorsivo se non accetta una stringa può arrestarsi per sempre in uno stato o ciclo non definitivo, il che non è il caso dei linguaggi ricorsivi
==> Una lingua è ricorsiva se esiste una macchina di Turing che accetta ogni stringa nella lingua e rifiuta se non è nella lingua. per esempio, prendiamo la macchina di Turing M e la stringa w: se la stringa w è un membro della macchina di Turing M, allora M si ferma nel suo stato finale, altrimenti rifiuta il calcolo. ==> ==> Una lingua è enumerabile ricorsiva se esiste una macchina di Turing che accetta ogni stringa nella lingua e rifiuta se non è nella lingua può essere ripetuta per sempre. per esempio, prendiamo Turing machine M e String w: se la stringa w è nella lingua, allora M si ferma nel suo stato finale. Altrimenti rifiuta il calcolo o può essere eseguito per sempre.