AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica...

69
Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de Psicología - UCM 1 PRIMERA PARTE AUTOMATAS Y COMPUTABILIDAD

Transcript of AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica...

Page 1: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 1

PRIMERA PARTE

AUTOMATAS

Y

COMPUTABILIDAD

Page 2: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 2

ESPECIFICACIÓN FORMALDE PROCESOS

• La matemática nos proporciona lenguajes para especificar(= definir, hablar de) procesos

• El concepto clave para la definición matemática de procesoses el de algoritmo

• Definición intuitiva de algoritmo:

• Secuencia de operaciones que, aplicada correctamentea un problema de una clase determinada, genera lasolución a ese problema en un tiempo finito

• Existen varias formas de definición matemática dealgoritmo:

• Funciones recursivas (Gödel)• Funciones λλλλ-definibles (Church, Kleene)• Algoritmos de Markov• Teoría de Autómatas (Máquinas de Turing)

Page 3: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 3

AUTÓMATAS Y COMPUTABILIDAD

• Para la especificación matemática de procesosestudiamos tres teorías distintas:

• Teoría de Autómatas• Computabilidad y Decidibilidad• Teoría de la Complejidad Computacional

• La Teoría de Autómatas nos proporciona el lenguajepara la especificación de procesos algorítmicos

• La Teoría de la Computabilidad y la Decidibilidad nosproporciona información acerca de los límites de laresolución algorítmica de problemas

• La Teoría de la Complejidad Computacional nosproporciona estrategias de medida de la complejidadde cada tipo de proceso algorítmico

Page 4: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 4

TEORÍA DE AUTÓMATAS

Page 5: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 5

AUTOMATAS

• Un autómata es:

• Una máquina (mecanismo) de naturaleza formal

(Sólo existe como un mecanismo matemático)

• que acepta una información de entrada (input),• la procesa,

(La somete a transformaciones simbólicas quepueden adoptar la forma de un cálculo ocomputación)

• y genera un resultado o salida (output).

• Definir un autómata equivaldrá a definir el proceso detransformación del input en un output, lo que equivale adefinir una función cuyos argumentos son el input y cuyovalor es el output

Page 6: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 6

TIPOS DE AUTOMATAS

• Hay muchos tipos de autómatas• Cada tipo de autómata se asocia a una potencia

computacional determinada, es decir, a una capacidad dadade resolución de problemas

• De hecho, podemos clasificar los problemasalgorítmicamente solubles asociándolos al tipo de autómataque los resuelve

• Estos tipos se ordenan en una jerarquía de menor a mayorpotencia computacional

• Jerarquía de automátas:

• Autómatas finitos (Redes Lógicas)• Autómatas intermedios:

• Autómatas de memoria de pila• Autómatas de memoria linealmente limitada

• Máquinas de Turing

Page 7: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 7

TIPOS DE AUTOMATAS (2)

• Además, podemos clasificar los autómatas:

• Por el tipo de proceso que ejecutan:

• Aceptación o reconocimiento• Generación

• Por su tipo de causalidad:

• Determinista• No-Determinista

• Por el tipo de su almacenamiento de información:

• De tamaño fijo• De tamaño creciente• De tamaño infinito

• Por el tipo de la información que manejan

• Discreta• Continua

Page 8: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 8

TIPOS DE AUTOMATAS (3)

• Autómatas aceptadores o reconocedores:

• Resuelven problemas con respuesta si/no, que semodeliza normalmente como la identificación de dosestados finales, uno de aceptación y otro de rechazo

• Autómatas generadores o transductores:

• Construyen una respuesta específica (una salida) parael problema planteado

• Autómatas deterministas:

• La solución del problema viene unívocamentedeterminada por las entradas y los estados internosdel autómata

• Autómatas no-deterministas:

• La respuesta no está unívocamente determinada

Page 9: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 9

DESARROLLODE LA

TEORÍA DE AUTÓMATAS

• Turing (1936)• McCulloch, Pitts (1943)• Kleene (1956)• Shannon (1956)• Moore (1956)• Minsky (1956)• Wang (1957)• Sepherdson (1959)• Rabin, D. Scott (1959)• McNaughton, Yamada (1960)• Rabin (1963)• Chomsky (1963)• McCarthy (1963)• Hartmanis, Stearns (1965)

Page 10: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 10

AUTÓMATAS FINITOS

• Un autómata finito es un mecanismo cuya memoria essiempre finita.

• Suponemos que la memoria del autómata está compuestapor un conjunto de unidades de retardación:

entrada salida

• En cualquier instante ti del proceso, posterior a t0:

• salida(t) = entrada(ti-1), o, lo que es lo mismo: • entrada(t) = salida(ti+1).

( t : un instante de tiempo discreto)

• Cada unidad de retardación almacena una unidad deinformación durante una unidad de tiempo.

• El número de estos dispositivos es finito

Definición: El estado interno en t de un autómata finito queejecuta un proceso es el conjunto de los contenidos de lamemoria del autómata finito en el instante t de ese proceso

• Cada uno de los m estados internos distintos: q0, ..., qi, ...,qn

• El conjunto de los estados internos: Q• q0 es el estado inicial y qn es un estado final• El número de estados internos es finito

Page 11: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 11

AUTÓMATAS FINITOS (2)

• A lo largo del proceso los contenidos de memoria delautómata van cambiando

• Describiremos cómo se produce el cambio de estado a lolargo del tiempo definiendo una función de transición deestados, que nos dice cuál será el estado del autómata en elinstante de tiempo siguiente

• La función de transición de estados puede ser determinista(AFD) o no determinista (AFND)

• En algunos casos desearemos describir la respuesta delautómata como una función de sus estados internos, yeventualmente, también de los estímulos que recibe:función de salida

• Además, tenemos que especificar:

• Su repertorio de símbolos, ΣΣΣΣ, es decir, el conjunto desímbolos que podrán formar parte de sus entradas (y,eventualmente, de sus salidas)

• El conjunto Q de sus estados internos posibles• Su estado inicial q0• El conjunto F de sus estados finales, que es un

subconjunto del conjunto de estados internos

• Cada entrada (y salida) posible del autómata es unasecuencia o cadena finita de símbolos de ΣΣΣΣ

• ΣΣΣΣ* : el conjunto de cadenas finitas de símbolos de ΣΣΣΣ• ΣΣΣΣ* es un conjunto potencialmente infinito

Page 12: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 12

AUTOMATAS FINITOS DETERMINISTICOSRECONOCEDORES O ACEPTADORES

• Estructura:

Dispositivo de lectura

Cinta de Autómata entrada Finito

• La cinta se mueve de izquierda a derecha• La cinta tiene escrito un símbolo en cada casilla• El conjunto de los símbolos de la cinta forma una secuencia

de símbolos• El último símbolo de la cinta es un símbolo delimitador (*)• En cada instante t, el autómata lee un símbolo.• Cuando el autómata encuentre el símbolo *, se detendrá,

