Está en la página 1de 42

IC-1400.

Fundamentos de Organización
de Computadoras

Tema 2
Modelo de Computación Abstracto

Profesor: Ing. Emmanuel Ramírez S.


Agenda
1. Máquinas de estados finitos y autómatas

2. Máquinas no programables, programables y


reprogramables

3. Historia de Alan Turing y sus aportes a la


computación

4. Máquinas de Turing

5. Niveles de máquinas virtuales y construcción de


lenguajes
1. Máquinas de estados finitos y autómatas

❑ Definiciones

❑ Las máquinas de estados finitos (MEF) y los autómatas son herramientas utilizadas
en la teoría de la computación para modelar sistemas y procesos.

3
1. Máquinas de estados finitos y autómatas

❑ Algunos ejemplos de MEF

❑ Detector de secuencia de bits: Una MEF simple que puede utilizarse para detectar una
secuencia específica de bits en una secuencia de entrada. Esta máquina de estados finitos
se puede utilizar, por ejemplo, para detectar un patrón de bits específico en un flujo de
datos de entrada.

❑ Controlador de semáforo: Un controlador de semáforo es otro ejemplo de una MEF,


donde los diferentes estados representan los diferentes estados del semáforo (por ejemplo,
verde, amarillo, rojo) y las entradas y salidas representan las señales de entrada y salida
del sistema.

❑ Máquina de lavar ropa: Una lavadora puede controlarse mediante una MEF que monitorea
diferentes sensores (por ejemplo, nivel de agua, temperatura) y ajusta el ciclo de lavado en
consecuencia.

❑ Controlador de tráfico aéreo: Un controlador de tráfico aéreo puede utilizar una MEF
para monitorear el movimiento de aviones y tomar decisiones en consecuencia (por
ejemplo, emitir una orden de aterrizaje o despegue).

❑ Detector de errores de código: Una MEF puede utilizarse para detectar errores en los
códigos de barras o los números de identificación únicos (por ejemplo, UPC, EAN) al
verificar la validez de los dígitos de control.

4
1. Máquinas de estados finitos y autómatas

❑ Cómo se representan?

Hay dos maneras generales de representar MEF, puede ser a través de una: tabla de
transición o de un diagrama de estados (ambos dos son complementarios).

5
1. Máquinas de estados finitos y autómatas

❑ Cómo se representan utilizando diagramas de estados?

Los estados se representan como:


S1

Si se encuentra en un estado S1 y recibe la entrada A transiciona al estado S2 y genera


la salida B, entonces la representación es:

A/B
S1 S2

Existe un estado de aceptación o estado final, se representa como: S1


S1

El estado inicial se representa como:


S1

6
1. Máquinas de estados finitos y autómatas

❑ Cómo se representan en tablas de transición?

❑ En las MEF, las tablas de transición se utilizan para representar la función de


transición ( δ ) de la máquina.

❑ Una tabla de transición es una tabla que muestra el estado actual de la MEF, el
símbolo de entrada y el estado al que la MEF transita después de leer el símbolo de
entrada en el estado actual.

Entrada Entrada
Estado Actual 0 1
-> q0 q0 q0
qf - -

7
1. Máquinas de estados finitos y autómatas

❑ Modelo Matemático

❑ El modelo matemático de una máquina de estado finito (MEF) es una tupla de cinco
elementos:

M = (Q, Σ, δ, q0, F)
❑ Donde:

o Q: es un conjunto finito de estados.


o Σ: es un conjunto finito de símbolos de entrada (alfabeto).
o δ: Q × Σ → Q es una función de transición que indica cómo cambia el
estado de la máquina al leer un símbolo de entrada.
o q0 ∈ Q es el estado inicial.
o F ⊆ Q es un conjunto de estados finales o de aceptación.

8
1. Máquinas de estados finitos y autómatas

❑ Ejemplo 1. La siguiente es una MEF que reconoce el lenguaje binario, es decir, un


lenguaje que reconoce únicamente 0s y 1s.

La 5-tupla que representa esta máquina es:

• Q = {q0, qf}
• Σ = {0, 1}
• δ : Q × Σ → Q es una función de transición que se define mediante la siguiente tabla:

Estado actual 0 1
q0 q0 q0
qf qf qf

• q0 es el estado inicial.
• F = {q1} es el conjunto de estados finales.
9
1. Máquinas de estados finitos y autómatas

❑ Tipos

❑ Las MEF se pueden clasificar en con salidas o sin salidas.

