HABILITACION DE AUTOMATAS
JHONATAN PLATA MENDOZA E-MAIL:
[email protected] ZONA: CARIBE –CEAD: VALLEDUPAR
GRUPO: 301405
CESAR AMAYA Tutor
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA “UNAD” ESCUELA DE CIENCIAS BÁSICAS Y TECNOLOGÍA E INGENIERIA INGENIERÍA DE SISTEMAS 2014
PRIMER PROBLEMA A DESARROLLAR: Dada la siguiente tabla de transición
0
1
q0
{q0, q3}
{qo, {qo, }
q1
Φ
# q2
q3
Φ
# q4
δ →
1. Exprese el autómata en notación matemática (Tome como referencia, ejemplo 24 página 43 del módulo). Identifique que tipo de autómata es (AFD o AFND) y justifique su respuesta. (No se trata de dar el concepto de determinismo). Es un AFD, dado que de cada estado y para cada simbolo solamente se tiene una opcion de salida. Tambien se puede decir que es un autómata de tipo AFD (Autómata Finito Determinístico), dado que no hay ambigüedad para alguno de los símbolos, además hay rutas determinadas. Además, es un autómata M finito compuesto por una quíntupla donde: M=(k, ∑, q0, δ, F) donde k={q0,q1,q2,q3,q4} ∑= {0,1}
q0 =estado inicial F= {q2, q4} Donde la función de transición está dada por: δ= {q0,q1,q2,q3,q4} x {0,1} {q0,q1,q2,q3,q4} δ(q0,0)= q0 δ (q0,0)= q3 δ (q0,1)= q0 δ (q0,1)= q1 δ (q1,1)= q2 δ (q2,0)= q2
q0
{q2, q4}
δ (q2,1)= q2 δ (q3,0)= q4 δ (q4,0)= q4 δ (q4,1)= q4
2. Identifique los elementos (tupla que es) (Asociadas con los elementos del autómata del ejercicio propuesto). Debe explicar y describir cada elemento y la función y significado en el autómata. Conceptos y definiciones adicionales. Es un autómata M finito compuesto por una quíntupla donde: M=(k, ∑, q0, δ, F), donde k={q0,q1,q2,q3,q4} ∑= {0,1} q0 =estado inicial F= {q2, q4} y δ= 0
1
q0
{q0, q3}
{qo, {qo, }
q1
Φ
# q2
q3
Φ
# q4
δ →
k={q0,q1,q2,q3,q4} representa el conjunto de estados ∑= {0,1} corresponde a las letras del alfabeto de entrada, para este caso a y b
q0 ϵ K representa el estado inicial F= {q2, q4} representan los estados finales Alfabeto: Conjunto finito y no vacío cuyos elementos se denominan símbolos. Se designa normalmente con las letras Σ o Γ. Ejemplo:{0,1}, {0,1,2,3,4,5,6,7,8,9}, {a, b} Palabra: es una secuencia finita de símbolos de un alfabeto, las mismas se pueden crear
especificando un alfabeto determinado. Ejemplo: Si el alfabeto es {a, b}: aba, bab, bbbbabbab Existe una palabra especial que representa una secuencia vacía de símbolos, y a menudo se le llama la palabra vacía y se representa con la letra griega λ .
Lenguaje: Conjunto de palabras sobre un alfabeto determinado. Normalmente para
designarlo se usa la letra L con subíndices si es necesario y otras letras del alfabeto latino. Un autómata finito AF o máquina de estado finito es un modelo computacional que
realiza cómputos en forma automática sobre una entrada para producir una salida. La finalidad de los autómatas finitos es la de reconocer lenguajes regulares, que corresponden a los lenguajes formales más simples según la jerarquía de Chomsky. Símbolo, la interpretación más básica es simplemente una representación distinguible
de cualquier información. Una tupla es una lista inmutable. Una tupla no puede modificarse de ningún modo
despues de su creación. Las principales ideas matemáticas necesarias para la compresión a la Teoría de Autómatas son conceptos que incluyen grafos, árboles, conjuntos, relaciones, cadenas, lenguajes abstractos e inducción matemática. El conjunto vacío Ø y el conjunto formado por la cadena vacía {E} son lenguajes.
El conjunto de palíndromos (cadenas que se leen igual de izquierda a derecha y viceversa) sobre el alfabeto {0,1} es un lenguaje infinito. Algunos elementos de este lenguaje son E, 0, 1, 00, 01,010, y 1101011. Por consiguiente vemos que el conjunto de todos los palíndromos sobre una colección finita de símbolos no es, técnicamente hablando, un lenguaje, porque sus cadenas no se construyen colectivamente a partir de un alfabeto. Los estados: Son las diferentes situaciones o combinaciones que se pueden presentar en
el autómata, además son círculos que llevan dentro el nombre que los identifica. El estado inicial nos brinda la pauta para saber por dónde es la salida o partida del autómata. Se le reconoce porque tiene una pequeña flecha sobre este. El estado final nos representa un estado de aceptación. Las transiciones son los respectivos movimientos que se presenta entre un estado y otro. En la tabla de transición al estado inicial suele señalarse con una flecha y al estado final con el signo numeral. 3. Identifique el lenguaje que genera. (no se trata de explicarlo o formularlo en notación de una ER). Puede formularlo también matemáticamente. L={w ϵ (0,1)*|w= conjunto de cadenas que empiecen por cero o por uno y que terminen en cero o uno, y puede tener cuantos ceros y unos intercalados, en los cuales debe terminar o anteceder en pares de unos o ceros}
4. Muestre en el simulador (gráficamente) como recorre una cadena válida. Explique cada secuencia. (No se trata solo de captura las imágenes, estas deben ser explicadas en pié de página o de lo contrario no tienen validez)
Cadena valida 1111
Parte del estado qo
Luego pasa al estado q1 y lee un1
Luego pasa al estado q2 y lee otro 1
Se mantiene en el mismo estado final q2 y lee un 1
Finalmente lee el último 1 se detenie en el estado q2, lueo de haber aceptadp la cadena valida.
5. Muestre el diagrama de Moore generado en JFLAP y en VAS y comente cinco similitudes y cinco diferencias que encuentra al realizarlo en los dos simuladores. (herramientas que ofrezca uno u otro)
SIMULADORES JFLAP
VAS
SIMILITUDES
Permiten establecer claramente si una cadena es aceptada o rechazada po el autómata de acuerdo al diagrama de moore. Se pueden crear autómatas finitos deterministticos y no determonisticos Permiten exportar el automata diseñado en formato de imagen Permiten la coversion del autómata a NFA a DFA Permiten seleccionar todo el autómata y desplazarlo en cualquier parte del área de trabajo DIFERENCIAS JFLAP
VAS
Tiene para convertir de AF a ER Tiene extension .jff No tiena la herramienta para visualizar la tabla de transicion Cada uno de los estado, ya salen nombrados Tiene la herramienta para minimizaar el automata
No tiene esta herramienta Tiene extension *.fa En este simulador, si se puede ver la tabal de transiion Cada estado a crear debe nombrar Esta herramienta no está disponible en este simulador
6. Identifique la ER del autómata y Plasme tres cadenas válidas y tres no válidas en una tabla (identificando jerarquía de operadores regulares, identificando colores). Para ello apóyese en el video: http://youtu.be/JZPAHHA2PnE (minuto 14 al 33). O en el video http://youtu.be/wGTxhnPXcw4 ER (0+1)*11(0+1)* cuanado el estado final es q2 (0+1)*00(0+1)* cuando el estado final es q4 Generalizando: ER (0+1)*11(0+1)* + (0+1)*00(0+1)*
(0+1)*
1 1
0 0
1 1 1 1 1 1 1 1 1
1 1 1 1
(0+1)*
1 0 0 1
(0+1)*
1 1
1
0
0
0
0
0
0
(0+1)* 1 0
0
1 1 1
0 0
1
ok ok ok ok ok X X X X
7. Justifique o explique según la jerarquía y función de los operadores de ER en qué parte se trunca la jerarquía y orden de los operadores para las cadenas no válidas de la tabla anterior
(0+1)* 0 0
1 1 1 1 1
1
(0+1)* 0 1
(0+1)*
1
0 0 0 0
0
(0+1)* 1
1
X X X X
Primero, lo que no tiene estrela de kleene debe estar en la tabla obligado para tal fin de que el dato sea una cadena valida. Es decir las columnas de 11 y 00 deben tener valores, lo mismo sucede con la columna de ceros. La primera columna debe tener ningun uno y cero, un uno o muchos unos, seguidos de un 11 o un solo 1 En general, estas cadenas no son validas porque no llegan a un estado de aceptacion. De las columnas de color amarillo, azul, purpura y verde son opcionales tomar ya sea tomar un uno o un cero, o repetir cuantas veces los ceros o unos. El orden de prioridad de los operadores es, de mayor a menor: *, ▪, + Este orden puede alterarse mediante paréntesis, de forma análoga a como se hace con las expresiones aritméticas. Unión + Cierre o estrella de kleene * Concatenación ▪ (no suele escribirse) 8. De la tabla de transición dada y del autómata asociado a esa tabla, genere la ER (no desde el simulador JFLAP), genérela de forma manual y explique cada sentencia asociada al autómata o diagrama de moore.
Generamos un solo estado final y un nuevo estado inicial; y se eliminan los nodos intermedios
Eliminamos q2
Eliminacion de q4
Eliminacion de q3
Eliminacion de q1
Con la eliminacion de q0 y agrupar los datos, nos queda la ER: (0+1)*11(0+1)* + (0+1)*00(0+1)*
SEGUNDO PROBLEMA A DESARROLLAR : Diseñe un APD que acepte cadenas
de este tipo: {(aabc) (aaaaaabc) (aaabcc) (aaabc) (aaaabcc) (aaaaaaaabcccc) (abc) (aabcc) (aaabccc) (aaaabcccc) (aaaaaaaaabcccc) } Encuentre en primera instancia una regla que evalúe estas cadenas y que cumpla las condiciones de las mismas. 1. Identifique la regla que define las cadenas del autómata (es igual que encontrar o definir el lenguaje que acepta el autómata). Debe denotarse en cualquier caso en notación matemática. Acepta el Lenguaje L = {aibck } donde i,k ≥ 1 y i ≥ k 2. Describa el autómata en notación matemática con sus componentes Expresada formalmente por medio de una tripla q ∈ K es el estado actual del autómata w ∈ ∑* es la subcadena de entrada que aún no se ha analizado α ∈ Γ* es el contenido actual de la pila para las transacciones se usa: w = es la entrada (secuencia de caracteres) que se consume α = es lo que se saca de la pila β = es lo que se mete en la pila 3. Grafíquelo en JFLAP y realice el “Traceback” para las transiciones. (Las columnas para un AP son: El estado en que se encuentra el autómata, lo que falta por leer de la palabra de entrada, y el contenido de la pila).
Traceback para la cadena de entrada: aaabcc
4. Plasme las imágenes y capturas en el documento. (Documente el proceso) Traza para la cadena valida (aaabcc) Para comprobar la validez de esta cadena, se hace clic en la barra de herramientas “Input”, luego la opción de “multiple run”, en donde nos sale un cuadro con dos columnas: Input – Result; en Input se digita la cadena xyx , al hacer clic en Run Inputs nos sale un mensaje
Se da clic en aceptar, y nos mostrará en Result –Accept, lo que nos indica que la cadena es valida. Luego se le da clic en View Trace, la cual nos muestra otra ventana con la traza de la cadena valida (aaabcc).
5. Muestre el diagrama correspondiente de estados.
ESTADO
POR LEER
PILA
q0 q0 q0 q0 q1 q2 q2 q2 q3
aaaabcc aaabcc aabcc abcc bcc cc c
Zo AZ AAZ AAAZ AAAZ AAZ AZ Z
Función de transiciones f(q0,a)=f(q0, Z;AZ) f(q0,a)=f(q0, A;AA) f(q0,b)=f(q1, ;) f(q1,c)=f(q2, A;) f(q2,c)=f(q2,A; ) f(q2, )=f(q2,A; ) f(q2, )=f(q3,Z; ) 6. Identifique los contenidos (el recorrido para cada interacción) de la pila y el estado de parada. Realícelo con una cadena válida. Cadena valida (xyx) Contenido de la pila y cambios de estado hasta el estado de parada para la cadena válida “aaaabcc”
Cadena leída=aaaabccc ---Pila=AZ---Estado= Cadena leída=aaaabccc ---Pila=AAZ--q0 Estado= q0
Cadena leída=aaaabccc ---Pila=AAAZ--Estado= q0
Cadena leída=aaaabccc ---Pila=AAAAZ--Estado= q0
Cadena leída=aaaabccc ---Pila=AAAAZ--Estado= q1
Cadena leída=aaaabccc ---Pila=AAAZ--Estado= q2
Cadena leída=aaaabccc ---Pila=AAZ--Estado= q2
Cadena leída=aaaabccc ---Pila=AZ---Estado= q2
Cadena leída=aaaabccc ---Pila=Z---Estado= q2
Cadena leída=aaaabccc ---Pila=” “---Estado= q3 ESTADO FINAL
TERCER PROBLEMA A DESARROLLAR: Diseñe una MT que genere cadenas de
tipo {(aa) (aaaa) (aaaaaa) (aaaaaaaa) (aaaaaaaaaa ……} 1. Identifique la regla que define las cadenas de la MT (es igual que encontrar o definir el lenguaje que acepta la MT). Debe denotarse en cualquier caso en notación matemática. Acepta el Lenguaje L = {2a}, 2. Identifique los componentes de la Máquina de Turing (descríbala). Una MT es un modelo matemático que se puede definir como un Séptuplo , ∑ , Γ, , , ) en donde: = es un conjunto de estados tal forma que h ∈ K donde h es el estado de aceptación y pertenece al conjunto de estados K ={ ∑ = es el alfabeto de entrada (palabras de entrada) (a), donde Ц ∉ ∑ ∑ ={
(Símbolo blanco Ц pertenece al alfabeto de la cinta no al alfabeto de las palabras que se van a reconocer) = es el alfabeto de la cinta, donde Ц ∈ y ∑ ⊆ ={
(Símbolo blanco pertenece al conjunto de símbolos del alfabeto de la cinta de y el alfabeto de la cinta contiene al alfabeto de entrada) s ∈ K es el estado inicial que pertenece al conjunto de estados K s={ T ⊆ K es el estado final que pertenece al conjunto de estados K T = { B ⊆ es el símbolo carácter blanco que está inmerso en el alfabeto de la cinta , (el símbolo B no puede hacer parte inicialmente del alfabeto de entrada ∑) aparece en
todas las casillas excepto en aquellas que contienen los símbolos de entrada : − { ) ! " {#, $)
3. Diséñela en un Diagrama de Moore.
4. Recorra la máquina con al menos una cadena válida explicando lo sucedido tanto en la cinta como en la secuencia de entrada. Cadena valida: aaaa Para realizar el recorrido de la anterior cadena valida utilizamos la herramienta Input, digitamos aaaa
Luego damos clic en aceptar y seguidamente hacemos el paso a paso Step… desplegándonos esta pantalla (de arriba)
El recorrido inicia en el estado inicial s={ , el cabezal de color rojo lee del alfabeto de entrada ∑ ={ el primer símbolo a
Luego, pasa al estado , lee el símbolo a coloca en el alfabeto de la cinta de la máquina una a y desplaza el cabezal a la derecha
Ahora, pasa al estado , lee el símbolo a coloca en el alfabeto de la cinta de la máquina una a y desplaza el cabezal a la derecha
En este paso, va al estado , lee el símbolo a coloca en el alfabeto de la cinta de la máquina una a y desplaza el cabezal a la derecha
Ahora, nuevamente pasa al estado , lee el símbolo en blanco coloca en el alfabeto de la cinta de la máquina una símbolo en blanco y desplaza el cabezal a la derecha
Pasa al estado , lee el símbolo a y coloca en el alfabeto de la cinta de la máquina una a y desplaza el cabezal a la izquierda
Pasa al estado , lee el símbolo a y coloca en el alfabeto de la cinta de la máquina una a y desplaza el cabezal a la izquierda
Ahora pasa al estado % , lee el símbolo a y coloca en el alfabeto de la cinta de la máquina una a y desplaza el cabezal a la izquierda
Se regresa al estado , lee el símbolo a y coloca en el alfabeto de la cinta de la máquina una a y desplaza el cabezal a la izquierda
Lee un carácter en blanco y coloca en el alfabeto de la cinta de la máquina un carácter en blanco y pasa al estado % moviendo el cabezal hacia la izquierda.
Por último la máquina llega al estado “halt” de aceptación y se detiene en el estado final & (quedando una salida de aaaa). El simulador JFLAB nos muestra el recorrido en la parte inferior izquierda en color verde indicando el reconocimiento de la cadena, además el cabezal nos queda en la primera a.
5. Identifique una cadena que no sea válida y justifíquela porque. (Recorriendo cinta y datos de entrada) Cadena no válida aaa
El recorrido inicia en el estado inicial s={ , el cabezal de color rojo lee del alfabeto de entrada ∑ ={ el primer símbolo a
Luego, pasa al estado , lee el símbolo a coloca en el alfabeto de la cinta de la máquina una a y desplaza el cabezal a la derecha
Ahora, pasa al estado , lee el símbolo a coloca en el alfabeto de la cinta de la máquina una a y desplaza el cabezal a la derecha
En este paso, va al estado , y observamos que el simulador nos muestra el momento en que el proceso es truncado y la máquina se detiene en el mismo estado .
Notamos que el estado no nos lleva a ningún estado halt o final ya que no fue aceptada la cadena aaa; la máquina de Turing después de todos los pasos que se llevaron a cabo el simulador muestra en la parte inferior izquierda (de color morado) el no reconocimiento de la cadena aaa.
6. Ejecute el Run Test a la cadena aceptada (muéstrela en la captura de imagen que le genera JFLAP asociada a cada transición para el trabajo). El Run Test implica identificar cada iteracción en la que se muestre el carácter leído, el contenido de la cinta, lo que falta por leer. Sea W = aaaa
aaaa
Ͱa aaa
aaaa
Ͱaa aa
Estando en la MT en el estado con la cabeza lectora sobre un carácter de entrada “a”, la función de transición enviará al autómata a un estado , y adicionalmente escribirá el carácter “a” en la cinta. Además la cabeza de la MT hará un movimiento a la derecha. Por leer aaa
La MT en el estado con la cabeza lectora sobre un carácter de entrada “a”, la función de transición enviará al autómata a un estado , y adicionalmente escribirá el carácter “a” en la cinta. Además la cabeza de la MT hará un movimiento a la derecha. Por leer aa
aaaa
Ͱaa a
aaaa
Ͱaaa
Estando en la MT en el estado con la cabeza lectora sobre un carácter de entrada “a”, la función de transición enviará al autómata a un estado , y adicionalmente escribirá el carácter “a” en la cinta. Además la cabeza de la MT hará un movimiento a la derecha. Por leer a
Estando en la MT en el estado con la cabeza lectora sobre un carácter de entrada “a”, la función de transición enviará al autómata a un estado , y adicionalmente escribirá el carácter “en blanco” en la cinta. Además la cabeza de la MT hará un movimiento a la derecha. Por leer nada.
Ahora, de aquí en adelante; lo que hace la maquina es regresarse y colocar el cabezal en la primera letra a. Es decir, ahora hace todo el mismo proceso pero hacia la izquierda.
Estando en la MT en el estado con la cabeza lectora sobre un carácter de entrada “carácter en blanco”, la función de transición enviará al autómata a un estado q3 y adicionalmente escribirá el carácter “a” en la cinta. Además la cabeza de la MT hará un movimiento a la izquierda. Por leer aaaa.
aaaa
Ͱa aaa
Estando en la MT en el estado con la cabeza lectora sobre un carácter de entrada “a”, la función de transición enviará al autómata a un estado , y adicionalmente escribirá el carácter “a” en la cinta. Además la cabeza de la MT hará un movimiento a la izquierda. Por leer aaa
aaaa
Ͱaa aa
aaaa
Ͱaa% a
La MT en el estado con la cabeza lectora sobre un carácter de entrada “a”, la función de transición enviará al autómata a un estado % , y adicionalmente escribirá el carácter “a” en la cinta. Además la cabeza de la MT hará un movimiento a la izquierda. Por leer aa
Estando en la MT en el estado % con la cabeza lectora sobre un carácter de entrada “a”, la función de transición enviará al autómata a un estado , y adicionalmente escribirá el carácter “a” en la cinta. Además la cabeza de la MT hará un movimiento a la izquieda. Por leer a
aaaa
Ͱaaa
Estando en la MT en el estado con la cabeza lectora sobre un carácter de entrada “a”, la función de transición enviará al autómata a un estado % , y adicionalmente escribirá el carácter “en blanco” en la cinta. Además la cabeza de la MT hará un movimiento a la izquierda. Por leer nada.
Ͱaaaa%
Por último notamos que la máquina llega al estado & “halt” de aceptación, se detiene y el simulador JFLAB nos muestra el recorrido en la parte inferior izquierda en color verde indicando el reconocimiento de la cadena aaaa, y colocando el cabezal en a; dándonos una salida de aaaa.
7. Identifique en que momento la máquina se detiene. Se detiene (hace halt) en cuanto llega a un carácter blanco. Dado que no encuentra más símbolos por leer. Cuando se alcanza un estado halt en el control finito, como resultado de una transición y se acepta la palabra de entrada aaaa. Es decir, se detiene cuando acepta la cadena. Una cadena de entrada w es aceptada por una MT M si el computo que se indica la configuración inicial qow termina en una configuración instantánea w1pw2, p es un estado de aceptación, en la cual M se detiene completamente. El lenguaje L(M) aceptado por una MT M se define como: L(M)={w ϵ Σ: q0w Ͱ* w1pw2 ϵ T } M se para en w1pw2 si la cadena de entrada en una máquina M pertenece a L(M), la máquina M siempre se detiene.
8. Visualice las salidas (como transductor) para 5 cadenas válidas en el simulador JFLAP Cadenas validas aa aaaa aaaaaa aaaaaaaa aaaaaaaaaa
9. Identifique si el diseño de la Máquina de Turing obedece a un complemento a 1 de un número binario. Justifique su respuesta y documéntela. (Tenga en cuenta citas y referencias de autores). No se limite a copiar definiciones. El diseño de la Máquina de Turing no obedece a un complemento a 1 de un número binario, dado que no sustituye los unos por ceros y los ceros por unos. El complemento a 1 de un número binario es el número que Resulta cuando se complementa cada bit. En la siguiente figura se muestra cómo se produce el complemento a uno con Circuitos lógicos. Puesto que cada bit se activa a un inversor, la salida de 4 bits es el complemento a uno de la entrada de 4 bits. Por ejemplo, si la entrada es1: X3X2X1X0=1000 El complemento a uno es ( (' (' ' ( *+++ '
X3
X2
X1
X0
( '
( '
( '
( '
_____________ 1
Tomado de Principios y Aplicaciones Digitales. Albert P. Malvino. 1993. Pag. 178.
CUARTO PROBLEMA A DESARROLLAR:
Tomando como referencia la aplicabilidad de las máquinas de estados, la Teoría de la Información trata una de las técnicas de detección y corrección de errores, por los teoremas de Trellis y Viterbi con códigos convolucionales para canales con ruido. Se obtiene el siguiente dato codificado: (Como se muestra en la tabla), con errores en el par de bits codificados 2,4 y 7 con distancia de haming 1. bit(posición dada en el orden que entran asociado a K)
8
7
11
10
6
5
4
3
2
1
11 11
10
00
10
01
10
DATOS ESTADO PRESENTE CODIFICADO RECIBIDO
PARA LA MAQUINA DE MOORE
El diagrama de estados se podrá representar como: -./) estados posibles /) 0 Estados posibles
1. Determine cuál fue el dato de entrada. (Completar la tabla)
El dato de entrada fue 1 0 0 0 1 1 1 0
bit(posición dada en el orden que entran asociado a K)
DATOS
8
7
6
5
4
3
2
1
1
0
0
0
1
1
1
0
11
10
11 11
10
00
10
01
10
ESTADO PRESENTE CODIFICADO RECIBIDO
2. Determine los estados presentes: (represente la máquina de estados) del código convolucional para k=1, m= 3, n=2 para cada estado. Es decir, represente la
transición de entrada para cada bit (ocho en total) con el codificador convolucional. CODIFICADOR CONVOLUCIONAL
Un código convolucional queda especificado queda especificado por tres parámetros (n, k, m), donde: n es el número de bits de la palabra codificada k es el número de bits de la palabra de datos m es la memoria del código o longitud restringida
El número de bits por palabra de datos k, cumple: k/n=R A este cociente se le denomina ratio del codificador. El parámetro m (longitud restringida) indica el nivel en la cual empiezan a converger las ramas. Se tienen -
ramas que llegan a cada nodo.
En el diagrama de estados se podrán representar -./)
estados posibles.
CODIFICADOR CONVOLUCIONAL
El codificador parte del estado todo cero. m= memoria del código o
Longitud restringida 11010111 k= número de bits de la palabra
De datos (entrada)
0
0
0
n= número de
bits de la Palabra codific. (Salida)
Inicio de proceso del codificador convolucional Paso 1:
Recordamos, está en un estado 00 y que esto es un registro de desplazamientos hacia la derecha. Pero como nos dan los datos recibidos, ajustamos los datos, para que nos dé el primer dato (01), es decir asumimos que ya había un 0 en el inicio, un 1 en el medio y un 1 al final. Evaluamos la salida: (siguiendo las flechas): 0 (verde) x 1 (último azul)=1 Ese 1 en memoria (primer círculo de arriba) x 1(azul del medio) =0 Cuando entra un 0 la salida codificada es 10
0
10001110
1
1
1 1
1
0
0
bit(posición dada en el orden que entran asociado a K)
DATOS
8
7
6
5
4
3
2
1
1
0
0
0
1
1
1
0
ESTADO PRESENTE
01
CODIFICADO
10
RECIBIDO
11
10
11 11
10
00
10
01
10
Paso 2:
Evaluamos la salida: (siguiendo las flechas): 1 (amarillo) x 1 (último azul)=0 Ese 0 en memoria (primer círculo de arriba) x 0 (verde del medio) = 0 Cuando entra un 1 la salida codificada es 00 Nota: dado que no se puede obtener el dato recibido de 01 (que corresponde al bit 2 con distancia de haming de 1), se procede a tener el dato recibido sin esta distancia. Es decir que la salida correcta es 00
1
100011
0
1
0
10
0
00
bit(posición dada en el orden que entran asociado a K)
8
7
6
5
4
3
2
1
1
0
0
0
1
1
1
0
ESTADO PRESENTE
10
01
CODIFICADO
00
10
01
10
DATOS
RECIBIDO
11
10
11
10
00
10
Paso 3:
Evaluamos la salida: (siguiendo las flechas): 1 x 0 = 1 Ese 1 en memoria (primer círculo de arriba) x 1 = 0 Cuando entra un 1 la salida codificada es 10
10001
1
1
0
1
101
0
000
bit(posición dada en el orden que entran asociado a K)
8
7
6
5
4
3
2
1
1
0
0
0
1
1
1
0
ESTADO PRESENTE
11
10
01
CODIFICADO
10
00
10
10
01
10
DATOS
RECIBIDO
11
10
11
10
00
Paso 4:
Evaluamos la salida: (siguiendo las flechas): 1 x 1 = 0 Ese 0 en memoria (primer círculo de arriba) x 1 = 1 Cuando entra un 1 la salida codificada es 01 Nota: dado que no se puede obtener el dato recibido de 00 (que corresponde al bit 4 con distancia de haming de 1), se procede a tener el dato recibido sin esta distancia. Es decir que la salida correcta es 01
1 000
1
1
1
0
1010
1
0001
bit(posición dada en el orden que entran asociado a K)
8
7
6
5
4
3
2
1
1
0
0
0
1
1
1
0
ESTADO PRESENTE
11
11
10
01
CODIFICADO
01
10
00
10
00
10
01
10
DATOS
RECIBIDO
11
10
11
10
Paso 5:
Evaluamos la salida: (siguiendo las flechas): 0 x 1 = 1 Ese 1 en memoria (primer círculo de arriba) x 1 = 0 Cuando entra un 0 la salida codificada es 10
100
0
1
1
1
10101
0
00010
bit(posici ón dada en el orden que entran as ociado a K)
8
7
6
5
4
3
2
1
1
0
0
0
1
1
1
0
ESTADO PRESENTE
01
11
11
10
01
CODIFICADO
10
01
10
00
10
10
00
10
01
10
DATOS
RECIBIDO
11
10
11
Paso 6:
Evaluamos la salida: (siguiendo las flechas): 0 x 1 = 1 Ese 1 en memoria (primer círculo de arriba) x 0 = 1 Cuando entra un 1 la salida codificada es 11
10
0
0
1
1
101011
1
000101
bit(posici ón dada en el orden que entran as ociado a K)
8
7
6
5
4
3
2
1
1
0
0
0
1
1
1
0
ESTADO PRESENTE
00
01
11
11
10
01
CODIFICADO
11
10
01
10
00
10
11
10
00
10
01
10
DATOS
RECIBIDO
11
10
Paso 7:
Evaluamos la salida: (siguiendo las flechas): 1 x 1 = 0 Ese 0 en memoria (primer círculo de arriba) x 0 = 0 Cuando entra un 1 la salida codificada es 00 Nota: dado que no se puede obtener el dato recibido de 10 (que corresponde al bit 7) por lo tanto la salida correcta es 00
1
0
0
0
0
1010110
0
0001010
bit(posici ón dada en el orden que entran as ociado a K)
8
7
6
5
4
3
2
1
1
0
0
0
1
1
1
0
ESTADO PRESENTE
00
00
01
11
11
10
01
CODIFICADO
00
11
10
01
10
00
10
11
10
00
10
01
10
DATOS
RECIBIDO
11
10
Paso 8:
Evaluamos la salida: (siguiendo las flechas): 1 x 0 = 1 Ese 1 en memoria (primer círculo de arriba) x 0 = 1 Cuando entra un 1 la salida codificada es 11
1
0
0
1
10101101
1
00010101
bit(posici ón dada en el orden que entran as ociado a K)
8
7
6
5
4
3
2
1
DATOS
1
0
0
0
1
1
1
0
ESTADO PRESENTE
10
00
00
01
11
11
10
01
CODIFICADO
11
00
11
10
01
10
00
10
RECIBIDO
11
10
11
10
00
10
01
10
3. Determine las entradas codificadas. (Complete la tabla)
Las entradas codificadas son: 11 00 11 10 01 10 00 10 bit(posició !"!" # #$ o%!# &'# #t% " "soci"!o " )
CODIFICADO
8
7
6
5
11
00
11
10
4
3
2
1
01
10
00
10
bit(posición dada en el orden que entran asociado a K)
8
7
6
5
4
3
2
1
DATOS
1
0
0
0
1
1
1
0
ESTADO PRESENTE
10
00
00
01
11
11
10
01
CODIFICADO
11
00
11
10
01
10
00
10
RECIBIDO
11
10
11
10
00
10
01
10
4. Realice el diagrama árbol PARA EL DATO DE ENTRADA
CODIFICADOS ESTADOS
00 10 00 01
11
11 00
01
10 00
10
10
10
01
11
01
11
Cuando el dato es un 0, se toma la rama por arriba, pero cuando es un 1 se recorre la rama por debajo.
bit(posici ón dada en el orden que entran as ociado a K)
8
7
6
5
4
3
2
1
DATOS
1
0
0
0
1
1
1
0
ESTADO PRESENTE
10
00
00
01
11
11
10
01
CODIFICADO
11
00
11
10
01
10
00
10
RECIBIDO
11
10
11
10
00
10
01
10
5. Realice el diagrama general de estados PARA EL DATO DE ENTRADA
El estado inicial es 01, cuando sale un 1 pasa al estado 10, generando un dato de entrada 1 y un dato codificado de 00 . Cuando sale un 0, pasa al estado 00, generando un dato de entrada de 0 y un dato codificado de 11. Pasa al estado 10, cuando sale un 1 pasa al estado 11, generando un dato de entrada de 1 y un dato codificado de 10. Cuando sale un 0, pasa al estado 01, generando un dato de entrada de 0 y un dato codificado de 01.
6. Realice el diagrama de Trellis con la ruta correcta.
El diagrama de Trellis es un diagrama en forma de red. Cada línea horizontal se corresponde con uno de los estados del codificador. Cada línea vertical se corresponde con uno de los niveles del árbol. Este diagrama utiliza los datos codificados. Datos de entrada: 10001110
0 ____ 1----
10
00
10
01
10
11
00 11
00
11
00
01 10
10
10
11
00
11
10 01
7. Realice el diagrama de Trellis y Viterbi corrigiendo el dato (ruta correcta). Para
ello debe mostrar la ruta correcta identificando las distancias de haming y la selección dada para seguir la ruta. Para realizar el diagrama de Viterbi se utilizan los datos recibidos. Paso 1: El estado inicial de la máquina puede empezar desde cualquier estado. La única forma de obtener 10 es estando en el estado 01 con salida 0, ó desde el estado 11 con salida de un 1.
0 ____ 1----
10 00
01 10
10
11 10
00 01
10
01 00
10
11
00 10
11
Paso 2: Ahora tenemos dos posibles rutas, debemos elegir cual es la ruta a seguir, por lo tanto debemos analizar los puntos 10 en el estado 01 y en el estado 11. Debemos analizar la mejor ruta. ¿Qué estamos buscando realmente?: Aunque hay una distancia de haming de 1, el dato a buscar debe ser 01 ó 00. De todas esas salidas que tenemos, que son estándar (11 10 00 y 01); la única que me da el dato que se necesita es para 01 una entrada de 1. Y para el estado 11 un dato de 1. Es decir, aún no se sabe con certeza cuál es la ruta correcta.
0 ____ 1----
10
00 01
00
01 10
10 00
11 10
01
10
01 00
10
11
00 10
11
Paso 3: Sigo evaluando desde el estado 01 y 11. Pero ahora necesitamos un 10, evaluamos esos dos puntos. Desde el estado 11 una entrada de 1, en este caso el dato 0 no se requiere; lo mismo se hace desde el estado 01 con entrada de 1; lo que nos representa un dato de 10 en ambos casos.
0 ____ 1----
10
00 01
00
10
11
01
01 10
10
10
10 00 10
11 10
01
01
01 00
10
11
00 10
11
Paso 4: Sigo evaluando desde el estado 01 y 11. Pero ahora necesitamos un 00 ó 01, evaluamos esos dos puntos. Desde el estado 11 una entrada de 1, en este caso el dato 0 no se requiere; lo mismo se hace desde el estado 01 con entrada de 1; lo que nos representa un dato de 01 y 00 respectivamente. La distancia de haming que se presenta en cada caso es de 0. No se sabría en este paso 4 cuál es la ruta correcta.
0 ____ 1----
10
00 01
10
01 00
00
01 10
10
10 00
00
11 10
01
10 01
10
11
00 10
11
Paso 5: Sigo evaluando desde el estado 11 y 10. Pero ahora necesitamos un 10. Desde el estado 11 una entrada de 0, en este caso el dato 1 no se requiere; lo mismo se hace desde el estado 10 con entrada de 1; lo que nos representa un dato de 10 respectivamente. La distancia de haming que se presenta en cada caso es de 0. Sin certeza de saber la ruta correcta.
0 ____ 1----
10
00 01
00
10
01 00
10
11
01
01 10
10
01 10
10
10
10 00
00 10
11 10
01
01
01
10
11
00 10
11
Paso 6: En este paso se comienza a despejar la visual para conocer la ruta correcta. Estando en estado 11 es imposible obtener un dato de 11, por lo cual se descarta esta ruta realizada hasta el momento. Se obtiene desde el estado 01 una entrada de 0 para obtener un 11, que es lo se requiere para este caso.
0 ____ 1----
10
00 01
00
10
01 00
10
11
01
11
01 10
10
11
01 10
10
10
10
00
00
00
10
10
11 10
01
01
01
10
01
00 10
11
Paso 7: Ahora estando en esta situación necesitamos un 00 ó un10. Pero en el estado 00 lo que podemos lograr es un 00 con un dato de entrada de 0, pues con 1 tendríamos un 11, lo que para nuestro ejercicio no nos sirve.
0 ____ 1----
10
00 01
10
01 00
10
11
00 11
01 10
10
10
10 00
00
11 10
01
10 01
10
00 10 00
11
A continuación se muestran todas las rutas posibles y sus distancias de haming.
10
00 01
00
10
01 00
10
11
01
11
10
00
11 00
01
01 10
11
00 10
10
10
10
10
00
00
00
10
11
11
10
11 10
01
01
01
10
01
Analicemos este dato 11 con las respectivas distancias de haming. Para el primer dato 11 la distancia de haming es 0 Para el segundo dato 10 la distancia de haming es 1 Para el tercer dato 00 la distancia de haming es 2 Para el cuarto dato 01 la distancia de haming es 1 Notamos que el dato correcto es el primero y los demás no nos sirven, por lo que esa ruta es descartada desde el comienzo.