terminando el proceso.• Conoceremos el resultado del proceso ejecutado

inspeccionando el estado interno en que queda el autómataal final del proceso

Page 13: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 13

AUTOMATAS FINITOS DETERMINISTICOSRECONOCEDORES O ACEPTADORES (2)

Definición. Un autómata finito (determinístico) reconocedor esuna estructura:

AF = < ΣΣΣΣ, Q, q0,ττττ, F >

tal que:

• ΣΣΣΣ es el alfabeto de entrada• Q es el conjunto de los estados• q0 es el estado inicial• ττττ es la función de transición de estados• F es el conjunto de los estados finales [F ⊆⊆⊆⊆Q]

• función de transición de estados ττττ:

ττττ:Q×××× ΣΣΣΣ→→→→Q

• Esta función nos dice cuál será el estado del autómata en elinstante de tiempo siguiente, en términos de su estadoactual y su entrada actual:

qt+1 = ττττ(qt, it)

Page 14: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 14

AUTOMATAS FINITOS DETERMINISTICOSRECONOCEDORES O ACEPTADORES (3)

• Puesto que tanto Q como I son finitos, podemos definir lafunción de transición de estados mediante una tabla detransición de estados:

Estados en t Entradas en t Estados en t+1

q1 i1 q1... ... ...qm ik qm

• Para definir (el comportamiento de) un autómata concreto,especificaremos precisamente su función de transición deestados

• Tendremos así un conjunto de instrucciones de la forma:

<Estado,Entrada,NuevoEstado>

• Estado: el estado en el que se está• Entrada: símbolo que se lee• NuevoEstado: el nuevo estado generado por la función de

transición

• Para cada estado interno, determinaremos, para cadasímbolo de entrada posible, a qué otro estado interno pasa.

• Si este nuevo estado es un estado final, el proceso se detiene.• El proceso comienza por el estado inicial

Page 15: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 15

EJEMPLO 1

Especificación de un AFD que reconoce secuencias finitas novacías de símbolos del alfabeto ΣΣΣΣ = {0,1,*} que acaban en 1. Elsímbolo * se utiliza exclusivamente como símbolo de final desecuencia.Es decir, como estados finales tendremos:

• un estado de aceptación ( qA), en el que ha de quedar elautómata si el último símbolo leído es un 1

• un estado de rechazo (qR).

• Por tanto, en este caso, F = {qA,qR}

• La secuencia de instrucciones que define este autómataconsiste en una definición de la correspondiente tabla detransición de estados:

q0,0,q1q0,1,q2q1,0,q1q1,1,q2q1,*,qRq2,0,q1q2,1,q2q2,*,qA

• q1: el último símbolo leído es un 0• q2: el último símbolo leído es un 1

Page 16: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 16

EJEMPLO 1 (2)

• El proceso puede representarse asimismo mediante ungrafo cuyos nodos representan estados y cuyos arcosrepresentan transiciones entre estados.

• Cada arco se etiqueta con el símbolo leído que provoca latransición.

• El inicio del proceso se marca mediante un arco de entradaal estado inicial.

• De los estados finales no parte ningún arco.

• Normalmente, utilizaremos el lenguaje de grafos.

*

0

1

0

1

0

qA

qR

q2

q1

q0

*

1

Page 17: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 17

EJEMPLO 2

• Autómata finito reconocedor que acepta secuencias finitasno vacías de símbolos del alfabeto ΣΣΣΣ = {0,1,*} tales quecontienen al menos una subsecuencia de la forma “010”(* = delimitador)

• El grafo correspondiente es:

• El estado q2 significa que los dos últimos símbolos leídos son“01”

• No es necesario esperar al final de la secuencia para entraren el estado de aceptación

• q1 significa que el último símbolo leído es un 0. Por tanto, sise lee un 0, nos quedamos en el mismo estado.

**

qR

0

1

qAq00

q1 q2

1

0

1

*

Page 18: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad d

EJEMPLO 3

• AFD que reconoce si el número de “1”s en la secuencia deentrada (finita y no vacía) es divisible por 3:

1

A

qR

q1 q2q0

1

1 1

1

e Psicología - UCM

q

q 1 1 1

18

Page 19: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 19

AFD RECONOCEDORESCON MAS DE UNA CINTA DE ENTRADA

• Los autómatas finitos reconocedores pueden manejarproblemas en los que haya más de una secuencia deentrada.

• Además, los estados finales de los autómatas reconocedoresno necesariamente está limitado a dos

• Ejemplo: especificar un AFD reconocedor, que, dadas dossecuencias de entrada, nos diga si ambas tienen la mismalongitud, si la primera es más larga que segunda, o si lasegunda es más larga que la primera. Supondremos quenuestro autómata, en cada instante del proceso, puede leerun símbolo de cada secuencia. Sea ΣΣΣΣ = {1,*} (* delimitador)

• Alineamos las dos secuencias sobre la entrada delautómata, de forma que en el instante inicial del proceso t,el autómata recibe el primer símbolo de cada secuencia.Sea F = {q1,q2, q=}. Entonces:

q=

q2

*1

1*

**

q0

q1

11

Page 20: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 20

AFDsTRANSDUCTORES O GENERADORES

• En los autómatas transductores tenemos una salidaexplícita:

Dispositivo de lectura

Cinta de entrada

Cinta de salida

Dispositivo de escritura

• Conocemos el resultado examinando la salida• Función de salida: caracteriza la salida de un autómata

finito de una de dos formas:

• En términos de sus estados internos y sus entradas:autómata de Mealy

• En términos simplemente de sus estados internos:autómata de Moore

• Normalmente, describiremos los AFDs transductores comoautómatas de Mealy.

• Tabla de salida de un autómata de Mealy:

Entrada Estado Salida

i1 q1 o1

... ... ... in

qn on

Page 21: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 21

EJEMPLO 1

• Especificación de un AFD que, dada una secuencia finita novacía de símbolos de {0, 1,*}, la convierte en otra en la quesustituye cada 1 por 0, y viceversa (* delimitador):

• Etiquetamos cada arco con el par <entrada/salida>:

Init

1/0 0/1 q0

• Existe un autómata de Moore correspondiente: cada nodose etiqueta con el par <estado/salida>, y la etiqueta del arco(entrada) es la que causa la transición

Init

0 q0/0 q1/1

1

T. Por cada autómata de Mealy, existe otro de Moore queejecuta la misma tarea, y viceversa.