❑ La diferencia entre una MEF con salidas y una MEF sin salidas es que la primera
produce una salida (o varias salidas) cuando hace la transición de un estado a
otro, mientras que la segunda no produce ninguna salida.

❑ La salida puede ser cualquier cosa, desde un símbolo o cadena de símbolos,


hasta un valor numérico o una señal que indica un evento.

❑ Las MEF con salidas se utilizan comúnmente en sistemas en los que se


requiere una respuesta o acción específica en función de la entrada que se
recibe.

❑ Por ejemplo, una MEF con salidas se podría utilizar en un sistema de control de
un semáforo para cambiar las luces en función del estado actual del semáforo y de
la señal recibida de los sensores de tráfico.

10
1. Máquinas de estados finitos y autómatas

❑ Tipos

❑ Por ejemplo, una MEF con salidas se podría utilizar en un sistema de control de
un semáforo para cambiar las luces en función del estado actual del semáforo y de
la señal recibida de los sensores de tráfico.

❑ En contraste, una MEF sin salidas simplemente cambia de estado en función de la


entrada que recibe y no produce ninguna salida.

❑ Estas máquinas se utilizan comúnmente para reconocer o clasificar


secuencias de entrada sin producir ninguna acción específica. Por ejemplo,
una MEF sin salidas se podría utilizar para reconocer un patrón de entrada en una
secuencia de texto, como un número de teléfono o un correo electrónico. 11
1. Máquinas de estados finitos y autómatas

❑ Clasificación

❑ Máquinas de Estado Finito con Salidas

➢ Máquina de Mealy: Una salida es determinada por el estado y una entrada.

➢ Máquina de Moore: Una salida es determinada únicamente por su estado.

❑ Máquinas de Estado Finito sin Salidas

➢ Autómatas de Estado Finito Determinista: Existe solo un estado que satisface la


combinación estado-entrada.

➢ Autómatas de Estado Finito No-Determinista: Existen varios posibles estados que


satisfacen la combinación estado-entrada.

➢ Autómatas de Estado Finito No Determinista Epsilon (NFA-ε en inglés): Existen varios


posibles estados que satisfacen la combinación estado-entrada, sin embargo, un
estado puede tener varias transiciones etiquetadas con ε, lo que significa que puede
pasar de ese estado a uno o más estados sin leer ninguna entrada. 12
M = (Q, Σ, δ, q0, F)

1. Máquinas de estados finitos y autómatas (MEF de Mealy)

❑ MEF de Mealy

❑ Ejemplo 1: Realizar una MEF de Mealy para sumar dos números binarios
cualesquiera.

Recordando la suma binaria:


0+0=0
0+1=1
1+0=1
1+1=0 y llevo 1

Suponiendo que se desea hacer la suma del número: 0101 + 0011.

13
M = (Q, Σ, δ, q0, F)

1. Máquinas de estados finitos y autómatas (MEF de Mealy)

❑ MEF de Mealy - Ejemplo 1: Realizar una MEF de Mealy para sumar dos números
binarios cualesquiera.

Q: {SA,CA}, los estados serian dos, uno sin acarreo (SA) y otro con acarreo (CA).
Σ: {00,01,10,11}.
δ:
Estado actual Entrada Salida Acarreo Próximo estado
SA 00 0 0 SA
SA 01 1 0 SA
SA 10 1 0 SA
SA 11 0 1 CA
CA 00 1 0 SA
CA 01 0 1 CA
CA 10 0 1 CA
CA 11 1 1 CA

q0: {SA}
F: {SA,CA}
14
M = (σ, τ, δ, σ ∗ , ∆, Ω)

1. Máquinas de estados finitos y autómatas (MEF de Mealy)

❑ MEF de Mealy - Ejemplo 1: Realizar una MEF de Mealy para sumar dos números
binarios cualesquiera.

Sumando: 0101 + 0011

15
M = (Q, Σ, δ, q0, F)

1. Máquinas de estados finitos y autómatas (MEF de Mealy)

❑ MEF de Mealy - Ejemplo 2: Realizar una MEF de Mealy para una máquina
expendedora de bebidas que se describe a continuación:

❑ Paso 1. Identificar los posibles estados


• Los estados van a ser la cantidad de dinero acumulada.

Acepta Monedas de ¢500


❑ Paso 2: Identificar las entradas o Billetes de ¢1000
• Monedas de ¢500
• Billetes de ¢1000 Costo por bebida ¢ 700
• Botón de Cancelación
A
❑ Paso 3. Identificar las salidas
• Dispensar bebida (DB)
• Devolver cambio (DC)
• No hace nada (NN)

