Está en la página 1de 320

Fundamentos de

Lógica Matemática y
Computación
Fundamentos de
Lógica Matemática y
Computación
a, b

Lógica Autómatas
Máquinas de Turing
Gramáticas Lenguajes

Joaquín Aranda Almansa


Natividad Duro Carralero
José Luis Fernández Marrón
José Jiménez González
Fernando Morilla García

[U]
SANZ Y TORRES
,
INDICE

Prólogo. x1

Capítulo 1: Introducción y lógica de proposiciones.


1.1 Marco de referencia de la lógica matemática. 1
1.2 Antecedentes históricos de la lógica matemática. 4
1.3 Introducción a la lógica de proposiciones. 6
1.4 El lenguaje de la lógica de proposiciones. 9
1.4.1 Sintaxis. 9
l. 4 .1.1 Reglas de formación. 1O
1.4.1.2 Conectivas. 11
1.4.2 Semántica. 13
1.4.2.1 Tablas de verdad. 14
1.4.2.2 Equivalencia. 18
1.4.2.3 Tautologías y contradicciones. 19
1.5 Validación de sentencias proposicionales. 21
1.5.1 Validación mediante tablas de verdad. 21
1.5.2 Validación mediante árboles semánticos. 23
1.5.3 Validación mediante refutación. 25
1.6 Leyes de la lógica de proposiciones. 27
l. 7 Sistema axiomático del cálculo de proposiciones. 31
l. 7.1 Alfabeto y reglas de fonnación del cálculo axiomático
PM. 32
l. 7.2 Axiomas y reglas de transformación. 34
1.8 Sistema inferencia! del cálculo de proposiciones. 35
l. 8 .1 Reglas de inferencia. 40
l. 8.2 El principio de resolución para la lógica de
~~~~- «
vii
Fundamentos de Lógica Matemática y Computación

1.8.2.1 Regla de resolución. 46


1.8.2.2 Refutación. 47
1.9 Ejemplos de aplicaciones de la lógica de proposiciones. 49

Capítulo 11: Circuitos combinacionales


11.1 Introducción a los circuitos combinacionales. 55
11.2 Puertas lógicas básicas. 56
Il.3 Modelos matemáticos de los circuitos. 59
11.3.1 Formas booleanas. 59
11.3.2 Formas canónicas. 60
11.3.2.1 Primera forma canónica. 60
11.4 Simplificación de funciones boolenas mediante Kamaugh. 62
11.5 Segunda forma canónica. 68
11.5.1 Tercera y cuarta forma canónica. 71

Capítulo 111: Lógica de predicados de primer orden


111. 1 Introducción. 73
111.2 El lenguaje de la lógica de predicados. 74
111.2.1 Predicados, fórmulas atómicas y sentencias. 74
111.2.2 Cuantificadores. 75
111.2.3 Funciones. 77
ill.2.4 Símbolos. 78
111.2.5 Semántica. 78
111.3 Sistema axiomático en lógica de predicados. 82
111.4 Leyes en lógica de predicados. 83
111.5 Sistema inferencia! del cálculo de predicados. 87
. 111.5 .1 Reglas de inferencia. 88
111.6 Sistema de resolución. 91
ill.6.1 Forma clausulada de la lógica de predicados. 91
111.6.2 Sustitución y unificación. 98
ill.6.3 Expresión general de la regla de resolución. 103
111.6.4 Refutación 105
111. 7 Estrategias para analizar la validez de proposiciones lógicas. 107

Capítulo IV: Otras lógicas.


IV .1 Introducción. 109
IV.2 Lógica de predicados con identidad. 110
IV.3 Lógica de las clases. 118

viii
Índice

IV .3 .1 Álgebra booleana de las clases. 119


IV.3.2 Co~probación mediante diagramas de Euler. 122
IV.4 Lógica de las relaciones. 125
IV.5 Lógicas polivalentes. 131
IV.6 Lógica borrosa. 134
IV.6.1 Conjuntos borrosos. 135
IV.6.1.1 Conceptos básicos. 139
IV.6.1.2 Operaciones típicas. 141
IV.6.1.3 Relaciones borrosas. 145
IV.6.2 Diferencias entre la lógica borrosa y la lógica tradicional. 149
IV.6.3 Sentencias borrosas. 151
IV.6.3.1 Interpretación de sentencias simples. 152
IV.6.3.2 Interpretación de sentencias compuestas. 156
IV.6.3.3 Modificadores lingüísticos. 160

Capítulo V: Autómatas.
V. l Introducción. 167
V.2 Definición y representación de los autómatas. 168
V.2.1 Representaciones de un autómata finito. 169
V.3 Conceptos básicos de álgebra relacionados con autómatas. 172
V.4 Comportamiento de un autómata. 173
V.4.1 Equivalencia entre una máquina de Mealy y una de Moore. 176
V.4.1.1 Transformaciones mutuas entre ambas máquinas. 178
V.5 Circuitos secuenciales. 180
V.5.1 Tipos de elementos en los circuitos secuenciales. 180
V. 5.1.1 Elementos combinacionales. 180
V.5.1.2 Elementos con memoria. 180
V. 5. 2 Modelos básicos de los circuitos secuenciales. 181
V.5.3 Biestables. 183
V.5.4 Análisis de los circuitos secuenciales. 186
V. 5. 5 Formalización general de un circuito secuencial. 18 7
V.5.6 Síntesis de los circuitos secuenciales. 189
V.5 .6 Resumen y ampliación de los biestables. 195
V.6 Reconocedor finito. 200
V. 7 Conjuntós y expresiones regulares. 202
V.8 Análisis y síntesis de un reconocedor finito. 206
V.8.1 El problema de síntesis y su solución. 208
V. 9 Autómata finito no determinista. 212
V.10 Autómata probabilístico o estocástico. 214

lX
Fundamentos de lógica Matemática y Computación

Capitulo VI: Máquinas de Turing, computabilidad y complejidad.


VI. l Algoritmos y máquinas de Turing. 217
VI.1.1 Propiedades de las máquinas de Turing. 223
VI. 1.2 Numeración de Godel. 232
VI.1.3 Máquinas elementales (abreviaturas). 235
VI.2 Computabilidad, calculabilidad y recursividad. 242
VI.2.1 Computabilidad. 243
VI.2.2 Calculabilidad. 245
VI.2.3 Recursividad. · 247
Vl.2.3 .1 Operaciones con funciones. 251
VI.2.3.2 Definiciones que combinan los conceptos de
computabilidad, calculabilidad y recursividad. 254
VI.3 Complejidad computacional. 258
Vl.3. l Reglas para la traducción de monario y binario como
cadenas. 268

Capítulo VII: Lenguajes y gramáticas.


Vil. l Introducción 2 71
VII.2 Lenguajes. 271
VII.2.1 Operaciones con cadenas y lenguajes. 272
VII.3 Gramáticas. 281
VII.3.1 Gramáticas de tipo O. 284
VII.3 .2 Gramáticas de tipo 1. 285
VII.3.2. l Recursividad de los lenguajes sensibles a contexto. 287
Vll.3.3 Gramáticas de tipo 2. 288
VII.3.4 Gramáticas de tipo 3. 289
Vll.3 .5 Árboles de derivación y ambigüedad. 290
VII.3.6 Definiciones sobre lenguajes y gramáticas. 292
Vll.3. 7 Lenguajes regulares y autómatas finitos. 294
VIl.3. 8 Autómatas tipo pila. 299
VII.3. 9 Resumen de clasificación de las gramáticas y los lenguajes. 304

Bibliografia. 307

X
Prólogo

La informática se puede definir como un conjunto de conocimientos


científicos y técnicos, que hacen posible el tratamiento automático de la información
por medio de los ordenadores electrónicos. La evolución de esta ciencia en los
últimos años ha sido de tanta envergadura que muchos técnicos sustituyen este
término por el de tecnología de la información. Dentro del campo de los ordenadores
ha habido avances espectaculares tanto en su estructura fisica (hardware) como
lógica (software), por lo que el gran desarrollo de este sector y su expansión en el
mundo cotidiano ha obligado a la creación de nuevos sistemas operativos más
fáciles de usar por personas sin conocimientos previos de informática.

Es evidente que la evolución de la Informática es algo candente, no


obstante, en este texto vamos a tratar de sus raíces y sus fundamentos. El texto se
centra en los cuatro pilares básicos o fundamentales sobre los que se sustenta el
edificio teórico y práctico de la Infonnática, como son la Lógica, la Teoría de
Autómatas, la Teoría de la Computación (Máquinas de Turing) y la Teoría de los
Lenguajes Fonnales. Aunque debido a la orientación para la que está escrito se
dedica un estudio más amplio a la lógica matemática que al resto de los pilares. A
muy grandes rasgos podemos definir, y vamos a hacerlo a continuación, el origen y
motivación inicial de cada una de estas partes.

La lógica aparece como pilar de la informática desde un punto de vista


filosófico,- para estudiar la naturaleza del razonamiento humano. La lógica es una
ciencia que trata de ser la teoría formal del razonamiento, por ello es una
herramienta muy importante para el análisis de argumentos. Pero sólo a los lógicos
puros, que son muy pocos, les interesa la lógica por sí misma. La mayoría de las
personas se interesan sobre todo por sus aplicaciones. Ramas del saber en la que

xi
Fundamentos de Lógica Matemática y Computación

ésta es particulannente importante son la Filosofia, las Matemáticas y la


Informática.

La teoria de autómatas aparece como pilar de la informática desde un


punto de vista tecnológico, cuyo objetivo es la formalización de los circuitos
lógicos. Un autómata lo definimos como un aparato con un mecanismo que le
imprime detenninados movimientos, o bien, como una maquina que imita los
movimientos de un ser animado. Un autómata sencillo es un robot mecánico, un
autómata complejo, un computador.

La teoria de la computación aparece como pilar de la informática desde un


punto de vista matemático, cuyo objetivo es detenninar lo que es o no es
computable, o resoluble, y su complejidad. En esta parte del libro se estudia el
concepto de algoritmo, que se define como el conjunto ordenado y finito de
operaciones que pennite la solución de un problema, o bien, como una regla
matemática que al ser aplicada repetidamente produce unos resultados cuyo grado
de precisión es acorde con el número de aplicaciones.

La teoría de los lenguajes formales aparece como pilar de la informática


desde un punto de vista lingüístico, cuyo objetivo será el estudio científico del
lenguaje natural. La importancia de este pilar es la relación que existe entre las
máquinas programables y los lenguajes, a cada lenguaje de programación le
corresponde una maquina que interpreta lo que está escrito en él.

El estudio de la lógica matemática y de la computación es necesario para el


informático, fundamentalmente por sus aplicaciones. También es necesario su
estudio porque al ser la Informática una rama del conocimiento de fuerte contenido
práctico, tiende a ser estudiada de un modo puramente pragmático. El conocimiento
por parte de los profesionales de las bases científicas de la técnica que manejan es
necesario para tomar decisiones acertadas aun desde un punto de vista puramente
práctico. Por ello, es necesario impartir una formación en disciplinas básicas como
la lógica matemática, la teoría de autómatas, etc, en cualquier nivel de estudios,
como un medio de lucha contra el grave peligro de la ultraespecialización y la
obsolescencia técnica.

Una de las primeras dificultades del estudio de la lógica y la computación


reside en la existencia de diferentes simbologías. La falta de una uniformidad en los
signos lógicos o en la representación de autómatas, empleados por los diferentes
autores, complica la comprensión de los textos. Este texto utiliza los signos más
usados en el ambiente de lógica matemática y de la computación para informáticos.
Cuando los conocimientos básicos de lógica matemática y computación ya se hayan

xii
Prólogo

adquirido se puede fácilmente leer cualquier texto independientemente de su


simbología.

En ciertos libros de esta índole se da mucha importancia a temas como la


completitud y la decidibilidad. Los autores piensan que estos temas aun siendo de
gran interés, no deben recibir un tratamiento especial en este curso ya que este libro
está dedicado a estudiantes que empiezan sus estudios de Informática o de
Matemáticas, que se van a dedicar profesionahnente al tratamiento de la
información, y que deben encontrar en la lógica y en la computación una
herramienta práctica. Por todo esto el énfasis se da en temas como el de la
resolución, que están directamente conectados con el tratamiento automático y
mecanizado de la información. Aun así, y previendo la posibilidad de lectores
procedentes de otros campos, que deseen alguna ampliación sobre el tema o que
quieran profundizar en la conexión de la lógica con otros temas o asignaturas, se ha
tratado de dar una visión panorámica y meramente introductoria a estas cuestiones.

El libro está escrito sin prestar una atención especial al aspecto formal,
excepto, claro está, en lo que se refiere al imprescindible formalismo. Para seguirlo
no se necesita un conocimiento previo de lógica y computación, por lo que es
adecuado para iniciar el estudio de la lógica matemática y del resto de los pilares de
la informática, especialmente para personas que los quieran utilizar como
herramienta informática.

Se ha tratado de escribir el libro para que lo puedan utilizar estudiantes con


Ul) margen de edad y habilidad muy amplio. La lógica y la computación,
afortunadamente, son materias que no requieren gran base o experiencia para poder
estudiarlas y adquirir un buen conocimiento de ellas en el nivel de iniciación. Este
nivel introductorio es el objetivo de este texto.

Este libro ha sido diseñado como un libro de texto en el sentido estricto, ya


que está enfocado principalmente para ser el material didáctico por el que los
estudiantes de la Escuela Técnica Superior de Ingeniería Informática de la
Universidad Nacional de Educación a Distancia (UNED) preparen la asignatura de
Lógica Matemática y para que los alumnos de la Facultad de Ciencias Matemáticas
de la UNED preparen la asignatura de Informática 11. La asignatura de lógica
matemática pertenece al primer curso de las titulaciones de Ingeniero Técnico en
Informática de Gestión e Ingeniero Técnico en Informática de Sistemas y la
asignatura de Informática II al segundo curso de la titulación de Ciencias
Matemáticas.

xiii
Fundamentos de Lógica Matemática y Computación

Los autores apelan a la buena voluntad de los lectores para que disculpen los
errores involuntarios que contenga este texto. Y agradecen a sus compañeros de los
Departamentos de Informática y Automática e Inteligencia Artificial su apoyo al
contenido de este libro, así como a los alumnos de la Escuela Técnico Superior de
Ingeniería Informática y de la Facultad de Ciencias Matemáticas de la UNED por
sus constructivas criticas.

Los autores

xiv
Capítulo I
Introducción y lógica de proposiciones

1.1 Marco de referencia de la lógica matemática

La Lógica según la Academia de la Lengua es la disciplina que estudia la


estructura, fundamento y uso de las expresiones del conocimiento humano. C. L.
Chang la define como "el estudio de los métodos y principios del razonamiento
humano en todas sus posibles formas", es decir, es una ciencia que trata de ser una
teoría fonnal del razonamiento.

Existen lenguajes naturales y lenguajes artificiales. Los lenguajes naturales u


ordinarios son las lenguas, creadas y recreadas constantemente en el transcurso de
muchos siglos. Estos lenguajes siempre son relativos a una comunidad histórica de
hablantes y son transmitidos a los individuos por medio de un aprendizaje de
algunos años. Este tipo de lenguajes están llenos de redundancias, lagunas y
ambigüedades. Pero desde el punto de vista de su construcción, son también
artificiales, aunque su período de construcción haya sido muy lento. Por lenguajes
artificiales se entiende medios artificiales construidos por los científicos para poder
formular mejor las relaciones entre los objetos estudiados por sus ciencias
respectivas, por ejemplo la formulación química o la del cálculo infinitesimal. Estos
lenguajes artificiales han de ser formales o simbólicos. Es decir, un lenguaje de esta
índole implica el uso de símbolos abstractos, que en general se dividen en· dos
grandes categorías: símbolos constantes, que poseen un sentido fijo dentro del
lenguaje ( +, /, = en el lenguaje matemático) y símbolos variables cuyo significado
cambia de unos casos a otros según el contexto (x e y en la matemáticas).

1
Capitulo /: Introducción y lógica de proposiciones

El lenguaje que interesa a la lógica, no es sólo el lenguaje natural u ordinario.


La lógica pretende ser una ciencia y por ello tener la capacidad de realizar
operaciones o cálculos de modo preciso. Para conseguirlo se requiere la confección
de un lenguaje artificial que contando con reglas explícitas pennita usar los
componentes y combinarlos para formar enunciados.

La distinción entre uso y mención es fundamental para el lenguaje lógico. Por


ejemplo la expresión "El hombre piensa" se refiere a la entidad hombre, mientras
que "Hombre es disilábico" se refiere al nombre de la entidad. Esta doble utilización
del vocablo hombre puede originar problemas, que se pueden solucionar
distinguiendo entre diferentes tipos de lenguajes.

El metalenguaje es el lenguaje en el que hablamos del lenguaje objeto. Para


hablar de un lenguaje necesitarnos siempre otro lenguaje. Por ejemplo: "Los
electrones tienen carga eléctrica negativa es verdadero" es una expresión; en ella
"es verdadero" se afirma de "los electrones tienen carga eléctrica negativa". "Es
verdadero" pertenece a un metalenguaje: el metalenguaje del lenguaje objeto de la
fisica en el que se enuncia que todos los electrones tienen carga negativa.

El lenguaje objeto es siempre lenguaje inferior al metalenguaje. Pero


"inferior" no debe entenderse en un sentido valorativo; designa simplemente el
lenguaje del que se habla y especifica su posición en el discurso. El lenguaje objeto
lo es, sólo en relación con el metalenguaje, y éste sólo en relación a aquél. Pero un
metalenguaje se puede llamar inferior de otro metalenguaje en el que se habla de él.
Así el metalenguaje del enunciado "electrón es una expresión en el lenguaje de la
fisica" es inferior al metalenguaje del enunciado "-Electrón es una expresión en el
lenguaje de la fisica- es verdadero". La serie de metalenguajes es, por lo tanto,
infinita.

Existe una teoría de la jerarquía de los lenguajes, que fue propuesta por B.
Russell en 1922, y que tiene su aplicación en la eliminación de una serie de
paradojas metodológicas que se presentan al analizar lógicas de orden superior, que
están fuera del estudio de este texto.

Una primera área de estudio de la lógica es la lógica de proposiciones, que


trata de las combinaciones de-variables en proposiciones arbitrarias. Estas variables
se llaman variables lógicas o proposicionales. Estas variables pueden asumir los dos
valores de la lógica clásica, los de verdad o falsedad. En lógica de proposiciones se
pueden producir nuevas proposiciones aplicando las fórmulas lógicas a las
proposiciones existentes. El interés de la lógica de proposiciones está en el estudio

2
1.1 Marco de referencia de la lógica matemática

de estas reglas que penniten producir nuevas variables y proposiciones en función


de otras ya conocidas.

La lógica de proposiciones trata de relaciones lógicas que dependen de cómo


están compuestas las proposiciones, es decir las proposiciones se tratan como
"completos no analizables". No hay duda de que para muchas cuestiones del
razonamiento deductivo esta limitación no es adecu~ ya que es necesario tener en
cuenta la estructura interna de las proposiciones. En lenguaje natural las
proposiciones son sentencias que, en general, se pueden descomponer en un sujeto y
un predicado que, también en general, caracteriza una propiedad específica del
sujeto. Por ejemplo, "Austria es un país de habla alemana", especifica una
propiedad de ser Austria un país cuyos habitantes hablan alemán (esta proposición
es verdadera). Pero "Austria es un país de habla francesa" es claramente una
proposición falsa. Para recoger este tipo de proposiciones que no se pueden expresar
en lógica de proposiciones se utiliza la lógica de predicados.

Otro tipo de razonamiento que no se puede expresar en lógica de


proposiciones es la cuantificación del alcance numérico de un predicado. Es decir a
cuántos elementos de un conjunto es aplicable un cierto predicado. Por ejemplo:
"Todos los hombres son mortales'' o "Algunos hombres hablan sueco". Esto se
consigue dotando a la lógica de predicados de los cuantificadores.

Análogamente a la lógica de proposiciones, en lógica de predicados se pueden


producir nuevos predicados aplicando a predicados existentes fórmulas lógicas, que
en este caso se denominan fórmulas de predicados.

La suposición básica de la lógica clásica (o lógica de dos valores) de que toda


proposición es verdadera o falsa, fue cuestionada ya por Aristóteles. En su tratado
Sobre la Interpretación discute la problemática del estado de verdad de eventos
·futuros. Aristóteles mantuvo que proposiciones acerca de eventos futuros no son
actualmente verdaderos ni falsos, sino que son potencialmente ambos, de ahí que el
valor de verdad sea indeterminado por lo menos antes del evento.

Pero también se conocen proposiciones cuyo valor de verdad es incierto a


pesar de que no son futuros (por ejemplo las que describen la posición y el momento
de una partícula según el principio de Heisenberg). Todo ello condujo a lógicas con
más de dos valores, como la trivalente y la polivalente que fueron estudiadas en la
década de los 30. En estas lógicas los conceptos de verdad, falsedad, contradicción,
tautología, etc., quedan afectados por el abandono de la lógica de dos valores y
deben ser nuevamente definidos.

3
Capitulo /: Introducción y lógica de proposiciones

Consecuencia clara de
, estas lógicas multivaloradas fue la aparición de la
lógica de infinitos valores. Estos se suelen tomar, por convenio, como los números
reales en el intervalo (O, l]. Se suele llamar a esta lógica, lógica estándar de
Lukasiewicz L ¡.

Una extensión de estas lógicas multivaloradas son las lógicas borrosas


(fuzzy), que utilizan la teoría de conjuntos borrosos para tratar de proporcionar
fundamento al razonamiento aproximado. Su foco de atención principal es el
lenguaje natural, donde el razonamiento con proposiciones imprecisas es bastante
común.

1.2 Antecedentes históricos de la lógica matemática

Aunque la lógica de proposiciones es en teoría anterior a la lógica de


predicados, sin embargo históricamente esta última fue anterior. El primer sistema
de lógica de predicados, aunque este nombre sea muy posterior, se debe a Aristóteles
en el siglo cuarto antes de nuestra era. Aristóteles trataba de identificar las formas
del razonamiento humano, para tratar de crear criterios para discernir en las
discusiones filosóficas. Otros pensadores siguieron por esa línea que se conoce como
lógica clásica. Esta lógica de aplicación a la filosofia fue aprovechada por Santo
Tomás de Aquino en el siglo XII como vehículo de discusiones teológicas por lo que
esta lógica se ha asociado a veces con la escolástica.

La siguiente etapa comienza en el siglo XVI cuando Leibniz expresó su deseo


de extender la aplicación de la lógica a las matemáticas. Su ambición era encontrar
un procedimiento de prueba de teoremas. El deseo de Leibniz era construir un
cálculo ideológico, que consistiría en un sistema de reglas que pennitiera operar con
las ideas a la manera como la matemática lo hace con los números.

Como es sabido Leibniz no pudo cumplir su propósito y posteriormente este


problema no fue estimado pertinente en los siguientes 150 años. Pensadores tan
importantes como Kant o Hegel en filosofia y todos los matemáticos de finales del
siglo XVII, que tan_ importantes contribuciones hicieron en todos los campos del
pensamiento matemático, no dieron ninguna importancia a estos estudios de Leibniz
sobre procedimientos de prueba de teoremas.

Fue a mediados del siglo XIX cuando la lógica matemática se constituyó


como ciencia con los trabajos de Boole y Frege.

4
l 2 Antecedentes históricos de la lógica matemática

El inglés George Boole publicó en 1854 su libro The Laws o/Thought (Las
Leyes del Pensamiento). En él desarrolló un modelo algebraico de la lógica de
proposiciones. En este libro la lógica empieza a abandonar el análisis del lenguaje
usual y pasa a la construcción de un sistema formal, y sólo más tarde se busca su
interpretación en el lenguaje diario. Sobre la importancia de este libro se debe
mencionar el comentario de Bertrand Russell que afirmó "La Matemática Pura fue
descubierta por Boole en una obra que tituló Toe Laws of Thought".

El alemán Gottlob Frege publicó en 1879 su libro Grundgesetze der


Arithmetik: Begriffsschriftlich abgeleitet (Fundamentos de Aritmética:
Conceptualmente derivada) en el que formalizó la lógica de predicados. Para realizar
esto desarrolló un lenguaje formal e introdujo el concepto de cuantificador.

También en esta misma época se debe mencionar a Augustus de Morgan,


cuya ley de dualidad de la conjunción y de la disyunción, constituye una herramienta
fundamental del cálculo lógico.

El comienzo del siglo XX supuso un auge de la lógica, Bertrand Russell


basándose en el trabajo del matemático italiano Giuseppe Peano, se propuso mostrar
que la aritmética era una extensión de la lógica. Este trabajo lo llevó a cabo con
Whitehead y condujo a la aparición en 191 O del primer volumen de Principia
Mathematica, seguida en 1912 por el segundo y en 1913 por el tercero.

. El objetivo de todos estos estudios era contestar al desafio de Hilbert sobre la


axiomatización de las matemáticas. Pero en 1936 Gódel presentó su famoso teorema
de incompletitud del enfoque axiomático, que limita la formulación axiomática de
cualquier teoría matemática. De esta manera se contestaba negativamente al desafio
axiomatizador de Hilbert.

Una tercera época de la lógica comienza con la aparición de los ordenadores.


El problema que se plantea en las décadas de 1950 y 1960 es el procesamiento
automático de inferencias. Los ordenadores estaban resolviendo problemas en
muchos campos y era natural que se pretendiese su aplicación a la demostración
automática de teoremas. Sobre este tema se debe mencionar un artículo fundamental
"A machine-oriented logic based on the resolution principie" (J. Assoc. Comput.
Machi., 12 23-41) que J. A. Robinson presentó en Enero de 1965. Este artículo
constituye una pieza fundamental en la lógica simbólica del siglo XX. En dicho
artículo Robinson propuso el método de resolución con un algoritmo de unificación.

Esta nueva época de la lógica produjo muchos resultados en el campo de las


aplicaciones prácticas como la elaboración de estrategias de programación que

5
Capitulo /: Introducción y lógica de proposiciones

aprovecharon los conocimientos de la lógica. También se elaboraron lenguajes de


programación especialme~te adecuados a la programación lógica, como por ejemplo
el Prolog. Otro movimiento de esta nueva lógica fue el desarrollo de sistemas
expertos con modelos computables del conocimiento no totalmente sistematizado.

También se desarrolló una extensión teórica de la lógica hacia


interpretaciones probabilísticas y posibilistas dando valores continuos a las variables
lógicas; estas ideas de Zadeh son las que constituyen el cuerpo de lo que se ha
llamado lógica borrosa (fuzzy).

Actualmente existen trabajos de investigación en lógica matemática en


muchas áreas. Pero es en el campo del razonamiento no sistematizado y aproximado
donde se encuentran en la actualidad los retos más importantes desde el punto de
vista práctico. Es en estas áreas donde se espera que en los próximos años se
produzcan las contribuciones más significativas.

1.3 Introducción a la lógica de proposiciones

Teniendo en mente que queremos presentar los sistemas deductivos de la


lógica como una herramienta práctica para los informáticos, vamos a introducimos
en el estudio de la lógica comenzando por la más simple, la lógica de proposiciones,
que corresponde a la lógica que simboliza y describe razonamientos basados en
enunciados declarativos, como por ejemplo:

Está lloviendo (1-la)


3+2=5 (1-lb)
Antonio corre (1-lc)

En el capítulo 111, ampliaremos la lógica de proposiciones a una lógica de


predicados que nos permita hablar de objetos y relaciones entre ellos; en ella
podremos referimos a enunciados de la forma:

Algunas plantas tienen flores (l-2a)


- Todos los hombres son mortales (l-2b)

En la lógica de proposiciones los enunciados declarativos pueden ser o


verdaderos o falsos, pero no las dos cosas a la vez. Los enunciados declarativos se
denominan proposiciones.

6
l. 3 Introducción a la lógica de proposiciones

Los enunciados 1-la,b,c son proposiciones, que serán verdaderas o falsas (si
está lloviéndo, la proposición 1-la es verdadera; si no, es falsa); en cambio, una
orden como "levántate y anda" no es verdadera ni falsa y no se considera una
proposición.

Formalmente se define una proposición como "un enunciado declarativo que


puede ser o verdadero o falso, pero no ambos a la vez".

Las proposiciones se representan mediante variables proposicionales


simbolizadas mediante letras. Adoptaremos las letras 'p', 'q', 'r', 's ', .. . y
eventualmente las mismas con subíndices. De esta forma, a la proposición "Antonio
corre" le podemos asignar la variable proposicional 'p' y a la proposición "está
lloviendo" la variable proposicional 'q'.

Con la combinación de variables proposicionales y conjunciones se obtienen


fórmulas sentencia/es. Por ejemplo:

pyq (1-3)

es una fórmula sentencia!, que con la anterior asignación de variables


proposicionales corresponde a

Antonio corre y está lloviendo (1-4)

Por supuesto, no toda combinación de variables proposicionales y


conjunciones corresponde a una fórmula sentencia! correcta. Definiremos unas
reglas de formación para las fórmulas sentenciales correctas. Así, diremos que una
fórmula sentencia! que verifique las reglas de formación será una fórmula sentencia!
bien formada. En general, siempre que no haya confusión posible, cuando nos
refiramos a sentencias nos estamos refiriendo a fórmulas sentenciales bien formadas.

Las sentencias tomarán valores de verdad que dependerán del valor de verdad
que se le asigne a las variables proposicionales que la constituyen y de cómo se
combinen éstas con las conjunciones para formar la sentencia. Así, una sentencia
como Ja 1-4 será verdadera cuando Antonio esté corriendo y simultáneamente sea
verdad que está lloviendo.

Estudiaremos cómo obtener el valor de verdad de una sentencia y veremos


que hay sentencias que serán siempre verdaderas, con independencia de los valores
de verdad que se les asignen a las variables proposicionales que la constituyen. Por
ejemplo:

7
Capitulo 1: Introducción y lógica de proposiciones

En la Luna hay leones o en la Luna no hay leones 0-5)


-
es verdadera, independientemente de que sepamos si hay vida en la Luna.

Si en esta sentencia asignamos la variable proposicional 'p' a "En la Luna


hay leones", la podemos escribir como:

p o (no p) (1-6)

Cualquier sentencia de esta forma es verdadera, independientemente de si p es


una proposición verdadera o falsa. Las sentencias que son verdaderas,
independientemente del valor de verdad que se asigne a las proposiciones que la
constituyen, se denominan sentencias válidas o tautologías.

Por otro lado, habrá sentencias que siempre serán falsas, por ejemplo:

py (no p) (1-7)

es falsa, independientemente de si p es verdadera o falsa. Estas sentencias se


denominan contradicciones.

La importancia de demostrar que una sentencia es una tautología radica en


que razonamientos lógicos válidos a partir de proposiciones se pueden representar
como sentencias que son tautologías.

Por ejemplo, si queremos demostrar que a partir de las premisas "Antonio no


viene o pierde el autobús" y "Antonio viene o el autobús sale tarde" se deduce que
"Antonio pierde el autobús o el autobús sale tarde", vale con demostrar que la
sentencia:

Si [ ( no p o q) y (por)] entonces ( q o r) (l-8)

es una tautología, donde 'p' es "Antonio viene", 'q' es "Antonio pierde el autobús" y
'r' es "el autobús sale tarde", es decir que sea cual sea el valor de verdad que le
asignemos a 'p', 'q' y 'r' esta sentencia siempre es verdadera.

Veremos varias técnicas que nos pennitirán demostrar que una sentencia es
una tautología y que un determinado razonamiento es válido. Para ello
presentaremos un lenguaje para la lógica de proposiciones, en el que definiremos los
símbolos que lo constituyen y cómo obtener el valor de verdad de una sentencia a
partir del valor de verdad de las variables proposicionales que la constituyen.

8
/.3 Introducción a la lógica de proposiciones

También estudiaremos un sistema axiomático, que nos permitirá obtener


sentencias_ que son tautologías (a las que denominaremos teoremas o leyes)
aplicando unas reglas de transformación a unos teoremas que damos por válidos y a
los que se denominan axiomas.

El capítulo lo concluiremos formalizando el proceso de deducción con el


estudio de sistemas inferencia/es, que nos pennitirán obtener todas las posibles
conclusiones de unas premisas dadas. El proceso de deducción lo automatizaremos
aplicando el denominado principio de resolución a la lógica de proposiciones.

1.4 El lenguaje de la lógica de proposiciones

El que la lógica sea un lenguaje es un asunto que se ha debatido mucho y se


seguirá debatiendo. Pero para nuestro propósito nos basta con considerar el lenguaje
como un conjunto de signos que se agrupan en expresiones, los cuales pueden tener
significado o carecer de él.

Definiremos por tanto un lenguaje que nos permita representar las fórmulas
sentenciales para su estudio. Esto supone definir los símbolos que utilizaremos y las
reglas de cómo utilizar estos símbolos para formar fórmulas sentenciales correctas,
es decir la sintaxis de nuestro lenguaje, así como la semántica, asignación de un
significado lógico a las sentencias.

1.4.1 Sintaxis

El primer paso en el estudio de un lenguaje es definir los símbolos básicos que


lo constituyen (el alfabeto) y cómo se combinan para formar sentencias, es decir, la
sintaxis o estudio de los signos como puras y simples figuras, independientemente de
lo que designan y significan, y las relaciones de los signos entre sí.

El alfabeto con el que vamos a construir sentencias de la lógica de


proposiciones está constituido por los siguientes símbolos:

-1. Los símbolos de veracidad: V (o l) verdadero y F (o O) falso.

2. Los símbolos que representan variables proposicionales ('p', 'q', 'r\ 's\
' pI', ' ql', ...)

3. Los símbolos que representan las conjunciones y/o los adverbios, que en
. denommaremos
16gica . +:
conecuvas, tales como 'no,
' 'y,' ' o,
' 'o ... o... , ,s,.
!!

9
Capítulo 1: Introducción y lógica de proposiciones

... entonces... ', ' ... si y sólo si ... ', y que son representadas mediante '--,',
'/\' 'v' 'EB' ' ➔' '~'
' ' ' ' .

4. Los símbolos de puntuación, como'(', ')', para evitar ambigüedades.

Informalmente usaremos letras itálicas 'S', 'R', ... posiblemente con un


subíndice, para designar sentencias. Estos símbolos no son parte del lenguaje de la
lógica de proposiciones; únicamente los usaremos en nuestro metalenguaje informal,
el lenguaje en el que hablaremos de lógica de proposiciones.

1.4.1.1 Reglas de formación

Una secuencia finita de símbolos de variables proposicionales, conectivas y


paréntesis forman unafórmula sentencia/. Por ejemplo:

(l-9a)

(l-9b)

son fórmulas sentenciales. Aunque la única que significa algo es (l-9b), por lo tanto
sólo esta expresión es una sentencia.

Diremos que (l-9b) es unafórmula sentencia/ bien formada, (o simplemente,


sentencia bien formada) mientras que (l-9a) es una fórmula sentencia! mal formada.
La diferencia entre ambas es sintáctica, (l-9b) puede tener significado mientras que
(l-9a) no lo puede tener, con lo que la diferencia sintáctica es paralela a una
diferencia pragmática.

A pesar de este paralelismo, las clases de sentencias bien formadas se definen


por reglas puramente sintácticas, llamadas reglas de formación.

Las tres reglas de formación son:

1. Una variable proposicional es una sentencia bien formada.

2. Una sentencia bien formada precedida de la negación (--i) es una


sentencia bien formada.

3. Dos sentencias bien formadas S y R unidas por una de las partículas


conectivas binarias (S /\ R), (S v R), (S ➔ R), (S tt R), (S EB R),
constituyen una sentencia bien formada.

JO
1.4 El lenguaje de la lógica de proposiciones

Ejemplos de sentencias bien formadas son:

Las reglas de formación se pueden relajar para facilitar la lectura y la


escritura, así:

1. Se pueden omitir los paréntesis que encierran una sentencia completa.

2. El estilo tipográfico de los paréntesis se puede variar para hacerlos más


evidentes (corchetes '[ ]', llaves ' { }').

3. A las conjunciones y disyunciones se les puede pennitir tener más de dos


argumentos. Por ejemplo, en lugar de [ p /\ ( q ➔ r) ) /\ --, r podemos
escribir p /\ ( q ➔ r) /\--, r.

1.4.1.2 Conectivas

Las conectivas las dividimos en conectivas singulares y binarias, dependiendo


de que se apliquen a una única sentencia o a dos.

La única conectiva singular es la negación 'no', que simbolizamos mediante


el signo '--,' precediendo a la variable proposicional o sentencia que niegue. Así:

(l-10)

que leemos como 'no p'.

Un ejemplo de este esquema es:

no (en la Luna hay leones) (1-11)

o en una forma más idiomática, tal como poníamos en la sentencia (l-5):

en la Luna no hay leones (l-12)

La ·conjunción o conectiva 'y' la simbolizamos con el signo '/\' insertado


entre dos variables proposicionales o sentencias, de la forma:

p/\q (l-13)

11
Capítulo J: Introducción y lógica de proposiciones

que leemos 'p y q'.

Por ejemplo:

Carlos es alto y Juan juega al fútbol (l-14)

A la disyunción o conectiva 'o' se le da dos sentidos, los cuales quedan


reflejados en el lenguaje ordinario cuando se distingue entre 'o' y 'o ... o ... '. El
primero corresponde a 'o bien p o bien q, o ambas\ es la disyunción inclusiva, y el
segundo corresponde a 'o bien p o bien q, pero no ambas', es la disyunción
exclusiva.

La disyunción inclusiva la simbolizamos con el signo 'v' insertado entre las


dos sentencias:

pvq (1-15)

que leemos 'p o q', refiriéndonos a que también pueden ser ambas a la vez. Por
ejemplo:

Está lloviendo o hace viento (1-16)

La disyunción exclusiva 'o ... o ... ' la simbolizamos con el signo 'EB'
insertado entre dos sentencias. Así:

P EB q (1-17)

la leemos 'o p o q, pero no ambas'. Por ejemplo:

o viajo en tren o viajo en avión 0-18)

El condicional o conectiva "si ... entonces ... " la simbolizamos mediante' ➔'
insertado entre las dos sentencias. Así:

p ➔ q (1-19)

la leemos 'si p entonces q'. Por ejemplo:

Si está lloviendo entonces las calles están mojadas

12
l. 4 El lenguaje de la lógica de proposiciones

A la primera sentencia del condicional, p en (1-19), se denomina antecedente


y a la segunda, q en (1-19), consecuente. La sentencia q ➔ pes la reciproca de (1-
19). -

Tenemos que advertir que la conectiva 'si ... entonces' no debe confundirse
con la implicación. Más adelante haremos hincapié en marcar la diferencia entre la
conectiva condicional y la implicación.

El bicondicional o conectiva ' ... si y sólo si ... ' es simbolizado mediante '~'.
Así:

pttq 0-20)

la leemos como 'p si y sólo si q'. Por ejemplo:

en Navidad nieva si y sólo si en Navidad hace frío (l-21)

Una conectiva de tres sentencias corresponde al condicional ampliado 'si ...


entonces ... si no ... ', por ejemplo:

si Pedro viene entonces jugamos al fútbol; si no, jugamos al baloncesto (1-22)

que es equivalente a la sentencia:

si Pedro viene entonces jugamos al fútbol


y (1-23)
si Pedro no viene entonces jugamos al baloncesto

compuesta de dos condicionales y una conjunción.

Esta conectiva no suele aparecer en los libros de lógica, y si la hemos


nombrado aquí es por su semejanza con estructuras usadas en programación.

1.4.2 Semántica

Hasta ahora hemos presentado la sintaxis, o forma de las sentencias de la


lógica proposicional, sin asignarle ningún significado o semántica. Ahora, le vamos
a asignar a cada sentencia de la lógica proposicional un valor de verdad, 'V' si es
verdadera y 'F' si es falsa.

13
Capítulo 1: Introducción y lógica de proposiciones

La asignación de unos valores concretos de verdad a cada variable


proposicional y a cada s~ntencia corresponde a una interpretación. Así, diremos
que:

"una interpretación 1 es una asignación de un valor de verdad ('V'


verdadero, 'F' falso) para cada una de las variables proposicionales, de
forma que diremos que una interpretación J es una interpretación de S si 1
asigna un valor de verdad ('V' o 'F') a cada una de las variables
proposicionales de S''.

Por ejemplo, para la sentencia:

S: p ➔ (pvq) (1-24)

una interpretación II de S sería asignarle el valor 'F' a p y el valor 'V' a q. Otra


interpretación J2 asignaría 'V' a p y 'F' a q.

En general una interpretación de una sentencia puede asignar valores de


verdad a símbolos que no aparezcan en la sentencia. Por ejemplo, una interpretación
J3 de S podría asignar 'V' a p, 'F' a q y 'V' ar.

Hay que tener en cuenta que a todas las ocurrencias de una variable
proposicional se les asigna el mismo valor dado por la interpretación; así ocurre en
(1-24) en donde a las dos ocurrencias de p se les asigna el mismo valor.

Como una extensión, podemos definir una interpretación J para vahas


sentencias SI, Sl, ... , Sn asignando un valor de verdad a cada variable
proposicional que ocurre en cualquiera de las sentencias SI, Sl, ... , Sn.

1.4.2.1 Tablas de verdad

Dada una interpretación para una sentencia, podemos determinar su valor de


verdad bajo esta interpretación aplicando ciertas reglas que dan significado a las
conectivas que la constituyen. Para ello, partiremos del principio de que el valor de
verdad de cualquier s~ntencia está determinado por los valores de verdad de cada
variable proposicional que la compone.

Para determinar el valor de verdad de una sentencia para una interpretación


determinada, nos podemos ayudar de las denominadas tablas de verdad.

14
1.4 El lenguaje de la lógica de proposiciones

La tabla de verdad de una sentencia es una tabla en la que se presentan todas


las posibles interpretaciones de las variables proposicionales que constituyen la
sentencia y · el valor de verdad de la sentencia para cada interpretación.
Corresponden a un modo mecánico de determinar la verdad o falsedad de una
sentencia dada una interpretación de las variables proposicionales que la
constituyen.

En la tabla 1-1 se resumen las tablas de verdad para las seis conectivas vistas
en 1.4.1.2.

Tabla 1-1: Tablas de verdad para las conectivas--,, I', v, EB, ➔, tt

p pvq p ➔ q

V V F V V F V V

V F F F V V F F

F V V F V V V F

F F V F F F V V

Cada una de las filas de esta tabla corresponde a una interpretación de las
variables proposicionales p y q. Hay cuatro filas puesto que para dos variables
proposicionales (p y q) sólo hay cuatro posibles interpretaciones, ambas verdaderas,
p verdadera y q falsa, p falsa y q verdadera y ambas falsas.

La tercera columna es la interpretación de la negación, la cual será falsa si la


.variable proposicional representa un hecho verdadero y verdadera si representa un
hecho falso.

La conjunción, p /\ q, será verdadera cuando las dos variables


proposicionales representen hechos verdaderos; en caso contrario será falsa. Por el
contrario, la disyunción p v q será falsa sólo cuando las dos variables
proposicionales sean falsas, y verdadera cuando una de ellas o ambas sean
verdaderas. Para que sea verdadera la disyunción exclusiva p EB q sólo una variable
proposicional tiene que ser verdadera; si ambas son verdaderas o falsas entonces es
falsa.

15
Capitulo 1: Introducción y lógica de proposiciones

La interpretación del condicional requiere una explicación más detallada. En


el caso de que p sea verdadera y q falsa (segunda fila de la tabla) p ➔ q es falsa y
corresponde al uso habitual del condicional, es el caso de:

si Barcelona tiene puerto entonces Madrid tiene playa 0-25)

que es considerada como falsa.

En cambio, la primera, tercera y cuarta fila, que corresponden a


interpretaciones verdaderas del condicional, pueden representar algunos problemas
si consideramos sentencias como las siguientes:

si Madrid tiene aeropuerto entonces Barcelona tiene puerto (1-26)

si Madrid tiene playa entonces Barcelona tiene puerto (1-27)

si Madrid tiene playa entonces Barcelona es la capital de Italia (1-28)

que según la tabla de verdad las tendremos que declarar como verdaderas, ya que
cualquiera que sea la relación conceptual que ligue a un consecuente con un
antecedente, un condicional será siempre verdadero excepto cuando el antecedente
es verdadero y el consecuente falso.

Esta interpretación del condicional corresponde a una interpretación material


del mismo y ha sido una fuente de paradojas para muchos lógicos, ya que deducen
que un enunciado "falso" implica cualquier enunciado y un enunciado "verdadero"
es implicado por cualquier enunciado; pero ello es incorrecto, ya que no es lo mismo
el condicional que la implicación. De hecho, todas las paradojas de la interpretación
material obedecen ~ considerar el condicional como si fuera una implicación. Así,
mientras que (1-26) es un condicional verdadero,

Madrid tiene aeropuerto implica que Barcelona tiene puerto (1-29)

es una implicación falsa.

Por tanto, leeremos siempre 'p ➔ q' como 'si p entonces q', salvo, por
supuesto, cuando el condicional en cuestión sea lógicamente verdadero. Además,
mientras no se indique lo contrario, interpretaremos ' ➔' en sentido material.

La última columna de la tabla 1-1 corresponde al bicondicional, y es


verdadero si las dos variables proposicionales son verdaderas o las dos son falsas;

16
1.4 El lenguaje de la lógica de proposiciones

en caso contrario es interpretado como falso. Para el bicondicional también se


pueden hacer consideraciones parecidas. Así, algunos lógicos han tendido a leer el
bicondicioñal como que 'p es equivalente a q' dando lugar a paradojas análogas a
las indicadas con el condicional. Aquí aceptaremos esta lectura sólo cuando el
bicondicional en cuestión sea lógicamente verdadero. En todos los demás casos
leeremos 'p tt q' como 'p si y sólo si q'.

Las tablas de verdad no se confinan sólo a las expuestas en la tabla 1-1, sino
que se hacen tablas de verdad para comprobar mecánicamente los valores de verdad
de cualquier sentencia. Por ejemplo, la sentencia:

S: (p ➔ q) ➔ ((-,p) ➔ (,q)) (1-30)

tendrá cuatro posibles interpretaciones (p verdadera y q verdadera, p verdadera y q


falsa, p falsa y q verdadera, p falsa y q falsa). Para construir la tabla de verdad
(tabla 1-2), en las columnas de la izquierda ponemos los valores de verdad de p y de
q para cada una de las cuatro posibles interpretaciones. Para cada una de las
interpretaciones, vamos poniendo en columnas sucesivas los valores de verdad de
cada una de las subsentencias que constituyen S. La última columna de la derecha
tendrá los valores de verdad de esta sentencia.

Tabla 1-2: Tabla de verdad para S: ( p ➔ q) ➔ ( (-, p) ➔ (-, q))

p q p ➔ q -, p -, q (-, p) ➔ ( -,q) s
V V V F F V V

V F F F V V V

F V V V F F F

F F V V V V V

Hasta ahora, sólo hemos puesto sentencias con sólo dos variables
proposicionales, pero se pueden construir tablas de verdad para sentencias con
cualquier número de variables proposicionales. Así, la sentencia:

S: (p ➔ q ) /\ ( ( -,p ) ➔ r) (1-31)

tendrá la tabla de verdad dada en la tabla 1-3.

17
Capitulo 1: Introducción y lógica de proposiciones

Esta sentencia corresponde a la estructura de la sentencia 0-23), con la


siguiente asignación de variables proposicionales: p = "Pedro viene", q = "jugamos
al fútbol", r = 'jugamos ál baloncesto".

Las tablas de verdad nos van a servir para comprobar la validez de una
sentencia, como veremos más adelante, y también para ver si dos sentencias son
equivalentes.

Tabla 1-3: Tabla de verdad de S: ( p ➔ q) /\ ( (--, p) ➔ r)

p q r p ➔ q -,p (.p) ➔ r s
V V V V F V V

V V F V F V V

V F V F F V F

V F F F F V F

F V V V V V V

F V F V V F F

F F V V V V V

F F F V V F F

1.4.2.2 Equivalencia

Diremos que dos sentencias son equivalentes "si tienen los mismos valores
de verdad para cualquier interpretación, es decir, si sus tablas de verdad son
iguales".

La equivalencia la representaremos con el símbolo'='. Así:

(1-32)

indica que "la sentencia R es equivalente a la sentencia S''.

18
1.4 El lenguaje de la lógica de proposiciones

Por tanto, podemos definir una relación de equivalencia, la cual es reflexiva


(toda sentencia es equivalente a ella misma), simétrica (si la sentencia S es
equivalente-a R, también R es equivalente a S) y transitiva (si Ses equivalente a R y
Res equivalente a T, entonces Ses equivalente a n.
Esta relación de equivalencia permitirá catalogar todas las sentencias en
clases de equivalencia. Así, para todo el conjunto infinito de sentencias con dos
variables proposicionales, su tabla de verdad corresponderá a una de las dieciséis
columnas, etiquetadas de Coa C15 de la tabla 1-4, y que corresponden a las dieciséis
clases de equivalencia que hay para las sentencias con dos variables
proposicionales.

Tabla 1-4: Interpretaciones para las 16 clases de equivalencia para las sentencias
con dos variables proposicionales.

VVVVVVFVVFVF F V F F F F

VFVVVFVVFVFV F F V F F F

FVVVFVVFVVFFVF FVF F

FFVFVVVFFFVVV F F F V F

Así, todas las sentencias cuyas interpretaciones sean las de la clase C 11, por
ejemplo, p /\ q, -,(-,p v ,q}, ,(p ➔ ,q}, ... , son equivalentes entre sí.

La relación de equivalencia es importante, entre otras cosas, porque dos


sentencias que son equivalentes se pueden intercambiar.

1.4.2.3 Tautologías y contradicciones

Si nos fijamos en los ejemplos de tablas de verdad anteriores y en la tabla 1-4,


vemos que la tabla de verdad de una sentencia puede contener valores verdaderos
(V) y falsos (F), sólo valores verdaderos (V) o sólo valores falsos (F).

El primer caso corresponde a sentencias de tipo indeterminado, sentencias


que serán verdaderas para unas interpretaciones y falsas para otras.

La sentencia:

19
Capitulo 1: Introducción y lógica de proposiciones

pvq

es indeterminada, ya que su valor de verdad depende de la interpretación que le


asignemos. Lo mismo ocurre con la sentencia 0-31), como podemos ver en su tabla
de verdad 1-3.

El segundo caso corresponde a las tautologías o sentencias válidas, que son


verdaderas para cualquier interpretación. Para sentencias con dos variables
proposicionales, las tautologías pertenecen a la clase de equivalencia Co de la tabla
1-4. Por ejemplo, la sentencia (1-24) es una tautología.

También son tautologías las sentencias:

p V (,p) (1-33)

(que corresponde a la sentencia (1-5)) y la sentencia

S: ((p ➔ q)/\(q ➔ r)) ➔ (p ➔ r) (1-34)

cuya tabla de verdad corresponde a la tabla 1-5.

Tabla 1-5: Tabla de verdad de la sentencia: (( p ➔ q) /\ ( q ➔ r )) ➔ ( p ➔ r)

p q r p ➔ q q ➔ r (p ➔ q)/\(q ➔ r) p ➔ r s
V V V V V V V V

V V F V F F F V

V F V F V F V V

V F F F V F F V

F V V V V V V V

F V F V F F V V

F F V V V V V V

F F F V V V V V

20
1.4 El lenguaje de la lógica de proposiciones

El caso en que todos los valores de la tabla de verdad sean falsos


corresponden a las contradicciones. Para sentencias con dos variables
proposicionales las contradicciones pertenecen a la clase de equivalencia C 15.

Ejemplos de contradicciones son las sentencias

p A (-,p) (1-35)

-,[ ( p A q ) ➔ p] (1-36)

como se puede demostrar formando sus tablas de verdad (dejamos como ejercicio la
construcción de estas tablas de verdad).

1.5 Validación de sentencias proposicionales

Un problema importante para cualquier sistema lógico es el problema de


encontrar un procedimiento efectivo para verificar la validez o tautología de una
sentencia bien formada. Procedimiento que no es posible para todos los sistemas
lógicos.

El problema de encontrar un procedimiento de validación de las sentencias


bien formadas se denomina problema de decisión.

Para los sistemas en que se puede encontrar un procedimiento de decisión se


dice que el problema de decisión es resoluble y el sistema es decidible. Para los
sistemas en que no se puede encontrar un procedimiento de decisión se dice que el
problema de decisión es irresoluble y el sistema es indecidible.

La lógica de proposiciones es un sistema decidible. De hecho se conocen


varios procedimientos de decisión, vamos a estudiar tres de ellos: validación
mediante tablas de verdad, árboles semánticos y refutación.

1.5.1 Validación mediante tablas de verdad


-
De los procedimientos de validación el más simple e importante teóricamente
(aunque no siempre el más fácil de aplicar en la práctica) es el método de las tablas
de verdad. En la sección anterior ya hemos usado las tablas de verdad para verificar
la validez de las sentencias de la lógica de proposiciones. El procedimiento es
sencillo y para pocas variables proposicionales se puede hacer a mano.

21
Capitulo 1: Introducción y lógica de proposiciones

Así, para la sentencia:

S: [(p ➔ q)A r] ➔ [ ( -,r v p ) ➔ q ] 0-37)

que contiene tres variables, hay 2 3=8 diferentes interpretaciones. Su tabla de verdad
es la tabla 1-6.

Como vemos en la tabla 1-6, (1-37) es una sentencia válida, ya que su tabla de
verdad sólo contiene V's (columna de la derecha).

Aunque las tablas de verdad son el camino más directo para detenninar la
validez de una sentencia, algunas veces puede ser dificultosa su aplicación. Así,
cuando el número de variables proposicionales es grande, la tabla de verdad se
puede hacer demasiado grande, por ejemplo, para 20 variables proposicionales se
necesita una tabla de verdad de 220 (aproximadamente un millón) filas, lo cual es
intratable a mano.

Tabla 1-6: Tabla de verdad de la sentencia: [( p ➔ q) Ar] ➔[(-, r v p) ➔ q]

p Q r p ➔ q (p ➔ Q)Ar -, r -,rvp (-,rvp) ➔ q s


V V V V V F V V V

V :V F V F V V V V

V F V F F F V F V

V F F F F V V F V

F V V V V F F V V

F V F V F V V V V

F F V V V F F V V

F F F V F V V F V

Métodos alternativos, para verificar la validez de una sentencia, son la


técnica de los árboles semánticos y la validación mediante refutación.

22
1.5 Validación de sentencias proposicionales

1.5.2 Validación mediante árboles semánticos

Esta técnica la podemos ilustrar mejor con un ejemplo.

Ejemplo 1. Supongamos la sentencia:

S: (p➔q) ➔ ( -,p ➔ -,q ) (1-38)

Consideremos los dos posibles valores de verdad para p, representando la


elección mediante la forma:

1
pver~li,Jsa

2 3

En el nodo 2 de este árbol p es verdadera y en el nodo 3 es falsa.


Situándonos en el nodo 2 indicamos que p es verdadera escribiendo una V
debajo de cada aparición de p en la sentencia:

nodo 2: (p➔q) ➔ ( -,p ➔ -,q ) (1-39)


V V

A partir de p vamos calculando el valor de verdad para subsentencias cada


vez mayores. No podemos determinar el valor de verdad de p ➔ q porque
necesitamos también el valor de verdad de q, pero sí podemos determinar el
de -,p que será falsa, lo cual indicamos anotando F debajo de la conectiva -,.

nodo 2: (p ➔ q) ➔ ( -,p ➔ -,q ) (1-40)


V FV

~esto que -,p es falsa, mediante la regla del condicional (tabla 1-1),
determinarnos que -,p ➔ -,q es verdadera, aunque no conozcamos el valor
de verdad de -,q. Esto lo indicamos anotando V bajo la conectiva ➔
correspondiente.

23
Capitulo 1: Introducción y lógica de proposiciones

nodo 2: ( p ➔ q ) ➔ ( -,p ➔ --.q ) (1-41)


V - F V V

Puesto que el consecuente (--.p ➔ -,q) es verdadero, la sentencia completa es


verdadera:

nodo 2: ( p ➔ q) ➔ (-,p ➔ --.q) (1-42)


V V F V

En resumen, el resultado de este análisis en el árbol, es que en el nodo 2 la


sentencia completa es verdadera.

Ahora tendremos que seguir con el análisis correspondiente al nodo 3. En


él, p es falsa, lo cual anotamos en la sentencia:

nodo 3: (1-43)

Como pes falsa, las subsentencias --.p y p ➔ q son verdaderas (tabla 1-1):

nodo 3: ( p ➔ q ) ➔ ( --.p ➔ --.q ) (l-44)


F V VF

Pero aunque el antecedente de un condicional sea verdadero, no podemos


saber el valor de verdad del mismo sin conocer el del consecuente. Por
tanto, no podemos saber el valor de verdad de la sentencia completa sin
conocer el valor de verdad de -,p ➔ --.q, para lo cual necesitamos conocer el
valor de verdad de --.q.

Así, en el nodo :; consideramos los dos posibles valores de q:


1

24
J.5 Validación de sentencias proposicionales

En el nodo 4 q es verdadera con lo que --.q es falsa y --.p ➔ --.q es falsa, con
lo que la sentencia completa es falsa.

nodo 4: ( p ➔ q ) ➔ ( --.p ➔ --.q ) (1-45)


FVVFVFFFV

Por otro lado, en el nodo 5, q es falsa, aplicando las reglas semánticas de


forma análoga a las veces anteriores:

nodo 5: ( p ➔ q ) ➔ ( --.p ➔ --.q ) (1-46)


F F V VF VVF

Con lo que la sentencia completa en el nodo 5 es verdadera.

En resumen, como resultado de nuestro análisis, obtenemos el siguiente


árbol semántico para la sentencia (1-38):

Viendo este árbol semántico podemos indicar que la sentencia (1-38) no es


válida, ya que hay un nodo, el 4, etiquetado con F indicando que la
sentencia es falsa para esa interpretación.

1.5.3 Validación mediante refutación

Un método alternativo para verificar la validez de una sentencia, que es


conveniente cuando la validación se hace a mano, es el método de la refutación. El
cual consiste en suponer falsa la sentencia a validar y ver si ello supone una
contradicción.

Esta técnica también la vamos a ilustrar mediante un ejemplo.

Ejemplo 2. Vamos a comprobar la validez de la sentencia:

R: ( --.p V -,q ) ➔ --.( p /\ q ) (I-47)

Suponemos que R es falsa, lo cual indicamos anotando F bajo ➔:

25
Capitulo 1: Introducción y lógica de proposiciones

_( -,p V -,q ) ➔ -,( p /\ q ) (1-48)


F

Vamos a llegar a una contradicción demostrando que esto no puede ocurrir.

Según la regla del condicional, para que esta sentencia sea falsa, el
antecedente ( .p v -,q ) y el consecuente -,( p A q ) deben tener los valores
de verdad, verdadero y falso respectivamente, es decir:

( -,p V -,q ) ➔ -,( p /\ q ) (1-49)


V F F V

La verdad del antecedente (-,p v -,q) no nos permite determinar los valores
de verdad de sus subsentencias ( .p ) y (.q), ya que para que -,p v -,q sea
verdadera debe ocurrir que (,p) sea verdadera, o que (-,q) sea verdadera, o
ambas verdaderas. Antes de tratar estos casos separadamente vamos a
centrar nuestra atención en el consecuente.

Puesto que el consecuente -,( p A q ) es falso, su subsentencia p A q debe ser


verdadera, lo cual ocurre cuando p y q son ambas verdaderas:

( -,p V -,q ) ➔ -,( p /\ q ) (1-50)


V V V F F VVV

Volviendo al antecedente, como p y q son ambas verdaderas, -,p y -,q son


ambas falsas, según la regla de la disyunción .p v -,q sería falsa, pero al
principio habíamos detenninado que esta subsentencia era verdadera. Esta
.contradicción queda puesta de manifiesto con la notación que seguimos
sobre la sentencia:

( -,p V -,q ) ➔ -,( p /\ q ) (1-51)


FVVFFV FFVVV

Hemos llegado a una notación conflictiva VF. Por tanto tenemos una
contradicción bajo nuestra suposición original, que la sentencia R es falsa
bajo alguna interpretación. Por lo que concluimos que la sentencia (1-4 7) es
válida.

26
1.5 Validación de sentencias proposicionales

En el ejemplo anterior, posponiendo el tratamiento del antecedente se han


evitado algunos casos de análisis. Esto no siempre es posible, como queda reflejado
en algunos éjemplos que ilustramos al final del capítulo.

1.6 Leyes de la lógica de proposiciones

Hemos visto cómo comprobar si una sentencia es una tautología. Hay un


número infinito de tautologías. Ahora bien, del infinito número de tautologías
posibles hay algunas que son especialmente útiles para los procesos de deducción.
Éstas las agruparemos por afinidad y les damos el nombre de leyes o teoremas. Así
tenemos:

1. Ley de identidad:

p ➔ p (l-52a)
pttp (l-52b)

indica que cualquier sentencia es equivalente a ella misma.

2. Ley de la doble negación:

p tt -,-,p (1-53)

indica la equivalencia entre una sentencia y la negación de su negación.

3. Ley del tercio excluso:

pv-,p (1-54)

indica que siempre se verifica una sentencia o su negación.

4. Ley de contradicción:

-,( p /\ -,p) (1-55)

es la contraposición a la anterior, nunca se puede verificar a la vez una


sentencia y su negación.

5. Leyes de Morgan:

27
Capitulo 1: Introducción y lógica de proposiciones

-,( p /\ q ) tt ( -,p V -,q ) (l-56a)


-,( p V q ) tt ( -,p /\ -,q ) (l-56b)

Estas leyes fueron conocidas por Occarn e indican que la negación de


una conjunción se puede transfonnar en una disyunción de negaciones, y
que la negación de una disyunción se puede transformar en una
conjunción de negaciones.

6. Ley de reducción al absurdo:

(-,p ➔ ( q /\ -,q ) ) tt p (1-57)

utilizada para demostrar una conclusión partiendo de la negación de la


nusma.

7. Leyes de conmutación:

(pvq)tt(qvp) (l-58a)
(p/\q)tt (q/\p) (l-58b)
(pttq)tt(qttp) (l-58c)

indican que los términos de conjunciones, disyunciones y bicondicionales


se pueden conmutar.

8. · Leyes de asociación:

((p/\q)/\r)tt(p/\(q/\r)) (l-59a)
((pvq)vr)tt(pv(qvr)) (l-59b)
((pttq)ttr)tt(ptt(qttr)) (l-59c)

indican que los términos de conjunciones, disyunciones y bicondicionales


se pueden agrupar como se quiera.

9. Leyes de transposición:

( p ➔ q ) tt ( -,q ➔ -,p ) (l-60a)


( p tt q ) tt ( -,q tt -,p ) (l-60b)

indican que los términos de un condicional y de un bicondicional se


pueden intercambiar si se les hace preceder de la negación.

28
J. 6 Leyes de la lógica de proposiciones

10. Leyes distributivas:

(p/\(qvr))tt((p/\q)v(p/\r)) (l-6la)
(pv(q/\r))tt((pvq)/\(pvr)) (l-6l b)
(p ➔ (q/\r)) tt((p ➔ q)/\(p ➔ r)) (l-6lc)
(p ➔ (qvr))tt((p ➔ q)v(p ➔ r)) (l-6ld)

indican que una conjunción se puede distribuir en una disyunción; que


una disyunción se puede distribuir en una conjunción; y que un
condicional se puede distribuir tanto en una conjunción como en una
disyunción.

11. Ley de permutación

(p ➔ ( q ➔ r)) tt (q ➔ ( p ➔ r)) 0-62)

indica que el antecedente del consecuente de un condicional se puede


intercambiar por el antecedente.

12. Ley del silogismo:

(p➔q)➔((q➔ r) ➔(p➔ r)) (1-63)

13. Silogismo hipotético o transitividad:

((p ➔ q)/\(q ➔ r)) ➔ (p ➔ r) (1-64a)


((pttq)/\(qttr)) ➔ (pttr) (l-64b)

muestra la transitividad del condicional.

14. Leyes de inferencia de la alternativa o de los silogismos disyuntivos:

[ -,p /\ ( p V q ) ] ➔ q (l-65a)
[ p /\ ( -,p V -,q ) ] ➔ -,q (l-65b)

15: Ley del dilema constructivo:

[(pvq)/\(p ➔ r)/\(q ➔ r)] ➔ r (l-66a)

16. Segunda ley del dilema constructivo:

29
Capítulo 1: Introducción y lógica de proposiciones

[((p ➔ q)A(r ➔ s))A(pvr)] ➔ (qvs) (l-66b)

17. Ley del dilema destructivo:

[ ( -,p v -,q ) A ( r➔p ) A ( s➔ q) ] ➔ ( -,r v -,s ) (l-66c)

las tres últimas leyes (15, 16 y 17), y sobre todo la ley del dilema
constructivo, eran muy usadas en la antigua retórica y todavía son muy
comunes en las discusiones para poner al adversario en un aprieto.

18. Ley de exportación:

[(pAq) ➔ r]tt[p ➔ (q ➔ r)] (1-67)

indica que una parte del antecedente de un condicional puede pasar al


consecuente mediante un cambio de conectiva.

19. Ley de resolución:

[ (-,p v q ) ¡\ <p v r ) 1➔ <q v r ) (l-68)

esta ley nos permite eliminar las sentencias contradictorias. La usaremos


para automatizar el proceso de deducción.

20. Ley del bicondicional:

(pttq)tt[(p ➔ q)A(q ➔ p)] (1-69)

indica que un bicondicional se puede transformar en un par de


condicionales.

21. Condicional-disyunción:

( p ➔ q ) tt ( -,p V q ) 0-70)

muestra la equivalencia entre un condicional y una disyunción.

22. Condicional-conjunción

(p ➔ q ) tt -,( p ¡\ -,q ) (1-71)

30
1.6 Leyes de la lógica de proposiciones

muestra la equivalencia entre un condicional y la negación de una


conjunci9n.

23. Leyes de simplificación:

(pAq) ➔ p 0-72a)
p ➔ (pvq) (l-72b)

indican que una conjunción implica cualquiera de sus términos


componentes; y que una disyunción está implicada por cualquiera de sus
términos componentes.

24. Leyes de expansión:

(p ➔ q)tt[ptt(pAq)] 0-73a)
(p ➔ q)tt[q~(pvq)] (l-73b)

indican que los condicionales se pueden transformar en bicondicionales.

25. Modus ponendo ponens:

[(p ➔ q)Ap] ➔ q (1-74)

según el cual se puede afirmar el consecuente de un condicional si se


afirma su antecedente.

26. Modus tollendo tollens:

[ (p ➔q) ¡\ -,q 1➔ -,p (1-75)

según el cual se puede negar el antecedente de un condicional si se niega


su consecuente.

l. 7 Sistema axiomático del cálculo de proposiciones

Podemos formalizar la lógica de proposiciones transformando el lenguaje


lógico en un cálculo. Entendemos por cálculo la estructura formal de un lenguaje,
abstrayendo el significado.

31
Capítulo 1: Introducción y lógica de proposiciones

Al ser el cálculo un sistema de signos no interpretados, su estudio pertenece a


la sintaxis. Cuando se les da.un significado a los signos, el cálculo se transforma en
lenguaje y su estudio pertenece a la semántica.

Cuando el cálculo se construye sobre la base de unos axiomas, se dice que el


cálculo es un sistema axiomático. Axiomas son construcciones que se admiten como
verdaderas en todos los lenguajes que se pueden formalizar a partir de este cálculo.

La idea básica de construir un sistema axiomático es elegir como axiomas


unas pocas sentencias bien formadas que junto a unas reglas sirvan de puntos de
arranque para deducir otras sentencias bien formadas, denominadas teoremas o
leyes. Tales reglas son llamadas reglas de transformación. Algunas veces a los
teoremas se les denominan tesis, y otras veces la palabra teorema se usa tanto para
los axiomas como para los teoremas.

Por tanto, para definir un sistema axiomático hay que especificar:

1. Un alfabeto.

2. Un conjunto de reglas deformación.

3. Una lista de sentencias bien formadas seleccionadas como axiomas.

4. Una o más reglas de transformación.

En un sistema axiomático la demostración de una sentencia bien formada es


una secuencia de sentencias bien formadas, de las cuales, la última es la sentencia
que queremos demostrar y cada una de las sentencias bien formadas de la secuencia
es a su vez un axioma o es derivada de algún axioma o teoremas ya existentes. Una
sentencia bien formada es un teorema si y sólo si hay una demostración de la misma
en el sistema axiomático.

Probablemente el sistema axiomático mejor conocido en el cálculo de


proposiciones es el derivado del Principia Mathematica de Alfred North Whitehead
y Bertrand Russell (1910), denominado PM, y que vamos a exponer a continuación.

1.7.1 Alfabeto y reglas de formación del cálculo axiomático PM

Para el cálculo axiomático PM el alfabeto es el descrito en 1.4.1, compuesto


por las letras que designan variables proposicionales, las conectivas y los paréntesis.

32
l. 7 Sistema axiomático del cálculo de proposiciones

De las conectivas vistas en 1.4. l podemos quedarnos sólo con dos, como
conectivas primitivas, y el resto definirlas a partir de éstas como conectivas
definidas.

Si nos quedamos con las conectivas de negación '-,' y de disyunción 'v'


podemos definir las restantes a partir de éstas de la siguiente manera:

l. Conjunción '/\':

p /\ q = -,( -,p V -,q) (1-76)

2. Condicional' ➔':

p ➔ q=,pvq (1-77)

3. Bicondicional 'tt':

(1-78)

4. Disyunción exclusiva 'EB':

p EB q = ,( p tt q ) (1-79)

En resumen, el alfabeto para el sistema PM del cálculo de proposiciones


estará constituido por:

Símbolos primitivos

Letras sentenciales (p, q, r, s, pi, ql, ... )


Conectivas '-,' y 'v'
Paréntesis ' (' y ')'

Símbolos definidos

Conectivas'/\',' ➔', 'tt', 'EB'.

Las reglas de formación son las mismas del apartado 1.4.1.1, salvo la regla 3
que se ve reducida a "Si S y R son sentencias bien formadas, S v R es una sentencia
bien formada", ya que '/\', ' ➔', 'tt ', no son primitivas.

33
Capítulo 1: Introducción y lógica de proposiciones

l. 7.2 Axiomas y reglas de transformación

Para el sistema PM se eligen cuatro axiomas:

l. (pvp) ➔ p (l-80)

2. q ➔ (pvq) (I-81)

3. (pvq) ➔ (qvp) (I-82)

4. (p ➔ q) ➔ [(rvp) ➔ (rvq)] (1-83)

A partir de estos axiomas y aplicando las dos reglas de transformación


siguientes se puede demostrar cualquier teorema.

Regla de sustitución (Sust.), dice que:

"el resultado de reemplazar cualquier variable en un teorema por


una sentencia bien formada es un teorema". (1-84)

Regla de separación (Sep.) o del modus ponens, dice que:

"si S y ( S ➔ R ) son teoremas, entonces R es un teorema" (1-85)

Es importante notar que no hay que confundir esta regla con la tautología del
modus ponens (1-74).

Relativo a un criterio de validación, un sistema axiomático debe cumplir las


siguientes p~opiedades:

l. Debe ser lógico o razonable, en el sentido de que todo teorema es una


tautología.

2. Completo. Toda sentencia bien formada válida es un teorema y se debe


poder demostrar a partir de los axiomas.

3. Consistente. No se pueden demostrar como teoremas, sentencias bien


formadas que no sean tautologías. Así, si una sentencia bien formada es
un teorema, su negación no lo es.

34
J. 7 Sistema axiomático del cálculo de proposiciones

4. Por último, los axiomas y las reglas de transformación, deben ser


independientes, es decir, ningún axioma (regla de transformación) debe
ser derivable a partir de los otros.

Se puede demostrar que el sistema PM, tal como lo hemos dado aquí, cumple
las anteriores propiedades.

Quizás la propiedad más dificil de demostrar sea la independencia de los


axiomas; de hecho, originariamente Whitehead y Russell proponían cinco axiomas,
y sólo años más tarde se demostró que uno era redundante, se podía demostrar como
un teorema a partir de los otros axiomas, quedándose entonces con los cuatro
axiomas (1-80) a (1-83).

En exposiciones de lógica formal, el lugar de los axiomas es tomado por


"esquemas de axiomas", en el cual, en vez de presentar algunas sentencias bien
formadas en particular como axiomas, se indica que cualquier sentencia bien
formada en cierta forma es un axioma. Por ejemplo, en el sistema PM en vez del
axioma (l-80), podríamos tener el esquema de axiomas siguiente:

''Toda sentencia bien formada de la forma ( S v S) ➔ Ses un axioma" (1-86)

esquemas análogos pueden sustituir a los otros axiomas.

El número de axiomas se hace infinito, ya que cualquier sentencia que se


adapte al esquema de axioma es un axioma, pero por otro lado, la regla de
sustitución no es necesaria y sólo se necesitaría la regla de transformación del
modus ponens.

Este método no diferencia a los teoremas que se pueden obtener, pero en


· algunas ramas de lógica (aunque no en el cálculo de proposiciones), es más simple
trabajar con esquemas de axiomas que con axiomas particulares y reglas de
transformación.

1.8 Sistema inferencial del cálculo de proposiciones

La lógica se presenta, muchas veces, como una herramienta para analizar los
procesos de razonamiento del lenguaje ordinario. Así, el cálculo de proposiciones se
presenta como el método de deducción natural. El cual consiste esencialmente en un
grupo de reglas que nos permiten deducir unas conclusiones a partir de unas
hipótesis. Esto es lo que llamamos un sistema inferencia/.

35
Capítulo 1: Introducción y lógica de proposiciones

En un sistema inferencia! llamamos inferencias a "los procesos mediante los


cuales obtenemos una conclusión a partir de unas premisas de forma que el
razonanúento sea válido".

Una regla de inferencia es "la declaración de las condiciones bajo las cuales
se puede hacer una inferencia, así como el resultado de la misma" .El conjunto de
reglas de inferencia se completa con unas metarreglas que especifican cómo se
aplican las reglas. Estas metarreglas constituyen la estrategia del sistema dando el
orden de aplicación de las reglas, de elección de las premisas, de cómo se añaden las
conclusiones a las premisas para obtener nuevas conclusiones, etc.

Una inferencia que siga las reglas será una inferencia correcta, mientras que
si no las sigue será una inferencia incorrecta.

Así, veremos que una inferencia de la forma:

"De S ➔ R y de -,R deducimos que --.S" (1-87)

es una inferencia correcta. Por ejemplo, de las premisas "si el Madrid gana la liga
entonces juega la copa de Europa" y "el Madrid no juega la copa de Europa" se
deduce que "el Madrid no gana la liga".

En cambio, la inferencia:

"De S ➔ R y de -,S deducimos que -,R" (1-88)

es incorrecta. Esta inferencia corresponde a la llamada falacia de negar el


antecedente; consiste en negar el antecedente de una premisa condicional para
concluir con la negación del consecuente. Por ejemplo, de las premisas "si el Madrid
gana la liga entonces· juega la copa de Europa" y "el Madrid no gana la liga" no se
puede deducir que "el Madrid no juega la copa de Europa"; de hecho, puede jugar la
copa de Europa si ganó la copa de Europa el año anterior.

Otra falacia muy común es la/alacia de afirmar el consecuente, que consiste


en afirmar el consecuente de una premisa condicional para deducir la afirmación del
antecedente, por ejemplo:

"De S ➔ R y de R deducimos S'' (1-89)

36
l. 8 Sistema inferencia/ del cálculo de proposiciones

Éste setja el caso de deducir que "el Madrid gana la liga" a partir de las
premisas "si el Madrid gana la liga entonces juega la copa de Europa" y "el Madrid
juega la copa de Europa".

La forma habitual de representar una inferencia es poner cada premisa y la


conclusión en una linea y separar la conclusión de las premisas mediante una linea
horizontal. Por ejemplo la inferencia correcta (1-87) la pondremos de la forma:

(1-90)

-,S

donde las premisas aparecen en las dos primeras líneas, encima de la horizontal, y la
conclusión en la última línea, debajo de la horizontal. En algunos problemas, y, por
motivos de espacio, elegiremos la notación D(T, V) para indicar que la sentencia V
se infiere de la sentencia T, o que, de la T se infiere la V, con lo que el esquema
anterior quedaría como D((S ➔ R) /\ ,R, -8).

En muchos tratados lógicos, a la conclusión se la denomina consecuencia


lógica de las premisas. Así, en 1-90 -,Ses la consecuencia lógica de las premisas S
➔ Ry-,R.

Fonnahnente podemos decir que "Ces una conclusión o consecuencia lógica


de las premisas P l, P2, ... , Pn si y sólo si para cualquier interpretación J para la
que PI /\ P2 /\ ... /\ Pn es verdadera, C también es verdadera".

Se puede demostrar que C es una conclusión o consecuencia lógica de las


premisas P l, P2, ... , Pn si y sólo si la sentencia

( P l /\ P2 /\ ... A Pn ) ➔ C (1-91)

es una tautología. O bien, si y sólo si la sentencia

(1-92)

es una contradicción.

El establecimiento de reglas de inferencia nos lleva a comentar la


nomenclatura que es de uso corriente sobre la utilización del signo ' ➔'.

37
Capitulo 1: Introducción y lógica de proposiciones

Escribiremos los diferentes nombres más corrientes o expresiones usuales para


referirse a la implicación material_ y a sus cambios de orden, y para referirse a la
doble implicación.

Los nombres o expresiones de la implicación material son diversos y a pesar


de que no significan lo mismo que en la implicación formal (el nombre 'implicación
material' se lo puso B. Russell), se utilizan corrientemente, lo que no plantea
problemas de abuso de lenguaje, siempre que sepamos a qué nos estamos refiriendo:
en realidad el nombre 'implicación' (llamada también implicación formal) debería
reservarse para la deducción. La implicación material, o simplemente condicional,
debería leerse como 'si ... , entonces ... ' y no 'implica' ni 'por lo tanto', pero esto es
dificil de erradicar, ya que en lógica de proposiciones (y, como se verá, en lógica de
primer orden), cuando queremos simbolizar una sentencia cualquiera hacemos uso
de una letra, y dado que las reglas de deducción tienen un formato tautológico,
ambas cosas han contribuido a que la jerga específica de la teoría de la deducción se
aplique por igual a ésta que a la lógica de proposiciones. Sean S y T sentencias bien
formadas de la lógica. Entonces la sentencia S ➔ T, se puede leer (teniendo en
cuenta el abuso antes mencionado):

1) si S, entonces T. 2) S implica T. 3) S implica materialmente T. 4) S implica


directamente T. 5) si S, T. 6) S sólo si T. 7) no S, a menos que T. 8) T, a menos que
no S. 9) T, si S. 10) S es la hipótesis de T. 11) T es la tesis de S. 12) S es el
antecedente de T. 13) Tes el consecuente de S. 14) Ses condición suficiente para T.
15) T es condición necesaria para S. Para la deducción o implicación formal
específicamente: 16) S es la prótasis de T. 17) T es la apódosis de S.

Sea R la implicación 'S➔T, llamada 'directa' o 'primitiva' (con respecto a


las que se van a definir ahora). Entonces se llama contraria de R a '-,S➔-,T; se
llama recíproca de R a 'T➔S'; y se llama contrarrecíproca de R a '-,T➔-,S'.
Entonces:

1. La implicación directa y su contrarrecíproca son equivalentes entre sí.


La prueba de una contrarrecíproca para probar la directa, se llama
prueba por reducción al absurdo (la negación del consecuente deberá
implicar la negacióQ del antecedente, si la directa era correcta).

2. La implicación contraria y su directa no son equivalentes entre sí en


general, pero tampoco la negación de la directa es equivalente a la
contraria en general, ni, naturalmente, la negación de la contraria es
equivalente a la directa en general.

38
1.8 Sistema inferencia/ del cálculo de proposiciones

3. La implicación recíproca y su directa no son equivalentes entre sí en


general, pero tampoco la negación de la directa es equivalente a la
·recíproca en general, ni, naturalmente, la negación de la recíproca es
equivalente a la directa en general.

4. La implicación contraria de la directa y la recíproca de la directa son


equivalentes entre sí, ya que son mutuamente contrarrecíprocas una de
otra.

Observamos que la contraria de p es -,p (su negación), pero la contraria de


una implicación p➔q, no es ,(p➔q) (que seria su negación dada por p/\,q); la
negación de una implicación es más fuerte que la contraria de ésta (dada por
,p➔,q, o sea por pv-,q); la negación de una implicación, implica la contraria de
ésta, pero no al revés.

La doble implicación SttT puede leerse: 1) S si y sólo si T (o al revés). 2) S


equivale a T (o al revés). 3) Ses condición necesaria y suficiente para T (o al revés).
Así, suponga que en un problema que le proponen le dicen: 'Probar que una
condición necesaria para S es T (o que T es condición necesaria para S)', le están
pidiendo que pruebe S➔T. Si le dicen: 'Probar que una condición suficiente para S
es T (o que Tes suficiente para S)', le están pidiendo que pruebe T➔S. Si le dicen:
'Probar que S es necesaria y suficiente para r, le están pidiendo que pruebe la
equivalencia SttT, a través de la prueba de la necesidad, T➔S y de la suficiencia,
S➔T, en cualquier orden, pues S~T es (T➔S)l\(S➔n o bien (S➔nl\(T➔S),
indistintamente.

Observe que en el último párrafo se vuelve a cometer el abuso de lenguaje


citado al utilizar el mismo signo para la implicación formal o deducción y para la
implicación material. No hay oposición ni identidad en general entre una y otra.
Para algunos lógicos clásicos como Filón de Megara, lo correcto seria razonar con
las reglas de la implicación material, mientras que para su maestro Diodoro Crono
lo correcto seria razonar con las reglas de la implicación formal. Sencillamente
estaban hablando de cosas distintas utilizando las mismas palabras.

La expresión 'siempre que' es asimilable a la conjunción 'si'. No obstante la


palabra 'siempre' puede significar, abusivamente (por ser adverbio de tiempo), en
matemáticas 'cualquiera que sea un elemento del dominio al que nos estamos
refiriendo': así, 'esta función es continua siempre' significa 'esta función es
continua en todo punto del intervalo considerado'.

39
Capítulo I: Introducción y lógica de proposiciones

1.8.1 Reglas de inferencia

Podemos considerar tantas reglas de inferencia como leyes del cálculo de


proposiciones tengamos, es decir, infinitas. Ya que a cada ley le corresponde una
regla de inferencia. Pero aunque sean formas diferentes de decir lo mismo, no hay
que confundirlas. Una ley es una sentencia bien formada que pertenece al lenguaje
del cálculo de proposiciones y corresponde al enunciado de una sentencia válida de
inferencia. Una regla es el enunciado de una instrucción para realizar una inferencia
válida.

Aunque hay infinitas reglas de inferencia, en los tratados de lógica se


presentan conjuntos seleccionados de reglas como sistemas de deducción natural.

Así podemos seleccionar las siguientes reglas de inferencia:

l. Regla de separación (Sep.) o del modus ponens, también conocida


como regla de eliminación del condicional (RE ➔), que corresponde a
la ley modus ponens (1-74), la formulamos de la siguiente forma:

"Si un condicional y su antecedente se toman como premisas, se puede


inferir el consecuente como conclusión":

0-93)

También debemos advertir que, aun guardando cierta relación, esta regla
de inferencia no es igual que la regla de transformación del cálculo de
proposiciones que denominamos regla de separación (1-85). Ya que la
regla de separación dice que "si S y ( S ➔ R ) son teoremas, entonces R
es un teorema", mientras que la regla de inferencia de separación dice
que "S y (S ➔ R) son verdaderos, implica que R también lo es".

2. Regla de unión (Un.) o de la introducción de la conjunción (RI /\). Se


formula diciendo:

"Si dos sentencias se toman como premisas, se puede inferir su


conjunción como conclusión".

40
1.8 Sistema inferencia/ del cálculo de proposiciones

s
R (1-94)

Esta regla parece "intuitivamente" evidente; nada más "natural" que


afirmar la conjunción de dos sentencias si se han afirmado ya
separadamente las dos sentencias. Sin embargo, un examen más
detallado de la cuestión nos mostraría que la noción de "intuición" es
ajena a la de prueba y que es necesario en lógica que cada etapa de una
inferencia sea justificada por una regla.

3. Regla de inserción (lns.). Se formula diciendo:

"Cualquier ejemplo de tautología como los enumerados en l. 6 puede


servir de premisa en cualquier inferencia proposicional".

Por ejemplo:

(1-95)

es un razonamiento cuya conclusión no puede ser derivada de unas


premisas sino gracias a la regla de inserción. Y a que la regla de unión
nos permite deducir de las dos premisas de (1-95):

(1-96)

pero no nos permite deducir la conclusión (1-95). No obstante, la regla


de inserción nos permite insertar como premisa suplementaria la ley de
transitividad (l-64a):

(1-97)

y con la regla de separación nos permite deducir la conclusión de (1-95)


a partir de (1-96) y (1-97).

4. Regla de intercambio (lnt.). Se formula diciendo:

41
Capítulo /: Introducción y lógica de proposiciones

"Si se da un bicondicional como premisa, se puede inferir como


conclusión el resul~o de intercambiar sus componentes en cualquier
otra premisa":

(1-98)

Con ayuda de las tautologías enumeradas en 1.6 y de las cuatro reglas de


inferencia anteriores podemos realizar inferencias en la lógica de proposiciones.

El proceso de inferencia se efectúa según las normas siguientes:

1. Se simbolizan los enunciados y las conectivas, procurando unifonnar el


lenguaje.

2. Se indican en líneas separadas, las premisas precedidas de la letra 'P'


(PI, P2, ... ).

3. Se procede a derivar la conclusión a partir de las premisas. Cada


fórmula se escribe en una línea aparte, indicándose a la derecha de la
misma la inferencia y/o tautología que permite deducirla.

4. Se indica la conclusión precedida de la letra 'C'.

Ejemplo 3. Supongamos que nos dan las dos premisas siguientes:

Si Michel juega, el Madrid gana (l-99)

Si Michel no juega, el Madrid pierde (1-100)

y nos piden concluir que

El Madrid gana o pierde (1-101)

Podemos realizar la siguiente inferencia, donde hemos representado con las


letras 'J', 'G' y 'P' respectivamente a 'Micheljuega', 'el Madrid gana' y 'el
Madrid pierde'.

42
18 Sistema inferencia/ del cálculo de proposiciones

Pl: J➔G (I-102)


P2: -.J ➔ P (1-103)
3: Jv-.J lns. de (1-54) tercio excluso
lns. de (l-66b) dilema
4: [( (J ➔ G ) A ( -.J ➔ P ) ) A ( J v -.J)] ➔ ( G v P )
5: ( J ➔ G ) A ( -.J ➔ P ) Un. de Pl y P2
6: ( ( J ➔ G ) /\ ( -.J ➔ P ) ) /\ ( J v -.J) Un. de 5 y 3

Sep. de4y6
C: GvP (1-104)

Hemos puesto lns. para referimos a la regla de inferencia de inserción, Un.


para la regla de unión y Sep. para la regla de separación.

Éste no es el único conjunto de reglas de inferencia que se puede seleccionar


(en los ejercicios resueltos damos otro conjunto de reglas de inferencia). Pero sea
cual sea el conjunto de reglas de inferencia seleccionado, no es fácil su aplicación de
una forma automática; para cada problema es preciso tener una cierta "habilidad" o
"conocimiento", expresado en forma de metarreglas, para saber en qué orden aplicar
las reglas y a qué premisas.

En cualquier caso, el conjunto de reglas que se utilicen debe ser consistente y


completo. Estos conceptos son paralelos a los definidos para un sistema axiomático.

Así, decíamos que un sistema axiomático es completo cuando toda tautología


es un teorema, ahora diremos que "un sistema inferencia! es completo si para
cualquier conjunto de premisas, el sistema infiere toda conclusión que pueda
deducirse de las premisas".

Y al igual que un sistema axiomático es consistente si todo teorema es una


tautología, diremos que "un sistema inferencia! es consistente si para cualquier
conjunto de premisas, toda conclusión que infiera el sistema también se deduce de
las premisas".

Se puede demostrar que "todo sistema inferencia! cuyas reglas de inferencia


se puedan formalizar como teoremas de un sistema axiomático consistente es un
sistema inferencia! consistente". Éste es el caso del sistema inferencia! presentado,
cuyas reglas se basan en teoremas del sistema axiomático PM.

43
Capitulo 1: Introducción y lógica de proposiciones

1.8.2 El principio de resolución para la lógica de proposiciones

Se han desarrollado diversos métodos orientados al procesamiento automático


de las inferencias, el más conocido es el método de resolución debido a Robinson
( 1965). Aquí vamos a ver una particularización de este método para la lógica de
proposiciones. En el apartado 111.6.3 se estudiará el principio de resolución en
lógica de predicados, que es una generalización del que se estudia a continuación.

La regla de resolución en la que se basa este método se aplica a sentencias


en forma clausulada, siendo una cláusula una disyunción de literales (variables
proposicionales solas o negadas) y una sentencia en forma clausulada la conjunción
de cláusulas.

Por ejemplo, las sentencias:

-,p V q (1-105)
rV S V -,p (l-106)

son cláusulas, y la sentencia


( -,p V q ) /\ ( r V S V -,p ) (1-107)

está en forma clausulada.

Cualquier sentencia bien formada la podemos poner en forma clausulada,


para ello podemos seguir el siguiente procedimiento:

1. Eliminamos los condicionales y bicondicionales aplicando las


definiciones (1-77) y (1-78) de los mismos.

2. Aplicando las leyes de Morgan (l-56a) y (l-56b) introducimos las


negaciones, de forma que sólo afecten a variables proposicionales

3. Pasamos a formas clausuladas aplicando sucesivamente la ley


distributiva para la disyunción (l-6lb).

La sentencia obtenida estará en forma clausulada y la mayoría de las veces se


podrá simplificar. Así:

1. Si hay dos o más cláusulas idénticas, sólo tendremos que escribir una de
ellas,

44
1.8 Sistema inferencia/ del cálculo de proposiciones

2. Si aparece una cláusula de la forma p v ,p, que es una tautología, se


puede eliminar,

3. Si en una cláusula aparece el mismo literal varias veces, sólo hay que
escribirlo una vez.

Ejemplo 4. Pasemos a forma clausulada la ley (l-64a):

[(p ➔ q)A(q ➔ r)] ➔ (p ➔ r)

eliminamos los condicionales:

-,[ ( -,p V q ) /\ ( -,q V r ) ] V ( -,p V r)

introducimos las negaciones para que sólo afecten a variables


proposicionales:

[ ( p /\ -,q ) V ( q /\ -,r ) ] V ( -,p V r )

pasamos a forma clausulada:

[ ( ( p /\ -,q ) V q ) /\ ( ( p /\ -,q ) V -,r )] V ( -,p V r )


(((p V q ) /\ ( -,q V q ) ) /\ ( (p V -,r) /\ ( -,q V -,r ))] V ( -,p V r)

-,q v q es una tautología y se puede eliminar

( --p V p V q V r ) /\ ( p V -,p V -,r V r ) /\


( -,q V -,p V -,r V r )

Las tres cláusulas obtenidas son tautologías (en las tres cláusulas aparecen
-,p v p o -,r v r), lo que indica que la sentencia original es un teorema. Las
tres cláusulas las podemos eliminar, pero para no confundir con la cláusula
vacía, que corresponde a una contradicción, la simplificamos a una única
cláusula de la forma -,p v p.

La cláusula vacia corresponde a una cláusula que no contiene literales. Como


la cláusula vacía no tiene literales que puedan ser satisfechos por una interpretación,
la cláusula vacía es siempre falsa; la representaremos por A. Por otro lado, una
cláusula con un único literal es llamada una cláusula unitaria.

45
Capitulo 1: Introducción y lógica de proposiciones

1.8.2.1 Regla de resolución

La regla de resolución se aplica a dos premisas en forma de cláusulas,


denominadas generatrices, que contienen una variable proposicional sin negar en
una y negada en otra. La resolución consiste en construir otra cláusula, denominada
resolvente, formada por la disyunción de todas las variables proposicionales de las
generatrices menos la común, que aparece negada en una y sin negar en otra.

Por ejemplo, dadas las cláusulas:

PI: ,p V q V r (1-108)

P2: ,qvs (1-109)

La cláusula P 1 tiene la variable proposicional q que está negada en la


cláusula P2, la resolución consiste en borrar q y -,q de P 1 y P2 respectivamente y
hacer la disyunción del resto:

-ip V r V S (1-110)

Una propiedad importante de las resolventes es que cualquier resolvente de


dos cláusulas P 1 y P2 es una consecuencia lógica de P 1 y P2.

Así podemos definir formalmente que "una deducción de C a partir de un


grupo de cláusulas Ses una secuencia finita CI, C2, ... , Ck de cláusulas tales que
cada Ci es una cláusula de S o una resolvente de cláusulas anteriores a Ci, y
Ck=C".

Para completar el sistema inferencia! basado en la regla de resolución,


tenemos que dar Únas metarreglas como procedimiento de aplicación de la
resolución. El procedimiento más inmediato es el de la búsqueda exhaustiva que
consiste en aplicar la resolución a todas las parejas de posibles cláusulas, las
resolventes obtenidas añadirlas al conjunto de cláusulas, aplicar la resolución a
todas las nuevas parejas, y así sucesivamente hasta que no se obtengan nuevas
resolventes.

Ejemplo 5. Consideremos las tres cláusulas siguientes para realizar una búsqueda
exhaustiva:

Pl: -,p V QV r {I-111)

P2: -,q V S (1-112)

46
1.8 Sistema inferencia/ del cálculo de proposiciones

P3: pvr (l-113)

Aplicando la resolución a las dos cláusulas PI y P2 obtenemos la resolvente:

CI: -,pvrvs

Si se la aplicamos ahora a P 1 y a P3 obtenemos:

C2: qv r

(sólo hemos puesto una vez r de las dos que tendrían que aparecer).

Aplicando la resolución a P2 y a C2 obtenemos:

C3: sv r

Podemos ver, que ya no hay más resolventes diferentes, puesto que al aplicar
la resolución a P3 y CI obtenemos C3.

Se comprueba que el sistema inferencia! basado en la regla de resolución es


consistente, de hecho la regla de resolución se basa en el teorema (1-68).

Lo que no está tan claro es que sea completo. De entrada no lo es, puesto que
de dos premisas podemos deducir varias conclusiones, mientras que la resolución
sólo produce una (la resolvente). Ahora bien, si aplicamos repetidamente la
resolución, añadiendo las conclusiones al conjunto de premisas, y considerando
como inferencias, además de las resolventes que se van obteniendo, las conjunciones
y disyunciones de las premisas y resolventes, y las disyunciones de premisas y
conclusiones con cualquier literal, entonces se puede demostrar que se infieren todas
las conclusiones posibles, siendo en este caso completo.

Así para las premisas del ejemplo 5, además de las conclusiones obtenidas
como resolventes, tendríamos como conclusiones las sentencias: ,p v q v r v s; (
-,p V q V r) /\ ( -,q V S ).

1.8.2.2 Refutación

Si tenemos dos cláusulas unitarias, la resolvente de ellas, si la hay, es la


cláusula vacía A. Más todavía, si un grupo S de cláusulas son contradictorias,
podemos usar el principio de resolución para generar A a partir de S.

47
Capitulo 1: Introducción y lógica de proposiciones

La refutación consiste en deducir A a partir de S, en donde S está formado


por el conjunto de premisas (P 1, P2, ... , Pn) más la negación de la conclusión (-,C)
que queremos demostrar, es decir en comprobar que las premisas junto con la
negación de la conclusión (P 1 /\ P2 /\ ... /\ Pn /\ -,C) es una contradicción, lo cual
demuestra que la conclusión se infiere de las premisas. Si se verifica que P 1 /\ P2 /\
... /\ Pn es ya de por sí una contradicción, la resolución con cualquier -,C generará
siempre la cláusula vacía A, es decir, cualquier conclusión será válida, lo cual está
de acuerdo con el significado del condicional y de la deducción.

La refutación es un procedimiento útil cuando queremos comprobar si una


conclusión es válida o no, sin tener que generar todas las conclusiones posibles. Está
basada en la ley de reducción al absurdo (1-57).

Por ejemplo, si queremos probar que de p v q y -,q se deduce p, podemos


hacerlo mediante refutación considerando el grupo de premisas:

PI: pvq (1-114)

P2: -,q (1-115)

P3: -,p (1-116)

y deduciendo a partir de ellas, mediante refutación, la cláusula vacía A.

De (1-114) y (1-115), mediante resolución obtenemos p y aplicando otra vez


resolución con (1-116) obtenemos A.

Ejemplo 6. También podemos usar la refutación para comprobar la conclusión (l-106),


"el Madrid gana o pierde" a partir de las premisas (l-99) y (1-100). En este
caso tenemos como premisas a las sentencias (1-102) y (I-103):

PI: J➔ G
P2: -J ➔ P

y como conclusión la sentencia (1-104):

C: GvP

Ponemos las premisas en forma clausulada (en este caso, aplicando la


definición del condicional, las dos sentencias quedan en forma clausulada):

48
1.8 Sistema inferencia/ del cálculo de proposiciones

PI: -JvG (1-117)


P2: JvP (1-118)

a estas premisas les afiadimos la negación de la conclusión (1-109):

P3: -.( G v P) (I-119)

que en forma clausulada, corresponde a -.G /\ -,P, es decir, corresponde a


dos cláusulas: -.G y-.P:

P3': -.G (1-120)

P4: -.P (1-121)

Luego el conjunto de premisas son PI, P2, P3' y P4.

De PI y P3 ', mediante resolución, obtenemos:

-J (1-122)

De P2 y P4 obtenemos:

J (1-123)

Y de estas dos obtenemos la cláusula vacía A..

1.9 Ejemplos de aplicaciones de la lógica de proposiciones

Son muchas las áreas de conocimiento en las que de una forma u otra se
pueden aplicar los conceptos estudiados en lógica de proposiciones. Aparte de las
aplicaciones típicas en computación vamos a ilustrar las aplicaciones de la lógica de
proposiciones en otras áreas mediante algunos ejemplos.

Ejemplo 7. Supongamos una situación de crisis laboral en la que se plantea la siguiente


cuestión: "Si Las Cortes no aprueban la nueva ley, entonces la huelga no
cesará a menos que dure más de un día y el presidente de la empresa dimita.
¿Cesará la huelga si Las Cortes rehusan aprobar la nueva ley y la huelga
acaba de comenzar?".

Consideramos las siguientes proposiciones:

49
Capitulo 1: Introducción y lógica de proposiciones

p: Las Cortes rehusan aprobar la nueva ley


q: la huelga cesa
r: el presidente dimite
s: la huelga dura más de un día

Los hechos del ejemplo se pueden representar mediante las sentencias:

PI: (p ➔ (-,q V ( r /\ S))) (1-124)


Si Las Cortes no aprueban la nueva ley,
entonces la huelga no cesará a menos que dure
más de un día y el presidente de la empresa
dimita

P2: p (I-125)
Las Cortes rehusan aprobar la nueva ley
P3: -,s (1-126)
la huelga acaba de comenzar

Tomando estos hechos como premisas, ¿podemos concluir que ~~la huelga no
cesa"?, es decir, ¿podemos concluir -,q?.

Podemos contestar a esta cuestión de las tres formas siguientes:

a) Deduciendo la conclusión -,q:

PI: (p ➔ (-,qv(rAs))) (1-124)

P2: p (1-125)

P3: -,s (1-126)

4: <-,q v <r /\ s >>tt [ <-,q v r >/\ (-,q v s >1 lns. de (l-6lb)

5: p ➔ [(-,qvr)A(-,qvs)] lnt. PI y 4

6: ( -,q V r ) /\ ( -,q V S) Sep. de 5 yP2

7: [ ( -,q V r ) /\ ( -,q V S) ] ➔ ( -,q V S) lns. de (l-72a)

8: (-,qvs) Sep. de 7 y 6

9: (-,qvs)tt(q ➔ s) Ins. de (I-70)

10: q ➔ s lnt. de 8 y 9

50
1.9 Ejemplos de aplicaciones de la lógica de proposiciones

11: ( q ➔ s) /\ --.s Un. de 10yP3

12: [ ( q ➔ s ) /\ -,s 1➔ -,q lns. de (1-75)

Sep. de 11 y 12
C: --.q (1-127)

b) Comprobando la tautología (I-91) que en nuestro caso particular


quedaría como: (PI/\ P2 /\ P3) ➔ --.q, para lo cual construimos la tabla
de verdad 1-7 (se deja como ejercicio la obtención de los valores de
verdad de PI puestos en esta tabla); en la tabla de verdad se observa que
para toda posible interpretación, el valor de verdad de ( PI /\ P2 /\ P3 )
➔ --.q es 'V' con lo que se demuestra que es una tautología.

Otra posibilidad, que se deja como ejercicio, es la demostración de que (


P 1 A P2 A P3 ) ➔ -,q es un teorema del sistema axiomático del cálculo
de proposiciones. Se recomienda que para realizar esta demostración se
consideren demostradas todas las leyes dadas en el apartado 1.6.

c) Mediante refutación, poniendo las premisas y la negación de la


conclusión en forma·de cláusulas y deduciendo la cláusula vacía A..

Las premisas (1-124), (I-125) y (1-126) en forma de cláusulas quedan:

PI': --.p v --.q v r


PI": --.p V --.q V s
P2: p
P3: --.s

Aplicando la resolución a P 1" y P2 queda: --.q v s y volviendo a aplicar


resolución con P3 nos da la resolvente -,q que es la conclusión buscada.

Dejamos como ejercicio la obtención de las cláusulas PI' y PI"


correspondientes a la premisa PI.

51
Capitulo 1: Introducción y lógica de proposiciones

Tabla 1-7: Tabla de verdad de la sentencia: ( PI A P2 A P3) ➔-, q

r s PI P2 P3 -, PI A P2 A P3 ) ➔ -,

V V V V V V F F V

V V V F F V V F V

V V F V F V F F V

V V F F F V V F V

V F V V V V F V V

V F V F V V V V V

V F F V V V F V V

V F F F V V V V V

F V V V V F F F V

F V V F V F V F V

F V F V V F F F V

F V F F V F V F V

F F V V V F F V V

F F V F V F V V V

F F F V V F F V V

F F F F V F V V V

Ejemplo 8. En un laboratorio químico se pueden hacer las siguientes reacciones:

Mg0 + H2 ➔ Mg + H20

C+02 ➔ C02

52
1.9 Ejemplos de aplicaciones de la lógica de proposiciones

· El problema que se plantea es demostrar que si se disponen de algunas


cantidades de Mg0, H2, 02 y C se puede obtener H2CO3.

MgO, H2, 02 y C podemos considerarlas como proposiciones, y, en este


caso, las reacciones químicas las podemos considerar como sentencias:

Rl: ( MgO A H2 ) ➔( Mg A H2O ) (l-128)

R2: (CAO2) ➔ CQi (1-129)

R3: ( CO2 A H2O ) ➔ H2CO3 (1-130)

Como disponemos de MgO, H2, 02 y C, estos hechos los podemos


representar también como sentencias:

R4: MgO {I-131)

R5: H2 (1-132)

R6: Ü2 (1-133)

R7: e (1-134)

El problema es comprobar que H2 CO3 es una consecuencia lógica de las


premisas Rl a R7. Podemos, igual que en el ejemplo anterior, deducir la
conclusión H2CO3 a partir de las premisas Rl a R7, o bien construir la
tabla de verdad de ( Rl A R2 A R3 A R4 A R5 A R6 A R7 ) ➔ H2CO3, o
mediante refutación, deduciendo la cláusula vacía 11. a partir de Rl a R7 y
-,H2CO3.

Vamos a comprobar que H2CO3 es una consecuencia lógica de Rl a R7


mediante refutación.

Pasamos las premisas a forma clausulada.

Rl en forma clausulada corresponde a:

Rl: ( -,MgO v -,H2 v Mg ) A ( -,MgO v -,H2 v H2O ) (l-135)

Que corresponden a las dos cláusulas:

53
Capítulo I: Introducción y lógica de proposiciones

Rl': --.MgO v --.H2 v Mg (1-136)

Rl": --.MgO v --.H2 v H2O (I-137)

R2 y R3 en forma clausulada corresponden a:

R2: <-.e v --.02 v co2 > (1-138)

R3: ( --.CO2 v --.H2O v H2CO3 ) (1-139)

R4, R5, R6, y R7 están ya en forma clausulada.

Por tanto el conjunto de cláusulas a partir de las cuales hay que deducir A
es: Rl ', Rl", R2 (1-149), R3 (1-150), R4, R5, R6, R7 y--.H2CO3.

Aplicando la resolución repetidamente obtenemos:

8: --.MgO vH2O De Rl" yR5:

9: H2O De8yR4:

10· --.CO2 v H2CO3 DeR3 y 9:

11: --.02 V CQi DeR2yR7:

12: CO2 DeR6y 11:

13: H2CO3 De 10 y 12:

Y de 13 y --.H2CO3 obtenemos
14: la cláusula vacía.

Como ejercicio el alumno puede deducir H2CO3 a partir de Rl a R7 y


construir la tabla de verdad de (Rl /\ R2 A R3 A R4 A R5 A R6 /\ R 7) ➔
H2CO3_

54
Capítulo 11
Circuitos combinacionales

11.1 Introducción a los circuitos combinacionales

En este capítulo vamos a estudiar como pueden interconectarse las distintas


puertas lógicas para conseguir sistemas con un determinado comportamiento fisico.
Los elementos con los que se trabaja en un circuito combinacional tendrán dos
posibles niveles lógicos que normalmente serán el O y el 1 lógico, aunque estos
valores podrían ser distintos en función de los voltajes que el circuito fuese capaz de
soportar. Ahora bien, a la hora de trabajar con este tipo de circuitos digitales
conviene tener muy claro dos cosas:

1. Cualquier punto del circuito en un instante determinado puede estar en


uno de sus dos niveles lógicos o valores posibles, puesto que en un
circuito combinacional no hay estados intermedios.

2. El valor lógico de un punto del circuito simboliza el estado en el cual se


encuentra ese punto. Teniendo en cuenta que el valor puede ser constante
o variable, dependiendo de la situación del punto del circuito que se está
analizando. Habrá partes del circuito que siempre estén al mismo nivel
_ lógico y otras cuyo valor dependerá de las entradas de dicho circuito.

Una característica fundamental de los circuitos combinacionales es que el


valor de su salida sólo depende del valor de sus entradas y no de los que hubiera
podido tener con anterioridad. Diferencia realmente significativa con los circuitos
secuenciales que se estudiarán más adelante.

55
Capitulo JI: Circuitos combinacionales

11.2 Puertas lógicas básicas

Una puerta lógica es un sistema que realiza, o en donde se implementa, una


función lógica booleana y cada una de ellas representa uno de los bloques
elementales para la construcción de los distintos circuitos lógicos. El nombre de
puerta responde al hecho de que pueden tener una o varias entradas pero sólo una
salida. Y esta salida podrá tomar el valor lógico de O o 1 dependiendo del valor que
tengan las entradas. Los símbolos de las puertas básicas denominadas AND
(producto lógico), NOT (negación lógica) y OR (suma lógica) son los que se
muestran a continuación en la figura Il-1.

=D- =t>-
ANO NOT OR
Figura 11-1: Puertas lógicas básicas ANO, NOT y OR.

Cada una de ellas está totalmente relacionada con una de las conectivas
básicas comentadas con anterioridad en el capítulo I de la lógica de proposiciones,
como son de izquierda a derecha el producto lógico, la negación lógica y la suma
lógica. Por tanto, a la hora de codificarlas responderán a las mismas tablas de
verdad.

Con estas tres puertas se pueden simbolizar de forma sencilla las


construcciones fisicas necesarias para diseñar todos los circuitos lógicos que son
capaces de dar la salida, o la respuesta, de una función booleana dada.

Ejemplo 1. Por ejemplo, el circuito de la siguiente figura representa la función:


x' +y'z. (Donde la' representa la negación de la variable a la que afecta).

y
z--
En él, las dos primeras entradas x e y aparecen negadas y la variable z
directa. La negación de y se une con la variable z mediante un producto
lógico a través de una puerta AND, dando lugar al producto y'z, y el

56
11.2 Puertas lógicas básicas

resultado de esta puerta se une a la variable x negada a través de una suma


iógica, por ello la función que representa el circuito es x' + y'z.

Además de las tres puertas lógicas básicas anteriores es habitual añadir otras
tres más para facilitar el diseño de los distintos circuitos lógicos, fundamentalmente
porque resulta más rentable la fabricación de dichos circuitos con estas nuevas
puertas, que con las presentadas en la figura II-1.

Las puertas lógicas a las que se hace referencia representan las siguientes
funciones lógicas:

1. La negación del producto lógico, denominada puerta NAND. La función


lógica de esta puerta tiene salida O si las todas las entradas están a 1 y
salida 1 en caso contrario.

2. La negación de la suma lógica, denominada puerta NOR. La función


lógica de esta puerta tiene salida 1 si las todas las entradas están a O y
salida O en caso contrario.

3. La función o excluyente (o bien o exclusiva), denominada puerta ORX.


La función lógica de esta puerta tiene salida O si las todas las entradas
son iguales y salida 1 en caso contrario.

Cada una de estas puertas se representan en la figura II-2:

0-
NAND ( 1) NOR (,l,) OR EXCLUSIVO (EB)
Figura 11-2: Puertas lógicas NANO, NOR y ORX.

Recordando las leyes de Morgan, cada una de las puertas lógicas


representadas en la figura II-2 puede ponerse en función de las tres básicas (figura
11-1) y - viceversa, recordando las definiciones y las transformaciones.
Concretamente:

x + y= (x'y')'= NAND(x', y') (Il-1)

xy = (x' + y')'= NOR(x', y') (11-2)

57
Capítulo 11: Circuitos combinacionales

NAND(x, y)= (xy)' = x' + y' (Il-3)

NOR(x, y) = (x + y)' = x'y' (Il-4)

x EB y = x'y + xy' (Il-5)

Ejemplo 2. Un ejemplo de disefto de una estructura de puertas NAND-NAND y OR-


NOR que genera la función lógica E = xy'z + x'z' + x'y.

Aplicando las leyes de De Morg~ las estructuras resultantes son las que se
muestran en las figuras II-3 y 11-4:

E= xy'z + x'z' + x'y =

== ((xy'z)' (x'z')' (x'y)' )' (NAND-NAND)

= ((x'+y+z') (x+z) (x+y'))' = (x'+y+z')'+ (x+z)' +(x+y')' (OR-NOR).


X y z

Figura 11-3: Estructura NAND-NAND.

Nota: en ambas figuras, las expresiones (xy'z, x'z', etc) representan las
entadas a las puertas NAND y NOR de las mismas. Si en lugar de las
entradas representasen las salidas, todas ellas deberían ir negadas.

X y z

.,.__ _ _ __,__+---r~x+z
10-------,
x+y'

Figura 11-4: Estructura OR-NOR


58
11.3 Modelos matemáticos de los circuitos

11.3 Modelos matemáticos de los circuitos

Cuando se aborda la tarea de diseñar un circuito lógico para realizar una


determinada función, lo primero es especificar de forma muy clara la función que se
quiere generar, lo cual con frecuencia conduce a una tabla de verdad que representa
cada una de las salidas del circuito. Ahora bien, cada tabla de verdad podrá ser
representada por distintos circuitos equivalentes y en general trataremos de hacerlo
siempre con el que represente la función mínima, es decir, el que utilice el menor
número de puertas lógicas para su representación.

11.3.1 Formas booleanas

Dada un Álgebra de Boole binaria <{O, 1}, +, ., '> se llama variable


booleana a todos los símbolos que representan los elementos del conjunto {O, l }. Es
decir, toda variable booleana puede tomar los valores O o l . Por tanto, cuando Oy 1
representan los valores lógicos de un circuito estas variables booleanas no son otra
cosa que las variables lógicas del circuito.

Partiendo del alfabeto formado por el conjunto de las variables booleanas y


los símbolos de suma, producto y negación lógica se puede definir un lenguaje
siguiendo exactamente los mismos pasos que al hacerlo en lógica de proposiciones,
donde ahora cada una de las sentencias resultantes representará lo que llamamos
forma booleana. Por tanto, se puede decir que el lenguaje de las formas booleanas
es el mismo que el de la lógica de proposiciones cambiando las conectivas por los
símbolos de las tres operaciones básicas comentadas de suma, producto y negación.

Con todo lo dicho se establece que <(0,1) con {v, /\, -,}> se define como un
álgebra de Boole, ya que las operaciones definidas con estas conectivas son
. asociativas, conmutativas, tienen elemento neutro, son distributivas una frente a otra
y recíprocamente, y el neutro de cada una es el absorbente de la otra. Los neutros
son O para el v, y 1 para el /\. Además, 1 es absorbente frente al v y O es
absorbente frente al /\.

Con todo lo dicho se puede definir una forma booleana, como una clase de
equivalencia de proposiciones frente a la relación de equivalencia definida por: Dos
proposiciones son equivalentes si y sólo si tienen la misma tabla de verdad.

Por lo que se puede concluir que el conjunto de todas las formas booleanas es
un álgebra de Boole frente a las operaciones v, /\, -,. Los elementos neutros son,
respectivamente, la contradicción (forma booleana cuyos valores de verdad son

59
Capitulo 11: Circuitos combinacionales

todos ceros) frente al v, y la tautología (forma booleana cuyos valores de verdad


son todo unos) frente al/\.

11.3.2 Formas canónicas

Una proposición se dice atómica cuando se designa por una sola letra, es
decir, no contiene ninguna de las conectivas básicas, -,, v, y /\. Ejemplos: p, q,
r, ... ,etc, es decir, cualquier variable proposicional.

Por el contrario se denomina proposición molecular o no atómica a


cualquier sentencia bien formada de la lógica de proposiciones estudiada en el
capítulo l. Ejemplos: -,p, p➔q, pv-,p, A(p, q, r), etc.

Teniendo en cuenta las definiciones precedentes se define el producto


canónico (o minterm) de n variables como una forma booleana con n literales
(proposición atómica o la negación de una proposición atómica) de esas variables
unidos por conjunciones'/\'. Un ejemplo es la expresión con n=3:

X ' y' Z = -,X /\ -,y /\ Z (11-6)

A veces se representa por Il (producto booleano) así:

Il(x', y', z) = (x'y'z) (11-7)

El número de productos canónicos de n variables es 2n (variaciones con


repetición de 2 elementos, O y 1, tomados den en n).

11.3.2.1 Primera forma canónica

Se dice que una función dada se encuentra expresada en su primera forma


canónica cuando está formalizada como cualquier proposición molecular (o forma
booleana) compuesta por una "suma" de productos canónicos o mintenns diferentes.
Si se conoce la tabla de verdad que representa la función en cuestión la primera
forma canónica no es más que la suma de todos los productos (o minterns) cuya
salida tiene el valor lógico 1. _

Ejemplos de funciones expresadas mediante su primera forma canónica:

l. p➔q = -,pvq = p' + q.

60
11.3 Modelos matemáticos de los circuitos

2. p~q = (p~A(q➔p) = (p'+q)(q'+p) = p'q' + qq' + pp' + pq =


p'q' + pq (pues qq' = O, pp' = O), que es la primera forma canónica de la
equivalencia, en la que hay dos mintenns.

La representación de una función booleana en su primera forma canónica se


puede abreviar asociando un número en binario a cada producto canónico definido
en la función. De esta manera si una variable dada dentro de cada minterm se
encuentra negada es sustituida por un Oy si no está negada, se sustituye por un 1.

Ejemplo 3. Veamos el mintem x'yz que se escribe como 011,


que es interpretado como el número en binario que representa, el decimal 3.
De forma que x'yz se puede decir que se representa por el minterm 3, o bien
por m3,
o simplemente 3 (o bien 0·2 2 + l ·2 1 + l ·2°).

Ejemplo 4. Veamos el mintem xyz' que se escribe como 110,


que es interpretado como un número en binario, que en decimal es el 6.
De forma que xyz' se representa por el minterm 6, m6,
o simplemente 6 (o bien l ·22 + l ·2 1 + 0·2°).

El signo '+' (o sea la conectiva v) se sustituye en la primera forma canónica


por el signo sumatorio I:, que afecta a todos los mintenns de los que se compone la
forma canónica. Así, cuando el número de variables n = 3 y sus posibles
combinaciones o mintems son 2° = 8, la función booleana correspondiente por
ejemplo a la primera forma canónica:

I:(3, 6),
o bien I:(m3, m6)
es la función x'yz + xyz',
o sea, en binario O11 + 11 O,
que no es una suma, sino una notación o abreviatura.

En toda forma canónica de una función dada, el primer minterm es mO, es


decir, el producto con todas las variables negadas que componen la forma canónica.
Por ejemplo si se tienen tres variables seria 000, o bien, x'y'z'. Y el último mintem
seria m(2º - 1). Por ejemplo si se tienen tres variables seria m(23 - 1) = m(7) = 111

61
Capítulo JI: Circuitos combinacionales

= xyz. Es decir, el último mintem se forma con el producto de todas las variables
que componen la forma canónica tomando el valor de 1 lógico.

Ejemplo 5. Obtención de la primera forma canónica de una función booleana F dada, a


partir del conocimiento de su tabla de verdad:

Tabla D-1: Tablas de verdad de la función el ejemplo 5

p q r F

m0 o o o 1 ~

ml o o 1 1 ~

m2 o 1 o o
m3 o 1 1 1 ~

m4 1 o o o
m5 1 o 1 1 ~

m6 1 1 o o
m7 1 1 1 1 ~

Se puede decir que la primera fonna canónica de esta función F se


representará por:
:E(0, 1, 3, 5,. 7) = :E(m0, ml, m3, m5, m7),
o bien por la suma de m0 + ml + m3 + m5 + m7 =
p'q'r' + p'q'r + p'qr + pq'r +pqr.

11.4 Simplificación de funciones. booleanas mediante Karnaugh

Para encontrar formas booleanas equivalentes a una dada y más sencillas que
ella, podemos utilizar dos equivalencias:

1. Reducción de términos adyacentes. Si A es una forma booleana


cualquiera y x una variable booleana. Las formas booleanas del tipo

62
11. 4 Simplificación de funciones booleanas mediante Karnaugh

Ax + Ax', donde los sumandos sólo difieren en una variable, que


aparece complementada en una y directa en la otra se denominan
términos adyacentes. Esto es debido a que la expresión es equivalente a
A.

2. Idempotencia. Si A es una forma booleana cualquiera se dice que


A+A=A.

Un diagrama, tabla o mapa de Kamaugh es otra forma de dar la tabla de


verdad de una función booleana. El diagrama en cuestión tiene dos entradas y se usa
esencialmente para simplificar funciones booleanas de 3, 4 y 5 variables. Para 2, la
simplificación es trivial ya que es una de las 4 funciones de dos variables posibles y
para un número mayor de 5 se utilizan otros métodos más sencillos (más sencillos
que el de Kamaugh, lo que no significa que sean más sencillos 'per se').

El mapa de Kamaugh tiene las asignaciones colocadas de manera que, las que
corresponden a productos canónicos adyacentes están al lado unos de otros. Las
disposiciones de este mapa para los tres casos citados se ven a continuación. En
cada casilla se representa si está, o no, presente un minterm dado en la tabla de
verdad correspondiente. Si el mintem está entonces en la casilla correspondiente del
mapa de Karnaugh se pone un 1 y sino se pone un O. Cada casilla del mapa
corresponde por tanto a una línea de la tabla de verdad.

Así, para tres variables se tiene la figura 11-5, donde en cada casilla se ha
puesto el número que representa el valor del mintem correspondiente que debe
colocarse en ella. Por ejemplo, en la casilla de fila O y columna 11 se colocará un 1
si está el minterm 3 a valor lógico 1, o sea x'yz forma parte de la función que se
quiere representar y un O en caso contrario. El mapa de Karnaugh de 4 variables se
muestra en la figura 11-6, utilizando el mismo criterio.

xy/zt 00 01 11 10
00 o 1 3 2
x/yz 00 01 11 10 01 4 5 7 6
o o 1 3 2 11 12 13 15 14
1 4 5 7 6 10 8 9 11 10
Figura 11-5: Mapa de tres variables. Figura 11-6: Mapa de 4 variables.

63
Capitulo JI: Circuitos combinacionales

Para 5 variables, sí necesitarán 2 mapas de 4 variables asociados, tal y como


se muestra en la figura II-7. E! mapa de la izquierda sería para x = O y el de la
derecha para x = 1. De forma que al interpretar la función que el diagrama
representa habrá que tener presente la contigüidad que existe también entre los dos
mapas de 4 variables representados.

yz/tw 00 01 11 10 yz/tw 00 01 11 10
00 o 1 3 2 00 16 17 19 18
01 4 5 7 6 01 20 21 23 22
11 12 13 15 14 11 28 29 31 30
10 8 9 11 10 10 24 25 27 26

Figura 11-7: Mapa de cinco variables.

a' a' A a

ab 00 01 11 10

cd

e' 00 d'

c' 01 D

e 11 D

e 10 d'

b' b B b'

Figura 11-8: Diagrama del significado de adyacencia y continuidad.

Si nos fijamos en los distintos mapas de las figuras II-5, II-6 y 11-7, todos
ellos tienen una columna y una fila permutada, lo cual se debe al significado de la

64
//.4 Simplificación de funciones booleanas mediante Karnaugh

contigüidad o adyacencia que se ha comentado con anterioridad y que se pone


claramente de manifiesto en el siguiente diagrama (figura Il-8):

Ahora bien, una vez que se tenga una tabla de verdad dada mediante el
correspondiente diagrama de Kamaugh, normalmente se querrá obtener la expresión
lógica mínima que representa esa función. Para ello se debe agrupar sobre el mapa
el mayor número de unos posibles, siempre teniendo en cuenta que las agrupaciones
han de ser grupos de potencias de 2, es decir, 2°, 2 1, 22 , 23 , etc. Y a partir de ahí
obtener la función que los representa en relación con las variables asociadas en las
correspondientes filas y columnas.

A continuación se van a presentar una serie de ejemplos con mapas de tres,


cuatro y cinco variables.

Ejemplo 6. Sea la función l:(3, 5, 6, 7) de tres variables x, y, z. Representar el mapa de


Karnaugh asociado y obtener la función.

x/yz 00 01 11 10
o o
1 O

El mapa de Karnaugh de la función es el que se represen~_~µ la siguiente


figura. Para obtener la función mínima se debe agrupar sobre el mapa el
mayor número de unos posibles. Así, de la columna de 11 se tiene la
agrupación de dos unos que es la función yz (al agrupar dos unos desaparece
la variable que puede valer O o 1, que en este caso es x). De los dos primeros
unos de la segunda fila se obtiene xz e, igualmente, de los dos últimos unos
de la segunda fila se obtiene xy. Por tanto la función núnima resultante es la
suma de los tres productos.

Ejemplo 7. Sea la función xl(x2' + x4) + x3. Representar el mapa de Karnaugh de 4


variables asociado e indicar las agrupaciones pertinentes.

La solución será xlx2' + xlx4 + x3, que, por la propiedad distributiva, da la


función de partida, o sea, ya estaba simplificada. En el mapa, el primer
sumando se representará por un agrupamiento de 4 unos que se encuentran
en la cuarta fila. El segundo por otros 4 comunes a las dos últimas filas y a
las dos columnas centrales y el tercero por 8 unos situados en las dos
últimas columnas.

65
Capítulo JI: Circuitos combinacionales

xl14 00 01 11 10

x1x2
00 O O
01 O
11
10

xlx2' x3

Ejemplo 8. Supongamos que se tenga el siguiente mapa de Karnaugh de cinco


variables, donde la variable que no aparece en el mapa es xl, y esta
representa a O en el mapa de la izquierda y a 1 en el de la derecha. Obtener
la expresión mínima de la función booleana representada.

Las agrupaciones entre los dos mapas son las siguientes, teniendo en cuenta
las correlaciones entre el mapa de la derecha y el de la izquierda. En el
mapa de la izquierda, los cuatro unos de la segunda columna (xl 'x4 'x5) y
los cuatro unos de las dos últimas filas situados entre la primera columna y
la cuarta unidos por dos rectángulos de trazo discontinuo fino (xl 'x2x5').

x4x5 00 01 11 10 x4x5 00 01 11 10
x2x3 x2x3
•••••••
00 o 00 o
• ••
01 O 1
,-·--·---= ...... .
O o
_. r..~.~.!.~ ...
01 O : 1
••••••••
: O
.• ...o1 ·-:•
• •
1 l i O • 1• 1 .•

11 j i l : i
• 1
• 1
O :¡lj:
1 •
1 :
• •
! •
11 o
o
.....
o
• 1 •
o ••

o : 1 :••
••
•••
10 1 11
-····••■-
... . .............: .
•••••••••
10 • •
• • •• : ......
Si se tienen en cuenta los dos mapas se tiene: los cuatro unos enmarcados en
cuatro recuadros de trazo discontinuo grueso en las columnas segundas de
cada tabla y filas primera y cuarta (x3 'x4 'x5); los cuatro unos enmarcados
en dos rectángulos de trazo discontinuo grueso en las segundas columnas de
cada tabla (x2 'x4 'x5) y los cuatro unos enmarcados en dos rectángulos de
trazo discontinuo grueso en las dos cuartas columnas de cada tabla
(x2x4x5'). La función resultado es la suma de los cinco sumandos.

Ejemplo 9. Multiplicador binario de dos bits. Multipliquemos dos enteros comprendidos


entre O y 3, ambos inclusive, en binario (o sea, 00, 01, 10, 11). Debe haber 4

66
11.4 Simplificación de funciones booleanas mediante Karnaugh

entradas (dos por cada uno de los dos bits representantes de los
multiplicandos) y 4 salidas [máx. número= 9 = 1001]. Las 4 entradas las
- designamos por sl, sO, tl, tO; los números son slsO y tltO, sl yuxtapuesto a
sO y tl yuxtapuesto a tO, de acuerdo con el principio-notación del valor
relativo que dice que la segunda cifra de la izquierda vale 2 veces más (en
decimal sería 10 veces más), de manera que sO representa las unidades y sl
los pares (en decimal representaría las decenas). Las 4 salidas las
designamos por z3, z2, zl, zO (el número resultado de multiplicar estará en
binario, y vendrá representado por la yuxtaposición de ellas, o sea,
z3z2zlz0). Así tenemos:

s*t =z sl sO * tl tO z3 z2 zl zO

º*º=o o o * oo o o o o
O*l = O O O * O 1 o o o o
0*2 =O O O * 1 O o o o o
0*3 =O O O * 1 1 o o o o
l*O = O O 1 * OO o o o o
1•1 = 1 O 1 • O1 O O O 1

1*2 = 2 O 1 * 1 O O O 1 O

1*3 = 3 O 1 * 1 1 O O 1 1

2*0 =O 1 O * OO o o o o
2*1 = 2 1 O * O1 O O 1 O

2*2 = 4 1 O * 1 O O 1 O O

2*3 = 6 1 O * 1 1 O 1 1 O

3*0 = O 1 1 * OO o o o o
3*1 =3 1 1 * O1 O O 1 1

3*2 =6 1 1 * 1 O O 1 1 O

3*3 = 9 1 1 * 1 1 1 O O 1

67
Capitulo JI: Circuitos combinacionales

de donde se pueden obtener los diferentes diagramas de Kamaugh. Para z3


{mapa superior izquierdo), para z2 {mapa superior derecho), para zl {mapa
inferior izquierdo) y para zO (mapa inferior derecho):

tlt0 00 01 11 10 tlt0 00 01 11 10
sls0 sls0
00 o o o o 00 o o o o
01 O o o o 01 O o o o
0o
11
10

tlt0
O
O

00 01
º
o
11
º
o
10
11
10

tlt0
O
O

00
o
o
01
o11 10
s1s0 s1s0
00 o o o o 00 o o
01 o o 01 o o
11 o 11 o o
10 o o 10 o o o o

de donde se obtienen:

z3 .:._ sOs ltOtl (II-8a)


z2 = slsO'tl + sltltO' = sltl(sO' + tO') (Il-Sb)
zl = sl 'sOtl + sOtltO' + slsO'tO + sltl 'tO = sOtl(sl' + tO') + sltO(sO' + tl ')
(Il-Sc)
zO = sOtO (11-Sd)

11.5 Segunda forma canónica

Se define suma canónica o maxterm de n variables como una forma booleana


con n literales unidos por 'v'. Ejemplo.: x' + y' + z = -,x v -,y v z (con n = 3), que
a veces, se representa como I:(x', y', z). El número total de sumas canónicas es
igual al número de productos canónicos.

68
11.5 Segunda forma canónica

Ahor_a bien, a la forma booleana compuesta por un producto de maxtenns


diferentes se le denomina segunda forma canónica (o forma canónica en producto
de sumas). Los maxterms se representan por M's al igual que los minterns lo hacían
conm.

Al igual que ocurría con la primera forma canónica, toda función booleana o
proposición molecular puede ser representada por su segunda forma canónica (pues
ambas tienen la misma tabla de verdad, es decir, son totalmente equivalentes).
Sabiendo que la única tautología (todos sus valores 1) con n variables es la forma
que tiene todos los 2"n minterms (y ningún maxterm). Y la única contradicción con
n variables es la forma que tiene todos los 2"n maxtenns (y ningún minterm).

Para poner una forma booleana f en 2ª forma canónica, se deben seguir los
siguientes pasos:

1. Se escribe la primera forma canónica, que tendrá la forma de su


complemento o negación f ', -,f, (o sea, en la tabla de verdad se eligen
los mintenns cuyo resultado es O). Así, la lª forma canónica de esta
negación será f' = I:(Il(Li)), donde Li representa un literal.

2. Se aplica las leyes de De Morgan y se obtiene f = Il(I:(Li')) y, como f'


es única, f también lo es.

Otra forma más práctica es asociar a cada maxterm un número decimal,


mediante la asignación del complemento a 1 del minterm en binario asociado a él.

Ejemplo JO. x +y'+ z' es un maxterm que sólo vale cero para 011.
Representa el número decimal 3, o sea, el minterm xy'z'
que es el número binario 100, cuyo complemento a 1 es 011.
Es decir, x +y'+ z' es el maxterm M3.

Ejemplo 1J. x' +y'+ z es un maxterm que sólo vale O para 110.
Representa el número decimal 6, o sea, el minterm x'y'z
que es el número binario 001, cuyo complemento a 1 es 110.
Es decir, x' + y' + z = M6.

Ejemplo 12. Sea f = (pvq) ➔ r.


Los minterms a los que les corresponde O son m2, m4 y m6.

69
Capitulo JI: Circuitos combinacionales

Eso significa que--.f = --.((pvq) ➔ r) (que es la negación de t) sería.


m2 + m4 + m6. ( 1ª forma canónica de --.t).
Así:
f = --.(m2 + m4 + m6) = (--.m2)(--.m4)(--.m6) =
= --.(p'qr')·--.(pq'r')·--.(pqr') = (p + q' + r)(p' + q + r)(p' + q' + r).
Entonces, si C significa 'complemento a 1',
C(l0l)C(0ll)C(OOl) = (010)(100)(110) = M2M4M6 y/o Il(M2, M4, M6).

Concluyendo como se deduce de los ejemplos, para simplificar por Kamaugh


en producto de sumas, se obtiene la tabla de su negación en minterms y se minimiza
por Karnaugh, uniendo ahora los ceros en lugar de los unos.

A partir de la obtención de la segunda forma canónica y debido a la


aplicación de las leyes De Morgan se define la función NOR, que para dos variables
es NOR(p, q) = p.J,q = -,(pvq) = -,p/\-,q. De la misma manera la función NANO,
que para dos variables es NAND(p, q) = ptq = plq = -,(p/\q) = -,pv-,q (operador
de Sheffer).

Conocidas estas dos nuevas funciones lógicas complemento de las dos básicas
OR y ANO, se establece que todas las funciones booleanas se pueden escribir como
una expresión sólo con NOR o sólo con NANO.

Por otro lado se pueden definir los operadores NAND y NOR. Estos
operadores coinciden con las funciones NOR y NANO para dos entradas. Pero sólo
para dos.

p1.J,p2.J, .. ,.J,pn = NOR(pl, p2, ... , pn) - ,(plvp2v ... vpn) -


-,p l/\ -,p2/\ ... /\,pn = NINGUNO DE LOS pi.

pltp2t ... tpn =NAND(pl, p2, ... , pn) = ,(pl/\p2/\ ... /\pn) =
-,plv-,p2 v ... v-,pn = A LO SUMO n- 1 de los pi= ALGUNO NO.

Las puertas lógicas pueden tener más de dos entradas. Para elaborarlas se
utilizan dos operadores llamados NANO y NOR, que no tienen en general que ser
coincidentes con varias funciones NANO y NOR dispuestas sucesivamente. Los
operadores NANO y NOR se representan y definen, respectivamente, mediante la
flecha hacia arriba (o barra) y la flecha hacia abajo, de la siguiente manera:

70
Il5 Segunda forma canónica

NAND(x, y, ... ) = x I y I z 1- .... = x' + y' + z' + ... . (Il-9)

NOR(x, y, ... )= x ,J, y ,J, z ,J, .... = (x +y+ z + .... )'. (11-10)

Ambos operadores funcionan como operaciones 'completas'. Cualquier


función booleana puede expresarse utilizando uno solo de los operadores, ya que
para dos variables coinciden, respectivamente, con las funciones NANO y NOR (las
cuales sólo se aplican a 2 variables). Aunque tengan el mismo nombre, la función
actúa de manera diferente que el operador ya que no hay asociatividad. Mediante
tablas de verdad puede verse que:

(x I y) 1 z t:- x 1 (y I z) * x I Y I z (Il-11)

(X ,J, y) ,J, Z :/:- X ,J, (y ,J, Z ) :/:- X ,J, y ,J, Z (Il-12)

11.5.1 Tercera y cuarta forma canónica

Si la expresión se hace sólo con puertas NANO, se denomina tercera forma


canónica. Se obtiene de la primera forma canónica aplicando las leyes De Morgan.

Del mismo modo si la expresión se formaliza sólo con puertas NOR se


denomina representación en su cuarta forma canónica. Se obtiene de la primera
forma canónica mediante el teorema aplicando sucesivas veces las leyes De Morgan.

Ejemplo 12. Dada la función lógica F = (A + (BC)') (D + BE)', expresarla como


producto de sumas. Y también en su tercera y cuarta forma canónica.
Para ello aplicamos las leyes De Morgan, para lograr que el complementario
aparezca sólo sobre variables simples:
F = ( A + ( BC ) ' ) ( D + BE ) ' =
=(A+ B' + C') ( D'(BE)') =
=(A+ B' + C' ) ( D'(B' +E')). (II-13)

Aplicando la distributividad, se tiene:


-F =(A+ B' + C') (D'B' + D'E') =(A+ B' + C') D' (B' + E'). (11-14)
Representación en producto de sumas.

Si se quiere obtener la representación en la tercera forma canónica se parte


de la base que F = F'' con F expresada en su primera forma canónica, y
entonces:

71
Capítulo JI: Circuitos combinacionales

F = [ ( A + ( BC ) ' ) ( D + BE ) ' ] ''


=
= [(A+ B' + C') _(D'B' + D'E')] " =
= [AD'B' + AD'E' + B'D' + B' D' E'+ C' D'B' + C' D'E'] " (11-15)

Ahora aplicamos De Morgan a la primera negación y se obtiene:


F = [ ( AD'B' )' ( AD'E' )' ( B'D' )' ( B'D'E' )' ( C' D'B' )' ( C' D'E' )' ]'
(11-16)
Que ya es una estructura sólo con puertas NAND, si quiere la de puertas
NOR se ha de seguir operando.
F = [ (A'+ D + B) (A'+ D +E) ( B + D) ( B + D +E) ( C + D + B)
(C+D+E)]' =
= ( A' + D + B )' + ( A' + D + E )' + ( B + D )' + ( B + D + E )' +
( C + D + B )' + ( C + D +E)' (11-16)
que ya es una estructura con puertas NOR

72
Capítulo 111
Lógica de predicados de primer orden

111.1 Introducción

En el razonamiento lógico hay situaciones que son imposibles de expresar en


lógica de proposiciones. Por ejemplo, el clásico silogismo:

todos los hombres son mortales (ill-1)


Sócrates es un hombre
luego Sócrates es mortal

En este silogismo hablamos de propiedades de individuos: la propiedad de ser


hombre y la propiedad de ser mortal. Y estas propiedades se pueden aplicar a un
individuo cualquiera (una variable) o a uno concreto (una constante). Es decir, es
necesario introducir la idea de variable ya que hay razonamientos imposibles de
expresar en lógica si no es formalizando esa idea.

Otros enunciados para los que es necesario ampliar la lógica de proposiciones


son los que se refieren a relaciones entre individuos. Por ejemplo, en "Juan enseña a
Pedro" se establece una relación unidireccional ("enseña a") entre dos individuos
determinados (dos constantes), en "algunos hombres enseñan a Pedro" la relación es
entre una variable (hombre) y una constante (Pedro), y en ''todos los hombres
enseñan a alguien" es una relación entre dos variables.

También se pueden encontrar enunciados que establecen relaciones entre un


número mayor de sujetos. Por ejemplo, cuando decimos ''Juan pide dinero a Teresa"

73
Capítulo ///: Lógica de predicados de primer orden

establecemos una relación ternaria ("pide") entre tres constantes (Juan, dinero y
Teresa).

Para cumplir con todas estas demandas se usa una lógica llamada de
predicados. Esta lógica de predicados de la que trata este capítulo es la llamada
lógica de predicados de primer orden porque los predicados no pueden cuantificarse,
ni utilizarse como variables. Si esto no es así y los predicados se pueden cuatificar o
utilizar como variables, la lógica de predicados es de orden superior y se estudio se
encuentra fuera de los propósitos de este libro.

111.2 El lenguaje de la lógica de predicados

El lenguaje que usaremos para la lógica de predicados posee una estructura


similar al presentado en lógica de proposiciones. De hecho es una ampliación del
lenguaje de lógica de proposiciones en el que se incluyen los conceptos y hechos
indicados anteriormente para cumplir las nuevas demandas.

111.2.1 Predicados, fórmulas atómicas y sentencias

Un predicado es la formalización de una propiedad o de una relación. Para


expresar propiedades se utilizan predicados que tienen un solo argumento
(constante o variable) y por ello se llaman monódicos. Por ejemplo: "x es un pato"
se puede expresar como P(x) (o también Px, si no hay posibilidad de confusión).

La formalización de las expresiones en lógica de predicados es similar a la de


la lógica de proposiciones. De la misma forma que en lógica de proposiciones
construíamos sentencias enlazando variables proposicionales con las conectivas,
aquí lo haremos enlazando fórmulas atómicas con las mismas conectivas. Fórmula
atómica es un predicado seguido por sus argumentos, por ejemplo A(x). Una
fórmula atómica también será una sentencia.

Mientras que en lógica de proposiciones podíamos interpretar las variables


proposicionales como verdaderas o falsas, ahora no siempre es posible hacerlo. Por
ejemplo, si se tiene un predicado monádico, su valor de verdad o falsedad
normalmente dependerá del valor que tome la variable: si se dice "x es un animal", o
formalmente A(x), el resultado será verdadero o no, dependiendo del sujeto x.

En general, se dice que una sentencia es cerrada si todas las variables que
intervienen en las fórmulas atómicas que la componen están cuantificadas. En caso
contrario, diremos que la sentencia es abierta.

74
Ill2 El lenguaje de la lógica de predicados

Un modo obvio de cerrar una sentencia abierta consiste en fijar valores para
las variables_ que intervienen en ellas. En el último ejemplo, si se hace x = rana, la
sentencia (en este caso, fónnula atómica) A(x) es verdadera, y si x = ciprés, A(x) es
falsa.

Pero las sentencias pueden ser también verdaderas o falsas sin que tengan que
referirse exclusivamente a constantes. Por ejemplo, la sentencia ''todos los hombres
son mortales" es verdadera y, por tanto, cerrada. Esto es así porque la propiedad
que se indica sobre la variable es válida para todos los valores de ésta. Para ello es
necesario añadirle algo que exprese esta validez para cualquier valor de x, cerrando
de ese modo la sentencia. Ese algo se llama cuantificador universal. Otro caso es el
de la sentencia "algunas plantas tienen flores", que también es verdadera y, por
tanto, cerrada. Al signo que ayudará a cerrar esta sentencia se le llama
cuantificador existencial.

Aunque aún no hemos entrado en el campo de la semántica, por lo visto hasta


ahora se puede concluir que sólo a las sentencias cerradas se les puede dar una
interpretación ("verdadera" o "falsa", en el caso binario). En lo sucesivo, salvo que
digamos lo contrario, se supondrá que todas las sentencias son cerradas. De hecho,
en otros textos, el nombre de "sentencia" se reserva para lo que aquí se llama
"sentencia cerrada", y "fórmula bien formada" (en los libros escritos en inglés, se
denomina "wff (well fonned formula)") para cualquier "sentencia".

111.2.2 Cuantificadores

Representaremos el cuantificador universal con el símbolo clásico '\¡/'


seguido de la variable a cuantificar. Para delimitar el alcance de la cuantificación, la
sentencia que se cuantifique se pondrá entre paréntesis. Los paréntesis se podrán
. suprimir cuando no exista ninguna posibilidad de confusión. Por ejemplo,

\¡/x(Hx ➔ Mx) (Ill-2)

es una sentencia cerrada, que formaliza la frase "para todo x, si x tiene la propiedad
H, entonces tiene la propiedad M", mientras que

\¡/xHx ➔ Mx (ID-3)

es una sentencia abierta, "si todos los x tienen la propiedad H, entonces x,


cualquiera, tiene la propiedad M", lo mismo que

\¡/xHx ➔ My (111-4)

75
Capitulo JI/: Lógica de predicados de primer orden

"para todos los x, si x tiene la propiedad H, entonces cualquier 'y' tiene la


propiedad M", que viene a ser lo mismo de antes, en el caso de que 'x' e 'y'
tuvieran un rango común. ·

El otro cuantificador es el cuantificador existencial, que se representa con el


. un ... tal que ... ." .
' bolo '3' , y que se puecle leer como "existe
sun

En realidad, bastaría con uno solo de los dos cuantificadores, y si usamos los
dos es por comodidad (por acercar el lenguaje lógico al lenguaje natural). En efecto,
cada uno de ellos puede expresarse en función del otro. Por ejemplo, decir que
''todos los individuos tienen cierta propiedad" es equivalente a decir que "no es
cierto que exista algún individuo que no tenga esa propiedad":

\fxPx = -,3x(-,Px) (ill-5)

De manera similar decir que existe un x (al menos) que tenga cierta propiedad
es equivalente a decir que no es cierto que para todos los individuos la propiedad no
seda:

3xPx =-, \fx(-,Px) (III-6)

Con el uso de los cuantificadores se pueden describir los cuatro modelos


básicos de enunciados de la lógica clásica:

l. Enunciado Universal Afirmativo, que en la lógica clásica se conoce por


la vocal A y cuya formulación es

\fxPx [Todos los x son P] (Ill-7)

2. Enunciado Universal Negativo, que en la lógica clasica se conoce por la


vocal E y cuya formulación es

\fx (-,Px) [Ningún x es P] (III-8)

3. Enunciado Particular Afirmativo, que en lógica clásica se conoce por la


vocal I y cuya formulación es

3 xPx [Algún x es P] (111-9)

76
III 2 El lenguaje de la lógica de predicados

4. Enunciado Particular Negativo, que en lógica clásica se conoce por la


vocal O y cuya formulación es

3 x( -,Px) [Algún x no es P] (ID-10)

Esta lógica de predicados de la que trata este capítulo es la llamada lógica de


predicados de primer orden porque los predicados no pueden cuantificarse, ni
utilizarse como variables. Si esto no es así y los predicados se pueden cuantificar o
utilizar como variables, la lógica de predicados es de orden superior y se estudio se
encuentra fuera del propósito de este texto.

Respecto a la nomenclatura que se se usa con el signo ' ➔', de acuerdo con lo
dicho al final de la introducción de 1.8, la contraria de una sentencia cuya operación
lógica principal esté sujeta a cuantificación ('v es una extensión de /\ y 3 es una
extensión de v para dominios no finitos) es su negación, aunque en su interior lleve
un signo de implicación: Así, la contraria de 'vx(Px➔Qx) es -, 'vx(Px➔Qx), o sea
3x(PX/\,Qx); en cambio la contraria de una sentencia de lógica, cuya operación
fundamental sea una implicación, no es su negación. Por ejemplo, sea la frase
R: 'vxPx ➔ 3xQx; su contraria es -, 'vxPx ➔ -,3xQx (como vimos antes), o sea
3x-,Px ➔ 'vx-,Qx; la recíproca de R (que es equivalente a la contraria de R) será
3xQx ➔ 'vxPx; pero su negación será -,(v'xPx ➔ 3xQx) (que, introduciendo el-,,
queda 'vxPx /\ -,3xQx, es decir v'xPx /\ v'x-,Qx).

111.2.3 Funciones

Una.función es una relación de correspondencia entre dos conjuntos, y, en el


caso de funciones lógicas, dichos argumentos son entidades lógicas. Una función en
lógica de predicados es una función lógica puramente matemática definida en el
universo del discurso. Las funciones, como los predicados, tienen argumentos que
pueden ser constantes o variables. Pero, a diferencia de los predicados, no
representan ninguna propiedad o relación entre los argumentos que pueda
interpretarse como verdadera o falsa. Es una ayuda para la expresión de relaciones.

Por ejemplo, podemos definir la función m = "madre". Aplicada a un


individuo, x, nos dará como resultado otro individuo, m(x) (su madre). Además se
define el predicado de igualdad l(x,y), que es verdadero si x es igual a y. Es posible
aplicarlo al caso de y = Felipe II y x = Isabel de Portugal; en ese caso l(x,m(y))
será verdadero, ya que la madre de Felipe II era Isabel de Portugal.

77
Capitulo ///: Lógica de predicados de primer orden

Cada función o símbolo de predicado tiene asociado un número entero


positivo llamado su índice, que indica cuántos argumentos debe tomar la función.
Una función o predicado de índicé uno se llama unitaria, de dos binaria y de tres
ternaria. Si el índice es n se le llama función o predicado n-aria.

111.2.4 Símbolos

Los símbolos de lógica de predicados son los mismos que se utilizan en lógica
de proposiciones, más algunos para describir las nuevas demandas de la lógica de
predicados. Así, a los símbolos introducidos en el apartado l.4.1 tendremos que
añadir:

1. Los símbolos de funciones f, g, h, ....... .

2. Los símbolos de predicados P, Q, R, ... .

3. Los símbolos de cuantificadores 3, V

111.2.5 Semántica

Lo dicho en el apartado 1.4.2 sobre semántica en lógica de proposiciones es


extensible a la lógica de predicados, pero existen diferencias debido a la necesidad
de cerrar las sentencias abiertas y esto depende del tamaño del universo del discurso
(el conjunto de valores posibles que se asignan a las variables).

Como ya se ha enunciado, una fórmula atómica sólo se puede interpretar


como verdadera o falsa si sus variables toman valores concretos. Por ejemplo, si
C(x) significa "x es una ciudad", la fórmula será verdadera para x = Toledo, pero
falsa para x = Felipe 11, por eso en general, no se puede decir que C(x) sea
verdadera ni falsa. ·

Para cerrar sentencias abiertas, se deben tener en cuenta varias posibilidades,


pero se debe recordar que para poder interpretar una sentencia es necesario cerrarla.
Normalmente una sentencia se cierra porque a todas las variables que intervienen en
ella se les ha asignado un valor constante, entonces las fórmulas atómicas son
análogas a las variables proposicionales. Las distintas interpretaciones de la
sentencia pueden escribirse en una tabla de verdad, y en ella se expresan los
diferentes valores que va tomando la sentencia.

La sentencia también está cerrada cuando todas sus variables están


cuantificadas. La interpretación en ese caso depende del universo del discurso
(conjunto en el que toman valores las variables). Si éste es finito el cuantificador

78
l/1.2 El lenguaje de la lógica de predicados

universal puede sustituirse por un número finito de conjunciones, y el cuantificador


existencial, por un número finito de disyunciones.

Por ejemplo, si los valores posibles de x son {a, b, e, d}, la sentencia cerrada

VxPx (111-11)

es equivalente a

Pa /\ Pb /\ Pe /\ Pd (111-12)

y la sentencia cerrada

3xPx (Ill-13)

es equivalente a

Pa v Pb v Pe v Pd (111-14)

Estas equivalencias proceden de las mismas definiciones de los


cuantificadores, y de las generalizaciones de las operaciones de conjunción y
disyunción. En este caso, se puede escribir la tabla de verdad de cualquier sentencia
en la que intervenga Px con x cuantificada, considerando todas las interpretaciones
posibles del conjunto {Pa, Pb, Pe, Pd} (que ahora se comportan como si fueran un
conjunto de variables proposicionales).

Un ejemplo de interpretación puede ser el de las sentencias

\ixPx y 3x(-,Px)

en el universo de discurso D = {a, b} y con las asignaciones

Pa=V y Pb=F

con estos valores es fácil demostrar que \¡/ xPx es falso (F) porque Px no es
verdadero (V) para x = a y x = b. Por otro lado 3 x(-,Px) es verdadero ya que -,Pb
es verdadero (V) en esta interpretación. ·

Como ejemplo de interpretación por tabla de verdad, se comprobará el


razonamiento:

79
Capitulo III: Lógica de predicados de primer orden

Todos los felinos son carnívoros


Los leones son felinos

Los leones son carnívoros

que podemos fonnaliz.ar de la siguiente manera, siendo x animales y! leones

PI: 't/x (Fx ➔ Cx)


P2:FI

C: CI

luego la sentencia a comprobar que ha de ser cierta para todas las interpretaciones
es:

('t/x (Fx ➔ Cx) A FI) ➔ CI

esto es

S: PIAP2 ➔ C

Pero su comprobación debe abarcar a todo el universo del discurso (todos los
animales). Esto es inabordable por lo que no se podrá comprobar su veracidad por
medio de una tabla de verdad.

Para poder abordar este problema se reducirá el universo a los felinos y


dentro de éstos a los leones (1) y a los tigres (t). Así la primera premisa PI se
convierte en la conjunción de

PI1: Fl ➔ Cl
Pit: Ft ➔ Ct
PI: Pl1A Pit

Para estas premisas la tabla de verdad es la tabla ID-I

80
//1.2 El lenguaje de la lógica de predicados

Tabla 111-1: Comprobación en el universo {leones, tigres} de la sentencia S:


-
(\ix(Fx ➔ Cx) /\ Fl) ➔ Cl

Fl Cl Ft Ct Pl1 Plt PI P2 e s
o o o o 1 1 1 o o 1
o o o 1 1 1 1 o o 1
o o 1 o 1 o o o o 1
o o 1 1 1 1 1 o o 1
o 1 o o 1 1 1 o 1 1
o 1 o 1 1 1 1 o 1 1
o 1 1 o 1 o o o 1 1
o 1 1 1 1 1 1 o 1 1
1 o o o o 1 o 1 o 1
l o o 1 o 1 o 1 o 1
1 o 1 o o o o 1 o 1
1 o 1 1 o 1 o 1 o 1
1 1 o o 1 1 1 1 1 1
1 1 o 1 1 1 1 1 1 1
1 1 1 o 1 o o 1 1 1
1 1 1 1 1 1 1 1 1 1

De esta tabla se comprueba que para este universo finito (dos elementos), la
sentencia S es una sentencia válida, y por lo tanto la conclusión se deduce de las
premisas. Pero esto no garantiza que sea correcto para un universo del discurso
mayor. Si el universo del discurso es infinito (o lo suficientemente grande) está claro
que no se puede construir ninguna tabla de verdad.

Pese a ello, hay sentencias que siempre son verdaderas. Por ejemplo, la que
indica que si todos los individuos poseen una propiedad existe al menos uno que la
posee,

\ixPx ➔ 3xPx (ID-15)

81
Capitulo III: Lógica de predicados de primer orden

Esta sentencia es siempre verdadera, independientemente del tamaño del


universo del discurso.

Las diferencias entre la semántica de lógica de predicados y la de lógica de


proposiciones, que se basan en el tamaño del universo del discurso (el conjunto de
valores posibles que se asignan a las variables), son en resumen:

1. La interpretación se aplicaba en lógica de proposiciones al conjunto de


variables proposicionales. En lógica de predicados se debe extender el
dominio de aplicación a todos los elementos del universo del discurso. Es
decir si tenemos por ejemplo una fórmula atómica, Px y el universo del
discurso es {a,b,c,d}, una interpretación habrá de asignar valores a Pa,
Pb, Pe y Pd.

2. La extensión del dominio de una función al conjunto de las sentencias


cerradas tendrá que tener en cuenta la presencia de cuantificadores. Esto
se realiza asignando valores a los cuantificadores por medio de la
conjunción y la disyunción:

F(\ixAx) = F(Aa) /\ F(Ab) /\ F(Ac) /\ ... (111-16)


F(3xAx) = F(Aa) v F(Ab) v F(Ac) v ... (IIl-17)

donde {a, b, e, ... } es el universo del discurso.

3. La relación de equivalencia en el conjunto de sentencias se define de


manera análoga a la de la lógica de proposiciones. Pero el número de
clases de equivalencia, si el universo del discurso es infinito, es también
infinito.

111.3 Sistema axiomático en lógica de predicados

El sistema axiomático de la lógica de predicados es también una extensión del


de la lógica de proposiciones explicado en el apartado 1.7.2. Los axiomas son los
mismos del sistema PM, que eran cuatro, a los que se añaden dos más que son
propios de la lógica de predicados

5. Ley de especificación

\ixPx ➔ Pa (111-18)

82
/II. 3 Sistema axiomático en lógica de predicados

6. Ley de introducción del generalizador

\ix(p ➔ Px) ➔ (p ➔ v'xPx) (ID-19)

Los seis axiomas constituyen un sistema axiomático. Sin embargo se debe


recordar aquí que Church y Turing demostraron independientemente que no existe
un procedimiento de decisión general para probar la validez de fórmulas de lógica
de primer orden. No obstante, existen procedimientos de prueba para verificar
sentencias válidas. Para fórmulas no válidas estos procedimientos son, en general,
interminables.

Las reglas de transformación para este sistema axiomático son las mismas que
para el sistema PM (1.7.2), la regla de sustitución y la regla de separación o modus
ponens.

Ejemplo 1. Como ejemplo de demostración se demuestra la ley de particularización,


dada por la siguiente expresión:

Pa ➔3xPx

1. Aplicando la ley de especificación a -,P

Vx( -,Px)➔,Pa

2. Aplicando la ley de transposición I-60a

-,-,Pa➔, Vx(-,Px)

3. Introduciendo las negaciones

Pa➔3xPx

Las leyes de interconexión aplicadas, se explican en el parágrafo siguiente


III.4.

111.4 Leyes en lógica de predicados

Las leyes de la lógica de proposiciones se pueden generalizar a la lógica de


predicados. Así, las leyes básicas en lógica de predicados monádicos son:

83
Capitulo///: Lógica de predicados de primer orden

l. Leyes de interdefinición de los cuantificadores

\fxPx tt -, 3x(-,Px) (ill-20a)


3xPx ~ -,\fx(-,Px) O11-20b)
\fx( -,Px) tt -,3xPx (ill-20c)
3x(-,Px) tt -, \fxPx. (ill-20d)

2. Leyes aristotélicas de oposición

v'x(Px ➔ Qx) tt -,3x(Px /\ -,Qx) (lll-2la)


\fx(Px ➔ -,Qx) tt -,3x(Px /\ Qx) (ill-2lb)
3x(Px /\ Qx) ~ -,\fx(Px ➔ -,Qx) (lll-2lc)
3x(Px /\ -,Qx) tt -,\fx(Px ➔ Qx) (ill-2ld)

3. Ley de identidad

\fx(Px ~ Px) (111-22)

4. Ley de contradicción

\fx(, ( Px /\-, Px)) (111-23)

5. Ley del tercio excluso

\fx(Px v-,Px) (111-24)

6. Ley de distribución del cuantificador universal por la conjunción

\f x(Px /\ Qx) tt (\fxPx /\ \fxQx) (ill-25)

7. Ley de distribución del cuantificador universal por el condicional

v'x(Px ➔ Qx) ➔ (v'xPx ➔ v'xQx) (111-26)

8. Ley de distribución del cuantificador universal por el bicondicional

\fx(Px tt Qx) ➔ (\fxPx ~ \fxQx) (111-27)

9. Ley de contracción del cuantificador universal por la disyunción

(\fxPx v \fxQx) ➔ \fx(Px v Qx) (111-28)

84
///.4 Leyes en logica de predicados

10. Ley de distribución del cuantificador particular por la conjunción

3x(Px /\ Qx) ➔ (3xPx /\ 3xQx) (ID-29)

11. Ley de distribución del cuantificador particular por la disyunción

3x(Px v Qx) tt (3xPx v 3xQx) (111-30)

12. Ley de contracción del cuantificador particular por el condicional

(3xPx ➔ 3xQx) ➔ 3x(Px ➔ Qx) (111-31)

Las recíprocas de 7), 8), 9), 1O) y 12) no son ciertas en general

13. Ley de transitividad del condicional o ley del modo clásico del silogismo
"Barbara"1

(\fx(Qx➔Rx)/\ \fx(Px ➔ Qx))➔ \fx(Px ➔ Rx) (111-32)

14. Ley del modo clásico del silogismo "Celarent"

(\fx(Qx➔,Rx)/\ \fx(Px➔Qx))➔\fx(Px➔,Rx) (ill-33)

15. Ley del modo clásico del silogismo "Darii"

(\f x(Qx ➔ Rx) /\ 3x(PX/\Qx) ) ➔ 3x(Px /\ Rx) (111-34)

16. Ley del modo clásico del silogismo ''Ferio"

1
Veamos varioas ejemplos de silogismos:.

Un ejemplo del silogismo «Barbara» es el siguiente razonamiento: Todos los hombres son
bípedos, todos los espafioles son hombres, luego todos los espaiioles son bípedos.

Ejemplo del silogismo «Celarent» es: Ningún hombre es planta, todos los espaiioles son
hombres, luego ningún espafiol es planta.

Ejemplo del silogismo «Darii» es: Todos los japoneses comen pescado, algunos yudocas
son japoneses, luego algunos yudocas comen pescado

Ejemplo del silogismo «Ferio» es: Ningún filósofo es miope, algunos finlandeses son
filósofos, luego algunos finlandeses no son miopes

85
Capitulo III: Lógica de predicados de primer orden

(\ix(Qx➔ -,Rx)A3x(Px AQx) )➔ 3x(Px A,Rx) (Ill-35)

17. Ley Modus Ponendo Ponens

(\ix(Px ➔ Qx) APa) ➔ Qa (ill-36)

18. Ley Modus Tollendo Tollens

(\ix(Px ➔ Qx) A,Qa) ➔ -,Pa (Ill-37)

19. Ley de inferencia de la alternativa

(\ix(Px v Qx) A-,Pa) ➔ Qa 011-38)

20. Ley de especificación

\ixPx ➔ Pa (ID-39)

21. Ley de particularización

Pa ➔ 3:xPx (111-40)

·22. Ley de reducción al absurdo

\ix(-,Px ➔ (Qx A -,Qx)) ➔ \ixPx (Ill-41)

Todas estas leyes, escritas para predicados monádicos, se pueden generalizar


para predicados poliádicos. Por ejemplo, la del modus ponendo ponens para
diádicos es:

(\ixy(Pxy ➔ Qxy) A Pab) ➔ Qab (111-42)

\ixy es \ix\iy,-así como 3xy es 3x3y, por convenio notacional.

De todas las leyes que se han enunciado anteriormente la que tiene más
utilidad es la ley 19 de inferencia de la alternativa (111-38)

(\ix(Px v Qx) A-,Pa) ➔ Qa (IIl-43)

86
111.4 Leyes en logica de predicados

ya que el método de resolución utilizará como regla de resolución la


generalización_ poliádica de esta ley

v'xl. .. xn ((-,Pxl. .. xnvA) /\ (Pxl. ..xn v B)) ➔ AvB (111-44)

donde A y B son sentencias cualesquiera.

Para x e y es:

'vxy ( (,PxyvA) /\ (PxyvB)) ➔ AvB

111.5 Sistema inferencial del cálculo de predicados

El sistema de validación por medio de tablas de verdad, para un universo


finito, permite comprobar conclusiones a partir de premisas. Sin embargo su
aplicación es poco útil en lógica de predicados, porque, en general, no se garantiza
que siga siendo correcto el razonamiento para un universo del discurso más amplio,
ya que cuando crece el número de elementos ha de calcularse de nuevo la tabla de
verdad.

Sin embargo se ha demostrado que si hay n predicados monádicos, es


suficiente usar un universo de 2n elementos para probar que una sentencia es válida.
Pero no se generaliza a todas las sentencias. Sobre este hecho se debe enunciar que
se ha demostrado que no existe un procedimiento general que permita determinar la
validez de cualquier sentencia en lógica de predicados, es decir, el cálculo de
predicados es indecidible. Pero sí existe un procedimiento que permite detenninar si
una sentencia es válida ya que entonces termina el cálculo. Si no es válida no
alcanza el fin en general; por ello se dice que el cálculo de predicados es
semidecidible.

Por las mismas razones expuestas para la lógica de proposiciones, a toda ley
del cálculo de predicados que tenga la forma Pl/\ P2 /\ ... ➔ C le corresponderá una
regla de inferencia, en la que las sentencias P 1, P2, ... son las premisas y la
sentencia C es la conclusión.

Por ejemplo, a la ley de modus poniendo ponens (III-36) le corresponde la


regla de inferencia:

87
Capitulo 111: Lógica de predicados de primer orden

\ix(Px ➔ Qx)
Pa

Qa

(que es la que aplicábamos informalmente en el silogismo clásico de "Sócrates es


mortal").

Los "sistemas de deducción natural" comprenden un conjunto de reglas de


inferencia que, adecuadamente aplicadas, permiten disponer de un sistema
inferencia! consistente.

111.5.1 Reglas de inferencia

El sistema inferencia! de la lógica de predicados es una extensión del de la


lógica de proposiciones (o éste es una restricción del primero). Y, en particular, a
las reglas de inferencia, expuestas allí, se pueden añadir otras propias de lógica de
predicados.

Las reglas de deducción natural que se han explicado en lógica de


proposiciones son aplicables a lógica de predicados, y por lo tanto todo lo explicado
allí es de aplicación en este punto. Estas reglas son varias y ya han sido dadas en el
apartado l. 8.1 del capítulo l.

Además de estas reglas será necesario utilizar reglas que pennitan las
sentencias de lógica de predicados. En éstas existen signos propios con los que será
necesario operar. Estos signos son básicamente los cuantificadores.

1. Regla de la Eliminación del Cuantificador Universal (RE \i)

\ixPx \ixl ... xn Pxl ... xn


o (Ill-45)
Px Pxl ... xn

Esta regla no tiene nada de extraño: lo que es verdadero de todos los x


es verdadero para uno cualquiera de ellos.

2. Regla de Introducción del Cuantificador Universal (RI \i)

88
//1.5 Sistema inferencia/ del cálculo de predicados

Px Pxl ... xn
o (Ill-46)
v'xPx v'xl ... xn Pxl ... xn

Esta regla no es tan evidente como la anterior ya que pennite el paso de


una afirmación acerca de un individuo a una afirmación relativa a todos
los individuos. Para ello tenemos que tener en cuenta que no estamos
afirmando algo de un individuo sino de cualquier individuo. Por ejemplo,
cuando se demuestra que la swna de los ángulos de un triángulo suman
dos rectos, la demostración parte de que cualquier triángulo cumple con
este hecho. Por ello, lo que demostremos de cualquier triángulo es válido
para todos los demás.

3. Regla de Eliminación del Cuantificador Particular (RE 3)

3xPx 3xl ... xn Pxl ... xn


o ------ (ID-47)
Pa Pal ... an

Esta regla tampoco es tan evidente, ya que permite el paso de una


afirmación de que hay alguien que hace verdadera una proposición
abierta, a la afirmación relativa de que ese alguien es tal individuo
concreto. Es decir, hay algún x tal que Px; pues bien, se supone que ese
x es a, y esto es consecuencia de lo anterior. Pero teniendo en cuenta que
'a' no es una constante propiamente dicha, sino un parámetro, llamado
constante de Skolem, lo que se verá más adelante.

4. Regla de Introducción del Cuantificador Particular (RI 3)

Pa Pal ... an
o ------- (Ill-48)
3xPx 3xl ... xn Pxl ... xn

Esta regla tampoco tiene nada de extraño, lo que es verdadero de un


individuo es válido para alguien.

Ejemplo 2. Como ejemplo del uso de estas reglas se muestra la demostración de la ley
16 del modo clásico del silogismo "Ferio"(III-35)

(v'x(Qx➔ --.Rx) /\ 3x(Px /\ Qx) ) ➔ 3x(Px /\ --.Rx)

89
Capitulo III: Lógica de predicados de primer orden

Para ello se utilizarán las reglas explicadas anteriormente en el capítulo l. El


modo de silogismo "ferio" se puede expresar como:

Vx(Qx--hRx)
3x (Px /\ Qx)

3x(Px /\ --.Rx)

l. Vx(Qx-+.Rx) Premisa 1

2. 3x(Px /\ Qx) Premisa2

3. Qx ➔ ,Rx RE Ven 1

4. Pa A Qa RE3 en2

5. Pa REAen4

6. Qa RE A en 4

7. --.Ra modus ponens a 3 y 6

8. Pa A --.Ra RI /\ en 5 y 7

9. 3x(PXA --.Rx) (Conclusión) RI 3 en 8

Ejemplo 3. Demostrar la sentencia:

VxPx ➔ 3xPx

l. Con las leyes de especificación y de particulari:zación, (111-39) y (IB-40)


respectivamente, obtenemos

(v'xPx ➔ Pa) /\ (Pa ➔ 3xPx)

2. Aplicando la ley de transitividad en lógica de proposiciones, ((p ➔ q) /\


(q ➔ r)) ➔ (p ➔ r). Sustituyendo p por VxPx, q por Pa, y r por 3xPx,

((v'xPx ➔ Pa) A (Pa ➔ 3xPx)) ➔ (VxPx ➔ 3xPx)

90
///.5 Sistema inferencia/ del cálculo de predicados

3. Aplicando la regla de separación (1-85) o del modus ponens a las


sentencias 1 y 2, se obtiene VxPx ➔ 3xPx (c.q.d.)

111.6 Sistema de resolución

A continuación vamos a ver cómo se generaliza la regla de resolución de la


lógica de proposiciones, a la lógica de predicados. La completitud en general, como
ya se ha enunciado, no se puede demostrar basándose sólo en la resolución. Sí se
puede demostrar para casos particulares de resolución, por ejemplo usando además
refutación.

111.6.1 Forma clausulada de la lógica de predicados

Una cláusula es una colección de cero o más literales unidos por


disyunciones. Una sentencia en forma clausulada es una colección de cláusulas
unidas por conjunciones. Una sentencia se dice que está en forma clausulada o
forma normal de Skolem si:

1. Sólo posee cuantificadores universales y éstos están situados en cabeza,


es decir, todas las variables están universalmente cuantificadas. Esto
permite usar el convenio: Todas las variables se suponen cuantificadas
universalmente, aunque no se escriban los cuantificadores (v'xl, v'x2 ... )
delante de la sentencia. Con este convenio los cuantificadores universales
se eliminan.

2. La sentencia está compuesta por una conjunción de cláusulas. Una


cláusula es una disyunción de literales (negados o no):

donde los Lj son literales (fórmulas atómicas con o sin el símbolo '-,')
con cualquier número de variables cada uno. Varias cláusulas se colocan
estructuradas como conjunciones, por eso una sentencia que está en
-forma clausulada o normal de Skolem tiene la forma:

(L11 V L12 V ... )/\ (Li1 V Lii..... ) /\ ...

en la que cada cláusula (L¡1 v L¡2 v ... ) tiene sus propias variables.

91
Capitulo III: Lógica de predicados de primer orden

A partir de este momento, para simplificar la exposición, se supone que no


intervienen variables propo~icionales en las sentencias de la lógica de predicados.

Dado que para aplicar la regla de resolución se necesita tener las sentencias
en forma clausulada, es necesario conocer la forma de pasar cualquier sentencia de
lógica de predicados a una sentencia equivalente en forma clausulada. El
procedimiento, ampliación del utilizado para la lógica de proposiciones (sección
1.8.2), pennite pasar cualquier sentencia de lógica de predicados a forma clausulada
tras efectuar un cierto número de pasos. El procedimiento que se va utilizar tiene
siete pasos:

1. Aplicación de la equivalencia de las implicaciones respecto de la


disyunción y la conjunción. El objeto de este paso es la eliminación de
todas las conectivas que no sean la conjunción y la disyunción'/\' o 'v'
(las conectivas a sustituir serán principalmente condicionales ' ➔' y
bicondicionales 'tt '). Este paso es igual que el utilizado en lógica de
proposiciones, se realiza aplicando las definiciones de conectivas en
función de la negación, la conjunción y la disyunción. Para expresarlo
utilizamos S y R como indicando cualquier sentencia en general:

(S ➔ R) = (-,S V R) (111-49)

(S ~ R) = (-,S v R) /\ (S v-,R) (ID-50)

2. Introducción de negaciones en las fórmulas con el objeto de que las


negaciones sólo afecten a literales, no a fórmulas. Para ello se utilizaran
igual que en lógica de proposiciones las leyes de de Morgan (1-56):

-,(S V R) = (-,S /\,R) (111-51)

-,(S /\ R) = (-,S V -,R) (Ill-52)

Pero en lógica de predicados, además, hay que añadir las relaciones


entre los cuantificadores y las negaciones OII-5 y 6):

-,3x(S) = \fx(-,S) (111-53)

-,\fx(S) = 3x(-,S) (111-54)

3. Independización de las variables cuanhjicadas. Consiste en cambiar


(aplicando la regla de sustitución) los nombres de las variables que sean

92
111. 6 Sistema de resolución

necesarios para que cada cuantificador se refiera a su propia variable y


no a ninguna otra. Por ejemplo:

\fx( -,Px v 3xQx) = \fx( -,P(x) v 3yQy) (ID-55)

4. Eliminación de los cuantificadores existenciales. Para la realización de


este paso es necesario la utiliz.ación de variables auxiliares, que
pennitan justificar la eliminación de estos cuantificadores. Existen dos
casos según que estos cuantificadores estén o no dentro del alcance de un
cuantificador universal.

Primer caso: El cuantificador existencial a eliminar no está dentro del


alcance de ningún cuantificador universal. En ese caso, se introduce una
constante en el lugar de la variable cuantificada. Por ejemplo, en la
sentencia

3x(Px /\ Rmx) (111-56)

se introduce la variable a y se transforma en

Pal\ Rma (111-57)

En el sistema axiomático que se está utilizando, se necesitaría la


existencia de una ley como:

3xPx ➔ Pa (ID-58)

para que la transformación anterior fuera correcta. Pero esta ley no tiene
por qué ser cierta para una constante dada fija a.

La transformación anterior se justifica considerando que la constante


que se introduce en lugar de la variable cuantificada por '3' no es como
las demás constantes que puedan figurar en la sentencia. Una constante
es un valor concreto de entre los que pueda tomar x. Pero la constante
que se ha introducido es simplemente un valor arbitrario y no concreto.
- De manera no formal se puede justificar como si en la sentencia se dijera
que existe un individuo (al menos) con cierta propiedad; se inventa un
nombre para ese individuo, y se sigue operando. Por ejemplo, la
sentencia,

3x(Px /\ Rmx) (111-59)

93
Capítulo 111: Lógica de predicados de primer orden

podría ser una fonnalización de "existe una persona, x, tal que x es


pintor y la res_idencia de x es Madrid". Al sustituirla por

Pal\ Rma (111-60)

hemos creado un nombre a, para esa persona.

Si la sentencia fuese más larga e incluyese otras constantes, este nombre


que introducimos no podría coincidir con ningún otro, ya que se trata de
un nombre ficticio y no de un nombre real (una constante). Es una "falsa
constante", porque no es un valor concreto, sino un valor arbitrario, y la
dificultad teórica estriba en que el sistema axiomático que se está
utilizando no contempla este tipo de constantes, por esa razón se
introducen ahora y se llaman constantes de Skolem.

Segundo caso: Si la sentencia que contiene el cuantificador existencial a


eliminar está dentro del alcance de un cuantificador universal el modo de
operar es diferente, ya que no se puede sustituir la variable cuantificada
por una constante de Skolem, al ser imposible dar un valor arbitrario a
dicha constante.

Un ejemplo pennitirá comprender mejor esto:

"para todo x, si x es pintor, existe una y tal que y es la residencia de x"

se puede expresar como

\fx(Px ➔ 3yRyx) (111-61)

Si sustituimos y por una constante de Skolem, a, se convierte en:

\fx(Px ➔ Rax) (111-62)

que, literalmente, dice: "para todo x, si x es pintor, entonces la


residencia de x es a", lo cual es falso, pues significaría que "a" es la
residencia de todos los pintores. Esto ocurre porque el valor de la
variable (y) cuantificada por '3' depende del que tenga x. Por tanto, en
lugar de sustituir esta variable por una constante, la sustituiremos por
una función, que se denomina función de Skolem f(x). Este símbolo de
función no puede coincidir con ningún otro que figure ya en la sentencia.
En el ejemplo que se está considerando, la sentencia quedaría así:

94
111. 6 Sistema de resolución

\fx(Px ➔ Rf(x)x) (ID-63)

que ex.presa que "todo pintor, x, tiene una residencia, f(x)".

Resumiendo, si una variable cuantificada existencialmente no tiene a su


izquierda ningún cuantificador universal, se sustituye la variable
cuantificada por una constante de Skolem.

Por ejemplo,

3x'v'yz(Pxy v Qxyz)

pasa a

\fyz(Pay v Qayz) (111-64)

y si existe un cuantificador universal a su izquierda, se sustituye la


variable cuantificada por una función de Skolem

Por ejemplo,

\fyz3x(Pxy v Qxyz)

pasa a

\fyz(Pf(y, z)y v Qf(y, z)yz) (ID-65)

En el caso general, se combinan las dos sustituciones, por ejemplo,

3x \fyz 3u \ft 3w Pxyzutw

pasa a

\fyzt Payzf(y, z)tg(y, z, t) (111-66)

aunque para w bastaría con g(t), pues w sólo depende de t.

5. Eliminación de los cuantificadores universales. Este paso no plantea


ningún problema dentro de la axiomática que estamos considerando. Si
se han seguido los pasos anteriores, en este momento sólo existen
cuantificadores universales, y cada uno de ellos afecta a una variable
diferente. Por tanto, se puede aplicar el convenio que se ha enunciado en

95
Capitulo 111: Lógica de predicados de primer orden

la definición de la forma normal de Skolem. Es decir se escriben todos


los cuantifica.dores universales al comienzo de la sentencia, porque todas
las variables están universalmente cuantificadas (ya que sólo
consideramos sentencias cerradas), y se puede omitir la escritura de tales
cuantificadores.

Los pasos 4 y 5 pueden realizarse porque se utilizan las reglas de


inferencia auxiliares, que son tautologías en virtud de las cuales puede
demostrarse que los cuantificadores pueden sacarse todos del interior y
ponerse todos fuera (a veces cambiándolos) sin alterar la frase (dejando
una equivalente a ella). Al enunciado de esta posibilidad se le llama el
teorema de la forma prenexa.

Estas reglas son efectivamente tautologías: en algún caso no es evidente;


r es una proposición (o sea, podría ser una frase con cuantificadores) en
la que la variable x no aparece como libre, ya que, de no ser así, algunas
de ellas no serían válidas.

i. (r ➔ \fxPx) ~ \fx( r ➔ Px); ii. (r ➔3xPx) ~ 3x(r ➔ Px);

iii. (\fxPx ➔ r) ~ 3x(Px ➔ r); iv. (3xPx ➔ r) ~ \fx(Px ➔ r);

v. \fx(PXAQx) ~ (\fxPx /\ \fxQx); vi. 3x(PxvQx) ~ (3xPx v 3xQx);

vii. 3x(Px ➔ Qx) ~ (\fxPx ➔ 3xQx); viii. -,\fxPx tt 3x( -,Px);

ix. -,3xPx tt \fx( -,Px) ; x. (r /\ \fxPx) tt \fx(r /\ Px);

xi. (r /\ 3xPx) tt 3x(r /\ Px); xii. (r v \fxPx) ~ \fx(r v Px);

xiii. (r v 3xPx) tt 3x(r v Px); xiv. \fxPx ~ v'yPy;

xv. 3xPx tt 3yPy.

6. Agrupamiento de conjunciones y disyunciones. En general, tras el


último paso, la sentencia sólo estará formada por las conectivas de
disyunción y conjunción "/\" y "v". Para llegar a una conjunción de
cláusulas se aplica, igual que hacíamos en lógica de proposiciones, la
propiedad distributiva de conjunciones y disyunciones.

96
111. 6 Sistema de resolución

7. Cambio de nombre de las variables para que cada cláusula tenga las
suyas propias. A este cambio se llama instanciación.

Este paso tiene su justificación en leyes, como la 1O (111-29), de


'distribución' del cuantificador existencial sobre la conjunción, en la que
se aprecia que lo que hay realmente es semidistributividad (en aquel
caso, la recíproca no es cierta en general). Partiendo de 3xPx /\ 3xQx,
se llegará a una sentencia del tipo (dos cláusulas)

Pa /\ Qb (Ill-67)

en la que aparecen dos cláusulas constituidas cada una por un literal, en


realidad la sentencia; en tanto que, como se ha visto en el paso tercero,la
sentencia que origina las dos cláusulas Pa /\ Qa es

3x(Px /\ Qx) (111-68)

Por ello este séptimo paso consiste en sustituir una variable por otra
equivalente a fin de que cada cláusula tenga sus propias variables y así,
escribir, en lugar de 3xPx /\ 3xQx

3xPx /\ 3yQy (111-69)

es decir, al final quedan las cláusulas Pa y Qb.

La aplicación sistemática de estos siete pasos pennite expresar todas las


sentencias de lógica de predicados en forma clausulada. Éste es un paso previo
necesario para aplicar la regla de resolución de Robinson. En el ejemplo siguiente se
pueden seguir todos los pasos de la transformación de una sentencia a forma
clausulada.

Ejemplo 4: Poner en fonna clausulada la siguiente sentencia de lógica de predicados

v'x( Px ➔ ( -,3y(Qxy ➔ VzPz) /\ Vy(Qxy ➔ 3tRt) ) )

1. Se eliminan todas las conectivas (➔, ~)

v'x( -,Px v (-,3y(-,Qxy v VzPz) /\ v'y( -,Qxy v 3tRt)))

2. Se introducen las negaciones

v'x( -,Px v (Vy(Qxy /\ 3z(-,Pz)) /\ Vy(-,Qxy v 3tRt)))

97
Capítulo///: Lógica de predicados de primer orden

3. Se independizan las variables con el mismo nombre

Vx( --.Px v (Vy(Qxy /\ 3z(--.Pz)) /\ Vw(--.Qxw v 3tR.t)))

4. Se eliminan los cuantificadores existenciales para lo cual se introducen


constantes y/o funciones de Skolem.

v'x( --.Px v (Vy (Qxy /\ --.Pa) /\ Vw( --.Qxw v Rb) ) )

Pz no es afectado por 'x' ni por 'y', así que se usa una cte. de Skolem y
no una función; y lo mismo pasa con Rt respecto de 'x', de 'y', y de 'w'.

5. Se eliminan los cuantificadores universales, poniéndolos primero en


cabeza

v'xyw( --.Px V ( (Qxy /\ --.Pa) /\ (--.Qxw V Rb)))


--.Px v ( Qxy A --.Pa /\ (--.Qxw v Rb))

6 y 7. Finalmente aplicando la propiedad distributiva, y teniendo en cuenta


la instanciación, resultan las tres cláusulas,

--.Px V Qxy
--.Ps v --.Pa
-.Pu v --.Quw v Rb

y en las que no existe posibilidad de más simplificación.

111.6.2 Sustitución y unificación

Con las sentencias en forma clausulada, la forma de operar con la regla de


resolución es la misma que en lógica de proposiciones. Dadas dos generatrices que
comparten un literal, que está negado en uno y no negado en la otra, se obtiene la
resolvente eliminando ese literal y conservando los demás. En lógica de predicados
existen además los argumentos de los literales, luego habrá que igualarlos también
para poder eliminar los literales.

Para completar el sistema inferencia! debemos dotarlo de un procedimiento de


aplicación de la regla de resolución. El procedimiento más sencillo es la búsqueda
exhaustiva, que consiste en aplicar la regla de resolución a todas las parejas
posibles, a continuación se añaden las resolventes obtenidas a las cláusulas restantes
y se vuelve a aplicar la regla de resolución hasta que no se obtengan nuevas
resolventes.

98
///.6 Sistema de resolución

En el silogismo clásico de "Sócrates es mortal" su expresión es:

'vx ( Hx ➔ Mx)
HS

MS

que en forma clausulada adopta la forma

-,Hx v Mx
HS

MS

Si en el ejemplo anterior eliminamos HS es porque se puede sustituir x por S


en la primera premisa y eliminar los dos literales H(S) y -,H(x).

El proceso de resolución no es siempre tan fácil como parece por la simple


aplicación de estos pasos, por lo que vamos a estudiarlo en general. A continuación
se describe el proceso de sustitución y unificación de manera más general y precisa,
para obtener a continuación una regla general de resolución.

Dadas unas variables x1, x 2, ... , y unos términos t1, t2, ... , tn en los que no
Xn
figuran esas variables, llamaremos sustitución s a un conjunto de pares ordenados

(IIl-70)

b/x se lee" sustituir x por b", y t/x, "sustituir x por t".

La operación de sustitución consiste en, dado un literal L que contiene las


variables x 1, x 2, ... , Xn, y una sustitución s (cuyos términos no pueden contener
símbolos de constantes ni de función que ya estén en L), reemplazar en todos los
lugares de L donde aparezca x 1 por t 1, y a continuación con el resto de los pares
ti/xi de s. El resultado, que se representa por Ls, es un caso de sustitución en L.

Por_ ejemplo, sea el literal:

L = Paxf(y)

y las sustituciones

99
Capitulo III: Lógica de predicados de primer orden

s2 = {b/x, g(z)/y}
S3 = {z/x, w/y}

Los resultados de aplicar estas sustituciones a L son:

Ls1 = Pabf(c)
Ls2 = Pabf(g(z))
Ls3 = Pazf(w)

Las tres sustituciones son diferentes ya que Ls2 es una sustitución que no
posee características especiales, ya que se sustituye la variable x por la constante b
y la variable y por la función g(z). Sin embargo Ls 1 es un caso terminal de L, se
llama así a las que no contienen variables, ya que éstas han sido sustituidas por
constantes. Ls3 es simplemente una variante alfabética de L, sólo se han cambiado
los nombres de las variables por otros, pero no se han transformado las variables en
constantes, ni en funciones.

Existe la sustitución vacía {} sobre cualquier expresión que la deja


invariable. Dadas dos sustituciones, s 1 y s2, su composición, s1s 2, es una sustitución
tal que Ls1s2 = (Ls1)s2.

La composición de sustituciones es asociativa

(111-71)

pero, en general, no es conmutativa

(111-72)

La razón de esta no conmutatividad es el hecho de que dos sustituciones


diferentes pueden actuar sobre las mismas variables sustituyéndolas por términos
diferentes en cada caso, por lo que el resultado de la composición dependerá del
orden de aplicación.

Por la misma razón, no se puede calcular la composición resultante uniendo


simplemente los conjuntos SJ y s2. Para el cálculo de s1 s2 hemos de aplicar primero
s2 a los términos de s1y después añadir los pares de s2 cuyas variables no estén entre
las de s1.

Por ejemplo, la composición de

S¡ = {f(x, y)/z}

100
III. 6 Sistema de resolución

s2 = {a/x, b/y, c/z, d/u}

da lugar a la sustitución:

s1s2 = {f(a, b)/z, a/x, b/y, d/u}

mientras que, si se invierte el orden de aplicación,

porque cuando se fuera a aplicar s1, al haberse aplicado antes s2, no podría actuar
sobre ninguna z, al haber sido éstas sustituidas por c, por lo que s1 no tendría
ninguna variable sobre la que actuar.

Una sustitución s se dice que es más general que otra s', si esta sustitución s'
se puede obtener de la s por composición con otra sustitución.

Se dice que dos expresiones son unijicables si se pueden hacer idénticas por
la aplicación de alguna sustitución s, a la que se denomina unificador.

Ls = L's (Ill-73)

Un conjunto de literales L ={L1, Li, ...Ln} = {L¡} (i = 1, 2, ... , n) es unificable


si existe una sustitución s tal que

(Ill-74)

En tal caso, se dice que ses un unificador de L = {L¡} y que los literales L¡ se
unifican en L¡s.

Por ejemplo, sea {L¡}={Paxf(y), Paxf(b)}. Un unificador serias= {c/x, b/y},


con el que ambos literales se unifican en Pacf(b). Pero no es el único, hay un
unificador más general o más pequeño, a = {b/y}, con el que se unifican en Paxf(b ).

Si {L¡} es unificable, se dice que a es un unificador mínimo o de máxima


generalidad (umg), si es el unificador más general, o sea que contiene un número
mínimo de pares y, por lo tanto liga un número mínimo de literales. Este unificador
mínimo, a, tiene dos propiedades:

101
Capitulo 111: Lógica de predicados de primer orden

1. Si s es otro unificador de {L¡}, entonces existe una sustitución s' tal que
s=as', es decir, L¡s _es un caso de L¡a. En el ejemplo anterior, P(a, c,
f(b)) es un caso de la sustitución en P(a, x, f(b)) para s' = {c/x}.

2. L¡ a es único salvo por variantes alfabéticas de los literales.

La demostración de esta afirmación es muy laboriosa. Sin embargo es


constructiva con lo que se genera un algoritmo que pennite encontrar el unificador
más general de cualquier conjunto de literales que sea unificable. Este algoritmo es
importante para resolver de manera automática el problema de la resolución en un
sistema inferencia! en lógica de predicados.

Este algoritmo trata de encontrar, en las expresiones, las discrepancias entre


los literales y así puede calcular de manera continuada las sustituciones que
convierten unos en otros; así se encontrará a, el unificador más general. Éste será
aquél que convierta el conjunto sobre el que se aplique en uno que esté en forma
mínima. Una forma es mínima cuando no se le puede aplicar más sustitución que la
vacía.

Como ejemplo de cómo opera este algoritmo se va a calcular el unificador


más general para W={ Paxf(g(y)), Pzf(z)f(u)}.

Claramente W no está en forma mínima, se empieza por el conjunto s 1={a/z}


que es la primera discrepancia encontrada entre los dos conjuntos, obviamente es un
unificador, si·lo aplicamos a W obtenemos:

W1 = Ws1 = { Paxflg(y)), Paf(a)f(u)}

De nuevo ~orno W I no está en forma mínima, se busca la siguiente


discrepancia que es s2={f(a)/x}. Si se aplica a W 1 se obtiene:

W2 -W1s2 ={ Paf(a)f(g(y)), Paf(a)f(u)}

Como W W2 no está todavía en forma mínima, se busca la siguiente


discrepancia que es s3={g(y)/u}. Si se aplica a W 2 se obtiene:

W3 == W2s3 ={Paf(a)f(g(y)), Paf(a)f(g(y))} ={Paf(a)f(g(y))}

W3 ya está en forma mínima luego el unificador más general es

a== s1 s2 S3 ={ a/z, f(a)/x, g(y)/u}

102
111. 6 Sistema de resolución

111.6.3 Expresión general de la regla de resolución

Una vez se han definido los conceptos de sustitución y unificación, es posible


aplicar la regla de resolución a una sentencia en forma clausulada. Se parte de un
conjunto de cláusulas, en las que las variables libres de cada cláusula tienen nombre
distinto. La regla de resolución se aplica a dos premisas en forma de cláusulas, que
se denominan generatrices. Una contiene una variable (literal) negada que en la otra
premisa está sin negar. La resolución consiste en construir otra cláusula (resolvente)
formada por las disyunciones de todas las variables de las generatrices menos la
común.

La aplicación se hará de la forma siguiente:

1. Se selecciona una pareja de literales en cláusulas distintas

2. Se aplica el algoritmo de unificación a la pareja de literales seleccionada.

3. Si resultan unificadas, se resuelve y se incluye la resolvente en el


conjunto.

4. Se vuelve a l.

El proceso termina cuando no es posible encontrar cláusulas a unificar o


cuando se obtiene la cláusula vacía como resolvente .

. Teóricamente el proceso se puede expresar como sigue:

Sean dos generatrices en forma clausulada,

G1 = Ln v L12 v .. . (ID-75)
G2 = Li1 V Li2 V .. .

estas generatrices al estar en forma clausulada se pueden expresar como un


conjunto de literales

G1 = { Lli} (III-76)
G2 = { Lii}

Definimos unos nuevos conjuntos de literales que están contenidos en los


anteriores {lli} e {L1¡} y {h¡} e {Li¡ }, tales que su unión {lH}u{-,}i¡} es unificable,
siendo a el unificador mínimo.

103
Capitulo 111: Lógica de predicados de primer orden

g1 = { 11¡} (lll-77)
g2= { }i¡}

Es decir estos nuevos conjuntos poseen todos los literales comunes de ambas
generatrices en forma afinnativa y negativa, de modo que pueden ser resueltos.

Entonces se puede concluir que {Lli} y {Lii} se resuelven en {11¡} y que de


ambas generatrices se puede inferir la resolvente dada por la siguiente expresión:

[{L¡¡} - {11¡}] a u [{Lii} - {h¡}] a (ID-78)


[ G1 - g1] a u [ G2 - gi] a

El signo menos significa que del conjunto G1 se eliminan los literales g1 y del
conjunto G2 los literales g2. La justificación teórica de esta regla de resolución es la
generalización de la ley de inferencia de la alternativa (Ill-38). Para comparar
aquella ley con lo que acabamos de dar, obsérvese que, al unificar, {l¡¡} se reduce a
un solo literal, que corresponde al que se llamaba Pxl, ... , xn, y {h¡} a -,Pxl, ... , xn.

En todo caso esta expresión general no es sino la aplicación general de la


regla de resolución que se ha enunciado repetidas veces. Se puede demostrar que la
resolución es consistente: toda conclusión que esté bien inferida es deducible (o sea,
se satisface para todas las interpretaciones que satisfacen a las premisas).

Para comprender mejor este proceso se aplicará al ejemplo en el que las


generatrices Son G1 = Px v Qx y G2 = -,Pa v Rx. En este caso es necesario ejecutar
el paso 7 del paso a forma clausulada (instanciación), ya que x aparece en ambos
conjuntos, renombramos en G2 = -,Pa v Ry. Aunque, a veces, si lo que se está
buscando es una particularización, puede obviarse la instanciación.

Los conjuntos de literales son {L1¡}={ Px, Qx}, y {Li¡}= {-,Pa, Ry}. Si
seleccionamos la pareja de literales {lu} = Px y {}i¡}= -,Pa, el unificador más
general de la unión {11¡} u {-,}i¡} = {Px, Pa} es a= {a/x}.

Por todo ello

[{Lli} - {lti}] cr u [{Li¡} - {h¡}] a=


[{Px, Qx} - {l>x}] a u [{-,Pa, Ry} - {-,Pa}] a=
{Qx}a u {Ry}a = {Qa, Ry}

que puesto en forma clausulada nos da la resolvente Qa v Ry.

104
JI/. 6 Sistema de resolución

Ejemplo 5. Resolver las siguientes premisas

P 1: Quien tiene boca se equivoca

P2: Pedro tiene boca

Formalizadas con los convenios, Bx tener boca, Ex equivocarse, P Pedro.


Las premisas son

Pl: Vx(Bx ➔ Ex)

P2: BP

Antes de pasar a forma clausulada notamos que P2 está ya en forma


clausulada, Pl no lo está. Aplicando (IIl-42) y eliminando el cuantificador
universal, se obtiene la forma clausulada

Pl: -,Bx vEx

En este caso los conjuntos de literales son {Lli} = {--.Bx, Ex} y {li¡} =
{BP}. Si elegimos {lli} = { --.Bx} y {li¡} = {BP} el unificador mínimo será
cr- {P/x} y la resolvente es

{Ex} cr u { } cr = {EP}

Por lo tanto la resolución es

R=EP

es decir

Pedro se equivoca

claramente la resolvente está de acuerdo con la conclusión del silogismo


propuesto

111.6.4 Refutación

La aplicación de la ley de reducción al absurdo en lógica de predicados es


análoga a su aplicación en lógica de proposiciones. El fundamento de la refutación
es la ley de reducción al absurdo, descrita en las leyes básicas con el número 22 (ID-
41)

105
Capitulo 111: Lógica de predicados de primer orden

La refutación consiste en comprobar que el conjunto de cláusulas formado


por las correspondientes premisas más la conclusión negada

P 1 /\ P2 /\ .............. /\ Pn /\ -,C (111-79)

es una contradicción. Este hecho demuestra que la conclusión se infiere de las


premisas.

Se puede demostrar que la refutación con resolución y con búsqueda


exhaustiva es un sistema inferencia! consistente y completo. El problema reside en
el hecho de que la búsqueda tiene que ser exhaustiva, ya que para conseguirlo es
necesario comprobar todas las posibles cláusulas. El número de estas
comprobaciones depende del número de premisas, de cláusulas por premisa, y de
elementos por cláusula; si éstos son elevados, el número de combinaciones a
explorar es tan elevado, que el tiempo necesario para comprobar la veracidad de una
afirmación puede ser inaceptable. A este fenómeno se le conoce como explosión
combinatoria. En este caso la solución está en la utilización de otras estrategias de
resolución para los sistemas inferenciales, pero éstas no suelen ser completas.

Ejemplo 6. Un ejemplo de refutación puede ser el silogismo clásico de "Sócrates es


mortal" que se ha formulado en forma clausulada como:

Pl: -,Hx V Mx
P2: HS

C: MS

Si suponemos que --,MS, es decir, que "Sócrates no es mortal" y que la


segunda premisa se cumple, es decir "Sócrates es hombre", existe un
hombre que no es mortal en contradicción con la primera premisa de todos
los hombres son mortales.

Con la primera premisa y con la negación de la conclusión se resuelve que

P 1: -,HxvMx
-,C: ,MS

-,HS

La resolución se obtiene eliminando los literales Mx y ,MS, con lo que se


obtiene .HS. Es decir Sócrates no es hombre, que está en contradicción con
la segunda premisa.

106
111. 6 Sistema de resolución

Luego PlAP2A--.C es en cualquiera de los casos una contradicción, ya que


da la cláusula vacía, y por tanto el razonamiento es correcto.

111. 7 Estrategias para analizar la validez de proposiciones lógicas

En esta sección se muestran unos ejercicios con los que se pretende que se
adquiera práctica en otras estrategias para analizar la posible verdad o validez de
proposiciones lógicas de una forma un poco más rápida de lo habitual. Aunque
exiten muchas otras, aquí se han puesto básicamente las relacionadas con la
asociación de proposiciones conjuntistas. Luego, para constatar la 'evidencia', se
puede auxiliar uno de un diagrama de Venn-Euler.

Como se entenderá, en esta sección vamos a seguir procedimientos


informales. Cada uno de los ejercicios comienza con una expresión de la que se trata
de averiguar si es o no tautológica (también llamada universalmente válida, porque
su validez no depende del universo del discurso).

l. (p ➔ q) v (p ➔ ,q). Tautología. Si q es verdadera la pnmera


implicación es verdadera; si q es falsa, la segunda implicación es
verdadera. En ambos casos la disyunción es verdadera.

2. PcQ v Pe Q. Es falsa en general (compare con la anterior). El


conocido contraejemplo de Russell: P es el conjunto de los ingleses, Q el
conjunto de las mujeres, Q el conjunto de los hombres y el universo o
referencial U = Qu Q , el conjunto de las personas.

3. (p ➔ (qvr)) ➔ ((p ➔ q) v (p ➔ r)). Tautología. Si q es verdadera, el


consecuente de la implicación principal es verdadero por serlo la
implicación p ➔ q (ya que a su vez tiene el consecuente verdadero) y ser
verdadera entonces la disyunción. Si q es falsa, el antecedente de la
implicación principal se reduce a p ➔ r, y el consecuente a una
disyunción, tal que uno de sus componentes es p ➔ r también,
originándose igualmente una tautología.

4. \ix(Px ➔(QxvRx)) ➔(\ix(Px ➔ Qx) v\ix(Px ➔ Rx)). Es falsa en


general. Su forma conjuntista es (Pc(QuR)) ➔((PcQ) v (PcR)). Vale
el mismo contraejemplo de Russell, con ~ conjunto de los hombres
(varones). Compare con la frase anterior.

107
Capitulo 111: Lógica de predicados de primer orden

5. v'x(Px➔Qx)➔(v'xPx➔v'xQx). Es tautológica o universalmente válida.


Su forma conjuntista es (PcQ)➔(P=U➔Q=U), que tiene también la
forma (PcQ/\P = U)➔Q=U, lo que es evidente.

6. (v'xPx ➔v'xQx) ➔ v'x(Px ➔ Qx). Es falsa en general. Su forma


conjuntista es (P =U ➔ Q =U) ➔ PcQ. Cualquier contraejemplo que
no la satisface: basta con que P no esté contenido en Q y que ninguno de
los dos sea el referencial: así el consecuente de la implicación será falso,
pero el antecedente será verdadero por ser una implicación cuyos
antecedente y consecuente son falsos: ello origina que la proposición
completa sea falsa.

108
Capítulo IV
Otras lógicas

IV.1 Introducción

El tratamiento de la lógica matemática quedaría incompleto si no


mencionáramos otras formas de expresar la lógica de proposiciones y de predicados,
tales como la lógica de las clases y la lógica de las relaciones, así como la
ampliación de las lógicas de predicados para dar cabida a razonamientos y
expresiones del lenguaje cotidiano que no se pueden expresar con la lógica de
predicados de primer orden. Por ello, en este capítulo, daremos una visión general
de algunas de estas lógicas; así mencionaremos:

1. La lógica de predicados con identidad, en la que introducimos el signo


de identidad'='.

2. Las lógicas de las clases y de las relaciones que no añaden nuevos


aspectos a la· lógica de predicados, sino que representan otra forma de
expresarla, con construcciones sintácticas más cercanas a la teoría de
conjuntos.

3. Las lógicas polivalentes, que son aquellas lógicas de


- proposiciones que admiten más de dos valores semánticos.

4. Y por último como una extensión de las lógicas


multivaloradas/polivalentes con infinitos valores estudiaremos la
lógica bollosa.

109
Capitulo IV: Otras lógicas

IV.2 Lógica de predicados con identidad

Se presenta en este ápartado una lógica resultante de ampliar el lenguaje de la


lógica de predicados con el signo de identidad '='. Este signo se lee de varios
modos, todos ellos intercambiables: "es", "es idéntico a", "es igual a", "es lo mismo
que", etc. Así, "x = y" se lee "x es y", "x es idéntico a y", etc. La negación del signo
de identidad se simboliza mediante el signo '*' que se lee ''no es"; "es distinto de",
"es diferente de", etc.

El signo de igualdad (=) tiene varios significados diferentes, según el


contexto. Citamos a continuación nueve de los principales, mostrando con ello su
tremenda polisemia.

l. x == y tt v'P(Px tt Py). En este caso, el signo de igualdad está definido


en una teoría de segundo orden o lógica en la que se pueden cuantificar
variables predicativas que es lo que se conoce como la lógica de orden
superior, en la que el cuantificador afecta a un predicado asumido como
variable. Análogamente ocurre con las siguientes dos definiciones. La
frase dice que dos cosas son iguales cuando todo predicado (propiedad)
que puede ser dicho de la una se satisface (es válido) si y sólo si se
satisface (es válido) cuando es dicho de la otra. (0, más sencillo, dos
cosas son iguales cuando no hay ninguna propiedad que la tenga una
pero no la otra).

2~ x = y tt v'z (xez tt yez). (Primera forma conjuntista). Dice que dos


objetos son iguales si y sólo si ambos pertenecen a los mismos conjuntos
y sólo a ellos simultáneamente.

3. x ~ y tt v'z (zex tt zey). (Segunda forma conjuntista). Dice que dos


objetos son iguales si y sólo si, siendo clases, tienen los mismos
elementos. Es la forma habitual de definir la igualdad axiomáticamente
en teoría de conjuntos y lógica de clases. ¿Es equivalente (2) a (3)?
Examínelo.

4. Para correspondencias (y, en su caso, funciones), se define la expresión


'y= f(x)' como abreviatura (y para conservar la notación tradicional) de
'(x, y) e f, donde fe AxB, y 'AxB' denota el producto cartesiano, o
sea, el conjunto de los pares ordenados (x, y), que satisfacen la
condición 'xeA /\ yeB'.

110
IV. 2 Lógica de predicados con identidad

5. Otra forma de definir el signo de igualdad de 'y = f(x)', es mediante un


· predicado diádico (o de dos variables), así: y = f(x) tt Pxy, que debe
satisfacer los axiomas de igualdad que daremos en (9), para Pxf(x). El
trato especial que recibe Pxf(x), cuando f es función de Skolem puede
verse en los problemas al respecto.

6. "=" es el signo usado para denotar una relación de equivalencia: este


significado es distinto de los anteriores: x = y tt Rxy; R es 'de
equivalencia' quiere decir que R es reflexiva, simétrica y transitiva.

Aunque una forma corriente de definir la reflexividad es v'xRxx, esta


propiedad no debe ser definida así, ya que plantea un problema: es
deseable, por motivos de economía, que una relación que sea simétrica y
transitiva sea también reflexiva, de manera que baste con que v'xy(Rxy
➔Ryx) (simetría) y v'xyz((Rxy /\ Ryz) ➔ Rxz) (transitividad), para
conseguirlo; por eso daremos como definición de reflexividad esta otra
v'xy((Rxy v Ryx) ➔ (Rxx /\ Ryy)). Veamos ahora las razones para
ello.

Ejemplo l. Suponga que la relación R (definida en U= [O, 1, 2] ), es de la forma R =


[(O, 1). (O, O), (1, O), (1, l)]; esta relación, aunque es simétrica y transitiva,
no es reflexiva con el criterio VxRxx, pues el par (2, 2)eUxU (prod. cartes.)
no pertenece a la relación. Entonces elaboramos una nueva definición de
reflexividad, consistente en aceptar que la relación tiene esta propiedad, si y
sólo si, cuando se da que Rxy, o bien Ryx, tanto la pareja (x, x) como la (y,
y) pertenecen a dicha relación, con independencia de que su dominio (o
universo del discurso) pudiera ser ampliado con otros elementos que formen
parejas no pertenecientes a la relación. Es sencillo probar que VxRxx no se
infiere de la simetría y de la transitividad (contraejemplos: el dado
anteriormente~ otro, la relación vacía R = 0, que no es reflexiva con este
criterio, porque no tiene ningún elemento, pero que sí es simétrica y
transitiva, ya que los antecedentes de las implicaciones que figuran en estas
propiedades son falsos, y por ello, esas implicaciones son verdaderas). Y
también es sencillo probar que la reflexividad definida de esta forma
'nueva', sí se infiere de ambas propiedades.

Para probarlo, analicemos el razonamiento P 1: Vx(Rxy ➔ Ryx)~ P2:


Vxyz((Rxy /\ Ryz) ➔ Rxz), que vamos a particularizar para x = z, quedando
P2: Vxy((Rxy /\ Ryx) ➔ Rxx); C: Vxy((Rxy v Ryx) ➔ (Rxx "Ryy)), cuya
negación, --.C, es 3xy((Rxy vRyx)A(--,Rxx v --.Ryy)).

111
Capítulo IV: Otras lógicas

Las fonnas clausuladas de las premisas y de la negación de la conclusión


(que tiene dos) son, entonces:

i) -,Rxy v Ryx

ii) -,Rxy v-,Ryx vRxx

iii-1) Rab v Rba

iii-2) -,Raa v -,Rbb .

De (i) y (iii-1), para x = a, e y= b, se tiene (iv): Rba.

De (i) y (iii-1), para x = b, e y = a, se tiene (v): Rab.

Ahora, de (iv) y (ii), se obtiene, para x = b e y = a, (vi): --,Rab v Rbb.

Ahora, de (v) y (ii), para x = a e y = b, (vii): -,Rba v Raa

De (vi) y (v) se tiene (viii) Rbb; de (vii) y (iv), (ix) Raa; por último, se puede
llegar a la cláusula vacía desde (iii-2), (viii) y (ix). Con este nuevo criterio la
relación vacía es reflexiva (el criterio define la reflexividad en fonna
condicional).

7. "=" es el signo de la relación de identidad (tautología de la forma 'x=x'),


(p. ej. 5 = 5), y que sirve para definir un dominio generalizado U: v'xUx,
o bien v'xPx t t P = U, cuando xeU +-► x = x; y sirve para definir el
conjunto vacío así: xe 0 tt x -:;:. x ( tt ,(x = x) ), o sea como el
conjunto de los elementos que 'satisfacen' (si es que esta expresión es
aquí válida) una contradicción. P. ej: xe0 tt (Px /\ ,Px), cualquiera
que.sea P.

8. "=" sirve a veces para definir un signo. Por ejemplo: '4' "es" '3+1 ', es
la definición de '4' (o sea ' 4 es el siguiente de 3'): Esto no es ni
verdadero ni falso, sino simplemente la introducción de un signo (a la
izquierda del '=' se escribe el nombre y a la derecha el significado); en
cambio, al ser utilizado en las expresiones '4 = 2+2' o '4 = 1+ 3 ', el
signo de igualdad expresa un teorema, es decir, estas dos expresiones
son demostrables: por ejemplo '4 = 2+2' se puede probar así: '4 = 3+ l ',
por definición de '4'; de ahí, '4 = (2+ 1) + l ', por definición de '3'; de
ahí '4 = 2+(1+1)', por la propiedad asociativa de la suma (que es, a su
vez, un teorema demostrable); y ahora '4 = 2+2', por definición de '2'.

112
IV.2 Lógica de predicados con identidad

El teorema '4 = 1+ 3' necesita de la definición de '4' y de las


propiedades conmutativa o asociativa de la suma. Y en ambos casos
hacen falta las propiedades transitiva y simétrica (axiomáticas) de la
igualdad, que veremos a continuación y que en lenguaje coloquial se
enunciarían conjuntamente como: 'Dos cosas iguales a una tercera son
iguales entre sí'.

9. Axiomas de la igualdad. Por último, se puede definir el signo de igualdad


mediante una axiomática, pero no se debe confundir este procedimiento
con el de definición por equivalencia entre clases, como en 2); sino
como la mera introducción de un signo añadido a los de lógica de primer
orden sin el contenido semántico que se le ha atribuido a un predicado
diádico cualquiera. Estos axiomas son: i) 't/x (x = x); ii) 't/xy( x = y ➔ y
= x); iii)'t/xyz( (x =y/\ y= z) ➔ x = z).
Ejemplo 2. Las definiciones de igualdad (1), (2) y (3) son efectivamente equivalentes, o
sea que Vxy(\iP(PxttPy) ~ Vz(xez~yez) ~ Vz(zex~zey)).
Supongamos que (1) no es equivalente a (2). Entonces, 3xy(\iP(Px~Py)~
3z(xez~y~z)); sean esos x e y, las constantes a y b; entonces
\iP(Pa~Pb)~3z(aez~biz). Sea ese z, zO; llamando Q al predicado
'ezO', el segundo miembro se transforma en 3Q(Qa ~ --,Qb), que
contradice el primer miembro. Supongamos ahora que ( 1) no es equivalente
a (3). Entonces se tiene que VP(Pa ~Pb)~ 3z(zea~z~b). Sea ese z, zO, y
sea Qx ~ zOex (o sea Q es 'zOe', predicado que se satisface para una clase
x si y sólo si zO es un elemento de ella); entonces el segundo miembro de la
expresión es equivalente a 3Q(Qa ~ --.Qb), que contradice el primer
miembro.

La partícula "es" no puede siempre simbolizarse por '='. Por ejemplo el


- enunciado "Virgilio es el más famoso poeta latino" se puede considerar como un
caso de "x = y" y podría adoptar las otras formas antes indicadas para el signo de
identidad, tales como:

Virgilio es idéntico al más famoso poeta latino (IV-la)


Virgilio es lo mismo que el más famoso poeta latino (IV-lb)
.
Sin embargo, los enunciados:

Sócrates es un hombre (IV-2)


Los limeños son peruanos (IV-3)
La rosa es roja (IV-4)

113
Capítulo IV: Otras lógicas

no se pueden considerar como ejemplos de "x = y". Mientras el "es" de (IV-1)


expresa identidad, el de (IV-2) expresa pertenencia de un miembro a una clase, el
(IV-3) expresa inclusión de wía clase en otra y el de OV-4) expresa predicación.
Esto nos lleva a distinguir varios sentidos del verbo "ser".

1. El "ser" de la identidad, simbolizado por '=', flanqueado por dos


términos singulares, dos nombres de clases o dos nombres de relaciones.
Objeto de estudio en la lógica de predicados con identidad.

2. El "ser" de la pertenencia, simbolizado por 'e', flanqueado a la derecha


por el nombre de una clase y a la izquierda por el nombre de una entidad
perteneciente a esta clase. Objeto de estudio en la lógica de las clases.

3. El "ser" de la inclusión, simbolizado por 'e', flanqueado a la derecha


por el nombre de una clase y a la izquierda por el nombre de otra clase
incluida en la primera. Objeto de estudio en la lógica de las relaciones.

4. El "ser" de la predicación, implícito en el esquema "Px" objeto de


estudio en la lógica de predicados.

La introducción del signo de identidad hace posible el análisis de


cuantificadores numéricos, como son los siguientes:

Hay por lo menos n x, tales que


Hay a lo sumo n x, tales que
Hay exactamente n x, tales que

En efecto, "hay por los menos dos entidades que tienen la propiedad P" se
puede expresar como:

3xy(Px /\ Py /\ x :;é y) (IV-5)

es decir, existen algún 'x' y algún 'y', tales que Px, Py y 'x' es distinto de 'y'. La
negación de esta sentencia representa "hay a lo sumo una entidad que tiene la
propiedad P". Por otra parte "hay exactamente una (existe una única) entidad que
tiene la propiedad P" se expresará como:

3x(Px /\ v'y(Py ➔ x = y)) (IV-6a)

o bien

114
IV.2 Lógica de predicados con identidad

3(l)xPx (IV-6b)

(a veces se colóca el 1 en la parte superior del cuantificador existencial)

La lógica de la identidad acoge también en su seno la lógica de las llamadas


descripciones. Las descripciones son expresiones que se inician con el artículo
determinado singular "el" o "la", tales como "la Reina de Inglaterra", y que
pretenden nombrar una entidad dada.

Consideremos los siguientes cuatro enunciados:

El Rey de Francia es anglófobo (IV-7)


El autor de Principia Mathematica era inglés (IV-8)
La Reina de Inglaterra es calva (IV-9)
El autor del Quijote es español (IV-10)

Los tres primeros enunciados son falsos; el cuarto, verdadero. (IV-7) es falso,
porque no hay Rey de Francia; (IV-8) es falso, porque los autores de Principia
Mathematica son dos; (IV-9) es falso, porque aun cuando hay por lo menos una y a
lo sumo una Reina de Inglaterra, esta Reina no es calva. Se sigue de ello que para
que un enunciado descriptivo de la forma:

El tal es tal y cual (IV-11)

sea verdadero, debe satisfacer tres condiciones:

1. Debe haber por lo menos un tal.

2. Debe haber a lo sumo un tal.

3. El tal en cuestión, cuya existencia y carácter único son requeridos por 1.


y 2., debe ser tal y cual.

(IV-7) es falso, porque no satisface la condición l.; (IV-8) es falso, porque no


satisface la condición 2.; (IV-9) es falso, porque no satisface la condición 3.;
(IV-10) es v:erdadero, porque satisface las tres condiciones.

El 'descriptor', 'i ', se usa así: x = iyPy, que se lee: 'x' es el 'y' tal que 'Py'.
A principios del siglo XX, B. Russell adoptó el muy aceptable convenio de que este
signo es suprimíble en términos del cuantificador '3' y del signo de igualdad '=', en
la forma siguiente: si tal 'x' no existe, la frase anterior dice que la clase Pes vacía o

115
Capítulo IV: Otras lógicas

que el predicado 'Py' es universalmente falso, y si tal 'x' existe, la frase dice que
(existe y es único) 'x' es el único 'y' que satisface 'Py'. Por ejemplo:

7 es, en el conjunto de los números naturales, el x tal que x2=49

En el caso de existencia y unicidad de ese 'y', si así ocurre, la descripción se


llama propia (Russell, 1903); y si no, la descripción se llama impropia (por
ejemplo, el 'y' tal que es el actual rey de Francia). La descripción propia también
se puede formular así: El x, tal que Qx, satisface Ex. (P. ej. El x tal que escribió El
Quijote, era español: 3z(Qz /\ Ez) (hay alguien que escribió el Quijote y era
español), pero, por motivos metodológicos debe exigirse también la unicidad. Si la
descripción fuese impropia se formularía de esta otra forma que veremos mejor con
un ejemplo:

El actual rey de Francia se llama Luis

Sean P, 'se llama Luis', y Q, 'es rey de Francia actualmente'. Entonces la


descripción impropia queda así:

P(ixQx) = -,3x(PX/\Qx)

pero con ambos, pues quizá alguien (x), puede llamarse Luis, sin ser el actual rey de
Francia y satisfacer Px. Otro ejemplo: 'x es aquel número real cuyo cuadrado sea -
l' (no hay ninguno), o 'x es el número complejo cuyo cuadrado es -1 ', (hay dos).
Esta última puede ser transformada en propia así: 'x es el conjunto de los números
complejos cuyo cuadrado es -1 '.

Por lo tanto:

3x(Px /\ \fy(Qy tt x = y)) (IV-12)

es una generalización del enunciado (IV-1 O), donde "P" y "Q" son dos letras
predicados cualesquiera, concretamente en (IV-10) "Q" está abreviando "autor del
Quijote" y "P" está abreviando "ser español". La definición resultante ofrece un
interés considerable:

l. Proporciona .un análisis del papel lógico desempeñado por los artículos
determinados "el", "la".

2. Explicita las diversas condiciones bajo las cuales son verdaderos los
enunciados descriptivos.

116
/V.2 Lógica de predicados con identidad

3. Pennite eliminar todos los nombres constantes del vocabulario primitivo


de un lenguaje dado, por ejemplo, el nombre propio "Quevedo" puede
ser sustituido por la descripción "el x tal que escribió el Buscón".

De un modo general, cualquier nombre propio "N" puede ser sustituido por la
descripción "El x tal que P(x)", donde "P" es un predicado verdadero de N y sólo de
N.

Los problemas con el descriptor pueden ser aparentemente complicados, pero


son muy reducibles si se cambia la notación un poco y se aplica la definición. El
descriptor debe definir algo existente (lo que en lógica quiere decir que su existencia
no lleve a contradicción con otras posibles premisas admitidas ni a
autocontradicción) y único, de manera que, por convenio, cualquier predicado de la
forma Rz /\ z = itQt, sea R(itQt), si t existe y es único, y si no ocurre así, toda la
expresión será sustituible por el valor F o O (falso) para ser operado con las
funciones lógicas. Así puede darse como definición del descriptor, la aceptación del
'razonamiento' (que en realidad es una regla de inferencia nueva):

l. Para la descripción propia, P l: 3zQz; P2:v'xy( (Qx /\ Qy) ➔ x = y)), y,


C: R(itQt), si z =itQt y si zeR (o Rz).

2. Para la descripción impropia, P l: R(itQt) es falso. C: -,3z(Qz /\ Rz))v


3xy(Qx /\ Qy /\Rx /\ Ry /\ x-:;:. y).

Ejemplo 3. Pruébese la validez del razonamiento siguiente en la que se pone de


manifiesto el uso del descriptor.

PI: 3zv'x Pxzx


P2: v'uw (v'x(Pxux /\ Pxwx) ➔ u = w)

y donde la conclusión es:

C: VxP(x, iyVxPxyx, x).

Haciendo ahora el cambio (definiendo un Q) Qz ~ V ~ resulta que la


· primera premisa queda sencillamente 3zQz; y la segunda, v'uw( (Qu A Qw)
. ➔ u = w); la conclusión queda como Q(iyQy), pero este formato de
premisas y conclusión es precisamente el de la descripción propia, luego el
razonamiento era correcto.

117
Capitulo IV: Otras lógicas

El descriptor puede usarse también para definir, que es el caso que se muestra
en el siguiente ejemplo:

Ejemplo 4. Escribamos las definiciones de máximo y mínimo, si existen, para


subconjuntos de N (conjunto de los números naturales) con notación lógica:
Sea P un predicado y sea 'a' el máximo de los 'x' tales que Px. Entonces a=
ix(Px A v'y( Py ➔ x ~ y)); la eliminación del descriptor puede hacerse por
diferentes caminos, asi como la del signo mayor o igual. Este último se
elimina, por ejemplo, z ~ y ~ 3t (y + t = z), lo que lleva a la definición de
desigualdad estricta z > y ~ 3t((y + siguiente(t)) = z). Como se ve, es
necesaria, o bien la función del siguiente , o bien la suma. Para el mínimo el
procedimiento es análogo y se deja al lector. Otra definición para la
*
desigualdad estricta es z > y ~ (z ~ y A z y).

IV.3 Lógica de las clases

Como vimos en el apartado dedicado a la lógica de predicados con identidad,


el verbo "ser" se puede interpretar de varias formas; una de ellas es la que expresa
pertenencia de un miembro a una clase. Entonces, se simboliza mediante el signo
'e' que se lee "pertenece a la clase", "es miembro de la clase". También se lee "es
elemento de la clase". Así, el enunciado "El Amazonas es un río" se puede leer "El
Amazonas es un miembro de la clase de los ríos" o, en símbolos "El Amazonas e
los.ríos". Con ello se introduce en la lógica una nueva noción: la noción de clase.

En la literatura lógica se ha debatido con frecuencia sobre la relación que hay


entre la clase y la propiedad. Algunos autores las identifican, otros autores rechazan
tal identificación. Sin pronunciarnos al respecto, observemos que a toda clase
corresponde (por lo menos) una propiedad, y que a toda propiedad corresponde una
clase. Por ejemplo, a la propiedad de ser humano le corresponde la clase de los
hombres, pero a la clase de los hombres corresponden otras propiedades, además de
la de ser humano (verbigracia, la propiedad de ser un animal racional). La
propiedad se puede considerar como la comprensión de la clase; la clase se puede
considerar como la extensión de la propiedad. No obstante, este criterio es intuitivo
y puede originar c:Uficultades, como ocurre con la paradoja de Russell.

Puesto que a toda propiedad corresponde una clase, y los predicados


monádicos representan propiedades de los individuos, todo lo que se pueda
representar en lógica de predicados monádicos se puede representar en lógica de
clases y estudiar con las herramientas del álgebra de Boole. Esta álgebra fue
desarrollada principalmente por el lógico inglés George Boole. Aunque suponemos

118
JV.3 Lógica de clases

que el lector conoce el álgebra booleana, a continuación vamos a repasar algunos de


los conceptos y definiciones relativos a dicha álgebra.

IV.3.1 Álgebra booleana de las clases

Como hemos indicado antes, la pertenencia de un miembro x a una clase A


se representa con el símbolo 'e ':

x eA

que leemos como "x pertenece a la clase A".

La no pertenencia, -, ( x e A ), la representamos con el símbolo 'é ':

xéA

Una clase se puede definir de la forma

A= {x I A(x)} (IV-13)

que leemos: "la clase de todos los x tales que verifican A(x)". Donde, aunque es
habitual utilizar distinto símbolo para referirse a la clase y para referirse a la
propiedad (predicado), se ha empleado el mismo símbolo para ambos con el fin de
no complicar la notación.

Con estos recursos simbólicos podemos definir las operaciones sobre clases:

I. Inclusión:

A e B = 'vx ( x e A ➔ x e B ) (IV-14)

Se dice que una clase A está incluida en una clase B, o que A es


subconjunto de B, cuando todos los miembros de A son miembros de B.

2. -Identidad:

A = B = "vx ( x e A~x e B) (IV-15)

La clase A es idéntica a la clase B cuando todo miembro de A es


miembro de B y todo miembro de B es miembro de A.

119
Capitulo IV: Otras lógicas

3. Unión:

AuB={xl(xeAvxeB)} (IV-16)

La unión de las clases A y B es la clase compuesta por todos los


miembros que pertenecen a A o a B o a ambas.

4. Intersección:

AnB~{xl(xeAAxeB)} (IV-17)

La intersección de las clases A y B es la clase compuesta de todos los


miembros que pertenecen a la vez a A y a B.

5. Complemento:

(IV-18)

El complemento de una clase A es la clase de todos los miembros que no


pertenecen a A.

Recuérdese también que la clase vacia, representada por el símbolo ' 0 ', es
la clase a la cual no pertenece nada, y la clase referencial o dominio representada
por 'U', es la clase a la cual pertenece todo aquello a lo que nos estamos refiriendo.

Para que la lógica de las clases tenga estructura de álgebra de Boole se tienen
que verificar las siguientes propiedades:

l. Si A y B son dos clases cualesquiera entonces: A, A u B, A n B son


clases. Es decir, las operaciones de complemento, unión e intersección
son cerradas sobre el conjunto de las clases.

2. La clase vacía '0' y referencial 'U' son los elementos neutros para la
unión y la intersección respectivamente, por tanto para cualquier clase A
se verifica que: .

Au0=A (IV-19)
AnU=A (IV-20)

3. Para toda clase A, la unión con su complementario es la clase referencial


y la intersección la clase vacía:

120
IV.3 Lógica de clases

AuA =U (IV-21)
An A =0 (IV-22)

4. La unión y la intersección son conmutativas:

AuB=BuA (IV-23)
AnB=BnA (IV-24)

5. La unión y la intersección son asociativas:

Au(BuC)=(AuB)uC (IV-25)
An(BnC)=(AnB)nC (IV-26)

6. La unión es distributiva con respecto a la intersección y viceversa:

Au ( B n C) = ( Au B )n ( Au C) (IV-27)
An (Bu C) = ( An B )u( An C) (IV-28)

Con las definiciones dadas de unión e intersección es fácil comprobar que se


cumplen estas propiedades.

En un álgebra de Boole, estas propiedades pueden tomarse como axiomas a


partir de los cuales se pueden demostrar teoremas o leyes mediante la aplicación de
la sustitución como regla de transformación. Por ejemplo:

La ley de idempotencia:

AuA=A (IV-29)

se puede demostrar a partir del axioma 6 (IV-27) sustituyendo B por A y C por A:


-
Au( A nA)=(Au A )n(AuA)
-
aplicando el axioma 3

Au0=Un(AuA)

y con el axioma 2 queda demostrado que A = A u A.

Análogamente se puede demostrar que

121
Capitulo IV: Otras lógicas

AnA=A (IV-3O)

u otras leyes como:

Leyes de absorción:

AuU=U (IV-31)
An0=0 (IV-32)
Au(AnB)=A (IV-33)
An(AuB)=A (IV-34)

Leyes de De Morgan:

(AuB)=AnB (IV-35)
(AnB)=AuB (IV-36)

Los axiomas y leyes del álgebra booleana de las clases son paralelos a los de
la lógica de proposiciones. Así (IV-21) corresponde a la ley del tercio excluso (1-
54), (IV-22) a la ley de contradicción (1-55), (IV-23) y (IV-24) a (l-58a) y (l-58b),
etc. Dejamos al alumno que exprese en lógica de clases todas las leyes dadas en el
apartado l. 6.

IV.3.2 Comprobación mediante diagramas de Euler

Representando las clases mediante diagramas de Euler se pueden comprobar


intuitivamente razonamientos de una forma gráfica. Por ejemplo, para analizar de
una forma gráfica el siguiente razonamiento:

p ➔ q

q ➔ r

(IV-37)
p ➔ r

Se tiene en cuenta que la sentencia "si p entonces q" es equivalente a decir


que "toda pes q", en diagramas de Euler esta sentencia se representa dibujando la
clase P, correspondiente a la clase de todas las proposiciones p's, incluida en la
clase Q, de todas las proposiciones q 's, tal como se indica en la figura IV-1.

122
IV.3 Lógica de clases

Análogamente, la proposición "si q entonces r" se puede escribir en la forma


"toda q es r"; es decir, Q es una subclase de R, por lo que en la figura IV-1 Q está
incluida en R. -

En el diagrama de la figura IV-1 se ve claramente que P es una subclase de


R. O sea, "toda pes r" o "si p entonces r" que es la conclusión de (IV-37).

También se puede comprobar gráficamente que la conclusión:

,r ➔ ,p (IV-38)

es válida. Para ello hay que tener en cuenta que -,r pertenece a la clase
complementaria de R, y -,p a la complementaria de P. En el diagrama de Euler
podemos ver que R está incluido en P, luego (IV-38) también es una conclusión
válida de las premisas de (IV-37).

Figura IV-1: Representación en diagramas de Euler del razonamiento (IV-37).

Dejamos como ejercicio la comprobación que las sentencias "r ➔ p" y "q ➔
p" no son conclusiones válidas para el razonamiento anterior y que "-,q ➔ -,p" sí
lo es.

Ejemplo 5. . Comprobar la validez de siguiente argumentación:

Algunos estudiantes son atractivos


Todas las chicas son atractivas

Algunos estudiantes son chicas

123
Capitulo IV: Otras lógicas

En primer lugar dibujamos los diagramas de Euler para las dos premisas.
Puesto qu~ según la primera premisa "algunos estudiantes son atractivos",
dibujamos el diagrama de la figura IV-2 1, aunque la clase de los estudiantes
podría haberse dibujado como una subclase de la clase de las personas
atractivas.

Figura IV-2: Representación en diagramas de Euler de la sentencia


"algunos estudiantes son atractivos".

a)

Figura IV-3: Representación en diagramas de Euler de las tres posibilidades


para el razonamiento del ejemplo 5.

1
Por simplicidad, en la mayoría de los diagramas de Euler suprimiremos la representación
de la clase Referencial.

124
JV.3 Lógica de clases

Acabamos de representar la clase de las chicas como una subclase de la


clase de las personas atractivas. Aquí se dan varias posibilidades que se
reflejan en los tres diagramas de la figura IV-3.

En dos de los diagramas de la figura IV-3 se concluye que algunos


estudiantes son chicas. Pero, como puede verse en el diagrama (a), no
estamos obligados a aceptar esta conclusión. Por tanto podemos concluir que
el razonamiento no es válido. La comprobación intuitiva mediante
diagramas de Euler tiene un carácter auxiliar y no debe ser aceptada como
prueba.

IV.4 Lógica de las relaciones

Así como la lógica de las clases es equivalente a la lógica de predicados de


primer orden monádicos y su modelo matemático es el álgebra booleana de las
clases, la lógica de las relaciones es equivalente a la lógica de predicados poliádicos
y su modelo matemático es el álgebra de relaciones. En efecto, los enunciados
diádicos:

Ricardo ama a Celia


José es más joven que Antonio

y los enunciados triádicos:

Venus está entre Mercurio y la Tierra


El cartero entrega una carta a Mercedes

expresan respectivamente las relaciones "amar a", "ser más joven que", "estar entre
... y", "entregar ... a". Las relaciones que gobiernan a dos entidades se denominan
relaciones diádicas o binarias, a las de tres triádicas, etc.; para simplificar las
llamaremos desde ahora simplemente relaciones.

La definición de relación que vamos a ver va lógicamente unida a la de par


ordenado y a la de producto cartesiano. B. Russell afirmaba, a principios del siglo
XX, que es insostenible la 'definición' de par ordenado así: Un par ordenado es un
conjunto formado por dos elementos en el que se puede distinguir el primero del
segundo. Efectivamente, para construir 'primero' y 'segundo' hace falta una
relación de orden, la cual, por ser relación, se definirá por medio de un producto
cartesiano, que es un conjunto de pares ordenados: así la 'definición' es
autorredundante o circular (entra lo definido en la definición). Una definición que
elimina esta situación, y formulada con la notación lógica (según Kelley y

125
Capitulo IV: Otras lógicas

Kuratowski), es un clásico de las definiciones de teoría de conjuntos: Un par


ordenado (x, y) es un conjunto que tiene dos elementos y sólo dos: uno es el
conjunto unitario que tiene sólo por elemento a x; y el otro es el conjunto diádico (o
'díada', o que sólo tiene dos elementos) cuyos elementos son x e y. La formulación
de esto es:

\ixy( (x, y)= { {x},{x, y} } )

\ixyz(ze(x, y) tt ( \it( tez tt t = x) v \it( tez tt (t = x v t =y))))

\ixy ( (x, y) eAxB tt ( xeA /\ yeB))

La enepla ordenada se define por

(x(l), ... , x(n), x(n+l)) = ( (x(l), x(2), ... ,x(n)), x(n+l))

con lo que todo predicado n-ádico puede ser reducido a diádico.

Las relaciones las representaremos habitualmente por las letras 'P', 'Q', 'R',
'S ', etc., y un esquema relacional diádico lo escribiremos de la forma

Rxy o xRy (IV-39)

indicando todos los pares (x, y) que verifican que "x tiene la relación R con y". En
este esquema relacional a 'x' lo llamaremos relacionante y a 'y' relacionado.

Una relación binaria la podemos definir como una clase, de la forma:

R = { (x, y) 1R(x, y)} (IV-40)

que leemos "la clase de todos los pares ordenados (x, y) tales que el predicado R(x,
y) es cierto" o "la clase de todos los pares ordenados (x, y) que verifican la relación
R". Como en el caso de las clases, utilizaremos el mismo símbolo para la relación y
para el predicado.

El álgebra de las relaciones es una extensión del álgebra de Boole elaborada


por Augustus de Morgan y Charles S. Pierce. En el álgebra de las relaciones
también se define la relación vacía, la relación referencial y un conjunto de
operaciones, como las definidas en el álgebra de las clases, correspondientes a la
complementación, unión, intersección, inclusión, identidad:

126
IV.4 Lógicas de las relaciones

1. Inclusión:

Re S = 'vx'vy ( x R y ➔ x S y) (IV-41)

La relación R está incluida en la relación S si todas las parejas (x, y) que


verifican la relación R también verifican la relación S. Por ejemplo, la
relación "abuelo de" está incluida en la relación "antepasado de".

2. Identidad:

R = S = 'vx'vy ( x R y tt x S y ) (IV-42)

Las dos relaciones R y S son idénticas si todas las parejas (x, y) que
verifican la relación R también verifican la relación S y viceversa. Por
ejemplo, la relación "abuelo paterno de" es idéntica a la relación "padre
del padre de".

3. Unión:

R u s = { (x, y) 1 <x R y v x s y ) } (IV-43)

La unión de las relaciones R y S es una relación fonnada por todas las


parejas (x,y) que verifican la relación Ro la relación S o ambas. Por
ejemplo, la relación "progenitor de" es la unión de las relaciones "padre
de" y "madre de".

4. Intersección:

R n S = { (x, y) 1( xRy A x Sy) } (IV-44)

La intersección de las relaciones R y S es una relación formada por


todas las parejas (x, y) que verifican la relación R y la relación S. Por
ejemplo, la relación "hijo preferido de" es la intersección de las
relaciones "hijo de" y "preferido de"
-
5. Complemento:
R = { (x, y) 1 _, <x R y ) } (IV-45)

El complemento de la relación R es otra relación formada por todas las


parejas (x, y) que no verifican la relación R. Por ejemplo, el

127
Capítulo IV: Otras lógicas

complemento de la relación "idéntico a" es la relación "distinto de"; y el


de "menor que" es "mayor o igual que".

Además de las operaciones anteriores, que dan a la lógica de relaciones


binarias estructura de álgebra de Boole, se definen otras operaciones propias de las
relaciones:

5. Relación reciproca o inversa:

R' = { (y, x) 1 (x R y ) } (IV-46)

La relación recíproca de la relación R es otra relación formada por todas


las parejas (x, y) tales que su pareja recíproca (y, x) verifica la relación
R. Por ejemplo, la relación inversa de la relación "mayor que" es la
relación "menor que".

6. Composición:

Ro S = { (x, y) 13z ( x R z A z S y ) } (IV-47)

La composición de la relación R con la relación S es otra relación


formada por todas las parejas (x, y) tales que existe algún z de forma
que la pareja (x, z) verifica la relación R y la pareja (z, y) verifica la
relación S. Por ejemplo, la relación compuesta entre la relación "padre
de" y la relación "madre de" es la relación "abuelo materno de".

Un caso particular de composición de relaciones es la composición de


una relación R con una clase A, que es otra clase formada por todos los
x tales que existe algún miembro ('y') de la clase A relacionado
mediante R ·con él. Por ejemplo, la relación compuesta entre la relación
"padre de" y la clase de los "informáticos" es la clase "padres de
informáticos".

Así, si Hl y H2 son respectivamente el dominio y el rango de R (Re


HlxH2, prod. cartesiano de Hl y H2), se tienen las definiciones

RoA = {x I x e H l A 3y(x R y A y e H2 A y e A)} (IV-48a)

AoR = {y I y e H2 A 3x(x e A Ax e Hl Ax R y)} (IV-48b)

que es la clase de los hijos de informáticos.

128
IV.4 Lógicas de las relaciones

La composición de relaciones definida de esta forma no es conmutativa.

La clase resultante de restringir la clase de los "informáticos" con la


relación "padre de" es la clase de "informáticos que son padres"
(diferente de la relación que origina la clase de los padres de los
informáticos), y se llama restricción de R a A (RIA).

1. Dominio:

dom R = { x 13y ( x R y) } (IV-49)

El dominio de la relación R es la clase formada por todos los x tales que


existe algún "y" de forma que la pareja (x,y) verifica la relación R. Por
ejemplo, el dominio de la relación "abuelo de" es la clase de "todos los
abuelos".

8. Rango:

ran R = { y 1 3x ( x R y) } (IV-50)

El rango de la relación R es la clase formada por todos los "y" tales que
existe algún x de forma que la pareja (x,y) verifica la relación R. Por
ejemplo, el rango de la relación "abuelo o abuela de" es la clase de
"todos los nietos".

Según las definiciones (IV-49), (IV-50), (IV-48a) y (IV-48b), la


composición, R o A, de la relación R con cualquier clase A y la
composición, A o R, de cualquier clase A con la relación R son,
respectivamente, subclases del dominio de la relación y de su rango.

A raíz de estas cuatro operaciones, propias de las relaciones binarias, se


añaden otras leyes al álgebra de las relaciones, por ejemplo:

xR' y~yRx (IV-51)

a la que responde la siguiente sentencia "El tejado está encima del piso si y sólo si el
piso está debajo del tejado".

(R= S) ~ (R' = S') (IV-52)

129
Capitulo IV: Otras lógicas

según la cual podemos afirmar que la relación "padre o madre" es igual que la
relación "progenitor de" si y sólo si la relación "hijo o hija de" es igual a la relación
"engendrado por". -

(R e S) ➔ ( (Ro Q) e (S o Q) ) (IV-53)

según la cual podemos afirmar que como la relación "padre de" está incluida en la
relación "padre o madre de" entonces la relación "abuelo materno de", compuesta
de las relaciones "padre de" y "madre de", está incluida en la relación "abuelo o
abuela matemos de", compuesta de las relaciones "padre o madre de" y "madre de".

(R u S) o A == (R o A) u (S o A) (IV-54)

según la cual podemos afirmar que los amigos o amigas de políticos, clase obtenida
como composición de la unión de las relaciones "ser amigo de" y "ser amiga de"
con la clase de los políticos, son amigos de políticos o amigas de políticos.

(Re S) ➔ (dom Re dom S) (IV-55)

según la cual podemos afirmar que como la relación "padre de" está incluida en la
relación "padre o madre de" entonces la clase de "los padres" está incluida en la
clase de "los padres o madres".

(A e B) ➔ ((Ro A) e (Ro B)) (IV-56)

según la cual podemos afirmar que como "los caballos son animales'', "las cabezas
de caballos son cabezas de animales".

El interts informático del álgebra de las relaciones radica en el hecho de


constituir un modelo matemático de gran utilidad para el diseño de un tipo de bases
de datos, llamadas precisamente bases de datos relacionales. Este modelo se debe a
Codd (1970).

Mediante la notación lógica, pueden darse las definiciones y propiedades de


las diferentes relaciones. Por ejemplo, para las de orden:

1. Una relación R que cumple la propiedad transitiva se llama una relación


de orden simple. Esta definición se utiliza muy poco, porque la relación
de equivalencia también tiene esta propiedad y se prestaría a confusión.

130
JV.4 Lógicas de las relaciones

2. Si además de la propiedad transitiva tiene la propiedad asimétrica, dada


por v'xy(Rxy ➔ -,Ryx), la relación se llama relación de orden estricta;
· por ejemplo'<' en el conjunto de los números naturales.

3. Si además de la transitiva cumple que v'xy( x-:;::. y ➔ (Rxy v Ryx)), la


relación se llama de orden total.

4. Si además de las tres anteriores se cumple que todo subconjunto de su


dominio A (recuerde que R e AxA) tiene un primer elemento, la relación
se llama 'de buena ordenación'. Se dice que un elemento z de un dominio
es el primer elemento (si existe), cuando satisface v'xRzx con respecto a
esa relación.

En general, una relación es de orden, por antonomasia, cuando cumple las


propiedades reflexiva, antisimétrica y transitiva, dadas por la sentencia: v'xyz (Rxx
/\ ((Rxy /\ Ryx) ➔ x = y) /\ ((Rxy /\ Ryz) ➔ Rxz) ), (hemos puesto el criterio de
reflexividad v'xRxx). Observe que la antisimetría no es la asimetría. Pruebe que
algunas relaciones pueden ser lo uno y lo otro; otras, lo uno y no lo otro; otras,
viceversa; y otras ninguna de las dos.

IV.5 Lógicas polivalentes

La idea que motiva a todas las lógicas polivalentes, también llamadas


multivalentes o multivaloradas, radica en el hecho de que, a veces, somos
incapaces de asignar valores de verdad o falsedad absolutos a las sentencias. Las
lógicas polivalentes son aquellas lógicas de proposiciones que admiten más de dos
valores semánticos. Fueron estudiadas por Jan Lukasiewicz, quien en 1920 propuso
una lógica de tres valores (trivalente) y a comienzos de los años 1930 desarrolló una
lógica polivalente con un número infinito de valores.

La lógica clásica bivalente se puede extender al caso trivalente de varias


formas. En todas ellas es común utilizar los símbolos 1, O y ½ para indicar
"verdadero", "falso" y "ni verdadero ni falso, indeterminado". También es común
definir la negación -, p como 1 - p; esto es -, 1 = O, -, O = 1 y -, (½) = 1 - ½ = ½.
Pero las definiciones de las conectivas /\, v, ➔ y ~ difieren de un autor a otro,
dando lugar a lógicas trivalentes ligeramente diferentes. Lukasiewicz propone el
conjunto de conectivas recogidas en la tabla de verdad (IV-1).

131
Capítulo IV: Otras lógicas

Tabla IV-1: Lógica trivalente de Lukasiewicz.

P➔ p~q
o o o o 1 1
o ½ o ½ 1 ½
o 1 o 1 1 o
½ o o ½ ½ ½
½ ½ ½ ½ 1 1
½ 1 ½ 1 1 ½
1 o o 1 o o
1 ½ ½ 1 ½ ½
1 1 1 1 1 l

Otra característica importante es que las lógicas trivalentes ya no satisfacen


la ley del tercio excluso (1- 54) ni la ley de contradicción (1-55), ni algunas otras
tautologías de la lógica bivalente. Es habitual entonces hablar en términos de cuasi-
tautología cuando una fórmula lógica nunca toma el valor falso para cualquiera de
los valores asignados a sus variables. De la misma forma, se habla de cuasi-
contradicción cuando una fórmula lógica nunca toma el valor verdadero.

La generalización que hizo Lukasiewicz de su lógica trivalente consistió en:

1. Considerar n valores lógicos racionales igualmente espaciados dentro del


intervalo [O 1], definidos así:

{ -
- -
O
, -, - , ..... ,- -, - 1
1 2 n - 2 n- 1 }
º n- 1 n- 1 n- 1 n-1 n- 1 - (IV-57)

Estos valores se pueden interpretar como grados de verdad, y guardan


una cierta correspondencia con el lenguaje de las probabilidades.

2. Definir las conectivas básicas de la siguiente fonna:

-,p = 1-p (IV-58)

p /\ q = min(p,q) (IV-59)

132
JV.5 Lógicas polivalentes

pv q = max(p,q) (IV-60)

p➔q = min(l,l+q-p) (IV-61)

pttq = 1-lp-ql (IV-62)

Según estas definiciones se puede comprobar que Lukasiewicz usa sólo


la negación y el condicional como primitivas, y que las demás
operaciones lógicas se pueden expresar como sigue:

pvq=(p➔q)➔q (IV-63)

(IV-64)

(IV-65)

que coinciden con algunas de las equivalencias utilizadas en el sistema


axiomático PM del apartado 1-7.

También se puede comprobar que la lógica bivalente y la lógica


trivalente están englobadas en la generalización, para n = 2 y n = 3,
respectivamente.

Ejemplo 6. Vamos a comprobar que se cumple la equivalencia (IV-63) en la lógica


trivalente. Para ello formamos la siguiente tabla de verdad, en la que se ha
utilizado la definición de la conectiva ' ➔ ' dada en la tabla IV-1.

p q P➔q <P ➔ q) ➔ q
o o 1 o
o ½ 1 ½
o 1 1 1
½ o ½ ½
½ ½ 1 ½
½ 1 1 1
1 o o 1
1 ½ ½ 1
1 1 1 1

Basta entonces comparar el resultado de esta tabla con la columna


correspondiente a la sentencia pvq en la tabla IV-1, para comprobar que
ambas sentencias son equivalentes.

]33
Capítulo IV: Otras lógicas

Entre los problemas suscitados por las lógicas polivalentes, hay tres que
merece la pena destacar brevemente. El primero es el problema de interpretación de
sus valores de verdad. El segundo concierne a las objeciones muy similares que se
han dirigido contra la lógica bivalente, que algunos consideran insuficiente para
expresar los valores de verdad graduados que se manifiestan en el lenguaje
ordinario, en expresiones tales como "no completamente", "casi", "más o menos"
etc. Ya que estas mismas objeciones se pueden formular contra toda lógica
polivalente finita; sólo la lógica polivalente infinita puede escapar de ellas. El tercer
problema toca al uso de las lógicas polivalentes en el lenguaje científico,
especialmente en el de la fisica cuántica donde, como consecuencia del principio de
incertidumbre de Heisenberg, es necesario correlacionar cada valor de verdad con
un cierto grado de probabilidad (lógica probabilitaria).

A título meramente informativo daremos algunos ejemplos de otras lógicas


trivalentes además de la de Lukasiewicz.

1. Lógica de Kleene: Su '/\' y su 'v' son como en la de Lukasiewicz; para


'p ~ , utiliza max(l-p, q); para 'tt', como la de Lukasiewicz, excepto
para la pareja (1/2, 1/2), al que da valor 1/2 (para Lukasiewicz es 1).

2. Lógica de Bochvar. El '/\', si algún operando es 1/2, el resultado es 1/2;


si no, es el '/\' de lógica binaria. El 'v', como en Lukasiewicz, excepto
si los operandos son 1 y 1/2, en cuyo caso vale 1/2 (y, para Lukasiewicz
vale 1). El 'tt', como el de Kleene. El ' ➔', como su propio 'tt',
excepto para 'O ➔ 1', al que da el valor 1.

3. Lógica de Heyting: '/\', 'v', como en la de Lukasiewicz, ' ➔ 'como'~';


'tt' es'=', excepto para los valores 1 y 1/2, para los que da 1/2.

IV.6 Lógica borrosa

La lógica borrosa se puede considerar como una extensión de la lógica


polivalente con infinitos valores de verdad, pero va aun más allá que ésta. No sólo
se trata de considerar una infinidad de valores semánticos entre "verdadero" y
"falso", sino también de tener en cuenta que estos valores son imprecisos. El origen

134
IV. 6 Lógica borrosa

de la lógica borrosa está en la teoría de conjuntos borrosos 1 con un objetivo claro,


ofrecer los fundamentos para el razonamiento con incertidumbre, y por tanto
desempeñar un papel análogo al de la lógica de predicados en el razonamiento con
sentencias precisas.

El principal punto de interés de la lógica borrosa es el lenguaje natural, donde


los razonamientos aproximados con sentencias imprecisas son bastante habituales.
El siguiente silogismo es un ejemplo de este tipo de razonamientos, que no se
pueden abordar con la lógica de predicados ni con la simple extensión de valores de
verdad (representado por la lógica polivalente):

Normalmente, los muebles antiguos son dificiles de conseguir


Lo dificil de conseguir es caro

Normalmente, los muebles antiguos son caros

En este silogismo se han utilizado tres predicados borrosos (antiguo, dificil de


conseguir, caro) y un cuantificador borroso (normalmente). El mismo silogismo
seria válido si en lugar de "muebles antiguos" se hablara de "obras de arte", de
"buenos jugadores de fútbol", porque también representan cosas di:ficiles de
conseguir.

Para abordar los razonamientos aproximados, la lógica borrosa permite lo


mismo que la lógica de predicados más el uso de: predicados borrosos (antiguo,
dificil de conseguir, caro, obra de arte, bueno, etc.), cuantificadores borrosos
(muchos, pocos, algunos, la mayoría de, normalmente, etc.), modificadores borrosos
(muy, más o menos, casi, bastante, etc.), valores de verdad comprendidos entre O y
1, y distintas interpretaciones de las sentencias (casi cierta, cierta, muy cierta, casi
falsa, falsa, muy falsa, etc).

IV.6.1 Conjuntos borrosos

La lógica borrosa se basa en una generalización del concepto de conjunto,


que son los conjuntos borrosos. La necesidad de los conjuntos borrosos surge en
aquellas situaciones (particularmente, cuando intervienen consideraciones

1
La teoría de conjuntos borrosos fue presentada por Zadeh en el artículo: Fuzzy Sets,
Information and Control, Vol. 8, 1965, pp. 338-353. Este trabajo se puede considerar
como el punto de partida de todas las teorías sobre lógica borrosa y sus aplicaciones.

135
Capítulo IV: Otras lógicas

subjetivas) en las que resulta dificil determinar la pertenencia o no pertenencia de un


elemento a un conjunto. Por ejemplo, dados los siguientes conjuntos:

Números naturales mucho mayores que 100


Ríos largos
Personas pobres
Personas jóvenes
Hombres altos

Parece claro que 101 no pertenece al primer conjunto y que 1.000.000 sí,
pero ¿y 500? También parece claro que el Nilo pertenece al segundo conjunto, pero
y ¿el Guadalquivir? ¿Pertenece usted a alguno de los otros tres conjuntos? Tales
conjuntos pueden recibir el calificativo de "borroso", para indicar que no existe un
criterio que determine exactamente un límite entre pertenencia y no pertenencia al
conjunto. Se puede objetar que este calificativo no es real, sino subjetivo porque no
se han establecido los criterios de pertenencia. Así para el primer conjunto, se puede
establecer que un número natural es mucho mayor que 100 si como mínimo es
mayor que 1000; para el segundo, que un río es largo si su longitud supera un
número determinado de kilómetros; para el tercero, que es pobre toda persona que,
sin tener patrimonio, perciba ingresos inferiores al salario mínimo; y así
sucesivamente.

En los cinco ejemplos anteriores ha sido posible establecer un criterio


matemático de pertenencia al conjunto, pero en otros casos esto no es posible. Basta
que tratemos de formalizar las relaciones del hombre con su entorno, sobre todo en
la actividad más típicamente humana (el lenguaje), para que nos encontremos con
conceptos imprecisos. Por ejemplo, en lugar de describir el tiempo que hace en
términos del porcentaje de nubes que cubren el cielo, que sería muy complejo,
decimos "es un día soleado", que es una expresión menos precisa pero más clara.

De hecho, es importante destacar que la imprecisión, que es una característica


del lenguaje natural, no implica necesariamente una pérdida de exactitud o de
significado. Por ejemplo, es más útil dar indicaciones de direcciones en una ciudad
en términos de calles, manzanas, plazas, etc., que en términos de metros. Es,
también, más exacto decir "hace mucho calor un día de verano" que decir "hace una
temperatura de 40 ºC".

Dado un concepto y el· conjunto que lo representa, el hecho de establecer una


frontera clara, pero arbitraria, de pertenencia al conjunto supone precisar el
concepto pero tiene la contrapartida de que se pierde información. Por ejemplo, al
establecer que un río es largo si su longitud es superior a 200 Km, ocurre que dos

136
IV. 6 Lógica borrosa

ríos de longitudes tan diferentes como el Amazonas y el Ebro son "largos".


Evidentemente, el concepto "largo" así definido da una información muy pobre
sobre la longitud del río en cuestión. La manera más apropiada de dar solución a
este problema es considerar que la frontera de pertenencia al conjunto "Ríos
largos" no es brusca sino gradual.

Respecto al significado del término "soleado", cuando se refiere al porcentaje


de nubes que cubren el cielo, no puede ser totalmente arbitrario. No podemos usarlo
para únicamente indicar 0% de nubes, tampoco para un 100% de nubes (que seria
"día nublado"), ni para un 80% de nubes (que seguiría siendo un "día nublado").
¿Podemos, entonces, aceptar ciertos valores intermedios, tales como del 10% al
20% de nubes para indicar que el "día es soleado"? ¿Pero dónde se establece la
separación?, si, por ejemplo, 20% de nubes se considera soleado, ¿21 % ya no será
soleado? Este tipo de razonamiento nos llevaría a aceptar cualquier porcentaje de
nubes como día soleado. Para resolver esta paradoja, se considera que el término
"soleado" puede introducir vaguedad permitiendo una transición suave entre
porcentajes de nubes que hacen considerar el día como más o menos soleado.

El conjunto se define clásicamente de tal forma que separa radicalmente los


individuos de un discurso en dos grupos: miembros (los que pertenecen realmente al
conjunto) y los que no son miembros. Pero ya hemos visto que muchas de las clases
y categorías que se emplean en el lenguaje natural no se prestan a esa separación tan
radical; por el contrario la transición entre los miembros y no miembros es gradual.
El conjunto borroso es la solución para estos casos, porque introduce vaguedad y
elimina la separación brusca entre miembros.

Un conjunto borroso se define matemáticamente asignando a cada individuo


del universo de discurso un valor que representa su grado de pertenencia al
coajunto. Este grado de pertenencia es una medida del grado de compatibilidad
entre el individuo en cuestión y el concepto asociado al conjunto borroso. Los
grados de pertenencia se suelen representar por números reales en el rango de O a 1.
Así por ejemplo, un conjunto borroso representando el concepto "día soleado" puede
asignar un grado de pertenencia l a 0% de nubes, 0.8 a 20%, 0.4 a 30% y O.O a
porcentajes superiores al 75% de nubes.

Puesto que la total pertenencia y la total no pertenencia a un conjunto borroso


se pueden indicar por 1 y O, respectivamente, se puede considerar que los conjuntos
clásicos son un caso particular de conjuntos borrosos en los que sólo están
permitidos dos grados de pertenencia {O, 1}.

137
Capitulo IV: Otras lógicas

En general, dado un universo discreto o continuo U, se define un conjunto


borroso A por una función_ de pertenencia µA que asigna a cada elemento x del
universo un valor comprendido entre O y 1. Así, µA(x) representa el grado de
pertenencia del elemento x al conjunto A. Por ejemplo, la función

(IV-66)

cuya representación gráfica se muestra en la figura IV-4, puede servir para definir
el conjunto borroso de los números reales próximos a O. En este conjunto, el número
1 tiene un grado de pertenencia de 0.09, el número 0.25 tiene un grado de 0.62 y el
número O el mayor grado 1, obtenidos respectivamente al sustituir x por 1, 0.25 y O
en la función (IV-66).

0.8
JJA(X)

0.6

0.4

0.2

o,._______,___ __.,_ ____.,_ ___.__ __.__ ___.__ __.___----'


-2 -1.5 -1 -0.5 o 0.5 1 1.5 2
X

Figura IV-4: Una posible función de pertenencia para el conjunto borroso de los
números reales próximos a cero.

No se debe confundir grado de pertenencia con probabilidad. Principalmente


por la siguiente razón: ~o un universo finito, la suma de las probabilidades de los
distintos elementos tiene que ser la unidad; este requerimiento no se exige a los
grados de pertenencia y en general no se cumple.

Tampoco se debe confundir grado de pertenencia con medida borrosa, la


diferencia se pone de manifiesto en el siguiente ejemplo: pensemos en los miembros
de un jurado que no tienen certeza sobre la culpabilidad o la inocencia del acusado.

138
IV. 6 Lógica bollosa

El conjunto de personas que son culpables de un crimen y el conjunto de personas


que son inocentes tienen fronteras diferentes, son conjuntos disjuntos. Por tanto, no
se trata de representar el grado de culpabilidad del acusado sino el grado con que la
evidencia prueba su pertenencia al conjunto no borroso de las personas culpables o
al conjunto de los inocentes. Nuestra evidencia, sin embargo, no es habitual y en
algunos casos prevalece la incertidumbre. Para representar este tipo de
incertidumbre podemos asignar un valor a cada posible conjunto no borroso al que
el elemento en cuestión pueda pertenecer. Este valor se conoce como medida borrosa
e indica el grado de evidencia o de certidumbre sobre la pertenencia de un elemento
a un conjunto.

Un ejemplo quizás más claro de medida borrosa es el siguiente: supongamos


que estamos tratando de diagnosticar si un paciente pertenece al conjunto de
personas con: neumonía, bronquitis, enfisema o catarro. La entrevista personal y el
examen fisico nos permiten determinar ciertas evidencias. A partir de ellas, podemos
asignar un valor alto O. 75 a nuestro mejor candidato, bronquitis, y valores más
bajos a las otras posibilidades: 0.45 a neumonía, 0.3 a catarro y O a enfisema. Estos
valores reflejarán el grado con que los síntomas del paciente evidencian una
determinada enfermedad.

IV.6.1.1 Conceptos básicos

Este apartado presenta algunos de los conceptos básicos en la terminología de


conjuntos borrosos. Muchos de ellos son generalizaciones de la teoría clásica de
conjuntos pero otros son únicamente aplicables a los conjuntos borrosos. Para
ilustrar estos conceptos y clarificar ideas se va a considerar un conjunto universo U
discreto formado por las siguientes edades

U= edades= {5, 10, 20, 30, 40, 50, 60, 70, 80}

y cuatro conjuntos borrosos que representan los conceptos "bebé", 'joven",


"adulto" y "viejo". La tabla IV-2 muestra los grados de pertenencia de cada uno de
los elementos (edades) a los cuatro conjuntos.

La notación matemática que se suele emplear para un conjunto borroso,


definido sobre un wúverso discreto, es la del conjunto formado por todos los pares
de elementos del universo y sus grados de pertenencia al conjunto borroso. Es
habitual indicar sólo aquellos elementos que tengan grados de pertenencia distintos
de cero, separando con 'I' cada elemento y su grado de pertenencia y separando con
',' los distintos pares. Así cuando se escribe

139
Capítulo IV: Otras lógicas

(IV-67)
-
se está representado el conjunto borroso A, formado por los elementos x del
universo U con grado de pertenencia µA(x) distinto de cero.

Tabla IV-2: Ejemplo de cuatro conjuntos borrosos sobre el universo de las edades.

..
Elementos(edades) Bebé Joven adulto VIeJO

5 o 1 o o
10 o 1 o o
20 o 0.8 0.8 0.1
30 o 0.5 1 0.2
40 o 0.2 1 0.4
50 o 0.1 1 0.6
60 o o 1 0.8
70 o o 1 1
80 o o 1 1

De acuerdo con la tabla IV-2 y utilizando la notación (IV-67), las


representaciones de los conjuntos "bebé", ')oven", "adulto" y "viejo" en el universo
de edades U son las siguientes:

bebé= { } -

joven= {511, 1011, 2010.8, 3010.5, 4010.2, 5010.1}

adulto= {201 0.8, 301 1, 40 1 1, 50 1 1, 601 1, 70 1 1, 801 1}

viejo= {201 0.1, 30 j 0.2, 401 0.4, 501 0.6, 601 0.8, 7011, 80 11}

Se dice que un conjunto borroso A es un conjunto borroso vacio cuando


todos los elementos del universo U tienen grado de pertenencia al conjunto A igual a
cero. Por ejemplo el conjunto "bebé" es un conjunto borroso vacío dentro del
universo de edades elegido. Para indicar que se trata del conjunto borroso vacío
utilizaremos el mismo símbolo clásico '0 '.

140
IV.6 Lógica borrosa

Se llama altura del conjunto borroso al máximo valor de pertenencia obtenido


por cualquiera de los elementos. Se dice que un conjunto borroso está normalizado
cuando al ménos un elemento obtiene el mayor grado de pertenencia o, lo que es lo
mismo, cuando la altura es l. En la tabla IV-2, los conjuntos "joven", "adulto" y
"viejo" están normalizados, no ocurre así con el conjunto "bebé".

Se llama cardinal, card(A), de un conjunto borroso A, definido sobre un


universo finito U, a la suma de todos los grados de pertenencia de los elementos del
universo, y se expresa de la siguiente forma:

card(A) = LµA (x) (IV-68)


xeU

Luego, por ejemplo

card(viejo) =O+ O+ 0.1 + 0.2 + 0.4 + 0.6 + 0.8 + 1 + 1 = 4.1

IV.6.1.2 Operaciones típicas

La función de pertenencia, que como se ha visto anteriormente representa el


conjunto borroso, desempeña un papel importante en la operaciones con conjuntos
borrosos, puesto que todas ellas se definen como operaciones sobre sus
correspondientes funciones de pertenencia. En este apartado se presentan sólo
algunas de las posibles operaciones entre conjuntos borrosos, concretamente
aquéllas que constituyen la base de la lógica borrosa.

Se dice que un conjunto borroso A es un subconjunto de otro conjunto


borroso B, definido sobre un mismo universo U, si el grado de pertenencia de cada
elemento del universo al conjunto A es menor o igual que su grado de pertenencia al
conjunto B. Y se indicará mediante el mismo operador clásico de inclusión 'e':

"efx E U (IV-69)

Por ejemplo, con los valores de la tabla IV-2 se comprueba que el conjunto
"viejo" es un subconjunto de "adulto". Ello quiere decir que una persona que tenga
un cierto grado de pertenencia al conjunto "viejo" tiene al menos ese mismo grado
de pertenencia al conjunto "adulto".

Basados en el concepto anterior, se definen los conceptos de igualdad y de


desigualdad:

141
Capitulo JV: Otras lógicas

't/x E U (IV-70)

A ;é B s1 3x e U (IV-71)

Es decir, para que dos conjuntos borrosos sean iguales, todo elemento del
universo debe tener el mismo grado de pertenencia a los dos conjuntos. Para que
sean diferentes basta que la condición no se cumpla para alguno de los elementos
del universo.

Se define el complemento A de un conjunto borroso A, con respecto al


universo U, como el conjunto borroso obtenido asignando a cada elemento del
universo el complemento respecto a la unidad de su grado de pertenencia.

A = {X 1 µA (x) = 1- µ A (x)' \ifx E u} (IV-72)

Por lo que el complemento de "viejo" que podemos llamar "no viejo" tiene la
siguiente representación:

no viejo= {5 11, 1011, 2010.9, 3010.8, 4010.6, 5010.4, 6010.2}

se observa que el conjunto "no viejo" no coincide exactamente con el conjunto


')oven", que seria lo esperado en términos lingüísticos.

Se define la unión de dos conjuntos borrosos, AuB, como el conjunto


borroso obtenido asignando a cada elemento del universo el máximo valor de su
grado de pertenencia a cualquiera de los dos conjuntos.

A u B = {x 1 µAvB (x) = max(µA (x), µB (x)), 'vx e U} (IV-73)

Por tanto
. . .
Joven u V1eJo =

= {5 11, 1011, 2010.8, 3010.5, 4010.4, 5010.6, 6010.8, 7011, 801 1}


Se define la intersección de dos conjuntos borrosos, AnB, como el conjunto
borroso obtenido asignando a cada elemento del universo el mínimo valor de su
grado de pertenencia a cualquiera de los dos conjuntos.

A n B = { x 1 µAnB (x) = min{µA (x), µ 8 (x)), 'vx e U } (IV-74)

142
IV. 6 Lógica borrosa

En consecuencia,

joven· n viejo= {2010.1, 3010.2, 4010.2, 4010.2, 5010.1}

Se puede comprobar que las operaciones, anteriormente definidas, incluyen


como casos particulares las operaciones clásicas de conjuntos no borrosos o de las
clases, véase apartado IV.3.1, si las funciones de pertenencia toman exclusivamente
los valores O (no pertenencia) y 1 (total pertenencia). También se puede comprobar
que las operaciones con conjuntos borrosos comparten muchas de las propiedades
con las operaciones clásicas. Sin embargo no verifican la ley de contradicción ni la
ley del tercio excluso, ya que

An A ;é0 (IV-75)

(IV-76)

por tanto los conjuntos borrosos con las operaciones básicas anteriormente definidas
no pueden formar un álgebra de Boole.

Las operaciones de complementación, unión e intersección tal como se han


definido anteriormente constituyen las operaciones típicas de la teoría de conjuntos
borrosos y la base de la lógica borrosa, tal como la concibió Zadeh. Pero sólo se
pueden utilizar si los grados de pertenencia son números reales entre O y 1. Otros
autores han propuesto definiciones más generales, que también admiten como caso
particular la teoría clásica de conjuntos, y que dan lugar a otras tantas lógicas
borrosas.

La representación gráfica de las funciones de pertenencia es otra forma de


rep~esentar los conjuntos borrosos, que resulta muy útil para compararlos y para
operar con ellos. Sobre todo cuando el universo es continuo como ocurre en la
figura IV-4. En otros casos es la propia forma gráfica la que se utiliza para definir
la función de pertenencia, así es frecuente encontrar funciones de pertenencia
compuestas de tramos rectos, con formas triangulares o trapezoidales, etc ... De
manera que una simple ojeada a la gráfica diga mucho del concepto que se está
representando, y sin embargo su expresión analítica resultaría muy compleja.

La figura IV-5 muestra la representación gráfica de los grados de pertenencia


asociados a "bebé", ')oven", "adulto" y "viejo" en el universo de edades {5, 10, 20,
30, 40, 50, 60, 70, 80}. Con marcas, diferentes para cada conjunto, están
representados los distintos valores de la tabla IV-2 y, con trazos, también diferentes,

143
Capitulo IV: Otras lógicas

en línea recta, están unidos cada dos valores consecutivos en el universo de las
edades.

1 . + ......... + ........... + .......... + .......... -~ r··-···-···-•·


.,.
''
0.8 ••
.\
' joven (o)
\ viejo (x}
o;I

"i 0.6
\
\
\

i
-8 0.4 _.: adulto (+)
'Q
\
'
' >· ,,x,,
.,.

J 0.2
...
,, \
o,
.....
...""... ....
.... .,..X,,,, ...
bebé(.) .
o 'GI

o 10 20 30 40 50 60 70 80
Edad

Figura IV-5: Representación gráfica de los conjuntos borrosos de la tabla IV-2.

Observando la figura IV-5 se puede comprobar que: las alturas de "joven",


"adulto" y "viejo" son iguales a la unidad, y que el conjunto "viejo" es un
subconjunto de "adulto", ya que todos los valores de la función de pertenencia
"viejo" están por debajo o superpuestos a los de la función de pertenencia "adulto".

Los grados de pertenencia correspondientes a la unión e intersección de


')oven" y ''viejo" se obtienen fácilmente de las gráficas respectivas. La figura IV-6
muestra los resultados seleccionando el máximo valor (caso de la unión) y el
mínimo valor (caso de la intersección) para cada elemento del universo. En esta
figura no se han unido los valores consecutivos mediante tramos rectos pues dejan
de ser representativos respecto a los conjuntos individuales.

Como anticipo de las relaciones borrosas, a las que se dedica el próximo


apartado, se define el producto cartesiano, AxB, de dos conjuntos borrosos A y B,
definidos sobre universos U y V diferentes, como el conjunto borroso obtenido
asignando a cada pareja formada por un elemento de U y otro de V el menor de sus
grados de pertenencia al conjunto A y al conjunto B respectivamente. La operación
es similar a la intersección, salvo que, como los universos son diferentes, el conjunto
borroso resultante está formado por parejas.

144
IV. 6 Lógica borrosa

AxB = {(x, y> 1µ AxB (x, y> =mm(µ A(x), µB (y>), 'vx e u , 'vy e v } (IV-77)
.
1- X X X X

0.8 - X X -

·e;
=
u 0.6 -- jovenv viejo (x)
)(
-
~u )(

Q.
u
"CI 0.4 - X -
i 0.2 .. o o -
o joven n viejo (o)
o
o o o o
o-- Q
-
o 10 20 30 40 50 60 70 80
Edad

Figura IV-6: Representación gráfica de la unión y de la intersección de los


conjuntos ')oven" y "viejo" de la tabla IV-2.

Ejemplo 7. Si se elige el conjunto "joven"= J = {511, 1011, 2010.8, 3010,5, 4010.2,


50 1 0.1} de la tabla IV-2, y sobre el universo de las estaturas (en cm) se
define el concepto "persona de estatura media" = M = { 160 1 0.5, 170 1 1,
180 1 0.5}. El producto cartesiano de ambos conjuntos tiene la siguiente
representación,

Jx M = {(5,160) 10.5, (5,170) 11, (5,180) 10.5, (10,160) 10.5, (10,170) 11,
(10,180) I 0.5, (20,160) I 0.5, (20,170) I 0.8, (20,180) 10.5, (30,160) I 0.5,
(30,170) I 0.5, (30,180) I 0.5, (40,160) I 0.2, (40,170) 10.2, (40,180) I 0.2,
(50,160) I 0.1, (50,170) I 0.1, (50,180) I 0.1}

IV.6.1.3 Relaciones borrosas

-Una relación clásica, véase apartado IV.4, representa la presencia o ausencia


de asociación, interacción o interconexión entre los elementos de dos o más
conjuntos. Este concepto se puede generalizar asignando a cada grupo de elementos
un número, comprendido entre O y 1, que represente el grado de pertenencia a la
relación, en este caso borrosa, de la misma fonna que se hacía en los conjuntos

145
Capítulo IV: Otras lógicas

borrosos. De esta forma, la relación borrosa incluirá como un caso particular a la


relación clásica.

En general, dados n universos discretos o continuos U¡, U2 ... , Un se define


una relación borrosa R por una función de pertenencia µR que asigna a cada enepla
(x¡, x2 ... , xn) del producto cartesiano U¡xU2x ... xUn un valor comprendido entre
O y l. Así, µR(x¡, x2 ... , xn) representa el grado de pertenencia de la enepla (x¡, x2
... , xn) a la relación R.

Por ejemplo, la función de pertenencia (IV-66) se puede generalizar al


universo de las parejas (x,y) de números reales para representar la proximidad entre
ellos como sigue:

(IV-78)

Cuando en la relación intervienen sólo elementos de dos universos U y V, se


habla de relación borrosa binaria, denotada por R(U,V), que admite la siguiente
representación como conjunto borroso de parejas

(IV-79)

Por ejemplo, el producto cartesiano, definido por (IV-77) es un caso


particular de relación binaria borrosa, y en el resultado del ejemplo 7 se ha utilizado
la representación (IV-79) incluyendo sólo las parejas con grados de pertenencia
distinto de cero.

Ejemplo 8. D3:dos los conjuntos no borrosos de ciudades

U = { Cádiz, Gerona, Sevilla } V = { Cádiz, Toledo }

se establece la siguiente relación binaria borrosa "las ciudades españolas


xeU e yeV están muy lejos". A diferencia de la relación anterior, esta
relación es subjetiva y pennitiría múltiples representaciones. A continuación
se incluye \lllª posible representación matricial, que se ha construido
consultando la tabla de distancias kilométricas entre capitales de provincia
españolas y asignando valores entre O y 1 a las distintas parejas. El valor 1
representa la máxima distancia, O la distancia nula y el resto distancias
intermedias.

146
IV. 6 Lógica borrosa

Cádiz Toledo

Cádiz [
Gerona
O
1
0.4]
0.6
Sevilla 0.1 0.3

La relación admite entonces la siguiente notación como conjunto borroso

R(U,V) = { (Cádiz,Toledo) 10.4, (Gerona,Cádiz) 11, (Gerona,Toledo) 10.6,


(Sevilla,Cádiz) I 0.1, (Sevilla, Toledo) I 0.3 }

donde sólo se incluyen las parejas con grados de relación distintos de cero.

Como extensión de la definición de dominio en la lógica de las relaciones (IV-


49), se define el dominio de una relación borrosa binaria R(U,V) como el conjunto
borroso dom R(U, V) que asigna a cada elemento del conjunto origen U el máximo
grado de relación con cualquiera de los elementos del conjunto imagen V.
Matemáticamente hablando,

dom R(U, V) ={ x 1 µdom R (x) = max µR (x, y) 'vx E U, 'vy E V }


ll (IV-80)
yeV

En el ejemplo 8, el dominio de la relación es

dom R(U,V) = { Cádiz 10.4, Gerona 11, Sevilla 10.3 }

que se obtiene fácilmente de la representación matricial, hallando los máximos por


filas.

De la misma fo~ se define el rango de una relación borrosa binaria


R(U,V) como el conjunto borroso ran R(U,V) que asigna a cada elemento del
conjunto imagen V el máximo grado de relación con cualquiera de los elementos del
conjunto origen U.

ran R(U, V)= {y 1 µranR (y)= max. µR (x, y), 'vx e U, 't/y e V
xeU
J (IV-81)

En el ejemplo 8, el rango se obtiene fácilmente de la representación matricial,


hallando los máximos por columnas.

ran R(U,V) = { Cádiz 11, Toledo 10.6}

147
Capitulo IV: Otras lógicas

Si, en lugar de considerar los universos reducidos, U y V del ejemplo 8, se


hubiera considerado un unive_rso único (U = V = todas las ciudades españolas,
capitales de provincia) y la misma relación, un grado de pertenencia alto en el
dominio de esta relación significaría que existe alguna otra ciudad que está muy
lejos de ella, luego la ciudad correspondiente seria del litoral, por ejemplo Cádiz. Un
grado de pertenencia medio al dominio significaría que la ciudad es del centro, por
ejemplo Toledo.

Debido al carácter de conjunto borroso de las relaciones, las operaciones


típicas de conjuntos borrosos (inclusión, igualdad, desigualdad, complementación,
unión e intersección) se pueden aplicar a las relaciones borrosas, sin ninguna
modificación respecto a las definiciones del apartado (IV.6.1.2). A continuación se
define una operación propia de relaciones borrosas, como es la composición,
también definida en la lógica de las relaciones por la expresión (IV-47).

Dados los tres universos U, V, W, una relación binaria P entre elementos de


U y de V, y otra relación binaria Q entre elementos de V y de W, se define la
relación binaria compuesta R entre U y W, y se representa

R(U,W) = P(U,V) o Q(V,W) (IV-82)

como aquella relación borrosa que asigna a cada pareja (x,z) del producto
cartesiano UxW el grado de relación que resulta de la siguiente operación:

l. Para cada yeV se toma el mínimo de los grados de relación µp(x,y) y


JJQ(Y,Z).

2. El máximo de todos los mínimos anteriores es el grado de relación de la


pareja (x,z).

Matemáticamente hablando

R(U, W) = P(U, V) o Q(V, W) =


(IV-83)
= {(x, z) 1 PPoQ (x, z), \fx e U , "vy E V, \fz e W }

siendo

µPoQ (x, z) = max lmin{µp (x, y), µQ (y, z) )J


yEV

148
IV. 6 Lógica borrosa

La composición de relaciones se conoce como producto matricial max-min


(por analogía con el producto matricial), en la que la operación suma se sustituye
por la operación máximo y la operación producto por la operación mínimo.

Un caso particular de composición entre relaciones, utilizado en inferencia


borrosa y también empleado en la lógica de las relaciones, tiene lugar entre una
relación y un conjunto borroso. Dados los universos U, V, un conjunto borroso A
definido sobre el universo U y la relación binaria R entre elementos de U y de V, se
define la relación unaria compuesta B definida sobre V, como el siguiente conjunto
borroso

B = A o R(U, V) = {y 1 µ AoR (y), 'vx e U , 'vy e V, A e U, Be V } (IV-84)

siendo µAoR (y)= max (min{µA (x), µR (x, Y))]


XEU

IV.6.2 Diferencias entre la lógica borrosa y la lógica tradicional

La lógica borrosa se puede considerar como una ampliación de la lógica


polivalente con infinitos valores de verdad, pero va aun más allá que esta última y
que la lógica clásica. Entre las características que diferencian a la lógica borrosa de
la lógica tradicional se pueden destacar las siguientes:

1. En la lógica bivalente, una proposición puede ser verdadera o falsa, en


definitiva, una proposición puede tomar el valor lógico 1 o O. En la
lógica polivalente de Lukasiewicz, una proposición puede tener un grado
de verdad dentro del intervalo [O, l]. En la lógica borrosa, los valores
semánticos son conjuntos borrosos dentro del intervalo [O, l], con lo
cual una proposición puede tener distintos grados de pertenencia a los
llamados valores de verdad lingüísticos. Así por ejemplo, se pueden
definir los subconjuntos borrosos "muy cierto", "cierto", "algo falso",
"falso" y "muy falso" como posibles valores de verdad, de tal forma que
una proposición será muy cierta, cierta, algo falsa, falsa y muy falsa
pero no con carácter absoluto sino con distintos grados de pertenencia.

2. .En la lógica clásica los predicados son concretos, por ejemplo: mortal,
par, mayor que, ... etc. En la lógica borrosa los predicados pueden ser
·concretos, como los anteriores, o borrosos, como por ejemplo: barato,
joven, alto, cansado, inteligente, próximo a, ... etc.

149
Capítulo IV: Otras lógicas

3. La lógica polivalente (la bivalente como caso particular) admite sólo dos
cuantific3:(lores, el universal 'para todo' y el existencial 'existe un ...
tal que'. La lógica borrosa admite además cuantificadores borrosos
como: ' muehos,' ' pocos,' 'algunos,' 'la mayona ' de,' ... etc. Estos
cuantificadores se pueden interpretar como números borrosos que dan
una caracterización imprecisa del cardinal de un conjunto borroso o
clásico. Desde esta perspectiva, un cuantificador borroso se puede
considerar como un predicado borroso de segundo orden.

4. A diferencia de la lógica de predicados de primer orden, la lógica


borrosa admite una gran variedad de modificadores de predicados como
'no', 'muy', 'más o menos', 'casi', etc. Asignando operaciones sobre
conjuntos borrosos para cada uno de estos modificadores se consigue
que un computador pueda realizar cálculos con variables lingüísticas.
Las variables lingüísticas son variables cuyos valores son palabras o
sentencias en un lenguaje natural o artificial. Un ejemplo de variable
lingüística es la "edad" y un conjunto de posibles valores {bebé, joven,
adulto y viejo}, descritos en la tabla IV-2. Otro ejemplo es la
''temperatura" y el conjunto de sensaciones corporales {frío, agradable,
calor} como posibles valores. El concepto de variable lingüística
desempeña un papel importante en las aplicaciones de la lógica borrosa
y en el desarrollo de sistemas expertos.

5. La lógica borrosa es apropiada para la representación del conocimiento


humano, es decir, para modelar expresiones del lenguaje natural, en el
que el significado es generalmente impreciso y donde a veces la
vaguedad es más deseable que la precisión.

6. La lógica borrosa proporciona también un mecanismo apropiado de


inferencia. Este mecanismo se basa en expresar las premisas y las
conclusiones en forma canónica. La forma canónica es una
representación para poner en evidencia que cada premisa es una
restricción sobre una variable y que la conclusión es una restricción
calculada como propagación de restricciones. De esta forma, el proceso
de razonamiento borroso se reduce a la solución de un sistema no lineal
de ecuaciones, y por tanto es programable en un computador.

7. Un problema todavía no resuelto, con una teoría general en lógica


borrosa, pero para el que existen propuestas concretas es la
aproximación lingüística. Consiste en cómo encontrar una expresión
lingüística cuyo significado sea el del conjunto borroso obtenido de un

150
IV. 6 Lógica bo"osa

razonamiento previo. Este problema no se presenta en la lógica clásica,


ya que la transcripción lingüística de una conclusión es inmediata. .

8. La lógica borrosa tiene a su favor que incluye como caso particular no


sólo las lógicas bivalente y polivalente sino también la teoría de
probabilidades y la lógica probabilística. Concretamente en lógica
borrosa se puede hablar del grado de verdad de una determinada
sentencia o de la probabilidad que tiene la sentencia de ser verdadera.

IV.6.3 Sentencias borrosas

La lógica borrosa tiene el mismo aspecto sintáctico que la lógica de


predicados y su semántica se basa en el concepto de vaguedad formalizado en la
teoría de conjuntos borrosos. Eso quiere decir que para la lógica borrosa valen las
mismas reglas de formación que para la lógica de predicados. No obstante, la
utilización de funciones, típicamente aritméticas, en la lógica borrosa la alejan tanto
de la tradición lógica que muchos autores discuten que se le puede aplicar el
calificativo de lógica. La única defensa de la lógica borrosa es pragmática, pues con
ella se pueden modelar situaciones y construir sistemas que no se pueden abordar
con otras lógicas. A ello se debe el auge que la lógica borrosa ha adquirido en las
últimas décadas, encontrando aplicaciones en campos tan diversos de la ingeniería y '
de las ciencias sociales.

En lógica borrosa se trabaja con sentencias obtenidas enlazando predicados,


respetando las mismas reglas de formación que en la lógica de predicados. En
cuanto a símbolos:

1. Para las conectivas básicas disyunción (v), conjunción (/\) y condicional


( ➔) se utilizarán los mismos símbolos y con una interpretación similar a
la lógica clásica.

2. Para los modificadores, que son una novedad con respecto a la lógica de
predicados, donde sólo existe la negación (-,), se empleará el adverbio
correspondiente (por ejemplo 'muy').

3. En los temas dedicados a la lógica de proposiciones y a la lógica de


predicados se vió que la interpretación de una sentencia tenía como
resultado un valor de verdad, 'V' si es verdadera y 'F' si es falsa. En el
caso de la lógica borrosa, la interpretación de una sentencia tendrá como
resultado un grado de verdad dentro del intervalo [O, l], pero a su vez,
este grado de verdad puede estar referido a una interpretación verdadera

151
Capítulo IV: Otras lógicas

de la sentencia, o falsa, o muy verdadera o muy falsa. Aquí radica la


diferencia con la l{>gica polivalente, en la que el grado de verdad siempre
está referido a una interpretación verdadera, y por tanto O indica que la
sentencia es no verdadera (falsa) y l que la sentencia es totalmente
verdadera. No obstante por simplicidad y siempre que no se diga lo
contrario, en éste y en los próximos apartados sobre lógica borrosa nos
referiremos siempre a la interpretación "verdadera" de una sentencia. Se
utilizará el símbolo 'a.' para indicar el grado de verdad de una sentencia,
con valores comprendidos en el intervalo [O, l].

La interpretación en lógica borrosa está muy ligada al modelo de semántica


del lenguaje natural usando conjuntos borrosos. Las principales ideas sobre este
modelo han sido publicadas por Zadeh 1. Aunque el modelo de semántica que se
utiliza a continuación puede ser cuestionado y todavía es tema de investigación,
existen ya interesantes aplicaciones que demuestran que se trata de un modelo al
menos razonable.

IV.6.3.1 Interpretación de sentencias simples

Análogamente a la lógica de predicados, la interpretación de una sentencia es


dependiente no sólo del predicado o predicados que la forman sino también de los
elementos (sujetos) a los que se aplican. En este apartado comenzaremos con la
interpretación de sentencias simples, formadas por un predicado, que se irá
ampliando progresivamente a sentencias con varios predicados, sin modificar y
modificados, en los próximos apartados.

En este modelo semántico, el significado de una palabra se considera igual a


un conjunto, perfecta o no perfectamente determinado, formado por elementos de un
universo U. Este universo puede contener todos los posibles elementos
(independientes del contexto) o sólo los elementos relacionados con el contexto. En
general, nos referiremos al universo como un conjunto del segundo tipo. Así, el
conjunto de objetos en un piso, el conjunto de números naturales, el conjunto de
olores, el conjunto de plantas, son ejemplos de universos particulares.

Todo predicado monádico representa una propiedad, por ejemplo, "número


pequeño". Si consideramos el conjunto de predicados monádicos de un lenguaje

1
Quantitative fuzzy semantics, Infonnation Sciences, Vol.3, 1973, pp. 159-176.
The concept of a linguistic variable and its application to approximate reasoning,
Information Sciences, Vol. 8, 1975, pp. 199-249, 301-357, Vol.9, 1975, pp. 43-80.
Test-Score Semantics as a Basic for a Computational Approach to the Representa/ion of
Meaning, Literary and Linguistic computing, Vol. 1, 1986, pp. 24-35.

152
IV. 6 Lógica bo"osa

natural, podemos suponer que existe una medida para cada elemento del universo y
para cada predicado que expresa el grado de correspondencia entre ellos, y que, por
tanto, expresa la relación semántica.

Se puede definir el significado de un predicado monódico como el conjunto


borroso formado por todas las relaciones semánticas del predicado correspondiente
con los elementos del universo. Por ejemplo, dado el universo de los números
naturales N={0, 1, 2, 3, ... ,} y los predicados "número pequeño" y "número
grande", éstos se definen por las siguientes relaciones semánticas (funciones de
pertenencia):

1
µp(x)=l+O.lx (IV-85)

o X <1000
(IV-86)
x-1000
x~l0O0
x-999

Los conjuntos borrosos asociados al significado de estos predicados sobre el


conjunto de números naturales son:

P = números naturales pequeños= {n 11,l,p(n); 'ti ne N}

G = números naturales grandes= {n 1µo<n); 'ti n EN}

De manera que a la interpretación de una sentencia simple como "n es un


número natural pequeño" podemos asociar como valor de verdad el grado de
pertenencia del número natural n al conjunto borroso P. Por ejemplo, la sentencia "5
es un número natural pequeño" tiene un valor de verdad igual a

(5)- 1 2
µp -1+0.5 - 3

la sentencia "1005 es un número natural grande" tiene un valor de verdad igual a

(1005) = 1005-1000 = ~
µG 1005 -999 6

153
Capitulo IV: Otras lógicas

Dado un predicado monádico al que se ha asociado un conjunto borroso A 1,


que representa su significado, _a la interpretación verdadera de una sentencia
simple de la forma A(x), donde x es un elemento del universo U, se le asigna el
valor de verdad µA(x), es decir, el grado de pertenencia del elemento x al conjunto
borroso A. Se utilizará a partir de ahora la siguiente notación matemática para la
interpretación de sentencias simples con predicados monádicos

(IV-87)

Para poder interpretar una sentencia simple con un sujeto x que no pertenece
al universo U sobre el que se ha definido el predicado, es necesario establecer
primero una correspondencia entre ese sujeto y algún elemento del universo de
discurso. Es lo que se denomina el paso a forma canónica.

Por ejemplo, para interpretar la sentencia "Juan es joven" utilizando la


definición de ')oven" recogida en la tabla IV-2 es necesario conocer la edad de Juan,
ya que el concepto joven está definido sobre el universo de las edades. El paso a
forma canónica de la sentencia "Juan es joven" nos lleva a una sentencia de la forma
"La edad de (Juan) es la de una persona Goven)" donde Juan es el sujeto y joven el
predicado. Si Juan tiene 20 años, el valor de verdad de la sentencia anterior es 0.8
(que es el grado de pertenencia de una persona que tenga 20 años al conjunto de los
jóvenes, definidos en la tabla IV-2).

En conjuntos borrosos, definidos sobre universos discretos, se presentan


casos como el siguiente; si Juan tiene 25 años, resulta que la edad de Juan no se
corresponde exactamente con ningún elemento del universo discreto U= {5, 10, 20,
30, 40, 50, 60, 70, 80}. Tenemos entonces tres opciones:

a) Interpretar la sentencia como si Juan tuviera 20 años.

b) Interpretar la sentencia como si Juan tuviera 30 años.

c) Interpolar los valores de las dos interpretaciones anteriores (a) 0.8 y (b)
0.5 como si el universo fuera continuo, en este caso

µ - (30)- µ. (20)
• (25) = • (20) + Joven Joven (25 - 20)
µ Joven µ JOVen 30 - 20

1
Como en la lógica de las clases, con el fin de no complicar la notación, emplearemos
siempre el mismo símbolo para la propiedad (predicado) y el conjunto. Lo mismo haremos
en el caso de los predicados diádicos y las relaciones borrosas.

154
IV. 6 Lógica borrosa

5 08
µjoven (25) =0.8 + 0. - · 5 =0.65
10

Y generalmente se utilizará la opción (c).

Todo predicado n-ario representa una relación, por ejemplo "distancia entre".
Si consideramos el conjunto de predicados n-arios de un lenguaje natural, podemos
suponer que existe una medida para cada tupla, formada por los elementos de los
distintos universos, y para cada predicado que expresa el grado de correspondencia
entre ellos, y que por tanto expresa la relación semántica.

Se puede definir el significado de un predicado n-ario como la relación


borrosa formada por todas las relaciones semánticas del predicado correspondiente
con las tuplas formadas por los elementos de los distintos universos. Por ejemplo,
sea el universo de los números reales y el predicado "número similar a otro"
definido por la siguiente relación semántica (función de pertenencia)

(IV-88)
en caso contrario

A la interpretación de una sentencia simple como "y es similar a x" podemos


asociar como valor de verdad el grado de pertenencia de la pareja (x,y) a la relación
borrosa definida por la función de pertenencia µ 8(x,y). Así, la sentencia "4 es
similar a 2 ,, tiene un valor de verdad igual a

1
(2 4)- l = -
µs ' -1+(2-4) 4 17

En general, dado un predicado diádico al que se ha asociado una relación


borrosa R, que representa su significado, a la interpretación verdadera de una
sentencia simple de la forma R(x,y), donde 'x' es un elemento del universo U e 'y'
es un elemento del universo V, se le asocia el valor de verdad 1-'R(x,y) , es decir el
grado de pertenencia de la pareja (x,y) a la relación R.

A partir de ahora se utilizará la siguiente notación matemática para la


interpretación de sentencias simples con predicados diádicos

l(R(x,y)) = 1-'R(x,y) = a (IV-89)

155
Capítulo IV: Otras lógicas

Ejemplo 9. Dados los universos

E = estaciones del año = {primavera, verano, otoño, invierno}

S = sensaciones = {calor, frío}

se ha establecido una relación subjetiva, y por tanto borrosa, entre cada


estación del afl.o y la sensación de calor o frío que se siente, expresada
matricialmente como sigue:

e f
p 0.7 0.4
V l o
o 0.6 0.5
1 0.1 1

De acuerdo con esta relación, a la interpretación verdadera de la sentencia


"en otoño se siente frío" corresponde el valor de verdad 0.5, y a la sentencia
"en invierno se siente calor'' le corresponde el valor de verdad 0.1.

IV.6.3.2 Interpretación de sentencias compuestas

Como a cada predicado hemos asociado un conjunto borroso o una relación


borrosa, a la conjunción y a la disyunción de predicados se puede asociar un
conjunto borroso o una relación borrosa, obtenida por operación entre los conjuntos
borrosos y las relaciones borrosas asociados a cada predicado. Como la
interpretación de sentencias simples son grados de pertenencia a un conjunto
borroso o a una relación borrosa, la interpretación de sentencias compuestas se hará
utilizando reglas básicas que se traducen a operaciones sobre funciones de
pertenencia.

Se puede enunciar la regla de disyunción, para la interpretación verdadera de


sentencias borrosas en la que intervienen dos predicados monádicos en disyunción,
como aquélla que asigna el valor de verdad obtenido por la operación máximo entre
los grados de pertenencia a los conjuntos borrosos que definen cada predicado.

I{A(x)vB(y)) = max.{µA(x),~(y)); 't/x eU, 't/y eV (IV-90)

Esta regla es general, incluye el caso de predicados definidos sobre dos


universos diferentes, y, por tanto, el de predicados definidos sobre un universo
común y el de predicados con un mismo sujeto.

156
IV. 6 Lógica bollosa

Ejemplo 1O. Con los datos del ejemplo 7, se desea obtener la relación borrosa asociada al
predicado "persona joven o de estatura media".

Aplicando la regla de disyunción (IV-90) a cada una de las parejas (edad,


estatura), se obtiene una relación borrosa que tiene la siguiente
representación:

R(J,M) = "joven o de estatura media"= {(5,160) 11, (5,170) 11, (5,180) 11,
(10,160) 11, (10,170) 11, (10,180) 11, (20,160) 10.8, (20,170) 11, (20,180) 1
0.8, (30,160) 1 0.5, (30,170) 11, (30,180) I 0.5, (40,160) I 0.5, (40,170) 11,
(40,180) I 0.5, (50,160) 10.5, (50,170) 11, (50,180) I 0.5}

Ejemplo 11. Con los datos del ejemplo 7, sabiendo que Juan tiene 20 años y que mide 180
cm, se pide interpretar la sentencia

"Juan es joven o de estatma media"

La edad de Juan (20 años) nos da una pertenencia al conjunto J de 0.8 y la


estatura de Juan (180 cm) nos da una pertenencia al conjunto M de 0.5,
luego la sentencia en cuestión tiene un grado de verdad igual a 0.8 que es el
mayor de los grados de pertenencia. Esta interpretación corresponde al
grado de pertenencia de la pareja (20,180) en la relación obtenida en el
ejemplo anterior.

Como consecuencia de la regla de disyunción (IV-90) y de la operación de


unión entre conjuntos borrosos (IV-74), si dos predicados están definidos sobre un
mismo universo, el predicado compuesto por disyunción tiene asociado el conjunto
borroso obtenido como unión de los dos conjuntos particulares. Que se simboliza de
la siguiente forma

S(AvB) = AuB ; A e U, Be U (IV-91)

es decir, el significado de un predicado compuesto por disyunción es el conjunto


borroso resultante de la unión entre los conjuntos borrosos que representan, sobre
un mismo universo, los significados de cada predicado en particular.

Por ejemplo en la tabla IV-2 se han definido, sobre el universo de las edades,
las propiedades (predicados) ')oven" y "viejo". Entonces, la propiedad 'joven o
viejo", que es un predicado compuesto por la disyunción, vendrá definida por el
conjunto resultante de la unión
. . .
Joven u v1eJo =

157
Capitulo IV: Otras lógicas

= {5 11, 1011, 2010.8, 3010.5, 4010.4, 5010.6, 6010.8, 7011, 80 l l}


Respecto a la interpretáción de la conjunción, se utilizará la operación de
mínimo recogida en la siguiente regla de conjunción:

I{A(x)AB(y)) = min{µA(x),µa(y)) ; 't/x eU, 't/y eV (IV-92)

Por ejemplo, con los mismos datos del ejemplo 7, la sentencia "Juan es joven
y de estatura media" tiene un grado de verdad de 0.5 obtenido como valor mínimo
de J.ljoven(20) = 0.8 y de µestatura media(l80) = 0.5.

Como consecuencia de la regla de conjunción (IV-92) y de la operación de


intersección entre conjuntos borrosos (IV-75), si dos predicados están definidos
sobre un mismo universo, el predicado compuesto por conjunción tiene asociado el
conjunto borroso obtenido como intersección de los dos conjuntos particulares. Lo
que se simboliza de la siguiente forma

S(AAB) = A n B ; A e U , B e U (IV-93)

Como consecuencia de la regla de conjunción (IV-92) y de la operación


producto cartesiano entre conjuntos borrosos (IV-77), si dos predicados están
definidos sobre diferentes universos, el predicado compuesto por conjunción tiene
asociado la relación borrosa obtenida como producto cartesiano de los dos
conjuntos particulares. Lo que se simboliza de la siguiente forma

S(AAB) = A x B ; A e U , B e V (IV-94)

Por ejemplo, el producto cartesiano JxM del ejemplo 7 representa la relación


borrosa asociada ál predicado "persona joven y de estatura media".

En cuanto a la interpretación de la sentencia condicional, no existe un criterio


unificado entre los distintos autores, se puede utilizar cualquiera de las siguientes
reglas

(IV-95a)

I(A(x)➔B(y)) = min{µA(x),µ 8 (y)) ; 't/x eU, 't/y eV (IV-95b)

158
IV. 6 Lógica borrosa

(IV-95c)

La primera de las reglas se debe a Zadeh y se obtiene como caso particular de


la interpretación de la sentencia condicional ampliada que veremos a continuación,
la segunda se debe a Mandani y la tercera a Larsen, estas dos últimas son muy
utilizadas en aplicaciones de control. Siempre que no se diga lo contrario,
utilizaremos como regla condicional la (IV-95b) que coincide con la interpretación
(IV-92) de la conjunción.

Por ejemplo, con los mismos datos del ejemplo 11, la sentencia "Si Juan es
joven entonces Juan es de estatura media" tiene un grado de verdad de 0.5 obtenido
con la definición de Mandani

min{µJ(20),µM(l80)) = min(0.8,0.5) = 0.5


y la sentencia "Si Juan es de estatura media entonces también es joven", también
tiene el mismo grado de verdad.

Como consecuencia de la regla condicional (IV-95b) y de la operación


producto cartesiano entre conjuntos borrosos (IV-77), si dos predicados están
definidos sobre diferentes universos, el predicado compuesto por el condicional
tiene asociado el conjunto borroso obtenido como

S(A➔B) =A x B ; A e U, B e V (IV-96)

Para obtener una regla de interpretación para la sentencia condicional


ampliada "Si .... entonces .... , si no .... " se ha tenido en cuenta que:

1. Una sentencia condicional ampliada se puede descomponer en la


conjunción de dos sentencias condicionales, véanse (1-22) y (1-23).

2. Los dos consecuentes de las sentencias condicionales resultantes están


definidos sobre el mismo universo.

3. El antecedente de la segunda sentencia condicional es la negación del


otro antecedente, pero el modificador negación (-,) también tiene su
correspondiente regla de interpretación, que se verá en el próximo
apartado,

con el siguiente resultado para la regla condicional ampliada

159
Capitulo IV: Otras lógicas

I ( {A(x)➔B(y)) /\ (-, A(x)➔C(z)) ) =

= max ( I{A(x)➔B(y)), 1(-.A(x)➔C(z))) =

= max ( min{µA(x),µa(y)), min{l-µA(x),µc(z)))

't/x eU, 't/y eV, 't/z eV (IV-97)

Por ejemplo, con las definiciones de 'joven" y de ''viejo" de la tabla IV-2, con
la definición de "persona de estatura media,, del ejemplo 7 y con los datos de Juan
(20 años, 180 cm), la sentencia "Si Juan es de estatura media entonces Juan es
joven, si no, es viejo" tiene un valor de verdad de 0.5, obtenido como sigue:

max ( min{µM(l80),µJ(20)), min(l-µM(l80),µv(20))) =

= max ( min{0.5,0.8), min(l-0.5,0.1)) = max(0.5,0.1) = 0.5

Como consecuencia de la regla condicional ampliada (IV-97) y de las


operaciones producto cartesiano (IV-77), complementación (IV-72) y unión (IV-74)
entre conjuntos borrosos, el predicado compuesto por el condicional ampliado
tiene asociada la relación borrosa obtenida como

S((A ➔ B) /\(A ➔ C)) =(Ax B) u (A x C); A e U, B e V, C e V


(IV-98)

Cualquiera de las reglas anteriores, que se han formulado sobre predicados


monádicos son extensibles a los predicados diádicos y combinaciones de ambos. Por
ejemplo:

1( A(x)➔R(y,z)) = min{µA(x),µR(Y,z)) 't/x eU, 't/y eV, 't/z eW


(IV-99)

IV.6.3.3 Modificadores lingüísticos

Hasta ahora nos hemos limitado a la interpretación de sentencias con


predicados simples o compuestos pero sin modificar. Vamos a ocuparnos ahora de
las cercas semánticas o modificadores linguísticos (adverbios tales como 'muy',

160
JV.6 Lógica borrosa

'más o menos', 'casi', etc.), que se utilizan con frecuencia en el lenguaje natural
para especificar junto con el predicado una propiedad más concreta. Por ejemplo,
sentencias como "un hombre muy joven", "una operación algo complicada" son
ejemplos de utilización de modificadores para especificar más detalles sobre el
concepto que se está expresando.

Los modificadores linguísticos se modelan en la teoría de conjuntos borrosos


mediante operaciones sobre la función de pertenencia asociada al predicado que se
está modificando. Entre las operaciones propuestas con este fin destacan las de V.
Novak (negación, concentración, dilatación e intensificación), que se definen y se
representan de la siguiente forma:

Negación NEG{µ(x)) = 1 - µ(x) (IV-100)

Concentración CON{µ(x)) == µ2(x) (IV-101)

Dilatación DIL{µ(x)) = 2 µ(x) - µ2(x) (IV-102)

Intensificación

INT( (x))
µ
-{2 µ 2 (x)
- 1 - 2 (1 - µ(x) )2
si O< µ(x) ~ 0.5
si µ(x) > 0.5
(IV-103)

En la figura IV-7 se ha utilizado la función de pertenencia

1
µ(x)= 2 (IV-104)
1 + 10 (x -5)

que es representativa del conjunto "números reales próximos a 5 ", para poner de
manifiesto el efecto que sobre esta función tienen las operaciones de concentración,
dilatación e intensificación.

Las operaciones de concentración, dilatación e intensificación tienen en


común que dejan inalterable el grado de pertenencia igual a 1, como puede
comprobarse en la figura IV-7. La concentración tiene el efecto de reducir el grado
de pertenencia, esta reducción es relativamente pequeña para los elementos que
tienen alto grado de pertenencia y relativamente grande para los elementos que
tienen un bajo grado de pertenencia. Por tanto, se puede utilizar para modelar el
modificador 'muy'. En el caso concreto de la figura IV-7 se pone de manifiesto por

161
Capitulo IV: Otras lógicas

un estrechamiento de la campana, luego la función resultante representa el conjunto


"números reales muy próximos a 5".

La dilatación tiene el efecto contrario, aumentar el grado de pertenencia, y


este aumento es significativo para los elementos que tienen un bajo grado de
pertenencia. Por tanto, se puede utilizar para modelar el modificador 'más o menos'.
En el caso concreto de la figura IV-7 se pone de manifiesto por una ampliación de la
campana, luego la función resultante representa el conjunto "números reales más o
menos próximos a 5".

La intensificación mantiene inalterable el grado de pertenencia 0.5, por


encima de él lo aumenta y por debajo de él lo disminuye. No se suele utilizar por
separado sino en combinación con otra operación; por ejemplo, encadenada con una
concentración, para hacer todavía más selectiva la propiedad, se utilizará para
modelar el modificador 'bastante'.

Algunos autores coinciden con V. N ovak en la definición de la negación y de


la concentración, pero definen la dilatación de forma diferente, concretamente

DIL(µ(x)) = .Jµ(x) (IV-105)

0.8

0.2

3.5 4 4.5 5 S.5 6 6.5 7


X

Figura IV- 7: Operaciones de concentración, dilatación e intensificación sobre la


función de pertenencia (IV-104).

162
IV. 6 Lógica borrosa

en ese caso se verifica

CON(DIL{µ(x))) =DIL(CON{µ(x))) = µ(x) (IV-106)

es decir que las operaciones de concentración y dilatación, definidas por (IV-1 O1) y
(IV-105) son conmutativas e inversas entre sí.

Junto con las operaciones sobre las funciones de pertenencia, V. Novak define
otras operaciones sobre el universo del discurso. De manera que interpreta el
modificador como una doble transformación, primero del universo de discurso sobre
el que está definido el predicado y segundo de la función de pertenencia. Por
simplicidad se va a considerar que el modificador se puede modelar por la simple
transformación de la función de pertenencia. Así, utilizaremos las siguientes reglas
de modificación para interpretación de sentencias simples con los adverbios más
comunes:

'no': 1(-. A(x)) = NEG{µA(x)) = 1 - µA(x) (IV-107)

'muy': l{muy A(x)) = CON{µA(x)) = µA2(x) (IV-108)

'hiper': l{hiper A(x)) = µA(x) CON{µA(x)) = µA3(x) (IV-109)

'hiper' actúa de forma similar al modificador 'muy' pero más intensamente

'más o menos' y 'algo':

l{más o menos A(x)) = l(algo A(x)) =


= DIL(µA(x)) = 2 µA(x)- µA2(x) (IV-110) _

'más o menos' es, en cierto sentido, el modificador inverso a 'muy'

'aproximadamente' y 'casi':

- l{aproximadamente A(x)) =1(casi A(x)) = DIL(DIL{µA(x))) =


= 4 µA(x) - 6 µA 2(x) + 4 µA 3(x) - µA 4(x) (IV-111)

'casi' equivale al encadenamiento de dos modificadores 'más o menos'

163
Capitulo IV: Otras lógicas

'bastante': !{bastante A(x)) = INT( CON{µA(x))) (IV-112)

'bastante' actúa de forma más selectiva que el modificador 'muy'

Como consecuencia de las reglas de modificación, el significado de un


predicado modificado por la negación se obtiene como sigue

y de igual forma para cualquier otro modificador.

La figura IV-7 junto con la figura IV-8 muestran cómo se reflejan sobre la
misma función (IV-104) algunos de los modificadores anteriormente definidos.

Ejemplo 12. Los siguientes conjuntos borrosos se han obtenido a partir de los conjuntos
definidos en la tabla IV-2 aplicando las operaciones (IV-107) a (IV-112),
asociadas a los modificadores, a los correspondientes grados de pertenencia
no joven= {20 l 1-0.8, 30 l 1-0.5, 40 11-0.2, 50 11-0.1, 60 l 1-0, 70 11-0, 80
l l-0} = {20 I 0.2, 30 I 0.5, 40 I 0.8, 50 I 0.9, 60 11, 7011, 8011}
muy adulto= {2010.82, 30 l 12, 40 l 12, 60 l 12, 70 l 12, 80 l 12 } = {2010.64,
30 11, 40 11, 60 11, 70 11, 80 11}
hiper viejo= viejísimo= {20 1O. I3, 301 0.23, 40 10.43 , 50 10.63, 60 10.8 3 , 70
113, 80 I 13 } = {20 I 0.001, 30 I 0.008, 40 I 0.064, 50 I 0.216, 60 I 0.512, 70 I
1, 80 I 1}
más o menos joven= {5 l 2-12, 1012-1 2 , 2012 0.8-0.82, 3012 0.5-0.5 2, 401
2
2 0.2-0.2 , 50 12 0.1-0.1 2 } = {511, 1011, 2010.96, 3010.75, 4010.36, 501
0.19}
casi viejo= {20 10.3439, 30 10.5904, 40 10.8704, 50 10.9744, 60 10.9984,
70 11, 80 1 l}
donde el grado de penenencia del elemento 20 al conjunto "casi viejo" es el
resultado de las siguientes operaciones

J.lcasiviejo(20) = 4 0.1 - 6 o.i2 + 4 o.!3- 0.1 4 = 0.3439


bastante joven·= {5 1 1, 10 1 1, 20 1 0.7408, 30 1 0.1250, 40 1 0.0032, 50 1
0.0002}
donde el grado de pertenencia del elemento 20 al conjunto "bastante joven"
es el resultado de las siguientes operaciones

µi,.tantejoven(20) = INT(0.82) = INT(0.64) = 1 - 2 (1-0.64) 2 = 0.7408

164
IV. 6 Lógica borrosa

Figura IV-8: Funciones de pertenencia correspondientes a los predicados


"números reales casi próximos a 5", "números reales bastante próximos a 5"
y "números reales hiper próximos a 5 ", obtenidos a partir de la función de
pertenencia (IV-104).

La figura IV-9 muestra cómo se modifica el grado de pertenencia a., dentro


del rango [O, l], al aplicar los modificadores 'no', 'casi', 'algo', 'muy' e 'hiper'.

Conocido el grado de pertenencia a. de un elemento al conjunto representativo


del predicado sin modificar, las gráficas de la figura IV-9 pueden servir para
obtener, de forma aproximada, el grado de pertenencia de ese mismo elemento al
conjunto borroso representativo del predicado modificado. Por ejemplo, según la
tabla IV-2, una persona con 40 años tiene un grado de pertenencia a.-0.2 al
conjunto ')oven", luego, según la curva 'casi' de la figura IV-9, esta misma persona
tiene un grado de pertenencia "casi a.":::0.6 al conjunto "casi joven".

De la misma forma, conocida la interpretación verdadera a. de una sentencia


simple, expresión (IV-87), las gráficas de la figura IV-9 pueden servir para obtener,
de forma aproximada, la interpretación verdadera de la misma sentencia simple con
el predicado modificado. Por ejemplo, según la tabla IV-2, si Pedro tiene 40 años, la
sentencia "Pedro es joven" tiene un valor de verdad a.=0.2, luego, según la curva
'casi' de la figura IV-9, la sentencia "Pedro es casi joven" tiene un valor de verdad
= ..
" casi. a. "~O 6

165
Capitulo IV: Otras lógicas

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1


Grado de pertenencia

Figura IV-9: Gráficas de correspondencias entre grados de pertenencia sin


modificar y modificados.

Ejemplo 13. con los mismos datos del ejemplo 11, la sentencia
"Juan es bastante joven y casi de estatura media"
tiene un valor de verdad de 0.7408. Para obtenerlo se opera como sigue:

l. Se aplica la regla de modificación 'bastante' (IV-112) al predicado


"persona joven", particularizado en la edad de Juan

a.1 = µ¡,astante 1(20) = INT( CON{µJ(20))) = INT(CON(0.8)) =


= INT(0.64) = 1 - 2 (1-0.64) 2 = 0.7408
2. Se aplica la regla de modificación 'casi' (IV-111) al predicado
"persona de estatura media", particularizado en la estatura de Juan

CX.2 = J.lcasiM(l80) = 4 0.5 - 6 0.5 2 + 4 0.53 - 0.5 4 =


= 2 - 1.5 + 0.5 - 0.0625 = 0.9375
3. Se aplica la regla de conjunción (IV-92) a los predicados "bastante
joven" y "de estatura media", particulari:zados en la edad y en la
estatura de Juan

166
Capítulo V
Autómatas

V.1 Introducción

La palabra "autómata" en el lenguaje ordinario evoca normalmente algo que


pretende imitar las acciones de los seres vivos, y especialmente aquellas acciones
relacionadas con el movimiento. En este sentido un ejemplo típico de autómata seria
un robot con movimientos autónomos capaz de seguir unas órdenes establecidas por
un ser inteligente. Ahora bien en el campo de la Informática como lo importante no
es simular el movimiento sino los procesos para el tratamiento de la información el
ejemplo típico de un autómata es un ordenador.

Una característica básica de los autómatas es que reciben los símbolos de


entrada distribuidos en el tiempo, es decir, de forma secuencial. Además y de forma
general la salida de un autómata no depende sólo del último símbolo recibido en la
entrada sino también de todos los símbolos anteriores que haya recibido hasta ese
instante. Por tanto, un autómata es un circuito secuencial en el sentido de que opera
sobre una secuencia de símbolos, y esto lo diferencia de forma significativa de los
circuitos lógicos estudiados con anterioridad en el capítulo 11.

Un concepto fundamental en el estudio de los autómatas y que aún no ha sido


presentado es el concepto de estado del autómata. El estado es toda información
necesaria en un momento dado para poder deducir, para dado un símbolo de entrada
determinar cual será la salida. Cada autómata estará compuesto por un conjunto de
estados y se encontrará en uno u otro estado en función de los símbolos de entrada
recibidos. Con cada símbolo de entrada se producirá un símbolo de salida y una
transición entre estados.

167
Capitulo V: Autómatas

V.2 Definición y representación de los autómatas

Matemáticamente, un autómata es una quíntupla A= (E, S, Q, f, g), tal que:

1. E es un conjunto finito llamado conjunto de entradas o alfabeto de


entradas, cuyos elementos se llaman entradas o símbolos de entrada.

2. Ses un conjunto finito de salidas o alfabeto de salida, cuyos elementos


se llaman salidas o símbolos de salida.

3. Q es un conjunto llamado conjunto de estados.

4. fes una función f: ExQ ➔ Q,fanción de transición, o función de estado


tal que:

f(x, q(t)) = q(t+ 1) (nuevo estado).


5. ges una función g: ExQ ➔ S,fanción de salida tal que:

g(x, q) = s(nuevo símbolo de salida).


Y, de manera que q(t + 1) = f(x(t), q(t)) y s(t) = g(x(t), q(t)).
El autómata recién definido se denomina autómata finito, (AF) y puede ser de
dos tipos, determinista (AFD) o no determinista (AFND). El detenninismo de un
autómata conlleva que en un estado determinado, y frente a un símbolo de entrada,
el autómata sólo puede evolucionar hacia un estado concreto y no hacia varios. Por
tanto un autómata finito detenninista (AFD) matemáticamente puede definirse como
una quíntupla (E, Q, f, qO, F), tal que:

1. E es el alfabeto de símbolos de entrada.

2. Q es el conjunto de estados.

3. qO es el 'estado inicial'.
-
4. F (cQ) es 'el conjunto estados :finales'.

5. fes la función de transición de estados, definida como f: QxE ➔ Q.

168
V.2 Definición y representación de los autómatas

Un AF genera una salida única, llamada 'aceptación', si el estado final al que


se llega pertenece al conjunto F. En caso contrario, a ese estado final se le llama
estado de 'no aceptación' del autómata. Un AF se define también como una
'máquina secuencial' que comienza en el estado inicial y, según se reciben los
símbolos de la entrada, cambia de estado mediante f O bien, un autómata finito,
AF, es un autómata cuyo conjunto de estados es finito.

Ejemplo l. Un AF, llamado detector de paridad, que acepta listas o cadenas con un
número par de unos: A= ({O, l}, {qO, ql}, f, qO, {qO}), siendo f:

f(qO, O)= qO, f(qO, 1) = ql, f(ql, O)= ql, f(ql, 1) = qO.

Si la 'cadena' de entrada es 0110, el autómata va haciendo el recorrido:

o 1 1 o
qO ➔ qO ➔ ql ➔ qO ➔ qO

El estado inicial del autómata es qO, por eso comienza la secuencia en él y el


final de aceptación también, por eso se acaba en él y está representado en
negrita. El acabar en estado de aceptación significa que la cadena de entrada
es aceptada, o lo que es lo mismo, en el ejemplo propuesto que contiene un
número par de unos.

V.2.1 Representaciones de un autómata finito

Un autómata finito se suele representar por una tabla de transiciones y por


su función de transición. En la tabla, se colocan en las filas los estados q de Q,
donde el estado inicial se precede de un símbolo especial (a veces ' ➔'), y cada
estado final de aceptación se distingue, por ejemplo, poniéndolo en negrita. En las
columnas de la tabla están los símbolos de entrada aeE, y en la posición (q, a)
estará el estado al que se llega aplicando la transición f(q, a).

Otro procedimiento para representar un AF es el llamado diagrama de


transición. Un diagrama de Moore o diagrama de transición es un grafo orientado
en cuyos -nodos se encuentran representados los estados del autómata, que en
ocasiones, se pueden rodear por círculos, así como los estados finales se suelen
rodear por un doble círculo o se ponen en negrita. Para reflejar las transiciones en el
diagrama, se suele pintar un arco etiquetado con 'e/s' entre el nodo qi y el nodo qj,
cuando f(qi, e)= qj y g(qi, e)= s. En general, nosotros seguiremos la representación
por tablas y/o transiciones.

169
Capítulo V: Autómatas

Ejemplo 2. Sea A= ({O, l}, {qO, ql}, f, qO, {qO}), donde fes:

f(qO, O) = qO, · f(qO, 1) = ql, f(ql, O)= ql, f(ql, l) = qO.


Entonces:

f o 1

➔qO qO ql

ql ql qO

Consideremos ahora el sistema como un sistema de entradas y salidas


definido por las funciones: s = salida, q = estado, e = entrada de un sistema, se
tienen dos posibles modelos de representación:

1. Modelo de Mea/y: s(t) depende de q(t) y de e(t), por lo tanto la salida del
sistema va asociada a la transición (se dice entonces que la velocidad de
transmisión es infinita). Que es el que hemos comentado hasta el
momento. (Su representación más habitual es mediante el diagrama de
Moore o diagrama de transición).

2. Modelo de Moore: s(t) depende SÓLO de q(t) y no de e(t), por lo tanto la


salida va ligada al estado, lo que suele conllevar un mayor número de
estados para representar el mismo autómata que con el modelo de Mealy.
En el modelo Moore no hay instantaneidad de transmisión en el seno del
autómata.

Notación a seguir: E = estímulo, entrada. Q = estado.

Características de la respuesta:

Mealy g: ExQ ➔ S;

Moore g: Q ➔ S,

siendo Sel conjunto de las salidas.

Funciones del tiempo:

Mealy. s(t) = g(e(t), q(t)), q(t + 1) = f(e(t), q(t)).

170
V.2 Definición y representación de los autómatas

Moore. s(t) = g(q(t)), q(t + 1) = f(e(t), q(t)).

En una· máquina de Mealy, si recibe como entrada la cadena vacía A, habría


que ampliar el dominio de f con ExQ a (Eu{A})xQ y lo mismo el dominio de g. Se
puede convenir que f(A, q) = q (o sea, si no hay entrada, el estado no cambia), pero
con g no ocurre lo mismo, pues sólo puede definirse sin ambigüedad g(A, q) en el
caso de que se dé la llamada "condición A" definida por (V-1):

\fqqlq2ele2 (q = f(el, ql) = f(e2, q2) ➔ g(el,ql) = g(e2, q2)) (V-1)

o sea, que a q se le puede asociar una salida y sólo una. Si esto ocurre para todo q
de Q, se puede definir una función inyectiva h, tal que:

h: Q ➔ S, g(e, q) = h(f(e, q)), eeE, qeQ.

En este caso, se dice que la salida sólo depende del estado y el autómata se
llama máquina de Moore. Así:

s(t) = g(e(t), q(t)) = h(q(t)) = h(f(e(t - 1), q(t - 1))).


En una máquina de Mealy, las salidas están relacionadas con transiciones,
mientras que, en una máquina de Moore, las salidas están relacionadas con los
estados, o sea, todas las transiciones que conducen a un mismo estado tienen
asociadas la misma salida. También se puede decir que una máquina de Mealy, en el
instante de efectuar una transición, debe 'saber' la entrada actual, eeE, pues, en
general, g(A, q) no está definida, mientras que en una máquina de Moore, la entrada
puede ser eeE o e= A.

Los autómatas pueden representarse también mediante tablas de


transiciones, de forma que: las funciones f y g se representan mediante una tabla
con tantas filas como estados y tantas columnas como entradas. Si la fila i
corresponde al estado qi y la columna j corresponde a la entrada ej, en la
intersección de ambas se escribirá la siguiente información: f(ej, qi)/g(ej, qi).

Ejemplo 3.. Sea AF = ({O, l}, {O, l}, {ql, q2, q3}), con las funciones de estado y de
salida dadas por:

f(O, ql) = ql; g(O, ql) = O; f(l, ql) = q2; g(l, ql) = l;

f(O, q2) = q3; g(O, q2) = O; f(l, q2) = q3; g(l, q2) = O;

171
Capitulo V: Autómatas

f(O, q3) = q3; g(O, q3) = O; f(l, q3) = ql; g(l, q3) = O.
Se representa por la- siguiente tabla de transiciones:

q\e o 1

ql ql/0 q2/l

q2 q3/0 q3/0

q3 q3/0 ql/0

El tipo de operaciones posibles sobre autómatas es muy diverso pero algunas


de las más significativas son las siguientes: Retardos, contadores, memorias
elementales (constantes, si no hay cambios), sumador binario, convertidor serie-
paralelo, codificador (o generador de mensaje secuencial), decodificador
(reconocedor de mensajes), reconocedor de secuencias de longitud k dada,
transcodificador (que reconoce secuencias y, como consecuencia, genera otras). Un
retardador de n elementos es un sistema de retardos y arrastres con varias salidas,
tales que cada una, menos la primera, depende de la anterior. Un sumador: en
cualquier base y de cualquier número de cifras. La multiplicación no se puede
realizar: hace falta una cinta infinita o no basta con un número finito de salidas.
Autómata contador es aquél en el que el siguiente del máximo es la vuelta a O.

V.3 Conceptos básicos de álgebra relacionados con los autómatas

A continuación se presentan una serie de definiciones de álgebra relacionas


con el concepto de autómata.

Una transformación f en un conjunto C se define como una función f: C➔C.


Notación: Ce= {f I f: C➔C /\ Fn(f)}. (Fn(f) = fes función).

Un monoide es un semigrupo con elemento neutro.

Sea C un conjunto cualquiera y ce el conjunto de todas las transformaciones


en C, entonces (Ce, o) (donde 'o' representa la ley de composición de funciones f) es
un monoide llamado monoide de las transformaciones de C, ya que 'o' es cerrada,
asociativa y hay elemento neutro, que es la función identidad.

172
V.3 Conceptos básicos de álgebra relacionados con los autómatas

Dados dos semigrupos (SI, S2) decimos que una función f: Sl ➔S2 es un
homomorfismo· entre ambos semigrupos si preserva la ley de composición interna,
es decir, si el diagrama de su representación es conmutativo.

Un isomorfismo f entre semigrupos es un homomorfismo biyectivo, y en él, si


S 1 es un monoide con elemento neutro neutro], y S2 es un monoide con elemento
neutro neutro2 y además se cumple que f(neutrol) = neutro2 entonces se dice que f
es un homomorfismo/isomorfismo monoide.

Una relación binaria R en un conjunto Ces un subconjunto de CxC. Si el y


c2 son elementos de C se dice que el y c2 están relacionados por R si (cl,c2) está
en R, y generalmente se escribe como c1Rc2.

R es una relación de equivalencia en un conjunto C si y sólo si R es una


relación binaria que cumple ser reflexiva, transitiva y simétrica.

Dado un monoide (M, #)(donde# representa la operación) y una relacion de


equivalencia R, en M, Res una relación de congruencia en (M, #) si \fabceM(aRb
tt ((a#c)R(b#c) tt (c#a)R(c#b))).

Teor.: Si Res de congruencia en (M, #), el conjunto cociente MIR= {[a] 1


aeM}, con la operación 'o' (definida por [a]o[b] = [a#b]; [a] es la clase de 'a') es
un monoide con 'o'.

Es decir, el conjunto cociente es también un monoide. El monoide (MIR, o) se


llama monoide cociente de M mediante R.

V.4 Comportamiento de un autómata

Otra posible definición de autómata no vista hasta ahora es la de una función


F*: E* ➔ S*, que hace corresponder a cada cadena de entrada x de E*, una cadena
de salida F*(x) = y de S*. Por tanto es interesante conocer el concepto de cadena,
teniendo en cuenta que los autómatas pueden ser entendidos como dispositivos
emisores de cadenas, tal y como se verá al hablar de los autómatas reconocedores.

Una cadena o palabra es una yuxtaposición (Y) o concatenación de símbolos


de un alfabeto dado E. Los conjuntos de cadenas se llaman lenguajes, L. Y las
reglas de formación de un lenguaje definen su 'gramática'.

173
Capítulo V: Autómatas

El conjunto de todas las cadenas de alfabeto E se denota E*, y es un lenguaje


también. Teor.: (E*, Y) es un semigrupo.

Dado un autómata se define el comportamiento de entrada y salida del


mismo, como una aplicación o función K: E* ➔ S, que asigna a cada cadena de
entrada una función de salida. Si el número de estados diferentes en el autómata es
n, habránº funciones, por lo que el número máximo de clases de equivalencia de
elementos de E* es nº.

Sea un AF, de alfabeto E y conjunto de estados Q. Dado un símbolo de


entrada y un estado, podemos obtener el estado siguiente mediante la función
f: ExQ➔Q. Dado solamente un símbolo de entrada e( e E), podemos definir una
función que aplique a cada estado el siguiente bajo esa entrada determinada, es
decir, una función de Q en Q, K(e): Q➔Q, entonces existe una función K: E ➔ Q\
siendo QQ el conjunto de las funciones de Q en Q, que es un monoide con la
composición de funciones.

Sea E* el conjunto de las cadenas que se pueden elaborar con elementos de E.


La función K se determina a partir de f del siguiente modo:

l. Para cada eeE.

2. Para cada qeQ, [K(e)](q) = f(e, q).


Ahora bien, la función K puede extenderse fácilmente a un homomorfismo
entre monoides en la forma:

K: [E*, Yuxt] ➔ [Q\ o], ('o' es la operación del semigrupo), siendo:

K(a(l)a(2) ... a(n)) = K(a(l))oK(a(2)) o ... o k(a(n)).

La función K se llama "comportamiento del autómata" o "comportamiento


entrada-estados".

Ejemplo 4. Consideremos un detector de paridad; la función K: {O, l} ➔ QQ se puede


resumir en forma de tabla:

174
V. 4 Comportamiento de un autómata

Estado siguiente
K(O) K(l)
Estado ql ql q2
inicial q2 q2 ql

Calculamos K para algunas cadenas, ejemplos:


K(O) = K(O)
K(l) = K(l)
K(OO) = K(O) o K(O) = K(O)
K(Ol) = K(O) o K(l) =K(l)
K(lO) = K(l) o K(O) = K(l)
K(ll) =K(l) o K(l) =K(O)
etc.

En general,
K(x) = K(O) si se tiene un número par de unos.
K(x) = K(l) si se tiene un número impar de unos.

Si la cadena es vacía, K(11.) será la función identidad en Q, o sea la función


que aplica q 1 en q 1 y q2 en q2, que coincide con k(O).

Sea un autómata A con comportamiento de entrada-estados K. La relación


equirrespuesta de A,~, es una relación binaria en E* tal que:

\fxyeE*(x::::: y tt K(x) = K(y)).

~es relación de equivalencia, evidentemente, y es relación de congruencia en


el monoide E*; efectivamente, si x ~ y, K(x) = K(y), y K(xz) = K(x) o K(z) = K(y)
o K(z) = K(yz); análogamente K(zx) = K(zy).

. Se demuestra que E*/~, con la operación de concatenación, es un monoide.

Dado un autómata con un comportamiento entrada-estados K, que origina


una relación equirrespuesta ~ en E*, el monoide cociente E*/~ se llama monoide del
autómata.

175
Capitulo V: Autómatas

Si el número de estados es n, el monoide del autómata tendrá como máximo


nn elementos. En efecto, el número de transformaciones en el conjunto Q, es decir,
de las funciones diferentes Q➔Q es nn. El homomorfismo K aplica entonces un
conjunto infinito E* en un conjunto Q\ que tiene QQ elementos. Si esta aplicación
es suprayectiva, la relación equirrespuesta tendrá índice nº, es decir, inducirá nn
clases de equivalencia en E* (si la aplicación no fuese suprayectiva, o sea, si
existieran una o más funciones Q➔Q a las que no correspondiese ningún elemento
de E*, el número de clases sería menor).

Por ello, el número máximo de elementos del conjunto cociente E*/i:::: es nn.

El monoide de un autómata refleja la capacidad de éste para responder de


distinta manera a las cadenas de entrada. En efecto, en E* hay infinitas cadenas,
mientras que en E*/~ hay como máximo nº elementos, que son clases de
congruencia de ~-

Si dos cadenas diferentes x e y están en la misma clase, es decir, si x ~ y,


entonces K(x) = K(y), o sea, el homomorfismo K las aplica sobre el mismo elemento
de QQ, o, lo que es lo mismo, ambas producen la misma transformación Q➔ Q y el
autómata será incapaz de distinguir una de otra.

V.4.1 Equivalencia entra una máquina Mealy y una de Moore

Toda máquina de Moore es una máquina de Mealy que cumpe la "condición


'A,". Para todo q eQ, aparentemente las de Moore forman un subconjunto propio de
las segundas, pero no es así. Dada una máquina de Mealy, siempre se puede
encontrar una máquina de Moore equivalente, normalmente a costa de aumentar el
número de estados, pues, si se tiene una máquina de Mealy A = (E, S, Q, f, g),
siempre podemos definir otro autómata (ponemos una n para decir 'nuevo') An =
(E, S, Qn, fn, gn) en el que Qn se obtiene dividiendo cada qeQ en tantos estados
q(s) como salidas s puedan asociarse a q. Así:

Qn = {q(s)I Ve3q'(q'eQ /\ eeE /\ f(e, q') = q /\ g(e, q') = s} (V-2)

y en el que fn y gn se definen ~orno:

fn(e, q(s)) = f(e, q)Ag(e, q) y g(e, q(s)) = g(e, q) (V-3)

Por ello, a cada q(s)eQn se le puede asociar una sola salidas y así se obtiene
una función de salida hn: Q ➔ S tal que: gn(e, q(s)) = hn(fn(e, q(s))), por lo que An

176
V.4 Comportamiento de un autómata

será una máquina de Moore.

Las salidas están asociadas con los estados. Así, las transiciones que llevan a
un mismo estado dan la misma salida, y debido a ello, en las tablas de transiciones
se colocan también las salidas en la misma columna que los estados.

/s e
Tabla de Moore

En una máquina de Moore se trata con el monoide E*, llamado monoide libre
de entrada. En una máquina de Mealy sólo tratamos con el semigrupo libre de
entradas, E+ (sin entrada A).

Cuando se considera un autómata, se supone (salvo que se diga lo contrario)


que se trata de una máquina de Moore, es decir, se representa por igual la salida
mediante la función de salida g(e, q) o mediante la función de salida h(q), teniendo
en cuenta que g = hof.

Ejemplo 5. Definamos las máquinas de Mealy y de Moore para un sumador binario.


Este ejemplo tiene aquí sólo un interés ilustrativo.

Sumador binario: E= {00, 01, 10, 11}, S = {O, l}, Q = {ql, q2}, estado
inicial ql.

Mealy:

Q \ E: 00 01 10 11
ql ql/0 ql/1 ql/1 q2/0
q2 ql/1 q2/0 q2/0 q2/l

Moore:

Q/S \ E: 00 01 10 11
_ql0/0 ql0/0 qll/1 qll/1 q20/0
qll/1 ql0/0 qll/1 qll/1 q20/0
q20/0 qll/1 q20/0 q20/0 q21/l
q21/l qll/1 q20/0 q20/0 q21/l

177
Capitulo V: Autómatas

EJemplo 6. Construcción de un detector de paridad.

Es un autómata cuyo alfabeto de entrada es E = {O, 1} y el alfabeto de salida


S = E, donde 'l' es 'error' y 'O' es 'no error'. El conjunto de estados es
Q = {q0, q 1, q2}, donde q0 es el estado inicial, del que sólo se sale tras
recibir el primer bit. En q 1 se estará, si se ha recibido un número par de
unos y en q2 si se ha recibido un número impar, de manera que al finalizar
la transmisión, si la máquina está en q 1 es que no ha habido error (salida =
O), y si se ha quedado en q2 es que sí lo ha habido (salida = l); así la
función de transición descrita el, sería:

d(ql, O)= (ql, O) d(ql, 1) = (q2, 1) d(q2, 1) = (ql, O)

d(q2, O)= (q2, 1) d(q0, O)= (ql, O) d(q0, l) = (q2, 1)

En este problema, el estado q0 puede identificarse con el q 1, lo que equivale


a aceptar por convenio que, al principio, cuando no se ha recibido ningún
bit (o sea, cuando se ha recibido 'A., la salida es O). Obtenemos entonces lo
siguiente, en donde cada estado tiene una salida y sólo una (es por tanto una
máquina de Moore).

d(ql, O)= (ql, O) d(ql, 1) = (q2, 1)

d(q2, 1) = (ql, O) d(q2, O)= (q2, 1)

Resumiendo podemos decir que, la generalización de un autómata de Mea/y


es una quíntupla definida como AFMealy = (E, S, Q, f, g), donde E es el alfabeto de
símbolos de entrada, S es el alfabeto de símbolos de salida, Q es el conjunto finito
no vacío de estados, fes la función de transición definida por f: QxE ➔ Q, y g es la
función de salida definida por g: QxE ➔ S. Un autómata de Moore es un autómata
en el que la función g sólo depende del estado en el que está. La diferencia con
respecto a la definición de Mealy es que la función de salida g se define como
g:Q ➔ S.

La diferencia práctica entre ambos (Mealy y Moore) es que los primeros


tienen velocidad infinita (generan salida inmediatamente después de recibir la
entrada) mientras que los segundos tienen velocidad finita (la respuesta sólo depende
del estado actual del autómata).

V.4.1.1 Transformaciones mutuas entre ambas máquinas

Recordando la representación de autómatas en general, sabemos que puede


haber tres tablas de transición para representar los autómatas, que son:

178
V. 4 Comportamiento de un autómata

l. f: QxE ➔ Q (función de transición);

2. gl: QxE ➔S (función de salida de la máquina de Mealy);

3. g2MO: Q ➔ S (función de salida de la máquina de Moore);

O, en forma de tablas únicas generalizadas se tiene (transición-salida):

Mealy QxE ➔ Q/S; Moore (Q/S)xE ➔ Q;

Por tanto conocido lo expuesto veamos los pasos necesarios para proceder a
transforma una máquina de Mealy en una de Moore y a la inversa, dado que hemos
dicho que independientemente del problema para ellas siempre existe la equivalente
en la otra:

1. Transformación de Mea/y en Moore:

Sea Mealy = (E, S, Ql, fl, gl) y Moore = (E, S, Q2, f2, g2), entonces:

'ti fl(q, e)= p, 'ti gl(q, e)= s, Vp, qeQI, 'ti eeE, 't/seS, escribir:

1. Un estado p(s) e Q2 tal que g2(p(s)) = s.

u. f2(q(t),e) = p(s), 't/teS, 't/q(t)eQl.

111. Si q e Q 1 es tal que no llega ninguna transición a él, escribir un


estado q(A) (que indicará qué hacer si la entrada es la cadena
vacía).

2. Transformación de Moore en Mea/y:

Sea Moore = (E, S, Ql, fl, gl), y Mealy = (E, S, Q, fl, g2), entonces:

't/fl(q, e)= p, Vgl(q) = s, 't/p, qeQ, 't/eeE, 't/seS, escribir:

i. g2(q, e)= s.

179
Capítulo V: Autómatas

V.5 Circuitos secuenciales

Todas las definiciones de autómatas finitos que hemos presentado hasta el


momento no son más que modelos matemáticos que representan en general sistemas
digitales con memoria. Y teniendo esto presente los sistemas digitales pueden
enfocarse básicamente de dos maneras. O bien se construye fisicamente el sistema
haciendo uso de elementos sencillos, o se utiliza un ordenado, como sistema digital
de uso general, y se le programa para que realice las funciones que se desean.

Todo lo expuesto nos lleva a la definición de circuito secuencial que no es


más que un sistema digital resultante de un AF (autómata finito) con tecnología
electrónica o electromecánica.

V.5.1 Tipos de elementos en los circuitos secuenciales

En la realización de las funciones definidas por un AF se usan dos tipos de


elementos:

1. Elementos combinacionales, que realizan las funciones básicas en las


que no interviene el tiempo. Por ejemplo, la función h: Q➔S no debe
depender del tiempo, por lo que es una función lógica puramente
combinacional, representable por una tabla de verdad y realizable con
los procedimientos de la lógica estudiada con anterioridad.

2. Elementos con memoria, para realizar aquellas funciones en las que


interviene el tiempo; f: E x Q ➔ Q dará, para cada E(t) y Q(t), el valor
Q(t+ 1) (el 1 está referido a una escala de tiempos arbitraria) es decir,
calcula el valor resultante de Q y lo memoriza para darlo en t+ 1.

V.5.1.1 Elementos combinacionales

Los elementos combinacionales son las puertas lógicas NOT, OR, ANO,
NO~ NANO. (Tecnologías electrónica, mecánica, hidráulica, neumática, óptica,
etc), que ya se han comentado en el capítulo II.

V.5.1.2 Elementos con memoria

Los elementos con memoria son las líneas de retardo y los biestables.

Las líneas de retardo son elementos con memoria más sencillos que existen,
y están caracterizados porque E = Q = S = { O, 1}, y dado un intervalo de tiempo T,

180
V.5 Circuitos secuenciales

cumplen la siguiente ecuación (V-4):

s(t+T) = q(t+T) = e(t) (V-4)

con e, q, s e { O, 1}.

Estos elementos pueden ser elaborados con retardos físicos de cualquier señal
y también con biestables.

Los biestables son elementos con memoria que consisten en circuitos con dos
estados estables que son también la salida del circuito, y que simbólicamente son
denominados O y l. Físicamente cada uno de ellos corresponde a un nivel de tensión.
Estados estables significa que el elemento sólo cambia de estado bajo la acción de
las entradas. Hay diversos tipos de biestables que se diferencian en los posibles
símbolos de entrada y las funciones de transición. Los biestables se fabrican con dos
líneas de salida: en una de ellas, Q, se tiene el nivel de tensión correspondiente en
cada momento al estado O o 1, y, en la otra, se tiene -,Q (es decir, la negación de
Q).

Cada uno de los distintos tipos de biestables y su comportamiento se


comentan más adelante.

V.5.2 Modelos básicos de los circuitos secuenciales

Hay dos tipos de autómatas tal y como ya hemos comentado: los autómatas
representados con máquinas de Mealy, en los que la salida se obtiene como
combinación de las variables de entrada y de las del estado interno. Y los autómatas
representados con máquinas de Moore, en los que las variables de salida coinciden
con las del estado interno.

Las funciones que definen un AF son como ya conocemos la funciones de


transición q(t + 1) = f(e(t), q(t)) y de salida s(t) = g(e(t), q(t)). Pues bien, con ellas
se puede deducir el modelo general para circuitos secuenciales:

Si (f, g) define el circuito combinacional y EM los elementos de memoria se


describe un sistema de realimentación, dado por el siguiente conjunto de ecuaciones
(V-5a), (V-5b) y (V-5b ):

s(t) = g(e(t), q(t)) (V-5a)

q(t+l) = f(e(t), q(t)) (V-5b)

181
Capitulo V: Autómatas

q(t) = EM(q(t+ 1)) (V-5c)

Separamos la parte combinacional, realizable mediante circuitos lógicos que


calculan f y g, de la parte de memoria, que retarda en una unidad de tiempo q(t) y
s(t). Éste sería el modelo representado con una máquina de Mealy. Pero si existe
además una función de salida h: Q ➔ S, tal que s(t) = h(q(t)), podemos establecer el
modelo de Moore.

Por otro lado, si llamamos CC 1 y CC2 a los circuitos combinacionales y EM


a los elementos de memoria, se tienen las ecuaciones (V-6a), (V-6b) y (V-6c):

q(t+ 1) = CCl (e(t), q(t)) (V-6a)

q(t) = EM(q(t + 1)) (V-6b)

s(t) = CC2(q(t)) (V-6c)

Por ejemplo, si E (alfabeto de entrada) tiene tres símbolos a, b, c y teniendo


en cuenta que los circuitos combinacionales son binarios, tendremos que
codificarlos, haciendo por ejemplo, a = 00, b = 01, e= 10. Así, la entrada "e" será
en realidad, un par de entradas binarias: una para cada dígito del código. En
general, si E tiene k elementos, tendremos n entradas, donde k tendrá la siguiente
relación con n, i<n - I) < k ~ 2n_ Suponemos que en la realización con tecnología
binaria serán necesarias, en general, m entradas para la salida y p elementos para el
estado. Así, el modelo básico representado con una máquina de Mealy vendrá dado
por las ecuaciones (V-7a) y (V-7b), llamando CC al circuito combinacional y EM a
los elementos de memoria:

(s1, ... sm, zl, ... , zp)) = CC(el, ... , en, ql, ... , qp) (V-7a)

(ql, ... , qp) == EM(zl, ... , zp) (V-7b)

en las que suponemos que, cada entrada parcial (o señal) es binaria. Igualmente se
podría elaborar·el modelo representado con máquina de Moore.

Se puede prescindir de la escritura de la variable t, por lo que a veces se


adopta la notación z(i) = q(i)(t+l). Con ello, z(i) = f(e(l), ... , e(n)), i = 1, ... , n, y
análogamente con g y h. Con lo que si se definen los vectores columna como z, q, e,
s, tendremos en notación vectorial: z = f(e, q), s = g(e, q), s = h(q).

182
V.5 Circuitos secuenciales

V.5.3 Biestables

Los biestables son elementos de memoria con dos estados estables, que son
también sus salidas y que simbólicamente se denominan O y 1. Veamos ahora una
posible clasificación de los mismos

1. Biestable SR (set-reset). En este biestable sus posibles entradas son


E = {00, 01, 10}. Como las señales en los circuitos secuenciales son
binarias, tendrá dos líneas de entrada, sean S (set) y R (reset). Su
funcionamiento se expresa mediante la función de transición (V-8) y su
representación gráfica se da en la figura V-1:

Q(t + 1) = S(t) + R' (t)Q(t) (V-8)

conRS = O.
La unidad de tiempo "l" es el intervalo de tiempo que tarda el biestable
en cambiar de estado o 'í:iempo de basculamiento". El funcionamiento
general seria el siguiente, dado para todas las posibles entradas:

1. S=O A R = O el biestable no cambia de estado.

u. S =1 A R = O se pone a 1 (set) el biestable.

111. S= O A R=1 se pone a O (reset) el biestable (o lo repone).

lV. S=J AR= 1 la entrada no está permitida.

: 1: g.¡ :
Figura V-1: Representación gráfica del biestable S-R.

P~a diseñar un circuito lógico que realice el biestable SR, basta


minimizar su función de transición, función de S, R y Q y realimentar
Q(t+ 1) a la entrada, con lo que se obtiene (abreviamos S y R como una
sola entrada E== SR), utilizando la notación d(qi, e)= qj (nuevo estado):

d(qO, 00) = qO; d(qO, 01) = qO; d(qO, IO)=ql;

183
Capitulo V.· Autómatas

d(ql, 00) = ql; d(ql, 01) = qO; d(ql, 10) = ql;


.
En la figura V-1, f(S, R) = (Q, Q') se define por:

Q' = sV Q Q = R V Q' (V-9)

(Q' es complemento de Q en U= {O, 1}, o negación de Q = -,Q = c(Q)).

2. Biestable tipo JK. Es como el SR, pero aquí, la entrada J = 1 y K = 1


está pennitida y su efecto consiste en cambiar el estado que tuviera el
biestable. Su esquema (ver figura V-2) y una posible realización de su
función de transición f(J, K) = (Q, Q') con (Q, Q') = f(S, R) es la que se
muestra en la ecuación (V-10):

(V-10)

Figura V-2: Representación gráfica del biestable J-K.

O bien:

d(qO, 00) = qO; d(qO, 01) = qO; d(qO, 10) = ql; d(qO, 11) = ql;
d(ql, 00) = ql; d(ql, 01) = qO; d(ql, 10) = ql; d(ql, 11) = qO;

Norma_lmente no se realiza fisicamente así, sino más bien sincronizado,


como se verá después. La razón es que para J = 1 y K = 1, debido a su
comportamiento de cambio de estado, el circuito se convierte en un
oscilador con una frecuencia que depende del tiempo de basculamiento
del biestable.

3. Biestable tipo D. También tiene dos líneas de entrada pero con un


significado diferente al de los dos anteriores, Las posibles entradas de un
biestable D son E = {00, O1, 1O, 11}. Estas dos líneas de entrada se
llaman D (data) y C (clock). Su funcionamiento descrito mediante su
función de transición f es f(D, C) = (Q, Q'), ecuación mostrada en
(V-11 ), y su representación gráfica se da en la figura V-3:

Q(t + 1) = D(t) C(t) + Q(t) C'(t) (V-11)

184
V.5 Circuitos secuencia/es

de donde:

d(qO, 00)·= qO; d(qO, 01) = qO; d(qO, 10) = qO; d(qO, 11) = ql;
d(ql, 00) = ql; d(ql, 01) = qO~ d(ql, 10) = ql; d(q 1, 11) = q 1;

g
--:-----:__I _g•i---1----:
Figura V-3: Representación gráfica del biestable D.

Hay una diferencia con los otros en cuanto al significado del O y del 1
para D y C. Para C, "l" significa que hay una variación de tensión de O
a 5 Voltios o lo que es lo mismo un cambio en el flanco de la señal de
reloj que indica el funcionamiento del biestable, y para C "O" significa
que el reloj no ha cambiado y por lo tanto no hay tal variación. Por lo
que normalmente C es cero, excepto en el instante en el que su tensión
cambia desde el nivel bajo hasta el nivel alto, o a la inversa, según se
prefije el cambio por convenio. Por tanto, el valor de D sólo tendrá
sentido cuando C sea 1, de lo contrario el biestable no varia. Cuando el
biestable puede cambiar (C = 1), lo que hace es transmitir el valor de
tensión que se tenga en la entrada D.

Por tanto, el biestable D sólo cambia de estado cuando cambia el nivel


de la señal de reloj y se suele llamar "sincronizado por flancos" (edge
triggered = disparado por bordes). El que se ha expuesto está
sincronizado por el flanco de subida, pero también lo hay sincronizado
por el flanco de bajada, o sea, cambia el estado cuando C pasa de 1 a O.

4. Biestable tipo JK sincronizado. Tiene cinco líneas de entrada S, R, J, K,


C, donde su función de transición f(J, C , K, S, R) = (Q, J, Q'). S y R se
utilizan para ponerlo a 1 o O de una manera asíncrona, es decir,
independientemente de C (que representa la señal de reloj). Por el
contrario J y K son la puesta a 1 o O síncronas. Su ecuación de
funciqnamiento es la dada en la ecuación (V-12):

Q(t+l) = S + R' K' Q + R' C' Q + R' J C Q' (V-12)

Q representa Q(t). Y el valor lógico "l" para C significa una doble


transición "nivel bajo - nivel alto - nivel bajo". Esto es debido a la
constitución interna, que incluye dos biestables en una configuración

185
Capitulo V: Autómatas

llamada "maestro - esclavo". Por ello, las transiciones de la señal de


salida Q, se dan en el flanco de bajada C, lo cual garantiza la estabilidad
del biestable. ·

V.5.4 Análisis de circuitos secuenciales

El análisis de un circuito secuencial es la obtención de la salida para una


determinada cadena o palabra de entrada, o su representación, bien formal, bien en
diagramas o tablas. Vamos a ilustrar el problema que se quiere presentar en este
apartado con un ejemplo.

Ejemplo 7. Consideremos un circuito constituido por un biestable D, que representa un


sumador binario (ver figura V-4 ):

el---~:'►------
e2-__.

-,
q

L------1 tl••--
z D
e
Figura V-4: Sumador binario del ejemplo 7.

s = ((el v e2 v q) ",z) v (el "e2 "q).


z = ((el v e2) "q) v(el /\ e2) o bien:
z = H v (el" e2); donde H = q" (el v e2).

Las ecuaciones que representan la salida s y el estado z de biestable son las


presentadas previamente. En este biestable, z entra en D y en C se supone
que lo que entra es la señal de reloj. De Q sale q y de Q' no hace falta que
salga nada.

Como es un biestable tipo D, q = (zAC)v(qA,C), o sea, q mantiene su valor


hasta que C pasa de O a l, instante en el que pasa a valer z. Supongamos
que las seffales de entrada son de nivel (sincronizadas con C), que el estado
inicial del biestable es q = Oy que introducimos las cadenas de entrada:

xl = 100110, x2 = 101110

186
V.5 Circuitos secuencia/es

durante el primer intervalo de tiempo q = Otenemos z = (lAl)v(OA(lvl)) =


l,_s = (lAlAO)v(OA(lvlvO)) = O. Al llegar el siguiente impulso de reloj, el
autómata pasa a valer 1 (pues z = 1), z = (OAO)v(lA(OvO)) = O; s =
(OAOAl)v(lA(OvOvl)) = l. Para tener una representación general de este
circuito, se ponen en forma de tabla todas las posibles combinaciones de el,
e2 y q, y las resultantes para s y z, de donde se obtiene la tabla de
transiciones en el formato de Moore. Se trata de un sumador binario, de
cuya síntesis se habla más adelante.

V.5.5 Formalización general de un circuito secuencial

Sean (xl, ... , xn) entradas, (zl, ... , zm) salidas, (yl, ... , ym) excitaciones y
(sl, ... ,sn) señales de realimentación que salen de los biestables para entrar en la
parte combinacional. Si:

El circuito combinacional = CC es:

CC(xl, ... , xn, sl, ... ,sn) = (zl, ... , zm, yl, ... , ym) (V-13)~

Y los elementos de memoria, que describen el estado actual del circuito EM:

EM(yl, ... , yn) = (sl, ... ,sn) (V-14)

En general, el circuito secuencial será del tipo:

zi = [g(i)](xl, ... ,xn, sl, ... , sn) (V-15a)

yi = [h(i)](xl, ... , xn, sl, ... , sn); i = 1, ... , m (V-15b)

Cuando este tipo de circuitos sólo tienen memoria se dice que son circuitos
secuenciales autónomos y para representar el circuito se fonna lo que se conoce
como la 'tabla de comportamiento'. El estado actual A mediante E/S y X/S da el
estado siguiente B. Se formará la tabla que a cada fila (estado actual) A, y a cada
columna X (entrada), le asigna una pareja (B, Z), donde B representa el estado
siguiente y Z la salida (los elementos de la tabla son por tanto parejas).

Los biestables, llamados también flipflops, se pueden considerar como


elementos que almacenan información (en ellos se puede almacenar un bit ( 1 o O).
Las salidas dependen de las entradas y del estado anterior, diferencia fundamental
con los circuitos combinacionales. Se pueden comparar los circuitos
combinacionales y los secuenciales, teniendo en cuenta que los combinacionales son
más rápidos, pero los secuenciales son más baratos.

187
Capitulo V: Autómatas

Ejemplo 8. Hacer un generador de paridad de 8 bits. El bit de paridad indica si el


número de l 's de una señal es par o impar. Supongamos que tenemos xO, ... ,
x7 y la función aEBb ( es O o 1). Los casos son:

a = O" b =1; a = 1 " b = O; a = b = O; a = b = l.


Hay que implementar una función z sólo con elementos combinacionales, tal
que:
z = (x7EBx6)EB(x5EBx4)EB(x3EBx2)EB(xlEBxO).
En paralelo hay 7 puertas en 3 niveles:
ler. Nivel zl 1 = x7EBx6,
zl2 = x5EBx4,
zl3 = x3EBx2,
zl4 = xlEBxO.
2do. nivel z2 l = zl 1EBzl2,
z22 = zl3EBzl4.
3er. nivel z = z21EBz22.
Otra fonna de hacerlo, también usando sólo elementos combinacionales con
7 puertas y 7 niveles (en serie en lugar de en paralelo):
zl = x7EBx6
z2 = zlEBx5
z3 = z2EBx4
z4 = z3EBx3
z5 = z4EBx2
z6 = z5EBxl
z = z7 = z6EBxO
Esta última impone más retardo.

Estas tres han sido las soluciones combinacionales. Veamos ahora una
solución secuencial. Si en un sitio tenemos almacenada la información, el
dígito lo comparamos con el siguiente bit, lo que es lo mismo que lo
anterior. Para almacenar se usa un flipflop, o biestable, y se inicializa en
cero. Un ejemplo con un flipflop tipo D: D(t+ 1) = (EvQ(t)). Los bits
entrarían según el pulso de reloj, siendo ésta la solución más barata pero

188
V.5 Circuitos secuenciales

también la más lenta (dependiendo de la frecuencia del reloj). Método


alternativo, buscar una solución utilizando circuitos secuenciales mediante
el método de síntesis que se presenta a continuación.

V.5.6 Síntesis de circuitos secuenciales

El diseño de un circuito secuencial se lleva a cabo siguiendo los siguientes


pasos, que constituyen el proceso de síntesis de un circuito secuencial:

1. A partir de las especificaciones se obtiene la tabla de transiciones con su


consiguiente diagrama de Moore.

2. Se minimizará el autómata finito obtenido. Procedimiento que se verá


después, de forma que tenga el menor número de estados posibles.

3. Se procede a una asignación de estados.

Si el autómata finito está minimizado, tiene, por ejemplo, N estados.


Como los elementos de memoria de los que disponemos son binarios, se
necesitan p elementos con 2(p - I) < N ~ 2P. La asignación de estados es
una codificación arbitraria de los N estados con los p dígitos binarios,
según la codificación de las ((2P)!)/((2<P- 1))!) posibilidades, la
complicación del circuito varia.

4. Se escribe la tabla de transiciones en binario.

5. Según el tipo de biestable utilizado, se obtienen las 'tablas de


excitación', que dan las entradas a los biestables para cada transición.
( O sea, se obtienen las tablas de la parte combinacional del circuito).

6. De dichas tablas se obtendrán las ecuaciones lógicas de la parte


combinacional.

7. Se obtienen las ecuaciones lógicas de la salida s = h(q).

Veamos a continuación una serie de ejemplos de lo expuesto.

Ejemplo 9. Sumador binario. s = salida del biestable que entra en la parte


combinacional y z = salida del sistema, q representa el estado y el estado
siguiente del biestable y el y e2 son las entradas. La tabla de
funcionamiento que representa el autómata es la que se da a continuación:

189
Capitulo V: Autómatas

q el e2 z = sal. q(sig)
o o o o o
o o 1 1 o
o 1 o 1 o
o 1 1 o 1
1 o o 1 o
1 o 1 o 1
1 1 o o 1
1 1 1 1 1

o bien su tabla de transición:

q/e: 00 01 10 11
o 0/0 0/1 0/1 1/0
1 0/1 1/0 1/0 1/1

o bien su autómata finito:

d(qO, 00/0) = qO d(qO, 01/1) = qO d(qO, 10/1) = qO d(qO, 11/0) = ql


d(ql, 00/1) = qO d(ql, 01/0) = ql d(ql, 10/0) = ql d(ql, 11/1) = ql

Ejemplo JO. Detector de paridad. Partiendo de la notación de Moore, asignemos a los


estados los valores ql = O y q2 = 1, con lo que se obtiene la tabla (sig =
instante siguiente):

q /e_: O 1
0/0 O 1
1/1 1 O

o sea, si se utilizan biestables (sólo hace falta uno, puesto que hay dos
estados que se pueden codificar con un único bit). Si se utiliza un biestable
D, además se sabe que D = q(sig). Anotando en cada línea la entrada
necesaria al biestable para que tenga lugar la transición correspondiente, por
ejemplo, en la primera línea q(t) = O, y se debe pasar a q(t+ 1) = O, para lo
cual D debe ser O (D = O) y en la segunda línea, D = l, etc.

La tabla de excitación del biestable es:

190
V.5 Circuitos secuenciales

e q q(sig) = D
o o o
o 1 1
1 o 1
1 1 o
de donde D = (--.eAq)v(eA--.q) = eEBq. (Para entrada O se mantiene el estado
y para entrada 1 se transmite la entrada).

Con la ecuación anterior se puede construir la entrada a D con el circuito


combinacional eEBq, debido al funcionamiento de D en la 'tabla de
excitación' o representación tabular de q(sig) = D, ya que la salida del
biestable en t+ 1 es precisamente su entrada en t.

Sin embargo, no ocurre lo mismo con un JK, puesto que si tenemos que
hacer la transición q = O ➔ q(sig) = O, las entradas J y K pueden ser J = K =
O o bien J = O y K = 1 (es decir, una puesta a cero). Otro ejemplo, para la
transición q =O ➔ q(sig) = 1, se puede hacer J = K = 1 o bien J = 1 y K = O
(es decir, una puesta a uno); etc. Así, se puede escribir la tabla de
excitación, para este caso (X significa indiferente), como:

e q q(sig) J K
o o o O X
O 1 1 X O
1 O 1 1 X
1 1 O X 1

Minimizando por Karnaugh cada una de las entradas del biestable, J(e, q) y
K(e, q) se obtiene J =e= K. Así que basta con un solo biestable que no tiene
parte combinacional, y tal que J = K = e; sal= Q. Ver figura V-5:

i___:~l_~_g_,i---1----=-s
Figura V;.5: Circuito resultante del detector de paridad del ejemplo 10.

Ejemplo 11. Reconocedor de la cadena 010 (de entre las cadenas de 3 bits). A partir de la
función de transición del autómata finito reconocedor de 010, se obtiene que
hay 4 estados, por lo que hacen falta dos biestables para su representación.

191
Capitulo V: Autómatas

Definimos ql = 00, q2 = 01, q3 = 10 y q4 = 11. Así se escribe la tabla de


transiciones en binario y, a la ve~ para cada transición, las entradas de los
biestables (que elegimos JK):

e q sal q(sig) Jl Kl JO KO
o 00 o 01 o X 1 X
o 01 o 01 o X X o
o 10 o 11 X o 1 X
o 11 1 01 X 1 X o
1 00 o 00 o X o X
1 01 o 10 1 X X 1
1 10 o 00 X 1 o X
1 11 1 10 X o X 1

Las cuatro últimas columnas son las excitaciones. Simplificando con


Karnaugh y llamando Q 1 y QO a las salidas de los biestables que son los dos
dígitos de Q, obtenemos:
Jl(e, Ql, QO) = eAQO
Kl=QO
JO= -,e
· KO=e

Además de las tres primeras colwnnas se obtiene, para la salida,


sal= sal(e, Ql, QO), minimizando por Karnaugh, la siguiente expresión:

sal =·QlAQO

Colocando los biestables y los circuitos combinacionales pertinentes se


obtiene el circuito pedido.

Ejemplo 12. El contador BCD módulo 10. A partir del diagrama de Moore y, como hay
10 estados, necesitamos cuatro biestables (cuatro dígitos para codificar los
números BCD ·del O al 9). La salida será, en binario, cualquier número del O
al 9. Lo hacemos con JK, por lo que se ha de codificar los estados con los
mismos dígitos de las salidas asociadas, de la siguiente manera:
qO = sO = 0000
ql = sl = 0001

192
V.5 Circuitos secuenciales

........................
q9 = s9 =_ 1001
Así, s = q.

La tabla de transiciones y excitaciones viene dada a continuación:

e Q3Q2QlQO (Q3Q2Q 1QO)(sig) J3 K3 J2 K2 Jl Kl JO KO


o 0000 0000 o X o X o X o X
o 0001 0001 o X o X o X X o
o 0010 0010 o X o X X o o X
o 0011 0011 o X o X X o X o
o 0100 0100 o X o oX X o X
o 0101 0101 o X X o o X X o
o 0110 0110 o X X o X o o X
o 0111 0111 o X X o X o X o
o 1000 1000 X o o X o X o X
o 1001 1001 X o o X o X X o
1 0000 0001 o X o X o X 1 X
1 0001 0010 o X o X 1 X X 1
1 0010 0011 o X o X X o 1 X
1 0011 0100 o X 1 X X 1 X 1
1 0100 0101 o X X o o X 1 X
1 0101 0110 o X X o 1 X X 1
1 0110 0111 o X X o X o 1 X
1 1000 1001 1 X X 1 X 1 X 1
1 1000 1001 X o o X o X 1 X
1 1001 0000 X 1 o X o X X 1

No están todas las combinaciones debido a que sólo tenemos 10 estados de


los 16 posibles combinaciones con cuatro variables booleanas. Para tales
combinaciones, se puede tomar cualquier valor X de las J y las K.

193
Capitulo V: Autómatas

Teniendo presente esta información se procede a la búsqueda de cada una de


las funciones J y K por Karnaugh, con lo que por ejemplo la de J3 serán dos
mapas de cuatro variables cada uno:

l. Si e= O 2. Si e= 1

Q3Q2/QlQO: 00 01 11 10 Q3Q2/QlQO: 00 01 11 10
00 o o o o 00 o o o o
01 o o o o 01 O O 1 O
11 X X X X 11 X X X X
10 X X X X 10 X X X X

de donde J3 = eAQ2AQlAQ0, y análogamente se deducen por el mismo


procedimiento el resto de las entradas de los biestables:
K3 =eAQO
J2 = eAQlAQO K2 = eAQlAQO
Jl = eA-,Q3AQ0 Kl = eAQO
JO= e KO=e

Además:

sal3 ~ Q3, sal2 = Q2, sall = Ql, salO = QO,

definen el circuito mostrado en la figura V-6.

e -,Q3

JO QO 12 Q2 J3 Q3
KO QO' K2 Q2' K3 Q3'

e/\ QO
Figura V-6: Contador BCD módulo-10 con biestables J-K del ejemplo 12.

Análogamente pueden realizarse contadores (para que sean reversibles,


meter una variable más), registros de desplazamiento, etc.

194
V.5 Circuitos secuenciales

V.5. 7 Resumen y ampliación de los biestables.

Vamos· a resumir a continuación los distintos tipos de flipflops (Biestables)


que existen:

l. RS. Entradas R, S. Salidas Q, ,Q.

Q(t+l) = s V (-,RAQ(t)) (V-16)

O bien,

Q = ,RA(SvQ) (V-17a)

-,Q = -,SA(RA-,Q) (V-l 7b)

Q(t+ 1) = Sv-, (Rv-,Q(t)) (V-17c)

2. Maestro (o amo) - esclavo. Aparecen transiciones en los tiempos o


flancos de bajada del pulso de reloj, se trata de dos RS en la forma:

Ql = f(Rl, SI, C) (C, señal de reloj, f, función del biestable) (V-18)

S2=Ql (V-19a)

R2 = -,Ql (V-19b)

Q2 = f(R2, S2, -,C) (V-19c)


Este circuito desplaza la entrada hacia la izquierda. Aparecerá en el 1
una entrada como en el Ocuando funcione el reloj.
Supongamos que la situación inicial del registro es 011, que se
transforma en 11 O al llegar el pulso de reloj.

O 1 1 que se transforma en:


,J,
1 1 O al llegar el pulso de reloj.

(ver antes las ecuaciones lógicas del maestro (o amo) - esclavo).

3. D. Entrada, D; es un RS con R = -,S; su ecuación es:

195
Capítulo V: Autómatas

Q(t+ 1) = Sv(SAQ(t)) (V-20)

o bien,

Q(t+l) = -,Rv(-,R/\Q(t)) (V-21)

Lo que hay en la entrada aparece en la salida un instante después:


Q(t+ 1) = D(t).

4. JK.. Entradas J y K. Es un biestable con dos A's agregados. Salidas Q y


-,Q con la tabla:

J KQ
o oQ
o 1 o
1 o 1
1 1 -,Q

de ecuaciones:

S =JA-,Q (V-22a)

R=KAQ (V-22b)

con Q = f(S, R), y f la función del biestable. Igual que el SR, excepto en
que, si aparece la entrada 1, 1, la salida conmuta.

J K Q(t+ 1)
o o Q(t)
o 1 o
1 o 1
1 1 -,Q(t)

Su ecuación lógica es :

Q(t+ 1) = (JA-,Q(t))v(-,K/\Q(t)) (V-23)

196
V. 5 Circuitos secuenciales

5. T. Es un JK con J = K. Su tabla es:


T -Q
1 Q
o -,Q
o bien:

T Q(t+ 1)
Q(t)
-,Q(t)

o bien:

T Q(t) Q(t+l)
o o o
o 1 1
1 o 1
1 1 o
cuya ley es:

Q(t+l) = (,TAQ(t))v(TA,Q(t)) = TEBQ(t) (V-24)

Resumidos los distintos tipos de biestables, vamos a presentar ahora las


distintas transiciones existentes entre ellos:

Q(t) Q(t+l) J K s R T D
o o o X o X o o
o 1 1 X 1 o 1 1
1 o X 1 o 1 1 o
1 1 X o o X o 1

Por tanto, las posibles transformaciones de uno a otro se pueden resumir


como sigue:

197
Capitulo V: Autómatas

l. D ➔T

T = (,DAQ)v{DA-,Q) (V-25)

2. D ➔ JK

K = (,DAQ)v(CAQ) (V-26a)

J = (DA,Q)v(CAQ) (V-26b)

C es una variable booleana que toma el valor O o 1, según el resultado


que interese.

3. D ➔ RS

R = (,DAQ)v(CA,DA,Q) (V-27a)

S = {DA,Q)v(CA1)AQ) (V-27b)

Ejemplol3. Diseñar un contador módulo 3 utilizando biestables JK, que recorra los
estados en la forma 00 ➔ 11 ➔ 10 ➔ OO. Hay 3 estados, 3 < 22 = 4, hacen
falta 2 biestables para generar el circuito:

En t yen t+l
Ql QO Ql QO
o o 1 1
1 1 1 o
1 o o o
El biestable JK se define por:
Q(t + 1) = J Q' + K' Q

Con Q' = --.Q, por lo que:


JO= Ql' KO = 1 Ql(t + l) = Ql' = J Ql' + K' Ql'

por lo que:
Jl =1 Kl' = QO Kl = QO'.

198
V.5 Circuitos secuenciales

Las tablas de estado son, para QO(t+l) (izquierda) y Ql(t+l) (derecha),


respectivamente:

Ql/ QO o 1 Ql/ QO o 1
o/ 1 o/ 1
1/ o o 1/ o 1

Así, el sistema está compuesto por dos biestables JK:


El primero es:
Jl = 1 Kl = QO' Sl == Ql(t+ 1) = QO+Ql'
El segundo es:
JO= Ql' KO= 1 SO= Ql'

Ejemplo 14. Disefiar un contador módulo 4 con biestables SR, JK y D.


00 ➔ O1 ➔ 10 ➔ 11 ➔ 00

4 estados = 22 ➔ dos biestables. Sólo se codifica para e= 1, puesto que para


e=O el contador no actúa sino que permanece en el mismo estado.

t t+ 1
Ql QO Ql QO
e=l o o o 1
o 1 1 o
1 o 1 1
1 1 o o
Los biestables:
SR: Q(t + 1) = S(t) + R'(t) Q(t).
JK: Q(t + 1) = J(t) Q'(t) + K'(t) Q(t).
D: Q(t + 1) = D(t) C(t) + Q(t) C'(t).

de donde:
SO=eQO' RO=eQO
Sl = eQl' Q0 Rl = eQl
JO= e KO=e
Jl=eQO Kl = eQO

199
Capitulo V: Autómatas

DO= eQO' Dl = e (QlEBQO)

Así que con dos biestables es suficiente. Para el caso SR se tiene:

Para el primer biestable SR:


(SO, RO, salO) = (eA(salO)', eAsalO, salO), donde salo es QO.

Para el segundo biestable SR:


(Sl, Rl, sall) = (salOAeA(sall)', eAsall, sall), donde sall es Ql.

Para el caso JK se tiene:

Para el primer biestable, (JO, KO, QO) = (e, e, QO) (se tiene entonces Q0 como
salida).

Para el segundo biestable, (Jl, Kl, Ql) = (eAQO,eAQO, Ql) (se tiene entonces
Q 1 como salida).

Para el caso D, se tiene:

Para el primer biestable, (DO, C, SalO) = (eA--.SalO, C, SalO), donde Salo es


QO.

Para el segundo biestable (DI, C, Sall) = ((eASallA(SalO)') v


(eASalOA(Sall)'), e, Sall) donde Sall es Ql.

V.6 Reconocedor finito

Un alfabeto A se puede definir como un conjunto de símbolos. Y una cadena


o palabra como un conjunto de símbolos yuxtapuestos pertenecientes a un alfabeto
A definido.

El conjunto de todas las palabras o cadenas construidas con el alfabeto A se


representa por A*. Teniendo esto presente se puede definir un lenguaje L de un
alfabeto A como un coñjunto de cadenas, más concretamente un lenguaje será
normalmente un subconjunto de A* (LcA*).

Dada una cadena x y un lenguaje L, es decir, un conjunto de cadenas. Se


llama problema del reconocedor a determinar si: ¿xeL o xii!:L?. En este apartado

200
V. 6 Reconocedor finito

vamos a estudiar como ciertos lenguajes pueden asociarse con autómatas finitos que
sirven como reconoéedores de las cadenas de esos lenguajes.

Se llama reconocedor finito o autómata reconocedor finito de un lenguaje L


a un AF que sólo acepta cadenas de dicho lenguaje. Teniendo en cuenta que se
considera aceptación de una cadena de un lenguaje L por un autómata al proceso
por el que inicializando el autómata en un cierto estado qO, si se le introduce una
cadena de entrada x 1e L, se llega a un símbolo final de salida, s (generalmente un
1), que corresponde a la aceptación, o a un s = O, que corresponde a la no
aceptación.

Un reconocedor es entonces un autómata en la forma de representación de


una máquina de Moore. Así, se puede prescindir del alfabeto específico de salida y
de la función de salida, considerando el conjunto de estados F (e Q) que originan la
aceptación (estados finaJes). El reconocedor finito puede considerarse entonces
como una quintupla R = (E, Q, f, q 1, F) cuyo significado se ha visto ya al estudiar
las definiciones de autómata finito.

Teniendo presente la definición de reconocedor finito se puede definir el


lenguaje reconocido por el mismo L(R) como el conjunto de cadenas aceptadas por
R, o, lo que es equivalente:

L(R) = {xeE*I f(x, ql}eF} (V-28)

con el dominio de f ampliado a E*. A veces se representan en la forma de Moore los


estados de aceptación con una circunferencia doble y los demás estados con una
circunferencia sencilla. O bien, mediante tablas y funciones de transición.

Una expresión entre paréntesis seguida de '*' indica que lo que hay dentro
del paréntesis puede considerarse repetido tantas veces como se quiera (e incluso
ninguna vez, o sea, puede no estar). Si se escribe 'elevado a m', significa 'repetido
m veces'.

Ejemplo 15. Sea L = {(On)(lm) 1 n ~ 1 /\ m ~ l}. Denotamos q3 estado de aceptación, q4


estado de no aceptación. Entonces, con cuatro estados:

d(ql, O)= q2 d(ql, 1) = q4 d(q2, O)= q2 d(q2, 1) = q3


d(q3, O)= q4 d(q3, 1) = q3 d(q4, O)= q4 d(q4, 1) = q4

Ejemplo 16. L = { 1(01)*}. La cadena 1 ha de ser aceptada ya que la estrella indica que

201
Capitulo V: Autómatas

puede no haber ninguna O1 después. q2 estado de aceptación, q4 estado de


no aceptación.

d(ql, 1) = q2 d(ql, O)= q4 d(q2, O)= q3 d(q2, 1) = q4


d(q3, O) = q4 d(q3, 1) = q2 d(q4, O)= q4 d(q4, 1) = q4

En los lenguajes aceptados por reconocedores finitos, nos preguntamos si,


dado un lenguaje L(cE*), podemos encontrar siempre un reconocedor finito
R tal que L(R) = L. Con un contraejemplo puede verse que, en general, no.
Sea: E = {O, 1}, L = {l /\ (n2) 1 n ~ 1} (el circunflejo es aquí índice de
repetición, no potencia, y el segundo indica la potencia aritmética). Pues
para cualquier AF, hay un k que no es cuadrado peñecto, para el que
responderá equivocadamente aceptando la cadena, siendo n2 mayor que el
número de estados.

V. 7 Conjuntos y expresiones regulares

Antes de presentar los conceptos de conjunto y expresión regular vamos a


establecer las distintas operaciones que se pueden realizar con los lenguajes,
teniendo presente que se define u(An) como la unión numerable de los diferentes
elementos A n cuando n va de Oa oo.

l. Unión:

LluL2 = {x I xeLl /\ xeL2} (V-29)

3. Concatenación:

L1L2 = {xlx2 I xleLl /\ x2eL2} (V-30)

Ejemplo: L 1 = L; Ln = (L(n•l»L; Lº = {A}.

4. Cierre u operación '* de Kleene':


L* = u(Ln) (V-31)

La '*' (estrella) de Kleene del lenguaje L (= L*) representa la clase de


todas las concatenaciones o yuxtaposiciones de cero o más cadenas de L,
con la cadena vacía.

202
V. 7 Conjuntos y expresiones regulares

Definidas las operaciones previas se dice que LR es un subconjunto


(lenguaje) regular de E* si y sólo si, o bien LR es finito (puede ser LR = 0), o
bien, LR puede obtenerse a partir de conjuntos finitos de E* mediante un número
finito de operaciones de unión, concatenación y cierre. Un lenguaje regular es un
lenguaje aceptado por un autómata finito y representable por una expresión regular.

Una expresión regular es una concepto introducido por Kleene en 1956 que
puede definirse en forma recursiva, para un alfabeto E, por: (abreviamos 'x es
expresión regular' como reg(x)):

l. reg(A) /\ v'x(xeE ➔ reg(x)).

2. (reg(x) /\ reg(y)) ➔ reg(x+y)

(= reg(xvy) = cualquier cadena perteneciente ax, o a y).

3. (reg(x) /\ reg(y)) ➔ reg(x·y)


.
(yuxtaposición de x e y).

4. reg(x) ➔ reg(x*) dada por:

x* = A+ x + xx + xxx + ... = vx(i) (ieN),

con x(i) = xx ... x, i veces; x* representa todas las cadenas procedentes de


la yuxtaposición de las cadenas de x en cualquier número (incluso la
cadena vacía).

5. La prioridad de las operaciones sólo se puede modificar mediante


paréntesis. El orden es: a.- cierre, b.-yuxtaposición, c.- disyunción.

6. Sólo son expresiones regulares las que se pueden obtener por aplicación
de las anteriores reglas un número finito de veces.

Las letras mayúsculas representan en general conjuntos de cadenas y las


minúsculas representan símbolos del alfabeto. Todas ellas representan expresiones
regulares y además se usan también las letras A y 0.

Un conjunto regular es el conjunto (finito o no) formado por las cadenas


generadas por una expresión regular. Todo conjunto regular puede ser representado

203
Capitulo V: Autómatas

por la expresión regular generadora de las cadenas que contiene. Todo lenguaje
aceptado por un reconocedor finito es un conjunto regular.

Notación: El lenguaje generado por la expresión 'r' se designa por 'L(r)'. Así:

L(A) = {A}, y \fx(xeE ➔ L(x) = {x}).

Además, si x e y son expresiones regulares se cumple:

L(x+y) = L(x) u L(y) (V-32a)

L(x.y) = L(x)·L(y) (V-32b)

L(x*) = (L(x))* (V-32c)

Para cualquier alfabeto E, los lenguajes regulares de E son los mismos que
los lenguajes dados por las expresiones regulares de E. Si un lenguaje está
representado por una expresión regular, entonces es regular. E* es el resultado de
aplicar '*' al alfabeto. De ahí la estrella que se le pone a E* para representar el
lenguaje generado por el alfabeto E. Efectivamente, definiendo L(i) como el lenguaje
cuyas cadenas tienen longitud 'i' (con L(O) = {A} y L(l) = L), se tiene:

L*(de alfabeto E)= E*= L(O) u L(l) u L(2) u L(3) u ...

Únicamente, pues, son expresiones regulares las que se obtienen aplicando un


número finito de veces las siguientes reglas:

1. 0 es expresión regular.

2. A es expresión regular.

3. v'aeE, a es expresión regular.

4. Si x e y son expresiones regulares, x+y, xy, x*, (x), también lo son.

Toda expresión regular genera un lenguaje recursivamente (lo define). El


lenguaje representado por una expresión regular puede obtenerse igualmente
aplicando las reglas:

l. L(0) = 0.

204
V. 7 Conjuntos y expresiones regulares

2. L(A) = {A}.
3. \ia(aet ➔ L(a) ={a}).

4. \ixy((reg(x) /\ reg(y) ➔ (L(x+y) = L(x)uL(y) /\ L(xy) = L(x)L(y) /\


L(x*) = L(x)* /\ L((x)) = L(x)).

Teoremas importantes relacionados con los lenguajes, conjuntos y


expresiones regulares son los siguientes, \ix:

l. A*= A..

2. 0x=x0=0.

3. 0* = A.

4. x*x* = x*.

5. x* = A.+xx*.

6. (x*y*)* = (x+y)* = (x*y)*.

7. x=y*z ➔ x=yx+z.

8. xx* = x*x.

Las expresiones regulares se usan para describir lenguajes regulares (son


expresiones metalingüísticas). A veces se utiliza la notación lxl para designar el
lenguaje descrito por la expresión regular x. Con esta notación y definiendo RR
como el conjunto de expresiones regulares sobre un alfabeto E = {e 1, ... , en} con las
operaciones suma, concatenación y cierre (definición recursiva), la definición de la
regularidad queda como sigue:

l. A, 0 e RR. (A es la cadena vacía y 0 es el conjunto vacío) y ei (v'ie[l,
n])_ son expresiones regulares tales que IAI = {A}, 101 = 0, \ii(leil =
{ei}).

2. x, y e RR ➔ x+y es la expresión tal que lx+yl = lxl u IYI y 'x+y' e


RR.

205
Capítulo V: Autómatas

3. x, y e RR ➔ xy es una expresión regular tal que lxyl = lxllyl y 'xy' e


RR.

4. x e RR ➔ x*e RR y lx*I = lxl*.


Teniendo en cuenta lo que se acaba de exponer se define que dos expresiones
regulares son iguales si y sólo si designan el mismo conjunto regular x = y tt lxl =
IYI- Y que todos los lenguajes aceptados por reconocedores finitos son conjuntos
regulares y recíprocamente.

V.8 Análisis y síntesis de un reconocedor fmito

Presentemos el problema de análisis y de síntesis de un reconocedor finito


mediante una serie de ejemplos sencillos. El ejemplo 17 refleja el proceso de
síntesis, es decir, dado las especificaciones del reconocedor que se quiere obtener,
crearlo. Y los ejemplos 18 y 19 reflejan el proceso de análisis, dado la tabla de
transición obtener la cadena o cadenas que reconoce, es decir, el lenguaje.

Ejemplo 17. Establecer la función de transición para un autómata reconocedor de la


cadena 321, suponiendo E = {1, 2, 3}. Es decir, reconocer la cadena 321 de
entre las 33 = 27 cadenas de tres números que genera E, por ej.: 321, 311,
132.

Se supone que la cadena está aislada, es decir, que es una de las 27


variaciones con repetición de tres elementos tomados de tres en tres, de las
cuales el autómata acepta sólo la 321 y rechaz.a las demás. El conjunto de
estados será Q = {qO, ql, q2, q3, q4 = NA}. (NA= no aceptación). Si ex.
(qO) es estado inicial, q3 el estado final de aceptación y q4 el estado de no
aceptación, en notación d(estado, entrada) = nuevo estado, tenemos: (d
designa la función de transición)

d(cx., 3) = ql d(ql, 2) = q2 d(q2, l) = q3 (aceptación)


d(cx., l) = d(cx., 2) = d(ql, 1) = d(ql, 3) = d(q2, 2) = d(q2, 3) =
d(q4, l) = d(q4, Q) = d(q4, 3) = q4

Al sintetizar un autómata reconocedor queremos en general que sea mínimo,


ahora bien, un autómata está en forma mínima de estados cuando ningún otro
autómata con menos estados puede reconocer el mismo lenguaje. Existen varios
algoritmos de reducción, la mayoría de los cuales se basan en procesos de

206
V. 8 Análisis y síntesis de un reconocedor finito

clasificación de estados, y consiguen una reducción, si ello es posible, de éstos. Sin


embargo, el procedimiento que proponemos aquí, por ser más cercano al estudio de
los lenguajes, es obtener la expresión regular asociada, simplificarla y obtener de
nuevo un autómata que la identifique unívocamente. Para obtenerlo puede utilizarse
por ejemplo, el método de las derivadas que se verá después.

Ejemplo 18. Dado el autómata finito:


M a b e
qO ql q3 q3
ql q2 q3 q3
q2 q3 qO q3
q3 q3 q3 q3
a. - Probar que el estado resultante de la secuencia de entrada abaaaba es q3.
b.-Dar la transición de estados de este autómata finito.
c. - Expresar el tipo de cadenas que identifica, si el estado de aceptación es
q2.

Solución a.- paso 1: d(qO, a)= ql;


paso 2: d(ql, b) = q3;
paso 3: d(q3, a)= q3;
paso 4: d(q3, a) = q3;
paso 5: d(q3, a) = q3;
paso 6: d(q3, b) = q3;
paso 7: d(q3, a)= q3.

Solución b.- A partir de la tabla la transición de estados es inmediata:


d(qO, a)= ql d(qO, b) = q3 d(qO, e)= q3 d(ql, a)= q2
d(ql, b) = q3 d(ql, e)= q3 d(q2, a)= q3 d(q2, b) = qO
d(q2, e)= q3 d(q3, a)= q3 d(q3, b) = q3 d(q3, e)= q3

Solución el.- paso 1: d(qO, a)= ql;


paso 2: d(ql, a)= q2;

207
Capitulo V: Autómatas

Solución c2. - Estando en q2 tras haber introducido la cadena aa, entonces


se puede regresar a qO con la transición d(q2,b)=q0, que tras un nuevo par
de a's llega de nuevo a q2.

Por lo tanto, si el estado de aceptación es el q2, la cadena aa es la


identificada en el y con c2 se identifican cadenas del tipo (aab)*aa (con el
cc2).

Ejemplo 19. Dado el autómata siguiente, hallar la expresión regular asociada. Estado
inicial q 1, estados finales de aceptación q6 y q8.
d(ql, a)= q2 d(ql, b) = q3 d(q2, b) = q2 d(q3, a)= q3
d(q2, a)= q4 d(q3, b) = q4 d(q4, a)= q5 d(q5, a)= q6
d(q5, b) = q7 d(q6, b) = q6 d(q7, a)= q7 d(q7, b) = q8
d(q8, a)= q8

Para ver el resultado rápidamente, procederemos de manera heurística:

1-4 4-5 5 -final


ab*a a ab*
ba*b a ba*ba*

Por tanto, (ab*a + ba*b)a(ab* + ba*ba*).

Relativo al problema de síntesis y análisis existen dos teoremas de Kleene que


los relacionan con los conceptos de lenguaje regular y autómata reconocedor.
Teorema de análisis: Todo lenguaje aceptado por un AF es regular. Teorema de
síntesis: Todo lenguaje regular es aceptado por un autómata finito.

V.8.1 El problema de síntesis y su solución

Hay dos maneras para obtener un autómata que reconozca un lenguaje a


partir de su expresión regular: mediante el proceso de recursividad y mediante el
proceso de derivación. Sea a. la cadena de entrada. En negrita se escriben los
estados finales.

Proceso de recursividad:

1. Si a. = 0, escribir d(p, 0) = p, y se pone un estado q final sin conexión.


Ese es el autómata reconocedor de la expresión regular 0.

208
V. 8 Análisis y síntesis de un reconocedor finito

2. Si a.= A, escribir d(p, A)= q (final).

3. Si a.= a (aeE), escribir d(p, a)= q (final).

4. Si a.= P + y, escribir d(p, P) = ql, d(p, y)= q2; y luego se hace:


d(p, A)= pl; d(pl, J3) = ql; d(p, A)= p2; d(p2, y)= q2.

5. Si a.= J3·y, escribir d(p, J3) = ql, d(p, y)= q2, d(pl, P) = ql, d(ql, A)=
p2, d(p2, y) = q2.

6. Si a. = P*, escribir d(p, P) = q, d(p, A) = d(p, P) = q.


La definición de derivada permite resolver el problema de síntesis, dando el
autómata mínimo que acepta el lenguaje dado por una expresión regular dada. Se
calcula en tres etapas, primero calculando la "derivada de una expresión regular",
segundo, se obtiene la gramática asociada y tercero, se obtiene el autómata finito.
Las derivadas permiten construir la gramática regular asociada al autómata.

Una gramática es un proceso de cálculo para definir un lenguaje. Y una


gramática regular es una gramática cuyas reglas de escritura son tales que:

1. El lado izquierdo de cualquier regla consiste en un solo símbolo de un


alfabeto, llamado de símbolos NO terminales.

2. El lado derecho debe ser un símbolo de un alfabeto, llamado de símbolos


terminales, seguido por un NO terminal, o un solo terminal, o la cadena
vacía: A➔aB, A➔a, A➔A.

La regla A➔x equivale a A➔x.B /\ B➔A.

L(G) representa el lenguaje generado por la gramática G, y L(M) representa


un lenguaje reconocido por el autómata M. Con ello se estable que v'E(alfabeto)
{L(G)IG es gramática regular de alfabeto E}= {L(M)IM es un autómata de alfabeto
E}.

La derivada de una expresión regular a. respecto de un símbolo aeE es


D(a)(a.) = {xi a·x e a.}, o sea, el conjunto de palabras que aparecen en a. y
empiezan por el símbolo a. La derivada es el conjunto de los residuos de esas
palabras.

209
Capítulo V: Autómatas

La axiomática de la derivación se constituye con las siguientes reglas:

l. D(a)(0) = 0.

2. D(a)(A) = 0.
3. D(a)(a) = A.
4. v'b((beE /\ b *a) ➔ D(a)(b) = 0).
5. D(a)(a. + P) = D(a)(a.) + D(a)(J3).

6. D(a)(a.·P) = (D(a)(a.))·P + B(a.)·D(a)(J3).

siendo B(a.) = A, si A.Ea. y B(a.) = 0, si Aé a..

7. D(a)(a.*) = (D(a)(a.)) · a.*.

8. Composición de derivadas: D(ab)(a.) = D(b)(D(a)(a.)).


El autómata reconocedor de la expresión es obtenido de las derivadas. Si a.O
es la expresión regular inicial y las Di son todas las expresiones regulares que se
obtienen por derivación compuesta con respecto a todos los símbolos de entrada, el
autómata se define por (E, Di u{F}, f, a.O, {F}), siendo fla función dada por:

1. Si D(a)(a.) = P, P * A, f3 * 0, escribir P e f(a., a).


2. Si A e D(a)(a.), escribir F e f(a., a).

3. Si A e a.O, escribir F e f(a.O, A).

4. Si D(a)(a.) = 0, escribir f(a., a)= 0.

Ejemplo 20. Calcular el autómata reconocedor de la expresión regular: ex. = 1 + 23

Las derivadas son:


Dl(cx.) = D1(1) + D1(23) =A+ 0 =A
D2(cx.) = D2(1) + D2(23) = 0 + 3 = 3
D3(cx.) = D3(1) + D3(23) =0

210
V. 8 Análisis y síntesis de un reconocedor finito

Dll(a) = D12(a) = D13(a) = 0 = D3(a)


. D2l(a) = D1(3) = 0 = D3(a)
D22(a) = D2(3) = 0 = D3(a)
D23(a) = D3(3) = 11. = Dl(a)
D3l(a) = D32(a) = D33(a) = 0 = D3(a)
Q = {a, Dl(a), D2(a), DJ(a)}, donde D3(a) representa el estado de no
aceptación.

F = {Dl(a)}

Función de transición:
f(l, a)= Dl(a); f(2, a)= D2(a); f(3, a)= D3(a);
f(l, Dl(a)) = Dll(a) = D3(a); f(2, Dl(a)) = D12(a) = D3(a);
f(3, Dl(a)) = D13(a) = D3(a); f(l, D2(a)) = D2l(a) = D3(a);
f(2, D2(a)) = D22(a) = D3(a); f(3, D2(a)) = D23(a) = Dl(a);
f(l, D3(a)) = D3 l(a) = D3(a); f(2, D3(a)) = D32(a) = D3(a);
f(3, D3(a)) = D33(a) = D3(a);

El autómata está en forma mínima.

Ejemplo 21. Idem para a= (1+2)*3


Dl(a) = D1[(1+2)*]3 + 6[(1+2)*]D1(3) = [Dl(l+2)](1+2)*3 +11.0
= (1+2)*3 = a
D2(a) = ... =a
D3(a) = D3[(1 + 2)*]3 + 6[(1 +2)*]03(3) = 0 + 11.11. = 11.
D3l(a) = D32(a) = D33(a) = 0
Q = {a, D3(a), D3l(a)}
F = {Dl(a)}

211
Capítulo V: Autómatas

V.9 Autómata finito no determinista

Un autómata finito no determinista es aquel autómata finito, tal que puede


existir en él más de una transición por cada pareja estado entrada, y, en cada
instante, el autómata podría realizar varias transiciones de un estado a otro.

Matemáticamente, un autómata finito no determinista AFND es una


quíntupla de la forma (E, Q, f, qO, F), tal que:

1. E es un alfabeto de signos de entrada.

2. Q es un conjunto de estados.

3. f: Q x E ➔ Q, es una correspondencia, no necesariamente función


(fe Q xE x Q).

4. qO (eQ) se llama estado inicial.

5. F (cQ) es un conjunto de estados finales de aceptación.

Si en algún caso (q, a, q 1) e f y (q, a, q2) e f, con q 1 t:- q2, se dice que se
presenta una opción y se puede pasar a dos o más estados distintos (o al uno o al
otro) con (q, a), y se dice que el conjunto de estados a los que se puede pasar es un
'estado' k = {ql, q2, ... } del AFND, donde k es el conjunto de estados a los que se
puede llegar desde uno dado con una cierta entrada, en cuyo caso, puede escribirse
(q, a, k) e f como f(q, a) = k.

El conjunto de estos nuevos estados k lo denotamos por K, siendo entonces K


e ft)(Q) (= conjunto de los subconjuntos de Q).

Cualquiera que sea un alfabeto E, el conjunto de los lenguajes aceptados por


los AFND's sobre E es el mismo que el conjunto de los lenguajes aceptados por los
AFD's sobre E. Es decir, el no determinismo de un AF no aumenta su poder
computacional.
-
Teorema de equivalencia entre AFD 's y AFND 's. Para cada AFD existe un
AFND equivalente (aceptador y reconocedor del mismo lenguaje) y viceversa. Del
mismo modo, para cada autómata finito no determinista existe un autómata finito
determinista que acepta exactamente el mismo lenguaje. O lo que es lo mismo, para
todo alfabeto, la clase de los lenguajes reconocibles por autómatas deterministas es
la misma que la clase de los lenguajes reconocibles por autómatas no deterministas.

212
V.9 Autómata finito no determinista

O sea, para cada autómata finito no determinista, existe otro, determinista,


que acepta el mismo lenguaje si se define de acuerdo con las siguientes reglas (las
cuales sirven de procedimiento para obtener un AFD asociado a él, de manera que
acepte el mismo lenguaje):

Si el AFND es (E, Q, f, qO, F), entonces un AFD asociado es el autómata


(E, K, d, qO, G), donde:

l. K = ft)(Q), es decir, escribimos ft)(Q) definido por extensión.

2. G es el conjunto de los subconjuntos de Q (o sea, el conjunto de los


elementos de K) que tengan al menos un elemento de F.

3. des la función de K x E en K, tal que \faeE, y \fkeK.

d(ki, x) = {q I qeQ /\ 3p((p, a, q)ef /\ peki)}


y, si resulta que d(ki, x) no tiene elementos, se omite. La 'i' es un índice
de la numeración de los elementos de K. Cuando se han obtenido estas
relaciones, se renumeran los estados ki como kj, donde j = {1, 2, ... }.

d(k, x) es la clase de todos los estados de Q a los que se puede llegar


desde K, cuando entra x.

El autómata obtenido, no está, en general, en forma mínima.

Ejemplo 22. Sea el autómata finito no determinista:

A=({O, l}, {q0,ql,q2},f,q0, {ql}), ydondefes:

f(qO, O)= {ql}; f(qO, 1) = {qO, ql};

f(ql, O)= {qO}; f(ql, 1) = {qO, ql};

f(q2, l) = {q2}; f(q2, 1) = {ql }.

por ej., f(ql, 1) = {qO, ql} dice que, partiendo de ql, si llega un 1, se puede
llegar por igual a qO o a q 1.

Entonces obtenemos K:

213
Capitulo V: Autómatas

K = {0, {qO}, {ql}, {q2}, {qO, ql}, {qO, q2}, {ql, q2}, {qO, ql, q2} }.

Hacemos kO = {qO} y obtenemos G teniendo en cuenta su definición (o sea,


el conjunto de los elementos de k en los que esté el estado final q 1) es decir:

G = { {ql}, {qO, ql}, {ql, q2}, {qO, ql, q2} }.

Y ahora, por ejemplo, obtengamos alguna expresión de la transición:

d({qO, ql}, l) = {q I qeQ /\ (q E f(qO, l) v q E f(ql, l)) }.

Si q es qO se obtendrá qO E f(qO, 1) v qO E f(ql, 1), que es verdadera ya que


qO E f(qO, 1).

Si q es ql se obtendrá ql e f(qO, 1) v ql E f(ql, 1), que es verdadera ya que


ql E f(qO, 1).

Si q es q2 se obtendrá q2 E f(qO, 1) v q2 e f(ql, 1), que es falsa ya que q2


~ f(qO, l) y q2 E f(qO, 1). Así d({qO, ql}, 1) = {qO, ql}.

Si existe una cadena de estados q, tal que, a partir de qi, y entrando


solamente 11., se llega al estado final (cadena 11. admitida), ese estado qi y
todos esos q posteriores hacia el estado de aceptación, se añaden al estado
inicial kO (son 'estados iniciales').

Al revés, es evidente que todo autómata AFD puede transformarse en un


AFND sin más que sustituir cada uno de sus estados qi en {qi}. Esto indica que el
no determinismo de un autómata finito no aumenta su capacidad computacional,
dado que los lenguajes que pueden ser reconocidos por algún autómata AFD son los
mismos que los.lenguajes que pueden ser reconocidos por algún AFND.

V.10 Autómata probabilístico o estocástico

Un autómata probabilistico o estocástico (AFP) es un autómata en el que las


transiciones se producen con ciertas probabilidades. Tienen aplicaciones en
movimientos de robots, reconocimiento de voz y entendimiento de lenguaje natural.

Matemáticamente un autómata finito probabilístico AFP es una quíntupla


(E, Q, M, P(O), F), donde:

214
V. l OAutómata probabilístico o estocástico

1. E es el alfabeto de símbolos de entrada.

2. Q es el conjunto de estados.

3. M es un conjunto de matrices de probabilidad de transición entre


estados, M = {M(a) 1aeE}.

4. P(O) es un 'vector de estado inicial'.

5. F(cQ), es el conjunto de estados finales. No se utilizan entonces


funciones de transición.

Propiedades:

l. \f aeE 3M(a) = (pij), (matriz cuadrada de transición, mm, siendo n el


número de estados).

2. pij es la probabilidad de que si se está en el estado i y se recibe una


entrada dada se pase al estado j. Entonces O ~ pij ~l y Vi, I:(pij) = 1,
con la suma extendida desde j = 1 hastaj = n. 3.- El "vector de estados"
en un instante t, P(t), es una matriz de n componentes y cada una de
ellas, Pi(t) es la probabilidad inicial de estar en el estado i; por lo que
I:Pi(t) = 1, con la suma extendida desde i = 1 hasta n. La probabilidad
de estar en i en t + 1 si la entrada es el símbolo "a"se calcula mediante
Pi(t + 1) = I:Pj(t)Mji(a), con la suma extendida desde j = 1 hasta j = n,
es decir P(t + 1) = P(t)· M(a) .

. Dada una palabra de entrada x = ala2 ... ap, en el instante t, se tiene P(t) =
P(O)· □M(ai), donde el productorio se extiende desde i = 1 hasta p. Este cálculo se
efectúa como P(t) = (P(O)·M(al)) · M(a2) · ...

Se simplifica con la notación P(x) = vector de estados resultante de pasar del


estado inicial, al recibir la palabra x.

Si se recibe una palabra de entrada xeE*, se calcula la probabilidad de que,


desde el estado inicial, se llegue al estado i al realizar transiciones con esa palabra,
con lo que se tiene la componente Pi(x), y luego se calcula la probabilidad de que al
recibir en la entrada la palabra x se llegue al estado final PF(x), sólo sumando las
Pi(x) de los estados ieF, PF(x) = I:Pi(x), donde ieF.

215
Capitulo V: Autómatas

Para saber si se ha aceptado una palabra, se define un umbral u que satisface


O :S: u :S: l; el autómata acepta la palabra x cuando PF(x)2:u. Obviamente se aceptan
menos palabras cuanto mayor es u. Se tendría entonces un AFP = {E, Q, M, P(0),
F, u), con L(AFP) = {x I PF(x) 2: u, xeE*}.Un AFD seria un AFP con
probabilidades 1 o O.

Para transformar un AFD - (E, Q, f, q0, F) en su AFP equivalente,


AFP = (E, Q, M, P(0)), se opera así:

l. i = q0 ➔ Pi(0) = 1; i ;é q0 ➔ Pi(0) = O; u > O

2. f(i, a) = j ➔ Mij(a) = 1; f(i, a) ;é j ➔ Mij(a) = O, \faeE

A veces, un AFP se denota dando los alfabetos de entrada y salida, los


estados, una función de probabilidad, con la que generar las matrices y una función
h.

Ejemplo 23. ¿Cuál es la probabilidad de pasar de ql a q2 mediante la cadena 010 en el


autómata estocástico (E, S, Q, P, h) definido por:
E= S = {O, l}, Q = {ql, q2}, h(ql) = O, h(q2) = 1
P(O, ql) = (0.3; 0.7) P(l, ql) = (0.65; 0.35)
P(O, q2) = (0.55; 0.45) P(l, q2) = (0.55; 045)

Solución pasa por obtener las matrices:


M(O) = [0.3, 0.7; 0.55, 045]
M(l) = [0.65, 0.35; 0.55, 045]
M(OlO) = M(O)·Ml ·M(O), producto de matrices cuyo resultado es:
M = [0.405, 0.595; 0.39875, 0.60125]; como se nos pide la probabilidad de
paso de ql a q2, esta probabilidad es el término M(l, 2) = 0.595.

Otra forma de calcularlo es examinando las probabilidades de paso una a


una, representando las entradas entre paréntesis:
(O)➔ql ➔(l)➔q l ➔(O)-+q2 0.3 X 0.65 X 0.7 = 0.1365

(O)➔q 1➔(l)➔q2 ➔(0)➔q2 0.3 X 0.35 X 0.45 = 0.04725


(O)➔q2 ➔(l)➔q2➔(0)➔q2 0.7 X 0.45 X 0.04725 = 0.14175

(O)➔q2 ➔(l)➔ql ➔(O)➔q2 0.7 X 0.55 X 0.7 = 0.2645


cuya suma es 0.595.

216
Capítulo VI
Máquinas de Turing, computabilidad y complejidad

VI.1 Algoritmos y máquinas de Turing

Un algoritmo se define como un conjunto de reglas que permiten en todo


momento especificado del proceso de cálculo, conocer cuál es la próxima operación
a realizar y un criterio para reconocer el fin de la operación y obtener así el
resultado. Por las características del algoritmo y de los datos de entrada, puede
ocurrir que no se presenten nunca las condiciones del fin del cálculo. En ese caso se
dice que aquel problema a tratar era insoluble, y si ocurre lo contrario, el problema
se llama soluble.

La palabra algoritmo procede del apellido latinizado de un matemático árabe,


Mohamed ibn Musa al-Khowarizmi (o al-Kharezmi) que en 820 y 825 d. C. escribió
~espectivamente dos tratados, el primero sobre el cálculo con los números hindúes y
el segundo, de resolución de ecuaciones. La palabra algoritmo es consecuencia de la
deformación del título de esta última obra, que a su vez ha originado el nombre
'algebra' ('lo que falta', 'la diferencia').

Asociado al concepto de algoritmo se encuentra el problema de la deducción


de Leibniz (no se sabe hoy si es soluble) que dice \fR y S, fórmulas lógicas, decidir
si D(R, S).

Algunos ejemplos de problemas no resueltos: Hallar un algoritmo para decidir


si cualquier ecuación diofántica (con n variables), polinómica, tiene solución. Por
ejemplo a 2 + b 2 = c2 . Con una sola incógnita tiene solución. Otro ejemplo: Hallar la
longitud de la subcadena más larga de los decimales de e y 1t que coinciden.

217
Capítulo VI: Máquinas de Turing, computabilidad y complejidad

Presentada la definición de algoritmo, vamos a comentar diferentes


definiciones equivalentes .de máquinas de Turing.

1. Dado un alfabeto o conjunto de símbolos, E, llamado alfabeto de la


máquina, se describe una máquina de Turing, MT, como un sistema
fonnado por una cinta dividida en casillas y una cabeza sensora y
actuadora sobre ella, de manera que:

i. Para cada casilla existen otras dos, una a su derecha y otra a su


izquierda, o sea, la cinta es infinita.

ii. La cabeza puede "leer" y "escribir" bidireccional y secuencialmente


un símbolo del alfabeto en cada casilla sobre la que se pose, esté
ocupada o no (se entiende que el espacio en blanco es un símbolo y
que por tanto, la cabeza puede borrar cualquier otro símbolo, lo que
significa que lo sustituye por el espacio en blanco).

111. Posee información inicial finita escrita en la cinta (una cadena de


caracteres). La cinta desempeña el papel de memoria.

1v. Existe un conjunto finito Q, llamado conjunto de estados de la


máquina, que se utilizan como información para las acciones de la
máquina. Cada paso que da la máquina se representa por el número
natural 'n', al que también se llama 'instante'. Dos de los elementos
de Q (Q tiene al menos dos elementos) son llamados estado inicial y
estado final (o de parada, o muerto), teniendo en cuenta que este
último estado no tiene que ser necesariamente de aceptación.

2. Una máquina de Turing, MT, puede definirse por medio de una


aplicación 'd', que asigna a cada par ordenado (q(n), x(n)) otro par
(q(n + 1), X(n + 1)) e incluso, a este par ordenado le asigna otro,
(q'(n + 1), x'(n + 1)), en la forma d(q(n), x(n)) = (q'(n + 1), x'(n + 1)),
según el siguiente criterio.

i. Cada "q" representa un estado y cada "x" un símbolo del alfabeto.

11. Cada "X" puede ser, o bien un símbolo del alfabeto, o bien uno de
estos tres símbolos que no forman parte del alfabeto de máquina, R,
L, P, que significan respectivamente, los movimientos de la cabeza,
una casilla a la derecha, una casilla a la izquierda, o ausencia de
movimiento.

218
VJ.1 Algoritmos y máquinas de Turing

m. Cada símbolo x'(n + 1) representa el símbolo que queda en la


casilla después de ser leída, de manera que la imagen de "d" sea
siempre, tras cada paso, un par ordenado formado por estado y
símbolo. La función así definida es una aplicación del producto
cartesiano de Q por E en sí mismo, la cual no es necesariamente
sobreyectiva. Cada asignación especificada de "d" se llama
transición, y a "d" se le llama "función de transición".

3. Una máquina de Turing, MT, se podría representar también, como


auxiliar, mediante la forma gráfica de los diagramas de autómatas,
qi ➔ qh, donde la qi (o qO, es el estado inicial), que al igual que los
demás estados se rodea con círculo, y la qh (es el estado final o terminal)
que se rodea con dos círculos. De esta forma se pueden simbolizar todas
las transiciones del tipo d(qj, x) = (qk, y), o bien d(qj, x) = (qh, L), o
bien d(qj, x) = (qk, R).

4. Una máquina de Turing, definida por Turing en 1936, es pues, un


artefacto computador constituido por un autómata finito que controla
una cinta infinita. Cada paso en el cálculo de una MT consiste en
escribir un símbolo en la cinta, desplazar la cabeza de lectura/escritura
una casilla a la derecha o a la izquierda y pasar a un nuevo estado. La
acción concreta de cada paso está detenninada por el estado en curso de
la máquina y por el símbolo que lee en ese instante la cabeza.

5. El funcionamiento de una MT también se puede especificar


completamente por una lista de quíntuplas (e(i), qG), e(k), m(h), q(p)),
donde están todas las combinaciones e(i) y qG) que permite el alfabeto
externo E de la máquina y el conjunto de estados Q, a partir de la
información inicial que hay en la cinta y de la situación inicial de la
máquina, que viene detenninada por la posición de la cabeza y el estado
del autómata. La lista de quíntuplas se llama esquema funcional o
programa de la MT.

6. Definida como tupla, una máquina de Turing, MT, es una tupla


(E, K, B, Q, qO, f, F), donde:

1. E (e K) es el alfabeto de símbolos de entrada. Como la MT puede


escribir en la cinta el alfabeto de los símbolos que inicialmente
pueden aparecer en la cinta (E) es diferente del alfabeto de los
símbolos que en algún momento pueden aparecer en ella (K).

219
Capítulo VI: Máquinas de Turing, computabilidad y complejidad

u K es un alfabeto llamado de símbolos de cinta.

1n. B ( e K, B é E), es un símbolo especial de la cinta de entrada que


representa el espacio en blanco.

1v. Q es el conjunto de estados.

v. qO ( e Q), es el estado inicial.

v1. fes una aplicación, f: QxK ➔ QxKx{L, R, P}, que representa la


función de transición de la máquina, y donde L simboliza izquierda,
R, derecha, y P, parada.

vn. F (cQ). es el conjunto de estados finales de la máquina.

Se denominafanción de transición de una máquina, a una función d (a veces


f), definida por d: (QxK) ➔ Qx(Ku{L, R}), donde suponemos que los símbolos L
y R no pertenecen a K. Dicha función conlleva los siguientes significados:

a. d(p, x) = (q, y) significa: "si el estado actual es p y el símbolo actual en


la cinta es x, reemplazar la x con el símbolo y, y pasar al estado q".

b. d(p, x) = (q, L) significa: "si el estado actual es p y el símbolo actual es


x, mover la cabeza una celda a la izquierda y pasar al estado q".

c. d(p, x) = (q, R) significa: "si el estado actual es p y el símbolo actual es


x, mover la cabeza una celda a la derecha y pasar al estado q".

En estas nuevas condiciones, se puede dar una septima definición de máquina


de Turing, MT:

7. La máquina de Turing es una séxtupla de la forma (E, K, Q, d, qO, qh)


donde:

i. E es un conjunto finito de símbolos, distintos del espacio en blanco,


llamado alfabeto de máquina.

11. K es un conjunto finito de símbolos, incluidos los de E, que se


llaman símbolos de cinta de la máquina.

111. Q es una colección finita de estados.

220
VJ. J Algoritmos y máquinas de Turing

1v. d es la función de transición de la máquina.

v. qO es un elemento de Q llamado estado inicial.

vi. qh es un elemento de Q llamado estado de parada.

Una vez presentadas las siete definiciones previas de máquina de Turing,


diremos que una MT acepta una cadena o que ésta es aceptable por esa MT,
cuando al aplicarle la MT como cadena inicial, la MT termina parando.

El alfabeto de cinta de un MT es un conjunto auxiliar de símbolos tales como


':;:.' '=' '*' '**' 'B' ''A,' 'll' (los tres últimos suelen denotar el espacio en blanco
' ' ' ' ' '
o casilla vacía), etc., los que sean necesarios, para indicar algo específico de la
cinta. Por ejemplo, podrían usarse '*' y '**' para indicar respectivamente el inicio y
el fin de una cadena o un segmento finito de cinta, u otros símbolos.

La diferencia entre una MI' y un autómata finito bidireccional con memoria


es que la MT se puede mover en los dos sentidos, tiene una memoria distinta y se
puede reescribir (y, por tanto, borrar). Un AF (autómata finito) se puede considerar
como un caso particular de MT que:

1. Sólo lee la cinta.

2. La cabeza se desplaza en un solo sentido.

3. La cabeza no para (salvo instrucción de parada).

Tesis de Turing: Las MT's poseen capacidad suficiente para resolver


cualquier problema para el que existe una solución por medios computacionales.

Nota: Para cada MT se puede construir, mediante una aplicación 'r',


inyectiva, un número natural que en binario, se llama "número de código binario de
la MT" y que representamos por r(MT). El número de código binario, como
veremos en su construcción, identifica completamente la máquina.

Un procedimiento práctico para construir una MT es empezar realizando el


organigrama sobre el tratamiento de la cadena o sobre el problema. El lenguaje de
programación esencial es cualquier lenguaje que contenga el tipo 'número natural'
y tenga capacidad para incrementar un valor, decrementarlo, y ejecutar un ciclo
while. Además debe tener el poder expresivo suficiente para plantear la resolución
de cualquier problema, que tenga una solución algorítmica. Sus sentencias son del
tipo:

221
Capítulo VI: Máquinas de Turing, computabilidad y complejidad

n=n+l
n=n-1
while k-:;:. O do
A
end.

Ejemplo l. *
clear k es: while k O do k = k - 1 end. La asignación a la variable 'x' del
valor de 'y' (denotado por ejemplo por x = y, x ~ y, etc.). Utilizando la
variable auxiliar z, podríamos tener el siguiente programa:

Programa:
clear z;
clear x;
while y ~O do
z = z + 1,
y=y-1
end;
while z ~O do
X= X+ 1,
y= y+ 1,
z=z-1
end.

Naturalmente el lenguaje puede irse complicando con funciones auxiliares, las


cuales pueden definirse en términos de las fundamentales. Un ejemplo puede ser
realizar el algoritmo de Euclides, que calcula el máximo común divisor de dos
números A y B, MCD(A, B).

Ejemplo 2: Calcular el MCD de dos números A y B.


El programa resultante podría ser:
if A * O" B = O, .
MCD=A,
end;

222
VJ.1 Algoritmos y máquinas de Turing

if A * O A B * O,
_ R=l
end·
'
while R O, *
R = A - B*(parte entera (A/B)),
A=B
'
B=R,
end·
'
MCD=B.

Viendo los ejemplos que acabamos de poner, es conveniente enunciar el


teorema de Minsky, que dice que toda MT puede expresarse en un lenguaje
fundamental de programación, y el lenguaje fundamental de programación posee el
mismo poder computacional que las MT's.

VI.1.1 Propiedades de las máquinas de Turing

En este apartado vamos a pasar a definir una serie de propiedades de las


máquinas de Turing que las hace comportarse de una forma especial:

l. Se dice que una MI' es determinista cuando su correspondencia "d" de


transición es función. Y se llama no determinista cuando esa
correspondencia no es función, específicamente porque hay alguna
pareja que tiene más de una imagen.

También es posible decir que el conjunto de los lenguajes reconocidos


por MT's no deterministas es el mismo que el conjunto de lenguajes
reconocidos por MT's deterministas. Es decir, todo lenguaje reconocido
por una MT no determinista, lo es por otra MT determinista. El no
determinismo no aumenta el poder computacional. Este hecho es el
mismo que ocurría al hablar de los autómatas finitos, dado que las
máquinas de Turing no son más que autómatas.

2. Se dice que una máquina de Turing es de dos (o más) cintas cuando


está compuesta por un par (o más) de MT's, tal que por medio de una
serie de instrucciones pueden realizarse parte de los cálculos en una o en
otra, indicándose en que condiciones se produce el cambio de cinta. Se

223
Capitulo VI: Máquinas de Turing, computabilidad y complejidad

sabe mediante el teorema de Hao W ang que hay equivalencia


computacional entre _las MT' s de una cinta y las MT' s de varias cintas.

3. Se dice que una MT es MI'-agráfica de dos semi cintas cuando se


compone de dos semicintas que tienen dos cabezas lectoras y dos cintas
limitadas por un extremo (semicintas), sobre las cuales se mueven esas
cabezas. Ninguna de esas dos cabezas puede escribir nada sobre las
cintas, las cuales permanecen en todo momento en blanco, salvo en la
posición O, en la que hay un carácter especial detectable por las cabezas.
Se puede probar que esta MT puede simular cualquier otra MT y
realizar los mismos cálculos. (Esquema de la prueba, al haber dos cintas
hay dos funciones "d", que dependen sólo de estados y desplazamientos,
y que pueden ser asignadas biunívocamente a la "d" de la máquina
simulada).

4. Se dice que un proceso de cálculo tiene finitud cuando su MT asociada


para. Se dice entonces que el proceso de cálculo es finito. Si no para, se
dirá que el problema de la finitud del cálculo no tiene solución (es
insoluble). Acorde con lo expuesto se debe enunciar el siguiente teorema:
El problema "dada una MT y una cinta con n caracteres y una posición
inicial, decidir con otra MT si el proceso se detendrá o no", es un
problema insoluble. (Problema de la parada, que se trata después).

Por ejemplo, el problema de la predeterminación de impresión de un


carácter o símbolo del alfabeto E por una MT es insoluble.
Efectivamente, si no fuese así, la máquina resolvería el problema de la
parada, resolviendo el problema de la finitud del proceso. Sea un nuevo
símbolo s añadido a E, que se imprime si y sólo si cada signo e del
alfabeto se imprime en el estado de parada o neutro, entonces si el
problema de la predeterminación fuera soluble, también lo sería el
problema de la parada.

5. Se dice que una MT realiza un proceso de cálculo uniformemente finito


(o que el cálculo tiene la propiedad de la finitud uniforme), cuando se
detiene en todo caso, o sea, con cualquier cinta de entrada. Se dice que
es uniformemente infinito si no se detiene en ningún caso. Y se dice que
es intermedio si se detiene en algún caso y en algún otro no se detiene.
El problema de determinar cuál de las tres ocurre se llama el problema
de la finitud uniforme.

224
VJ. J Algoritmos y máquinas de Turing

El problema de la finitud uniforme no tiene solución pues puede


probarse que si la tuviera, también la tendría el problema de la parada.
Esto río quiere decir que la pregunta sobre la finitud o la infinitud no
pueda ser resuelta con una MT, lo que a veces incluso, es muy fácil. Es
más, no puede afirmarse que para una MT concreta, no exista un
algoritmo para averiguar si el proceso es o no finito, pues si se detiene,
ya se ha averiguado, y si no, se puede afirmar que no hay un algoritmo
para saber si el cálculo es o no finito, lo que significa que el proceso es
infinito, así que ya hay un procedimiento para decidir que es infinito. Sin
embargo, es un teorema demostrado que no hay algoritmo que nos lleve
a la solución.

6. Se dice que una MI' tiene sustituibilidad ordenada cuando la máquina


consta de un alfabeto ordenado, por ejemplo {O, A, B, C}, de manera
que ningún símbolo puede ser borrado y sustituido por los que le
preceden en el alfabeto, o lo que es lo mismo, un símbolo sólo puede ser
reemplazado, mediante "d", por alguno de los que le siguen. Las
sustituciones permitidas en el ejemplo son: O ➔ A, O ➔ B, O ➔ C,
A ➔ B, A ➔ C, B ➔ C.

Pues bien, una máquina con sustituibilidad ordenada puede simular


cualquier otra máquina programable y por tanto, cualquier otra MT.

7. Se dice que una MI' es de alfabeto binario con sustituibilidad ordenada


cuando es análoga a la MT con sustituibilidad ordenada, pero con
alfabeto {O, 1}. Por ser de sustituibilidad ordenada, el único cambio que
puede efectuarse en la máquina es O ➔ 1. Se puede suponer que el
alfabeto binario sea {B, X}, siendo Bel signo de espacio en blanco y X
un símbolo cualquiera, el único cambio posible sería entonces B ➔ X, lo
que equivale a escribir una X en una posición que estuviese en blanco.
No obstante, no se podría borrar ninguna X, ya que el cambio X ➔ B no
está autorizado. Es pues, una máquina que sólo dispone de un símbolo a
escribir sobre la cinta pero sin capacidad de borrarlo.

8. Se~ M un conjunto de máquinas de Turing. Una función que asigne a


cada una de las MT's de M el cálculo que realiza, se llama máquina
programable.

9. Podemos clasificar el conjunto de las máquinas de Turing con la relación


de equivalencia, que establece que dos MT's están relacionadas cuando
efectúan el mismo cálculo, de forma que así, si tiene sentido hablar del

225
Capítulo VI: Máquinas de Turing, computabilidad y complejidad

conjunto cociente o conjunto de las clases de equivalencia. La


MI'-universal, MJ'U, es una función que asigna a cada clase M de
máquinas de Turing qÚe realizan el mismo cálculo, ese mismo cálculo
que realiza la MT. Por ejemplo, asigna a la clase de las máquinas de
sumar números naturales, la suma de naturales (la "operación" o
"cálculo de sumar", lo que es conceptualmente distinto de la "función
suma"). La MTU no tiene formato único aunque es biyectiva. Además la
MTU es "programable", si se acepta que la aplicación asigna a cada
elemento canónico su cálculo asociado. ·

1O. Se dice que un sistema es monógeno o monogénico cuando su secuencia


deductiva está unívocamente determinada, es decir, cuando a partir de
una cierta cadena, la aplicación de las reglas de deducción conduce a un
proceso único.

Un sistema monógeno puede realizar los mismos cálculos que sean


resueltos por una MT. Se llama sistema monógeno universal a aquél
que simula específicamente la MT-agráfica de dos semicintas.

11. Se denomina numeración convencional de las MJ''s a la construcción


del número r(MT) asociado con una MT. Esta construcción se llama a
veces también 'traducción a ceros y unos de una MT'. Los pasos son los
siguientes:

1. :Sean q(O) y q(h) los estados inicial y de parada respectivamente.


Sustituimos el estado q(O) por O y el estado q(h) por OO. El
siguiente estado, si existe, se sustituye por 000, y así
sucesivamente, es decir, definimos el estado de parada como el
se~do de los estados.

ii. El movimiento nulo P es innecesario, pues puede ponerse como un


par de movimientos LR o RL, que dejen los símbolos como están en
la cinta. Se representa por L el movimiento a la celda de la
izquierda, y por R, el movimiento a la celda de la derecha. Los
símbolos de E, que son los símbolos que hay en la cinta, distintos
del espacio en blanco B, se representan como cadenas de ceros de la
siguiente forma: se pone una lista de ceros con los símbolos de E,
teniendo en cuenta que L se representa por O, R se representa por
00, el primer símbolo de la lista por 000, el segundo por 0000, etc.,
y el símbolo j-ésimo por una cadena de j+2 ceros.

226
VJ. J Algoritmos y máquinas de Turing

111. Se establece el convenio de que el espacio en blanco es la cadena


vacía (así no lo usaremos).

1v. Se puede identificar cualquier transición d(p, x) = (q, y) con una


cuádrupla (p, x, q, y), donde 'p' y 'q' son estados, 'x' un símbolo, e
'y' es un símbolo, o R, o L.

v. Por ello, la transición se puede representar como cuatro cadenas de


ceros separadas por unos.

Por ejemplo, sea la cadena 01000100100 es la transición d(q(O),


x(l)) = (q(h), R). O sea, es una representación de la cuádrupla
(q(O), x(l), q(h), R), ya que el primer cero representa el estado
inicial, los tres siguientes, el primer símbolo del alfabeto, los dos
siguientes el estado de parada, y los dos últimos el movimiento un
lugar a la derecha.

Otro ejemplo seria dado que el espacio en blanco se representa por


la ausencia de ceros, la cadena O11001, al tener dos unos seguidos
se entiende como ODdOOl, es decir, 01B1001 y representa
d(q(O), B) = (q(h), B).

VI. Para representar una lista de transiciones codificada se acepta el


convenio de añadir un 1 al inicio y al final de la lista y un solo 1
para separar las transiciones de la lista.

Por ejemplo sea la cadena 1O1100100001O10001001001.


La partimos así:

a. El primer 1 es el 1 de introducción (lo quitamos).

b. Después de introducir B entre los dos l 's seguidos, tomamos


las cuatro primeras cadenas interiores que lleven B o ceros , o
sea, O1B10010000 que es la transición
d(q(O), B) = (q(h), x(2)) (al símbolo x(2) del alfabeto, le
corresponde la notación 0000).

c. La cadena que queda entonces es 1O10001001001.

d. El primer 1 es el 1 de separación de transiciones. Lo quitamos


y tomamos las siguientes cuatro cadenas de B o ceros:
O1000100100, que corresponden a la transición

227
Capitulo VI: Máquinas de Turing, computabilidad y complejidad

d(q(O), x(l)) = (q(h), R). El último 1 que queda es el 1 que


marca el final de la lista.

vu. El convenio establecido para el orden de las transiciones es el que se


comenta a continuación. Se presentarán primero todas las
transiciones que surgen del estado O (inicial), luego las del 000 (el
tercero), luego las del 0000 (el cuarto), etc. (no se ponen las del
segundo hasta el final, por ser las transiciones de parada). Las
transiciones correspondientes a cada estado se colocan según el
símbolo que se requiere en la celda actual de la cinta, comenzando
por la transición que requiere el espacio en blanco como símbolo
actual, luego la transición que requiere el símbolo con código 000,
luego la que requiere el símbolo 0000, etc. Este convenio además
permite ver si una enepla de ceros y unos es o no la representación
determinista de una MT.

viii. El conjunto de las MI' 's es numerable. Por convenio, si a un


número natural en binario no le corresponde una MT, se le asigna
una máquina con el mismo alfabeto, cuyas transiciones son d(q(O),
B) = (q(h), B) y d(q(O), -,8) = (q(h), B).

12. '-,x' significa que el símbolo que allí figura, es distinto del símbolo x.
Así, se puede obtener, además de la correspondencia r, otra, f, que
representa la correspondencia de Nen el conjunto de las MT's.

13. Denotemos por M\i la máquina, imagen mediante f de algún número i.


Sea Eu{B} su alfabeto y construimos una función g de E* en el
conjunto de las MT's de alfabeto E, en la forma siguiente: Sea zeE*,
entonces g(z) = M\lzl = f(lzl). (lzl denota la longitud de la cadena z y M\lzl
se denota y abrevia M\z). Como los símbolos de z también pertenecen al
alfabeto de M\z, se puede aplicar M\z a z.

14. Definimos el lenguaje LO como el lenguaje LO= {zl M\z no acepta z} e


E* (o sea, zeLO tt M\z no acepta z).

LO no es aceptado -por MT's. Si lo fuera por alguna MT de alfabeto E,


LO debería ser aceptado por alguna M\(zO), donde zO es alguna cadena
de E*, ya que cualquier MT con E es M\z, donde z es una cadena de E*.
Por ello LO = L(M\zO), o sea es el lenguaje generado por M\zO. Pero
como zOeL(M\zO) ~ zOéLO, por definición de L(M\zO), se obtiene una

228
VJ. J Algoritmos y máquinas de Turing

contradicción. Como veremos en el próximo capítulo, esto quiere decir


que LO no está estructurado por frases.

15. Existe una cantidad numerable de programa que se puede escribir en un


lenguaje de programación, pero hay una cantidad no numerable de
funciones que se podrían calcular con un programa.

16. Existen problemas que no se pueden formalizar en ningún lenguaje, o


escribir en ese lenguaje un programa que los resuelva.

17. Frase de Turing ('Turing 1936-37, pag. 250, citada en la


Metamatemática de Kleene): "El número de estados mentales que
necesitan ser tenidos en cuenta es finito. Si se admite una infinitud de
estados mentales, algunos de ellos estarán 'arbitrariamente cercanos' y
se confundirán".

18. Como hemos visto, se denomina problema de la parada al problema de


averiguar, en todo caso, si una MT se para o no. El tratamiento de este
problema se realiza a través de las siguientes definiciones y teoremas:

a. Una MT puede modificarse de manera tal que las cadenas de


entrada o iniciales sean números escritos en binario. Si elegimos
como entrada su propio r(MT), o sea su propio número de código
binario, unas máquinas se detendrán y otras no. Las máquinas que
se detienen cuando su cadena de entrada es su propio número de
código binario se llaman 'autoterminantes', y las que no, 'no
autoterminantes '.

b. Un registro es una subcinta impresa que empieza y acaba.

c. Un axioma es una cadena aceptada como válida a priori.

d. Una regla de deducción es una regla de la gramática que


transforma cadenas válidas en cadenas válidas llamadas teoremas o
tesis. O bien puede definirse como una función proposicional R que
relaciona una cadena x(T), con otras cadenas x(l), ... , x(n). Si la
cadena es deducible de ellas, R = 1, si no, R = O.

e. La metamatemática es el estudio de las leyes a las que obedecen


las reglas de la deducción (reglas de las reglas). Se ocupa de la
'adecuatio intellectus cum se' y no de la 'adecuatio intellectus et
rei ', de la adecuación del intelecto consigo, y no de la adecuación

229
Capitulo VI: Máquinas de Turing, computabilidad y complejidad

del intelecto con las cosas. Según Kleene, la Metamatemática es


fonnalizable como una aritmética con varias funciones del siguiente
y varios elementos iniciales (o 'ceros') para cada una de ellas.

VI. Un sistema lógico deductivo es un conjunto de reglas de deducción


y de axiomas, ambos en número finito.

VIL Los axiomas y teoremas son cadenas finitas, de un número finito de


símbolos establecido de antemano, llamado alfabeto.

viii. Una demostración es una secuencia finita de cadenas x(l), ... , x(n),
x(T), tal que cada cadena es deducible de un subconjunto, no
necesariamente propio de las cadenas precedentes. Así, \fij(i < j ➔
R({x(p) 11 ~ p ~ i}, xG)) = 1).

\fj(xG) es axioma tt R(xG)) = 1) (R(xG)) denota R(0, xG)).

x(l), ... , x(n) es una demostración de x(T) tt

3R(R(x(l), ... , x(n), x(T)) = 1) /\ \fj(3R(R(x(l), ... , xG)) = 1).

x(l ), ... , x(n) no es una demostración de x(T) tt

\fR(R(x(l), ... , x(n), x(T)) = O) v 3j\fR(R(x(l), ... , xG)) = O).

1x. Un reconocedor de Turing es una MT que asigna a cada estado


inicial y a cada cadena x( eL), como salida un 1 y a cada cadena
x(~L) le asigna un O.

x. Un lenguaje L es aceptado por un reconocedor de Turing si y


sólo si \fx(xeL ➔ x es reconocible por una MT) (x es una cadena).

XI. A es un conjunto recursivo si y sólo si su función característica es


calculable o computable (en el sentido de Turing).

xii. A es un c<Jnjunto recursivamente numerable si y sólo si A es el


dominio de alguna función parcialmente computable (o
parcialmente recursiva, ya que computable tt recursivo).

xiii. Los "sucedáneos de las MT's" tienen el trusmo poder


computacional que ella. Estos "sucedáneos" son:

230
VJ. J Algoritmos y máquinas de Turing

a. MT's con sólo dos de las tres salidas posibles.

b. MT's con cinta limitada en un extremo.

c. MT's con más de una cinta y más de una cabeza.

d. MT's no deterministas.

xiv. La recursividad (definida por Kleene) equivale a la computabilidad


(definida por Turing).

xv. Unafanción parcialmente computable. Si es una función ftal que:

a. 3MT que calcula f.

b. f: A ➔ N y entonces AcN" ( reN) (por eso, 'e', es función


'parcial'). Por ejemplo la suma en N.

xvi. Otra definición del problema de la parada. Sea K(r(M), x) = O o 1,


donde K es la máquina que decide si la máquina M, de
representación binaria r(M), se para o no se para con el argumento
x. K no puede existir. Prueba de ello:

Sea P, "se para". P(K(r(M), x)) ~ P(M(x)). Para x = r(M),


P(K(r(M), r(M))) ~ P(M(r(M))).

Definimos Kl = K(r(M), r(M)) + C,


K 1 es la máquina que admite un solo argumento que ella duplica
con una máquina auxiliar, C, copiadora. Entonces Kl hace lo
mismo que K(r(M), r(M)). Definimos ahora K2 mediante
P(K2) tt -,P(Kl) (K2 invierte las funciones de Kl, K2 = -,Kl).
Entonces:

- P(K2(r(M))) tt -,P(M(r(M))).

Introducimos en K2 la descripción de sí misma. Entonces, al


sustituir M por K2 en la equivalencia anterior se obtiene la
contradicción:

231
Capítulo VI: Máquinas de Turing, computabilidad y complejidad

P(K2(r(K2))) tt -,P(K2(r(K2))).

Más generalmente podemos establecer el teorema s1gu1ente. No


existen cuatro correspondencias f (binaria), g, h, t tales que:
\fx(f(g(h(t), x)) = f(t(x))). Pues en cuanto sea x = h(t), definiendo
j(h(t)) = g(h(t), h(t)) y f(k) ~ -,f(j), se tiene f(k(h(t))) tt
-,f(t(h(t))), que para t = k origina contradicción.

xvii. Hipótesis de Church-Turing: La noción intuitiva informal de un


procedimiento efectivo, sobre secuencias de símbolos, es idéntica a
la de nuestro concepto preciso de un procedimiento que puede ser
ejecutado con una MT.

VI.1.2 Numeración de Glidel

La numeración de GtJdel permite codificar cada símbolo de forma única y


como sigue:

+ * / ( ) - O 1 2 3 4 5 6 7 8 9 a b ... x ...

l 2 3 4 5 6 7 8 9 1O 11 12 13 14 15 16 17 18 19 ... y(i) .

La forma de numeración de Godel para cadenas cualesquiera xlx2 ... xn


(donde xl, x2, ... , xn son símbolos) consiste en utilizar el número natural
(pOy(i))*(p l y(j))* ... *(pny(r~, donde.

l. y(i), yG), ... , y(r) son los números-código de signos.

2. los p9, pl, ... , pn, los primeros números primos.

3. n es el número de signos de la cadena.

4. un símbolo elevado a otro indica la potenciación.

5. * la multiplicación.

Ejemplo 3. La expresión 4+7=11 se codifica como el número de Godel compuesto por:

Ejemplo 4. La fórmula a(a- 1) = aa- a tendría el número de GOdel:

232
VJ. J Algoritmos y máquinas de Turing

Recordemos el teorema .fundamental de la aritmética en el que se basa la


numeración de Godel: La descomposición en factores primos de un número es única.
Entonces cada cadena puede reconstruirse a partir de su código, cada cadena tiene
su número, y números diferentes corresponden a cadenas diferentes. Naturalmente,
el conjunto de las cadenas es numerable y toda cadena tiene un número finito de
signos.

El número de Godel puede definirse como una aplicación biyectiva entre el


conjunto de las fórmulas y un cierto subconjunto de N. Se asocian números
naturales (algunos) (empezando por el 1) a cada signo lógico, a cada función, a
cada variable, e incluso, a cada número natural. Se considera la sucesión de
números primos y se dota a cada uno de ellos de un exponente que corresponde al
símbolo a representar (cualquier ecuación es una cadena de símbolos).

Ejemplo 5. Supongamos que, con una numeración de GOdel diferente, queremos saber
el número de Godel de la expresión f(O) = 1, siendo los números asociados
por la definición:

F('f') = 21; F('(') = 2; F('O') = 5; F(')') = 3; F('=') = 1; F(' 1') = 23.

Entonces la "función de gódelización" o función de Godel asociada a la


expresión citada es un número natural:

Para representar un conjunto de igualdades puede utilizarse la siguiente


solución: se crea un carácter separador de expresiones, ';', '/\', '*', 'B'. No todos
los números naturales son números de Godel, sino sólo aquéllos que en su
descomposición presentan la sucesión de factores primos, sin ausencias intermedias.
Por ejemplo el número (2 7)·(5 2) no es de Godel (falta el 3P).

Por medio de la numeración de Godel puede darse una definición de MT


universal, así: diseñamos laMJ'G (MT-GtJdel) que asocia a cada fórmula su número
de Godel y viceversa. Sea la MTE (específica) tal que MTE(z), zeN y
MTE(z) = f(x), si 3MT asociada a z por MTG y MTE(z) = O y si -,3MT asociada
a z por MTG; esa MTE se llama MTU o MT universal.

Existe una máquina programable universal que con sólo dos registros puede
simular el trabajo de cualquier otra máquina programable. El esquema de la prueba
es asignar números de Godel a fórmulas, y también a las correspondencias

233
Capitulo VI: Máquinas de Turing, computabilidad y complejidad

'siguiente' y 'anterior'. Lo que conlleva al enunciado de los dos siguientes


teoremas.

Teoremas de Godel:

1. Si la teoría axiomática de conjuntos es consistente, existen frases bien


formadas verdaderas que no pueden ser probadas ni refutadas.

2. No existe ningún procedimiento constructivo de cálculo que pruebe que


la teoría axiomática de conjuntos es consistente.

3MT que es aplicable a cualquier secuencia escrita en su cinta (representativa


de la lista de quíntuplas), transformándola en su número de Godel.

3MT que para todo número escrito en su cinta, da una de estas dos
respuestas:

1. "no existe secuencia correspondiente a este número".

2. "la secuencia de este número es la quintupla


(e(i), qG), e(k), m(h), q(p))".

Sea la función Qzr definida como sigue:

1. : r indica la potencia r del dominio N.

2. Si z es el número de Godel de una máquina Z que calcula la función


parcialmente calculable f(X) (XEN}, entonces Qzr(X) = f(X).

3. Si z no es el número de Godel de ninguna máquina, entonces se hace


Qzr(X) = O. Entonces las funciones Qzr son funciones parcialmente
computables y sirven para definir MT-Universales. Una MT que calcula
la función Qzr se llama universal, escribiendo adecuadamente en su cinta
un número z, puede calcular la función parcialmente computable
correspondiente a ese número.

Tesis de Turing: El poder computacional de una MT es tan grande como el de


cualquier sistema computacional posible.

234
VJ. l Algoritmos y máquinas de Turing

VI.1.3 Máquinas elementales (abreviaturas)

Seañ:

1. Máquina R: Máquina que mueve la cabeza una casilla a la derecha.

2. Máquina L: Máquina que mueve la cabeza una casilla a la izquierda.

3. Máquina x: Máquina que escribe el símbolo x en la celda actual.

Se pueden construir entonces las siguientes máquinas elementales:

1. R(x), Máquina que recorre la cinta a la derecha hasta encontrar x.

2. L(x), Máquina que recorre la cinta a la izquierda hasta encontrar x.

3. R(-;x), Máquina que recorre la cinta a la derecha hasta encontrar un


signo distinto de x.

4. L(-;x), Máquina que recorre la cinta a la izquierda hasta encontrar un


signo distinto de x.

5. SR, Máquina que desplaza a la derecha la cadena de símbolos que no


están en blanco y que se encuentran a la izquierda de la celda actual.
Transforma la cadena BzxB donde x es O o 1 y z es una cadena, con la
cabeza puesta en x, en la cadena BBzB, con la cabeza en el blanco a la
derecha de z. Donde se ha quitado x, se escribe z corrida un lugar a la
derecha.

6. SL, Máquina que desplaza a la izquierda la cadena de símbolos que no


están en blanco y que se encuentran a la derecha de la celda actual.
Transforma la cadena BxzB donde x es O o 1 y z es cadena, con la
cabeza puesta en x, en la cadena BzBB, con la cabeza en el blanco a la
izquierda de z. Donde se ha quitado x, se escribe z corrida un lugar a la
izquierda.

7. x/L, si el signo es x, ir a la izquierda.

8. x/R, si el signo es x, ir a la derecha.

9. xlx, no hacer nada.

235
Capitulo VI: Máquinas de Turing, computabilidad y complejidad

1O. -,x, significa 'el signo actual no es x'. Puede apreciarse que la búsqueda
a la izquierda, en el caso de cinta finita por la izquierda, puede
determinar una finalización o terminación (porque se acaba la cinta),
llamada 'anormal'.

11. Otras máquinas importantes son las R(B), L(B), R(-JJ), L(.B), de
significado evidente.

Ejemplo 6. Instrucciones para pasar después al diseño de la máquina (su función de


transición). Se pide la representación en binario de un número natural BzB.

Para lo cual hay que restarle 1 y que quede en la forma BtB, sin ceros
superfluos a la izquierda (la cabeza inicialmente está en el primer blanco a
la izquierda de z). Por tanto se debe:

l. Ir a la derecha hasta encontrar el primer blanco (R(B)).


2. Ir a la izquierda un lugar: L.
3. Si el signo es O, escribir 1, y volver a 2. Y si el signo es 1, escribir un O.
4. Ir a la izquierda hasta encontrar el espacio en blanco.
Ya se tiene hecha la resta. Quitemos los ceros superfluos.
5. Ir a la derecha.
6. Si hay un 1, ir a la izquierda (L) un lugar y parar.

· Si hay un O, correr la cadena que queda a la derecha un lugar a la izquierda


con S(L) e ir a 6.

Si es B, escribir un O y parar.

La función será la siguiente, teniendo en cuenta que el número de sentencia


define el estado:

d(l, B) = (2, R(B)) (R(B) es la abreviatura de una máquina).


d(2, x) = (3, L).
d(3,0)=(2, l).-
d(3, 1) = (4, O) . ej.: si estando en 3 el signo es 1, escribir un O e ir a 4.
d(4, x) = (5, R(B))
d(5, x) = (6, R) ej.: si estando en 5 el signo es cualquiera, ve un lugar a la
derecha y el nuevo estado es 6.

236
VI.] Algoritmos y máquinas de Turing

d(6, 1) = (END, L).


d(6, O)_= (6, S(L)).
d(6, B) = (END, O).

Podemos comprobar los pasos de 11 (3 en binario), quitándole 1, a 10 (2 en


binario). O bien de 10 (2) a l.

Se dice que una máquina acepta una cadena si existe un camino que lleva al
estado de parada. Por ello se propone como ejercicio, construir una MT que acepte
las cadenas (xº, y11, t1). El lenguaje de esas cadenas no es aceptado por autómatas de
pila que se verán en el capítulo siguiente, o como se dirá, no es independiente del
contexto. Y también construir la máquina que da el complemento a 1 de un número
en binario (cambiar los ceros por unos y los unos por ceros).

(A es un conjunto recursivo) tt (A y c(A) son recursivamente numerables).

3A que es recursivamente numerable y que no es recursivo.

A continuación se presentan una serie de ejemplos de aplicación en los que


damos, a veces, la función de transición, y a veces, el criterio o idea para resolver el
problema con un esquema.

Ejemplo 7. Construir una MT que reconozca cadenas de la expresión regular 00* 11 *O y


comprobar su funcionamiento para 0010. La cabeza lectora se supone en la
primera casilla de la expresión en la cinta.

La función de transición puede representarse por d(q, x) = (q', A). Como es


una expresión regular la cabeza sólo se mueve a la derecha, o sea en todos A
= R (y no necesita escribir nada, ni naturalmente borrar), así que la función
de transición es d(q, e)= q', con e= símbolo de entrada, o sea, el actual que
lee. Por ello, llamando q4 al estado de parada o aceptación, y q 1 al estado
inicial tenemos:

d(ql, O)= q2; pues ha de entrar un cero en primer lugar.


d(ql, 1) = q5 = d(q5, O)= d(q5, 1); (q5, estado de rechazo).
d(q2, O)= q2, para O*.
d(q2, 1) = q3; para aceptar el primer l.
d(q3, 1) = q3;
d(q3, O) = q4;
d(q4, O) = q5;

237
Capitulo VI: Máquinas de Turing, computabilidad y complejidad

d(q4, 1) = q5.

Se entiende que cada d(qi, x) = qj representa d(qi, x) = (qj, R), donde R


significa ir un lugar a la derecha. Una máquina de Turing es mucho más
compleja que un reconocedor finito. Reconocer cadenas regulares con una
MT es sencillo (está dotada de movimiento unidireccional de la cabe:za sobre
la cadena a reconocer). La aceptación de 0010 está dada por la siguiente
secuencia de pasos:

Paso 1: d(ql, O)= q2 (cabe:za en primera casilla).


Paso 2: d(q2, O)= q2 (cabe:za en segunda casilla).
Paso 3: d(q2, 1) = q3 (cabe:za en tercera casilla).
Paso 4: d(q3, O) = q4 (cabe:za en cuarta casilla), cadena aceptada.

Ejemplo 8. Construir una MT tal que:

1. Reconozca cadenas constituidas por un conjunto de ceros, seguido por


un cierto número de unos.
2. La cadena vacía ha de ser reconocida.
3. El contenido inicial de la cinta sea la cadena a reconocer, y el
contenido final de la cinta la misma cadena.

Para conseguir que la cadena vacía sea reconocida, el estado inicial qO es el


de aceptación. Sólo hay espacio en blanco en la cinta al principio y al final
de la cadena, pero no en medio. Las cadenas son del tipo O* 1*, y cada
movimiento es siempre un lugar a la derecha.

d(qO, O)= qO; d(qO, 1) = ql; d(qO, B) = qO;


d(ql,1) = ql; d(ql, O)= q2 (estado de no aceptación); d(ql,B) = qO;
d(q2, O) = q2; d(q2, 1) = q2; d(q2, B) = q2.

Ejemplo 9. Describir intuitivamente una MT cuya especificación es la siguiente:

l. Contenido inicial de la cinta es una cadena de ceros y unos.


2. Contenido final de la cinta es otra cadena que posea tantos unos como
el número de ceros de la cadena anterior, multiplicado por dos.
3. Posición inicial de la cabe:za: Sobre la casilla blanca que precederá a la
cadena.
4. Posición final de la cabeza: Sobre la casilla en blanco que precede al
resultado.

238
VI.] Algoritmos y máquinas de Turing

Empezamos en el estado inicial y en esa casilla está B (a su derecha


empie:za la cadena de datos). Se corre la cabe:za un lugar a la derecha. Según
vaya leyendo unos, la máquina los borra y avanza un lugar. La primera vez
que detecta un cero, lo borra, localiza el blanco a la derecha, pasa un lugar y
escribe dos unos. Después vuelve hasta encontrar el segundo blanco y repite
la operación, pero ahora, si encuentra un cero debe ir a la derecha hasta el
segundo blanco que encuentre y poner allí los dos unos. El proceso termina
cuando al locali:zar el segundo blanco a la izquierda y avan:zar un lugar a la
derecha, se encuentra de nuevo con un blanco, porque entonces ha
terminado de leer la cadena inicial.

Ejemplo JO. Construir una MT que multiplique dos números expresamente en fonna
unitaria. Explicar el funcionamiento para n = 2 y m = 3.

Supongamos que la expresión de la multiplicación es la cadena (con negrita


indicando la posición de la cabe:za). Blll. .. 1*1111. ... l=B. El algoritmo lo
pondremos primero de manera informal. Recuerde que cada estado
simboliza una instrucción en el programa. Así podemos utilizar
submáquinas que pueden ponerse como estados. Utili:zaremos un signo
auxiliar, el cero (o cualquier otro), así que el alfabeto será E = {O, 1, *, =} .
Y los pasos necesarios son:

l. Situar la cabe:za lectora en el último blanco, R(B).


2. Ir a la izquierda hasta encontrar *, L(*).
3. Ir un lugar a la izquierda, L.
4. Si B (o sea si el signo es B) terminar (ir a 14). Si *,ira 3. Si 1, ir a
5.
5. Escribir * (encima).
6. Ir un lugar a la derecha, R
7. S1.* , ira
. 6 . Si 1, escribir un O.
8. Ir a la derecha hasta encontrar un blanco, R(B).
9. Escribir un l.
10. Ir a la izquierda hasta encontrar un O, L(O).
11. Ir un lugar a la derecha.
12. Si es 1, ir a 7 (escribir un O). Si es=, ir a MC, que es la máquina que
cambia cualquier O por un 1 y figura globalmente como si fuera un
estado.
13. Ir a l.

239
Capitulo VI: Máquinas de Turing, computabilidad y complejidad

14. Ir hasta el blanco a la derecha, R(B).


15. Ir a la izquier~ hasta encontrar*, L{*).
16. Ir a la izquierda, L.
17. Si * escribir 1 e ir a 16. Si B, FIN.

Veamos las operaciones para B 11 * 111 =B


INICIO: Bll*lll=B
l. Bll*lll=B
2. Bll*lll=B (cabeza en*)
3. Bll*lll=B
4-5. Bl**lll=B
6. Bl**lll=B
6. Bl**lll=B
7. Bl**0ll=B
8. Bl**0ll=B
9. B1**011=1B
10. B1**011=1B
11. B1**011=1B
:12-7. B1**001=1B
8. B1**001=1B
9. B1**001=11B
10. B1**001=11B
11. B1 **001=11B
12.-7 B1**000=11B
8. B1**000=11B
9. B1**000=111B
10. B 1* *0Ó0= 111B
11. B1 **000=111B (está sobre el=)
12-MC. B1**111= 111B
13.-1 B1**111=111B

240
VI.] Algoritmos y máquinas de Turing

2. B1**111=111B
3. B1 **111=111B
4.-3. B1**111=111B
4-5. B***lll=lllB
6. B***lll=lllB
7-6. B***lll=lllB
7-6. B***111=111B
7. B***0ll=lllB
8. B***0ll=lllB
9. B***0ll=lll1B
10. B***0ll=llllB
11. B***011=1111B
12-7. B***00l=llllB
8. B***00l=llllB
9. B***001=11111B
10. B***00 1= 1111 IB
11. B***001 = l 1111B
12-7. B***000= l 1111B
8. B***000=lllllB
9. B***000= l 11111B
10. B***000= l 11111B
11. B***000= l 11111B (cabeza sobre el =)
12.-MC B***lll=llllllB
13-1. B*** 111= 1111 l 1B
2. B***lll=llllllB
3-4. B***lll=llllllB
3-4. B*** 111 =111111B
3-4. B***lll=llllllB
14. B*** 111= 1111 l 1B
15. B***lll=llllllB

241
Capitulo VI: Máquinas de Turing, computabilidad y complejidad

16. B***lll=llllllB
17. B*1*111=111111B
16. B*l*lll=llllllB
17. B11*111=111111B
16. B11*111=111111B
17. FIN

VI.2 Computabilidad, calculabilidad y recursividad

Se dice que un lenguaje es decidible si es aquel tal que él y su complemento


son aceptados por máquinas de Turing.

Sea Lh es el conjunto de los números x tales que existe una MT que es


autoterminante y que x = r(MT), o sea, Lb = {r(MT) 1 MT es autoterminante}.
Entonces, nos preguntamos si Lb es un lenguaje decidible por MT's. Para lo cual:

xeLh tt (x es la versión codificada de alguna MT) tt (esa MT se para).

De aquí se concluye que Lb no es decidible por MT's, lo cual se puede


demostrar por reducción al absurdo:

1. Supongamos que Lb es decidible por MT' s, entonces, existe una MT,


designada por Mh, que decide Lb y que para cada cadena de entrada
responde sí (S) o no (N).

2. Definamos ahora otra máquina MO como aquella máquina tal que: si


Mh' es la máquina que responde 'l' cuando Mh dice 'S' y responde 'O'
cuando Mh dice 'N', entonces MO es la máquina que realiza los
siguientes pasos cuando recibe una cadena:

1. Aplica Mh'.

ii. Mueve la cabeza un lugar a la derecha.

111. Si la salida es un 1, continúa moviéndose a la derecha sin escribir


nada. Por lo tanto, MO es una máquina de alfabeto {O, 1, B}, que se
detiene si y sólo si Mh' se detiene en O.

242
VI. 2 Computabilidad, calculabilidad y recursividad

De esta deducción resulta que, si se supone que MO es autotenninante,


es decir, que cuando MO recibe r(MO) como cadena, entonces Mh' se
detiene con salida 1, se puede concluir:

1. MO no se detiene con r(MO) porque queda atrapada en el bucle de


2.c (y continúa sin parar moviéndose a la derecha sin escribir nada),
lo que conlleva:

ii. MO no es autoterminante.

Por otro lado: si se supone que MO no es autotenninante, es decir, que


cuando MO recibe r(MO) como cadena, Mh' se detiene con salida O,
entonces:

1. MO se detiene cuando recibe como entrada r(MO), ya que no puede


pasar a ningún sitio, porque la salida de Mh' no es 1 (no puede
llegar al bucle de 2.c). Lo que implica que:

ii. MO es autotenninante.

De ambos razonamientos se infiere una contradicción, luego Lh no es


decidible MT's.

VI.2.1 Computabilidad

Veamos a continuación una serie de definiciones sobre computabilidad:

1. Se dice que una función es computable si y sólo si 3MT que la computa.

2. Se dice que una.función fes parcial en X si y sólo si el dominio de la


función fes un subconjunto de X.

3. Se dice que una.función fes total de X si y solo si fes función y su


dominio es X.

4. Una función computable no tiene por qué ser total.

5. fes una función total tt f es una función definible por MT, tal que su
MT asociada se detiene para cualquier valor de la variable o ~ la
variable de entrada.

243
Capítulo VI: Máquinas de Turing, computabilidad y complejidad

6. fes una función total definida en X tt fes función y además dom(t) =


X.

7. Toda función total es parcial.

8. fes computable ~ fes función parcial de N111 en N11.

9. fes computable tt fes función parcial de N111 en N (basta cambiar la


codificación).

1O. Cada MT tiene asociada una función f que asigna a cada entrada en la
MT el resultado o salida de ésta, teniéndolo por imagen. Se dice entonces
que fes una función definible por MI'.

11. / es función computable si y sólo si fes definible por MT.

12. fes función computable tt 3MT \tx(xedominio de f ➔ MT calcula


f(x)).

13. / es una función parcial (definida en X) si y sólo si f es función y


además Dom(t) e X. De modo más general, fes función parcial si y sólo
si f es función definible por MT y esta MT origina un proceso infinito
para ciertos valores de la(s) variable(s) (la función no está definida para
ellas).

14. fes una función estrictamente parcial en X si y sólo si fes función y


además, Dom(t)cX y Dom(X) X. *
15. Se dice que f (función definida en A e N) es parcialmente computable
~ 3MT = Zr tal que: \f(nl, ... , nr)(f(nl, ... ,nr) = Zr(nl, ... , nr)).

16. Se dice que f es computable tt f es parcialmente computable y está


definida en Nr (= A).

17. Se define la aritmetización (AR) de una MI' como una aplicación que
asigna a cada MT, AR(MT) = (q, e, m, n) (enepla de 4 números), de
manera que:

1. q es el indicador de estado (número del estado, que se identifica por


su subíndice, donde en general a q(5) se le llama simplemente 5).

244
VJ.2 Computabilidad, calculabilidad y recursividad

ii. e, es O o 1, bit que ocupa la posición sobre la que se encuentra la


cabeza.

111. m es el número en binario, cuyas cifras son las que se encuentran a


la izquierda de la cabeza con el bit de menor peso, el que se
encuentra inmediatamente antes de la cabeza.

1v. n es el número en binario, cuyas cifras son las que se encuentran a


la derecha de la cabeza con el bit de menor peso, el que se
encuentra inmediatamente después de la cabeza.

18. Dada la definición anterior y sea la cuádrupla (q, e, m, n) una


aritmetización de una MT, entonces, la función f tal que. f(q(t), e(t),
m(t), n(t)) = (q(t+l), e(t+l), m(t+l), n(t+l)), puede ser expresada en
términos de la función de transición "d" de la máquina, y de las
funciones '+' (suma), '·' (multiplicación), 'M' (mitad), y 'P' (paridad).
E decir, la función asociada con una MT, puede expresarse sólo con esas
cuatro funciones básicas, más las transiciones. (Si x es un número, M(x)
se define como la parte entera de la mitad de x, y la paridad está definida
como P(x) = O, si x es par y P(x) = 1, si x es impar (aunque podría ser
definida también al revés)).

VI.2.2 Calculabilidad

El concepto de calculabilidad se puede establecer que satisface las siguientes


proposiciones o teoremas:

1. Se dice que n es número (o cadena) calculable si y sólo si las cifras de n


112
pueden ser obtenidas a partir de una cadena finita. Por ejemplo, 7 (raíz
cuadrada de siete).

2. Existen números reales no calculables. Por ejemplo:

1. Basar la generación del número en uno de los problemas estudiados


como problemas sin solución.

11. El originado por el teorema diagonal de Cantor.

111. El número tal que cada una de sus cifras, O o 1, esté relacionada
con el hecho de que se detenga o no una cierta MT.

3. El conjunto de los números calculables es numerable.

245
Capítulo VI: Máquinas de Turing, computabilidad y complejidad

4. Ninguna MT puede generar todos los números calculables. (Por diagonal


de Cantor).

5. n es número describible o descriptible s1 y sólo s1 n puede ser


identificado a partir de una cadena finita.

6. Todos los números calculables son describibles, pero la recíproca no es


cierta. Por ejemplo: La descripción que no permite realizar un cálculo
que genere el número descrito: n = longitud de la mayor subcadena de
cifras decimales común a los desarrollos de los números 1t y e (la base de
los logaritmos neperianos).

7. La 'función de cero ', N, es la función definida por:

i. N(O) = O.
ii. v'x(x :;; O ➔ N(x) - sig(x)). Donde s1g representa la función
siguiente.

8. / es la función del siguiente o secuencial si y sólo si fes función y


además \fx(f(x) = sig(x)). Otras notaciones para sig(x) son x + 1 y x'.

Con estas últimas definiciones se puede pasar a ver otra definición de lo que
se conocen como funciones iniciales o básicas:

1. Cero. Asigna a la casilla vacía el cero: cero ( ) = O (es escribir un cero


en la casilla). La función cero es computable por convenio.

2. Sucesor o siguiente, sig(x) = x + 1. sig es computable, pues hay ya se


ha visto, un proceso computacional para la suma de enteros (una MT).

3. Proyección, proy(k, JI, es una función definida en Nk que extrae la j-


ésima componente. Puede ser calculada mediante una MT que rastree la
k-tupla de entrada hasta encontrar la componente j-ésima y luego extrae
el valor que allí se encuentre.

4. Se define como combinación de f y g tales que f: Nk ➔ N111, y g: Nk ➔


N11 es la función (f X g): Nk ➔ N<m+n) con (f X g)(x) = (f(x), g(x))
(recuérdese: las x's son elementos de productos cartesianos). La
combinación es computable si f y g lo son. Por ejemplo:
([proy(3, l)] X [proy(3, 3)1)(4, 6, 8) = (4, 8).

246
VJ.2 Computabilidad, calculabilidad y recursividad

5. Se define como composición de f y g tales que f: Nk ➔ N111, y g: N°1 ➔


~n es la función (g o t): Nk ➔ Nm con (g o t)(x) = g(f(x)). Y se
establece que la composición de funciones computables es computable.
Por ejemplo: sig(cero( )) = 1 = (sigo cero)()= 1 (= sig(O)).

6. Se define lafanción más(x, y)= x + y.

7. Denotando por A(x) el anterior de x, o sea x- 1, se define:

h(y, x) = f(x) si y = O, y si no h(y, x) = g(A(y), h(A(y), x), x).


VI.2.3 Recursividad

En este apartado vamos a pasar a definir una serie de conceptos relacionados


con la recursividad:

l. Se dice que todo lenguaje L aceptado por MT's es recursivamente


enumerable.

2. Se define que L es recursivamente· numerable tt 3MT que acepta todas


las cadenas de L y ninguna otra (xeL ➔ la MT se para y acepta x).

3. Se dice que Les recursivo tt L y c(L) son recursivamente numerables.

4. Técnica de la recursividad primitiva. Es una técnica para construir


funciones computables.

5. Se define la función con dos funciones g y h y se dice que f está


construida por medio de g y h mediante recursividad primitiva. Por
ejemplo: f(x. O) = x; f(x, y + 1) = f(x, y) + x<s + 0 (generador de
polinomios de coeficientes la unidad).

6. Se puede construir f con dos funciones g: N ➔ N, h: N3 ➔ N, así:

g(x) = 1,
h(x, y, z) = z + x<s+ 1>, de manera que:

f(x, O) = g(x);

f(x, y+ 1) = h(x, y, f(x, y)).

247
Capítulo VI: Máquinas de Turing, computabilidad y complejidad

7. Se define la técnica de la recursividad primitiva en general como la


construcción de una f\inción de la forma f: N(k + t) ➔ N, a partir de dos
funciones g y h que relacionan los dominios, Nk con ~ y N(k + m + n con
~, respectivamente, es como la describen las ecuaciones:

f(x, O)= g(x);

f(x, y+ 1) = h(x, y, f(x, y))

(recordar que x es una enepla). Por ejemplo: Una definición de +(x, y):

+(x, O)= [proy(l, l)](x);

+(x, y+ 1) = sig([proy(3, 3)](x, y, +(x, y)));

(o sea, x + O = x, x + (y + 1) = sig(x + y).

8. Una función construida por recursividad primitiva a partir de funciones


computables se considerará computable. Si f se define por recursividad
primitiva con base en las funciones computables g y h, podemos calcular
f(x, y), calculando f(x, O), luego f(x, 1), etc., hasta f(x, y).

9. Funciones recursivas primitivas o recurrentes primarias son por


definición, las funciones que pueden construirse a partir de las funciones
iniciales (aplicando un número finito de combinaciones), composiciones
y técnica de las recursividades primitivas. Como x es, en general, una k-
tupla, si el último componente de la tupla de entrada es O, la salida de f
se obtiene eliminando esta última componente y aplicando g a la tupla
restante. Si la última componente de la tupla de entrada no es O, entonces
la salida- de f está determinada por la aplicación de h a la (k+m+ 1)-tupla
formada al combinar los primeros k elementos de la tupla original, el
predecesor de la última componente de la entrada original y el resultado
de la aplicación de f a la (k+ 1)-tupla, que se obtiene al reducir en uno el
último componente de la entrada original.

1O. Las funciones ini~iales son recursivas primitivas.

11. Existen funciones totales computables de N a N que no son recursivas


primitivas.

12. Entre las funciones recursivas primitivas están también algunas


proyecciones y 'más' (+), definida con la función del siguiente.

248
VJ.2 Computabilidad, calculabilidad y recursividad

13. Si f: N11 ➔ N1 es recursiva primitiva, fes total.


-
14. Las funciones iniciales son totales y las técnicas de construcción
(combinación, composición y recursividad primitiva), s1 se aplican a
funciones totales, producen funciones totales.

15. v'f (f recursivas primitivas ➔ f computable).

16. fes función recursiva primitiva tt f se puede expresar por medio de la


función nula, el siguiente, la composición de funciones y el llamado
"proceso o técnica de recursividad primitiva".

17. El conjunto de todas las quíntuplas de una MT aritmetizada (Véase


Aritmetización de una MT), (t, q, e, m, n), es siempre numerable, pues el
conjunto NP, donde p es un número natural y N es el conjunto de los
números naturales, es biyectable con N.

18. Se llama función característica de una MI' a la función de ordenación


de esas cuádruplas. Es un teorema que la función característica de una
MT es recursiva primitiva (o que una MT puede expresarse como tal:
otra vía, ayudándose del lenguaje de programación esencial).

19. Teorema auxiliar para definir funciones recursivas primitivas:

Si g y h son funciones recursivas primitivas, también lo es la función


definida mediante la base f(x, O) = g(x), y el paso f(x, sig(y)) = f(h(x),
y).

Efectivamente.

f(x, O) = g(x)

f(x, y)= g((h"y)(x)),

siendo (h"y)(x) = h(h(h( ....... ('y' veces) .... ( h(x))))).

20. fes recursiva primitiva tt 3gv'xy[f(x, O)= x /\ f(x, sig(y)) = g(f(x, y))].
E iterando, v'xy[f(x, n) = (gn)(x)]; "n" indica precisamente la n-ésima
iteración.

249
Capitulo VI: Máquinas de Turing, computabilidad y complejidad

21. La composición de funciones recursivas primitivas también es recursiva


primitiva.

22. La ordenación natural de las expresiones de funciones recursivas es la


ordenación que se realiza de acuerdo con la ordenación natural de los
números de Godel.

Nota. Expresiones condicionales de una bifurcación: La formulación


recursiva no se adapta bien a los procesos de programación para
ordenadores, puesto que la lógica de estas máquinas se resuelve
mediante funciones booleanas que quitan W1a de las posibilidades de
p ➔ q, e introducen un 1 en la condición cuando no se cumple la
condición. McCarthy introdujo un formalismo condicional de la manera
siguiente, si fes la expresión 'si p, entonces r 1 y si no, r2' se llega a que:
f = r 1, si p es verdadera y f = r2, si p es falsa. Con esto, se puede
expresar la recursividad primitiva según h(O, x) = f(x), h(sig(y), x) =
g(y, h(y, x), x).

23. También puede aplicarse la expresión de recursividad pnnutiva


T(x, O) = g(x); T(x, sig(y)) = T(f(x), y). Así: T(x, y) = g(x) si y = O y si
no, T(x, y) = T(f(x), A(y))). Esta formulación también permite la
definición del operador de minimalización µx(f(x) = k), en la forma:

µ(x, _k) = x si f(x) = k

y s1 no,

µ(x, k) = µ(sig(x), k)).


Por lo cual las funciones recursivas en general, pueden ser expresadas
por la formulación condicional. Por ejemplo, el formato condicional de
las funciones P (paridad) y M (mitad) es:

P(x) = (x =O ➔ O; x *O ➔ (x = 1 ➔ l; x * 1 ➔ P(A(A(x))))).
M(x) = (x = O ➔ O; x * O ➔ (x = 1 ➔ O; x * O ➔ sig(M(A(A(x)))))).
Mediante la última se tiene, para buscar la mitad de x, que se calcule
M(x - 2) y que se sume 1 al resultado. Efectivamente
M(x) = M(x - 2) + 1 = sig(M(x - 2)).

250
VI.2 Computabilidad, calculabilidad y recursividad

24. fes función constante K(n, m): ~ ➔ N, está dada por [K(n, m)](x) =
m.

25. K(O, m) es la función (MT) que escribe m en un papel en blanco.

26. K(O, m) es recursiva primitiva ya que [K(O, m)](x) =(sigo sigo ... o sig
o cero)(x).

27. K(n, m) es recursiva pn'mitiva. Efectivamente, por 26 y aplicando


inducción, si K(n, m) es recursiva, entonces también lo es K(n + 1, m):
xeN11, yeN.

[K(n, m)](x, O)= [K(n - 1, m)](x),

[K(n, m)](x, y+ 1) = [proy(n + 2, n+2)](x, y, [K(n, m)](x, y)).

28. Las funciones constantes cuyas salidas tienen más de una componente
son recursivas primitivas, ya que no son más que combinaciones de
funciones K(n, m). Por ejemplo, la función
([K(3, 2)] X [K(3, 5)])(x, y, z) = (2, 5). Para evitar notaciones
complicadas, a veces se sustituye K(n, m) por m, simplemente.

VI.2.3.1 Operaciones con funciones

A continuación vamos a presentar algunas definiciones de operaciones con


funciones:

1. Multiplicación:

mult(x, O)= [K(l, O)](x) = O;


mult(x, y+ 1) = más(x, mult(x, y)).

2. Exponenciación:

exp(x, O)= l;

exp(x, y+ 1) = mult(x, exp(x, y)).

3. Predecesor o anterior:

pred(O) = cero( ) = O;

251
Capitulo VI: Máquinas de Turing, computabilidad y complejidad

pred(y + 1) = [proy(2, l)](y, pred(y)) = y.

4. Monus:

monus(x, y) = (x - y)(x > y).

monus(x, O)= [proy(l, l)](x) = x;


monus(x, y + 1) = pred(monus(x, y)).

Se representa a veces monus(x, y) por 'x \ y'.

5. Igualdad:

eq(X, y) = 1, si X = y;
eq(x, y) = O, si x -:t: y.
Es recursiva primitiva:

eq(x, y) = 1 \ ((x \ y) + (y \ x)),


o bien,

eq(x, y)= monus(l, más(monus(x, y), monus(y, x))),

o bien,

eq = monus o (K(2, 1) X H), siendo:

H = más o ( [monus o (proy(2, 2) X proy(2, l))] X [monus o (proy(2, 1)


X proy(2,2))] ).

6. Negación:

-,f(x) = 1 \ f(x) (monus(l, f(x)).

1. Desigualdad:

-,eq(x, y) = 1 \ eq(x, y);

-,eq = monus o (K(2, 1) X eq).

252
VI. 2 Computabilidad, calculabilidad y recursividad

8. Funciones tabulares son las funciones que se pueden definir en una


tabla en la que se presenta explícitamente, mediante una lista, un número
finito de entradas posibles con sus valores de salida correspondientes y
todas las demás entradas se asocian a un solo valor común.

Ejemplo. f(x) = 3, si x = O; f(x) = 5, si x = 4; f(x) = 2, en el resto.

9. Función característica.

[k(i)](x) = 1, si x = i;

[k(i)](x) = O, si no.

k(i) es recursiva primitiva, pues es monus(l(i), l(i - 1)), siendo:

l(i) = eq(x \ i, O) = eq(monus(x, i), O).

1O. Toda función tabular es recursiva primitiva, pues es la suma finita del
producto de funciones características constantes y características
negadas. La dada en la definición penúltima es:

mult(3, k(O)) + mult(5, k(4)) + mult(2, mult(-,k(O), -,k(4))).

11. Cociente:

coc(x, y)= parte entera de la división de x entre y, si y-:;:. O;

coc(x, y)= O, si y= O. Es recursiva primitiva:

coc(O, y) = O;

coc(x + 1, y)= coc(x, y)+ eq[x + 1, y+ mult(coc(x, y), y)].

12. La función nula, la función del siguiente y la función de cero penniten


desarrollar un proceso recurrente para el cálculo de'+', '·', 'M', y 'P',
_ por medio de las igualdades:

x+ O =x·,

X. o= O·,
X+ y' =(X+ y)';

253
Capitulo VI: Máquinas de Turing, computabilidad y complejidad

X • y' = (X • y) + y;
M(O) = O;

P(O) = O;

M(x + 1) = M(x) + P(x);

P(x + 1) = N(P(x)).

Las seis primeras son axiomas o definiciones muy conocidos. Veamos de


dónde surgen las dos últimas.

Si x es par:

M(x + 1) = E((x + 1)/2) = E(x/2) = M(x) = M(x) +O= M(x) + P(x)

P(x + 1) = 1 = N(O) = N(P(x)).

Si x es impar:

M(x + 1) = E((x + 1)/2) = E(x/2) + 1 = M(x) + 1 = M(x) + P(x)

P(x + 1) = O = N(P(x)).

VI.2.3.2 Definiciones que combinan los conceptos de computabildad,


calculabilidad y recursividad

1. Las funciones que permiten realizar los procesos de recursividad son,


pues:

1. O(x) = O.

u. sig(x) = x + l.

m. la composición ~e funciones.

1v. los procesos o técnicas llamados de recursividad primitiva que


constan de base y paso. Por ejemplo, la base de la multiplicación es:
x · O = O, y el paso: x · y' = (x · y) + y (''x" es un parámetro no
afectado por la recursividad; la variable ''y" es la variable de
recursividad o recurrencia).

254
VI. 2 Computabilidad, calculabilidad y recursividad

2. Las .funciones recursivas en general. Una MT puede expresarse como


una función recursiva. Pero la definición de una función f por medio de
una MT, requiere la finitud del proceso de cálculo. Si hay algún valor de
x para el que f(x) es tal que esa MT no origina la finitud de ese proceso,
se dice que f, que ha sido definida por medio de una MT, no está
definida para x. Una función recursiva se define como una función que
pueda ser expresada por medio de la función nula, el siguiente, la
composición de funciones, un operador de recursividad primitiva y el
operador de minimalización. Una función recursiva, es entonces toda
función expresable con los mismos medios que las recursivas primitivas,
además de usar el operador de minimalización. Por ello, toda recursiva
primitiva es recursiva, pero no al contrario (ese operador no puede ser
definido en términos de recursividad primitiva).

3. Si fes calculable con una MT, entonces fes recursiva. Por el momento
no se ha demostrado la recíproca.

4. De manera general, una función recursiva f se escribe o denota así: base,


f(O, x) = g(x); paso, f(sig(y), x) = h(f(y, x), x), donde g y h son
funciones, x es un parámetro, normalmente una enepla (x(l), ... , x(n)), y
n es otro parámetro, por lo general un número natural > O.

5. fes función recursiva ~ fes función computable.

6. Funciones recursivas parciales y técnica de la minimalización.


Consiste esta técnica en construir una función, f: N° ➔ N, a partir de
otra, g: N<0 + 1) ➔ N, donde v'z((zeN /\ z < y) ➔ g(x, z) está
definida). Se representa por f(x) = µy(g(x, y) = O). Donde "µ" se lee
"mínimo ... tal que ... ". La minimalización puede producir funciones no
definidas para ciertos números. Por ejemplo: f(x) = µy(más(x, y)= O),
que sólo está definida para O. Denotemos E la 'parte entera de': div, (no
*
es recursiva primitiva) la definimos por div(x, y) = E(x/y), si y O, y
div(x, y) no definida si y = O, que con la minimalización es div(x, y) =
µt(monus((x+ 1), (mult(t, y) + y)) = O). Otras veces la minimalización
produce funciones, por ejemplo, f(x) = µy(monus(x, y) = O), que es la
definición de identidad, que describe el mínimo 'y' tal que x - y= O, que
es X.

7. La minimalización de una función computable es computable.


Demostración: Sea la función parcial computable g, entonces se puede
calcular f(x) = µy(g(x, y) = O) (recuérdese que x es una enepla de n

255
Capítulo VI: Máquinas de Turing, computabilidad y complejidad

elementos), calculando los valores g(x, O), g(x, 1), etc., hasta obtener el
valor cero o llegar a un ~or 'z' para el cual g(x, z) no está definida. Si
lo primero, entonces se tiene f(x) = y tt g(x, y) = O. Si lo segundo,
entonces f(x) no está definida.

8. Funciones recursivas parciales. La clase de las funciones recursivas


parciales es la clase de aquellas funciones parciales que pueden
construirse con funciones iniciales aplicando un número finito de
combinaciones, compos1c1ones, recursividades primitivas y
minirnalizaciones. Ejemplo: la función div es recursiva parcial pero no
recursiva primitiva. El término "parcial" no quiere decir que todas las
funciones de la clase de las funciones recursivas parciales sean parciales
en sentido estricto, pues la clase contiene las funciones µ-recursivas,
todas las cuales son totales.

9. Una función es recursiva parcial si y sólo si es programable con un


lenguaje de programación esencial.

10. Toda función recursiva parcial es calculable por una MT y toda MT


calcula una función recursiva parcial.

11. Las funciones computables por máquinas de Turing son las mismas que
las funciones recursivas parciales y éstas las mismas, que las funciones
computables con el lenguaje de programación esencial.

12. El conjunto de las funciones recursivas totales no es numerable.

13. f recursiva primitiva ➔ fes recursiva.

14. frecursiva primitiva ➔ fes recursiva total.

15. No toda recursiva total es recursiva primitiva.

16. El conjunto de las recursivas totales no es enumerable.

17. frecursiva parcial t t fes programable esencial.

18. / es programable esencial tt fes expresable en el lenguaje esencial de


programación.

19. Tesis de Church-Turing:

256
VJ.2 Computabilidad, calculabilidad y recursividad

1. T. de Church: La clase de las funciones recursivas parciales


contiene todas las funciones parciales computables.

11. T. de Turing: La clase de las MT's tiene el poder computacional de


todo sistema computacional.

m. Tesis de Church tt Tesis de Turing.

Algunos valores de las f(x) no están definidos, pero no hay


procedimiento para saber cuáles de ellos son los no definidos, ya
que si eso fuera posible, equivaldría a resolver el problema de
finitud de cálculo de una MT. Por ello, no se puede crear una
función recursiva total completando una recursiva parcial
asignándole valores para aquellos valores de x en los que no está
definida.

20. Cálculo de una función. Decimos que una MT de alfabeto E calcula o


computa la función parcial f: E* ➔ E*, si y sólo si v'zeE*(f(z) está
definida tt la MT se detiene).

21. / es función parcial computable por una máquina de Turing si y sólo si


fes función parcial calculable por MT tt 3MT(MT computa f).

22. No toda función parcial (sólo las recursivas parciales) es computable


por MT.

23. f función recursiva parcial tt fes computable por una MT.

24. Un problema PROB es soluble (o soluble con una MT) si y sólo si


PROB se puede resolver con los cálculos de una MT.

25. 3f(f es total A fes calculable /\ -,(fes recursiva primitiva)).

26. Un ejemplo es la función de Ackermann (1928), que es total y calculable


pero no es recursiva primitiva. Está definida por:

i.. A(0, y)= y+ l.

u. A(x + 1, O)= A(x, 1).

u1. A(x + 1, y+ 1) = A(x, A(x + 1, y)).

257
Capitulo VI: Máquinas de Turing, computabilidad y complejidad

27. 3f(f computable A ,(fes recursiva parcial)). Un ejemplo lo constituye la


función de Ackermann.

28. Existe alguna función total computable de Nen N que no es recursiva


primitiva. El esquema de la prueba es partir del hecho de que el conjunto
de las funciones primitivas recursivas es numerable y se aplica después
el teorema diagonal de Cantor.

29. Las funciones iniciales e funciones recursivas primitivas e funciones


µ-recursivas o funciones totales computables e funciones recursivas
parciales e funciones computables.

30. Son funciones totales las iniciales, las recursivas primitivas y las
funciones totales computables.

VI.3 Complejidad computacional

Igual que en apartados anteriores vamos a enunciar el concepto de


complejidad computacional en términos de una serie de definiciones relacionadas
con ella:

l. Cálculos en tiempo polinómico. Sea una MT (de una o varias cintas)


que calcula la función parcial f: El* ➔ E2*, siendo El y E2 alfabetos,
se dice que esa MT calcula f en tiempo polinómico si existe un p(x),
polinomio, tal que v'zeEl *, si f está definida en z (o sea, si 3f(z)), la
MT calcula f(z) en p(lzl) pasos o menos. lzl es la longitud de z.

2. La composición de dos funciones calculables por MT's en tiempo


polinómico, es calculable en tiempo polinómico.

3. La clase de las funciones que pueden calcularse en tiempo polinómico


con MT's de varias cintas es igual a la clase de las funciones que puede
calcularse en tiempo polinómico con MT's de una sola cinta.

4. Se dice que una MI' acepta el lenguaje L en tiempo polinómico si y sólo


si L = L(MT) y existe un polinomio p(n) tal que, el número de pasos
necesarios para aceptar cualquier ze L(MT) es menor o igual que p(lzl).
Se define P, como la clase de los lenguajes que las MT's pueden aceptar
en tiempo polinómico.

258
VJ.3 Complejidad computacional

5. Si una MT puede aceptar L en tiempo polinómico, existe una MT de


varias cintás que calcula la función parcial definida por f(z) = 1
(significa 'la cadena z es aceptada'), si zeL, y deja f(z) indefinida, si
zéL, en tiempo polinómico. El cambio de MT de una cinta a varias no
aumenta la clase de los lenguajes que pueden aceptarse en tiempo
polinómico.

6. El cálculo del valor absoluto de cualquier polinomio de grado d tiene una


complejidad nd.

7. La comparación de cadenas se puede resolver con un algoritmo de


complejidad n2, y cualquier otra solución no puede tener una
complejidad menor.

8. Teorema de aceleración de Blum (1967): Para toda función g,


µ-recursiva, existe un problema para el cual, cualquier solución con
complejidad temporal t(n) se puede mejorar para obtener una nueva
solución con complejidad temporal g(t(n)), para todos excepto para un
número finito de valores en N (a su vez, esta solución se puede mejorar
para obtener una complejidad temporal g(g(t(n))), etc.). El teorema de
aceleración dice que algunos problemas no tienen solución más sencilla y
que existen problemas para los que es posible mejorar considerablemente
cualquier solución.

9. Teorema de comparación de cadenas. Lleva esta comparación un


número de pasos, como máximo de 2(n2)+ 10n+9 (si ambas son iguales),
donde n es la longitud de la cadena. 2(n2)+5n+ 1 para la mera
_ comparación. 5n+4 para mover la cabeza hacia la derecha y borrar la
cinta de derecha a izquierda. 3 para escribir un símbolo de aceptación y
1 para trasladarse al estado de parada. Si sólo los r primeros elementos
son iguales, (r < n), el cálculo total tiene r(2n+4)+6n+ 10 pasos. Parar=
O, el número de pasos es 6n+ 1O, que se toma para la estima el peor de
los casos posibles. Si se comparan 2 símbolos a un tiempo, la
complejidad es n2+7n+8. Si comparásemos k símbolos, la solución puede
ser mejorada en un factor 1/k (k > 1). Otra técnica: Extender el alfabeto
que se usa para representar las cadenas o patrones con k símbolos del
alfabeto original, con un solo símbolo del sistema extendido. El nuevo
algoritmo, primero recodifica y luego compara cadenas más cortas. Ej.:
(010010010) = a (k = 9). Una sola operación de este sistema
recodificado puede simular varios pasos del algoritmo de comparación

259
Capítulo VI: Máquinas de Turing, computabilidad y complejidad

bruto, reduciéndose la complejidad en 1/k aproximadamente, mientras el


tiempo requerido por la recodificación sea pequeño comparado con los
demás cálculos. -

10. Complejidad de un cálculo es el número de recursos necesarios para


efectuarlo. La complejidad depende del problema y del sistema
computacional. Principalmente depende de la longitud de los datos de
entrada, como puede verse en la tabla VI-1 :

Tabla VI-1: Conceptos clave: rendimiento operativo y optimización de la


codificación.

n log2(n) n n2 2n
tamaño m1croseg. m1croseg. m1croseg. m1croseg.

10 3E-6 seg. E-5 seg. E-4 seg. E-3 seg.

100 7E-6 seg. E-4 seg. E-2 seg. 1O14 siglos.

1000 E-5 seg. E-3 seg. 1 seg. Enorme

10000 13E-5 seg. E-2 seg. 1.7 min. Enorme

100000 l 7E-5 seg. E-1 seg. 2.8 horas. Enorme

11. Complejidad espacial es el espacio de almacenamiento que requiere un


cálculo. Depende del sistema de codificación que se emplee (a mayor
base de numeración, menor espacio).

12. Complejidad espacial de una MI' es el número de celdas de la cinta que


dicho cálculo requiere.

13. Si la complejidad de una MT es n, entonces la complejidad espacial no


puede ser mayor que n + 1 (ya que, en n pasos, una MT puede acceder a
n+ 1 celdas de cinta).

14. La complejidad temporal de una MI' es el tiempo requerido para


ejecutar un algoritmo y, si n es grande, es función de la longitud de la
entrada.

260
VJ.3 Complejidad computacional

15. Complejidad estimada de un algoritmo, llamada también complejidad


media tras varias aplicaciones del algoritmo que puede producir m
cálculos distintos de complejidades c(i) y probabilidades de ocurrencias
respectivas p(i), es I:p(i)c(i), desde i = 1 hasta m.

16. Complejidad temporal de las MT,S no deterministas. Las clases 'P' y


'NP'. Una MT no determinista acepta el lenguaje L en tiempo
polinómico, tt L = L(MT) /\ 3p(x)(polinomio)v'weL, la MT acepta w
en una cantidad de pasos menor o igual que p(lwl).

Se llama P a la clase de los lenguajes que pueden aceptar MT' s


deterministas en tiempo polinómico. Y se llama NP a la clase de los
lenguajes que pueden aceptar MT' s no deterministas en tiempo
polinómico.Pe NP, pero ¿es P = NP?. Respecto a los cálculos de MT's
deterministas en tiempo polinómico, hay equivalencia entre problemas de
decisión solubles, lenguajes decidibles y lenguajes aceptables. Respecto
a cálculos de MT's no deterministas, aunque también hay equivalencia
entre problemas de decisión solubles y lenguajes decidibles, no se sabe si
éstos son equivalentes a los lenguajes aceptables. Son cuestiones
actuales: ¿Están en P todos los lenguajes independientes del contexto?.
¿Existe un problema de reconocimiento de lenguajes, cuya solución
requiera tiempo exponencial al emplear una MT con una sola cinta, pero
polinómico con varias?.

Complejidad temporal de un cálculo es el tiempo necesano para


efectuarlo (en número de pasos).

17. Complejidad temporal de los cálculos de una MI' es el número de pasos


que se ejecutan durante los cálculos.

18. DSPA CE es la clase de los lenguajes de una complejidad computacional


espacial dada S(n), (n es la longitud de una cadena dada).

19. DTIME es la clase de los lenguajes de una complejidad computacional


temporal dada T(n).

20. NSPA CE es la clase de los lenguajes con complejidad espacial no


determinista dada S(n).

21. NTIME es la clase de los lenguajes con complejidad temporal no


determinista dada T(n).

261
Capitulo VI: Máquinas de Turing, computabilidad y complejidad

22. Si para un problema NP, la MT no determinista es de complejidad T(n),


para el LSAT asocia40 (Teorema de Cook), la complejidad será como
máximo T(n) + log2(n).

23. Eficiente es un algoritmo para el que existe una MT que lo simula en


1
tiempo DTIME(n ). Se define la clase P como la clase de los algoritmos
eficientes.

24. Función de Ackermann es la función AK. definida por:

AK.(O, y) = y+ 1;

AK.(x+ 1, O) = AK.(x, 1);

AK.(x+l, y+l) = AK.(x, AK.(x+l, y))


25. \iy(AK.(l, y)= y+2 A AK.(2, y)= 2y+3).

26. \ixy(y+ 1 < AK.(x, y)).

27. \ixy(AK(x, y)< AK.(x, y+l) A AK.(x, y+l) < AK.(x+l, y)/\ AK.(x, y)<
AK.(x+ l,y)).

28. \ixyz(AK.(x, y)+ AK.(z, y)< AK.(máx(x, z) + 4, y)).

29. \ixy(AK.(x, y)+ y< AK.(x + 4, y)).

30. AK. es función total y calculable.

31. \if recursiva primitiva tal que y = f(xl, ... , xn) 3k \i(xl, ... , xn)eN1 se
tiene f(xl, ... , xn) < AK.(k, I:x(i)), donde el sumatorio se extiende desde
i = 1 hasta i = n.

32. AK. no es recursiva primitiva.

33. Lenguajes decidibles en tiempo polinómico son los lenguajes cuyas


decisiones, tomadas por una MT sobre una cadena w (o sea, si pertenece
o no al lenguaje) no llevan más de p(lwl) pasos (siendo p un polinomio).

34. Si una MT acepta L en tiempo polinómico, existe una máquina que


decide L en tiempo polinómico.

262
VJ.3 Complejidad computacional

35. Ll es por definición c(LO). LI eP. LI es aceptado por MT's pero no


decidible por MT's. Esto dice que una MT no puede aceptar LI en
tiempo polinómico.

36. Número ciclomático de un programa. Mediante la teoría de grafos, se


calcula el número de circuitos de control del programa, G, que sean
linealmente independientes. Un grafo es, por definición, fuertemente
conectado si y sólo si, para él, existe un camino entre cualquier pareja de
nodos. El número ciclomático V(G) de un grafo con n nodos, e arcos y p
componentes conectados es V(G) = e- n + 2p.

3 7. En un grafo fuertemente conectado, el número ciclomático es igual al


número máximo de circuitos linealmente independientes. Recordando el
teorema geométrico para poliedros "caras más vértices es igual a aristas
más dos", se tiene que para una componente linealmente independiente
(p = 1), como e representa el número de aristas y n el número de
vértices, el número ciclomático, V(G), representa el número de caras del
poliedro asociado.

38. Paso es el nombre que se da a cada transición de una MT.

39. Problema de decisión es un problema que puede expresarse en forma de


pregunta cuya respuesta es 'sí' o 'no'. Por ejemplo: determinar si dos
cadenas son o no idénticas. Al codificarse como entrada de una MT,
cada uno de estos problemas se representa como un conjunto de cadenas.
Se acepta que las cadenas de entrada pueden yuxtaponerse con marcas
de separación para formar una sola y se conviene entonces en que la
entrada es una sola cadena.

40. Las cadenas de entrada, cuya salida es S, definen un lenguaje y la _


operación de decidirlo equivale a la operación de resolver el problema de
decisión.

41. Por lo tanto, P es la clase de los problemas de decisión que se pueden


resolver con MT's en tiempo polinómico.

42. Problema de satisfacibilidad es el problema de determinar si una


proposición de lógica de proposiciones dada en forma clausulada es o no
una contradicción.

263
Capitulo VI: Máquinas de Turing, computabilidad y complejidad

43. Se llama LSAT al lenguaje cuyas cadenas son todas contradicciones


obtenidas operando lógicamente proposiciones (ceros y unos).

44. LSAT e NP /\ (Teorema de Cook) \iL(L eNP ➔ L oc LSAT).

45. Hay otros lenguajes NP con las mismas propiedades de LSAT, o sea que
son reducciones polinómicas de cualquier otro lenguaje de NP. Estos
lenguajes han sido llamados NP-completos. Si uno de estos lenguajes
pudiera ser aceptado por una MT determinista en tiempo polinómico,
entonces P seria igual a NP. Si no, seria inútil seguir buscando
soluciones eficientes para problemas intratables. Ejemplos de problemas
NP que son NP-completos, pero no se sabe si son P:

1. Dados dos autómatas finitos no deterministas con el mismo


alfabeto, decidir si aceptan lenguajes distintos.

n. Dadas dos expresiones regulares del mismo alfabeto decidir s1


representan lenguajes diferentes (compárese con el anterior).

111. Dado un conjunto finito de autómatas finitos deterministas, decidir


si existe una cadena aceptada por todos, uno a uno, los autómatas
de la colección.

iv. Dados tres enteros positivos a, b, c, decidir si la ecuación ax:2+bx+c


= O tiene una solución que consista sólo en números enteros
positivos.

v. Dados tres enteros positivos a, b, c, decidir si existe un entero


positivo x que sea menor que c y que x 2 = a(mod b).

vi. Dados un conjunto de p números naturales y un número natural n,


decidir si existe un subconjunto del conjunto, cuya suma sea n.

vi1. Dado un conjunto X y un conjunto finito Y de subconjuntos de X (o


sea Y e f,J (X) ), decidir si existe un subconjunto de Y que sea una
partición de X.

viii. Dados un conjunto finito X en el que a cada elemento se le asigna


un número natural llamado tamaño y dos números naturales m y n,
decidir si existen por lo menos m subconjuntos de X en los cuales la

264
VJ.3 Complejidad computacional

suma de los tamaños no sea mayor que n. ldem, cambiando suma


por producto.

46. El problema de la comparación de cadenas tiene una complejidad


temporal que es, como mínimo, una expresión cuadrática de la longitud
de la cadena.

4 7. La complejidad temporal de la aceptación de cualquier lenguaje regular


con una MT es función polinómica de n, donde n es la longitud de la
cadena de entrada y por tanto, todos los lenguajes regulares están en P.

48. Todo lenguaje tipo P puede ser aceptado por alguna MT en menos de 2°
pasos, siendo n la longitud de la cadena de entrada.

49. co-NP es la clase de los lenguajes cuyos complementos están en NP.


Entonces, si fuese co-NP -:;:. NP, también seria P -:;:. NP.

50. Si existiese un lenguaje NP-completo que se encontrase en NP, entonces


seria NP = co-NP.

51. Si L está en NP, Les decidible por una MT.

52. Problema del número cromático: Dado un keN, ¿existe alguna forma
de dibujar un grafo con k colores, de forma que dos vértices contiguos
tengan un color distinto? Es un problema NP (y NP-completo).

53. Problema del viajante: Dados dos conjuntos de ciudades, las distancias
que las separan dos a dos y una distancia de viaje total permitida "d",
averiguar si existe una forma de visitarlas todas una sola vez y que la
distancia total recorrida no sea superior a "d" (a veces, quizá, volviendo
al punto de partida). Este problema es del mismo tipo que el de decidir el
lenguaje LV, que es la clase de las cadenas que representan situaciones
con respuesta 'sí' al problema del viajante. Este lenguaje es aceptado por
una MT no determinista que acepta LV en tiempo polinómico. Cada ruta
se puede generar y evaluar en un número de pasos limitado por alguna
-expresión polinómica del número de ciudades, luego LV está en NP.
Esto sólo indica que LV puede ser aceptado por una MT no determinista
en tiempo polinómico. No se infiere que pueda ser decidido en tiempo
polinómico, exigencia más fuerte que es la necesaria para la resolución
del problema. Quizá no haya ninguna MT que resuelva por completo en
tiempo polinómico el problema del viajante.

265
Capitulo VI: Máquinas de Turing, computabilidad y complejidad

54. Problemas intrtnsecamente dificiles son problemas que requieren


tiempos exponenciales sin posibilidad de reducción.

55. Reducciones polinómicas. A veces, se puede determinar que un


problema NP está en P. Una técnica es la llamada de reducciones
polinómicas. Una reducción polinómica o transformación polinómica de
un lenguaje L de alfabeto E, a otro lenguaje L' de alfabeto E', es una
función f: E* ➔ E'* que puede ser calculada por una MT en tiempo
polinómico y para la que v'z(zeL tt f(z)eL'). Si existe una reducción
polinómica, se dice que L se reduce a L', lo que se denota por 'L oc L' '.
Estas reducciones permiten traducir las preguntas de pertenencia a un
lenguaje, a preguntas de pertenencia a otro lenguaje. Si la reducción
polinómica f se calcula con la máquina Mf, y si M' es una MT tal que
L' = L '(M'), entonces el lenguaje que acepta la máquina compuesta
(Mt)o(M') es L. Mf calcula f en tiempo polinómico tt la complejidad
temporal de la máquina compuesta es la misma que la de M'.

56. Si LI oc L2 y L2eP, entonces LI eP. Es decir, la reducción polinómica


de un problema P también es P. Demostración:

1. Como L 1 oc L2, existe una reducción polinómica f de L 1 a L2.

11. f se calcula con alguna máquina Mf en tiempo polinómico, o sea,


existe un polinomio p(z) tal que Mf calcula f(z) en p(lzl) pasos o
· menos, cualquiera que sea la cadena z.

111. La longitud de la cadena lf(z)I~ p(lzl) + lzl, puesto que Mf no puede


escribir más de p(lzl) símbolos en p(lzl) pasos.

iv. Por ello, la salida de Mf, al entrar en ella z, no puede ser mayor que
p(lzl), más la longitud de la entrada, lzl.

57. Si MT' es una MT que acepta L' en tiempo polinómico, entonces hay un
polinomio q(x) tal que MT' acepta toda cadena z de L' en q(lzl) pasos.

58. La máquina compuesta (Mf)o(MT') acepta z, como máximo en p(lzl) +


q(p(lzl) + lzl) pasos, que es un polinomio en lzl, así que la máquina
compuesta (Mf)o(MT') acepta Len tiempo polinómico: LeP.

Un ejemplo es dada la función f: {O, l} ➔ {O, 1, 2} tal que f(k) = k2k,


es una reducción polinómica del lenguaje LI = {zlz es un capicúa en {O,

266
Vl.3 Complejidad computacional

1 }*}, a otro lenguaje L2 = {zkz(r)lze {O, 1}* /\ z(r) = cadena reflejada


de z}:

i. v'k(keLl ~ f(k)eL2).

u. f se puede calcular en tiempo polinómico.

m. Si MT acepta L2 en tiempo polinómico, se puede componer con la


Mf asociada a f y así se obtiene una MT que acepte L 1 en tiempo
polinómico.

59. Rendimiento medio de un cálculo es la probabilidad de que se presente


ese cálculo multiplicada por la complejidad de ese cálculo.

60. Complejidad computacional es el orden de magnitud de los recursos


computacionales que requiere un algoritmo para resolver un problema
con unos datos determinados.

61. Recursos computacionales: tiempo, memona y velocidad de


procesamiento.

62. Problema computable es un problema que admite solución algorítmica.

63. Ninguna MT puede anticipar la respuesta de si acabará o no acabará.


Como la respuesta Sí o No existe, y es consecuencia a su vez de un
algoritmo, resulta que hay cálculos que ninguna MT es capaz de
realizar. (Hay problemas sin solución). Cosa que es natural y cuyo
esquema de una posible prueba es asociar los procesos de las máquinas
a eneplas de ceros y unos, que se corresponden con funciones de
números naturales y por el teorema diagonal de Cantor este conjunto
tiene un cardinal mayor que el del conjunto de los números naturales,
que es el cardinal del conjunto de las MT's.

64. La MT imposible. Calcula o transcribe o traduce su propio número de


código (en binario) a monario. Si el número de instrucciones que
- necesita es mayor que ella misma en monario no podrá construirse (es
decir tal que el número de instrucciones, o sea su número en monario,
sea superior al número cuya abreviatura computa). Ejemplo, la MT
resolvedora de abreviaturas: 22, 2"(2 2), 2"(2"(2 2)), etc.

267
Capitulo VI: Máquinas de Turing, computabilidad y complejidad

65. Máquinas de reducción de sentencias para la lógica de proposiciones.


La lógica de proposiciones puede definirse, con las reducciones que
permiten los operadores lógicos, como un proceso de cálculo. Una MT
puede entonces detectar tautologías sustituyendo los valores de las
proposiciones por O's y l 's. Para ello, se dispone del alfabeto {O, 1} y
sucesivas ampliaciones. Las definiciones dan a su vez la regla sintáctica
de introducción y eliminación. Todas las reglas son thuéicas (la
transformación va en doble sentido y se denota por'=').

Las siguientes definiciones permiten eliminar los símbolos de las


conectivas: OvO = OAO = 0Al = lAO = l ➔O = lttO = Ottl = -,l = IEBI
= OEBO = O; lvl = lAl = Ovl = lvO = O➔O = O➔ l = l ➔ l = lttl =
OttO =-,O= OEBI = IEBO = l.

VI.3.1 Reglas para la traducción de monario y binario como cadenas

Jª axiomática de monario o singulario. La flecha indica la posibilidad de


sustituir equivalentemente cadenas.

Ax l. Suma: A+B = AB. Ej.: 11 + 111 = 1111; neutro A.

Ax2. Multiplicación: Reglas thuéicas: (A y B representan cadenas).

A*l ~ A (Axioma 1 o regla 1).

A *(B 1) tt (A*B)A (Axioma 2 o regla 2).

Potencia en monario: ACB 1> = (A8 )*A; A 1 = A.

Al *Al= (en monario) = (A*A)AAI.


Binario A*l ~ A; A*(B+l) tt (A*B)+A.

-
A(BO) tt (A8 )"(1 l) = (A8 )*( AB).
A+Bl= (A+B0)+1; BO + 1 = Bl.

(A0)8 = (A 8 )*(10 8 ).

268
Vl.3 Complejidad computacional

Estos axiomas son suficientes, si se añade el principio de inducción, para


definir los números. Si no, hay que añadir nuevos axiomas hasta definir
correctamente la multiplicación (falta la conmutatividad, la asociatividad y la
distributividad en la suma). Si se necesita el elemento neutro de la suma, puede
elegirse la palabra vacía A. Ej.: 111 *11 = (111 *1)111 = 111111.

2ª axiomática del unario (o monario o singulario). Esta forma describe


igualdades de la tabla de multiplicar (la de sumar es A+B = AB A+Bl = ABI).

La suma es la yuxtaposición (sig(A) = Al) y la multiplicación, *. Las reglas


para poder sustituir cadenas en cinta:

1*l = l; (IA)*B = Al *B tt (A*B)B; A*(Bl) = A*(IB) tt (A*B)A.

Otra, para que se cumplan las propiedades

(AB 1)*C = ((AB)*C)C (AB)*Cl = ((A*B)*C)AB


(BA)*C = (AB)*C C*(AB) = (AB)*C

Ejemplo 11. En este ejemplo se muestra el cálculo: 111 * 11 = 111111


11*1=11·
'
y por la 1ª regla,
111*1=111;
por la 28,
111*11 = 111111.

Paso de binario a monario: cambio de base. Sobre la cinta hay una cadena
de ceros y unos. La letra B representa una expresión en cinta. El paso a monario
puede hacerse mediante las sustituciones:

l. BO sustituir por *B*B*.

2. B 1 sustituir por *BO* 1*, con la condición de que no ha acabado el


cálculo mientras quede un cero, un paréntesis o dos unos no separados;
hace falta además la sustitución.

3. (BA) ➔ (B)(A). 4.- eliminar '*'.

269
Capítulo VI: Máquinas de Turing, computabilidad y complejidad

Ejemplo 12. Entrada 101 ➔ *100*1* ➔ 10*10*1 ➔ l*l*l*l*l ➔ 11111


Entrada 110 ➔ 11*11 ➔ 10*1*1 ➔ etc. ➔ 111111

Función booleana que asocia a cada número natural escrito en binario su


siguiente: Sig[a(n), a(n-1), .... a(2), a(l)] = [b(n+l), b(n), b(n-1), .... , b(2), b(l)],
donde b(n+l) puede ser 1 o O. Si llamamos r(i) al i-ésimo residuo (o sea a 'lo que
nos llevamos en cada suma parcial'), un esquema de la operación es:

b(l) = -,a(l) = aEBI;


r(l) = a(l) = a(l)/\l; para 1 < i < n+ 1,

se tiene:

b(i) = -,(a(i) tt r(i-1)) = -,(a(i) tt (a(i-1) 1\... /\a(l))


= a(i) EB (a(i-1)/\... /\a(l)),
pues r(i) = a(i) /\ r(i-1 );
por último, b(n+ 1) = r(n) = OEB r(n) = a(n) /\ ... /\a( 1).

270
Capítulo VII
Lenguajes y gramáticas

VIl.1 Introducción

Y a en el capítulo I dedicado a la lógica de proposiciones se definió de forma


informal el concepto de lenguaje, fundamentalmente como un conjunto de símbolos
que es capaz de permitir la comunicación entre personas, entre personas y máquinas
o sólo entre máquinas. También se ha introducido a lo largo del capítulo V dedicado
a autómatas algunos conceptos acerca de la teoría de los lenguajes formales.

Pues bien, la importancia de la teoría de lenguajes formales en informática


radica sobre todo en la correspondencia que existe entre las máquinas programables
y los lenguajes, dado que a cada máquina le corresponde un lenguaje en el que se
escriben sus programas, y a la inversa, a cada lenguaje de programación le
corresponde una máquina que interpreta los programas escritos en él. De esta
manera la teoría de los lenguajes formales permite desarrollar de manera científica
la creación y la producción de programas como el diseño de máquinas y lenguajes
de programación.

VII.2 Lenguajes

La descripción formal de un lenguaje finito es inmediata, basta con enumerar


las cadenas que lo forman, para lo cual es necesario introducir el concepto de
alfabeto: decir que E es un alfabeto de k elementos quiere decir que E es un
conjunto de k símbolos. Con estos símbolos, o elementos, podemos generar las

271
Capitulo VII: Lenguajes y gramáticas

distintas cadenas del lenguaje de acuerdo a unas ciertas reglas, que constituyen su
sintaxis.

Ahora bien, podemos preguntamos si dado un lenguaje finito es posible


siempre describirlo de manera finita, lo cual sabemos de lo expuesto en el capítulo
VI que no es cierto. De hecho se presentaron allí dos conceptos fundamentales, el de
algoritmo: secuencia finita de instrucciones, que pueden realizarse mecánicamente y
el de calculable: si X es conjunto de instrucciones y C es conjunto de datos,
entonces se dice que el par (X, C) es calculable, o que tiene la propiedad de la
calculabilidad, si y sólo si, de la pareja (X, C) se puede predecir que conduce a un
resultado, o sea si (X, C) es un proceso algorítmico.

En todo lenguaje habrá que definir el concepto de cadena, puesto que son los
elementos que lo constituyen. A es una cadena (sinónimos, palabra, frase) si y sólo
si A es una yuxtaposición, Y, de símbolos de un alfabeto dado. Teniendo en cuenta
que la operación de yuxtaposición, o concatenación, es un subconjunto de la unión
de todos los productos cartesianos de la forma ExEx ... xE (n veces), donde E es un
alfabeto y n un número natural.

Introducido el concepto de cadena se llega a la definición de lenguaje,


concepto calve a abordar en este capítulo. L es un lenguaje de alfabeto E si y sólo si
L es un conjunto de cadenas cuyos símbolos pertenecen a ese alfabeto E. Las
cadenas que los constituyen pueden tener distinta longitud, entendiendo por longitud
de una cadena, el número de símbolos que la componen y representándola por 11-
Por ejemplo: la longitud de la cadena xyz se representa por lxyzl y es igual a tres
(lxyzl = 3).

Nota. Por comodidad, para poder usar el O como número natural (el cero
sirve para seguir el principio del valor relativo: por ejemplo 70 son 7 decenas por
figurar el 7 en segundo lugar). De la misma manera se introduce el símbolo A, o el
B, para indicar el espacio en blanco, que se llama muchas veces también "cadena
vacía" y se agrega al alfabeto E como elemento del mismo. En estas condiciones, el
lenguaje, conjunto de todas las cadenas que pueden elaborarse con elementos de E,
se le designa por E*, cuando se excluye la cadena vacía de forma específica se
designa por E+.

VII.2.1 Operaciones con cadenas y lenguajes

fes una codificación si y sólo si f es monomorfismo (homomorfismo


inyectivo) entre dos lenguajes El* y E2*, siendo El y E2 finitos y no unitarios. Los
originales f son, únicamente, las cadenas unitarias de E 1*, formadas por un solo

272
VJ/.2 Lenguajes

elemento de su alfabeto El. Por abuso de lenguaje se representan de la misma


manera, por ejemplo, el signo 'a' y la cadena 'a', aun cuando son cosas distintas.
Por el contexto sabemos distinguir una de otra (en teoría de conjuntos, tal abuso no
se da porque distinguimos notacionalmente el signo 'x' de la cadena {x}). Es decir,
que si (f: El ➔ E2*) (abreviando f: El* ➔ E2*, pues f asigna a {x} y no a
x(eEI)), entonces se cumplen las siguientes propiedades.

f(Y(A, B)) = Y(f(A),f(B)) (Vll-1)

'ti AB(A-:;:. B ➔ f(A) -:;:. f(B)) (Vll-2)

cualesquiera que sean las cadenas de E 1*.

Decimos entonces que C es un código si y sólo si existe una codificación f tal


que: C = lm(t). C = {f(x) 1 x es generador (xeEI) del lenguaje original El*, en la
codificación}. Por abuso de lenguaje se llama código también a la codificación.

Ejemplo J. Sean El igual al conjunto de las vocales El= {a, e, i, o, u} y E2 = {O, l}


entonces un código f de E 1* en E2 * es:

f(cadena) = cadena.
Por ejemplo f(a) = 000 (se representa por '000➔ a').

f(e) = 001, (representado por '001 ➔ e'), f ha de ser monomorfi.smo.

No basta con que un subconjunto de E2 * tenga el mismo número de


elementos que el alfabeto El, sino que debe engendrar un semigrupo (con
respecto a la yuxtaposición) homomorfo a E 1*.

Conclusión: los sistemas de numeración constituyen ejemplos de


codificaciones.

Se dice que A es un conjunto definible o decidible si y sólo si hay una


función definida en DI = Auc(A) (c(A) = complementario de A), tal que la imagen
de cualquier elemento de A es O, o sea se cumple (Vll-3):

3f(Fn(t) /\ Dl(t) =A/\ 't/x(xeA ~ f{x) = O)) (Vll-3)

273
Capitulo VII: Lenguajes y gramáticas

D 1 representa el dominio de definición de f (su conjunto original) y f se


llamafanción característica de A.

Pues bien, si un conjunto A es definible o decidible, entonces es numerable.


La recíproca no es cierta en general (importante en relación con el problema de la
parada de los autómatas).

Veamos a continuación una serie de operaciones básicas con cadenas:

1. Operación potencia de una cadena. La potencia i-ésirna de una palabra


o cadena x, x\ es la concatenación, i veces, de x; xi= x ... x (i veces) y
xº= A.

Notación: aº, donde a es un símbolo y n un número natural, denota la


cadena fonnada por la repetición de dicho símbolo n veces. Así, si ae E,
aº es la denotación de la cadena aa .... a (n veces).

2. Operación reflexión de una cadena. Si la palabra x está fonnada por


los símbolos Al ... An, entonces la palabra reflejada o inversa de x, x- 1, se
forma invirtiendo el orden de los símbolos en la palabra x. Así,
x- 1 = An... Al.

3. Cadema palíndromo o capicúa. Cadena que coincide con su reflejada


(r = refl(r)). Ej.: xyx.

4. Operación disyunción entre cadenas. Representada por el símbolo de


suma '+' (o la conectiva disyunción 'v'), a+b, ("significa que puede ser
a o puede ser b").

5. Operación yuxtaposición 'Y' o concatenación de cadenas. Una cadena


yuxtapuesta es la cadena resultado de poner una a continuación de otra.
Por ejemplo:

C = Y(A, B) = AB, con A= 2xyz03, B = xtza, lleva a C = 2xyz03xtza.

Notación. Y(A) = Y(A, A);

YO(A) = A;
Yl(A) = Y(A);

274
VII. 2 Lenguajes

Y(n+l)(A) = Y(Y(n)(A), A).

6. Cadena periódica y período. B es el período de G (B y G, son cadenas)


quiere decir:

i. que existe un número n tal que G = Y(n)(B) = BB ... B (n veces).

11. que dados un número 1122 y una cadena H, cualesquiera,


B -:;:.Y(m)(H).

Se dice que Ges una cadena periódica si existe un período B para G.

De igual modo a lo que hemos hecho con las cadenas, vamos a presentar a
continuación una serie de operaciones básicas entre lenguajes:

1. Operación unión entre lenguajes. Cumple la relación:

LluL2 = {x I xeLl v xeL2} (Vll-4)


2. Operación intersección entre lenguajes. Cumple la relación:

LlnL2 = {x J xeLl A xeL2} (Vll-5)


3. Operación complemento de un lenguaje. Cumple la relación:

c(L) = {x I xe:L} (Vll-6)


4. Operación resta o diferencia entre lenguajes. Cumple la relación:

LI -L2 = Llnc(L2) (Vll-7)


5. Operación concatenación de lenguajes. Cumple la relación:

LloL2 = {xy I xeLl A yeL2} (VII-8)

6. Operación potencia referida a los lenguajes. La potencia i-ésitna de un


lenguaje es la concatenación, i veces, del lenguaje consigo mismo, como
se expone en VIl-9:

Li =L ... L (i veces). (Vll-9)

275
Capitulo VII: Lenguajes y gramáticas

Por definición, LO = {A} .

1. Operación clausura positiva, L\ de un lenguaje L. Es la unión de todas


las potencias del lenguaje, excluyendo la potencia O: L+ = u(Li), donde
1 ::;;; i ~ oo. Como ya sabemos la clausura positiva de cualquier alfabeto,
considerado como el lenguaje formado por todos sus símbolos,
corresponde al universo del alfabeto excluyendo la palabra o cadena
vacía (que coincide con la potencia O de un alfabeto). Se cumple por
tanto:

(VII-10)

8. Operación iteración, cierre o clausura de un lenguaje. El cierre de un


lenguaje L es la unión de la palabra vacía a la clausura positiva del
lenguaje, entonces:

(VII-11)

Se tiene:

(Vll-12)

O lo que es lo mismo (Vll-10): E+= E* - {A}.

9. 'Lenguaje vacio, 0 es el lenguaje sin cadenas o palabras.

10. Lenguaje(A) es el lenguaje que sólo contiene la cadena vacía, por tanto
es distinto del lenguaje vacío A ={A} y 0-:;:. A.

11. Operación reflexión de un lenguaje. Un lenguaje reflejado de L,


refl(L) ( = L') es el lenguaje formado por las cadenas reflejadas de L, o
sea que cumple la relación:

{y 13x(y = reflejada(x) A yeL} (VII-13)

Una cadena es reflejada de otra, cuando la primera es igual a la otra en


orden inverso.

Ejemplo 2. La cadena reflejada de xyz es zyx. Así, decir que refl(A) =Bes equivalente
a:

276
VII. 2 Lenguajes

(B = bl. ..bn A A= al...an) ➔Vi(ai = b(n - i + 1)).

Del mismo modo: (E*)' = E*.


12. Operación producto entre lenguajes. El producto de dos lenguajes
dados L 1, L2 se representa y se define como sigue:

LloL2 = {AB I AeLl A BeL2} (VII-14)

El producto definido es distinto del producto cartesiano (;é LlxL2).

La operación producto definida en (Vll-14) cumple las siguientes


propiedades:

1. Es asociativo.

n. No conmutativo en general.

1n. Tiene elemento neutro A.

1v. Además se cumple:

'v'L, Lo0=0 (VII-15)

v. Y se definen las siguientes relaciones:

'v'L, L(O) = A (Vll-16a)

L(l) = L (Vll-16b)

L(n + 1) = L(n)oL (Vll-16c)

Teniendo en cuenta la definición de producto de lenguajes y lenguaje reflejado


se puede enunciar el siguiente teorema:

Si L' es el-lenguaje reflejado de L, entonces (LloL2)' = L2'oLl '.


Atendiendo a la definición de cadena establecida anteriormente y al conjunto
de operaciones posibles definidas sobre ellas y sobre los lenguajes, se puede dar una
nueva definición de lenguaje como: un lenguaje es un conjunto de cadenas sobre el
que se define un conjunto R de reglas (realmente las reglas definen la obtención de

277
Capitulo VII: Lenguajes y gramáticas

los elementos del lenguaje y representan la sintaxis de formación de cadenas de


dicho lenguaje). Teniendo en cuenta esta definición, cada cadena es un elemento del
producto cartesiano del alfabeto por sí mismo un cierto número de veces.

Pues bien, las reglas son correspondencias que asocian cadenas a cadenas,
dadas por una serie de instrucciones que definen un algoritmo llamado gramática G
de L. Estas reglas también son a veces llamadas leyes de la gramática G. De forma
que, en una gramática dada, si f es una regla, la expresión f(A) = B se representa
por A➔B.

Aunque se introducirá con posterioridad el concepto de gramática desde un


punto de vista más formal, vamos a enunciar un par de reglas o leyes de las
gramáticas sumamente relacionadas con el concepto de cadena:

l. Ley semithuéica: Ley de la forma

PRQ ➔ PSQ, R *A (VII-17)

o sea, de la cadena PRQ compuesta yuxtaponiendo las cadenas P, Q, R,


se puede obtener la cadena PSQ, compuesta yuxtaponiendo las cadenas
P, S, R, o sea sustituyendo R por S.

2. Ley thuéica: Ley de la forma:

PRQ~PSQ (VII-18)

abreviatura de las dos leyes PRQ ➔ PSQ y PSQ ➔ PRQ.

Vistas las dos leyes anteriores enunciemos ahora lo que se conoce como el
problema de Thue. Sea E un alfabeto y P, Q e E*. Se dan las siguientes
definiciones y teoremas:

l. Un diccionario Des un subconjunto de E*, que es finito y AED. Se dice


que dos cadenas A y B del diccionario son sustituibles cuando son
equivalentes con respecto a algún criterio. (Ese criterio se llamará regla
gramatical de doble sentido).

2. (H) es la relación inmediata de Thue (P(H)Q, se lee 'P está relacionado


inmediatamente con Q'), significa que:

278
Vil. 2 Lenguajes

3UVAB(UeE* /\ Ve E* /\ AeD /\ BeD /\ P =


=UAV /\Q=UBV) (Vll-19)

3. La relación inmediata de Thue es relación de equivalencia.

4. (n es la llamada relación de Thue; P(nQ se lee 'P está relacionado con


Q mediante la relación de Thue' y significa que:

1. 3R(l ), R(2), ... , R(k) (reglas).

ii. (k > 1 /\ P = R(l) /\ Q = R(k) /\ v't(te[l, k-1] ➔ R(t)(H)R(t+l) ))


5. \fPQ(P(nQ tt \fXY((X eE* /\Ye E*) ➔ ((XPY)(n(XQY))).

6. Un cálculo asociativo (def. de Thue) es una pareja (D, E) con un


conjunto de reglas gramaticales de doble sentido llamadas equivalencias
o sustituibilidades sobre un alfabeto.

1. Problema de Thue (planteado en 1914 y establecido como insoluble por


Post y Markov, por separado, en 1947): ¿Para cualesquiera alfabeto E y
diccionario D, existe un algoritmo o proceso de cálculo f, tal que permite
averiguar si, dadas dos cadenas o palabras cualesquiera, ambas son o no
equivalentes en el sentido de Thue (o sea si están o no relacionadas
mediante la relación de Thue)?.

O sea:

¿\fDE 3f\fPQ ((PeE* /\ QeE* /\ DcE*) ➔ (f(P, Q) = O tt P(T)Q))?

La respuesta, como hemos dicho es NO:

3DE \ff 3PQ (Pe E*/\ QeE* /\ DcE* /\ (f(P, Q) =t:- O tt P(nQ) ).

Notación. En la descripción de sustituciones y leyes gramaticales la


flecha ' ➔' no significa una implicación, sino que se interpreta como 'lo
que va delante de la flecha se puede sustituir por lo que viene después,
pero no al revés en general' y se llama 'ley gramatical o sintáctica'. La
doble flecha significará que puede sustituirse lo primero por lo segundo
y lo segundo por lo primero cuando se desee o se necesite.

279
Capítulo VII: Lenguajes y gramáticas

La aplicación sistemática de reglas de una gramática se denomina


demostración y cada nueva cadena obtenida se llama una producción o teorema.
No obstante, suelen existir cadeñas de partida para generar otras cadenas, que se les
da el nombre de axiomas.

Formalmente, una producción o regla (x ➔ y) es un par ordenado de


palabras (x, y) e E* x E* (producto cartesiano), de manera tal que, si se encuentra
x como parte de cualquier palabra v, se puede sustituir x por y en v, lo que permite
transformar unas palabras en otras. A la aplicación de una producción x ➔ ya
una palabra v para convertirla en otra palabra w donde w = zxu, w = zyu, con v, w,
z, u e E* se le denomina derivación directa v ➔ w. Cumpliéndose que, para cada
producción x ➔ y, existe una derivación de x a y, lo que se deduce de lo anterior,
sin más que hacer z = u = A. Si en lugar de aplicar una producción se aplica una
secuencia de producciones a una palabra dada se llega a un proceso de deducción o
a una derivación, v ➔ llrw.

A la vista de las distintas definiciones presentadas, veamos una sene


características que se pueden decir de los lenguajes y gramáticas:

1. Un conjunto A está definido por recurrencia si se dan algunos de sus


elementos y el resto se obtiene mediante una función a partir de ellos.
Tales funciones se llaman funciones recurrentes.

2. Un lenguaje o sistema es monogénico cuando para cada teorema admite


una única demostración (o sea, no hay más que un camino de 'prueba').
3. Dos demostraciones son distintas, por definición, si sus sucesiones
correspondientes difieren en las cadenas que contienen, en su orden o en
ambos; ·ambiguo tt no monogénico.

4. Un sistema o lenguaje es semithuéico, cuando sus leyes son


semithuéicas. Tiene un solo axioma y es no determinista.

5. Un sistema o lenguaje es thuéico cuando sus leyes son thuéicas. (Todos


los sistemas thuéjcos son semithuéicos, obviamente, pero no al contrario;
y además no tienen por qué ser monogénicos).

280
VJ/.3 Gramáticas

VIl.3 Gramáticas

G es una gramática de Chomsky o generativa si y sólo si:

l. Ges el algoritmo de un sistema semithuéico.

2. El 'axioma' o símbolo inicial de la gramática es un símbolo de un


alfabeto auxiliar. Decir que S es "símbolo inicial" significa que S es el
axioma.

3. No hay leyes cuyo antecedente sea la cadena vacía. Las leyes de una
gramática tienen la forma:

a ➔~, aeE*, a~ A, ~eE* (VII-20)

A veces se usan símbolos especiales para indicar principio o fin, o para


limitar el poder generador de las leyes.

El alfabeto de una gramática son componen nonnalmente de dos alfabetos:

1. Los elementos de E (llamado también alfabeto de tenninales, y que se


denomina a veces ET) a cuyos elementos se les llama símbolos
terminales.

2. Los elementos de EA (llamado alfabeto de auxiliares, que usaremos


después) a cuyos elementos se les llama símbolos auxiliares (A veces EA
se denota EN, recordando que sus símbolos son no terminales).

Una cadena de una gramática, o generada por ella, puede estar formada por
símbolos terminales y auxiliares, y también por subcadenas. Por ejemplo:
a = af3ABby .... Las letras minúsculas pueden designar terminales, las mayúsculas
auxiliares, y las griegas cadenas, pero debe especificarse la notación, porque esto no
es del todo general.

_Los símbolos no tenninales de una gramática funcionan como las variables


(A, B, C, ... ) (y representarán estados en los autómatas) y los símbolos terminales
funcionan como constantes (a, b, c, ... ) y representarán los 'objetos' o 'situaciones'
concretas que se quieran representar.

En general, las gramáticas se representan por una cuádrupla formada por.

281
Capítulo VII: Lenguajes y gramáticas

1. El alfabeto principal o Terminal.

2. El alfabeto de términos aúxiliares.

3. El símbolo del axioma o símbolo inicial.

4. El conjunto de reglas de producción de la gramática.

Cualquier cadena obtenida por aplicación de las reglas de producción de la


gramática debe comenzar su demostración en una regla que tenga en su parte
izquierda el símbolo inicial S.

Todos los símbolos terminales de las reglas de G son elementos de E (o lo que


es lo mismo de ET).

El signo ' ➔' es el signo usado en las leyes de derivación o reglas y se escribe
entre cadenas. En cambio, para indicar producciones obtenidas por aplicación de las
leyes en un cierto número de pasos, a veces se usa el símbolo' ⇒' o' ➔*', como
por ejemplo en, ya6 ⇒ yp6, donde cada letra indica una cadena.

Dada un gramática G, el lenguaje generado por ella L(G) (o LG) es el


conjunto de todas las sentencias de la gramática o cadenas que es capaz de generar.
. O sea, de todas las palabras que se pueden obtener a partir del axioma (símbolo
inicial S) de la gramática por aplicación de derivaciones, o reglas de producción de
la gramática. Por tanto:

L(G) = {x IS ➔*x Ax eET*} (Vll-21)

Las cadenas de LG son cadenas que pertenecen a E*, aunque no


necesariamente todas las que constituyen E*, puesto que dependerá de las reglas que
se tengan en cada gramática.

Ejemplo 3. Si la gramática G está definida por:

S ➔ 1S1· S ➔ OSO· S ➔ l· S ➔ O· S ➔ k
' ' ' ' '
se obtiene que:

L(G) = {A-, O ,l, 11, 101, 111, 00, 000, 010, 1111, 0000, 10101, 10001, ... }
= {x I x = x·1 },

282
VII. 3 Gramáticas

que es el lenguaje obtenido de las palabras binarias simétricas o


palíndromas de O' s y l 's.

Matemáticamente se puede definir una gramática G como una cuádrupla


G = (ET, EA, S, P), donde:

1. ET es el alfabeto de los símbolos llamados terminales.

2. EA es el alfabeto de los símbolos llamados no terminales, y se cumple.

E=ETuEA (VII-22a)

ETnEA=0 (Vll-22b)

3. S es un símbolo no terminal especial (Se EA -:;:. 0), llamado axioma de la


gramática o símbolo inicial.

4. P es un conjunto finito de reglas o producciones, que tienen como única


restricción el que en la parte izquierda de las producciones debe haber al
menos un símbolo no terminal, o sea:

P ={(u ➔ v) 1 u= xAy A uEE+ Ax, y, v EE* A AEEA}

(Vll-23)

Una simplificación corriente cuando se describen las reglas de


producción es condensar las producciones de cada símbolo no terminal y
separar sus partes derechas mediante el símbolo "I" ("barra" vertical).
Por ejemplo: Las producciones S ➔ IAI, S ➔ 0A0, S ➔ A, se escriben
como S ➔ IAI I 0A0 I A.

Conocida ya la definición formal de gramática vamos a enunciar algunas


definiciones significativas relacionadas con ella:

1. x es una forma sentencia/ tt existe una derivación desde S (axioma)


hasta x, lo que a veces, se representa por S ➔ *x.

2. x es una sentencia si es forma sentencia! y todos sus símbolos pertenecen


al alfabeto de símbolos terminales, es decir, S ➔*x y xeET*.

283
Capítulo VII: Lenguajes y gramáticas

3. G 1 y G2 son dos gramáticas equivalentes (G IEG2) si y sólo si generan


el mismo lenguaje, es de~ir:

GIEG2 tt L(Gl) = L(G2) (Vll-24)

4. Se define como regla compresora a la regla cuya parte derecha está


formada por menos símbolos que la parte izquierda:

al ➔ a.2, lall ~ la.21 (Vll-25)

Ejemplo de reglas de este tipo A ➔ A. Estas reglas se llaman así porque


transforman una palabra en otra de menor longitud.

VII.3.1 Gramáticas de tipo O

Una gramática de tipo O se denomina GO, o no restringida, o sin


restricciones y es una gramática, que no tiene restricción alguna en sus leyes o
reglas de producción. Se llama también gramática de un lenguaje estructurado por
frases y gramática general estructurada por frases. En ellas existe un axioma o
símbolo de inicio que es un no terminal, y además en la parte izquierda de sus
producciones tiene que haber al menos un símbolo no terminal y para la parte
derecha no hay restricciones. Sus reglas de producción son del tipo:

P ={u ➔ v Iu = xAy A u eE+ A v, x, y e E* A A e EA}

(VIl-26)

Una propiedad fundamental para identificar este tipo de gramáticas es que si


entre las reglas de producción de la gramática existe una que hace decrecer la
longitud de la cadena, la gramática será indiscutiblemente de tipo O.

En relación a los lenguajes que representan este tipo de gramáticas, si un


lenguaje generado por una GO es reconocible, su reconocedor puede ser una
máquina de Turing, MT.

Ejemplo 4. Dada la gramática:


EA= {S, A, B}
ET= {O, l}
P = {S ➔ lA, S ➔ 1B, A ➔ OA, A ➔ lA, B ➔ l, lA ➔ l}

284
VII. 3 Gramáticas

¿De qué tipo es? ¿Cómo son las cadenas generadas?

La regla lA ➔ 1 es una regla que no cumple la regla de no decrecimiento.·


Por ello, es una gramática del tipo O o no restringida.

Son cadenas del lenguaje las cadenas 1 y 11. La 1 viene de S ➔ lA ➔ l; y


la 11 viene de S ➔ 1B ➔ 11. Además, como A puede originar 00* A y
11 *A, son posibles cadenas aquéllas que tengan la forma
00* 11 *00* ... 11 *A, que tienen que tenninar en al menos un 1, por efecto de
la regla compresora.

Ejemplo 5. Dada la gramática:


EA= {S, A, B}
ET= {a, b}
P = {S ➔ aA, aA ➔ abAa, abA ➔ bB, B ➔ a, B ➔ bB}
¿De qué tipo es?

Es de tipo O ya que la tercera regla puede reducir la longitud de la cadena.

Ejemplo 6. Dada la gramática:


EA= {S}
ET= {l, 2, 3, 4, 5, 6, 7, 8, 9}
P = {S ➔ 123S, 123 ➔ 4567, 67 ➔ 8, S ➔ 9}
¿De qué tipo es?

La gramática posee la regla 67 ➔ 8, que es de longitud decreciente, por lo


tanto, es una gramática no restringida o de tipo O.

VII.3.2 Gramáticas de tipo 1

Una gramática de tipo 1, GJ, o de contexto sensitivo, o sensible al contexto,


o de leyes contextuales, o dependiente del contexto es una gramática cuyas leyes
tienen la forma:

aA~ ➔ a.y~, con Ae EA (Vll-27)

Donde a., p, y son cadenas; y -:;:. A; pero a. y Ppueden ser vacías; el par (a., P)
se llama contexto.

285
Capítulo VII: Lenguajes y gramáticas

Las partes izquierda y derecha tienen que tener una parte común y sólo se
admite como regla de compresora la regla S ➔ A. Así, las reglas de producción que
las describen son del tipo:

P = {(S ➔ A) o (a.A~ ➔ a.y~) 1 A E EA /\a,~ E E* /\ yEE+}

(VIl-28)

Se denominan gramáticas dependientes del contexto porque se tiene en cuenta


lo que viene antes y después del símbolo que se sustituye. Así en la fórmula
anterior, a. y p son el contexto de la transformación de A en y. La característica de
estas gramáticas es que las derivaciones producidas por aplicación de sus reglas
cumplen que las palabras siempre tienen longitud mayor o igual que las anteriores
en la derivación. Si al ➔ a.2 ➔ ... ➔ an, entonces la.il < la.(i+ 1)1 ~ la.ni, 1 ~ i ~ n.

Una propiedad fundamental de este tipo de gramáticas es que una gramática


es una G 1, o del tipo 1 si y sólo si cualquiera de sus leyes tiene la longitud del
consecuente mayor o igual que la longitud del antecedente. O lo que es lo mismo,
sus reglas de producción no disminuyen la longitud de sus cadenas. Por tanto, G 1 es
la clase de las gramáticas semithuéicas no decrecientes.

La recíproca también es cierta por el siguiente teorema: Para toda G con


reglas de longitud no decreciente, existe otra G' equivalente a G, cuyas reglas son
sensibles al contexto.

En cuanto al lenguaje generado por una gramática de tipo 1 podemos decir


que existen lenguajes LGO que no son LGJ (o sea, LGO ex. LGI), pero no al
contrario. Por ejemplo, el lenguaje {(aº)(bº)(cº) 1neN} es LGO y no puede ser LG l.

Como reconocedor del tipo de lenguaje generado por una gramática de tipo 1
vamos a definir un autómata denominado, ALL, o autómata limitado linealmente,
el cual es una casi-MT cuya cabeza no puede desplazarse fuera de los límites entre
los que se sitúa inicialmente la cadena de entrada (es decir es una MT con cinta
limitada a la derecha y limitada a la izquierda, que en realidad, por ello, deja de ser
una verdadera MT). Para s~ar tales límites, se incluye en el alfabeto E un
símbolo especial como marcador, #, que se escribe antes y después de la cadena. Un
reconocedor limitado linealmente R-ALL se define por un conjunto de estados
finales de aceptación con un estado inicial ql, igual que un reconocedor-MT.

La definición del lenguaje aceptado por un R-ALL es análoga a la del


reconocedor-MT salvo que el marcador'#' no puede utilizarse como símbolo en las

286
VJJ.3 Gramáticas

cadenas de entrada, y que se preserva la distancia entre los marcadores, distancia


que no puede modificarse.

Veamos un par de teoremas relacionados con este tipo de reconocedores.

ALL-1 : Para toda gramática sensible al contexto, G 1, existe un reconocedor


limitado linealmente R-ALL tal que L(R-ALL) = L(Gl). Como las
gramáticas del tipo 1 generan lenguajes recursivos, siempre existe
un reconocedor R' -ALL que reconoce las cadenas del complemento:
L(R'-ALL) = E* - L(Gl).

ALL-2: Para todo reconocedor limitado linealmente, R-ALL, existe una


gramática sensible al contexto Gl tal que L(Gl) = L(R-ALL).

De ambos teoremas se obtiene que {L(R-ALL)} = {L(Gl)}.


VII.3.2.1 Recursividad de los lenguajes sensibles a contexto

Una gramática es un algoritmo para generar un lenguaje. Un problema de


importancia es el del reconocimiento, o sea, dados un lenguaje L e E* y una cadena
x de E*, ¿existe algún algoritmo para determinar si xeL o si x~L?. Decir que un
lenguaje L (cE*) es recursivo, equivale a decir que existe un algoritmo para
calcular la función característica de todo xeE*, o lo que es lo mismo, para
determinar si x e L o si x ~ L.

Teorema fundamental: Todo lenguaje generado por una gramática


dependiente del contexto o de tipo 1 es recursivo.

Explicación intuitiva: Esto es consecuencia del no decrecimiento de su


gramática. Efectivamente, un lenguaje de tipo O es recursivamente numerable, ya
que existe un algoritmo (la gramática de tipo O) para generar sus elementos
(sentencias). Dado un elemento x (eL), podemos compararlo con cada uno de los
elementos generados hasta comprobar que coinciden, pero si x ~ L, habría que
generar las infinitas secuencias para ver que efectivamente x~L. Por lo tanto y en
general, un_ lenguaje O no es recursivo. Sin embargo, si el lenguaje cumple la
propiedad de no decrecimiento (tipo 1 en adelante), se tiene un algoritmo para
generar primero todas las sentencias de longitud 1, luego las de longitud 2, etc., por
lo que si long(x) = k, se generan todas las sentencias de longitud k, y si x no se
encuentra entre ellas, entonces x~L. La proposición inversa no es cierta, lo que
afirma el siguiente teorema: Existen lenguajes recursivos que no son sensibles al
contexto.

287
Capitulo VII: Lenguajes y gramáticas

Ejemplo 7. Comprobar que el lenguaje L = {palabras con el mismo número de símbolos


O, 1 y 2} puede ser ge~erado por la gramática G = (ET, EA, S, P) con:
ET= {O, 1, 2}
EA= {S, A, B, C}
Sel axioma
P = {S ➔
ABCS, S ➔ ABC, AB ➔ BA, AC ➔ CA, BC ➔ CB, BA ➔ AB,
CA ➔ AC, CB ➔ BC, A ➔ O, B ➔ 1, C ➔ 2}

G no es del tipo 1, pero, por ser sus leyes no decrecientes, se puede


transformar en una G 1.

Efectivamente, de las reglas puede obtenerse como admitida cualquier


permutación de 1, 2 y 3 desde S. Si a esta permutación se agrega cualquier
otra permutación de 1, 2 y 3, y dado que S ➔ ABCS, se obtiene siempre una
nueva permutación de los tres.

VII.3.3 Gramáticas de tipo 2

Una gramática de tipo 2, G2, o de contexto libre, o gramática C, o


gramática específica de Chomsky, o independiente del contexto, es cualquier
gramática cuyas leyes tienen la forma.

A➔ a, (a* A, AeEA) (VII-29)

Algunos autores aceptan también que a. = A.

En estas gramáticas, la parte izquierda de las producciones, sólo puede tener


un símbolo no terminal:

P = {(S ➔ A) o (A ➔ a) 1 A e EA A a e E+} (VII-30)

Estas gramáticas también se llaman de contexto libre, ya que al transformar


una palabra en otra, el símbolo no terminal que se transforma no depende de los que
estén a la derecha o a la izquierda. Por lo tanto, cuando se realizan derivaciones en
las que se transforme el símbolo A (en la producción anterior), no hace falta saber
qué hay antes o después de ese símbolo.

El estudio de los lenguajes producido por las gramáticas de tipo 2 y el


autómata reconocedor más indicado para ellos, se verá más adelante, por tratarse de
un autómata de pila que tiene unas características propias.

288
Vil. 3 Gramáticas

VIl.3.4 Gramáticas de tipo 3

Una gramática de tipo 3, G3, o regular, o de Kleene, o gramática K, o


gramática lineal, es cualquier gramática cuyas leyes tienen la fonna.

A ➔ aB (Vll-3la)

o bien

A ➔ Ba (VII-3lb)

y la fonna

A➔ a (VII-3 lc)

con aeE = ET o bien a= A.

Estas gramáticas son las más restrictivas y pueden ser de dos tipos:

l. Lineales por la izquierda, cuando cumplen:

P = {(S ➔ A) o (A ➔ Ba) o (A ➔ a)I A, B e EA/\ aeET}

(Vll-32)

2. Lineales por la derecha, cuando cumplen

P= {(S ➔ A)o(A ➔ aB)o(A ➔ a)IA,B e EAA aeET}

(Vll-33)

Conocidos los cuatro tipos de gramáticas presentados, se puede enunciar el


teorema de jerarquía gramatical, que dice.

G(i + 1) e Gi, i = O, 1, 2,

es decir:

G3 cG2 cGI cGO.

289
Capítulo VII: Lenguajes y gramáticas

El reconocedor asociado a los lenguajes generados por las gramáticas de tipo


3 es el reconocedor finito estudiado en el capítulo V dedicado a los autómatas.
Aunque es un autómata cuyo funcionamiento ya se conoce, debida a su importancia
en el apartado VII.3.7 de este capítulo volveremos a hablar de ellos y de su relación
con los lenguajes regulares que son lo que generan las gramáticas de tipo 3.

VIl.3.5 Árboles de derivación y ambigüedad

Aparte de la forma convencional de representar las gramáticas que suele ser


mediante las reglas de producción, estas pueden también enunciarse o representarse
en forma de árboles de derivación. Los árboles de derivación son formas de
representación de derivaciones posibles entre las distintas reglas de producción de la
gramática y únicamente se pueden definir árboles para gramáticas de tipo 1, 2 y 3.
El formato de un árbol de derivación es como sigue:

1. El axioma (S) se representa en la raíz del árbol.

2. Los nodos, hojas del árbol, son símbolos terminales de la gramática.

3. Los nodos intermedios son símbolos no terminales de la gramática.

4. La representación de las derivaciones se lleva a cabo poniendo tantos


sucesores del símbolo no terminal de la izquierda de las producciones
como símbolos (tenninales y no terminales) haya en la parte derecha de
las producciones.

Ejemplo 8. Sea G la gramática dada por:


ET= {O, l}
axioma S
P: S ➔ lSSO; S ➔ OSSSl; S ➔ O

Para generar la palabra 10000010, se tiene:


S por ser el axioma,
(1, S, S, O) por _regla 1,
{l, O, OSSSl, O) por reglas 3 y 2 (sust. la primera S por O y la segunda por
OSSSl), de donde se tiene (1, O, O, S, S, S, 1, O),
(1, O, O, O, O, O, 1, O) por regla 3,
entonces A➔ h(l)h(2) ... h(k) es un elemento de P.

290
VII. 3 Gramáticas

Se llama "resultado de un árbol de derivación" a la cadena compuesta por la


cadena final leída de izquierda a derecha.

Ejemplo 9. Sea la gramática con:


EA= {S, A, B}
ET= {a, b}
P = { S➔aB (1), S➔bA
(2), S➔aBS (3), S➔bAS (4), A➔a (5),
A➔bAA (6), B➔b (7), B➔aBB (8)}

El árbol cuyo resultado es la cadena aBabbA corresponde a la derivación:

S ➔ (3) aBS ➔ (3) aBaBS ➔ (7) aBabS ➔ (2) aBabbA.

El árbol cuyo resultado es la sentencia aabb corresponde a la derivación:

S ➔ ( 1) aB ➔ (8) aaBB ➔ (7) aabB ➔ (7) aabb.

En cuanto a la noción de ambigüedad es necesario introducir los siguientes


conceptos:

l. Sentencia ambigua. Sentencia que admite más de una derivación o árbol


de derivación.

2. Gramática ambigua. Gramática que origina al menos una sentencia


ambigua.

3. Lenguaje ambiguo. Lenguaje tal que hay alguna gramática ambigua que
lo genera.

4. Lenguaje inherentemente ambiguo. Lenguaje tal que sólo es generado


por gramáticas ambiguas.

5. G2 ambigua tt Existe una cadena a., a.eE*, tal que se puede obtener de
dos modos de derivación diferentes. Algunas soluciones posibles para
evitar la ambigüedad en la codificación son la introducción de
paréntesis, convenios sobre prioridades en las operaciones y uso de la
notación polaca.

6. El problema de conocer la ambigüedad de una G2 cualquiera es


indecidible.

291
Capitulo VII: Lenguajes y gramáticas

Ejemplo 1O. Un ejemplo de lenguaje ambiguo es el lenguaje de Parikh:


L == {(am)(bn)(cP) 1 m-= n v n = p}, siendo a, b, e E E.

En el lenguaje natural puede haber ambigüedad lógica:


"Para cada X, un Z es tal que AZX'.
La frase tiene dos posibilidades de interpretación:
i.- v'X3Z(AZX);
ii.- 3ZVX(AZX).

VIl.3.6 Definiciones sobre lenguajes y gramáticas

Algunas definiciones significativas sobre lenguajes y gramáticas:

l. Lenguaje de un tipo. Se dice que un lenguaje es del tipo i, si y sólo si


existe una gramática del tipo i que lo genera. Se representa LGi un
lenguaje generado por una gramática de tipo i.

2. Todo lenguaje finito es del tipo 3.

3. Si j > i, siendo i, j = O, 1, 2, 3, entonces:

{LI 3Gj(L = LGj)} e {LI 3Gi(L = LGi)}.

4. A no se obtiene en los lenguajes de Chomsky. Esto no perturba el tipo,


ya que se puede introducir A en LG, con una ley adicional en las reglas
de G, S ➔ A, porque, y éste es el teorema, cualquiera que sea i, los
lenguajes-LGi, LGi u {A}, y LGi- {A} son del mismo tipo.

5. Los lenguajes generados por gramáticas del tipo 1 son definibles o


decidibles, y se dice que por ello, las gramáticas del tipo 1 son recursivas
(esta nomenclatura se establece en otro tema). La recíproca no es cierta
en general.

6. La unión y la intersección de lenguajes del tipol son del tipo l.

7. Saber si un cierto LG 1 es un lenguaje finito, infinito o vacío, es un


problema indecidible, en general.

292
VII. 3 Gramáticas

8. Una G2 puede tener teoremas o producciones tenninales y no terminales.


Un LG2 se define como el conjunto de los teoremas tenninales de la G2
dada. Si en la G2 no hay leyes que produzcan teoremas terminales, por
convenio, se dice que el lenguaje generado es el vacío. A las leyes de la
fonna A ➔ a. se les llama leyes terminales, si en a. no hay símbolos no
tenninales.

9. Dos gramáticas distintas G2 pueden generar el mismo lenguaje.

10. Los lenguajes LG2 son definibles y sus gramáticas son recursivas.

11. Una condición necesaria para obtener un LG2 infinito es que la longitud
de las cadenas no terminales no esté limitada. La condición no es
suficiente (existen gramáticas G2 que no tienen leyes tenninales y
generan el lenguaje vacío, aunque la longitud de las cadenas no
tenninales no esté limitada.)

12. Existen gramáticas G2 que no son regulares (G3).

13. (Lema del bombeo). En algunos lenguajes independientes del contexto


pueden producirse cadenas "bombeando" (ampliando porciones de otras
cadenas). El teorema del bombeo dice que si Les un LG2, que contiene
un número infinito de cadenas, entonces existe en Luna cadena que tiene
la fonna 'a.f3y6s', donde a., P, y, 6, s, son cadenas y, por lo menos f3 o 6,
una de las dos o ambas no son vacías, y además, Vn (n > O) la cadena
cuya forma es 'a.f3 ... (n veces) ... f3y6 ... (n veces) ... 6s' está en L.

14. Lenguajes de Dick (G2). Lenguajes de Dyck de los paréntesis. Sea E el


alfabeto formado por los signos de paréntesis abierto y cerrado, o sea E
= {(, )}, se define la siguiente relación de Thue, llamada relación de
Dyck restringida al paréntesis, como el conjunto de reglas gramaticales
R = {A(A)A tt A; (A) tt A}. Esta relación genera con ese alfabeto un
lenguaje llamado lenguaje elemental de Dyck para los paréntesis, forma
parte de una clase más general de lenguajes llamada lenguajes de Dyck,
y define clases de equivalencia de manera que el monoide E* (semigrupo
con elemento neutro A, respecto de la operación yuxtaposición) se
transforma en el conjunto cociente E*/R (llamado monoide de Dyck),
que es grupo con la yuxtaposición.

Las cadenas del lenguaje de Dyck, irreducibles mediante las reglas, son
,.., ', y las ' ...))((( . .. ' , pues no existe
' ( ' , ' ) ' , ''l . en e11as rungun
. , par de

293
Capitulo VII: Lenguajes y gramáticas

símbolos emparej aclos contiguos que permitan eliminarlos mediante


aquella relación de Thue, y, por ello, reducir o acortar la caclena.

15. El lenguaje elemental de Dyck está generado por una gramática G2. (De
hecho sus ampliaciones con corchetes, llaves, o indicadores de apertura-
cierre como 'if... end', etc., también).

16. Una gramática independiente del contexto que sólo permita una manera
de reescribir cada no terminal, sólo puede generar una caclena.

VIl.3. 7 Lenguajes regulares y autómatas finitos

Un lenguaje L es regular o LG3, si se puede expresar como una secuencia


finita de los lenguajes 0, {A}, {a}, VaeE, por medio de las operaciones unión,
concatenación, iteración. Por ejemplo si L = {(am)(bn)(cP) 1 m, n, p > O} es un
lenguaje regular, ya que es representable por la expresión regular aa*bb*cc*.

Si un lenguaje regular contiene cadenas de la forma (xn)(y1) (Vn), entonces


también contiene cadenas de la forma (xn)(y"1) (m -:;:. n). No obstante, el lenguaje
{(xº)(f) 1 n EN} no es regular, dado que n no puede ser igual a cero y por lo tanto el
lenguaje no se puede expresar mediante una expresión regular.

Ante esta definición un lenguaje Les regular si y sólo si es un LG3, esto es, si
y sólo si puede ser generaclo por una G3. Lo más corriente para demostrar este
teorema, en vez ·de hacerse de manera directa, es probar que ambos, lenguaje y
gramática están asociados con un mismo tipo de autómata reconocedor: el autómata
finito.

Considerando 1~ operaciones unión (o reunión), intersección, producto (o


concatenación o yuxtaposición), operación estrella de Kleene, complementación y
reflexión, así como los lenguajes de los tipos O, 1, 2, 3 se puede decir que todas las
operaciones con todos los tipos son cerradas, excepto la complementación, que sólo
es cerrada para los lenguajes de tipo 3, y la intersección, que no es cerrada en
general para el tipo 2.

Un lenguaje L(M), reconocible por un cierto M, que es una máquina-


autómata-finito, es un lenguaje regular.

Algunos teoremas sobre autómatas finitos y lenguajes regulares:

294
V/1.3 Gramáticas

l. Teorema AF-1: Para toda gramática regular G3 existe un reconocedor


finito RF (o AF) tal que L(RF) = L(G3) (en general, no determinista), y
que se construye así: Sea G3 = (ET, EA, S (axioma), P(conjunto de
reglas)) una gramática regular, definimos el RFND = (E, Q, f, ql, F)
así:

1. E= ET.

u. Creamos un estado nuevo F, y entonces Q = EA u {F}.

111. El conjunto de estados finales es {F}.

1v. El estado inicial ql es S.

Las transiciones se elaboran así:

v. Para todo tenninal escribir f(a(i), F) = 0.

v1. Para toda regla A ➔ a, donde AeEA y aeET, escribir F e f(a,


A(i)).

vi1. Para toda regla A ➔ aB, donde A,BeEA y aeET, escribir Be f(a,
A).

2. Teorema AF-2: Para todo reconocedor finito RF o autómata finito AF


existe una gramática regular G3 tal que L(G3) = L(RF), construido así:
Dado RF = (E, Q, f, ql, F), G3 = (ET, EA, S, P), será así:

1. ET= E.

ii. EA= Q.

IU. S = ql.

Para obtener las reglas a partir de las transiciones:

1v. Si f(a, qi) = qj y qjéF entonces escribir la regla qi ➔ aqj.

v. Si f(a, qi)
. .
= qj y qj eF entonces escribir las reglas qi ➔ a y
q1 ➔ aqJ.

295
Capitulo VII: Lenguajes y gramáticas

v1. Si Va( f(a, qi) = qi /\ qiéF), se elimina qi y todas las reglas en las
que figure.

Por ambos teoremas AF-1, {L(G3)} e {L(RF)}, y AF-2, {L(RF)} e L(G3),


se tiene:

{L( regulares)} = { L(RF)} y {L(regulares)} = L(G3).

En el teorema AF-1 se supone que A é L(G3). Si no es así, y pertenece


entonces deberá existir la regla S ➔A (y S no estará a la derecha en ninguna otra
regla), y en ese caso, habrá que considerar S también como estado final del
reconocedor ( {S, F} será el conjunto de estados finales).

En teorema AF-2, si en el reconocedor q(l) eF, entonces leL(RF) y


L(G3) = L(RF) - {A} y se construye después una G'3 tal que
L(G'3) = L(G3) u {A} = L(RF). Los autómatas citados en los teoremas son, en
general, NO deterministas. No obstante, para todo RFND existe un RFD que acepta
el mismo lenguaje.

Podemos, cambiando la notación a la usual de los autómatas, decir lo mismo


de la siguiente manera:

l. Paso de un AFD(o AFND) a su gramática asociada, primero se pasa a


AFD, con lo que el autómata queda como A = (E, Q, f, q0, F). Se
construye entonces la gramática lineal por la derecha G3 = (E, Q, q0, P)
en la que P se calcula así:

1. v'aqp ( (aeE /\ qeQ /\ peQ /\ f(q, a) = p) ➔ agregar la regla


'q ➔ ap').

u. Vaqp( (aeE /\ qeQ /\ peF /\ f(q, a) = p) ➔ agregar la regla


'q ➔ a').

111. Si q0eF entonces agregar la regla 'q ➔ A'.

2. Paso de la gramática lineal por la derecha G3 (ET, EA, S, P) al


autómata equivalente A == (ET, EA u{F}, f, S, {F}) , donde (F é EA), es
un nuevo símbolo no terminal y f se construye así:

1. Tenemos la regla A➔aB, entonces escríbase f(A, a)= B.

296
VI/.3 Gramáticas

11. Tenemos la regla A➔a, entonces escríbase f(A, a) = F.


-
üi. Si S ➔ A, escríbase f(S, A).

El autómata puede salir en forma no determinista.

Ejemplo 11. Dada la expresión regular aa*ba*ab*, obtener un reconocedor finito del
correspondiente lenguaje y obtener la gramática regular que lo genera.

Construimos el autómata:
d(S, a)= A
d(A, a)= A d(A, b) = B
d(B, a)= B d(B, a)= C
d(C, b) = C

Una gramática seria la dada por.


ET= {a, b}
EA= {S, A, B, C},
P = {S ➔ aA, A ➔ aA, A ➔ bB, B ➔ aC, B ➔ aB, C ➔ bC, B ➔ a,
C ➔ b}, con estado inicial S y estado final C

Ejemplo 12. Dada la gramática regular definida por:


EA= {S, A, B}
ET= {O, 1, 2}
P = {S ➔ lA, S ➔ 2B, A ➔ 1B, A ➔ lA, B ➔ 2B, B ➔ O}

encontrar una expresión regular del lenguaje generado por ella y diseñar un
autómata que sirva como reconocedor de tal lenguaje.
d(S, 1) = A d(S, 2) = B
d(A, 1) = A d(A, 1) = B
d(B, 2) = B d(B, O) = C (final)
Expresión regular 11 *12 *O + 22 *O o bien ( 11 * 1 + 2 )2 *O.

Ejemplo 13. Dada la gramática regular definida por.


EA= {S, A, B}
ET={0,1,2}

297
Capitulo VII: Lenguajes y gramáticas

P = {S ➔ lA, S ➔ 2B, A ➔ 2A, A ➔ 1B, B ➔ 2B, B ➔ O}


encontrar una expresión regular del lenguaje generado por ella y diseñar un
autómata que sirva de reconocedor de tal lenguaje.

d(estado, entrada)= nuevo estado:


d(S, 1) = A d(S, 2) = B
d(A, 2) = A d(A, 1) = B
d(B, 2) = B d(B, O) = 0(final).
Expresión regular (2+ 12*1)2*0.

Ejemplo 14. Dada la siguiente transición de niveles, donde los estados 4 y 6 son finales y
el estado 1 es inicial (d(estado, entrada)= nuevo estado).
d(ql, a)= q2
d(q2, a)= q3 d(q2, b) = q5
d(q3, a)= q4
d(q4, a)= q4
d(q5, a)= q3 d(q5, b) = q6
d(q6, b) = q6
hallar la expresión regular asociada y la gramática regular que la genera.

La .expresión regular que genera es: a(aaa* + b(bb* + aaa*)).

Eligiendo ql (S), q2 (A), q3 (B), q4 (C), q5 (D), q6 (E). La gramática y la


tabla de transiciones serán:
ET= {a,b}
EA= {S, A, B, C, D, E}
P = {S ➔ aA, A ➔ aB, B ➔ aC, B ➔ a, C ➔ aC, C ➔ a, A ➔ bD,
D ➔ aB, D ➔ b, D ➔ bE, E ➔ bE, E ➔ b} ·

Y la tabla de transición del autómata es la que se muestra a continuación:

a b a b
s A e C,0
A B D D B E,0
B C,0 E E,0

298
VJ/.3 Gramáticas

VII.3.8 Autómatas tipo pila

Se define úna pila como el sistema de almacenamiento en el que se pueden


leer las informaciones en el orden inverso en el que han entrado o han sido escritas.
Es un sistema LIFO, last input, jirst output, el último símbolo que entró en la pila,
seria el primero en salir. Las operaciones de pila son: introducir (escribir) y extraer
(leer).

Se define un autómata de pila, AP como un autómata finito al que se afiade


una pila, infinita por arriba. Consta de una cinta de lectura, cabeza lectora y
conjunto de estados. El avance sólo se produce en un sentido: no hay retroceso sobre
la cinta.

Matemáticamente un autómata de pila AP se define como tupla con los


siguientes elementos AP= (E, K, Q, #, qO, f, F), donde:

1. E es el alfabeto de los símbolos de entrada y éstos pueden estar en la


cinta Cl.

2. K es el alfabeto de símbolos de pila que pueden aparecer en la pila. Este


alfabeto puede tener símbolos en común con E.

3. Q es el conjunto de estados.

4. #( e K) es el símbolo inicial de pila, que aparece en la base de la pila.

5. qO(eQ) es el estado inicial.

6. fes la función de transición entre estados, que se define como:

f: Qx(Eu{A})xK ➔ ft,(Qx(K*)),

donde ft,(Qx(K*)) es el conjunto de las partes de Qx(K*).

7. F(cQ) es el conjunto de los estados finales.

El AP es, en general, un sistema NO DETERMINISTA.

La función de transición del AP asigna a cada estado, símbolo de cinta


entrante (que puede ser A) y cada símbolo que hay en la parte más alta de la pila, un
posible cambio de estado y un nuevo símbolo a escribir en la pila.

299
Capitulo VII: Lenguajes y gramáticas

Visto como una 'casi-MT', es como si el autómata tuviese una cabeza lectora
colocada sobre un símbolo de la cinta C 1, cabeza que sólo puede moverse hacia la
derecha, y que termina de moverse cuando llega al final de la cinta, o que también
puede quedarse parada sobre la cinta, lo que supone tener transiciones con la
palabra vacía, A. Se puede leer y escribir en la pila, que sería otra cinta C2, los
símbolos A( eK).

Ejemplo 15. Un autómata de pila para un lenguaje de dos signos{~ y}, donde la cadena
tienen 'x' seguidas y a continuación, n 'y', y además, 121.

AP = ({x, y},{#,~ y}, {qO, ql}, #, qO, f, F); # es un símbolo inicial auxiliar
de pila y f se define como:
f(qO, ~ #) = {(qO, x)},
f(qO, x, X)= {(qO, x)},
f(qO, y, x) = {(ql, A.)},
f(ql, y, x) = {(ql, A.)},
f(ql, 11., #) = {(ql, A.)}.

Así, si el autómata tiene 'x' en la entrada y está en el estado qO, pone una
'x' en la pila para memorizar cuántas ha leído. Si lee una 'y', transita al
estado ql que elimina una 'x' de la pila por cada 'y' leída. Si la pila se
vacía, se ha reconocido la palabra y por tanto ha leído las mismas x's que
,
y s.

Los símbolos almacenables en la pila se llaman símbolos de pila, y su


conjunto, finito, se llama alfabeto de máquina. Se utiliza un símbolo de pila# para
nombrar el fondo de la pila e indicar que la pila está vacía.

Las transiciones se denotan por:

f(p, x, a)= (q, b),

o por:

(p, x, a; q, b)

indicando que la entrada es x, el estado actual es p, el símbolo que se extrae


(y se borra) o se lee de la cabeza de la pila es a, el símbolo que se inserta en la pila
es b, y que se pasa al estado q.

300
VII. 3 Gramáticas

Una cadena se da por reconocida si se vacía la pila.

Si x = A, significa que, en la máquina, la cabeza lectora no avanza. Si a = A


significa que no se extrae ningún símbolo de la pila. Y si b = A, significa que no se
introduce nada en la pila.

Los autómatas de pila están sumamente relacionados con los lenguajes


generados por las gramáticas de tipo 2. De hecho, para toda G2 existe un AP que
genera y reconoce respectivamente, el mismo lenguaje.

Para ello se debe seguir los siguientes pasos:

l. El alfabeto del AP es el mismo que el alfabeto de terminales de G2.

2. El alfabeto de pila es la unión de los E y EA de la gramática y del


conjunto {#}.

3. Los estados del AP serán sólo 4; se designan por: qO, el inicial, ql, q2, y
qA, estado de aceptación.

4. Escribir la transición (qO, A, A; ql, #).

5. Escribir la transición (ql, A, A; q2, S), donde S es el axioma o símbolo


inicial de la gramática.

6. Para cada regla A ➔ K de la gramática (donde K es una cadena de


símbolos, terminales o no, o A) escribir una transición (q2, A, A; q2, K).
El significado de que K tenga varios símbolos está dado más arriba, por
la anterior notación.

7. Para todo símbolo x del alfabeto de tenninales de la G2, escribir la


transición: (q2, x, x;, q2, A).

8. Escribir la transición (q2, A,#; qA, A).

El autómata funciona así:

1. Pone consecutivamente los símbolos # y S en la pila. A partir de aquí


sólo trabaja con q2.

2. Después, mientras el símbolo# no aparezca, el AP extrae un no terminal

301
Capítulo VII: Lenguajes y gramáticas

de la pila y lo sustituye por la cadena derecha de la regla, o bien lee en la


cadena un símbolo no tenninal y tal vez lo extrae de la pila.

3. Cuando detecta # en la pila, pasa a qA.

De la misma manera que para G2 existe un AP, se establece que para todo
AP se puede construir una G2 tal que genera el mismo lenguaje reconocible por el
AP. Para hacerlo se deben seguir los siguientes pasos:

1. Los no terminales de la G2 serán representados, en vez de por A, B, etc.,


por temas de la forma (qi, x, qj) (excepto S), donde qi y qj son estados
del AP y x es o bien A, o bien un símbolo del alfabeto de pila del AP.

2. Los terminales de G2 son los símbolos del alfabeto del AP.

3. Para cada estado de aceptación qiA del AP escribir la regla


S ➔ (qO, A, qiA) (qO es estado inicial del AP).

4. Para cada estado qi del AP, escribir (qi, A, qi) ➔ A.

5. Para cada transición de la forma (qi, x, y; qj, z) tal que y-:;:. A, escribir la
regla (qi, y, qk) ➔ x(qj, z, qk) para cada uno de los estados qk del AP.

6. Para cada transición (qi, x, A; qj, z) escribir todas las reglas de la forma
(qi, w, qk) ➔ x(qj, z, qh)(qh, w, qk), donde w es cualquier símbolo del
alfabeto de pila o A; qk y qh pueden ser iguales o no y son cualesquiera
estados del AP.

Por otro lado, -un AP puede defuúrse también como una restricción de una
MT: es una casi-MT, con dos cintas y dos cabezas, pero su capacidad (o poder
computacional) es menor que la de una MT, debido a las restricciones siguientes:

1. La cinta C 1 se desplaza en un solo sentido y la correspondiente cabeza


sólo puede leer. En la cinta C2 (limitada en un extremo), puede leerse,
(en cuyo caso desaparece el signo y se desplaza hacia abajo y se
introduce un nuevo -signo en el lugar del anterior).

2. Si se vacía la pila, el autómata se para.

Un concepto muy relacionado con el de autómata de pila es de analizador


léxico o explorador, el cual es un reconocedor finito sintáctico, de gramática

302
VII. 3 Gramáticas

regular que analiza categorías sintácticas de caracteres. Dicho analizador sintáctico


es un autómata de pila, con gramática libre de contexto, que reconoce frases o
palabras bien formadas. Y de la misma manera se define como analizador
semántico al que analiza en un contexto de universo de discurso dado.

Los AP se pueden utilizar como analizadores, ya que permiten analizar


palabras para reconocer si pertenecen o no a lenguajes de tipo 2, independientes del
contexto. Estos autómatas poseen la misma forma que los autómatas finitos, aunque
se les añade una pila o memoria auxiliar. Por ejemplo, en gramáticas de lenguajes
de programación de alto nivel o en gramáticas de lenguajes naturales, ha de ser
posible utilizar paréntesis, los cuales han de estar correctamente estructurados, o
sea, a cada paréntesis abierto le debe corresponder específicamente su paréntesis
cerrado. Lo cual es imposible con un autómata finito o con una gramática G3,
puesto que no se conoce en principio el número de paréntesis y por ello hacen falta
infinitos estados para contar los abiertos y su correlato, los cerrados. Con la
memoria auxiliar de los autómatas de pila, esto sí es posible, ya que es posible
introducir en ella los abiertos y eliminarlos al ir apareciendo los cerrados.

Los autómatas de pila al igual que los finitos también pueden ser
deterministas APD o no deterministas APND. Aquí hemos descrito los no
deterministas.

Por definición, un autómata a pila es determinista, si y sólo si:

l. \fqka((qeQ /\ keK /\ aeE /\ lf(q, A, k)I >O) ➔ f(q, a, k) = 0).


2. \fqAa((qeQ /\ keK /\ aeEu{A}) ➔ card(f(q, a, k)) < 2),

(card. es el cardinal o número de elementos de f(q, a, k)).

Es decir, si dados un estado q y un símbolo de pila k, hay alguna


transición A, entonces no puede haber transición con ningún símbolo de
entrada, y además no puede haber más de una transición dados el mismo
estado q y el mismo símbolo de pila en la cima de la pila A, incluyendo
las transiciones A.

Un APD es un autómata de pila en el que sólo se aplica una y sólo una


transición cada vez en cualquier instante. Lo que significa que si:

(p, x, y; z, q) y (p, x, y; w, r) son transiciones,

303
Capítulo VII: Lenguajes y gramáticas

entonces z = w y q = r.
No obstante, esto no es suficiente para que sea determinista. Por ejemplo, si
el siguiente símbolo de entrada fuera x, la presencia de las transiciones:

(p, A, y; z, q) y (p, X, y; z, q)

pennitiría la posibilidad de pasar del estado p a otro, sin tener en cuenta la


entrada, o bien salir del estado p leyéndola. Un problema similar seria que, si
tenemos 'y' en la parte superior de la pila, pudiéramos optar entre (p, A, A; z, q) y
(p, x, y; z, q): ¿saldría el AP del estado pignorando la pila o extrayendo de ella un
símbolo?. Así, un APD debe definirse como el autómata de pila tal que, para toda
terna (p, x, y) (inicial, antes del punto y coma en la quíntupla), existe una y sólo una
transición (p, u, v; z, q), con (u= x v u= A)/\ (v = y v v = A).

Concluyendo, el lenguaje generado por un autómata de pila es el mismo que


el lenguaje generado por una gramática del tipo 2. L(Autómatas de pila) = L(G2).

VIl.3.9 Resumen de clasificación de las gramáticas y los lenguajes

Gramáticas tipo O o gramáticas no restringidas.

Sus reglas son de la forma:

a. ➔ f3 a.e E+, f3eE*, E+= E* - {A}.

La única restricción es que no hay reglas de la fonna:

A ➔ f3, siendo A la cadena vacía.

Ejemplos de producciones de gramáticas no restringidas:

123A23 ➔ 234C4, 12A34 ➔ 12B734, C ➔ 12B3, A ➔ 2B, A➔ 3.

Ejemplo de G2:

G2 = {ET, EA, S, R}, con:

ET= {O, 1};

EA= {S, X, Y};

304
VJJ.3 Gramáticas

R = {S ➔ OY· S ➔ IX· X➔ O· X ➔ OS·


' ' ' '

Su lenguaje es el conjunto de cadenas que tienen igual número de ceros que de


unos.

Gramdticas de tipo 1 o sensibles al contexto.

Sus reglas son de la forma:

aAJ3 ➔ a:yp, donde Ae EA, a., J3 e E*, yeE+.

'A' se puede reemplazar por y siempre que esté en el contexto a.-p; una de
ellas o ambas pueden ser la cadena vacía A.

La propiedad más importante de las gramáticas de orden 1 es que las cadenas


que se van obteniendo en cualquier derivación son de longitud no decreciente.

También se puede demostrar que si todas las reglas de una gramática


cumplen la condición de no decrecimiento, se puede hallar una gramática
equivalente con reglas sensibles al contexto.

Ejemplos de producciones de gramáticas sensibles al contexto o de orden 1:

12A34 ➔ 12B734, C ➔ 12B3, A ➔ 2B, A➔ 3.

Gramdticas de tipo 2 o libres de contexto.

Las. reglas son de la forma:

A➔ a., donde AeEA, a.eE+.

Estas gramáticas se llaman también de Chomsky o C- gramáticas (cuidado


con la terminología, porque a cualquier gramática estructurada por frases, o sea de
tipo O, a veces se llama también 'de Chomsky': siempre citar el tipo).

Ejemplos de producciones de gramáticas de orden 2:

C ➔ 12B3,A ➔ 2B,A ➔ 3.

305
Capítulo VII: Lenguajes y gramáticas

Gramáticas de tipo 3 o gramáticas regulares.

Poseen sólo reglas de la forma:

A➔ a.B, A➔ p, siendo A, B e EA y a., J3 e ET.

Estas gramáticas son también llamadas de Kleene o K-gramáticas.

Ejemplos de producciones de gramáticas regulares:

A ➔ 2B,A ➔ 3.

Lenguajes de tipo O, de gramáticas no restringidas.

Reconocedor de Turing = Máquina de Turing.

Lenguajes tipo 1, de gramáticas sensibles al contexto y autómatas


limitados linealmente.

Autómatas limitados linealmente = (Seudo)Máquinas de Turing limitadas a la


longitud de la cadena de entrada.

Lenguajes tipo 2, de gramáticas libres de contexto y autómatas de pila .

Reconocedor de pila = Autómata finito más una pila, potencialmente infinita,


para guardar resultados intermedios.

Lenguajes de tipo 3, de gramáticas regulares y autómatas finitos.

Autómatas finitos.

306
BIBLIOGRAFÍA

ARANDA, J., FERNÁNDEZ, J. L., JIMÉNEZ, J., MORILLA, F.: Fundamentos


de Lógica Matemática. &l. Sanz y Torres, 2000.

BARWISE, J. y ETCHEMENDY, J.: The Language of jirst-order logic. CSLI,


Stanford, 1992.

BOCHENSKI, l. M.: Historia de la Lógica formal, &l. Tecnos, 1967.

BROOKSHEAR, J.G.: Teoria de la computación. Ed. Addison- Wesley. 1993

CARROL, L.: El juego de la lógica, Ed. Alianza, 1972.

CUENA, J.: Lógica Informática. Alianza Informática. Alianza Editorial, 1986.

CHANG,- CH-L. y LEE, R. CH-T.: Symbolic Logic and Mechanical Theorem


Proving. Academic Press, 1973.

DEAÑO, A.: Introducción a la lógica formal. Alianza Universidad Textos. 1974.


(9'1 reimpresión 1992).

FERNÁNDEZ, G. y SÁEZ VACAS, F.: Fundamentos de Informática. Alianza


Informática. Alianza Editorial, 198 7.

FERRATER, J. y LEBLANC, H.: Lógica matemática. Fondo de Cultura


económica, México, 1955.

GARRIDO, M.: Lógica simbólica. (2ª Edición). Tecnos, 1992.

307
Fundamentos de Lógica Matemática y Computación

1-IlLBERT, D. Y ACKERMANN, W.: Grundzüge der theoretischen Logik,


Springer Verlag, Berlín, 1972, 6ª ed. (Edición española Elementos de Lógica
teórica, &l. Tecnos, 1972).

ISASI, P., MARTÍNEZ, P., BARAJO, D.: Autómatas. Un enfoque práctico. &l.
Addison - Wesley. 1997

KLEENE, S. C.: Introducción a la Metamatemática, Ed. Tecnos. 1974. (lª .ed.


1952).

KLIR, G. J. y FOLGER, T. A.: Fuzzy sets, uncertainty and information. Prentice-


Hall, 1988.

KOWALSKI, R.: Logic for problem solving. North-Holland, New York, 1979.
{Traducción de J. A. Calle: Lógica, programación e inteligencia artificial. Diaz
de Santos, Madrid, 1986).

KURATOWSKI, K.: Introducción a la teoría de conjuntos y a la topología.. &l.


Vicens Vives, 1966.

MANNA, Z. y WALDINGER R.: The Logical Basis for Computer Programming:


Vol. 1: Deductive Reasoning. Addison-Wesley Publishing Company, 1985.

MANNA, Z. y WALDINGER R.: The Logical Basis for Computer Programming:


Vol JI: Deductive Systems. Addison-Wesley Publishing Company, 1990.

MOSTERÍN, J.: Lógica de primer orden, &l. Ariel, Barcelona, 1970.

MOSTERÍN, J.: Teoría axiomática de conjuntos, Ed. Ariel, Barcelona, 1970.

NAGEL, E. and NEWMAN, J. R.: GtJdel ,s proof Ed. New York University Press,
1958. (Ect. española: El teorema de GtJdel, Ed. Tecnos, 1970.

NOVAK, V.: Fuzzy sets and theirapplications. Adam Hilger, 1989.

QUINE, W. V. O.: Methods of Logic, Henry Holt and Co. Inc., 1962. (Edición
española. Métodos de la lógica, Ed. Ariel, 1969).

QUINE, W. V. O.: Mathematical Logic, Ect. Harvard University Press, 2ª ed.


(Edición española Lógica Matemática, &l. Revista de Occidente, 1972).

308
Bibliografia

ROBINSON, J.A.: Logic: Form andfunction. Edinburgh University Press, 1979.

TURNER, R.: Logic for artificial intelligence. Ellis Horwood, Chichester, 1984.

WIDTEHEAD A. N., RUSSELL, B.: Principia Mathematica (to *56), Cambridge


University Press, London 191 O(Reprinted in 1970).

309

También podría gustarte