*/*

qStop

Page 22: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 22

Ejemplos de Autómatas Finitos (6)

4. Especificar un autómata que sume dos números en base 2. Ayuda:

• Se trata de aplicar la tabla de la suma binaria:0+0 = 00+1 = 1+0 = 11+1 = 10

• Suponemos que los dos números tienen igual númerode dígitos (el más corto se iguala con el más largoañadiéndole 0’s por la izquierda)

• Suponemos que en cada instante t el autómata lee elsiguiente dígito más a la izquierda de cada número

• En cada paso:• Los dos dígitos se suman de acuerdo con la tabla• Si hay arrastre previo, se suma también• Se toma nota del arrastre si lo hay

• Cada salida depende de la entrada actual y delresultado anterior

• En cada paso puede haber arrastre o no (dos estados)• Hay dos salidas posibles y cuatro entradas posibles

00/0 01/0

11/0

q1 q201/1 10/0 00/1

10/1 11/1

Page 23: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 23

Autómatas Finitos no-determinísticos (AFND)

• Son idénticos a los determinísticos, excepto en la forma desu función de transición de estados:

ττττ : Q ×××× ΣΣΣΣ →→→→ ℘℘℘℘(Q)

• A cada combinación estado/entrada no le correspondeunívocamente un estado sino uno de los posibles conjuntosde estados

T. Para todo AFND, podemos construir un AFD que ejecuta la misma tarea

Autómatas estocásticos o probabilistas

• Función de transición probabilista:

ττττ = ΣΣΣΣ*××××Q →→→→ Q××××[0,1]

• Es una función que, para cada par <secuencia deentradas/estado>, nos dice qué probabilidad hay de pasar aotro estado.

• Para cada estado qj, hay una función:

ττττj = pj(i,qk)

para todo k ≠≠≠≠ j donde:

0 ≤≤≤≤ pj(i,qk) ≤≤≤≤ 1∑∑∑∑i=1,n p(i,q) = 1

Page 24: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 24

Autómata estocástico de estructura variable

• Podemos añadir a la especificación del autómataprobabilístico un algoritmo de actualización o refuerzo ρρρρque:

• Toma como entrada:• La última probabilidad de transición aplicada• La última entrada• La última salida

• Genera como salida una nueva probabilidad detransición

• El cambio de las probabilidades de transición a lolargo del tiempo modeliza la “adaptación” o“aprendizaje adaptativo” del sistema:

• “capacidad para mejorar la probabilidad deemitir una respuesta correcta como resultado desu interacción con el entorno”

Page 25: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 25

Autómatas Intermedios

• Son autómatas cuya potencia computacional es mayor quela de los autómatas finitos, pero menor que la de lasMáquinas de Turing

Autómatas linealmente limitados

• Autómatas finitos que pueden utilizar como espacio dememoria intermedia un espacio como máximo igual alocupado por la(s) cadena(s) de entrada (De hecho, es elmismo espacio)

Autómatas de memoria de pila

• “Pila” (Stack): Estructura de almacenamiento de datos quefunciona según el principio LIFO (“Last Input, FirstOutput”)

• Los autómatas de memoria de pila son autómatas finitos conuna memoria de pila potencialmente infinita, que utilizapara almacenar resultados intermedios

Page 26: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 26

Máquinas de Turing

I/O

I d i m b

Autómata Finitode Control

• Cinta potencialmente infinita, que se utiliza paraalmacenar:

• Los datos de entrada• Los datos de salida• Los resultados intermedios

• Cada casilla de la cinta contiene cada uno de los símbolosdel alfabeto ΣΣΣΣ del problema (Supondremos que ΣΣΣΣ = {1, 0})

• Al comienzo del proceso, la Máquina de Turing seencuentra situada sobre la primera casilla a la izquierda dela parte no-vacía de la cinta

• El autómata finito de control tiene una entrada (I) y cuatrosalidas (d, i, m, b)

• La entrada I recibe en cada instante t el símbolo contenidoen la casilla que se está examinando en ese instante

Page 27: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 27

Máquinas de Turing (2)

• En respuesta a esa información de entrada, el autómatafinito de control genera una instrucción de actuación sobrela cinta:

• Cuando activa la salida “d”, la Máquina de Turing semueve a la derecha una casilla

• Cuando activa “i”, se mueve una casilla a la izquierda• Cuando activa “m” (“marcar”), escribe un símbolo

“1” en la casilla actual• Cuando activa “b” (“borrar”), escribe un “0” en la

casilla actual• La definición puede variar en sus términos:

• Alfabeto variado• Movimiento de la cinta, y no de la máquina• ...

• (Def. )La Máquina de Turing se detiene en un instante t si, apartir t, la Máquina de Turing sigue examinando la mismacasilla, sin producir ningún cambio en ella, y sin cambios deestado en el autómata finito de control

• En cada instante t, la Máquina de Turing está en un estadodado (el de su autómata finito de control)

• Cada operación de cambio de estado y de salida de laMáquina de Turing está determinada por una combinación<estado, símbolo leído>

Page 28: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 28

Máquina de Turing (3)

• Resolver un problema equivale a computar una funcióncuyo valor es la solución del problema

• (Def.) Una Máquina de Turing T computa una función f(a1,an) = v sii, representados en su cinta, en un instante t0, losargumentos a1, ..., an, se detiene en un instante ti ≥≥≥≥ t0, con vrepresentado sobre su cinta

• T es una Máquina de Turing “concreta”: sólo resuelve elproblema para el que está diseñada

• Si T computa una función f, decimos que f es Turing-computable

• Si un problema es Turing-computable, entonces esalgorítmicamente soluble

• A es un algoritmo sii el problema que A resuelve es resolublemediante una Máquina de Turing

• Tesis de Turing: La clase de las funciones efectivamentecomputables (funciones algorítmicas o algoritmos) puedeidentificarse con la clase de las funciones Turing-computables

Page 29: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 29

Especificación de Máquinas de Turing

• Las Máquinas de Turing se definen en términos dequíntuplas:

<estado, entrada, salida, nuevo estado, movimiento>

• Ejemplo: Especificación de una Máquina de Turingsumadora tal que:

• cada número se representa mediante n+1 “1”s• los “0”s actúan como delimitadores• los dos sumandos están separados por un espacio en

blanco (un “0”)• al final del proceso sólo debe quedar el resultado

escrito sobre la cinta, con la cabeza de I/O posicionadasobre la casilla más a la izquierda de la parte no vacíade la cinta

• Especificación en términos de quíntuplas:

q110q2dq211q2dq201q3iq311q3iq300q4dq410q5d

Page 30: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 30

Especificación de Máquinas de Turing (2)

• Especificación de una Máquina de Turing que averigua siuna secuencia cualquiera de “0”s y “1”s representada en sucinta es capicúa.

• Se trata de un autómata reconocedor• Se supone que existe un tercer símbolo delimitador (“*”)• Deberá tener en cuenta si la secuencia tiene, o no, un

número par de elementos• Si la secuencia es capicúa, al final del proceso la cinta estará

vacía• Supongamos que la secuencia es par• Especificaremos el autómata mediante un grafo:

11d

00d **i q2 q4 11d 1*i 1*d **d 11i q1 q7 q6 0*d 00i 00d 0*i q3 q5 11d **i

00d

• ¿Qué habría que hacer para tener en cuenta, además,el caso de las secuencias impares?

Page 31: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 31

Máquina de Turing Universal

• Una Máquina de Turing Universal (U) es una Máquina deTuring tal que:

• Si, en t=0, representamos en su cinta:• una Máquina de Turing concreta• los datos de entrada a esa MT concreta

• Entonces, en algún t > 0, se detendrá con la solución dela MT concreta representada en la cinta

• La Máquina de Turing Universal imita o reproduce elcomportamiento de cualquier Máquina de Turing concreta

• Existen métodos de codificación (Por ej., la numeración deGödel) que permiten representar una Máquina de Turingmediante:

• Una codificación de las quíntuplas que definen sufuncionamiento

• Una codificación del estado en que se encuentra laMáquina de Turing

• La Máquina de Turing Universal:

Lee el estado en que se encuentra la MTuring concreta.Mientras no es el estado final:

Lee el símbolo siguiente de la cadena de entradaIdentifica cuál es la instrucción aplicable de laMTuring concretaAplica la instrucción:

Cambiando el estado de la MTuring concretaGenerando la salida correspondiente

Si lee el estado final, termina.

Page 32: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 32

ESPECIFICACION DE MAQUINAS DE TURINGMEDIANTE PROGRAMAS

• El lenguaje de quintuplas nos da, para cada MT:

• Una especificación de la función de transición de estados• Una especificación de la función de salida

• Podemos hacer más explícita esa especificación transformando ellenguaje de quíntuplas en un programa, es decir, en una secuenciade instrucciones de actuación sobre la cinta.

• Construiremos el programa como una secuencia de instruccionesformulada en términos de un lenguaje de programación L0

• Las instrucciones de nuestro lenguaje programación L0 tienen queser suficientes para reproducir las instrucciones formuladas en ellenguaje de quíntuplas.

• En general, cada instrucción de este lenguaje (qi,sl,se,qj,m) equivale aafirmar que:

Si se está en qi, y se lee sl, entonces se realiza la siguiente secuencia deinstrucciones:

Escribir seHacer el movimiento mPasar al estado qj

Page 33: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 33

MAQUINAS DE TURING COMO PROGRAMAS

• Eliminaremos toda mención del estado interno del autómata finitode la siguiente forma:

• Asignaremos a cada instrucción del programa un número delínea

• Reformularemos la anterior expresión condicional de lasiguiente forma:

n Leer sln+1 Si sl tiene el valor v, ir a la línea número mn+2

. . . m Escribir se

m+1 Hacer el movimiento mm+2 Ir a la línea número j (j será = n si no hay cambio de

estado)

• De esta forma:

• “Estar en un estado qi” significa ahora “Se va a ejecutar lainstrucción número n”

• “Pasar al estado qj” significa ahora “Ir a la instrucción númerom y ejecutarla”

• Puesto que la noción de “estado interno” desaparece, habrá quetener en cuenta que, ahora, tendremos que formular todos losautómatas aceptadores como transductores o generadores (es decir,la respuesta tendrá que reconocerse dejando escrito algo sobre lacinta).

(Ejemplos más adelante)

Page 34: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 34

MAQUINAS DE TURING COMO PROGRAMAS

• Supondremos que:

• La primera instrucción que se ejecuta es la primerainstrucción del programa

• Si no se cumple la condición, se ejecuta la siguiente instrucciónn+1

• Todas las instrucciones se ejecutan en la secuencia en queaparecen en el programa, excepto si hay saltos (por unainstrucción condicional o por una instrucción de saltoexplícito (como la de la línea m+2)

• El programa contiene una línea de terminación.

• La sintaxis de nuestro lenguaje de programación será la siguiente:

LEER(s): Leer el símbolo s: s toma el valor del símbolo escrito en lacasilla que se lee

ESCRIBIR(s): Escribir el símbolo s: escribe el símbolo s en la casillaen

la que la MT está colocadaMOVERD: Moverse a la siguiente casilla a la derechaMOVERI: Moverse a la siguiente casilla a la izquierdaSI s=v IR A n: Si el símbolo s tiene el valor v, ir a la instrucción

número n. En otro caso, pasar a la instrucción siguienteIR A n: Saltar a la línea nPARAR: Línea de terminación del programa

• Equivalencia de las dos especificaciones alternativas de Máquinasde Turing:

• Cada instrucción básica de L0 es definible en términos de unasecuencia de quíntuplas

• Si P es un programa que especifica una MT, entonces existe unaMT especificada en términos de quíntuplas que ejecuta P

Page 35: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 35

EJEMPLOS DE ESPECIFICACION DE MTs MEDIANTEPROGRAMAS

• Suponemos, como siempre, que al principio del proceso, la MT estáposicionada sobre la casilla más a la izquierda de la parte no vacíade la cinta

Ejemplo1: Sea S = {1,0,*}. Dada una secuencia cualquiera (no vacía)de símbolos {0,1}, delimitada por el símbolo “ * ”, especificar una MTgeneradora que cambie cada 0 por 1, y a la inversa:

1. LEER(s)2. SI s = * IR A 93. SI s = 0 IR A 63. ESCRIBIR 04. MOVERD5. IR A 16. ESCRIBIR 17. MOVERD8. IR A 19. PARAR

• Llamamos “bucle” una subsecuencia de instrucciones que seejecutan reiteradamente

• En el programa del Ejemplo 1 tenemos dos bucles:

• De 1 a 5• De 1 a 8

• Decimos que estos dos bucles están “anidados”: el primero seencuentra dentro del segundo

Ejemplo 2: Sea S = {1,0,*}. Dada una secuencia cualquiera (no vacía)de símbolos {0,1}, delimitada por el símbolo “ * ”, especificar una MTreconocedora que averigüe si la secuencia es un palíndrome o no.Supondremos que la secuencia tiene un número par de símbolos. Si loes, al final del proceso, la cinta contendrá un 1, y si no lo es, contendráun 0:

Page 36: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 36

1. LEER(s)2. ESCRIBIR(*)3. SI s = * IR A 36 (La cinta se ha quedado vacía. Es palíndrome)4. SI s = 1 IR A 11 (Se ha leído un 1 en el extremo de la izquierda)5. MOVERD (Se ha leído un 0 en el extremo de la izquierda.

Empieza a moverse hasta llegar al extremo de la derecha)6. SI s = * IR A 87. IR A 58. MOVERI9. LEER(s)10. IR A 1911. MOVERD (Se ha leído un 1 en el extremo de la izquierda. Empieza a moverse hasta llegar al extremo de la derecha)12. SI s = * IR A 1413. IR A 1114. MOVERI15. LEER(s)16. SI s = 0 IR A 27 (En el extremo de la derecha hay un 0. No es palíndrome)17. ESCRIBIR(*) (En el extremo de la derecha hay también un 1. Se borra)18. IR A 21 (Hay que volver al extremo de la izquierda)19. SI s = 1 IR A 27 (En el extremo de la derecha hay un 1. No es palíndrome)20. ESCRIBIR(*) (En el extremo de la derecha hay también un 0. Se borra)21. MOVERI (Empieza a volver hacia la izquierda)22. LEER(s)23. SI s = * IR A 2524. IR a 2125. MOVERD (Ha llegado de nuevo al extremo de la izquierda)26. IR A 127. ESCRIBIR(*) (No era palíndrome. Hay que borrar todo y escribir un 0)28. MOVERI29. LEER(s)30. SI s = * IR A 3331. ESCRIBIR(*)32. IR A 2833. ESCRIBIR(0)34. IR A 3635. ESCRIBIR(1) (Era un palíndrome)36. PARAR

Page 37: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 37

SUBRUTINAS

• La instrucción “IR A n” (salto incondicional a la línea n) es, enrealidad, una abreviatura de la siguiente secuencia de instrucciones:

SI s = * IR A n SI s = 0 IR A n SI s = 1 IR A n

• Para simplificar la programación, los fragmentos de programa quese repiten, realizando funciones idénticas, se pueden formular comoun programa independiente, al que se llama “subprograma” o“subrutina” del programa principal.

• Las subrutinas se llaman o invocan por su nombre cada vez que esnecesario.

• Ejemplo: en el programa anterior, las líneas siguientes se repiten,con idéntica estructura y función (Ir hasta el extremo derecho):

• De la línea 5 a la 9• De la línea 11 a la 15

• Escribiremos un nuevo programa:

IR-EXTREMO-DERECHA

1. MOVERD2. SI s = * IR A 143. IR A 114. MOVERI5. LEER(s)

• Cuando en el programa principal lleguemos al punto en que serequiere realizar estas acciones, simplemente crearemos una nuevalínea en la que introduciremos el nombre de la subrutina.

• La ejecución de esta línea equivale a la ejecución de toda lasubrutina

• Al final de la ejecución, se retorna a la línea siguiente del programaque ha invocado a la subrutina.

• Podemos suponer que el anidamiento de programas y subrutinas esilimitado

Page 38: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 38

MAQUINA DE TURING UNIVERSAL

• Una Máquina de Turing Universal (U) es una Máquina de Turingtal que:

• Si, en t=0, representamos en su cinta:• una Máquina de Turing concreta• los datos de entrada a esa MT concreta

• Entonces, en algún t > 0, se detendrá con la solución de la MTconcreta representada en la cinta

• La Máquina de Turing Universal imita o reproduce elcomportamiento de cualquier Máquina de Turing concreta

• Para construir una Máquina de Turing Universal necesitamos:

• Una codificación o representación del programa que define laMáquina de Turing concreta

• Una codificación o representación de los datos de entrada dela Máquina de Turing concreta

• Un algoritmo, especificado como un programa, que, para cadainstrucción del programa de la MT concreta, la ejecute sobrelos datos correspondientes

• Una codificación del número de instrucción que hay queejecutar, y un contador que vaya actualizando este número.De esta forma representaremos el cambio de estados de la MTconcreta

• La Máquina de Turing Universal:

• Lee en el contador el número de la siguiente instrucción.Mientras no es la última:

• Lee el símbolo siguiente de la cadena de entrada• Identifica cuál es la instrucción aplicable de la MTuring

concreta• Aplica la instrucción:

• Cambiando el estado de la MTuring concreta• Generando la salida correspondiente

Page 39: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 39

MAQUINAS DE REGISTROS

• Una computadora digital (ordenador) es la realización física de unaMáquina de Turing (universal)

• Un modelo más realista se obtiene si sustituimos la cintapotencialmente infinita de la MT por un número finito peropotencialmente ilimitado de registros

• Cada registro es un espacio de memoria que supondremos quepuede almacenar:

• Un número de cualquier longitud y tipo, o• Una cadena alfanumérica cualquiera, codificada numéricamente

• Cada registro lleva asociado unívocamente un número, la direcciónde ese registro

• Un conjunto de registros, que comienza en una dirección dada,almacenará representaciones numéricas de las instrucciones delprograma

• Otro conjunto de registros almacena los datos sobre los que debeoperar el programa

• En general, las instrucciones se reformularán para que todas ellas seajusten al formato:

NúmeroInstrucción Operando [Operador1, ..., Operadorn]

• Los operandos identifican la instrucción que se va a ejecutar• Los operadores son direcciones de registros en los que se guardan

datos sobre los que se va a ejecutar la operación. En los lenguajes deprogramación se representan mediante variables.

Page 40: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 40

DE LOS AUTOMATAS A LOS ORDENADORES

• Un ordenador o computadora digital es la realización física de unaMáquina de Registros -en último término, de una Máquina deTuring- Universal.

• Cuando un ordenador ejecuta un programa, la máquina “universal”(que puede ejecutar cualquier programa o proceso computable) seconvierte en una “máquina virtual” concreta.

• Cada instrucción de los lenguajes de programación de alto nivel quese utilizan para programar ordenadores, es, en realidad, unamacroinstrucción , es decir, una expresión que resume todo unconjunto más o menos complejo de operaciones elementales

Page 41: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 41

Programas

• Una macroinstrucción es una unidad lingüística que hacereferencia, en último término, a una operación definible entérminos de Máquina de Turing

• Un lenguaje de programación es un conjunto demacroinstrucciones que puede ser utilizado para definiroperaciones o procesos complejos

• Hay lenguajes de programación de distintos niveles, deforma que los lenguajes de un nivel utilizan explícita oimplícitamente macroinstrucciones del nivel inferior

• Un programa es una secuencia finita de instrucciones talque cada una de ellas es:

• Una macroinstrucción de algún lenguaje deprogramación

• Un subprograma (rutina o subrutina) formulada enese mismo lenguaje

• Una computadora digital (ordenador) es la realización físicade una Máquina de Turing (universal) que ejecuta procesosdefinidos usualmente mediante programas escritos enlenguajes de programación de diferentes niveles

• Cuando un ordenador ejecuta un programa, la máquina“universal” (que puede ejecutar cualquier programa oproceso computable) se convierte en una “máquina virtual”concreta.

• Los ordenadores son relevantes en la Ciencia Cognitivacomo herramienta de modelización (formulación dehipótesis) y contrastación.

Page 42: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 42

ESPECIFICACIÓN DE ALGORITMOS

• Para especificar la solución de un problema algorítmico:

1. Especificar el rango, posiblemente infinito, de todas lasentradas admisibles

2. Especificar la salida deseada como una función de lasentradas

• Para especificar la salida como una función de las entradas,construir una secuencia finita de instrucciones tal que:

• Cada instrucción prescribe que ha de realizarse unaacción determinada

• Cada instrucción ha de estar descrita mediante unlenguaje no ambigüo

• La secuencia ha de tener un punto de terminación

Page 43: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 43

LENGUAJE DEESPECIFICACIÓN DE ALGORITMOS

• El lenguaje de especificación de algoritmos utilizado en lamáquina de Turing y en la máquina de registros es de “bajonivel”: está muy alejado del lenguaje natural

• En la modelización computacional suelen definirse losalgoritmos mediante un lenguaje o pseudocódigo “de altonivel”

• Los lenguajes de alto nivel poseen, en general, cuatro tiposde instrucciones:

• Declarativas: definen variables y sus tipos, clases deobjetos, funciones:

• entero(X)• es_una_lista(Y)

• Expresiones: combinaciones de constantes, variables,operadores y funciones de acuerdo con reglassintácticas precisas.

• (5*3)+(3+2)• (X+Y)/25• raiz2(X)

• Ejecutables: Definen operaciones, flujos, asignaciones,llamadas a funciones o subrutinas:

• sea A = 0• si (expresión) entonces (instrucción)• escribir Z• ejecutar prog1

• Comentarios

Page 44: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 44

LENGUAJE DEESPECIFICACIÓN DE ALGORITMOS (2)

• Para la construcción de la secuencia de instruccionespueden utilizarse los siguientes recursos:

• Secuenciación directa• Instrucciones condicionales:

si (Condición), entonces (Instrucciones)

• Iteración limitada:

hacer (Instrucciones) n veces

• Iteración condicional:

mientras (Condición) hacer (Instrucciones)hacer (Instrucciones) mientras (Condición)hasta que (Condición) hacer (Instrucciones)hacer (Instrucciones) hasta que (Condición)

• Una Condición es una expresión o una secuencia deexpresiones unidas por operadores booleanos (Y, O, NO)

• Las Instrucciones a ejecutar son, o bien una sola, o bien unasecuencia de instrucciones.

• Las iteraciones o bucles son necesarios para especificarprocesos de longitud no prefijada

Page 45: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 45

INSTRUCCIONES CONDICIONALES

• Pueden tener una de las siguientes formas:

si Condiciónentonces Instrucción o secuencia de instruccionesfinsi

si Condiciónentonces Instrucción o secuencia de instruccionesenotrocaso Instrucción o secuencia de instruccionesfinsi

si Condiciónentonces si Condición … finsifinsi

• Si la Condición no se cumple, el control pasa a lainstrucción siguiente al finsi

• salir: Sale de una cadena de condicionales• Una cadena de condicionales puede expresarse más

cómodamente como un conjunto de casos:

seleccionar (Expresión)caso Valor1:

Instrucción o secuencia de instrucciones …

caso Valorn:Instrucción o secuencia de instrucciones

enotrocaso:Instrucción o secuencia de instrucciones

finseleccionar

Page 46: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 46

ITERACIÓN LIMITADA

hacer I desde J hasta K [[[[intervalo L]]]]Instrucción1...Instrucciónn

finhacer

• Da sucesivos valores a la variable I, empezando por el valorJ

• El intervalo L fija la distancia entre los sucesivos valores deI (Si no se señala, por defecto es 1)

• La iteración termina cuando I alcanza el valor K• Además:

• salir: Sale de un bucle• continuar: Va a la siguiente iteración de un bucle

ITERACION INFINITA

hacerInstrucción1...Instrucciónn

finhacer

• Alguna de las instrucciones ha de ser salir

Page 47: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 47

ITERACIÓN CONDICIONAL (1)

• La iteración se ejecuta mientras que la expresión Condiciónes verdadera:

mientras Condición[[[[hacer]]]]Instrucción1...Instrucciónn

finmientras

• En la siguiente forma, se ejecuta al menos la primera vez:

hacerInstrucción1...Instrucciónnmientras Condición

finhacer

Page 48: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 48

ITERACIÓN CONDICIONAL (2)

• La iteración se ejecuta mientras que la expresión Condiciónes falsa:

hasta que Condición[[[[hacer]]]]Instrucción1...Instrucciónn

finhasta

• En la siguiente forma, se ejecuta al menos la primera vez:

hacerInstrucción1...Instrucciónnhasta que Condición

finhacer

Page 49: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 49

SALTO INCONDICIONAL

• Salto incondicional:

ira Etiqueta

• Etiqueta es una etiqueta o número de instrucción delprograma

• Hay que evitar su uso siempre que sea posible:

• Dificulta la inteligibilidad de los algoritmos• Puede introducir ambigüedades

Page 50: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 50

MANEJO DE SUBRUTINAS

• El uso de subrutinas estructura y clarifica los algoritmos• Hay que utilizar subrutinas siempre que sea posible

identificar la utilización reiterada del mismo procedimiento• Llamada a una subrutina o procedimiento:

ejecutar Proc[[[[(Parámetros,Valor)]]]]

• Proc es el nombre del procedimiento o subrutina que hayque ejecutar

• La llamada puede llevar parámetros, mediante los cuales elprocedimiento llamado recibe valores

• Si el procedimiento llamado es una subrutina, su últimainstrucción es:

regresar[[[[(Valor)]]]]

• Si la subrutina debe devolver algún valor, llevará esevalor como argumento.

Page 51: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 51

RECURSION

• Recursión: Capacidad de un procedimiento para llamarse así mismo

• Reducción del problema inicial a subproblemas mássencillos

• En cada nueva invocación del procedimiento, los datos deentrada cambian

• Al final del procedimiento, las soluciones parciales,obtenidas en cada ciclo del bucle recursivo se unen paraformar la solución final

• Ejemplo:Torres de Hanoi:

Proc: Mover N de X a Y, utilizando Z1. si N = 1, entonces escribir Mover X a Y. Terminar.2. enotrocaso:

2.1. ejecutar Mover N-1 de X a Z, utilizando Y2.2. escribir “Mover X a Y”2.3. ejecutar Mover N-1 de Z a Y, utilizando X

• Instrucciones de entrada/salida:

leer Itemescribir Item

• Item puede ser una variable, una constante, un elemento deuna estructura de datos, …

Page 52: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 52

TIPOS DE DATOS

• Los datos que manipulan los algoritmos son constantes devarios tipos:

entero: 1, 0, 543, …decimal: 1.25, 0.000004, 47.36, …numero: un entero o decimalcadena: Secuencia de caracteres alfanuméricos que puede

contener blancos. Suele escribirse entre comillasdobles.

constante alfanumérica: Secuencia de caracteresalfanuméricos. Por convención, si empieza pormayúscula o contiene blancos, se escribe entre comillassimples.

• Normalmente, los algoritmos se refieren a los datosmediante variables

• Cada variable denota un dato de un tipo dado• Las variables pueden interpretarse como posiciones de

memoria que almacenan datos• El dato al que cada variable se refiere es su valor• Las instrucciones de asignación dan un valor explícito a una

variable:

sea X = 34sea Y = Expresión

Page 53: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 53

CODIFICACION DEINFORMACIÓN ALFANUMERICA

• En el nivel físico, los ordenadores sólo manipulan cadenasde símbolos 0,1.

• La interpretación de estas cadenas como númeroscodificados en notación binaria resulta inmediata.

• Utilizando un esquema de codificación adecuado, tambiénpodemos interpretar estas cadenas de símbolos como:

• caracteres alfabéticos (letras)• caracteres numéricos (cifras)• otros símbolos especiales

• Uno de los esquemas de codificación más utilizados es elsistema de codificación ASCII.

• Permite representar 128 (27) caracteres con siete bits(secuencias de 7 símbolos {0,1})

• Por ejemplo:

A 00011004 0100011( 1000010f 0110110< 1100011...

• Con cadenas de 8 símbolos (ASCII extendido) permiterepresentar 256 caracteres

Page 54: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 54

EXPRESIONES

• Las constantes y variables se combinan con operadores paraformar expresiones

• Las expresiones pueden ser:

• Aritméticas:

• Operadores aritméricos: +, -,*, /, //, mod, exp, . .• Sus argumentos son constantes numéricas, u

otras expresiones o funciones aritméticas• Pueden utilizarse para definir funciones

aritméticas:

función f(X,Y,Z) = (Y*(X exp 2))+Z

o para asignar un valor a una variable:

sea X = Y/ (Z mod X1)

• Lógicas:

• Operadores: = , >, < , >= , =< , < >, …• Sus argumentos son constantes numéricas o

alfanuméricas, variables, o expresiones ofunciones aritméticas, …

• Toman como valor Verdadero o Falso• Se utilizan para expresar Condiciones

• Además, suele contarse con funciones predefinidas:

• De manipulación de cadenas (concatenación, …)• De conversión de tipo• …

Page 55: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 55

ESTRUCTURAS DE DATOS

• Un conjunto de datos se almacena formando una estructura• Diversas estructuras de datos:

• Vectores o listas• Matrices o tablas• Colas• Pilas• Arboles

• En algunos casos, es preciso declarar previamente el tamañode la estructura de datos

• Cada elemento de una estructura se identifica mediante:

• El nombre de la estructura• Uno o más índices que indican la posición del elemento

en la estructura

• La estructura se puede recorrer iterativamente mediantebucles definidos sobre sus índices

• Cada elemento identificado se puede manejar en unaexpresión como si fuera una variable

Page 56: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 56

VECTORES Y LISTAS

• Un vector es un conjunto finito de datos, dispuestos deforma que:

• Hay un elemento, vect(1), que es el primero del vectorvect.

• Cada elemento, vect(n), del vector, excepto el primero,va precedido por otro elemento, vect(n-1), del vector

• El índice o puntero del vector es el número que aparececomo argumento del vector

• En general, los vectores requieren una declaración explícitade tamaño (longitud)

• Ejemplo: Procedimiento que incrementa en 1 cada númerodel vector vect = [[[[5,43,57,58,34,27,15,2,1,1]]]]

procedimiento Incrementar:

dimension vect(10)hacer I desde 1 hasta 10

sea vect(I) = vect(I) + 1finhacer

fin Incrementar

• ¡OJO!: Las siguientes expresiones no indican lo mismo:

I+1vect(I+1)vect(I)+1

Page 57: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 57

LISTAS

• Una lista es un vector que no requiere declaración explícitade tamaño

• Las listas se estructuran en [[[[Cabeza|RestoLista]]]]• Cabeza contiene el primer elemento de la lista• RestoLista es una lista• El último elemento de una lista es la lista vacía• Los elementos de una lista se suelen manejar con

procedimientos recursivos

• Ejemplo1: Procedimiento recursivo (Prolog) paracomprobar la pertenencia de un elemento E a una lista L:

procedimiento Pertenece

Pertenece(E,[[[[E|_]]]]).Pertenece(E,[[[[_|L1]]]]) si Pertenece(E,L1).

fin Pertenece

• Ejemplo2: Procedimiento recursivo que incrementa en 1cada elemento de la lista L = [[[[5,43,57,58,34,27,15,2,1,1]]]]

procedimiento Incrementa(ListaEntrada,ListaSalida)

Incrementa([[[[]]]],[[[[]]]]).Incrementa([[[[Elemento|Lista]]]],[[[[Elemento1|Lista1]]]]) si

sea Elemento1 = Elemento+1,Incrementa(Lista,Lista1).

fin Incrementa

Page 58: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 58

MATRICES O TABLAS

• Vectores y listas son matrices unidimensionales• Los datos pueden situarse en una tabla o matriz

bidimensional:

pepe 25 1 logica aprobadoana 18 3 percepcion notable

… … … … … juan 22 4 memoria suspenso

• La posición de cada dato en una fila o columna dada indicade qué tipo de dato se trata

• El tamaño de una tabla o matriz bidimensional se declaradando el número de filas y el número de columnas:

dimension datos(50,5)

• Para manejar los datos de una matriz nos referimos a cadaelemento mediante sus índices de posición:

• Ejemplos:

datos(50,1) :el nombre de pepedatos(2,5) : la calificación de ana

• Podemos utilizar matrices n-dimensionales (n>2)

Page 59: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 59

COLAS Y PILAS

• Una cola es una lista tal que:

• Todo elemento añadido a ella se coloca como últimoelemento de la lista

• Para extraer un elemento de ella, han de extraersepreviamente los elementos que le anteceden

• FIFO: First Input, First Output

• Una pila es una lista tal que:

• Todo elemento añadido a ella (push) se coloca comoprimer elemento de la lista

• Para extraer un elemento de ella (pop), han deextraerse previamente los elementos que le anteceden

• LIFO: Last Input, First Output• Se utilizan para almacenar los datos obtenidos en los

sucesivos ciclos de los procedimientos recursivos

Page 60: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 60

ARBOLES

• Un árbol es un conjunto de datos ordenadosjerárquicamente

• Cada dato es un nodo del árbol• Cada nodo del árbol está unido al menos a otro nodo

mediante una rama• Cada nodo puede ser:

• El nodo raíz• Un nodo terminal• Un nodo no-terminal

• Cada rama une el nodo raíz, o un nodo no terminal, conotro nodo, su sucesor inmediato

• Si B es el sucesor inmediato de A, A es el antecesorinmediato de B

• Un camino en el árbol es una lista de nodos del árbol talque:

• El primer nodo de la lista es el nodo raíz• El último nodo de la lista es un nodo terminal• Cada nodo de la lista, excepto el primero, es el sucesor

inmediato del nodo que le precede en la lista

• Un árbol binario es un árbol en el que cada nodo tiene comomáximo dos sucesores

Page 61: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 61

EJEMPLO

• Procedimiento que genera un árbol binario a partir de unalista de números L, tal que, para cada nodo A:

• Todos los nodos de su subárbol izquierdo son menoresque A

• Todos los nodos de su subárbol derecho son mayoresque A

procedimiento CreaArbol:

sea A (el primer número de la lista L) el nodo raizhacer

sea B el siguiente elemento de la lista:sea C el nodo raízhacer

si B es menor que C, entonces:sea D el sucesor izquierdo de Csi D es vacío, entonces B es el nuevo

sucesor izquierdo de C. Salir enotrocaso, sea C = D

finsienotrocaso (B es mayor que C):

sea D el sucesor derecho de Csi D es vacío, entonces B es el nuevo

sucesor derecho de C. Salir enotrocaso, sea C = D

finsifinsi

finhacerhastaque B = fin de la Listafinhacer

fin CreaArbol

Page 62: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 62

COMPUTABILIDAD

Y

DECIDIBILIDAD

Page 63: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 63

Decidibilidad

• Tesis de Turing: Un problema es decidible sii es computable(por una MTuring). En otro caso, es indecidible

• La cuestión de si, para una clase dada de problemas, existeun algoritmo o procedimiento efectivo que los resuelva, sedenomina problema de decisión

• Decimos que un problema de decisión es indecidible sipodemos demostrar que no existe ningún algoritmo quepueda responder a todas las preguntas que el problemapueda plantear

• Ejemplos:

• El problema “¿Hay enteros tales que satisfagan laecuación 3x + 6y = 151?” (que tiene una respuestanegativa) no es un problema de decisión.

• El problema “¿Hay enteros x, y tales que se cumple laecuación ax + by = c?”, sí es un problema de decisión:

• Para cada asignación de valores a los parámetrosa, b, c, hay un problema distinto

• Respuesta:• sí, si el máximo común divisor (mcd) de a y

b divide a c• Tenemos el algoritmo de Euclides para

hallar el mcd de dos números

Page 64: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 64

El Problema de la Parada

• Consideremos el siguiente problema de decisión:

¿Existe algún procedimiento efectivo (algoritmo o máquina deTuring) que nos permita determinar, para cualquier MTconcreta representada en la cinta de la MTuring universal, sila MTuring concreta llegará a detenerse después de iniciar sucomputación?

• Este problema tiene una respuesta negativa, por lo que setrata de un problema indecidible

• Este resultado es equivalente a los obtenidos respecto a laLógica Clásica de Primer Orden:

• Gödel (1931): Cualquier sistema formal cuyo lenguajesea lo suficientemente rico para describir lasoperaciones y relaciones básicas de la aritméticaelemental es incompleto

• La Aritmética de Peano, formalizada con la Lógica dePrimer Orden con Identidad (y símbolos funcionales) ycon axiomas específicos, es incompleta.

• El conjunto de los enunciados verdaderos de laaritmética no es decidible

• Church (1936): La Lógica de Primer Orden esindecidible

• Consecuencias para las Ciencias Cognitivas:

• Existen problemas elementales no decidibles• Pero los sujetos solucionan problemas muy complejos• Luego se requieren recursos de modelización no

algorítmicos (heurísticos)

Page 65: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 65

COMPLEJIDAD COMPUTACIONAL

Page 66: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 66

Complejidad

• No basta con el criterio de decidibilidad para establecer siuna modelización cognitiva puede ser estríctamentealgorítmica

• Los recursos físicos utilizados en la solución de problemas(espacio y tiempo) son limitados

• Ni siquiera todos los problemas decidibles son manejables• Podemos medir la complejidad de los algoritmos para

estimar su manejabilidad• Los parámetros de medida son:

• Tiempo de computación requerido (número deoperaciones primitivas)

• Espacio de memoria requerido:• Tamaño del input• Tamaño del output• Espacio requerido para almacenar resultados

intermedias

• La complejidad vendrá dada por el tiempo requerido pararesolver el problema, dado como una función del tamañodel problema

• Tipos de complejidad:

• Polinómica (problemas “buenos”)• Exponencial (problemas “malos”)

Page 67: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 67

Análisis de la Complejidad de un Algoritmo

• Ejemplo: Complejidad de la Multiplicación

• Sean dos enteros:• n, que tiene i dígitos• m, que tiene k dígitos

• Para obtener m x n tenemos que obtener i filas que sesumarán

• En cada fila tendremos aprox. j (≥≥≥≥ k) operaciones• Luego para obtener las i filas necesitamos, aproxim. ,

i x j operaciones• Finalmente, para sumar las filas necesitamos, aprox.,

i x j sumas de dos números de un dígito cada uno• Luego el tiempo de ejecución de toda la operación será

proporcional a la ejecución de todas las operaciones• El número de operaciones es 2(i x j)• Luego la complejidad será proporcional al factor

variable de esta expresión: i x j

Page 68: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 68

La Medida de la Complejidad Algorítmica

• Lo que resulta importante a la hora de medir lacomplejidad es su tasa funcional de crecimiento:

• Esa tasa puede ser:• Lineal (buena)• Cuadrática (admisible en algunos casos)• Exponencial (no manejable)• ...

• Los factores constantes se omiten• Denotación de la complejidad:

O(f(n))

(La complejidad es proporcional a fn o “de orden f(n))

• Clasificación de los problemas respecto asu complejidad:

• Problemas P: tienen algoritmos eficientes, concrecimiento polinómico

• Problemas NP:• Es indemostrable que sean problemas P• Tienen un algoritmo eficiente (polinómico) de

verificación de la solución• Problemas NP-completos:

• No son problemas P ni NP• Si uno de la clase se solucionara mediante un

algoritmo polinómico, todos tendrían unalgoritmo de ese tipo

• Problemas intrínsecamente difíciles: No sonproblemas P ni NP, y tienen algoritmos con tiempoexponencial

Page 69: AUTOMATAS Y COMPUTABILIDAD - UCM-Universidad …webs.ucm.es/info/pslogica/automatas.pdf · Lógica y Computación Autómatas y Computabilidad Departamento de Lógica - Facultad de

Lógica y Computación Autómatas y Computabilidad

Departamento de Lógica - Facultad de Psicología - UCM 69

Los Algoritmos Básicos y su Complejidad

• Algoritmos de Búsqueda:

• Búsqueda Secuencial:• Dado un conjunto de n elementos, compara todos

ellos con el buscado• En el peor caso (como máximo), n operaciones• Complejidad: O(n)

• Búsqueda Binaria:• Requiere que el conjunto de elementos esté

previamente ordenado• Peor caso: el primer valor entero k tal que 2k≥≥≥≥n,

es decir k = log2 n• Complejidad: O(log2 n)

• Algoritmos de Ordenación:

• Ordenación por Burbuja:• Número de comparaciones: 1/2 n (n-1)• Mejor caso: 0• Peor caso: 3/2 (n2-n)• Caso medio: 3/4 (n2-n)• Complejidad: O(n2)

• ...