Post on 14-Apr-2017
Problemas, problemas, problemas
I've got 99 problems and 3-SAT reduces to all of them..—Reddit
Ivan Meza
ReducciónUn problema se reduce a A B
Función de reducciónUna función
se reduce a si si y sólo si
Sí entonces Sí entonces
f(w)A B w ∈ Af(w) ∈ B
w ∈ A f(w) ∈ Bw ∉ A f(w) ∉ B
Pequeño problemaConsiderar y reducir a LD 0∗1∗
Sí entonces
Sí entonces
w ∈ LD
f(w) = 01w ∉ LD
f(w) = 10
¿Entonces reducimos a regular?LD
tiene que ser computablef
Reducción
Verdadero
Falso
W calcular f f(w) Máquina B
R
Máquina RCon la entrada w
Calcular Correr en Si acepta , entonces aceptar Si rechaza , entonces rechazar
f(w)MB f(w)
MB f(w) wMB f(w)
w
Notación , es reducible a A B≤M A B
OpcionesSi A B≤M
Si es decidible, entonces los esSi es computable, entonces los esSi es indecidible, entonces los esSi es no es computable (no RE), entonces loses
B AB AA BA B
¿Qué sabemos de este lenguaje?
HALT = {[M, w]|M para con w}
Es indecidible
DECIDER = {[M]|Mes una máquina que decide}
¿Qué sabemos de este lenguaje?
Sabemos HALT DECIDER≤M
DECIDER indecidible
¿Qué sabemos de este lenguaje?
= {[M, w]|M acepta w}ATM
Es indecidible
ONES = {[M]|M acepta una cadena de la forma }1n
¿Qué sabemos de este lenguaje?
Sabemos ONESAMT ≤M
ONES indecidible
HALT ≤M AMT
HALT y son REAMT
ONLY ONES = {[M]|L(M) ⊂ }1∗
¿Qué sabemos de este lenguaje?
ONLY ONESLD ≤M
ONLYONES es no RE
= {[M]|L(M) ⊂ }ONLY ONES¯ ¯¯¯¯¯ ¯¯¯ ¯¯¯¯ ¯¯¯ 1∗
¿Qué sabemos de este lenguaje?
RE y co-RERE es el conjunto de lenguajes reconocidos por una máquina
de Turing
Problemas para los cuales verificamos una respuestacorrecta
co-RE es el conjunto de lenguajes cuyos complementso sonreconocidos por una máquina de Turing
Problemas para los cuales verificamos una respuestaincorrecta
RE y co-RESi y , entonces Si y , entonces Si y , entonces
Si y , entonces
L ∈ RE ∈ REL¯ ¯¯
L ∈ Rec
L ∈ RE ∈ coREL¯ ¯¯
L ∈ RecL ∉ R L ∈ RE
L ∉ co − REL ∉ R L ∈ co − RE
L ∉ RE
¿Qué sabemos de este lenguaje?
= {[M]|M ∉ L(M)}LD
¿Quién es ?LD¯ ¯¯¯¯
¿Qué sabemos de este lenguaje?
REGULAR = {[M]|L(M) es regular}
REGULARLD ≤M
REGULAR es no RE, pero
REGULARLD¯ ¯¯¯¯ ≤M
y afuera de los límites de locomputable
REGULAR REGULAR¯ ¯¯¯ ¯¯¯¯¯¯¯¯¯¯
¿Otro afuera?
E = {[ , ]|L( ) = L( )}QTM M1 M2 M1 M2
Resumen: Church-Turing tesisRec: problemas que pueden ser calculados por una computadoraRE: problemas donde respuestas pueden ser verificados por unacomputadoraco-RE: problemas donde respuestas pueden ser refutadas por unacomputadora
Fijandonos en los decidables¿Es posible resolver un problemaeficientemente?
Eficiencia se mide en número de pasos/tiempo
Tipos de complejidadesContante Log log Logarítmica Raiz cuadrática Polinómica Polinómica Log
Polinómica cuadrada Exponencial log Exponencial Factorial
O(1)O(log(n)log(n))
O(log(n))O( )n√
O(n)
O(nlog(n))O( )n2
O( )2log(n)
O( )2n
O(n!)
Tesis de Cobham-EdmondsUn lenguaje puede ser resuelto eficientemente si se decide
en tiempo polinómicoL
Clase de PTodos los problemas que se pueden resolver en en tiempo
polinomial
EjemplosReconocer de un AF, AFND y AFND-Reconocer de un APDReconocer de un AP (!Compiladores!)¿Dado un grafo y dos nodos, estos seconectan?¿Dado un número es primo?Etc, ...
w ϵww
n
Clase de NPTodos los problemas que se pueden resolver en en tiempo
polinomial por una MTND
NP es No determinístico en tiempo polinomial
Máquina de Turing no DeterminísticoTodos los problemas que se pueden resolver en en tiempo
polinomial por una MTND
NP es No determinístico en tiempo polinomial
Máquinas de TuringEs una tupla (Q, Σ, Γ, , B, A, δ)q0
conjunto finito de estados alfabeto de cadenas reconocidas alfabeto de cinta, estado inicial Símbolo de espacio en blanco pero estados finales
función de transición
QΣΓ Σ ⊂ Γq0B B ∈ Γ B ∉ ΣAδQ × Γ → Q × Γ × {der, izq}
Máquinas de Turing nodeterminística
Es una tupla (Q, Σ, Γ, , B, A, δ)q0
conjunto finito de estados alfabeto de cadenas reconocidas alfabeto de cinta, estado inicial Símbolo de espacio en blanco pero estados finales
función de transición
QΣΓ Σ ⊂ Γq0B B ∈ Γ B ∉ ΣAδQ × Γ → {Q × Γ × {der, izq}}
Uso el no determinismo para adivinar respuestas
Uso el determinismo para verificar la respuesta
Problemas fáciles de verificar
Ejemplos de NPSodukoEl problema del agente de viajeUn grafo puede ser coloreado por coloresDeterminar la mejor forma de asignar trabajos atrabajadores
k
La pregunta más importante encomputación¿ ? o ¿ ?P = NP P ≠ NP
NP-hardInformalmente, son los problemas que son tan difíciles como
el más difícil en NP
Formalmente, son los problemas que son tan difíciles como elmás difícil en NP
NP-complete
Intercección NP y NP-hard
Ejemplose
Satisfacción Lógica ProposicionalDe un conjunto de números podemos encontrar un conjunto quesume zero
Ejemplosd
NP-completeHaltingproblem
Si y , entonces L ∈ NP-complete L ∈ P P = NP
¿Como resolvemos estos problemas?
AproximaciónAleatoriidadUso derestriccionesParametrizaciónHeurísticas
ivanvladimir@gmail.com ivanvladimir.github.io ivanvladimir
Problemas, problemas, problemas by is licensedunder a
. Creado a partir de la obra en
.
Ivan V. Meza RuizCreative Commons Reconocimiento 4.0 Internacional
License
http://turing.iimas.unam.mx/~ivanvladimir/slides/lfya/np_p.html