¿Existe un lenguaje finito indecidible de palabras finitas?

10

¿Es necesario que sea infinito para ser indecidible?LΣ

Quiero decir, ¿qué sucede si elegimos un idioma? será una versión limitada finita de , es decir , ( ), con . ¿Es posible que sea ​​un lenguaje indecidible? L LΣ|L|NNNLLL

Veo que hay un problema de "Cómo elegir las palabras que para lo cual tenemos que establecer una regla para elegir cuáles serían los primeros N elementos de L' , una especie de estrella de Kleene "finita" operación. El objetivo es encontrar un lenguaje indecidible sin necesidad de un conjunto infinito, pero no puedo verlo.N L"NL

Editar nota:

Aunque elegí una respuesta, muchas respuestas y todos los comentarios son importantes.

Hernan_eche
fuente
Parece que hay (al menos) tres preguntas aquí. Por favor, concéntrate en uno y edita los otros.
Raphael
Eliminé las referencias al conjunto de potencia ya que no es relevante aquí; es finito si y solo si es finito. P(S)S
Raphael
@Raphael Está bien, pero menciono el conjunto de potencia porque a veces leo "no hay sorpresa de en , por lo tanto , debe existir un lenguaje indecidible". NP(N)Me gustaría entender por qué eso no funcionó con un conjunto finito , con con finito, en lugar de necesitar , es por eso que puseL|L|NN NP(S)
Hernan_eche
1
Hasta donde yo sé, la existencia de lenguajes indecidibles no se deriva inmediatamente de la inexistencia de tal sorpresa; necesitas algunos pedacitos más. ¡Por qué, eso haría otra pregunta maravillosa! ¿Por qué no sigues adelante y lo preguntas? De eso, debería ver por qué el argumento no se traslada a idiomas finitos.
Raphael
3
El lenguaje finito es decidible, punto final de la historia. Hay varios algoritmos para eso. Si insiste en el modelo clásico de Turing Machine, también se puede hacer de esa manera, aunque con menos perspicacia. No es necesario invocar autómatas de estado finito o lenguajes regulares ni ningún otro modelo de autómata, ya que, de hecho, son excesivos sin ninguna claridad adicional con respecto a las máquinas Turing.
David Lewis

Respuestas:

15

Sí, es necesario que sea ​​infinito para ser indecidible.L

Para agregar las respuestas de Raphael y Sam, debe pensar en "decidible" como cosas que un programa de computadora puede resolver. El programa requerido es muy simple, solo necesita mostrar "Sí" para los elementos en , o de lo contrario, diga no.L

Por lo tanto, cuanto más "complejo" sea , más largo será el programa que debe escribir. En otras palabras, cuanto más tiempo ejecute el programa, puede verificar más cosas ... Entonces, si alguien le da un lenguaje L que es finito, diga L = { a 1 , a 2 , ... , a n } , puede escribir el siguiente programa:LLL={a1,a2,,an}

if INPUT = $a_1$ output Yes;
if INPUT = $a_2$ output Yes;
...
if INPUT = $a_n$ output Yes;
output No;

Ahora, si alguien le da una más grande (pero finita), simplemente escribirá un programa más largo. Esto siempre es cierto, y cualquier L finita tendrá su propio programa. El único caso "interesante" es lo que sucede cuando L es infinito: su programa no puede ser infinito.LLL

El tema de la "indecidibilidad" es aún más interesante: son esos (infinitos) s que no tienen ningún programa que funcione correctamente para ellos. Sabemos que tales lenguajes deben existir ya que hay muchos más lenguajes (infinitos) L que el número de programas de longitud finita (pero ilimitada).LL

