Qual è la relazione tra problemi e lingue?


8

Voglio chiedere esattamente qual è la relazione tra problemi e lingue. Sappiamo che l'insieme di tutte le lingue non è numerabile. Anche l'insieme dei problemi non è numerabile? Ogni problema può essere definito da una lingua? Una lingua può risolvere più di un problema e viceversa? Esiste una corrispondenza uno a uno tra problema e lingue?

Risposte:


11

I problemi di decisione e le lingue sono solo le due facce della stessa medaglia: ogni problema può essere riformulato come il problema di appartenenza di alcune lingue. Il problema, per esempio, di determinare se un numero è primo è esattamente il problema dell'appartenenza alla lingua dei numeri primi.

Formalmente, una lingua è un insieme di stringhe finite sopra un certo alfabeto finito fisso (a volte, le stringhe possono essere infinite; questo è uno scenario diverso ma correlato). I problemi che non sono direttamente domande sulle stringhe dovranno essere codificati come stringhe, quindi, ad esempio, sarebbe stato più preciso scrivere l'ultima frase del paragrafo precedente come "Se correggiamo un alfabeto e una codifica di numeri naturali come stringhe sopra quell'alfabeto, il problema, per esempio, determinare se un numero è primo è esattamente il problema dell'appartenenza alla lingua delle stringhe che codificano i numeri primi ".

Per eseguire rapidamente le tue domande secondarie,

Sappiamo che l'insieme di tutte le lingue non è numerabile. Anche l'insieme dei problemi non è numerabile?

Sì, poiché i problemi e le lingue sono essenzialmente la stessa cosa.

Ogni problema può essere definito da una lingua?

Problemi di decisione, sì. I problemi di ottimizzazione (qual è la X più piccola con la proprietà Y) e i problemi di conteggio (quante X hanno la proprietà Y) possono essere riformulati come problemi di decisione (è la Z la X più piccola con la proprietà Y? Ci sono NX con la proprietà Y?), Tuttavia di solito non è il modo più naturale di trattarli.

Una lingua può risolvere più di un problema e viceversa?

Sì e sì, perché devi usare le codifiche per tradurre tra problemi e lingue. Ad esempio, le lingue e codificano entrambe il problema di primalità (rispettivamente in binario e decimale). Viceversa, sebbene forse un po 'artificialmente, la lingua codifica il problema di determinare se un numero binario è della forma per alcuni  e il problema di determinare se una stringa di 1 e 0 ha esattamente uno 0, che è il suo carattere finale. (Forse qualcuno può trovare un esempio migliore di un linguaggio che codifica naturalmente due problemi senza che uno sia una riformulazione così banale dell'altro.){10,11,101,111,1011,}{2,3,5,7,11,}{0,10,110,1110,}2k2k

Esiste una corrispondenza uno a uno tra problema e lingue?

No, poiché questa domanda è solo il complemento della precedente. :-)


1
cosa puoi dire su problemi indecidibili e irrisolvibili. possiamo definirli da una lingua se non poi come ogni problema può essere definito da una lingua?
Ravi Singh,

2
Sì, i problemi indecidibili corrispondono anche alle lingue. Ad esempio, il problema dell'arresto corrisponde al linguaggio delle stringhe che codificano una macchina di Turing e un input tale che ferma quando viene dato input . MxMx
David Richerby,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.