miércoles, 28 de mayo de 2008

Tarea 6 y ultima

a)¿Cómo se podría construir un generador de todos los códigos de Máquinas de Turnig sintácticamente correctos?


Para construir un generador de todos los codigos necesitamos un generador canonico del alfabeto {0,1,B} y un automata reconocedor de MT´s que sabemos que existe ya que lo hemos dado en clase.

Para empezar el generador ira sacando cadenas w que le pasaremos al reconocedor de MT´s que nos dira si la cadena pertence a una MT(como hemos visto en clase las maquinas de Turing se pueden codificar mediante 0,s y 1,s).








Las cadenas w pueden ser por ejemplo {0},{1010},{00010}...


El problema es que aunque podamos saber el codigo de infinitas MT´s siempre habra mas maquinas de Turing por tanto nunca tendremos suficientes codigos para todas las maquinas.








b)Pues creemos que como se ha demostrado en el primer apartado nunca podremos conseguir suficientes maquinas porque siempre podremos tener una cadena mas y por tanto siempre necesitamos mas maquinas.Asique nosotros nos decidimos por la respuesta 2 (La de que no tiene bastantes maquinas)





Por lo tanto no podremos resolver todos los problemas siempre habra alguno que no se pueda.

lunes, 12 de mayo de 2008

Demostracion de que la interseccion de dos LRE´S es un LRE




Sean L1 y L2 dos lenguajes regulares enumerables.
Sea L el lenguaje interseccion entre L1 y L2.
Las clases Lre de los lenguajes recursivamente enumerables son cerradas respecto a la intersección.
X es una cadena que pertenece al lenguaje L.
Tenemos M1 que sabemos que es una maquina que acepta las cadenas del lenguaje L1.
Tenemos M2 que sabemos que es una maquina que acepta las cadenas del lenguaje L2.
Queremos saber si la interseccion de dos LRE´S tambien va a ser un LRE.
Con las maquinas M1 y M2 podemos construir una maquina M que nos diga si va a reconocer a una cadena X del lenguaje L.
Funcionamiento de M:
Le pasamos una cadena X a la maquina M.Para que la maquina acepte esa cadena la cadena X tiene que pertenecer al lenguaje L1 , lo acepta la maquina M1,y tambien al lenguaje L2, lo acepta la maquina M2. Cuando haya aceptado las dos maquinas entonces podremos decir que la acepta la maquina M y por lo tanto pertenecera al lenguaje L que es la interseccion de los lenguajes L1 y L2.
Sabemos por definicion que la interseccion de dos LRE´S son cerrados, por lo que sabemos que
X pertenece al lenguaje L que lo acepta la maquina M y que L es un LRE.





domingo, 4 de mayo de 2008

Resumen semanal ( 28 de abril - 5 de mayo)

4ª semana de trabajo:

Esta semana fue todo muy rápido ya que había fiesta de por medio; quedamos el martes 29 sobre las 16h, como siempre, y maduramos las ideas que teníamos sobre la MT a realizar.
Elegimos multicinta porque... hasta este trabajo todas las MT's que habíamos hecho eran multicabezal.
Y empezamos con la maquinita, que no nos dió excesivos problemas, pero un ligero dolor de cabeza que me duró todo el día, es que pensar tanto es malo Gloria ( por si lo lees ).
Pero allí estaba Roberto Turing, así le llaman ahora, jajaja, esa almendra que tiene le funciona bien al tio. Acabó por encontrar el error que teníamos y parece que va bene, y si tuto va bene...avanti con...
Sabemos que tenemos trabajo que va con retraso, por ejemplo nos falta corregir las MT's de otros grupos, pero todo a su debido tiempo, que no solo existen las máquinas de turing... ;-)

Resumen Semanal ( 21 - 28 de abril)

3ª semana de trabajos forzados:

