Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Por ejemplo: dado un numero natural, decidir si es par o no, dada una cadena arbitraria y un lenguaje
regular, determinar si la cadena pertenece o no al lenguaje.
o Decidibles: existe un algoritmo que para toda instancia del problema devuelve la respuesta
correcta.
o Indecidibles: existe un procedimiento que solo da respuesta para algunas instancias del problema.
Problemas de salida general: las posibles respuestas son respuestas “generales”.
Por ejemplo: calcular el promedio de una lista de números, determinar un camino entre dos ciudades.
o Solubles: existe un algoritmo que para toda instancia del problema devuelve la respuesta correcta.
o Insolubles: existe un procedimiento que solo da respuesta para algunas instancias del problema.
Los lenguajes formales se clasifican en:
Lenguajes recursivos: existe un algoritmo que determina para cualquier cadena si pertenece o no al
lenguaje. Todo lenguaje recursivo es también recursivo enumerable.
Lenguajes recursivos enumerables: existe un procedimiento que solo acepta las cadenas que pertenecen
al lenguaje pero para las que no pertenecen no siempre da respuesta.
La teoría de clasificación de problemas se basa en el estudio de los problemas de decisión. Todo problema de
salida general con un cierto grado de dificultad se puede transformar en un problema de decisión del mismo
grado de dificultad (reducción de problemas). Por ejemplo: determinar un camino entre dos ciudades ->
problema salida general. ¿Hay un camino entre dos ciudades? -> problema de decisión
2. Defina problemas tratables y problemas intratables.
Problemas tratables: son problemas decidibles que necesitan tantísimo tiempo para resolverse que no
son factibles ni prácticos (según qué casos). Ejemplo de utilidad: claves de seguridad. No existe un
algoritmo de tiempo polinómico que resuelve el problema.
Problemas intratables: son problemas decidibles que usan un tiempo razonable para resolverse. Sí existe
un algoritmo de tiempo polinómico que resuelve el problema.
3. Explique qué es el determinismo y el no determinismo. ¿Qué significa el determinismo y no
determinismo aplicado a los algoritmos? dé ejemplos de cada caso.
Un algoritmo no determinista puede proporcionar diferentes salidas para la misma entrada en diferentes
ejecuciones. A diferencia de un algoritmo determinista que produce una sola salida para la misma entrada,
incluso en diferentes ejecuciones, un algoritmo no determinista viaja en varias rutas para llegar a los diferentes
resultados.
10. Explique detalladamente el Teorema de Cook-Levin, respondiendo: qué presenta, porqué es importante
este teorema, para qué se utiliza.
12. Sea F = (x1) (x2x4)(x1 x3 x4 )(x1 x2 x3x5) satisfacible, se pide transformar F en F` de modo que en F` sus
cláusulas sean de tres literales (es una variable o una variable negable).