Está en la página 1de 2

Introducción a la Teorı́a de la Computación

Taller 1
Angela Marı́a Cárdenas Orjuela,
David Julian Bustos Cortes,
Gabriela Marı́a Garcı́a Romero
Marzo 2021

Problema 1. Grafos y multigrafos

a) Escriba una funcion GrafoCadena[Matriz de Adyacencia] en el software Mathematica


cuya entrada sea la matriz de adyacencia de un grafo dirigido simple (sin loops) y cuya salida
sea la cadena correspondiente sobre el alfabeto Σ = {0, 1, #}. Por ejemplo:

GrafoCadena [{{0, 0, 1, 1}, {0, 0, 1, 1}, {0, 1, 0, 1}, {0, 0, 0, 0}}] = 0011#0011#0101#0000#

b) Describa una forma de codificar grafos ponderados (no dirigidos y sin loops) sobre el alfabeto
Σ = {0, 1, #}.
Se tiene el algoritmo para codificar grafos ponderados:

1) Construir la matriz de adyacencia del grafo.


2) Escribir cada una de las filas mediante la sucesión de los números que la componen y
ubicar un ”#” para la separación de cada uno de ellos. Ademas, debe escribirse un doble
”##” para la finalización de la fila.
3) Unir cada una de las filas codificadas en una sola cadena consecutiva.
4) Sobre la misma cadena, reemplazar los numeros por su notación binaria.

Con el algoritmo se codifica el siguiente grafo:

1) Se construye la matriz de adyacencia del grafo

 
0 7 0 6 1

 7 0 1 1 0 

A= 0 1 0 6 0
 

 
 6 1 6 0 5 
1 0 0 5 0

1
2) Se codifican cada una de las filas:

Fila 1: 0#7#0#6#1## Fila 2: 7#0#1#1#0## Fila 3: 0#1#0#6#0##


Fila 4: 6#1#6#0#5## Fila 5: 1#0#0#5#0##

3) G = 0#7#0#6#1##7#0#1#1#0##0#1#0#6#0##-
6#1#6#0#5##1#0#0#5#0##

4) G = 0#111#0#110#1##111#0#1#1#0##0#1#0#110#0##-
110#1#110#0#101##1#0#0#101#0##

Problema 2. Dar un ejemplo de un alfabeto Σ y dos lenguajes diferentes A,B sobre Σ tales que
AB=BA.
Sea Σ = {a, b}, A = {a, b} y B = {aa, ab, ba, bb} dos lenguajes sobre Σ. Entonces:
AB = BA = {aaa, aab, aba, abb, baa, bab, bba, bbb}
Problema 3. Considere el alfabeto Σ = {a, b}. Encuentre una cadena que este y otra que no, en
el lenguaje L ⊆ Σ∗ , donde L es:
a) {w ∈ Σ∗ : w2 = w3 }
- Sea w = λ . Como w2 = w3 = λ, entonces w ∈ L
- Sea q = a . Como q 2 = aa 6= aaa = q 3 , entonces q ∈
/L
b) {w ∈ Σ∗ : w3 = v 2 , v ∈ Σ∗ }
- Sea w = abab. Existe v = ababab ∈ Σ∗ , tal que v 2 = w3 = abababababab, entonces w ∈ L
- Sea q = ab. Como q 3 = ababab, no existe v ∈ Σ∗ tal que q 3 sea igual a v 2 , entonces q ∈
/L
Problema 4. Sean L y M lenguajes sobre un alfabeto Σ. Definimos el cociente a izquierda,
L−1 M y el cociente a derecha, M L−1 de la siguiente manera:
L−1 M = {x ∈ Σ∗ : yx ∈ M, para algún y ∈ L}
M L−1 = {x ∈ Σ∗ : xy ∈ M, para algún y ∈ L}
a) Sea Σ = {a, b, c} y los lenguajes M = {λ, a, ab, acb} y L = {b, c}. Determine los lenguajes
L−1 M y M L−1 .
Resolución:
L−1 M = φ
M L−1 = {a, ac}
b) Sea Σ = {a, b, c} y los lenguajes L1 = {an bcm : n, m ≥ 1} y L2 = {bcn : n ≥ 1} y
L3 = {cn : n ≥ 1}. Determine los lenguajes L1 L−12 y L1 L3
−1

Resolución:
Se escriben los lenguajes de manera extensiva:
L1 = {abc, abcc, abccc, ..., aabc, aabcc, aabccc, ..., aaabc, aaabcc, aaabccc, ...}
L2 = {bc, bcc, bccc, bcccc, bccccc, ...}
L3 = {c, cc, ccc, cccc, ccccc, ...}

L1 L−1 n
2 = {a : n ≥ 1}
L1 L−1 n m
3 = {a bc : n ≥ 1 ∧ m ≥ 0}

También podría gustarte