El martes 22 quedamos de 16 - 18h y pensamos la idea para realizar las máquinas que contaban bloques de 0's ( una simple y la otra multicabezal ), fue bastante bien porque todo salió a la primera. Ya que nos veiamos con ganas continuamos con las MT's para saber si los bloques de 0's estan ordenados, pensamos antes la idea para el multicabezal pero no dábamos con la MT simple, así que mejor dejarlo para el dia siguiente.
El miercoles apareció Roberto con ese arte y con ese cairel, ese cairel español, jajaja. Se le ocurrió a él la MT que faltaba, para que engañarnos (el que tiene cabeza ... tiene cabeza) y asunto finiquitado. Durante el transcurso de la semana colgamos las MT's en este maravilloso blog y c'est fini.

Mañas, ... si te hubiera conocido antes, ;-)

viernes, 2 de mayo de 2008

Generador de cadenas del tipo AnB2nAn



Es multicinta , en la primera cinta ira poniendo 0´s y en la segunda ira escribiendo las cadenas que genera empezando por la cadena vacia.

lunes, 28 de abril de 2008

Maquina reconocedora de cadenas de 0s incrementales modificada

La entrada sera: B010010010000100B

Vamos a utilizar dos cabezales que los situaremos en primer lugar en el primer 0 de la izquierda.
Los pasos que seguimos son:
Mover los cabezales al lugar que queremos (Primer cero de la izquierda y primer 0 del siguiente grupo para comparar)
Comparamos grupo a grupo y solo aceptamos los grupos que sean mayores o iguales al anterior y finalmente comprobamos que acabamos en un blanco.


f(q0,0,0)=(q0,{0,z},{0,R})
f(q0,0,1)=(q1,{0,z},{1,R})
f(q1,0,0)=(q1,{0,R},{0,R})
f(q1,1,0)=(q2,{1,R},{0,R})
f(q1,1,1)=(q1,{1,R},{1,R})
f(q2,0,0)=(q2,{0,z},{0,R})
f(q2,0,1)=(q1,{0,z},{1,R})
f(q2,0,B)=q3(final)

Maquina reconocedora de cadenas de 0s incrementales

Formato de entrada: B0010010001000001000000B



Reconoce las cadenas de 0´s de forma que sena mayores o iguales a la anterior.
En esta cadena la entrada lee 2 ceros,luego 2,luego 3,5,6 asi hasta que acaba si acaba en estado final es que la cadena es buena.
Empezamos desde el primer cero de la izquierda.

viernes, 25 de abril de 2008

MT multicabezal Contador de 0's separados por 1's

Entrada: B0010010000100000B
Salida: B0000B


Los 2 cabezales empiezan en el 0 de la izquierda. Primero se mueve el 1º de ellos hasta llegar a la ultima B, que cambia por una Y. En ese momento se mueve el 2º cabezal aun en el primer 0 y cada 0 que encuentra lo cambia por una B hasta que llega al 1, también lo cambia por una B, y entonces el 1er cabezal escribe un 0 detras de la Y. Asi cada vez que encuentre un 1 hasta llegar a la Y cambiando ésta por una B.



Multicabezal ( 2 cabezales)

f(q0, 0, 0) = ( q0, {0,Z}, {0,R})
f(q0, 0, 1) = ( q0, {0,Z}, {1,R})
f(q0, 0, B) = ( q1, {0,Z}, {Y,R})
f(q1, 0, B) = ( q1, {B,R}, {B,Z})
f(q1, 1, B) = ( q1, {B,R}, {0,R})
f(q0, 0, B) = ( q2(final), {B,R}, {0,R})
f(q2)(final)

MT simple Contador de grupos de 0's separados por 1's


Entrada: B0010010000100000B

Salida: B0000B

Empezamos en el primer 0 de la izquierda.






jueves, 17 de abril de 2008

MT Divisores multicabezal

Entrada: B$000000000$B
Salida: B$000000000$000101B
Voy a usar 3 cabezales que empezaran en el primer 0, uno recorrera el numero original, el otro los divisores posibles y el ultimo escribira los divisores correctos.