16
M = (Q, Σ, δ, q0, F)

1. Máquinas de estados finitos y autómatas (MEF de Mealy)

❑ MEF de Mealy - Ejemplo 2: Realizar una MEF de Mealy para una máquina
expendedora de bebidas que se describe a continuación:

❑ Paso 4. Construir el Diagrama de estados

17
3. Historia de Allan Turing y sus aportes a la computación

❑ Historia

❑ 1912: Fecha de nacimiento en Paddington, Inglaterra.

❑ 1926-31: Inicia estudios en la Escuela de Sherborne.

❑ 1931-34: Se gradúa del King’s College, Universidad


de Cambridge.

❑ 1932-35: Mecánica cuántica, probabilidad y lógica.

❑ 1936: Genera artículos sobre la Máquina de Turing,


computabilidad y la máquina universal.
1912 –1954
❑ 1936-38: Obtiene el Ph.D. en Lógica, Algebra y Teoría
de números en la Universidad de Princeton.

18
3. Historia de Allan Turing y sus aportes a la computación

❑ Historia (cont.)

❑ 1938-39: Primer acercamiento con la máquina de


cifrado enigma.

❑ 1939-40: Construye “The Bomb”, que es una máquina


de desencripción de la máquina Enigma.

❑ 1947-48: Realiza trabajos sobre programación,


redes neuronales e inteligencia artificial.

❑ 1950: Propone el Test de Turing para máquinas inteligentes.


1912 –1954
❑ 1952: Es arrestado por conducta homosexual.

19
3. Historia de Allan Turing y sus aportes a la computación

❑ Historia (cont.)

❑ 1954: Es encontrado muerto por envenenamiento con


cianuro (aparentemente tras comerse una manzana
envenenada).

1912 –1954

❑ Más información en: https://www.turing.org.uk/index.html

20
3. Historia de Allan Turing y sus aportes a la computación

❑ Aportes
La Máquina de Turing:
Una máquina con un conjunto de operaciones puede calcular cualquier cosa
que sea computable, sin importar la complejidad.

Paper: On computable numbers, with an application to the


Entscheidungsproblem (Turing 1936-7)

Impacto:
✓ Define el concepto de la Máquina Universal de Turing.
✓ Visualiza el principio de programa almacenado en las computadoras.

21
3. Historia de Allan Turing y sus aportes a la computación

❑ Aportes
La prueba de Turing (1947-1950):
Una máquina es inteligente si se comporta tal cual lo es un humano
(“The imitation game”).

Paper: Computing Machinery And Intelligence (Turing 1950)

Impacto:
✓ Se plantea el “Juego de la Imitación” (The Imitation Game), que es juego
que se toma como base para determinar si un sistema es inteligente.

✓ Se dice que un sistema es inteligente si pasa la “Prueba de Turing”, que


básicamente consiste en que un humano no pueda determinar que está
interactuando con un sistema computacional.

✓ El detalle de lo anterior se explica a continuación.

22
3. Historia de Allan Turing y sus aportes a la computación

❑ Aportes

La prueba de Turing (1947-1950):


Una máquina es inteligente si se comporta tal cual lo es un humano.

A
A

B C
B C

23
4. Máquinas de Turing

❑ Modelo de Máquina Abstracta - La Máquina de Turing (MT)

❑La Máquina de Turing fue formulada por Allan Turing en 1936.

❑Turing no sólo construyó la noción del concepto de algoritmo sino que construyó el
modelo teórico de los computadores actuales.

❑Constituye un modelo matemático simple de una computadora capaz de


resolver un algoritmo matemático.

❑Dicha máquina a grandes rasgos está construida por:


❑Una cinta infinita dividida en celdas.
❑Un cabezal que puede leer y escribir símbolos y capaz de moverse sobre la
cinta.
❑Un registro de estado que almacena el estado en que se encuentre MT.
4. Máquinas de Turing

❑ Modelo de Máquina Abstracta - La Máquina de Turing (MT)

Conceptualización MT
q Registro de Estado
Cinta Infinita
Cabezal (Lectura / Escritura)

25
5. Máquinas de Turing

❑ Modelo de Máquina Abstracta - La Máquina de Turing (MT)

❑ Formalmente una Máquina de Turing (caso determinístico) es:

