¿Es este problema de gráfico finito decidible? ¿Qué factores hacen que un problema sea decidible?


17

Quiero saber si el siguiente problema es decidible y cómo averiguarlo. Cada problema que veo puedo decir "sí" o "no", ¿entonces la mayoría de los problemas y algoritmos son decidibles, excepto algunos (que se proporcionan aquí )?

Entrada: Un gráfico dirigido y finito , con y como vértices Pregunta: ¿Existe una ruta en con como vértice inicial y como vértice final?solvtu
soltuv


Respuestas:


18

Cualquier problema que requiera solo examinar una cantidad finita de datos es decidible, porque existe un algoritmo que consiste en enumerar todas las posibles soluciones. Puede ser ridículamente lento, pero eso no es relevante: si hay un algoritmo, es decidible.

El problema que declara supone un gráfico finito, que sugiere que es decidible. Estrictamente hablando, necesitas mirar un poco más allá. El problema es una propiedad en las rutas en el gráfico, y a veces hay un número infinito de rutas, cuando el gráfico contiene un ciclo (puede recorrer este ciclo tantas veces como desee). Sin embargo, es fácil convertir el problema en un problema finito: si hay alguna ruta que comience con y termine con que incluya un ciclo, entonces puede cortar todos los ciclos en esa ruta, y tiene una nueva solución que hace No incluye un ciclo. Dado que hay un número finito de caminos que no involucran un ciclo (si el gráfico tiene bordes, ¡hay como máximotuvkk!rutas que no usan el mismo borde más de una vez), el problema de encontrar una ruta de a es finitario, por lo tanto, decidible.tuv

Por cierto, esta propiedad se llama conectividad .

Este enfoque es común, llamado reducción . Dado un problema que no es sencillo, lo redujimos a un problema que sabíamos resolver.

A menudo es difícil demostrar que un problema es indecidible. Para demostrar que un problema es decidible, todo lo que tenemos que hacer es exhibir un algoritmo que lo decida. Para demostrar que un problema es indecidible, debemos demostrar que no puede existir ningún algoritmo. Hay algunos problemas indecidibles bien conocidos. En la práctica, la mayoría de las veces, cuando demostramos que un problema es indecidible, mostramos que hay un problema indecidible bien conocido que se reduce a nuestro problema. Dado que un algoritmo para nuestro problema resolvería el conocido problema indecidible, nuestro problema también debe ser indecidible.

Realmente no se puede decir que "la mayoría" de los problemas son decidibles o que "la mayoría" de los problemas son indecidibles. En cierto sentido teórico, casi todos los problemas son indecidibles, pero tenemos una fuerte tendencia a abordar problemas "interesantes", y es más probable que tengan una solución.


15

El problema es trivialmente decidible, como señaló Gilles en un comentario. En cuanto a su otra pregunta ...

¿La mayoría de los problemas y algoritmos son decidibles, excepto algunos (que se proporciona aquí )?

No En realidad, la mayoría de los problemas son indecidibles. De hecho, hay innumerables problemas (idiomas), pero solo hay muchas máquinas de Turing que pueden contarse, lo que significa que hay muchos problemas decidibles que pueden contarse.


8

Sí, esto es decidible, porque puedes hacer una búsqueda exhaustiva de todas las rutas posibles. No es necesario mirar ningún camino que repita un vértice, ya que se puede omitir el "desvío". Pero la longitud de cualquier ruta no repetitiva está limitada por el tamaño del gráfico, que es finito, por lo que solo hay muchas rutas de este tipo, que pueden verificarse una por una.

solunsiunsi


¿No depende de la entrada? Quiero decir, cuando la información dada no es suficiente para encontrar la respuesta, ¿debería decir que es indecidible?
Gigili

No estoy seguro de lo que estás preguntando; para el problema que describió, la entrada es suficiente para encontrar la respuesta.
Carl Mummert

@Gigili Si el problema fuera indecidible, sería imposible encontrar un algoritmo que generara sí o no para todas las entradas. Ese no es el caso en este problema ya que, con BFS, siempre podemos determinar si existe o no una ruta (también en tiempo lineal).
Zach Langley

@ZachLangley: Correcto, estaba preguntando por el caso general. Si la información dada como entrada no es suficiente para resolver el problema, ¿el problema es indecidible?
Gigili

tuvtuv

7

No hay ningún método que le indique si un problema específico es decidible o no. Con el tiempo, puede obtener un buen presentimiento si un problema específico es o no decidible.

Lo que suelo hacer es lo siguiente:

  1. Intenta resolver el problema. Es decir, trate de pensar en un programa de computadora que resuelva el problema dado. Para su problema sugerido, un programa muy simple simplemente verificará cualquier ruta posible y, por lo tanto, siempre logrará encontrarla (si existe), o le dirá que no existe otra ruta.
  2. formular el problema con claridad. Muchos problemas son demasiado vagos, pero cuando está escrito claramente es muy fácil ver si es decidible o no (al compararlo con otros problemas, se sabe que no es / decidible, o al usar métodos conocidos como el teorema de Rice )
  3. Si (2) no funcionó pero aún cree que el problema es indecidible, intente demostrarlo mediante la reducción de un problema indecidible (el problema de detención (o su complemento) funciona en muchos casos).

Casi siempre, cuando intente hacer el paso (1) para un problema indecidible, necesitará que su programa verifique un número infinito de cosas. Esto suele ser una señal de que el problema no es decidible.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.