Análisis y Complejidad de Algoritmos-Modelos Computacionales

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 9

Arturo Díaz Pérez

Análisis y Complejidad de Algoritmos

Modelos Computacionales
Arturo Díaz Pérez

¬ El circuito lógico
- La máquina de estados finitos
® La máquina de acceso aleatorio
¯ La máquina de Turing

Análisis y Diseño de Algoritmos Models

Compuertas Lógicas
F Compuerta Lógica
ß Un dispositivo físico que realiza una función booleana
/f: N → { 0, 1 }
/Frecuentemente n se codifica como una número en base 2
/n = xk-12k-1 + xk-22k-2 + ... + x121 + x020 +, xi= 0, 1

Las compuertas lógicas pueden ser construidas por tecnologías


diferentes
Se acostumbra utilizar un símbolo lógico para cada compuerta
Los símbolos se utilizan para dibujar circuitos lógicos

Análisis y Diseño de Algoritmos Models

Análisis y Complejidad de Algoritmos 1


Arturo Díaz Pérez

Circuitos Lógicos
F Circuito Lógico
ß Una DAG en la cual todos sus vértices, excepto los vértices de
entrada y salida, están etiquetados con compuertas lógicas
ß Los circuitos lógicos ejecutan programas estrictamente
secuenciales, esto es, programas que consisten únicamente de
asignmientos
ß No contienen ciclos ni saltos
ß Los circuitos lógicos constituyen los bloques básicos para la
construcción de computadoras digitales.
ß Cuando se combinan con celdas de memoria binarias, se
pueden construir máquinas con memoria (máquinas de estados
finitos)

Análisis y Diseño de Algoritmos Models

Circuitos Lógicos
x1
a
sum
b
cin x2

x3 cout

x4

x1 := a xor b
x2 := a nand cin
x3 := b nand cin
x4 := a nand b
sum := x1 xor cin
cout := (x2 nand x3) nand x4
Análisis y Diseño de Algoritmos Models

Análisis y Complejidad de Algoritmos 2


Arturo Díaz Pérez

Máquinas de Estados Finitos

F Máquinas de estados finitos


ß Es una máquina con memoria
ß Ejecuta una serie de pasos en los cuales
/toma su estado actual de un conjunto de estados Q
/define su salida a partir de un conjunto de símbolos de
entrada Σ
ß FSM = < Σ, Ψ, Q, δ, λ>
/Σ, alfabeto de símbolos de entrada
/Ψ, alfabeto de símbolos de salida
/Q, conjunto finito de estados
/δ, función de transición
3 δ : Σ ×Q→ Q
/λ, función de transición
3 λ:Σ
Análisis y Diseño de Algoritmos × Q→ Ψ Models

Máquinas de Estados Finitos


Salida

Entrada

L Memoria

Estado

Análisis y Diseño de Algoritmos Models

Análisis y Complejidad de Algoritmos 3


Arturo Díaz Pérez

FSM: Ejemplo

0/0 1/0
0/0

1/0 1/0
a b c

0/(z_out := NOT y_in)

ESTADO V0 V1 0 x_in 1

a 0 0 00,0 01,0
b 0 1 00,0 10,0
c 1 0 00,¬yin 10, ¬yin
- 1 1 --,- --,-

Análisis y Diseño de Algoritmos Models

FSM: Estructura General


x

d logic 0

D 0 Q
CLK

d logic 1

D 1 Q
CLK
memory
part

clk
z logic
z

logical part

Análisis y Diseño de Algoritmos Models

Análisis y Complejidad de Algoritmos 4


Arturo Díaz Pérez

Autómata Finito

F Autómata Finito
ß AF = < Σ, Q, δ, q0, F>
/Σ, alfabeto de símbolos de entrada
/Q, conjunto finito de estados
/δ, función de transición
3 δ : Σ ×Q→ Q
/q0, estado inicial
/F ⊂ Q, conjunto0 de estados finales
0
1

q0/0 q1/1

Análisis y Diseño de Algoritmos Models

Autómata de Pila

F Autómata de Pila
ß Consiste de
/una cinta de entrada,
/un control finito y
/ una pila Cinta de Entrada

ß AF = < Σ, Γ, Q, δ, q0, Z0, F>