MT = (Q, , , , q0,qA,qR)
❑ Donde:
❑ Q: Es un conjunto finito de estados.
❑ : Es el alfabeto de entrada.
❑ : Es el alfabeto de la cinta.
❑ : Es la función de transición.

 : Q   →   {L, R}  Q
Esto se puede interpretar como:
Si la MT se encuentra en estado Q y lee  entonces
Escriba un nuevo símbolo, muévase a la izquierda o a la derecha
Y pase al estado Q.

❑ q0: Es el estado inicial.


❑ qA: Es el estado de aceptación.
❑ qR: Es el estado de rechazo.
26
5. Máquinas de Turing

❑ Modelo de Máquina Abstracta - La Máquina de Turing (MT)

❑ Ejemplo: Crear una Máquina para Sumar dos Números Enteros

Queremos sumar = 2 + 3

Suposición

Para resolver el problema, se va a codificar los números naturales en el alfabeto de “pipes” | por lo tanto:

1 = |
2 = ||
3 = |||
4 = ||||
.
.
.
n = |…| (n pipes)

27
5. Máquinas de Turing

❑ Modelo de Máquina Abstracta - La Máquina de Turing (MT)

❑ Ejemplo: Crear una Máquina para Sumar dos Números Enteros

Queremos sumar = 2 + 3

Paso 1. Representación de la Entrada (Es una de muchas otras…)

Paso 2. Representación de la Salida (Es una de muchas otras…)

28
5. Máquinas de Turing

❑ Modelo de Máquina Abstracta - La Máquina de Turing (MT)

❑ Ejemplo: Crear una Máquina para Sumar dos Números Enteros

Queremos sumar = 2 + 3

Paso 3. Definiendo la Máquina de Turing Determinista

❑  : Es el alfabeto de entrada = {[], | }


❑ : Es el alfabeto de la cinta = { [], |}
❑ Q: Es un conjunto finito de estados = {q0, q1, q2, pare}
❑  : Es la función de parcial conocida como función de transición y se puede definir
como:
 (q0, |) → (|, R, q0)
 (q0, []) → (|, R, q1)
 (q1, |) → (|, R, q1)
 (q1, []) → ([], L, q2)
 (q2, |) → ([], N, pare)

29
5. Máquinas de Turing

❑ Modelo de Máquina Abstracta - La Máquina de Turing (MT)

❑ Ejemplo: Crear una Máquina para Sumar dos Números Enteros

Paso 4. Simulando el Funcionamiento de la Máquina de Turing creada

Inicialmente la cinta contiene 2 números representados por


“pipes” separados por un espacio en blanco [].

La máquina se encuentra situada sobre el primer “pipe” de


izquiera a derecha

q0

30
5. Máquinas de Turing

❑ Modelo de Máquina Abstracta - La Máquina de Turing (MT)

❑ Ejemplo: Crear una Máquina para Sumar dos Números Enteros

Paso 4. Simulando el Funcionamiento de la Máquina de Turing creada

q0

 (q0, |) → (|, R, q0)


 (q0, []) → (|, R, q1) q0
 (q1, |) → (|, R, q1)
 (q1, []) → ([], L, q2)
 (q2, |) → ([], N, pare)
31
5. Máquinas de Turing

❑ Modelo de Máquina Abstracta - La Máquina de Turing (MT)

❑ Ejemplo: Crear una Máquina para Sumar dos Números Enteros

Paso 4. Simulando el Funcionamiento de la Máquina de Turing creada

q0

 (q0, |) → (|, R, q0)


 (q0, []) → (|, R, q1) q0
 (q1, |) → (|, R, q1)
 (q1, []) → ([], L, q2)
 (q2, |) → ([], N, pare)
32
5. Máquinas de Turing

❑ Modelo de Máquina Abstracta - La Máquina de Turing (MT)

❑ Ejemplo: Crear una Máquina para Sumar dos Números Enteros

Paso 4. Simulando el Funcionamiento de la Máquina de Turing creada

q0

 (q0, |) → (|, R, q0) q1


 (q0, []) → (|, R, q1)
 (q1, |) → (|, R, q1)
 (q1, []) → ([], L, q2)
 (q2, |) → ([], N, pare)
33
5. Máquinas de Turing

❑ Modelo de Máquina Abstracta - La Máquina de Turing (MT)

❑ Ejemplo: Crear una Máquina para Sumar dos Números Enteros

Paso 4. Simulando el Funcionamiento de la Máquina de Turing creada

