Problemas sobre clasificación de lenguajes Elvira Mayordomo, Gregorio de Miguel, Universidad de Zaragoza 1 Lenguajes semidecidibles Lenguajes decidibles EXP P L. indeps. del contexto Lenguajes regulares 2 Para cada uno de los siguientes lenguajes … • • • • • • ¿Es regular? ¿Es independiente de contexto? ¿Está en P? ¿Está en EXP? ¿Es decidible? ¿Es semidecidible? 3 1- { w : w{0,1}* y w contiene un número impar de 0s} 2- {an bm cn dm: n,mN} 3- {an bn cm dm: n,mN} 4- { p#w : p es un programa que con entrada w para en tiempo mútiplo de 5} 4 1- { w : w{0,1}* y w contiene un número impar de 0s} intuiciones ???? 5 1- { w : w{0,1}* y w contiene un número impar de 0s} Es regular porque existe un autómata que lo acepta 1 1 q0 0 q1 0 6 1- { w : w{0,1}* y w contiene un número impar de 0s} Es regular porque existe un autómata que lo acepta o porque corresponde a la e.r. 1*(01*01*)*01* Así que es independiente de contexto, está en P, en EXP, es decidible y semidecidible. 7 2- {an bm cn dm: n,mN} ???? 8 2- {an bm cn dm: n,mN} Es decidible porque existe un programa (o una máquina de Turing) que para siempre y lo acepta 9 Procedimiento este(ent w:cadena; sal z:tpresultado) Variable res:tpresultado Principio na:=0; MientrasQue w[na+1]=“a” na:=na+1 Fmq ini:=na; nb:=0; MientrasQue w[ini+nb+1]=“b” nb:=nb+1 Fmq ini:=na+nb; nc:=0; MientrasQue w[ini+nc+1]=“c” nc:=nc+1 Fmq ini:=na+nb+nc; nd:=0; MientrasQue w[ini+nd+1]=“d” nd:=nd+1 Fmq Si (na+nb+nc+nd=|w|) AND (na=nc) AND (nb=nd) then z:= accepta else z:= rechaza Fin 10 2- {an bm cn dm: n,mN} Además el programa anterior sólo tarda tiempo O(|w|) (lineal) Luego está en P 2- {an bm cn dm: n,mN} Está en P, en EXP, es decidible y semidecidible ¿Es independiente de contexto? No, por el lema de bombeo para independientes de contexto 12 2- {an bm cn dm: n,mN} ¿Es independiente de contexto? No, por el lema de bombeo para independientes de contexto por ejemplo w= am! bm cm! dm = uvxyz con |vxy|<=m, |vy|>=1 hace que uv2xy2z L (complicadillo, hay que mirar caso por caso todos los posibles v,y) 13 2- {an bm cn dm: n,mN} Está en P, en EXP, es decidible y semidecidible No es independiente de contexto Luego tampoco es regular 14 3- {an bn cm dm: n,mN} ??? 15 3- {an bn cm dm: n,mN} Es independiente de contexto porque lo genera la gramática SXY XaXb | YcYd | O porque lo acepta un AdP … 16 3- {an bn cm dm: n,mN} No es regular por el lema de bombeo para regulares por ejemplo w= am bm cm dm = xyz con |xy|<=m, |y|>=1 hace que xy2z L (demasiadas a’s) 17 3- {an bn cm dm: n,mN} No es regular Es independiente de contexto, está en P, está en EXP, es decidible, es semidecidible 18 4- { p#w : p es un programa que con entrada w para en tiempo mútiplo de 5} ¿Qué quiere decir? ???? 19 Recordad … Procedimiento Simula (ent p:cadena; ent w:cadena; ent T:natural; sal ha_parado:booleano; sal resultado:tpresultado) {Simula T pasos de la ejecución de p con entrada w} {ha_parado=True cuando ha parado en tiempo<=T} {resultado=acepta si ha parado y devuelve acepta} 20 A es semidecidible A= { (p , w) : p es un programa que para con entrada w en tiempo mútiplo de 5} Procedimiento aceptaA(ent p:cadena; ent w:cadena; sal z:tpresultado) Variable res:tpresultado Principio T:=0; ha_parado:=false MientrasQue NOT ha_parado T:=T+1 simula(p,w,T,ha_parado,res) Fmq Si ha_parado AND ((T MOD 5)=0) entonces z:=acepta Fin 21 4- { p#w : p es un programa que para con entrada w en tiempo mútiplo de 5} Es semidecidible No es decidible (demostración complicada con diagonalización, no se pide) Así que no está en EXP, ni en P, ni es independiente de contexto ni regular 22