/Σ, alfabeto de símbolos de entrada Mecanismo
de
/Γ, alfabeto de símbolos de la pila Control
/Q, conjunto finito de estados Pila
/δ, función de transición
3 δ:Q×Σ×Γ→Q× Γ
/q0, estado inicial
/Z0, símbolo inicial de la pila
/F
Análisis y Diseño ⊂ Q, conjunto de estados finales
de Algoritmos Models

Análisis y Complejidad de Algoritmos 5


Arturo Díaz Pérez

Autómata de Pila
F Autómata de Pila
ß Consiste de
/una cinta de entrada,
/un control finito y
/ una pila

Cinta de Entrada

Mecanismo
de
Control

Pila

Análisis y Diseño de Algoritmos Models

La Máquina de Acceso Aleatorio: RAM


F RAM: Random Access Machine
ß Es modelada como dos máquinas de estados finitos:
/unidad central de procesamiento (CPU)
/memoria de acceso aleatorio
/cmd: READ, WRITE, NO-OP
/instrucciones:
3 LOAD, STORE, ADD, SUB, MULT, DIV,
3 READ, WRITE,
3 JUMP, JZ, JNZ, HALT

Análisis y Diseño de Algoritmos Models

Análisis y Complejidad de Algoritmos 6


Arturo Díaz Pérez

La Máquina de Acceso Aleatorio: RAM

b
m-1
m-2
cmd
ALU Decode
out_wrd
rega
in_wrd
regb
addr 1
PC 0

Análisis y Diseño de Algoritmos Models

Máquina de Turing

mecanismo de
control

Análisis y Diseño de Algoritmos Models

Análisis y Complejidad de Algoritmos 7


Arturo Díaz Pérez

Máquina de Turing
F Máquina de Turing
ß Cinta no acotada formada por casillas
ß mecanismo de control, i. e., autómata con diversos estados
ß cabeza de lectura con la que examina, en cada instante, una
casilla en la cinta
ß programa, lista de quíntuples de la forma
/qs → ptm
/q,p ∈ Q (estados), s,t ∈ Σ (símbolos del alfabeto), m ∈ { I,
D, A} (movimiento)
“Si en el estado q se lee en la cinta el símbolo s, entonces,
cambia a s por t, luego pasa al estado p y pasa a examinar
la casilla adyacenta en la dirección m”

Análisis y Diseño de Algoritmos Models

Máquina de Turing: Ejemplo


1, x → 1, x, D
1, ) → 2, B, I
1, b → 3, b, I
2, y → 2, y, I
2, ( → 1, A, D
2, b → 4, No, H
3, x → 3, x, I
3, ( → 3, No, H
3, b → 3, Si, H

()(()) AB(1()) AB(2ABB ABAAB3B 3bABAABB


1()(()) AB((1)) AB2(ABB ABAA3BB [Si]ABAABB
(1)(()) AB(2(B) ABA1ABB ABA3ABB
(2B(()) AB(A1B) ABAA1BB AB3AABB
A1B(()) AB(AB1) ABAAB1B A3BAABB
AB1(()) AB(A2BB ABAABB1b 3ABAABB

Análisis y Diseño de Algoritmos Models

Análisis y Complejidad de Algoritmos 8


Arturo Díaz Pérez

Máquina de Turing: Ejemplo


F Reconocimiento de cadenas equilibradas de paréntesis
1, x → 1, x, D con cualquier cosa salvo “)”, aváncese a la derecha,
x ∈ { (, A, B }
1, ) → 2, B, I con el primer “)”, márquese y retrocédase
1, b → 3, b, I si la lista se acaba, revísese que todo haya quedado
marcado
2, y → 2, y, I con cualquier cosa salvo “(”, retrocédase a la
izquierda,
y ∈ { ), A, B }
2, ( → 1, A, D márquese el “(“ que empata y repítase el ciclo
2, b → 4, No, H se termina la cadena y no existe el correspondiente
“(”. No hay equilibrio.
3, x → 3, x, I retrocédase ignorando las marcas, x ∈ { A, B }
3, ( → 3, No, H si quedara un “(”, éste ya no podrá empatarse. No
hay equilibrio.
3, b → 3, Si, H acabó la cadena y todo quedó marcado. Si hay
equilibrio.
Análisis y Diseño de Algoritmos Models

Análisis y Complejidad de Algoritmos 9

También podría gustarte