¿Existe algún algoritmo que pueda existir aunque no sepamos qué es?

21

En matemáticas, hay muchas pruebas de existencia que no son constructivas, por lo que sabemos que existe cierto objeto, aunque no sabemos cómo encontrarlo.

Estoy buscando resultados similares en informática. En particular: ¿hay algún problema que podamos probar que es decidible sin mostrar un algoritmo para ello? Es decir, sabemos que se puede resolver mediante un algoritmo, pero no sabemos cómo se ve el algoritmo.

Erel Segal-Halevi
fuente
55
Hay una respuesta trivial. Tome cualquier pregunta sí / no cuya respuesta sea desconocida, como "is random", luego la pregunta es decidible, solo que aún no sabemos cuál de los dos algoritmos posibles es correcto. π
Hendrik Jan
66
básicamente un duplicado de tcs.se pregunta ¿existen pruebas de existencia no constructivos algoritmo
VZN
1
@babou De hecho: una pregunta con una respuesta única es decidible. Aquí la ignorancia es el punto que parece, es un caso de "no sé" de la pregunta, aunque solo "no sé ahora ". Una vez que hayamos descubierto si es aleatorio o no, debemos buscar otro ejemplo. ¡Su respuesta a continuación es mucho mejor, por supuesto! Es una forma de "no sabe" que es inherentemente "nunca sabrá". π
Hendrik ene
1
@HendrikJan: Y ese procedimiento es lo que llamamos un algoritmo en CS. Pero tomando el problema de la detención como un ejemplo, ¡ni siquiera podemos probar que existe un algoritmo!
MSalters
1
Algunos ejemplos más interesantes se pueden encontrar aquí: cstheory.stackexchange.com/questions/4777/…
Erel Segal-Halevi

Respuestas:

14

El caso más simple que conozco de un algoritmo que existe, aunque no se sabe qué algoritmo, se refiere a autómatas de estado finito.

El cociente de un idioma por un idioma se define como .L 1L1/L2L1L 1 / L 2 = { x y L 2  tal que  x y L 1 }L2L1/L2={xyL2 such that xyL1}

Se demuestra fácilmente que un conjunto arbitrario cierra el conjunto regular bajo cociente. En otras palabras, si es regular y es arbitrario (no necesariamente regular), entonces es regular.L 2 L 1 / L 2L1L2L1/L2

La prueba es bastante simple. Sea una FSA que acepta el conjunto regular , donde y son respectivamente el conjunto de estados y el conjunto de estados de aceptación, y que sea ​​un lenguaje arbitrario. Sea sea ​​el conjunto de estados desde el cual se puede alcanzar un estado final aceptando un cadena a partir de .R Q F L F = { q Q y LM=(Q,Σ,δ,q0,F)RQFLLF={qQyLδ(q,y)F}L

El autómata , que difiere de sólo en su conjunto de estados finales reconoce precisamente . (O vea Hopcroft-Ullman 1979, página 62 para una prueba de este hecho).M F R / LM=(Q,Σ,δ,q0,F)MFR/L

Sin embargo, cuando el conjunto no es decidible, puede que no haya un algoritmo para decidir qué estados tienen la propiedad que define . Entonces, aunque sabemos que el conjunto es un subconjunto de , no tenemos un algoritmo para determinar qué subconjunto. En consecuencia, aunque sabemos que es aceptado por una de las posibles FSA, no sabemos cuál es. Aunque debo confesar que sabemos en gran medida cómo se ve.F F Q R 2 | Q |LFFQR2|Q|

Este es un ejemplo de lo que a veces se llama una prueba casi constructiva , que es una prueba de que una de un número finito de respuestas es la correcta.

Supongo que una extensión de eso podría ser una prueba de que una de las respuestas enumerables es la correcta. Pero no sé ninguno. Tampoco conozco una prueba puramente no constructiva de que algún problema sea decidible, por ejemplo, usando solo contradicciones.

babou
fuente
1
@DW Dije que es regular, pero es arbitrario . No tiene que ser recursivamente enumerable o regular. No se utiliza ninguna propiedad de que no sea el hecho de que es un conjunto de cadenas. Si no confías en mí, mira Hopcroft-Ullman 1979, página 62.L LRLL
babou
Gracias. Esta es mi respuesta favorita porque el lenguaje decidible es infinito.
Erel Segal-Halevi
@babou, mi error, leí mal lo que escribiste. Mi culpa, perdón por eso. He editado tu publicación para hacer que la parte que entendí mal ojalá sea más clara.
DW
@DW Me divierte que haya tenido un problema, pero a mí también me pasa. Pero tal vez debería haber sido más claro. Esto no fue intencional. Dicho esto porque algunos matemáticos piensan que es más elegante ser críptico. Gracias por la edición
babou
12

Para ampliar el comentario original de Hendrick, considere este problema

Dado un número entero ¿hay una corrida de o más 7s consecutivos en la expansión decimal de ?n πn0nπ

Este problema es decidible, ya que uno de los dos casos puede obtener:

  1. Hay un número entero para el cual la expansión decimal de contiene una ejecución de 7 consecutivos, pero ya no se ejecuta.π NNπN
  2. Para cualquier , la expansión de tiene una ejecución de 7s consecutivos.π nnπn

En el caso (1), un algoritmo de decisión para el problema sería uno de

Si responda "no" más responda "sí".n>N

y en el caso (2) el algoritmo sería

Responda "sí".

Claramente cada uno de estos es un algoritmo de decisión; simplemente no sabemos cuál. Sin embargo, eso es suficiente, ya que la capacidad de decisión solo requiere la existencia de un algoritmo, no la especificación de qué algoritmo usar.

Rick Decker
fuente
+1 Este es un ejemplo sencillo que recuerdo que utilizaba mi profesor en Computabilidad y Lógica. Es mi ejemplo, ya que no requiere mucho conocimiento de dominio, por lo que es fácil de transmitir.
Joshua Taylor
1
Para formulaciones alternativas, ver también aquí .
Raphael
2

Aquí hay una no respuesta. Estoy publicando porque creo que es instructivo, porque originalmente reclamé lo contrario y ocho personas acordaron lo suficiente para votar antes de que @sdcwc señalara el error. No quería editar mi primera respuesta porque no estoy seguro de que muchas personas la hubieran votado si supieran que está equivocada.

SS

HH

David Richerby
fuente