f(q0,0,0,0)=(q0,{0,z},{0,L},{0,R})
f(q0,0,$,0)=(q0,{0,z},{$,L},{0,R})
f(q0,0,B,0)=(q0,{0,z},{B,z},{0,R})
f(q0,0,B,$)=(q0,{0,z},{B,z},{$,R})
f(q0,0,B,B)=(q1,{0,z},{B,z},{B,z})
f(q1,0,B,B)=(q2,{Y,R},{B,z},{B,z})
f(q1,$,B,B)=(q3,{$,L},{B,z},{B,z})
f(q2,0,B,B)=(q1,{Y,R},{0,L},{B,z})
f(q2,$,B,B)=(q3,{$,L},{B,z},{B,z})
f(q3,Y,B,B)=(q3,{0,L},{B,z},{B,z})
f(q3,$,B,B)=(q4,{$,R},{B,R},{B,z})
f(q4,0,0,B)=(q4,{Y,R},{Y,R},{B,z})
f(q4,0,$,B)=(q5,{0,Z},{$,L},{B,z})
f(q4,$,0,B)=(q6,{$,L},{0,L},{B,z})
f(q4,$,$,B)=(q8,{$,z},{$,L},{B,z})
f(q5,0,Y,B)=(q5,{0,z},{0,L},{B,z})
f(q5,0,B,B)=(q4,{0,z},{B,R},{B,z})
f(q6,Y,Y,B)=(q6,{0,L},{0,L},{B,z})
f(q6,Y,B,B)=(q6,{0,L},{B,z},{B,z})
f(q6,$,B,B)=(q7,{$,R},{B,R},{B,z})
f(q7,0,0,B)=(q10,{0,z},{B,R},{B,z})
f(q8,$,Y,B)=(q8,{$,z},{Y,L},{0,R})
f(q8,$,B,B)=(q9,{$,z},{B,R},{1,R})
f(q9,$,Y,B)=(q9,{$,z},{Y,R},{B,z})
f(q9,$,$,B)=(q6,{$,L},{$,L},{B,z})
f(q10,0,$,B)=(q11(final),{0,z},{$,z},{B,z})
f(q10,0,0,B)=(q4,{0,z},{0,z},{B,z})
f(q11)(final)

miércoles, 16 de abril de 2008

Resumen Semanal:

Semana 2

Esta semana quedamos para hacer la maquina de Turing de los divisores. Quedamos el miercoles que nos viene bien ese dia y pusimos las ideas en comun.En principio es dia quedaron un poco confusas las ideas ya que nos enganchabamos en un momento de la maquina.Despues de 3 horas decidimos quedar para el dia siguiente aver si aclarabamos ya la idea final.Quedamos en la biblioteca y estuvimos de 11 a 2 madurando la idea hasta que por fin dimos con la buena.Ya solo nos faltaba pasarlo a estados y ya lo tendriamos.Fuimos a casa de Alexis esa misma tarde y en dos horitas lo tuvimos hecho.Creo que quedo bastante bien ya que creemos que la idea fue buena como hacerlo.
Resumen semanal:

Semana 1

Con retraso pero ya llega.
La primera semana tenemos que quedar pa realizar las maquinas de Turing de la multiplicacion, la division y el cuadrado.Estuvimos liados y hasta el miercoles no pudimos quedar.Quedamos ese miercoles despues de comer a las 3 y estuvimos pensando como hacerlas y empezamos a hacer diferentes pruebas de como hacerlos.Estuvims ese dia hasta las 6-6.30 y quedamos en quedar al dia siguiente para acabarlas.Al dia siguiente volvimos a quedar despues de comer los tres y las acabamos. Ese dia tb quedamos a las 3 hasta las 5.30 mas o menos.

martes, 15 de abril de 2008

MT Cuadrado N^2


Entrada: B00B

Salida: B0000B


Empezamos desde el 0 de la izquierda.





lunes, 14 de abril de 2008

MT Division y MT Multiplicacion

Division:

Dados 2 enteros n y m, obtener n%m y n/m
Entrada: B00010000000B
Salida: B0100B

Empezamos desde el 0 de la izquierda.


Multiplicacion:


Entrada: B001000B

Salida: B000000B

Empezamos desde el 0 de la izquierda






MT GRUPO 03 UN CABEZAL (DIVISORES)


La entrada se basa en: B$000000000$B
La salida sera: B$000000000$000101B

En la maquina ya suponemos que el propio numero es divisor y no lo ponemos y el cabezal empieza en el primer 0

jueves, 10 de abril de 2008

Grande Getafe

Probando esto .Vaya mala suerte como puede ser no me lo explico
pero Grande Geta