Sonó.
fuente
+1 Esta es una respuesta muy clara, me gustaría que expandas un punto, has dicho "si alguien te da una más grande (pero finita), simplemente escribirás un programa más largo" * pero creo que el opuesto, dado un fijo ** ** finita conjunto P de los programas | P | = K , ¿qué pasa si no puede escribir un programa más largo ? Creo que algunos impugnan L un conjunto finito, saldrá SÍ y otros no. Como P ( P ) > K , algunas de las entradas L corresponderán a las funciones del indicador P pero * ¡la mayoríaLP|P|=KLP(P)>KLP no lo hará!, Porque posibles idiomas > K posibles programas, entonces habrá problemas indecidibles. ¿Me equivoco? ¿por qué? 2K>K
Hernan_eche
1
de hecho, si limita el tamaño del programa a entonces hay como máximo O ( 2 k ) diferentes programas que clasifican correctamente como máximo O ( 2 k ) diferentes idiomas (infinito o no). Entonces, para ese conjunto específico de programas, existen lenguajes indecidibles e incluso finitos. Pero esta es una afirmación más débil, ya que considera solo un conjunto limitado de programas (por ejemplo, | P | = 1 , solo tiene 2 programas posibles; por supuesto, no podrán hacer mucho y fallarán en casi todos los idiomas L|P|=kO(2k)O(2k)|P|=1L)
Ran G.
gracias, sé que es una afirmación más débil, pero es audaz que pueda haber idiomas indefinidos finitos e infinitos, y creo que este caso especial debe incluirse en su respuesta, la parte "Sí, es necesario que L sea infinito en para ser indecidible ". Parece no ser una necesidad bajo ciertas condiciones.
Hernan_eche
66
No exactamente. El término "indecidible" tiene un significado específico: no puede ser decidido por una máquina estándar de Turing. Por lo tanto, para ser undecidable, debe ser infinito. Lo que quieres no es sino un término diferente, a saber, "no es decidible por P ". Llame a la última P- indecidible. Entonces, para cualquier P finito , no hay necesidad de que L sea ​​infinito para ser P- indecidible. Simplemente no confunda (o use mal) y P- indecidibleL undecidablePPPLPundecidableP
Ran G.
10

No estoy seguro de entender la pregunta correctamente, pero cada idioma finito es regular. No hay idiomas regulares que sean indecidibles y, por lo tanto, no hay idiomas finitos que sean indecidibles. Todas estas declaraciones son bien conocidas y se pueden encontrar pruebas en Hopcroft y Ullman .

Sam Jones
fuente
8

Si su idioma es finito, puede realizar búsquedas de tablas en una tabla codificada que contenga todas las palabras en L ' . Esto es incómodo de escribir como máquina de Turing, pero en otros modelos equivalentes es bastante claro.LL

De hecho, los autómatas finitos son suficientes. Construya un autómata para como sigue:L

  1. Para cada , cree una cadena lineal de estados que acepte w .wLw
  2. Crea un nuevo estado inicial .q0
  3. Conecte a los estados iniciales de todos los autómatas construidos en 1. con ε -transiciones.q0ε

El autómata así construido obviamente acepta . Por lo tanto, L ' es regular y con ello computable (por R E GR E ).LLREGRE

Tenga en cuenta que se aplica algún razonamiento para L ' co-finita , es decir | ¯ L | < ; simplemente codifica los elementos que no están en L ' .L|L¯|<L

Rafael
fuente
2

Para ser interesante (con el fin de pensar en la computabilidad), un problema de decisión debe tener infinitas respuestas de "sí" e infinitas respuestas de "no". Tales problemas de decisión corresponden exactamente a los idiomas que contienen infinitas cadenas sobre su alfabeto y también excluyen infinitas cadenas sobre su alfabeto.

Cualquier otra cosa es trivialmente capaz de codificarse solo en una cantidad finita de información (en el peor de los casos, simplemente una gran lista de cadenas, ya sea en el idioma o no), y por lo tanto computable por DFA simples / expresiones regulares. Espero que sea obvio que para cualquier lista finita de cadenas puede escribir inmediatamente una expresión regular que simplemente OR o todas las cadenas.

Un ingenio de mi profesor de teoría de la computación fue que el problema de "¿existe Dios?" es computable: es calculada por una máquina que acepta de inmediato o una máquina que rechaza de inmediato; ¡simplemente no sabemos cuál!

Ben
fuente