q1

 (q0, |) → (|, R, q0)


 (q0, []) → (|, R, q1) q1
 (q1, |) → (|, R, q1)
 (q1, []) → ([], L, q2)
 (q2, |) → ([], N, pare)
34
5. Máquinas de Turing

❑ Modelo de Máquina Abstracta - La Máquina de Turing (MT)

❑ Ejemplo: Crear una Máquina para Sumar dos Números Enteros

Paso 4. Simulando el Funcionamiento de la Máquina de Turing creada

q1

 (q0, |) → (|, R, q0)


 (q0, []) → (|, R, q1) q1
 (q1, |) → (|, R, q1)
 (q1, []) → ([], L, q2)
 (q2, |) → ([], N, pare)
35
5. Máquinas de Turing

❑ Modelo de Máquina Abstracta - La Máquina de Turing (MT)

❑ Ejemplo: Crear una Máquina para Sumar dos Números Enteros

Paso 4. Simulando el Funcionamiento de la Máquina de Turing creada

q1

 (q0, |) → (|, R, q0) q1


 (q0, []) → (|, R, q1)
 (q1, |) → (|, R, q1)
 (q1, []) → ([], L, q2)
 (q2, |) → ([], N, pare)
36
5. Máquinas de Turing

❑ Modelo de Máquina Abstracta - La Máquina de Turing (MT)

❑ Ejemplo: Crear una Máquina para Sumar dos Números Enteros

Paso 4. Simulando el Funcionamiento de la Máquina de Turing creada

q1

 (q0, |) → (|, R, q0) q2


 (q0, []) → (|, R, q1)
 (q1, |) → (|, R, q1)
 (q1, []) → ([], L, q2)
 (q2, |) → ([], N, pare)
37
5. Máquinas de Turing

❑ Modelo de Máquina Abstracta - La Máquina de Turing (MT)

❑ Ejemplo: Crear una Máquina para Sumar dos Números Enteros

Paso 4. Simulando el Funcionamiento de la Máquina de Turing creada

q2

 (q0, |) → (|, R, q0) Estado pare


 (q0, []) → (|, R, q1) Final
 (q1, |) → (|, R, q1)
 (q1, []) → ([], L, q2)
 (q2, |) → ([], N, pare)
38
5. Máquinas de Turing

❑ Modelo de Máquina Abstracta - La Máquina de Turing (MT)

SIMULANDO LA MT Creada….

 (q0, |) → (|, R, q0)


 (q0, []) → (|, R, q1)
 (q1, |) → (|, R, q1)
 (q1, []) → ([], L, q2)
 (q2, |) → ([], N, pare)

SIMULADOR DE MAQUINA DE TURING

http://morphett.info/turing/

39
5. Máquinas de Turing

❑ Modelo de Máquina Abstracta - La Máquina Universal de Turing (MUT)

❖ La Máquina de Turing anterior se utiliza para calcular una cierta función computable,
es decir, un programa fijo o específico.

MT con
Datos
Programa Salidas
(cadenas)
Fijo

❖ Turing formuló entonces una máquina más general, capaz de implementar un


conjunto de máquinas de Turing, a esta máquina se le conoce como “la Máquina
Universal de Turing (MUT)”.

❖ Las entradas a esta MUT son: datos más MTs.

❖ Por lo tanto, MUT es programable, es decir, las instrucciones son parte de los datos
de entrada.

MTs
MUT Salidas
Datos
40
(cadenas)
5. Máquinas de Turing

❑ Modelo de Máquina Abstracta – MT y MUT

Recapitulando…

❑ Con la Máquina de Turing se tiene un modelo abstracto de un computador que


permiten entre otras cosas, resolver algoritmos.

❑ Existen datos de entrada “escritos o grabados en una cinta”.

❑ Existe un conjunto de instrucciones que hacen que la máquina los vaya


ejecutando con una lógica en particular.

❑ Existe la “lectura y escritura” de los datos sobre la cinta que son procesados por
las instrucciones.

❑ Existe una cantidad de estados diferentes que van cambiando la entrada de manera
controlada.

❑ Los resultados obtenidos a la salida, constituyen una transformación de los datos de


entrada, según las instrucciones dadas.

❑ Se da el concepto de conjunto de instrucciones que realizan un algortimo en


particular, el cual es leído y ejecutado, es decir, lo que se conoce como un
programa.

41
Fin de la Presentación:
IC-1400. Fundamentos de Organización de Computadoras – Tema 2

Gracias por su atención!

42

También podría gustarte