Está en la página 1de 189

UNIDAD 1 LÓGICA MATEMÁTICA

CONTENIDO DE LA UNIDAD

1.1 Introducción al cálculo de proposiciones.


1.2 Concepto de argumento y tipos de proposiciones lógicas.
1.3 Conexiones lógicas y jerarquías.
1.3.1 Conjunción.
1.3.2 Disyunción
1.3.3 Condicional.
1.3.4 Bicondicional.
1.4 Cálculo de predicados.
1.4.1 Definición.
1.4.2 Variables y particularizaciones.
1.4.3 Cuantificadores y restricciones.
1.5 Álgebra declarativa.
1.6 Inducción matemática.
1.7 Reglas de inferencia.
1.8 Evaluación de expresiones.
1.9 Tautologías y contradicciones.
1.9.1 Equivalencias lógicas y utilizaciones.
1.9.2 Deducción preposicional.
1.9.3 Demostración condicional y directa.
1.10 Implicación Tautológica.

ACTIVIDADES DE APRENDIZAJE
• Buscar y seleccionar información sobre lógica matemática. (Resumen
conceptual)
• Realizar una practica para que comprenda el uso de tablas de verdad
en las proposiciones.
• Analizar, por equipo, las diferentes conexiones lógicas.
AUTO EVALUACION

1.- El enunciado ¿lava el coche por favor? es un ejemplo de:

a) Un enunciado que no es proposición

b) una proposición

c) Axioma

d) Premisa

e) Conclusión

2.- Encuentra la respuesta al siguiente argumento:


Jaime dice que todos los griegos mienten
Jaime miente si dice la verdad
Entonces:_______________

a) Jaime dice la verdad cuando miente.

b) Jaime miente y los griegos mienten

c) Todos los griegos mienten

d) no es cierto lo que dice Jaime

e) Jaime miente todo el tiempo y los griegos no

3.- Determina cual es la expresión simbólica que se aplica para la


condición del código:
j: = 1; i:=1;
while (i<2 and j<5) or i + j = 5 do
begin
i:= i +2; j:=j +1;
End.

a) (p Λ q) V r d) pVqVr

b) (p V r) V q e) pΛqΛr

c) p → (p Λ q)
CONTENIDO

INTRODUCCIÓN
El estudio de la lógica es importante para los estudiantes de la carrera
de Ingeniería en Sistemas Computacionales porque estudia el
razonamiento y proporciona técnicas para saber desarrollar un programa
de computo. La lógica es ampliamente aplicada en ciencias como:
1.- En matemáticas nos sirve para comprobar teoremas y deducir
resultados matemáticos que se pueden ser aplicados en investigaciones
científicas.
2.- En filosofía nos sirve para determinar si un razonamiento o
predicado es verdadero o no, ya que un enunciado puede tener
diferentes interpretaciones dependiendo la forma de razonamiento y sin
embargo la lógica permite saber el significado correcto o no.
3.- En computación nos sirve para revisar programas y analizar
condiciones, pero lo más importante de la lógica en la computación es
conocer la veracidad de una aseveración. La lógica estudia métodos de
razonamiento, específicamente, métodos que separan los razonamientos
validos de los no validos. La palabra lógica viene del griego y significa,
razón, tratado o ciencia.
Para el estudio de las Matemáticas para Computadora la lógica
matemática se define a continuación:
“La lógica matemática es una disciplina que se vale de métodos de
análisis y razonamiento utilizando el lenguaje de las matemáticas como
un lenguaje analítico, la lógica matemática es la rama de las
matemáticas que nos ayuda a establecer criterios de verdad,
equivalencias lógicas, hacer demostraciones de teoremas y es auxiliar
en el análisis de argumentos planteados”.
En esta unidad analizaremos los métodos que se utilizan para saber si
una aseveración es correcta o verdadera, determinar la validez de un
argumento o predicado que son definiciones básicas para el estudio de
la lógica matemática.

1.1 INTRODUCCIÓN AL CÁLCULO DE PROPOSICIONES


El cálculo proposicional o lógica proposicional, es la ciencia que trata de
los principios válidos del razonamiento y la argumentación. El estudio de
lógica es el esfuerzo por determinar las condiciones que justifican a una
persona para pasar de una proposición dada, llamadas premisas, a una
conclusión que se deriva de aquellas.

La proposición es el elemento fundamental de la lógica matemática. Las


proposiciones son definidas, apenas "como un pensamiento completo".
Para nuestro propósito las proposiciones pueden considerarse
equivalentes a una sentencia o enunciado. Las proposiciones son
entonces una sentencia declarativa, una proposición puede tener uno de
dos valores, verdadero o falso. Una proposición es un hecho. Las
proposiciones son portadoras de veracidad y falsedad.

Mientras las proposiciones son expresadas en forma de sentencias o


enunciados, en la lógica matemática se representa por medio de
símbolos lógicos, lo cual se indica empleando letras minúsculas seguidas
del signo de puntuación “:” y que funcionan como variables
proposicionales. Se puede utilizar cualquier letra minúscula del
abecedario para identificar a las proposiciones, a estas proposiciones se
les llaman proposiciones simples como por ejemplo:

p: La luna es blanca
a: El cielo es azul
d: 2 + 3 = 5

Una proposición entonces puede ser falsa o verdadera pero no ambas a


la vez, ni tampoco puede quedarse sin ningún valor de verdad, entonces
se debe de poder distinguir cada tipo de proposición, por ejemplo una
proposición verdadera seria:

p: Una década tiene 10 años.

Esta proposición identificada por la letra “p” se define como una


proposición verdadera, ya que es cierto que una década tiene 10 años.

Un ejemplo de una proposición falsa seria:


q: La ciudad de Paris está en Inglaterra.

Esta proposición identificada por la letra “q” se define como una


proposición falsa porque la ciudad de Paris esta en Francia.

En la lógica matemática es indispensable saber reconocer el tipo de


proposición, es decir determinar si son falsas o verdaderas ya que las
operaciones que se hacen en la lógica matemática se realizan utilizando
los valores de verdad de las proposiciones (los valores de verdad se
manejan como un “1” sí la proposición es verdadera y como un “0” sí la
proposición es falsa). A continuación se presentan varios ejemplos, los
cuales se analizarán y se determinará si son o no proposiciones simples
y si lo son cuales son sus valores de verdad.
EJEMPLOS:
p: La tierra es el cuarto planeta del sistema solar
Esta si es una proposición y es falsa, ya que el planeta tierra es el tercer
planeta del sistema solar y no el cuarto por lo que este enunciado es
falso.

q: Los animales carnívoros son los que comen carne


Esta si es una proposición y es verdadera, ya que a los animales
carnívoros son los que comen carne.

r: Hay un premio Nóbel de ciencias de la computación


Esta si es una proposición y es falsa, ya hoy en día no existe un premio
Nóbel de ciencias de la computación.

s: ¡ Hola, buenos días!


Esta no es una proposición porque no es un enunciado, es un saludo
entonces no se pude definir como cierto o falso.

t: Presiona la tecla ESC para cerrar la aplicación y entra al modo


grafico
Esta no es una proposición porque no es un enunciado, es una orden
entonces no se puede definir como cierto o falso.

Los siguientes ejemplos si son proposiciones y tienen un valor de


verdad, y lo que se hace es determinar dicho valor de verdad.

a: Un lustro tiene 5 años (es verdadera = 1)


b: 1 + 1 =4 (es falsa=0)
f: La independencia de México inicio el 20 de noviembre (es
falsa=0)
c: Cumplo años el día 3 de Marzo (esta proposición puede ser cierta
sí la persona que enuncia o lee la proposición cumple años el día 3 de
marzo pero sí la persona no cumple años ese día entonces es falsa).
d: Hoy es Lunes (esta proposición puede ser cierta sí el día que se
analiza la proposición es Lunes pero sí el día que se analiza no es lunes
entonces su valor de verdad es falsa).

1.2 CONCEPTO DE ARGUMENTO Y TIPOS DE PROPOSICIONES

La lógica es una herramienta para el análisis de la veracidad de


argumentos en base sólo a la estructura de éstos, donde el significado
de los elementos que intervienen no es tomado en cuenta, entonces la
lógica proporciona los métodos para saber si un argumento es correcto y
poder obtener conclusiones.

Una de las formas mas utilizadas en matemáticas, en lógica y en


computación para establecer razonamientos y llegar a la verdad son los
argumentos.

Un argumento es un conjunto de premisas, condiciones dadas, junto con


una conclusión. En general un argumento comienza con una lista de
proposiciones simples que son las llamadas premisas y una proposición
que es la conclusión del argumento. Y decimos que un argumento es
válido si la conclusión es verdadera siempre que las premisas lo son. De
esta manera si se argumenta que:

Si los originarios de Michoacán son michoacanos y


Mario es originario de Michoacán entonces
Mario es Michoacano.

En este argumento, no tomamos en cuenta si los michoacanos son


humanos o un concepto abstracto de cualquier cosa proveniente de
Michoacán. Tampoco es importante si Mario es una persona o si es el
nombre de un animal. De esta manera desde el punto de vista de su
estructura este argumento es válido. Del argumento anterior las dos
partes principales se pueden representar como:

Las premisas:
p: Si los originarios de Michoacán son michoacanos
q: Mario es originario de Michoacán entonces

La conclusión:
r: Mario es Michoacano.

Otro ejemplo de un argumento valido seria:


Todos los perros tienen cola y Dingo es un perro entonces
Dingo tiene cola

Los argumentos establecen una relación causa-efecto, ya que en estos


se van a probar la veracidad de una proposición que es la conclusión a
partir de las hipótesis.

Tipos de proposiciones
En la lógica proposicional utilizamos dos valores llamados valores de
verdad, que son verdadero (1) y falso (0), y en computación a las
expresiones que se les asocia uno de estos dos valores se les llama
expresiones booleanas.
Las proposiciones se pueden clasificar en:

1.- Proposición lógica. Expresiones que pueden ser verdaderas o falsas


pero no ambas.
p: La tierra es plana ( Falso = 0)
q: -17 + 38 = 21 (Verdadera = 1)
r: El océano es de color verde (Falso = 0)
s: México esta en el continente Americano (Verdadera = 1)

2.- Proposición abierta. Una expresión que contiene una o más variables,
y que al sustituir las variables por valores específicos se obtiene una
proposición lógica a la que se le puede asignar un valor de verdad o
falsedad.

r: x > y-9 (Su valor de verdad depende de los valores de “x” y “y”)
s: a + b = 6 (Su valor de verdad depende de los valores de “a” y “b”)

3.- Frases. Todas las expresiones que no cumplen alguna de las dos
definiciones anteriores.
Ecosistemas (es una palabra que no tiene sentido)
Bueno días (es un saludo)
Tráeme eso (es una orden)
¿Has entendido lo que es una proposición? (es una pregunta)

4.- Expresiones indeterminadas. Son las expresiones a las que no se


le puede asignar un valor de verdad.

Esta expresión es verdadera (esta es una paradoja encierra una


contradicción en si misma)
El universo es finito (es una hipótesis que científicamente no se ha
comprobado).

Proposiciones compuestas

Las proposiciones simples se pueden combinar o relacionar utilizando


conectores lógicos. Los conectores lógicos u operadores lógicos
establecen relaciones entre dos o más proposiciones simples. La función
principal de los operadores es la de formar una nueva proposición
llamada proposición compuesta o molecular a partir de una o más
proposiciones simples o atómicas, a esta nueva proposición se le puede
asociar valores de verdad.
Por ejemplo:

Ayer comimos hamburguesas y hoy fuimos al cine


Es una proposición compuesta porque se forma de dos proposiciones
atómicas, que son:
p: Ayer comimos hamburguesas
q: Hoy fuimos al cine
Estas proposiciones simples están unidas por un conector lógico en este
caso es el conector lógico es “y”.

1.3 CONEXIONES LÓGICAS Y JERARQUÍAS

Existen conectores u operadores lógicos que permiten formar


proposiciones compuestas (formadas por 2 o mas proposiciones
simples). Los operadores lógicos básicos se dividen en 2 ramas que
tienen que ver con él numero de proposiciones a las que afecta, estas
ramas se presentan a continuación:

MONÓDICO: Afecta solamente a una proposición en la declaración.

La negación, simbolizada por "~" y equivale a anteponer la frase


“no es verdad que...”.
Por ejemplo si tuviéramos la siguiente proposición simple y utilizamos el
operador lógico de negación nos daría como resultado:
p: El cielo es azul.
Si aplicamos el operador de negación, la proposición simple se
simbolizaría como: ~p
Si se escribe el significado de los símbolos arrojaría el siguiente
resultado:
El cielo no es azul. O No es verdad que el cielo es azul

DIÁDICO: involucra a dos proposiciones en la declaración.


El conector AND o de conjunción es simbolizado por " " y
significa "y".
Sean las siguientes proposiciones simples:
p: La tierra es plana.
q: 1 + 1= 2.
Si aplicamos el operador de conjunción, la proposición simple se
simbolizaría como: p q
Si se escribe el significado de estos símbolos arrojaría el siguiente
resultado:
La tierra es plana y 1 + 1 = 2.

El conector OR o disyunción es simbolizado por " " y significa


"o".

Utilizando las proposiciones p y q del ejemplo de la conjunción, si le


aplicamos el operador de disyunción quedaría como se muestra a
continuación si lo expresamos utilizando los símbolos de la lógica:
p q

Si se escribe el significado de estos símbolos arrojaría el siguiente


resultado:
La tierra es plana o 1 + 1 = 2.

El conector de condición es simbolizado por "->" y se lee


"Sí...entonces".
Utilizando las mismas proposiciones p y q, si le aplicamos el operador
condicional quedaría como se muestra a continuación si lo expresamos
utilizando los símbolos de la lógica:
p->q
Si se escribe el significado de estos símbolos arrojaría el siguiente
resultado:
Si la tierra es plana, entonces 1 + 1 = 2.

Bicondicional es simbolizado por "↔ " y se lee "Sí y solo sí".


Utilizando las mismas proposiciones p y q, si le aplicamos el operador
bicondicional quedaría como se muestra a continuación si lo expresamos
utilizando los símbolos de la lógica: p ↔ q
Si se escribe el significado de estos símbolos arrojaría el siguiente
resultado:
La tierra es plana sí y solo si 1 + 1 = 2.
Reuniendo todos los conectores lógicos en una tabla según su jerarquía,
quedaría como se muestra a continuación:

Tablas de verdad

Las tablas de verdad hacen más fácil y efectiva la determinación de


valores de verdad entre proposiciones. Las tablas de verdad muestran
los valores de verdad de diferentes grupos de proposiciones conectados
por operadores llamadas proposiciones compuestas. Los valores de
verdad de una proposición compuesta dependen de los valores de
verdad de las proposiciones simples que intervengan y de la función del
conector con el que se estén relacionando. La tabla de verdad de una
proposición compuesta específica todas las posibles combinaciones de
los valores de verdad para la proposición compuesta, los valores de una
tabla de verdad serán solamente “1” ó “0”.

Una tabla de verdad es una matriz o tabla donde él numero de


renglones de la tabla esta dada por la formula 2n donde “n” es el
numero de proposiciones simples que forman a la proposición
compuesta, una vez definido el numero de renglones de la tabla, el
numero de columnas no esta definido pero se inicializa poniendo una
columna para cada una de las proposiciones simples, por comodidad se
hará en orden alfabético y de izquierda a derecha; y las columnas se
van creando como se va reduciendo la proposición compuesta, hasta
llegar al resultado final del valor de verdad de la proposición compuesta.
Comenzaremos nuestro estudio de las tablas de verdad por cada uno de
los conectores lógicos.
OPERADOR DE NEGACIÓN
El operador de negación es la inversa de los valores de verdad de una
proposición simple o compuesta, es decir si su valor es falso lo hace
verdadero y viceversa, la tabla de verdad de este operador se muestra
en la siguiente figura:

Como en la negación solo interviene 1 proposición simple la tabla de


verdad solo tendrá 2 renglones, ya que al aplicar la formula 2n, y donde
n=1, el resultado es 21 = 2.

EJEMPLOS:
Las proposiciones simples son:
p: los gatos tienen 3 patas.
q la independencia de México se celebra el 10 de mayo.

La negación de p y q seria:
~p: los gatos no tienen 3 patas.
~q: la independencia de México no se celebra el 10 de mayo.

1.3.1 Conjunción
Cuando utilizamos el operador lógico de conjunción se tiene la intención
de afirmar que las 2 proposiciones simples que conecta son
simultáneamente verdaderas.

Entonces la conjunción de las proposiciones p y q es la operación


binaria que tiene por resultado “p y q”, la tabla de verdad de este
operador se muestra en la siguiente tabla:
Observamos que para que la conjunción “p q” sea verdadera, las
dos proposiciones simples que intervienen deben ser verdaderas y
sólo en ese caso cumplirá, en cualquier otro caso es falsa como se
muestra en su tabla de verdad.

EJEMPLOS:
Sean las proposiciones simples:
p: Guadalajara es la capital del estado de Jalisco (es verdadera)
q: El mar es verde (es falsa)

La conjunción de p y q será:
p q = Guadalajara es la capital del estado de Jalisco y el mar es
verde.
El valor de verdad de esta proposición compuesta de p q es falsa, ya
que
1 0 en la tabla de verdad arroja un resultado de 0.
El valor de verdad de esta proposición compuesta de p q es
verdadera, ya que 1 1 en la tabla de verdad arroja un resultado de 1.

1.3.2 DISYUNCIÓN
Con la disyunción a diferencia de la conjunción, representamos dos
expresiones y que afirman que una de las dos es verdadera, por lo
que basta con que una de ellas sea verdadera para que la disyunción
“p q” sea verdadera. La proposición compuesta que resulta de unir
mediante el operador de disyunción indica que será verdadera cuando
al menos una de las proposiciones simples que la forman sea
verdadera, en otro caso será falsa.

La disyunción de dos proposiciones p y q es la operación binaria que


da por resultado “p q” , la tabla de verdad de este operador se
muestra en la Tabla No. 4:

EJEMPLOS:
Sean las proposiciones simples:
p: Guadalajara es la capital del estado de Jalisco
q: El mar es verde
La disyunción de p y q será:
p q = Guadalajara es la capital del estado de Jalisco o el mar es
verde.
El valor de verdad de esta proposición compuesta de p q es
verdadera, ya que 1 0 en la tabla de verdad arroja un resultado de 1.

El valor de verdad de esta proposición compuesta de p q es


verdadera, ya que 1 1 en la tabla de verdad arroja un resultado de 1.

Disyunción excluyente
Debemos tener cuidado, porque en español muchas veces utilizamos
la disyunción para representar otros operadores que aparentemente
son lo mismo, pero que tienen diferente significado. En español
tenemos dos casos de disyunción:
1.- La llamada y/o bancaria, lógica o matemática, que es la misma y se
utiliza en computación como el operador de disyunción.
2.- La “o excluyente”, que algunos también le llaman “o exclusiva”, y
que indica que una de las dos proposiciones se cumple, pero no las
dos. Se representa como “p q” y su tabla de verdad se muestra en la
figura No. 5:
La disyunción excluyente de dos proposiciones p y q es equivalente a:
p q≡ p q p q

1.3.3 CONDICIONAL
Al relacionarse dos proposiciones simples con este conector es muy
importante distinguir la que queda primero o a la izquierda (a la que se
le llama antecedente), y cual es la de la derecha (que se llama
consecuente). El sentido de este conector es señalar, que si la
proposición antecedente es verdadera, también lo es la proposición
consecuente; es decir, basta o es suficiente que el antecedente sea
verdadera, para que el consecuente también sea verdadero. De aquí
que una proposición compuesta en la que el conector es condicional,
será falsa si siendo verdadero el antecedente, es falso el consecuente.
La proposición será verdadera en los demás casos, en los que no
ocurre que el antecedente es verdadero y el consecuente falso.

La condicional de dos proposiciones simples p y q da lugar a la


proposición compuesta ”si p entonces q”, se representa en la lógica
simbólica como “p->q”, y su tabla de verdad de este operador se
muestra en la tabla No. 6 :

Con respecto a este operador binario, lo primero que hay que destacar
es que no es conmutativo, a diferencia de los dos anteriores la
conjunción y la disyunción. El único caso que resulta falso es cuando
el primero es verdadero y el segundo falso de ahí la importancia del
orden en el que están las proposiciones.

EJEMPLOS:
Sean las proposiciones simples:
p: Guadalajara es la capital del estado de Jalisco
q: El mar es verde

El condicional de p y q será:
p->q = Si Guadalajara es la capital del estado de Jalisco, entonces
elmar es verde.

El valor de verdad de esta proposición compuesta de p->q es falsa,
ya que
1->0 en la tabla de verdad arroja un resultado de 0.
El valor de verdad de esta proposición compuesta de p ->q es
verdadera, ya que 1->1 en la tabla de verdad arroja un
resultado de 1.

1.3.4 BICONDICIONAL
El bicondicional es un conector lógico que al relacionar dos proposiciones indica
que el valor de verdad de ambas es el mismo, ya sea verdadero o falso. Así, p ↔ q
es una proposición que significa que sí p es verdadera, entonces q también es
verdadera, y sí q es verdadera entonces p también es verdadera. En realidad la
conectiva Bicondicional es la conjunción ( ) de dos proposiciones condiciones
(si...entonces). Es decir, la proposición p ↔ q tiene el mismo sentido que la
proposición
(p q) (p q).

El bicondicional de dos proposiciones p y q da lugar a la proposición compuesta


formada por “p si y sólo si q”, se representa en la lógica matemática por p ↔ q su
tabla de verdad está representada en la tabla No. 7:
EJEMPLOS:
Sean las proposiciones simples:
p: Guadalajara es la capital del estado de Jalisco
q: El mar es verde

El bicondicional de p y q será:
p ↔ q = Guadalajara es la capital del estado de Jalisco si y solo si el mar es
verde
El valor de verdad de esta proposición compuesta e p ↔ q es falsa, ya que
1 ↔ 0 en la tabla de verdad arroja un resultado de 0.

El valor de verdad de esta proposición compuesta de p ↔ q es verdadera, ya que


1↔ 1 en la tabla de verdad arroja un resultado de 1.

En este conector la regla a utilizar es que la proposición compuesta es verdadera


siempre y cuando las dos proposiciones simples sean verdaderas o falsas.
1.4 CALCULO DE PREDICADOS
1.4.1 Definición
A diferencia de cálculo de proposiciones en el cálculo de predicados utilizamos
variables, dentro de este tema consideramos las expresiones booleanas que se
definieron como proposiciones abiertas en la sección 1.2, ya que en los
predicados existe un termino indefinido, y que dependiendo del valor que
pongamos en el termino indefinido dicho predicado será verdadero o falso .

El cálculo de predicados es una generalización del cálculo proposicional que


permite describir relaciones entre objetos, pero al igual que en el cálculo
proposicional en el cálculo de predicados se involucran operaciones como la
conjunción, disyunción y la negación. En el área de computación se utiliza para:

 Verificar consistencia en especificaciones de requerimientos en sistemas


computacionales.
 Sistemas Expertos.
 Inteligencia Artificial.
 Procesamiento de lenguaje natural.

Existe una estrecha relación entre el lenguaje y el cálculo de predicados así por
ejemplo, la oración Carmen es la mamá de Jaime y Carolina expresa una
relación entre tres individuos. Ahora consideremos la expresión:
Jaime ama a Rosa María

En la cual Jaime y Rosa María son términos y ama a es el predicado.

El cálculo proposicional está limitado para expresar razonamientos o argumentos


que involucren a objetos o individuos. Por ejemplo:
Todos los gatos tienen cola
Garfield es un gato
Garfield tiene cola

Para saber si este argumento es válido es necesario que se identifique a los


individuos, establecer sus propiedades e identificar los predicados. Se utilizan los
predicados para describir propiedades o relaciones entre objetos, un objeto puede
ser una persona, un concepto u objetos físicos.

Para saber si este argumento es válido es necesario que se identifique a los


individuos, establecer sus propiedades e identificar los predicados. Se utilizan los
predicados para describir propiedades o relaciones entre objetos, un objeto puede
ser una persona, un concepto u objetos físicos.
Siempre la veracidad de una oración gramatical es válida en un determinado
contexto. Este contexto se denomina Universo de Discurso o también DOMINIO.
Los elementos de un Universo de Discurso se denominan individuos u objetos, y
a los objetos se les llama términos del predicado Consideremos las siguientes
afirmaciones:

1 Alejandra es la madre de Estela.


2 Existe un número que es el más pequeño de todos

En ambos casos las afirmaciones son ambiguas si no se especifica claramente


que se trata de una determinada familia y en el segundo caso que el dominio es el
conjunto de los números naturales. Un individuo puede ser: persona, objeto,
estructura de datos, número, es decir, cualquier cosa sobre la que queramos
razonar. Todo Universo de discurso debe contener a lo menos un individuo, para
referenciar objetos o individuos, se utilizan identificadores y estos identificadores
se denominan constantes individuales,

La estructura de un argumento lógico es: cuantificador + individuos +


predicados
Un predicado es una afirmación, cualidad, relación o atributo sobre objetos.
Por ejemplo:
Dingo es un perro
Soledad es hermana de Marcos
3 La suma de 3 con 4 es igual a 7

En cada una de estas frases existe una lista de argumentos con determinadas
propiedades. Formalmente los predicados se expresan mediante las llamadas
fórmulas atómicas. Una fórmula en lógica de predicados es una expresión que se
puede obtener mediante la siguiente forma:

Donde p es un símbolo que representa un predicado que es la relación entre los


objetos y son símbolos de variable que representan a los objetos y
forman un conjunto X, los ejemplos anteriores se pueden representar como una
formula lógica.
Por ejemplo:
Dingo es un perro: perro(Dingo)
Donde el predicado es perro y Dingo es el objeto.
1
2 Soledad es hermana de Marcos: hermana(Soledad, Marcos)
3 La suma de 3 con 4 es igual a 7: suma(3,4,7)
El número de argumentos de un predicado se denomina aridad Un predicado de
aridad 1 se denomina propiedad. Ejemplo: perro(Dingo)

Si todos los argumentos de un predicado son constantes individuales, la fórmula


atómica es verdadera (V) o falsa (F). Un predicado de aridad 2 establece una
relación binaria y se puede expresar mediante una tabla. Por ejemplo:

La lógica de predicados también es llamada lógica de conjuntos por lo tanto los


conjuntos son importantes, ya que aquí utilizaremos el conjunto universo para
definir el dominio.
En el cálculo de predicados tenemos elementos más simples para formar las
expresiones atómicas, a diferencia de una proposición simple donde su valor es
verdadero o falso de acuerdo a una interpretación, en cálculo de predicados el
valor de verdad depende de los componentes que forman el predicado.

1.4.2. VARIABLES Y PARTICULARIZACIONES


Como ya se menciono puede haber predicados con más de un término
(variable o constante), y llamaremos paridad a dicho número de
términos. Así, puede haber predicados monoádicos (de paridad 1),
diádicos (de paridad 2), triádicos (paridad 3), y en general poliádicos. Lo
que se analizará en esta parte son las definiciones principales utilizadas
dentro del calculo de predicados y ejemplos representativos.

Para denotar individuos u objetos específicos, utilizaremos constantes


y emplearemos letras minúsculas como por ejemplo a,b,c. Para denotar
las propiedades de los individuos o las relaciones entre ellos, usaremos
predicados, y utilizaremos una variable para escribir la formula y la
cual se puede sustituir por una constante y las denotaremos con las
letras minúsculas como por ejemplo x, y,z.
Un ejemplo seria la siguiente afirmación, la cual la vamos a representar
como un predicado y cada una de sus partes:

Armando es hermano de Eduardo


El predicado representado con una formula atómica es:
Es hermano de (Armando, Eduardo) p (x, y)
Donde:
U =Conjunto universo {Armando, Eduardo} = el universo de
discurso. x, y = una variable que expresa un individuo o persona.
p = es hermano de = es el predicado.
Armando y Eduardo = son constantes que forman parte del universo
del discurso.
Y entonces podemos decir que:
p = (x, y) : “ x es hermano de y ”

Otro ejemplo es la siguiente afirmación:


Juan es padre de Jorge

Se representa como un predicado como se muestra a continuación:


Es padre de (Juan, Jorge) p (x, y)
Donde:
U = {x | x es el nombre de una persona} = el universo de discurso.
x, y = una variable que expresa un individuo o persona.
p = es padre de = es el predicado.

Juan y Jorge = son constantes que forman parte del universo del
discurso.
Y entonces podemos decir que:
p = (x, y) : “ x es padre de y ”

Un ejemplo de un predicado de aridad 1 seria:


Pluto es un perro
Este enunciado se representa como un predicado como se muestra a
continuación:
Es un perro (Pluto) p (x)

Donde:
U = {x | x es una nombre de perro} = el universo de discurso.
x = una variable que expresa un individuo o persona.
p = es un perro = es el predicado.
Pluto = es una constantes que forman parte del universo del discurso.
1.4.3 CUANTIFICADORES Y RESTRICCIONES
Existe en el cálculo de predicados dos casos centrales, el primero se
presenta cuando se analiza si el predicado cumple la condición para la
población completa (dominio) sin excluir a ningún miembro y segundo
cuando se analiza para ver si cumple para un caso en particular de al
menos un miembro de la población. Estos dos casos vienen a ser la
interpretación o la semántica de los símbolos de cuantificadores que
se definen a continuación, en la lógica de predicados existen dos
cuantificadores:

Universal: es verdad para todos. Se denota por


Existencial: es verdad solo para algunos. Se denota por
Por ejemplo para el cuantificador universal tenemos:
A: una expresión lógica
x: una variable
xA

Indica que A es verdadero para todos los valores de la variable x. En


la expresión xA cada símbolo representa:
: es el cuantificador universal.
x: es la variable ligada por el cuantificador
A: es el ámbito o alcance del cuantificador

Por ejemplo para el cuantificador existencial tenemos:


A: una expresión lógica
x: una variable
xA

Indica que A es verdadero para al menos un valor de la variable x. En


la expresión xA cada símbolo representa:
: es el cuantificador existencial.
x: es la variable ligada por el cuantificador
A: es el ámbito o alcance del cuantificador

En lógica matemática existe un término llamado proposición categórica


que es una proposición que tiene cualquiera de las siguientes formas y
que relaciona siempre a 2 conjuntos de elementos(X1 y X2) y forma
una expresión lógica:

1.- Todo miembro de X1 esta en X2.


2.- Ningún miembro de X1 esta en X2.
3.- Algunos miembros de X1 están en X2.
4.- Algunos miembros de X1 no están en X2.

Para el cuantificador universal, los descriptores todo y ningún de las


proposiciones categóricas del tipo 1 y 2, se les conoce como
cuantificadores universales afirmativo y negativo respectivamente,
porque las proposiciones categóricas de este tipo afirman o niegan
algo que se refiere a todos los miembros de un universo. Estas
proposiciones establecen que para todo elemento x en el universo, sí x
esta en la clase X1, entonces x también esta en la clase X2 ( o no lo
esta). Para el cuantificador existencial, el descriptor “algunos” de las
proposiciones categóricas del tipo 3 y 4 , se conoce como
cuantificador existencial porque las proposiciones categóricas de este
tipo afirman la existencia de algún elemento en particular. Estas
proposiciones establecen que existe al menos un elemento de X1 que
esta (o no esta) en X2.
Dentro de estas proposiciones categóricas también existen las
proposiciones universales afirmativas que son las proposiciones
del tipo 1. Las proposiciones categóricas del tipo 2 se conocen como
proposiciones universales negativas. Existen también las
proposiciones particulares afirmativas que son las proposiciones
categóricas del tipo 3. Y las proposiciones categóricas del tipo 4 son
proposiciones particulares negativas. A continuación se presenta
un ejemplo de cada uno de los 4 tipos de proposiciones categóricas y
como las podemos expresar como predicados quedando entonces,
una proposición categórica del tipo 1 seria:

Todos los cuadrados son rectángulos.


Por lo que esta proposición se puede expresar como predicado:
xp(x)
Donde:
U = {x | x es un cuadrado}
x = una variable que expresa un cuadrado.
p = es un rectángulo = es el predicado.
= es el cuantificador universal que significa todos.
Una proposición categórica del tipo 2 seria:
Ningún cuadrado es rectángulo.

Por lo que esta proposición se puede expresar como predicado:


x~p(x)
Donde:
U = {x | x es un cuadrado}
x = una variable que expresa un cuadrado.
p = es un rectángulo = es el predicado.
~ = es el operador lógico de negación.
= es el cuantificador universal que significa todos.
Una proposición categórica del tipo 3 seria:
Algunos cuadrados son rectángulos.

Por lo que esta proposición se puede expresar como predicado:


xp(x)
Donde:
U = {x | x es un cuadrado}
x = una variable que expresa un cuadrado.
p = es un rectángulo = es el predicado.
= es el cuantificador existencial que significa algunos.
Una proposición categórica del tipo 4 seria :
Algunos cuadrados no son rectángulos.

Por lo que esta proposición se puede expresar como predicado:


x~p(x)
Donde:
U = {x | x es un cuadrado}
x = una variable que expresa un cuadrado.
p = es un rectangulo = es el predicado.
~ = es el operador lógico de negación.
= es el cuantificador universal que significa algunos.

Hay que tener en cuenta que si una proposición universal afirmativa es


verdadera, la proposición existencial afirmativa también lo es ya que
esta cumpliría en el caso de al menos uno, mientras que la particular
negativa será falsa. Si una proposición universal negativa es
verdadera, la proposición particular afirmativa será falsa y la particular
negativa será verdadera.
1.5 ÁLGEBRA DECLARATIVA

El álgebra proposicional también es comúnmente llamada álgebra


declarativa y básicamente es la estructura algebraica que se forma
con expresiones utilizando los conectivos lógicos. Para entender este
tema explicaremos primero lo que es una formula bien formada
identificada como una fbf.

Fórmulas bien formadas:


(1) Un átomo o proposición simple es una fbf.
(2) Si A y B son fbf, entonces : ( A ) , ( B A ) , ( B A ) , ( B A ) , (
B A ) también lo son.
(3) Si A es una fbf y “x” es una variable, entonces xA ) y xA )
también lo son.
(4) Solo son fbf las que se obtienen aplicando un número finito de
veces las reglas anteriores. Una proposición compuesta es una
formula bien formada, o una expresión construida a partir de variables
lógicas y los conectores lógicos; algunas veces se representan esas
proposiciones compuestas como P(p1, p2,...,pn).
Una expresión sintácticamente correcta se le llama fórmula bien
formada (fbf) o simplemente fórmula, para saber si una expresión en
lógica ( o proposición compuesta) es una fórmula bien formada
podemos construir su árbol sintáctico aplicando recursivamente un
árbol con una raíz (nodo central que debe de ser un conectivo lógico) y
dos nodos (pueden ser una proposición simple o una proposición
compuesta que debe seguirse descomponiendo) para un conector
lógico binario y un árbol con la raíz y un sólo nodo para la negación,
de tal forma que las hojas estarán formadas por proposiciones simples
solamente.
Con la formula expresada en lógica de proposiciones podemos aplicar
el siguiente algoritmo para que sea mas fácil construir las tablas de
verdad de estas formulas ( las tablas de verdad se analizan mas
adelante), dicho algoritmo tiene 2 pasos muy sencillos que se
presentan a continuación:

a) Escribir la fórmula (también son proposiciones simples) con un


número arriba de cada operador que indique su jerarquía. Se
escriben los enteros positivos en orden, donde el número 1
corresponde al operador de mayor jerarquía. Cuando dos
operadores tengan la misma jerarquía, se le asigna el número
menor al que este mas a la izquierda. La jerarquía de los
operadores se presenta a continuación:

b) Construir el árbol sintáctico empezando con la fórmula en la raíz y


utilizando en cada caso el operador de menor jerarquía. O sea, que
vamos del número mayor al menor.
Para representar lo antes dicho vamos a comprobar que (p ~r q
p) es una formula bien formada y una proposición compuesta
adecuada y que se puede resolver para encontrar si esta es verdadera
o falsa. Vamos a contestar a la pregunta de que si la formula esta bien
utilizando el algoritmo anterior, y lo resolvemos utilizando los mismos
pasos.

a) Seguimos los pasos del algoritmo con la fórmula (p ~r q p).


Vemos que el operador de negación tienen mayor jerarquía,
empezamos por el, por lo que la fórmula con jerarquías marcadas
sería:

b) Construir el árbol Sintáctico empezando a descomponer por el


operador con el número mayor, seguir en orden descendiente hasta el
último que es el que tiene el número 1.
Figura No. 1 Árbol sintáctico de una fbf

La figura anterior representa entonces el árbol sintáctico de la formula


y como vemos esta expresión (proposición compuesta) es una formula
bien formada. Por ejemplo vamos a comprobar que (p ~q) (~p
r) es una fórmula bien formada y una proposición compuesta
adecuada y que se puede resolver. La formula es (p ~q) (~p r), y
hay que determinar si esta bien formulada es decir la formula esta
correctamente escrita. Vamos a contestar a la pregunta de que si la
formula esta bien utilizando el algoritmo anterior, y lo resolvemos
utilizando los mismos pasos.

a) Seguimos los pasos del algoritmo con la fórmula (p ~q) (~p


r). Vemos que los operadores de los paréntesis tienen mayor
jerarquía, empezamos por el paréntesis izquierdo por lo que la fórmula
con jerarquías marcadas sería:

b) Construir el árbol Sintáctico empezando a descomponer por el


operador con el número mayor, seguir en orden descendiente hasta el
último que es el que tiene el número 1.
En estos árboles las proposiciones simples que forman la formula
están en las orillas del árbol (también se les llama hojas porque ya no
hay nada después de ellas, este tema se estudia a fondo en la unidad
3 de este libro). Y así concluimos que esta formula esta correcta ya
que cumple que se puede resolver correctamente con los operadores
lógicos, ya que para los todos los operadores lógicos excepto la
negación cumple que el conector lógico tiene 2 nodos y la negación
solo tiene uno.
Una forma de poder generar fbf, es identificar de un enunciado cuales
son las proposiciones lógicas que los forman y con cuales conectores
están comunicadas, por ejemplo si tenemos el siguiente enunciado:

“Si hoy es lunes y mañana nacerá mi primer hijo, entonces mañana iré
al cine o si hoy me comprare un carro nuevo entonces hoy es lunes”
Lo primero que debemos de hacer es identificar los conectores que
aparecen en el enunciado y separar las proposiciones simples que
forman el enunciado, a continuación marcamos los conectores que
aparecen en el enunciado:

“Si hoy es lunes y mañana nacerá mi primer hijo, entonces mañana


iré al cine o, si hoy me comprare un carro nuevo, entonces hoy es
lunes”

Ahora presentamos las proposiciones simples que están presentes en


el enunciado y estas son:

p: Hoy es lunes
q: Mañana nacerá mi primer hijo
r: Mañana iré al cine
s: Hoy me comprare un carro nuevo

Para poder formar las proposiciones compuestas (o fórmulas bien


formadas), hay que sustituir en el enunciado las proposiciones simples
por sus variables proposicionales y los conectores por sus símbolos,
entonces la fbf quedaría como se presenta a continuación:
p q r s p
Otro ejemplo seria el siguiente enunciado:
“Hoy me comprare un carro nuevo y hoy es lunes o manara iré al cine,
y si mañana nacerá mi primer hijo y hoy me comprare un carro nuevo
entonces mañana iré al cine o hoy es lunes”

Entonces podemos formar las proposiciones compuestas (o fórmulas


bien formadas): (s p r q) (s r p)

REPRESENTACIÓN EN FORMA SIMBÓLICA


Para representar una expresión del español en forma simbólica, se
deben primeramente seleccionar los elementos atómicos, que son
expresiones simples, y representar la expresión en términos de estos
elementos, utilizando operadores lógicos, por ejemplo vamos a
representar las siguientes expresiones del español utilizando
operadores lógicos.
Si voy al teatro ó me quedo estudiando en la biblioteca entonces no llegaré
temprano a casa. Y Hoy llegaré temprano a casa ó si compro un libro entonces
estudio inglés. O Si resuelvo el problema entonces iré al juego de base-ball o
compro un libro.

Para encontrar la solución primero tenemos que identificar las proposiciones


simples que forman los enunciados, identificar cuales son los conectores lógicos y
a cuales proposiciones simples afecta. Entonces lo primero es identificar las
proposiciones simples dándole a cada uno un identificador lógico, entonces las
proposiciones simples de los 3 enunciados anteriores son:
p: voy al teatro
q: me quedo estudiando en la biblioteca
r: llegaré temprano a casa
s: compro un libro
t: estudio inglés
u: resuelvo el problema
w: iré al juego de base-ball

Entonces una vez identificadas las proposiciones se identifican a los conectores,


ya identificados los conectores y las proposiciones simples la expresión
en forma simbólica quedara:
(p q ~r) ( r s t) ( u w s)
Un ejercicio muy importante es construir la definición de fórmula bien formada en
cálculo de predicados (y un predicado con cuantificadores es como una
proposición cerradas) lo único que se debe hacer es agregar reglas para construir
los cuantificadores existencial y universal; sin embargo hay que tener cuidado
porque como las proposiciones son abiertas, las hojas en el árbol sintáctico o sea
los términos atómicos no son letras simples sino predicados y se construyen con
argumentos.

1.6 EVALUACIÓN DE EXPRESIONES


Como ya sabemos la sintaxis en lógica es la forma correcta de escribir
una fórmula y la semántica es lo que significa. Como en lógica
solamente tenemos dos valores (verdadero y falso) una fórmula
solamente puede ser verdadera o falsa.
Para determinar su valor seguimos las reglas simples que dimos en
las definiciones básicas de acuerdo a su tabla de verdad. Esto lo
hacemos mediante interpretaciones. Una interpretación de una fórmula
es un conjunto de valores que se les asignan a sus proposiciones
atómicas.

Al interpretar una fórmula o una proposición compuesta lo que


finalmente vamos a obtener es un valor de verdad, bien sea verdadero
o falso. Pero para poder encontrarlo muchas veces el proceso es
laborioso porque puede estar formada por varias proposiciones
simples o atómicas. Primeramente se le asignan valores de verdad a
los átomos y se puede encontrar el valor de la expresión, se evalúa la
formula con esos valores de verdad y así podemos concluir que la
proposición compuesta tiene un valor de verdad sea verdadero o falso.
Por ejemplo si tenemos las siguientes proposiciones simples cada una
con sus respectivos valores de verdad:

a: Una década tiene 10 años. (es verdadera = 1)


b: 1 + 1 =4. (es falsa=0)
c: Todos los africanos son negros. (es falsa=0)

Vamos a resolver las siguientes proposiciones compuestas y vamos a


determinar si son verdaderas o falsas utilizando los valores de verdad
que tienen las proposiciones a, b y c. Por ejemplo las proposiciones
compuestas son:

(a ^ b) c = Si una década tiene 10 años y 1+1 =4 entonces todos


los africanos son negros.

Para evaluar esta expresión entonces primero hay que determinar cual
es la jerarquía de los operadores lógicos, después cambiar el
identificador de las variables por su valor de verdad y empezar a
resolver la expresión como lo indique su árbol sintáctico.

Entonces lo primero es establecer la jerarquía de los operadores:


Una vez teniendo su árbol sintáctico se puede empezar a evaluar la
expresión. Se va a empezar a resolver con el orden de jerarquía de los
operadores.

Entonces:
Ahora la expresión ya se ha simplificado y hay que seguir resolviéndola según el
orden de jerarquía de sus operadores y hasta encontrar el valor de verdad de toda
la expresión ( el valor de verdad de una proposición compuesta es 1 o 0), según el
árbol ahora hay que resolver el condicional que se forma del valor de verdad que
nos dio la conjunción como primer valor y del valor de verdad de la proposición
simple c. Según la tabla de verdad del condicional la expresión 0 0 da como
resultado un “ 1 ” , con esto se termina la evaluación de la expresión y llega a su
valor de verdad con lo que se concluye que: 0 0=1

“La proposición compuesta (a ^ b) c tiene un valor de verdad igual a 1, o es


decir que esta proposición es verdadera, y por lo tanto es un argumento valido”.

Otro ejemplo seria la siguiente proposición compuesta:


(( 1 ↔ 0 ) ^( 0 0 ))
(( 0 ) ^ ( 0 ))
(0^0)
0
Con lo que podemos decir que “la proposición compuesta ((a ↔ c ) ^
(b c)) tiene un valor de verdad de 0, o esta proposición compuesta
es falsa”. Si deseamos hacerlo en general, debemos analizar todas las
posibilidades es decir todos los posibles casos, esto se puede hacer
construyendo una tabla de verdad donde se describen los valores de
verdad de una proposición compuesta y es la que enumera todos los
posibles valores de verdad de las proposiciones simples que forman a
la proposición compuesta. Las tablas de verdad pueden estar
compuestas por varias proposiciones simples por lo que para saber
cuantos renglones va a tener nuestra tabla de verdad podemos aplicar
una sencilla formula que es 2n donde “n” es él numero de
proposiciones simples que están presentes en la proposición
compuesta, por ejemplo:

La proposición compuesta ((a ↔ c) ^ (b c)) esta formada por 3


proposiciones simples que son a, b y c, por lo tanto aplicando la
formula de 2n donde n=3, tenemos que 23=8, lo que significa que la
tabla de verdad para esta proposición compuesta deberá tener 8
renglones. A continuación tenemos un algoritmo para construir una
tabla de verdad de una fórmula en lógica de proposiciones o
proposiciones compuestas, el algoritmo se realiza con los siguientes
pasos:

1. Escribir la fórmula con un número arriba de cada operador que


indique su jerarquía. Se escriben los enteros positivos en orden, donde
el número 1 corresponde al operador de mayor jerarquía. Cuando dos
operadores tengan la misma jerarquía, se le asigna el número menor
al de la izquierda.
2. Construir el árbol sintáctico empezando con la fórmula en la raíz y
utilizando en cada caso el operador de menor jerarquía. O sea, del
número mayor al menor.
3. Numerar las ramas del árbol en forma secuencial empezando por
las hojas hacia la raíz es decir de abajo hacia arriba, con la única
condición de que una rama se puede numerar hasta que estén
numerados los nodos con los que se relacionan. Para empezar con la
numeración de las hojas o proposiciones simples se puede hacer en
orden alfabético, así todos obtienen los renglones de la tabla en el
mismo orden para poder comparar resultados.
4. Escribir en los encabezados de la tabla de verdad las fórmulas
siguiendo la numeración que se le dio a las ramas en el árbol
sintáctico.
5. Asignarle a las proposiciones simples u hojas del árbol todos los
posibles valores de verdad de acuerdo al orden establecido. Por
supuesto que el orden es arbitrario, pero como el número de
permutaciones es n!, conviene establecer un orden para poder
comparar resultados fácilmente. Para nuestro caso los valores que se
pondrán en la tabla de verdad serán 1‟s y 0‟s pero hay muchos autores
que también manejan los valores como V y F (verdadero y falso).

Para asignarles los valores de verdad a las proposiciones simples


tomamos primero la proposición simple que este mas a la derecha y
empezamos a asignarles valores de 0‟s y 1‟s intercaladamente y así
llenamos toda la columna después nos vamos con la columna que
esta a la izquierda y ahora doblamos el número de 0‟s y 1‟s que se
fueron intercalando en la columna anterior. Entonces en la primera
columna de la derecha se anotan alternativamente un cero y luego un
uno, en el caso de la segunda serian dos ceros y dos unos y así hasta
llenar toda la columna y se repiten estos pasos hasta llenar todas las
columnas de las proposiciones simples.

6. Asignar valor de verdad a cada una de las columnas restantes de


acuerdo al operador indicado en el árbol sintáctico utilizando la tabla
de verdad correspondiente.
NOTA: Conviene aprenderse de memoria las tablas de verdad de los
operadores, al principio pueden tener un resumen con todas las tablas
mientras se memorizan.
7. La última columna, correspondiente a la fórmula original, es la que
indica los valores de verdad posibles de la proposición compuesta
para cada posible caso.
Ejemplo:
Realizar la tabla de verdad para la proposición compuesta del ejemplo
(a^b) c, Si una década tiene 10 años y 1+1 =4 entonces todos los
africanos son negros, para crear la tabla de verdad seguiremos el
algoritmo mencionado anteriormente.
1.7 TAUTOLOGIAS Y CONTRADICCIONES

Definición: Una tautología es una expresión lógica que es verdadera para todos los
posibles valores de verdad de sus componentes atómicos, es P=P(p1,p2,p3,...,pn)
una proposición compuesta, la proposición P es una tautología si es verdadera para
todos los valores de verdad que se le asigne a p1,p2,p3,....,pn.

La proposición tautológica o tautología es siempre verdadera por su forma lógica, es


decir, por la forma en que se relacionan sus proposiciones simples. Ejemplo sea la
proposición compuesta:
CONTRADICCIÓN
Definición: Una contradicción es una expresión lógica que es falsa para todos
los posibles valores de verdad de sus componentes atómicos, es
P=P(p1,p2,p3,...,pn) una proposición compuesta, la proposición P es una
contradicción o absurdo si P es falsa para todos los valores de verdad que se le
asigne a p1,p2,p3,....,pn.
Un ejemplo de una contradicción se muestra en la siguiente tabla de verdad donde
los resultados de la proposición compuesta P son todos falsos.
Q:(p ~p)
Sea la tabla de verdad de la proposición compuesta:

Tenemos que la última columna o columna del resultado final tiene


únicamente valores de “0” y se comprueba que es una contradicción o
absurdo.

1.7.1 EQUIVALENCIA LÓGICA


Las proposiciones P = P(p1,p2,....,pn) y Q = Q(q1,q2,...,qn) son
lógicamente equivalentes, si para las distintas combinaciones de los
valores de verdad el resultado es igual en todos sus casos en las
tablas de verdad, y se representa como: P Q

Junto con las tautologías un concepto muy utilizado es el de


equivalencia. La ley de Morgan es un claro ejemplo de equivalencia
como se muestra en la siguiente tabla de verdad. Las dos fórmulas
siguientes son equivalentes:
Como se nota en la columna de resultado de las tablas de verdad de P y
Q son iguales con lo cual podemos concluir que P es lógicamente
equivalente a Q.

Las equivalencias se relacionan con las tautologías de la siguiente


forma:
Teorema: Si dos fórmulas lógicas son equivalentes entonces la fórmula
que se obtiene al operarlas con el bicondiconal es una tautología.

Utilizando el ejemplo anterior podemos probar el teorema uniendo las


dos proposiciones P y Q, con el bicondicional y la columna de resultado
debe ser una tautología.

La propiedad inversa también se cumple pues si una bicondicional es


una tautología, las fórmulas que la componen son equivalentes. El
teorema y su inverso se comprueban directamente de la tabla de
verdad de la bicondicional.

La contraposición, transportación o contrarreciproca de una


proposición p q es ~q ~p, es decir esta cambia los papeles de p y
q pero además niega el valor de cada uno de ellos. La reciproca de
una proposición condicional simplemente cambia los papeles de p y q
sin afectar su valor. Una proposición condicional de p q es
lógicamente equivalente a su contrarreciproca ~q ~p.
1.7.2 DEDUCCIÓN PREPOSICIONAL

Con los conceptos de equivalencia lógica, tautología y contradicción,


se presenta a continuación una lista de propiedades del álgebra de
proposiciones que cumplen varias leyes o identidades donde para
cualesquiera proposiciones primitivas p, q, r, cualquier tautología V y
una contradicción F.
LEYES DEL ALBEGRA DE PROPOSICIONES

Leyes de idempotencia. 12. p V p


1. p p p p q ~p ~q ~q ~p
2. p p p 00111
01101
Leyes de asociatividad 10010
3. (p q) r p (q r) 11001
4. (p q) p p (q p)
Leyes de conmutividad Leyes de complementariedad
5. p q q p 13. p p V
6. p q q p 14. p p F
Leyes de distributividad 15. p p
7. p (q r) (p q) (p r) 16. V F
8. p (q r) (p q) (p r) 17. F V
Leyes del elemento neutro Ley Morgan
9. p F p 18. ( p q ) p q
10. p V v 19. ( q r ) p r
11. p F f
Con estas leyes podemos probar si dos formulas son equivalentemente lógicas
por ejemplo, demuestre la siguiente equivalencia utilizando las leyes mencionadas
anteriormente

(p q) p p q
1. (p q) p (5) Conmutividad
2. p (p q) (7) Distributividad
3. ( p p) ( p q) (14) Complementariedad
4. F ( p q) (9)Elemento neutro.
5. ( p q)

Acabamos de comprobar que esta equivalencia es verdadera utilizando las leyes,


otro ejemplo es demostrar la siguiente equivalencia:

( p q) ( p q) p
1. ( p q) ( p q) Ley de Morgan
2. ( p q) ( p q) Distributividad
3. p ( q q) Complementariedad
4. p V Elemento neutro
5. p

1.8 REGLAS DE INFERENCIA

DEFINICIÓN: La inferencia es deducir, y deducir es obtener conclusiones a partir


de unas premisas. El cálculo inferencial tiene como finalidad facilitar el análisis de
argumentos mediante el lenguaje simbólico y las “Reglas de la Inferencia”.

La inferencia es la forma en la que obtenemos conclusiones en base a datos y


declaraciones establecidas. Un argumento, por ejemplo es una inferencia, donde
las premisas son los datos o expresiones conocidas y de ellas se desprende una
conclusión.

Una inferencia puede ser:


Inductiva.
Deductiva.
Transductiva
Abductiva.

A continuación se expone una definición de cada uno de los tipos de inferencia.


Inductiva

En la inferencia inductiva se dice que vamos de lo particular a lo general, así por


ejemplo si los primeros 5 días del mes de agosto llueve, podemos concluir que
todo el mes va a llover. Esta conclusión no necesariamente es válida porque
puede ser que algún día del mes de agosto no llueva. En general una inferencia
inductiva es la que se desprende de una o varias observaciones y en general no
podemos estar seguros de que será verdadero lo que concluimos.

Por ejemplo si un joven observa todos los modelos de autos que entran a una
empresa a las 8:00 a.m. y después de 10 minutos observa que no ha entrado
ningún automóvil BMW él concluye que en dicha empresa nunca entran carros
BMW, aunque si se dice esta observación al gerente de la misma, él puede decir
que no es cierto porque él tiene un BMW pero entra a la empresa a las 9 de la
mañana.
Resumiendo, la inferencia inductiva es la ley general que se obtiene de la
observación de uno o más casos y no se puede asegurar que la conclusión sea
verdadera en general.

Deductiva
La inferencia deductiva va de lo general a los particular , cuando se conoce una
ley general y se aplica a un caso particular, por ejemplo se sabe que todos los
hombres son machistas, concluimos que Juan Pérez es machista por ser hombre.

También se conoce como inferencia deductiva cuando tenemos un caso que


analiza todos los posibles resultados y de acuerdo a las premisas sólo hay una
posible situación, en este caso decimos que la situación única es la conclusión. Es
este caso estamos seguros de que si las premisas son verdaderas entonces la
conclusión también lo es.

La inferencia deductiva es la única aceptada como válida en matemáticas y


computación para hacer comprobaciones y sacar conclusiones.

Transductiva
La inferencia transductiva va de lo particular a lo particular o de lo general a lo
general, con el mismo ejemplo de que los primero 5 días de agosto llueve,
podemos concluir que el día 23 de agosto también va a llover, este ejemplo seria
de lo particular a lo particular, un ejemplo de lo general a lo general será que por
ejemplo un alumno que estudia en el ITSCH observa que todos los maestros
preparaban bien sus clases, concluyó que para el siguiente semestre todos los
maestros van a preparar bien sus clases. Este es un caso donde como en el caso
inductivo, no podemos estar seguros de que la conclusión es verdadera.

Abductiva
Es parecida a la deductiva, donde también se utiliza la estrategia de analizar todas
las posibilidades, pero en este caso hay varios casos que se pueden presentar,
como por ejemplo si se sabe que siempre que llueve hay nubes y se sabe que hay
nubes se puede concluir que llueve, pero no se tiene la certeza, al igual que el
caso inductivo y transductivo no es una forma válida de obtener conclusiones en
matemáticas o en lógica y es necesario conocer más información para poder
verificar la validez.
Los argumentos basados en tautologías representan métodos de razonamiento
universalmente correctos. Su validez depende solamente de la forma de las
proposiciones que intervienen y no de los valores de verdad de las variables que
contienen. A esos argumentos se les llaman reglas de inferencia. Las reglas de
inferencia permiten relacionar dos o más tautologías o hipótesis en una
demostración.
Dadas las condiciones ¿qué podemos concluir?
Si llueve, entonces hay nubes.
Hay nubes.
Las proposiciones que intervienen en este enunciado son:
p: llueve
q: hay nubes

Este enunciado se puede disponer como expresión lógica:


Podemos suponer que si llueve, pero no se sabe ni se puede comprobar que esto
se cumplirá, porque puede haber nubes y que no llueva. Por lo que no podemos
concluir validamente nada, si existe una relación causa efecto, pero se debe de
interpretar al revés, si llueve es porque hay nubes. Otro ejemplo seria:

Si haces la tarea, entonces te llevo al cine.


Te lleve al cine.

Podemos suponer que si hiciste la tarea, en este caso se asegura que la


conclusión de estas 2 condiciones no necesariamente es cierta. Para el ejemplo,
las proposiciones que intervienen son:
p: hacer la tarea
q: te llevo al cine

Este enunciado se puede disponer como expresion logica:


Observamos que en ambos casos es la misma estructura del argumento, por lo
que en los dos casos se puede sacar conclusión válida o en ninguno. Pero no es
posible que en uno sí y en el otro no.

Como la inferencia deductiva es la única aceptada en matemáticas y en


computación sobre ella es la que vamos a presentar las principales reglas de
inferencia. Pero antes vamos a recordar la forma general de un argumento que
queremos demostrar que es valido. Consideremos entonces la implicación: (p1
p2 .... pn) q

En donde n, es un entero positivo, las proposiciones p1 p2 .... pn se denominan


premisas del argumento y la proposición q es la conclusión del argumento. El
argumento anterior es valido si cada vez que las premisas p1 p2 .... pn sean
verdaderas, entonces la conclusión q también lo es. Y podemos concluir que para
establecer la validez de un argumento dado es demostrar que la proposición (p1
p2 .... pn) q es una tautología.
El siguiente ejemplo ilustra un método para establecer la validez de un argumento.
Sean p, q, r las proposiciones simples dadas como:
p: Rogelio estudia.
q: Rogelio juega tenis.
r: Rogelio exenta Matemáticas para computadoras.

Ahora bien sean p1, p2, p3 las premisas:


p1: Si Rogelio estudia, entonces exenta Matemáticas para computadoras.
p2: Si Rogelio no juega tenis, entonces estudiara.
p3: Rogelio no exento Matemáticas para computadoras.
Queremos determinar si el argumento: (p1 p2 p3) q es valido. Para lograrlo
vamos a escribir las premisas como:
p1: p r
p2: q p
p3: r
Y al realizar la tabla de verdad de esta implicación: [(p r) ( q p) ( r)] q

Comprobamos que es esta implicación si da como resultado una tautología con lo


que podemos concluir que este argumento es valido.

Aunque esta forma es clara en cuanto mas premisas tenga el argumento mas
compleja seria por lo que ahora vamos a utilizar una técnica llamada reglas de
inferencia, cada regla de inferencia tiene su origen en una implicación lógica, y
dentro del estudio de la lógica surgen muchas reglas de inferencia, pero
centraremos nuestro estudio hacia las reglas que nos permiten justificar los
argumentos. Las reglas de inferencia usan dos tipos de elementos: los datos
(hechos o evidencia) y el conocimiento (el conjunto de reglas almacenadas en la
base de conocimiento), para obtener nuevas conclusiones o hechos. Las
conclusiones pueden clasificarse en dos tipos: simples o compuestas. Las
conclusiones simples son las que resultan de una regla. Las conclusiones
compuestas son las que resultan de más de MPP Modus ponendo ponens .
En una proposición condicional, siempre que se afirme (Poniendo) el
antecedente, podemos afirmar (Ponens) el consecuente, también se
conoce como la regla de separación. En forma simbólica podemos
expresar esta regla mediante la siguiente implicación lógica:
[ p (p q)] q

Si realizamos la tabla de verdad nos daremos cuenta que la cuarta fila


es la única donde las premisas y la conclusión son verdaderas:

Una regla. Para obtener conclusiones, los expertos utilizan diferentes


tipos de reglas y estrategias de inferencia y control.
TIPOS DE REGLAS DE INFERENCIA

Escribimos la regla en forma de tabla:


p
p q
______
q
El siguiente argumento valido ilustra la aplicación de esta regla:
1) Ana gana el premio de la lotería.
2) Si Ana gana el premio de la lotería, entonces Juan perderá el juego.
3) Por lo tanto, Juan perderá el juego.

SH Silogismo. Siempre que se den dos condicionales, siendo el consecuente del


primero el antecedente del segundo, se puede concluir con un condicional cuyo
antecedente del primer condicional y cuyo consecuente sea el consecuente del
segundo condicional. En forma simbólica podemos expresar esta regla mediante
la siguiente implicación lógica:
[ (pq) (q r)]  (q r)
En forma de tabla lo escribimos:
p q
q r
p r

SD Silogismo disyuntivo. Esta regla se usa cuando hay que analizar exactamente
dos posibilidades y podemos descartar una de ellas si no es verdadera, entonces
la otra posibilidad es la que tiene que ser verdadera. Esta regla proviene de la
siguiente implicación logica:

[ (p q) p] q
En forma de tabla lo escribimos:
(p q)
p
q
El siguiente argumento valido ilustra la aplicación de esta regla:
1) La cartera de Esmeralda esta en su bolsa negra o en la mesa.
2) La cartera de Esmeralda no esta en su bolsa negra.
3) Por lo tanto, la cartera de Esmeralda esta en la mesa

MTT Modus tollendo tollens. En una proposición condicional, siempre que se


niegue (quitando) el consecuente, podemos negar el antecedente. También es
conocido como el método de la negación. En forma simbólica podemos expresar
esta regla mediante la siguiente implicación lógica:
[ (pq) q]  p
En forma de tabla lo escribimos:
p q
q
p

RC Regla de conjunción que sugiere que si p y q son proposiciones simples


verdaderas, entonces p q es una proposición verdadera. En forma de tabla lo
escribimos:
p
q
p q
RC Regla de contradicción que sugiere si p es una proposición simple y
pf es verdadera, entonces p debe de ser falsa, puesto que f es falsa, así
que tenemos que p es verdadera(f es una contradicción o absurdo). Esta regla en
forma de tabla queda:
pf
p
1.8.1 DEMOSTRACIÓN CONDICIONAL Y DIRECTA

Ya hemos analizado las reglas de inferencia mas importantes, ahora con estas
reglas de inferencia y las leyes del álgebra preposicional podemos determinar si
un argumento es valido o no, como se muestra en el siguiente ejemplo.

Demuestra la validez del siguiente argumento:


1) Rita esta haciendo un flan.
2) Si Rita esta haciendo un flan, entonces no esta estudiando Matemáticas.
3) Si Rita no esta estudiando Matemáticas, entonces su hermano no la llevara a la
disco.
4) Por lo tanto el hermano de Rita no la llevara a la disco.
Si nos fijamos en la forma de las proposiciones el argumento queda expresado
como tabla como se muestra a continuación:
p
p q
q  r
r
Establecemos la validez del argumento como sigue:

Existen caminos distintos para comprobar que este argumento es valido, pero esta
forma es la más simple. En la tabla anterior podemos ver que este argumento es
valido ya que se cumple la conclusión. Otro ejemplo mas complejo es en cual ya
tenemos que utilizar de manera conjunta las reglas de inferencia y las identidades
del álgebra de proposiciones. Demuestra si el siguiente argumento es valido:

“Si estoy muy cansada entonces, hoy no voy a trabajar. Si hoy no voy a trabajar
entonces, estoy viendo la TV. Mi mama va a cocinar chuletas de cerdo en salsa
verde o no estoy viendo la TV. Mi mama no va a cocinar chuletas de cerdo en
salsa verde o estoy enojada con mi hermana. No estoy enojada con mi hermana.
Por lo tanto no estoy cansada”
Primero identificamos las proposiciones simples que intervienen en el argumento
que son:
p: estoy muy cansada.
r: Hoy no voy a trabajar
s: Estoy viendo la TV
t: Mi mama va a cocinar chuletas de cerdo en salsa verde
u: Estoy enojada con mi hermana

Por lo que podemos expresar el argumento como tabla de la siguiente forma:


p r
r s
t s
t u
u_______
p
Ahora utilizando las reglas de inferencia vamos a comprobar si este argumento es
valido o no.
Comprobar que r se infiere del siguiente razonamiento:
p
~p q
~r ~q
Una forma de representar esto es:
p, ~p q, ~r ~q |= r

Una demostración como la anterior se llama prueba directa. Para


poder hacer una comprobación como la anterior es conveniente tener
algunas identidades y reglas de inferencia válidas.

Prácticamente todos los teoremas matemáticos están compuestos por


implicaciones de este tipo. Demostrar el teorema, es demostrar que
la condicional es una tautología. Note que no estamos tratando de
demostrar que la conclusión es verdadera, sino solamente que la
conclusión es verdadera si todas las premisas que son verdaderas. A
continuación se prueba un enunciado en donde se puede apreciar el
uso tanto de las tautologías como de las reglas de inferencia.

Ejemplo. Sean las proposiciones:


p: Lavo los trastes.
q: Hago la comida.
r: Compraré un vestido nuevo.
s: Podré ir a la disco.
Analizar el siguiente argumento:
“Si lavo los trastes o hago la comida, entonces comprare un vestido
nuevo. Si compro un vestido nuevo entonces podré ir al a disco. Por lo
tanto, si no puedo ir a la disco, entonces no hago la comida”

El enunciado anterior se puede representar como:


(p q)r
r s
_______
~s ~q
Equivale también a probar el siguiente teorema:
(((p v q) r) ^ (r v s)) (~s ~q)
Como se trata de probar un teorema de la forma general:
p1, p2, … ,pn |= q

Se aplica el procedimiento general para demostración de enunciados


válidos.
A continuación se demuestra el teorema respaldando cada uno de sus
pasos en tautologías o reglas de inferencia ya conocidas.
1.9 INDUCCION MATEMÁTICA
G. Peano (1858–1932) propuso cinco propiedades fundamentales que
caracterizan a los números naturales, Axiomas de Peano. Una de ellas conocida
como el Principio de Inducción Matemática es actualmente una herramienta de
uso práctico y teórico principalmente para matemáticos y personas que trabajan
en Ciencias Computacionales.

Algunas veces se desea no necesariamente encontrar la formula del nesimo


termino como en las sucesiones, sino que se quiere tener una ecuación que
permita encontrar el valor del n términos de una sumatorias, donde los elementos
también guardan una cierta relación, esto en computación se conoce como
sumador, el cual es un ciclo que acumula una cierta cantidad en cada paso.
También la inducción matemática se utiliza cuando se desea probar la validez de
una igualdad.

Sucesiones
Un concepto básico en este tema es la sucesión que se define como una lista
ordenada de números, que puede ser finita o infinita, por ejemplo la siguiente
sucesión: 1, 4, 9, 16, 25,....., es una sucesión infinita de todos los números enteros
elevados al cuadrado, la idea principal de una sucesión es orden, algunos autores
clasifican a las sucesiones de acuerdo a su comportamiento en:

Divergentes.
Convergentes.
Acotadas.
Monótonas crecientes.
Monótonas decrecientes.

Las sucesiones se pueden expresar en su forma recursiva utilizando el enésimo


termino en función del anterior, a esta formula se le llama forma recursiva o
recurrencia. Cada numero en una sucesión ocupa un lugar, con el cual lo
podemos identificar y nos servira para encontrar la formula que genera la
sucesión. Por ejemplo de la sucesión S={1, 4, 7, 10,...}, encontrar una expresión
recursiva para obtener los elementos de esta sucesión.

En este ejemplo es simple ver que existe una diferencia igual entre cada uno de
los elementos de la sucesión, la diferencia es de 3, entonces podemos definir que
la diferencia entre el elemento x y el elemento inmediato anterior a x es 3 y la
definimos como:
X=3
x – anterior_de_x = 3 y si despejamos
x = 3 + anterior_de_x
Por lo tanto la formula para generar elementos en esta sucesión
comenzando la serie en 1, la generaria la siguiente formula:

X = Numero_anterior_de_X + 3

Principio de la inducción matemática.

El principio de inducción matemática establece que P(n) es verdadera


para todas las n ≥ k si se cumple que:
a).- P(k) es verdadera cuando k=1.
b).- P(k) es verdadera cuando k= n + 1.

Al primer paso se le llama “paso básico” y al segundo se le conoce


como “paso inductivo”. Otra forma de enunciar el Principio de
Inducción Matemática es:
Si F(n) es una proposición abierta que involucra enteros y se tiene que
para el caso básico F(1) es verdadera; o sea, sé que cumple para n=1,
en el paso inductivo F(K) y F(k+1); Si se cumple para n = k entonces
también se cumple para n=k+1. Concluimos que la proposición es
verdadera para todos los enteros positivos.

El Principio de Inducción Matemática se utiliza para demostrar


propiedades, formulas, validarlas y probar que son verdaderas,
usualmente en el conjunto de los números enteros positivos. Muchas
propiedades que incluyen la definición de factorial se pueden probar
por Inducción Matemática, como el Teorema del Binomio de Newton,
el Triángulo de Pascal y algunas propiedades de combinatoria que
involucran combinaciones y permutaciones. Otra forma de utilizarla es
para proporcionar definiciones y formalizar conceptos.

Para probar el paso básico se requiere sustituir la unidad en el n-


esimo elemento, y el resultado debe ser igual al primer termino de la
sumatoria, y en caso de que se cumpla se procede a probar si la
igualdad es valida para n + 1, o bien el paso inductivo el cual consiste
en sustituir n + 1 en lugar de n en el n-esimo termino de la sumatoria,
se agrega dicho termino en los 2 lados de la igualdad para que no se
altere, se realizan algunas operaciones algebraicas hasta darle una
forma tal que sea fácil de sustituir k=n+1, si el resultado que ahora
esta en función de K es semejante a la igualdad en función de n, se
dice que se cumple el paso inductivo y que por lo tanto la igualdad es
valida.

Demuestre por inducción matemática que: F(n):

Paso básico: Sé deberá primeramente demostrar que P(1) es


verdadera:
Si n=1;
Tenemos:

Se comprueba que cumple el paso básico ya que el resultado es el


primer elemento de la sucesión.

Paso inductivo: Ahora se deberá demostrar que la función es


verdadera para k=n+1.

Suponemos que cumple para n = k;


Sumamos (k+1) de los dos lados de la igualdad:
1+2+3+...+n+(n+1) = n (n +1) / 2 + (n+1)
= (n (n +1) + 2(n +1)) / 2
= (n2 + n+ 2n + 2 )/ 2
= (n2 + 3n + 2) / 2
= ((n +1)(n+2)) / 2
= (n + 1)(n +1 + 1) / 2

Como k = n+1
= k (k +1) / 2
Por lo tanto, podemos concluir que la formula (1) es valida para todos
los enteros positivos

Para realizar el Paso de Inducción se debe de partir del caso k=n+1 y


llegar mediante pasos válidos al caso k=n+1. En el ejemplo anterior
para llegar a n=k+1 partiendo de n=k al lado izquierdo sólo le faltaba
n+1 por lo que la estrategia fue sumar n+1 en ambos lados de la
igualdad.

Demuestre por inducción matemática que para toda n ≥ 1.

p(n): 2+5+8+ . . . . . . +(3n -1)= n(3n+1)

Paso básico: Sé deberá primeramente demostrar que P(1) es


verdadera: Si n = 1;
Tenemos:
((3)(1) – 1) = 1(3(1)+1)/2
2 = 1(3 + 1)/2
2=2

Se puede notar que se cumple el paso básico ya que el resultado es el


primer elemento de la sucesión.
Paso inductivo: Ahora se deberá demostrar que la función es verdadera para
k=n+1.

Con lo cual se cumple también el paso inductivo y se puede concluir


que la igualdad inicial se cumple. La inducción matemática nos ayuda
a simplificar programas, principalmente aquellos bucles o repeticiones
en los que se debe sumar una cantidad que guarda una relación con el
resultado anterior, que es una practica muy común que llevan a cabo
los programadores, y de una forma mas general la inducción
matemática trata de encontrar la ecuación para la cual se cumple la
igualdad, esto se conoce como encontrar la ecuación del n-esimo
termino, o la formula recursiva.

Esta estrategia la podemos utilizar para el siguiente algoritmo:

1. Para demostrar una igualdad F(n) algebraica válida que involucra


enteros donde la parte izquierda es una suma cuyo término n-ésimo es
una fórmula de n.
2. [Fórmula] Escribir la fórmula en función de n, sea F(n).
3. [Caso Base] Probar la fórmula para n=1, F(1).
4. [Meta] Escribir la fórmula para n=k+1, F(k+1).
5. [Paso de Inducción]
6. [Hipótesis de Inducción] Escribir la fórmula para n=k.
7. [Llegar a la Meta] Sumar a ambos lados el último término de la
parte izquierda de la [Meta], o sea la igualdad para n=k+1.

Aplicar propiedades algebraicas al lado derecho hasta llegar al lado


derecho de la [Meta], o sea la igualdad para n=k+1, y cabe aclarar que
la única dificultad se puede presentar en el manejo algebraico de las
expresiones en la segunda parte del Paso de Inducción y que depende
muchas veces de la complejidad de la expresión y de la habilidad
algebraica de quien realiza la prueba.
UNIDAD 2 RELACIONES.

2.1 Introducción.
2.2 Propiedades de las relaciones.
2.2.1 Sobre un conjunto.
2.2.2 Reflexivas.
2.2.3 Simétricas y transitivas.
2.3 Cerradura.
2.4 Relaciones de equivalencia.
2.5 Ordenes parciales.
2.6 Diagramas de Hasse.

ACTIVIDADES DE APRENDIZAJE
• Buscar y seleccionar información sobre relaciones. (RESUMEN TERMINOS DE
REPASO)
• Realizar una practica para que comprenda el uso de la relaciones.
• Analizar, por equipo, las diferentes relaciones.

AUTO EVALUACION

1.- Describir los siguientes conjuntos por extensión:


A = { Consonantes de la palabra COMPUTACION }
B = { Dígitos del sistema numérico decimal }
C = { Nombre de países americanos que empiecen con la letra “C “}
D= { Nombres de los planetas del sistema Solar }

2.- Describir los siguientes conjuntos por comprensión:


X = { a, e, i, o, u }
Y = { 2, 4, 6, 8, 10}
M = { 3, 6, 9, 12, 15, …….}
N = { e, s, m, e, r, a, l, d, a }

3.- Sea el conjunto de los números naturales. Determina los


elementos que forman cada uno de los siguientes conjuntos:
xx x 50
A x x 2n 1 n x 17
B x x 2n n x 38
C x x 5n n
And =y

4.- Dados los siguientes conjuntos A={2,4,6,8}, B={1,3,6,9},


C={1,3,4,5,7} y D= {2,3,4,6,8}, y un universo de U={1,2,3,4,5,6,7,8,9},
realizar las siguientes operaciones y obtener los elementos de cada
uno de los conjuntos siguientes:
A C B
* B A C
B' A C
(D B) – (A C)

5.- Escribe las siguientes relaciones como un conjunto de pares


ordenados:

6.- Dibuja el diagrama de Hasse para el conjunto A = {1, 2, 3, 4, 5} y la


relación de orden menor o igual.

7.- Escribe 3 ejemplos que representen a cada una de las


clasificaciones de acuerdo al tipo de asociación de las relaciones, que
son:

Muchos a uno
Uno a muchos
Muchos a Muchos
Uno a uno
8.- De las siguientes relaciones preséntalas como un conjunto de
pares ordenados, dibuja su dígrafo y determina que tipo de relación
son:

Con un conjunto X= {1, 2, 3, 4 }


R1= { (1,1), (1,2), (1,3), (1,4), (2,1), (2,2), (2,3), (3,1),(3,2), (4,1) }
R2= { (1,3), (1,4), (2,1), (2,4), (3,1), (4,1), (4,2) }
R3= { (1,1), (1,2), (2,2), (2,4), (3,3), (4,1), (4,4) }
R4= { (1,1), (1,2), (1,3), (1, 4), (2,1), (2,2), (2,3), (2, 4), (3,1),(3,2),(3, 3),
(3,4),(4,1), (4, 2), (4, 3), (4, 4)}
R5= { (1,2), (1,3), (1,4), (2,1) (2,3), (3,1),(3,2), (4,1) }
R6= { (1,1), (2,1), (2,2), (2,3), (3,1),(3,2), (4,1), (4,2), (4,3), (4,4), }

9.- Encuentra la cerradura reflexiva de las siguientes relaciones:


R1= {(a, a), (a, b), (b, a), (b, b), (b, c), (b, e), (c, e), (b, d), (d, a), (e, e)}

10.- Encuentre la cerradura simétrica de las siguientes relaciones:


R1= {(a, a), (a, b), (b, a), (b, b), (b, c), (b, e), (c, e), (b, d), (d, a)}
Con X = { a, b, c, d, e}
R1= { (1,2), (1,3), (1,4), (2,1), (2,2), (2,3), (3,1),(3,2), (4,1) }
Con X = {1, 2, 3, 4}
CONTENIDO

2.1 INTRODUCCIÓN.

Las relaciones son conjuntos, por lo tanto se puede usar la


representación de conjuntos para representar relaciones.

Una relación n-aria es un conjunto de n-tuplas.


Las relaciones binarias con conjuntos de pares.

Sean A y B dos conjuntos. Una relación de


A en B es cualquier conjuntos de pares
(x,y), x ∈ A e y ∈ B. Si (x,y) ∈ R, diremos que x es R-relacionado con
y.

Para expresar que R es una relación de A en B, escribimos R: A↔ B


Por ejemplo:
El predicado casado(x, y) es verdadero cuando x e y están casados; por lo
tanto, se puede definir un conjunto tal que:
M = { (x, y) | casado(x, y) }

Como M es un conjunto de pares, M es una relación.

Representación de Relaciones

Todo predicado define una relación y recíprocamente toda


relación R define un predicado.

Si (x,y) es un par, puede definirse un predicado PR para cada


relación R que es verdadera si (x,y) ∈ R y falsa en caso contrario.
Esto se expresa como xRy y se define

xRy ≡ (x,y) ∈ R

Representación de Relaciones en forma tabular


Las relaciones se pueden representar en forma de tablas
Representación de Relaciones en forma matricial
Las tablas están estrechamente relacionadas con las matrices.
Por ejemplo.

Representación gráfica de Relaciones

Para representar una relación de A en B, se dibuja un círculo


para cada elemento de A a la izquierda y un círculo para cada
elemento de B a la derecha.
Si el par x ∈ A e y ∈ B está en la relación, los círculos
correspondientes (nodos) se conectan entre sí mediante
líneas rectas (arcos).
Ejemplo. Considere la relación ≤ aplicada al conjunto A = {1,
2, 3, 4}

• Representación con tuplas


{(1,1),(1,2),(1,3),(1,4),(2,2),(2,3),(2,4),(3,3),(3,4),(4,4)}

• Representación matricial

• Representación gráfica
2.2 PROPIEDADES DE LAS RELACIONES.

• Reflexividad
• Simetría
• Transitividad

Relaciones sobre un conjunto


Suponga que tiene el conjunto A = { 1, 2 3, 4} y la relación <
entre ellos. Esto se puede representar gráficamente como:
2.2.2 REFLEXIVAS.

Una relación R sobre X es reflexiva si, para cada x ∈ X, el par


(x,x) esta en la relación.

R es reflexiva ≡ ∀ x (xRx)
Una relación R sobre X es no reflexiva si, para cada x ∈ X, el
par (x,x) ∉ R. Es decir, no existe x ∈ X tal que xRx.
• Reflexiva: xRx es verdadera para todo x
• No reflexiva: xRx es falsa para todo x (ninguna x cumple)
• Si xRx es cierta para algunas x y falsa para otras, entonces R
no es ni reflexiva ni no reflexiva
• En una relación reflexiva, en su grafo todos los nodos tienen
arco a si mismos. Y si ningún nodo tiene arco a sí mismo es
no reflexiva.

2.2.3 SIMÉTRICAS Y TRANSITIVAS.

Relaciones Simétricas

Una relación R sobre un conjunto X es simétrica si, para todo


x e y perteneciente a X, xRy implica yRx. Por consiguiente,
R es simétrica ≡ ∀ x ∀ y (xRy ⇒ yRx)

La relación = es simétrica, mientras que < no lo es.


Ejemplo. La relación hermano es simétrica porque si x es
hermano de y, entonces y es hermano de x.
• En el grafo de una relación simétrica, todos los arcos son
bidireccionales
Relaciones Antisimétricas
Una relación R sobre un conjunto X es antisimétrica si, para
todo y ≠ x, xRy excluye a yRx. En otras palabras, si se
alcanzan xRy e yRx, entonces x = y. Por lo tanto:
R es antisimétrica ≡ ∀ x ∀ y (xRy & yRx ⇒ y=x)

Ejemplo. La relación ”madre de” es


antisimétrica porque si x es madre de y, excluye a y es madre
de x.
• En el grafo de una relación antisimétrica, ningún arco tiene
un compañero en dirección opuesta

Relaciones Transitivas
Una relación R sobre un conjunto X es transitiva si, para todo
x, y, z en X, siempre que xRy e yRz, entonces xRz. Esto es:
R es transitiva ≡∀ x ∀ y∀ z (xRy & yRz ⇒ xRz)

• Una relación es transitiva si y sólo si todos los pares de


objetos que pueden ser alcanzados a través de un
intermediario pueden también ser alcanzados directamente.
Ejemplo. La relación < es transitiva
2.3 CERRADURA.

El cierre reflexivo R(r) de una relación R es la relación reflexiva


más pequeña que contiene a R como subconjunto.
R(r) = R ⋃ IA
donde:
IA : Relación identidad
R : Cualquier relación (no necesariamente reflexiva)

La relación identidad es aquella que contiene todos los (x,x)


con x ∈ B
En pocas palabras, se añaden tan pocos elementos (tuplas)
como sea posible para convertir R en reflexiva.

El cierre simétrico R(s) de una relación R es la relación


simétrica más pequeña que contiene a R como subconjunto.
R(s) = R ⋃ R~
donde:
R~: Relación inversa
R: Cualquier relación (no necesariamente simétrica)

En pocas palabras, se añaden tan pocos elementos (tuplas)


como sea posible para convertir R en simétrica.

2.4 RELACIONES DE EQUIVALENCIA.

Una relación R es una relación de equivalencia si y sólo si es


reflexiva, simétrica y transitiva.
Ejemplo:
La relación de equivalencia más importante es la relación de
igualdad.
2.5 ORDENES PARCIALES.

Una relación R:S↔ S se denomina un orden parcial débil si es


reflexiva, antisimétrica y transitiva.

R se denomina un orden parcial estricto si es no reflexiva,


antisimétrica y transitiva.

Conjunto parcialmente ordenado

Un conjunto A junto con un orden parcial


R se denomina conjunto parcialmente ordenado o un cpo. El cpo(A,
R) es el conjunto A junto con el orden parcial R.

Orden parcial fuerte


El orden parcial fuerte asociado con (A,R) se denota por R1,
donde R1=R-IA donde IA es la relación identidad.

2.6 DIAGRAMAS DE HASSE

Sea (A,R) un cpo. El diagrama de Hasse del cpo (A,R) es el grafo


de la reducción transitiva de R1. En este grafo, existe un arco
desde x a y si y sólo si x comprende directamente a y.
Ejemplo:
Diagrama de Hasse que muestra la relación subconjunto
sobre el conjunto potencia de A= {a, b, c}
UNIDAD 3 TEORÍA DE GRAFOS.

3.1 Introducción.
3.1.1 Conceptos básicos de grafos.
3.1.2 Clasificación de grafos.
3.2 Representación de estructura mediante grafos.
3.2.1 Secuencias.
3.2.2 Selección (if-then-else).
3.2.3 Mientras (while).
3.2.4 Repetir hasta que (repeat-until).
3.2.5 Selección múltiple (case).
3.3 Cálculo de caminos a partir de una representación
matricial.
3.4 Espacio de estados.
3.5 Representación mediante espacio de estados.
3.6 Estrategia y algoritmos de búsqueda.
3.6.1 Guiada por datos (forward).
3.6.2 Guiada por objetivos (backtrack).
3.6.3 En profundidad.
3.6.4 En anchura.
3.7 Árboles.
3.7.1 propiedades.
3.7.2 Árboles generadores.
3.7.3 Árboles generadores minimales
3.7.4 Recorridos.
3.7.5 Ordenamientos.
3.8 Redes.
3.8.1 Modelos.
3.8.2 Teorema de flujo máxima
3.8.3 Teorema del corte minimal
3.8.4 Pareos.
3.9 Redes de Petri.
ACTIVIDADES DE APRENDIZAJE

• Buscar y seleccionar información sobre el concepto de


grafos y sus representaciones. (RESUMEN CONCEPTUAL)
• Realizar prácticas para que comprenda el uso de los grafos.
De la sig. Figura obtener un grafo.

• Analizar, por equipo, las diferentes modelos de redes.

AUTO EVALUACION
1.- ¿Consiste en un diagrama que consta de vértices y lados?

a) Grafo

b) red

c) árbol
d) circuito

e) matriz

2.- Un grafo ______________ G consiste en un conjunto V de vértices (o


nodos) y un conjunto E de lados (o ramas) tales que cada lado e ? E está
asociado a un par no ordenado de vértices.

a) no dirigido

b) paralelo

c) simple

d) dirigido

e) cóncavo

3.- Es un lado que va de v a v

a) lazo d) camino simple

b) lado paralelo e) cuerda

c) camino

1.- De acuerdo al grafo determina cuál es el número máximo de puntos


que se pueden visitar una sola vez en el trayecto del punto 4 al punto 7.

a) 6

b) 4

c) 3

d) 7

e) 5

2.- En un torneo de Ajedres hay 25 concursantes utiliza los conceptos de


árboles para determinar cuántas competiciones simples se tiene que
realizar para obtener un ganador

a) 24
b) 59

c) 50

d) 30

e) 16

3.- Identifique las propiedades de los árboles.

a) T es un árbol, es conexo y no tiene circuitos, tiene N-1 lados

b) Contiene más de un circuito, tiene lazos

c) Es un árbol que tiene un vértice particular como raíz

d) Es un grafo con varios circuitos que pasan por sus vértices

e) Es un diagrama interconectado entre sí

RESOLVER LOS SIGUIENTES EJERCICIOS

1.- Sea v y w los vértices de un grafo. Un camino de longitud n


de v a w es:

una sucesión de lados que va de v a w, la cual tiene n lados


a)
distintos entre sí.

b) Una sucesión de puntos que van de un lado a otro.

c) Una sucesión de lados distintos entre si

Una sucesión de lados que van de v a v, la cual tiene n lados


d)
distintos entre si

e) Un camino que mide 30 puntos

2.- Para obtener la matriz ______________ se la asignan a las


filas y las columnas las marcas correspondientes a los vértices.

a) de adyacencia
b) triangular

c) de incidencia

d) aumentada

e) cuadrada

3.- Para obtener la matriz ______________ se la asignan a las


filas las marcas correspondientes a los vértices y a las columnas
las correspondientes a los lados.

a) de incidencia

b) triangular

c) de adyacencia

d) aumentada

e) cuadrada

RESOLVER LO SIGUIENTE:

1.- Identifica el concepto de peso o ponderación de un grafo.

a) es la suma de los pesos de los lados

b) es cuando un grafo cuesta o vale.

c) es la cantidad de lados que tiene el grafo

d) es la cantidad de vértices que tiene un grafo

e) es la suma de el espacio que ocupan los grafos.

2.- Identifica el concepto de estado de inicio en un diagrama de


transiciones

Es el estado donde reside el control cuando se empieza a


a)
reconocer un componente léxico.

b) Es el estado que inicia un diagrama de flujo.


Es donde se tienen declarado todas las variables antes de ejecutar
c)
un programa cualquiera.

d) En un diagrama de transiciones no existe tal estado.

e) indica un bloque de programa.

3.- Dos grafos G1 y G2 son isomorfos si:

a) Sus matrices de incidencia son iguales

b) No tienen la misma matriz de incidencia

c) tienen un número par de vértices

d) la valencia de los vértices es par

e) La valencia de los lados es impar

1.- Los árboles ________________ se utilizan con frecuencia


para especificar relaciones de jerarquía.

a) con raíz

b) libres

c) de aguacate

d) simplificado

e) monetarios

2.- Un árbol G tiene un árbol generador si y solo si G es


__________________

a) conexo

b) simple

c) tiene muchos lazos

d) tiene muchos lados

e) es colateral
3.- ando como base el árbol identifica cual es la frase
resultante de acuerdo al código de Huffman :
101011011111001110110

a) HABITA

b) HABLA

c) CASA

d) LABIO

e) HOLA

CONTESTA LO SIGUIENTE:

1.- Un grafo simple consiste en:

a) Un grafo que no tiene lazos ni lados paralelos

b) Un camino que comienza y termina en el mismo vértice.

Un conjunto de vértices y lados tales que cada lado esta asociado a


c)
un par ordenado

Un conjunto de vértices y lados tales que cada lado esta asociado a


d)
un par no ordenado

e) Un grafo que tiene lazos y lados paralelos

2.- Un grafo simple consiste en:

a) Un grafo que no tiene lazos ni lados paralelos

b) Un camino que comienza y termina en el mismo vértice.

Un conjunto de vértices y lados tales que cada lado esta asociado a


c)
un par ordenado

Un conjunto de vértices y lados tales que cada lado esta asociado a


d)
un par no ordenado
e) Un grafo que tiene lazos y lados paralelos

3.- Un circuito de _______________ en un grafo G, consiste en


un camino que comienza y termina en un mismo vértice,
pasando exactamente una vez por cada vértice.

a) Hamilton

b) Euler

c) Königsberg

d) colonias

e) Alumnos

4.- Este tipo de grafos se utilizan en el diseño de circuitos


impresos

a) planos

b) Isomorfos

c) Homeomorfos

d) Cuadrados

e) Dificiles

5.- Un grafo G es ______________ si para cada par de vértices


u y w distintos entre si, existe un camino de v a w.

a) Conexo

b) ponderado

c) simple

d) cóncavo

e) redundante

6.- Es el estado donde reside el control cuando se empieza a


reconocer un componente léxico.
a) de inicio

b) de término

c) intermedio

d) ocupado

e) libre

7.- Identifica el concepto del que es representativo la figura.

a) Diagrama de transiciones o estados

b) Grafo isomorfo o convexo

c) Grafo lateral

d) Diagrama de pasos o acciones

e) Diagrama de elementos o contenidos

8.- Identifica que elementos no se pueden representar en un


matriz de incidencia

a) todos los elementos se pueden representar

b) lazos

c) lazos y lados paralelos

d) caminos

e) grafo complejo

9.- Busca cuales son los caracteres que resultan del arreglo
011000010 utilizando el código de Huffman presentado a
continuación.

a) PEN

b) DEAL

c) PAS
d) SA

e) SAE

10.- Dada la expresión -/A*B+CDE identifica cual es su


expresión posfija

a) ABCD+*/E-

b) ABCDE+*/-

c) AB+E*C/D-

d) ABCDEF/+

e) EDBA/+-*

1.- Identifica el concepto de red petri

a) Es un grafo dirigido G = (V, E), en donde V = P U T y P ∩ T = Ø.

b) Es un grafo no dirigido G = (V, E) en donde V = no es igual en ambos casos

c) Es un pareo E que contiene el máximo numero de lados

d) Es un grafo ponderado con E números de lados

e) No existe el término

1.- Un marca M para una red petri está viva si:

Al empezar en M es posible descargar cualquier transición dada a través


a) de una sucesión adicional de descarga, no importando que sucesión de
descargas ya haya sucedido.

Al terminar en M es posible cargar cualquier transición dada a través una


b)
descarga eléctrica, no importando si la descarga es fuerte o debil.

Si en cualquier momento que la solicite acude a auxiliar a los demás


c)
componentes de la red de manera que se mantiene útil.

Si en algún momento en la red escucho que existe paso de información entre


d)
los nodos.
e) no existe tal término

1.- Identifica el concepto de descarga en una red petri

Es una transición permitida que quita una ficha a cada lugar de entrada y
a)
agrega una ficha a cada lugar de salida

Es cuando el material llega a la central y es depositado para que los demás


b)
elementos trabajen con él.

c) No existe tal término

Es una transición permitida que quita una ficha a cada lugar de salida y le
d)
agrega una ficha a cada lugar de entrada.

Es una transición de un lugar a otro de manera que se lleva de un estado a


e)
otro.
CONTENIDO

3.1 INTRODUCCIÓN.

Para nadie es novedad observar en la vida cotidiana: carreteras, líneas


telefónicas, líneas de televisión por cable, el transporte colectivo metro,
circuitos eléctricos de nuestras casas, automóviles, y tantas cosas mas;
lo que no pensamos frecuentemente es que estos forman parte de algo
que en matemáticas se denomina como grafos.

En este trabajo se tratará brevemente de explicar lo que son los grafos,


sus tipos, y algunas derivaciones de ellos, así como su representación
gráfica y en algunos casos, su representación en algún programa
informático, así como en la memoria.

APLICACIÓN A PROBLEMAS DE VIDA REAL


La mayor parte de los problemas de la teoría de grafo pueden ser
aplicados a:
1. Problemas de Existencia
El problema de los siete puentes de Königsberg: ¿Existe una
trayectoria cerrada que cruce cada uno de los siete puentes
exactamente una vez?
El problema del Caballo de Ajedrez: ¿Existe una secuencia de
los movimientos del caballo tal que visite cada cuadrado de un
tablero de ajedrez exactamente una vez y regresando a la
posición de partida?
El problema de los Cuatro Colores: ¿Puede colorearse todo
mapa con cuatro colores de modo que los países vecinos
tengan colores diferentes?
2. Problemas de Construcción
Determinar si un grafo dado es euleriano y construir un camino
euleriano (algoritmo de Fleury).
3. Problemas de Enumeración
Grafos etiquetados.
Digrafos etiquetados.
Árboles etiquetados.
4. Problemas de Optimización
Problema de encontrar el camino mínimo entre dos vértices en
dígrafo pesado.
Problema del viajante de comercio
3.1.1 CONCEPTOS BÁSICOS DE GRAFOS.

Un grafo, G, es un par ordenado de V y A, donde V es el conjunto de


vértices o nodos del grafo y A es un conjunto de pares de vértices, a
estos también se les llama arcos o ejes del grafo. Un vértice puede tener
0 o más aristas, pero toda arista debe unir exactamente a dos vértices.
Los grafos representan conjuntos de objetos que no tienen restricción de
relación entre ellos. Un grafo puede representar varias cosas de la
realidad cotidiana, tales como mapas de carreteras, vías férreas,
circuitos eléctricos, etc.

La notación G = A (V, A) se utiliza comúnmente para identificar un


grafo. Los grafos se constituyen principalmente de dos partes: las
aristas, vértices y los caminos que pueda contener el mismo grafo.

En los grafos anteriores, los vértices son v1, v2, v3, v4 mientras que los
aristas son e1, e2, e3, e4, e5, e6, e7. Las aristas e2 y e7 se llaman aristas
paralelas porque unen un mismo par de vértices. La arista e8 se llama
lazo o bucle porque une un vértice consigo mismo.

Aristas
Son las líneas con las que se unen las aristas de un grafo y con la que
se construyen también caminos. Si la arista carece de dirección se
denota indistintamente {a, b} o {b, a}, siendo a y b los vértices que
une. Si {a ,b} es una arista, a los vértices a y b se les llama sus
extremos.
• Aristas Adyacentes: Se dice que dos aristas son adyacentes si
convergen en el mismo vértice.
• Aristas Paralelas: Se dice que dos aristas son paralelas si vértice
inicial y el final son el mismo.
• Aristas Cíclicas: Arista que parte de un vértice para entrar en el
mismo.
• Cruce: Son dos aristas que cruzan en un punto.

Vértices
Son los puntos o nodos con los que esta conformado un grafo.
Llamaremos grado de un vértice al número de aristas de las que es
extremo. Se dice que un vértice es `par' o `impar' según lo sea su
grado.
• Vértices Adyacentes: si tenemos un par de vértices de un grafo
(U, V) y si tenemos un arista que los une, entonces U y V son
vértices adyacentes y se dice que U es el vértice inicial y V el
vértice adyacente.
• Vértice Aislado: Es un vértice de grado cero.
• Vértice Terminal: Es un vértice de grado 1.

Ejemplo 1
Para el grafo siguiente:
a. Escribir el conjunto de vértices.
b. Escribir el conjunto de aristas.
c. Hallar los vértices aislados.
d. Hallar los lazos.
e. Hallar las aristas paralelas.

Solución
a. El conjunto de vértices es: V = {v1, v2, v3, v4}
b. El conjunto de aristas es: E = {e1, e2, e3, e4, e5}
c. No hay vértices aislados.
d. e5 es el único lazo.
e. e1 y e4 son aristas paralelas.
Ejemplo 2
De la figura (Los puentes de Königsberg), diseñar la gráfica (grafo)
correspondiente

Definición.- Sea G = (V,E) un grafo no dirigido, dado un vértice v, se


llama grado del vértice al número de aristas incidentes en él. Si existe
un lazo, lo contaremos dos veces.

Ejemplo
Dado el siguiente grafo, encuentre el grado de cada vértice.
Solución:
grado (v1) = 3, grado (v2) = 3
grado (v3) = 4, grado (v4) = 0

Definición.- Sea G = (V,E) un grafo (dirigidos o no) que no tienen lazos


ni más de una arista adyacente al mismo par de vértices se llaman
grafos simples.

Teorema. Sea G un grafo con vértices v1, v2,..., vn. Entonces la suma
de los grados de todos los vértices de G es igual a dos veces el número
de aristas en G. Es decir, grad (v1) + grad (v2) + …+ grad (vn) = 2 A,
donde A es el número de aristas de G.
Así, 2A es el total de la suma de los grados de los vértices de G. Como
consecuencia del teorema anterior se tiene que para cualquier grafo, el
número de vértices de grado impar, debe ser par.

Ejemplo
¿Es posible tener un grafo, en el que cada vértice tiene grado 4 y hay 10
aristas?
Solución
Por el teorema anterior se tiene: 2A = 20 o sea que deben existir 10
aristas. De otra parte, como los vértices tienen el mismo grado 4, se
debe cumplir que, 20=4 V, donde V es el número de vértices. Por tanto
V = 5. La figura siguiente muestra uno de eso grafos:

Ejemplo
¿Se puede dibujar un grafo G con tres vértices v1 v2 y v3?, donde,
a. grad (v1) = 1, grad (v2) = 2, grad (v3) = 2
b. grad (v1) = 2, grad (v2) = 1, grad (v3) = 1
c. grad (v1) = 0, grad (v2) = 0, grad (v3) = 4
Solución
a. No es posible porque la suma de los grados de los vértices es 5 que el
un número impar.
b. Sí, porque grad (v1)+grad (v2) + grad (v3) = 4; que es un número
par. El número de aristas es 2.
c. Sí, porque grad (v1) + grad (v2) + grad (v3) = 4; que es un número par. El único
grafo es:

3.1.2 CLASIFICACIÓN DE GRAFOS.

a) Grafo dirigido (dígrafo)


Definición. Dado un grafo dirigido o dígrafo D = (V, E) con n vértices
{v1, ..., vn} su matriz de adyacencia es la matriz de orden n×n,
A(D)=(aij) donde aij es el número de arcos que tienen a vi como
extremo inicial y a vj como extremo final.
En un grafo dirigido cada arco está representado por un par ordenado
de vértices, de forma que los pares (v1, v2) y (v2, v1) representan dos
arcos diferentes.
Ejemplo:
G3 = (V3, A3) V3 = {1, 2, 3,4,5,6} A3 = {
(1,1),(3,1),(3,2),(3,5),(4,2),(4,3),(5,6),(6,5)}
La matriz de adyacencia de un dígrafo no es simétrica. Es una matriz
binaria. El número de unos que aparecen en una fila es igual al grado de
salida del correspondiente vértice y el número de unos que aparecen en
una determinada columna es igual al grado de entrada del
correspondiente vértice.

b) Grafo no dirigido
Definición.- En un grafo no dirigido el par de vértices que representa un
arco no está ordenado. Por lo tanto, los pares (v1, v2) y (v2, v1)
representan el mismo arco. su matriz de adyacencia es la matriz de
orden n×n, A(G)=(aij) donde aij es el número de aristas que unen los
vértices vi y vj.
Ejemplo

La matriz de adyacencia de un grafo es simétrica. Si un vértice es


aislado entonces la correspondiente fila (columna) esta compuesta sólo
por ceros. Si el grafo es simple entonces la matriz de adyacencia
contiene solo ceros y unos (matriz binaria) y la diagonal esta compuesta
sólo por ceros.

Más ejemplos
G1 = (V1, A1) V1 = {1, 2, 3, 4} A1 = {(1, 2), (1, 3), (1, 4), (2, 3), (2,
4), (3, 4)}
G2 = (V2, A2) V2 = {1, 2, 3, 4, 5, 6} A2 = {(1, 2), (1, 3), (2, 4), (2,
5), (3, 6)}
1. Grafo simple.- Los grafos (dirigidos o no) que no tienen lazos ni
más de una arista adyacente al mismo par de vértices se llaman
grafos simples.

GRAFOS DIRIGIDOS O GRAFOS ORIENTADOS (DÍGRAFO)


Definición. Sea G un grafo. Si cada arista en G tiene una dirección,
entonces G se llama grafo dirigido o dígrafo y sus aristas se llaman
arcos. El vértice donde empieza un arco se llama punto inicial y el
vértice donde termina se llama punto Terminal. Cuando no se
consideran las direcciones de las aristas en G, el grafo que se obtiene se
llama grafo subyacente de G.
Ejemplo
Dado el digrafo siguiente:

a. Dar los puntos inicial y Terminal de cada arco.


b. Dibujar el grafo subyacente.

Solución
a. La tabla siguiente detalla todos los arcos con sus puntos inicial y
Terminal.

b. El grafo subyacente es:


Definición. Sea v un vértice de un dígrafo G. el grado de entrada de v, denotado
por gradent (v) es el numero de arcos en G cuyo punto terminal es v. El grado de
salida de v, denotado por gradsal (v) es el numero de arcos en G cuyo punto inicial
es v.

Ejemplo
En el ejemplo anterior, los grados de entrada y de salida de cada vértice se
detallan en la siguiente tabla.

Definición. Una trayectoria dirigida en un dígrafo G es una sucesión de


vértices y aristas de modo que el punto Terminal de un arco es el punto
inicial del siguiente. Si en G existe una trayectoria orientada que va del
vértice vi al vértice vk entonces se dice que vk es asequible a partir de
vi .
Ejemplo
Considérese el digrafo siguiente:

Una trayectoria dirigida de v2 a v5 es: v2 e2 v3 e3 v4 e4 v5. v1 no es


asequible desde ningún vértice porque gradent (v1) =0, v3 es
asequible desde cualquier otro vértice.

Definición. Sea G un dígrafo. Si cada vértice en G es asequible a partir


de cualquier otro vértice en G, entonces el dígrafo se denomina
fuertemente conexo. Si el grafo subyacente de G es conexo, entonces se
dice que G es débilmente conexo.
Ejemplo
El siguiente digrafo es fuertemente conexo.

En este dígrafo cada vértice es asequible desde cualquier otro vértice.


GRAFOS ETIQUETADOS Y PONDERADOS
Aunque ya hemos usado los grafos etiquetados, damos una definición en
esta sección. Un grafo G es un grafo etiquetado si sus aristas y/o
vértices tienen asignado alguna identificación. En particular, G es un
grafo ponderado si a cada arista e de G se le asigna un numero no
negativo w(e) denominado peso o longitud de e. El peso (o longitud de
un camino en un grafo ponderado G se define como la suma de los
pesos de las aristas del camino. Un importante problema en teoría de
grafos es encontrar el camino más corto (liviano), esto es, el camino con
el peso (longitud) mínimo entre dos vértices dados.
TIPOS DE GRAFOS
a) Es un grafo regular de grado n si todos sus vértices tienen grado
n.

Grafos regulares de grado 2.


Grafos regulares de grado 3.

b) El grafo completo de orden n, que se denota por Kn, es el grafo


que tiene n vértices y cada vértice está unido a los demás por
exactamente una arista. Un grafo completo de n vértices tiene

exactamente aristas.

c) Grafo bipartido.- Es aquel con cuyos vértices pueden formarse dos


conjuntos disjuntos de modo que no haya adyacencias entre
vértices pertenecientes al mismo conjunto es decir un grafo G =
(V,E) diremos que es un grafo bipartido si se puede dividir el
conjunto de vértices en dos subconjuntos V = V1 U V2, tales que
son disjuntos, V1 v V2 = a conjunto vacío y cada arista de E une
un vértice de V1 y otro de V2.
d) Un grafo bipartido completo si V=V1ÈV2 y dos vértices de V están
unidos por una arista de E si y solo si un vértice está en V1 y el
otro en V2. Se denota por Kr,s al grafo bipartido completo donde
V1 tiene r vértices y V2 tiene s vértices

e) Grafo nulo: Se dice que un grafo es nulo cuando los vértices que lo
componen no están conectados, esto es, que son vértices aislados.

f) Grafos Isomorfos: Dos grafos son isomorfos cuando existe una


correspondencia biunívoca (uno a uno), entre sus vértices de tal forma
que dos de estos quedan unidos por una arista en común.
GRAFOS CONEXOS CONECTIVIDAD
Un grafo se puede definir como conexo si cualquier vértice V pertenece
al conjunto de vértices y es alcanzable por algún otro. Otra definición
que dejaría esto más claro sería: un grafo conexo es un grafo no dirigido
de modo que para cualquier par de nodos existe al menos un camino
que los une.

Teorema. Sea G un grafo conexo con n vértices. Entonces G debe tener


al menos n -1 aristas. Si el grafo es simple y con n vértices y si tiene
más de ((n-1)/2) aristas, entonces el grafo es conexo.

Definición. Sea G un grafo. Se dice que G es un grafo conexo si para


cada par de vértices vi, vj en G, existe una trayectoria entre vi y vj.
3.2 REPRESENTACIÓN DE ESTRUCTURA MEDIANTE GRAFOS.

En la carrera de Ingeniería en Sistemas Computacionales muchas veces


se necesitan modelar algoritmos o programas computacionales, para
modelar los algoritmos se utilizan varias técnicas como son:
· Diagramas de flujo.
· Pseudo código.
· Diagramas N-S.

En la teoría de grafos se dice que también se pueden representar los


algoritmos utilizando dígrafos que indiquen la secuencia del programa. A
continuación se mostrara como se pueden utilizar los dígrafos para
modelar programas computacionales.

3.2.1 SECUENCIAS.
Para representar los programas por medio de dígrafos, se debe de tener
claro que:
Un vértice del nodo, representa una instrucción o un bloque
de instrucciones.
Los lados o aristas, representan la comunicación o conexión
que hay entre nodos.
Cuando exista una instrucción o secuencia condicional,
entonces puede haber dos o mas lados de salida del
vértice, dependiendo del numero de caminos que pueda
seguir el programa.

Una secuencia de un programa de computación es la que indica el flujo


de ejecución de sentencias e indican cual es la sentencia que se tiene
que ejecutar inmediatamente después de otra y se representa de la
siguiente forma:
3.2.2 SELECCIÓN (IF-THEN-ELSE).

En programación existe una operación condicional por default que


cualquier lenguaje de programación debe de tener y es el condicional If,
el cual tiene la siguiente forma:

If (expresión) then
„primer bloque de instrucciones
„Ejecutar el bloque de instrucciones siempre que la condición sea
verdadera.
Else
„Segundo bloque de instrucciones
„Ejecutar el bloque de instrucciones cuando la condición sea falsa.

La expresión se debe de evaluar de la misma forma en la que se


evalúan las proposiciones, es decir debe de ser verdadera o falsa, y si es
verdadera se ejecuta el primer bloque de instrucciones y si es falsa se
ejecuta el segundo bloque.

Para representar esta estructura con dígrafos es:

3.2.3 MIENTRAS (WHILE).


En programación existe una estructura conocida como bucle, que se utiliza para
realizar varias veces un mismo bloque de instrucciones, se dice que el bloque de
instrucciones se va a ejecutar mientras la expresión a evaluar sea verdadera, el
formato general de la instrucción es:
While ( expresión)
„ Bloque de instrucciones
EndWhile

El dígrafo que puede representar esta estructura es:


3.2.4 REPETIR HASTA QUE (REPEAT-UNTIL).

Esta es una estructura de programación donde al igual que en el


mientras e va a ejecutar un bloque de instrucciones hasta que se
cumpla una condición, la diferencia con el bucle mientras es que en el
repetir hasta el bloque se ejecuta al menos una vez y la condición se
evalúa al final y se pueden presentar 2 formatos, uno es que se ejecute
el bloque de instrucciones cuando la expresión sea verdadera y el otro
formato es que se repite el bloque de instrucciones mientras la
expresión sea falsa.

El dígrafo que representaría estos 2 formatos seria:

3.2.5 SELECCIÓN MÚLTIPLE (CASE).


Esta es una estructura que sirve en programación cuando dado un valor
o la evaluación de una expresión existen varias opciones que se pueden
realizar dependiendo el valor que se genera, esta estructura es muy
utilizada en programación cuando con el valor de un dato se puede
determinar las distintas acciones a seguir.
Esta estructura se puede representar con el siguiente formato:
Select case (dato)
Case 1: Bloque de instrucciones que se ejecutan si el dato es
igual a 1.
Case 2: Bloque de instrucciones que se ejecutan si el dato es
igual a 2.
Case 3: Bloque de instrucciones que se ejecutan si el dato es
igual a 3.
Case else: Bloque de instrucciones que se ejecuten si el dato no
corresponde a ninguno de los anteriores.
EndSelect
En un dígrafo se puede representar esta estructura de la siguiente
forma:

3.3 CÁLCULO DE CAMINOS A PARTIR DE UNA REPRESENTACIÓN


MATRICIAL.
Se designa con el nombre de técnicas matriciales a la representación
cruzada de diferentes entidades u objetos de interés para la
Organización y que permiten:

Conocer la realidad actual en cuanto a sus funciones, información


manejada, distribución geográfica, etc.

Sentar las bases para una posible reorganización de las funciones con
objeto de aumentar su eficacia.

Definir nuevos sistemas de información para la Organización.

Ayudar a definir prioridades en el desarrollo de nuevos sistemas.

Las diferentes representaciones matriciales que se recogen en la


metodología son las siguientes:

Matriz Procesos-Entidades de Datos: que permite representar el


tratamiento lógico de las funciones sobre los datos del sistema.
Matriz Procesos-Organización: que permite representar tanto la
distribución geográfica de las funciones de la Organización, como las
responsabilidades de los distintos departamentos en que se estructura.

Matriz Aplicaciones-Ficheros de Datos: que permite conocer la situación


actual de los sistemas de información existentes, en cuanto a las
aplicaciones en funcionamiento y los datos que manejan.

Matriz Aplicaciones-Funciones: que permite representar el grado de


cobertura que las aplicaciones existentes tienen sobre las funciones que
desarrolla, o tiene previsto desarrollar la Organización.

Matriz Ficheros de Datos Actuales-Entidades de Datos: que permite


representar la adecuación de los ficheros de datos existentes a las
necesidades de información de la Organización.

Recordemos que un grafo ponderado (definido en una sección anterior)


también se puede representar como una matriz, el método mas utilizado
es la matriz de adyacencia.

DEFINICIÓN.- Sea G un grafo con vértices V y lados E. Una sucesión


de lados de longitud n de un vértice x a un vértice y, es un conjunto de
lados S que puede arreglarse de modo que:

S= { (v0, v1 ), (v1, v2 ), (v2, v3 ), . . . . ., (vn-1, vn )}


En donde v0 = x y vn = y.
Por ejemplo se presenta el siguiente grafo G con su matriz de
adyacencia A.

Supónganse que se eleva al cuadrado la matriz de adyacencia A y dará


como resultado:
Considérese el elemento correspondiente a la fila a y la columna c en
A2, obtenido al multiplicar por pares los elementos de la fila a y los de la
columna c de la matriz A, y proceder a sumarlos:

La única forma de que un elemento diferente de cero aparezca en esta


suma es que los elementos que se multipliquen sean, ambos, 1. Esto
sucede si existe un vértice v cuyo elemento en la fila a es 1 y cuyo
elemento en la columna c es también 1. En otras palabras, deben existir
lados de la forma (a, v) y ( v, c). En este caso la suma aumenta en 1.
En este ejemplo la suma es 2 pues representa los pares de lados (a, b),
(b, c) y (a, d), (d, c).

Cada uno de los pares recibe el nombre de sucesión o secuencia de


lados de longitud 2 de a a c. En consecuencia el elemento que
corresponde a la fila x y a la columna y de la matriz A2, es él numero de
sucesiones de lados de longitud 2 del vértice x al vértice y.

TEOREMA.- Si A es la matriz de adyacencia de un grafo simple, el ij-


esimo elemento de An es él numero de sucesiones de lados de longitud
n del vértice i al vértice j.
3.4 ESPACIO DE ESTADOS.
Los grafos también sirven para representar problemas, se dice que un espacio de
estados es un dígrafo, donde los vértices (nodos) del grafo representan situaciones
especificas del problema y las aristas (lados) son las posibles transacciones entre los
estados es decir el camino para cambiar la situación del problema.

Un concepto importante es el de estado, un estado es una descripción de una posible


situación en el problema o una abstracción de propiedades. La Importancia de una
buena representación de los estados es que:
Sólo considera información relevante para el problema.
Representación suficiente y necesaria.
La representación escogida incluye en el número de estados y éste en los
procedimientos de búsqueda de soluciones.

Para plantear un problema se debe de tener en cuenta que al principio hay que indicar
un estado o situación inicial para el problema que describe la situación de partida y un
estado final al que se desea llegar, pero pueden ser uno o varios estados finales. Para
resolver un problema se resuelve encontrando un camino en el dígrafo que nos lleve
desde el estado inicial hasta el estado final.

3.5 REPRESENTACIÓN MEDIANTE ESPACIO DE ESTADOS.


En esta parte nos vamos a basar en un ejemplo para explicar como la
mayoría de los problemas se pueden representar como un espacio de
estados. El problema de ejemplo se enuncia a continuación:

Para el 8-puzzle se usa un cajón cuadrado en el que hay situados 8


bloques cuadrados. El cuadrado restante está sin rellenar. Cada bloque
tiene un número. Un bloque adyacente al hueco puede deslizarse hacia
él. El juego consiste en transformar la posición inicial en la posición
final, mediante el deslizamiento de los bloques. En particular,
consideramos el estado inicial y final los siguientes:

Los operadores son parte importante en los espacios de estado ya que


representan un conjunto finito de acciones básicas que transforman
unos estados en otros (en los grafos se indican con las aristas).
Elementos que describen un operador.
Aplicabilidad: precondición y poscondición.
Estado resultante de la aplicación de un operador (aplicable) a un
estado.

Criterio para elegir operadores:


Depende de la representación de los estados.
Preferencia por representaciones con menor número de
operadores.

Los operadores en el ejemplo del 8-puzzle, son únicamente de cuatro


tipos:
1. Mover la pieza hacia el hueco de arriba
2. Mover la pieza hacia el hueco de abajo
3. Mover la pieza hacia el hueco de la derecha
4. Mover la pieza hacia el hueco de la izquierda

Descripción del operador “Mover la pieza hacia el hueco de arriba”, que


equivale a mover la pieza hacia abajo:

a) Aplicabilidad: estados que no tengan el hueco en la primera fíla.


b) Resultado de aplicarlo: intercambiar las posiciones del hueco y del
bloque o numero que está encima de éste, como se ve en el siguiente
ejemplo del primer estado se aplica el operador y genera un nuevo
estado.

Partiendo del estado inicial se pueden tener la siguiente representación


del problema de la siguiente forma:
Donde:
A) Es el operador de mover la pieza hacia el hueco de la izquierda.
B) Es el operador de mover la pieza hacia el hueco de arriba.
C) Es el operador de mover la pieza hacia el hueco de la derecha.
Entonces esta parte del grafo se puede ver de la siguiente forma:

Este grafo solo muestra la primera parte del problema, ya que este problema tendrá
un numero de estados igual al 9!, es decir 362,880 estados, por esta razón solo se
explica la primera parte del grafo.
3.6 ESTRATEGIA Y ALGORITMOS DE BÚSQUEDA.

En muchas situaciones de computación es necesario repetir ciertos


procedimientos hasta alcanzar un punto en que no se puede o no se
desea continuar. Esta repetición de tareas puede llevarse a cabo
básicamente de dos maneras diferentes: la iteración y la recursión.
Como se supone que en cada repetición se procesa un estado diferente
de cosas, sin lo cual el proceso tendería al infinito, ambos métodos
presentan también alguna forma de control de fin de tarea.

Existen diferentes técnicas de búsqueda para encontrar un camino en un


espacio de estados, sabemos que cada vértice en el grafo tiene asignada
un valor el cual es el que estamos buscando algunas de las técnicas son:

· Guiada por objetivos (backtrack).


· Guiada por datos (forward).
· En profundidad.
· En anchura.

3.6.1 GUIADA POR DATOS (FORWARD).


Este método se utiliza para recorrer un árbol (un tipo de grafo con estructura
especifica que sé vera mas adelante) de soluciones de manera sistemática, en
este árbol cada uno de sus vértices representan la solución para un problema.
Los algoritmos look-back tratan de reforzar el comportamiento de los algoritmos
Backtrack mediante un comportamiento más inteligente cuando se encuentran en
situaciones sin salida. Sin embargo, todos ellos todavía llevan a cabo la
comprobación de la consistencia solamente hacia atrás, ignorando las futuras
variables.

Los algoritmos forward hacen una comprobación hacia adelante en cada etapa de
la búsqueda, es decir, ellos llevan a cabo las comprobaciones para obtener las
inconsistencias de las variables futuras involucradas además de las variables
actual y pasadas. De esa manera, las situaciones sin salida se pueden identificar
antes y además los valores inconsistentes se pueden descubrir y podar para las
variables futuras.

Si el dominio de una variable futura se queda vacío, la instanciacion de la variable


actual se deshace y se prueba con un nuevo valor. Si ningún valor es consistente,
entonces se lleva a cabo el backtrack cronológico. El forward garantiza que, en
cada etapa, la solución parcial actual es consistente con cada valor de cada
variable futura. A continuación presentamos el pseudos código de forward
checking.
Algoritmo del Forward-checking
1. Seleccionar xi.
2. Instanciar xi← ai: ai Є Di.
3. Razonar hacia adelante (check-forward): Eliminar de los dominios de las
variables, aun no instanciadas con un valor, aquellos valores inconsistentes con
respecto a la instanciacion xi← ai, de acuerdo al conjunto de restricciones.
4. Si quedan valores posibles en los dominios de todas las variables por instanciar,
entonces:
• Si i < n, incrementar i, e ir al paso (1).
• Si i = n, salir con la solución.
5. Si existe una variable por instanciar, sin valores posibles en su dominio,
entonces retractar los efectos de la asignación xi← ai:
• Si quedan valores por intentar en Di, ir al paso (2).
• Si no quedan valores:
• Si i > 1, decrementar i y volver al paso (2).
• Si i = 1, salir sin solución.

3.6.2 GUIADA POR OBJETIVOS (BACKTRACK).

El Backtrack o vuelta atrás, es una estrategia para encontrar soluciones


aproblemas que satisfacen restricciones. El término "backtrack" fue acuñado
porprimera vez por el matemático estadounidense D. H. Lehmer en los años
cincuenta.
Los problemas que deben satisfacer un determinado tipo de restricciones
sonproblemas completos, donde el orden de los elementos de la solución no
importa.
Estos problemas consisten en un conjunto (o lista) de variables a la que a cada
una se le debe asignar un valor sujeto a las restricciones del problema. La técnica
va creando todas las posibles combinaciones de elementos para obtener una
solución.
Su principal virtud es que en la mayoría de las implementaciones se puede evitar
algunas combinaciones, estableciendo funciones de acotación (o poda)
reduciendo el tiempo de ejecución.
Los algoritmos de vuelta atrás (backtrack) se utilizan para encontrar la solución
optima a un problema. No siguen unas reglas para la búsqueda de la solución,
simplemente una búsqueda sistemática, que más o menos viene a significar que
hay que probar todo lo posible hasta encontrar la solución o encontrar que no
existe solución al problema. Para conseguir este propósito, se separa la búsqueda
en varias búsquedas parciales o subtareas. Así mismo, estas subtareas suelen
incluir más subtareas, por lo que el tratamiento general de estos algoritmos
es de naturaleza recursiva.
¿Por qué se llaman algoritmos de vuelta atrás?.
Porque en el caso de no encontrar una solución en una subtarea se retrocede a la
subtarea original y se prueba otra cosa distinta (una nueva subtarea distinta a las
probadas anteriormente). Puesto que a veces nos interesa conocer múltiples
soluciones de un problema, estos algoritmos se pueden modificar fácilmente para
obtener una única solución (sí existe) o todas las soluciones posibles (sí existe
más de una) al problema dado.
El caso es que el grafo no está definido de forma explícita (como lista o matriz de
adyacencia), sino de forma implícita, es decir, que se irá creando según avance el
recorrido. A menudo dicho grafo es un árbol ( tipo especial de grafo que se
presenta a continuación), o no contiene ciclos, es decir, al buscar una solución es,
en general, imposible llegar a una misma solución x partiendo de dos subtareas
distintas a y b; o de la subtarea a es imposible llegar a la subtaréa b y viceversa.
Gráficamente se puede ver así:

El algoritmo de vuelta atrás está muy relacionado con la búsqueda combinatoria.


Esencialmente, la idea es encontrar la mejor combinación posible en un momento
determinado, por eso, se dice que este tipo de algoritmo es una búsqueda en
profundidad. Durante la búsqueda, si se encuentra una alternativa incorrecta, la
búsqueda retrocede hasta el paso anterior y toma la siguiente alternativa.

Cuando se han terminado las posibilidades, se vuelve a la elección anterior y se


toma la siguiente opción (hijo [sí nos referimos a un árbol]). Si no hay más
alternativas la búsqueda falla. De esta manera, se crea un árbol implícito, en el
que cada nodo es un estado de la solución (solución parcial) o en el caso de los
nodos hoja (solución total).

Normalmente, se suele implementar este tipo de algoritmos como un


procedimiento recursivo. Así, en cada llamada al procedimiento se toma una
variable y se le asignan todos los valores posibles, llamando a su vez al
procedimiento para cada uno de los nuevos estados.

La diferencia con la búsqueda en profundidad es que se suelen diseñar funciones


de cota, de forma que no se generen algunos estados si no van a conducir a
ninguna solución, o a una solución peor de la que ya se tiene. De esta forma se
ahorra espacio en memoria y tiempo de ejecución. Con el objetivo de mantener la
solución actual con coste mínimo, los algoritmos vuelta atrás mantienen el coste
de la mejor solución en una variable que se va modificando con cada nueva mejor
solución encontrada. Así, si una solución es peor que la que se acaba de
encontrar, el algoritmo no actualizará la solución. De esta forma, devolverá
siempre la mejor solución que haya encontrado.

Este algoritmo Backtrack se usa en la implementación de los lenguajes de


programación tales como Lenguaje de programación Planner y Prolog. Además,
se usa en los análisis sintácticos de los compiladores. Su uso en inteligencia
artificial ha sido muy importante, dando lugar a nuevos tipos de búsquedas como
el A estrella. A continuación se presenta un pseudocódigo que representa lo que
hace este algoritmo de búsqueda:

procedimiento ensayar (paso : TipoPaso)


repetir seleccionar_candidato
if aceptable then
begin anotar_candidato
if solucion_incompleta then
begin ensayar(paso_siguiente)
if no acertado then borrar_candidato
end
else begin anotar_solucion acertado <- cierto;
end
hasta que (acertado = cierto) o (candidatos_agotados)
fin procedimiento

3.6.3 EN PROFUNDIDAD.
Se comienza en cualquier vértice y en cada paso se avanza a un nuevo vértice
adyacente siempre que se pueda. Cuando todos los adyacentes a X hayan sido
visitados, se retrocede al vértice desde el que se alcanzó X y se prosigue con otro
vértice no visitado. Así se consigue etiquetar (visitar) todos los vértices de la
componente conexa en que se encuentre el vértice inicial.

Esta técnica se utiliza cuando necesitamos encontrar respuesta a un problema


sobre un grafo sin condiciones de optimización. La idea en general de la búsqueda
en profundidad comenzando en un nodo A es la siguiente:
Primero examinamos el nodo inicial A. Luego examinamos cada nodo N de un
camino P que comience en A; a sea, procesamos un vecino de A, luego un vecino
de un vecino de A y así sucesivamente, hasta llegar a un punto muerto o final del
camino P, y de aquí volvemos atrás por P hasta que podamos continuar por otro
camino P y así sucesivamente.

Este algoritmo es similar al del recorrido inorden de un árbol binario, y también a la


forma en que se debe pasar a través de un laberinto. Observe que se hace uso
una pila, y este es el detalle fundamental que hace la diferencia para realizar la
búsqueda en profundidad. La idea en general de la búsqueda en profundidad es
que se comienza en la raíz y en cada paso se avanza a un nodo descendiente
siempre que se pueda, hasta llegar a un nodo terminal (hoja). Y cuando todos los
descendiente de un nodo N han sido visitados, se retrocede al nodo padre de N se
prosigue con sus descendientes no visitados. De esta manera se consigue visitar
a todos los nodos de cualquier árbol.

Algoritmo para la búsqueda en profundidad:


Este algoritmo realiza la búsqueda en profundidad el grafo G comenzando en un
nodo A.

1. Inicializar todos los nodos al estado de preparado (ESTADO=1)


2. Meter el nodo inicial A ( o raíz) en la pila y cambiar su estado (1) a
estado de espera (ESTADO=2).
3. Repetir los pasos 4 y 5 hasta que la pila este vacía.
4. Sacar el nodo N en la cima de la pila. Procesar el nodo N y cambiar
su estado al de procesado (ESTADO=3).
5. Meter en la pila todos los hijos de N que estén en estado de
preparados
(ESTADO=1) y cambiar su estado a estado de espera (ESTADO=2). [ fin
de bucle del paso 3 ]
6. Salir.

3.6.4 EN ANCHURA.

Búsqueda en anchura (BEA)


A diferencia con la BEP ahora se visitan todos los hijos de un vértice antes de
pasar al siguiente nivel . Por tanto no hay necesidad de retroceder. Una vez
etiquetados todos los hijos de un vértice X, se continúa con el primer vértice (nodo
hermano) alcanzado después de X en la búsqueda.

Esta técnica se utiliza para resolver problemas en los que se pide hallar una
solución óptima entre varias. En general la búsqueda en anchura comenzando de
un nodo de partida A es la siguiente:
Primero examinamos el nodo de partida A.

Luego examinamos todos los hijos de A. Luego examinamos todos los hijos de los
hijos de A y así sucesivamente. Con el uso de una cola, garantizamos que ningún
nodo sea procesado más de una vez y usando un campo ESTADO que nos indica
el estado actual de los nodos.

Algoritmo para la búsqueda en anchura:


Este algoritmo realiza la búsqueda en anchura en un grafo G comenzando en un
nodo de partida A.
1. Inicializar todos los nodos al estado de preparados (ESTADO=1).
2. Poner el nodo de partida A ( o raíz) en la COLA y cambiar su estado a
espera (ESTADO=2).
3. Repetir pasos 4 y 5 hasta que COLA esté vacía.
4. Quitar el nodo del principio de la cola, N. Procesar N y cambiar su estado a
procesado (ESTADO=3).
5. Añadir a COLA todos los hijos de N que estén en estado de preparados
(ESTADO=1) y cambiar su estado al de espera (ESTADO=2).
[ fin del bucle del paso 3 ]
6. Salir.
3.7 ÁRBOLES.

Un árbol es una estructura no lineal en la que cada nodo puede apuntar


a uno o varios nodos.

También se suele dar una definición recursiva: un árbol es una


estructura en compuesta por un dato y varios árboles.

Definiremos varios conceptos. En relación con otros nodos:


• Nodo hijo: cualquiera de los nodos apuntados por uno de los
nodos del árbol. En el ejemplo, 'L' y 'M' son hijos de 'G'.
• Nodo padre: nodo que contiene un puntero al nodo actual.
En el ejemplo, el nodo 'A' es padre de 'B', 'C' y 'D'.
Los árboles con los que trabajaremos tienen otra
característica importante: cada nodo sólo puede ser apuntado
por otro nodo, es decir, cada nodo sólo tendrá un padre. Esto
hace que estos árboles estén fuertemente jerarquizados, y es
lo que en realidad les da la apariencia de árboles.
En cuanto a la posición dentro del árbol:
• Nodo raíz: nodo que no tiene padre. Este es el nodo que
usaremos para referirnos al árbol. En el ejemplo, ese nodo es
el 'A'.
• Nodo hoja: nodo que no tiene hijos. En el ejemplo hay
varios: 'F', 'H', 'I', 'K', 'L', 'M', 'N' y 'O'.
• Nodo rama: son los nodos que no pertenecen a ninguna de
las dos categorías anteriores. En el ejemplo: 'B', 'C', 'D', 'E',
'G' y 'J'.

Otras definiciones importantes son:


1. Un árbol es un grafo simple en el que existe un único camino entre cada par de
vértices.
2. Un grafo G es conexo si y solo si tiene un árbol generador.
3. Si G es un árbol, entonces él numero de aristas es igual al numero de vértices
menos uno.
4. Un árbol con raíz o arraigado es un árbol que tiene un vértice particular
designado como raíz.

Ejemplo de aplicación de árboles

3.7.1 PROPIEDADES.
Todo árbol T esta compuesto por jerarquías de vértices y lados que unen dichos
vértices. Los vértices de un árbol reciben también el nombre de nodos y los lados
el nombre de ramas del árbol. Sea un grafo simple con n vértices. Entonces son
equivalentes los siguientes enunciados:
a) T es un árbol.
b) T es conexo y no tiene circuitos.
c) T es conexo y tiene n-1 lados.
d) T no tiene circuitos y tiene n-1 lados.
Se presenta a continuación varias propiedades y terminología es de gran utilidad
para analizar los árboles con raíz.
El nivel mas alto de la jerarquía se llama raíz. La raíz tiene un nivel 0, los vértices
que están inmediatamente debajo de la raíz tienen un nivel 1 y así
sucesivamente. La altura o peso de un árbol es el valor de su nivel máximo.
Orden: es el número potencial de hijos que puede tener cada
elemento de árbol. De este modo, diremos que un árbol en
el que cada nodo puede apuntar a otros dos es de orden dos,
si puede apuntar a tres será de orden tres, etc.
• Grado: el número de hijos que tiene el elemento con más
hijos dentro del árbol. En el árbol del ejemplo, el grado es
tres, ya que tanto 'A' como 'D' tienen tres hijos, y no existen
elementos con más de tres hijos.
• Nivel: se define para cada elemento del árbol como la
distancia a la raíz, medida en nodos. El nivel de la raíz es cero
y el de sus hijos uno. Así sucesivamente. En el ejemplo, el
nodo 'D' tiene nivel 1, el nodo 'G' tiene nivel 2, y el nodo 'N',
nivel 3.
• Altura: la altura de un árbol se define como el nivel del nodo
de mayor nivel. Como cada nodo de un árbol puede
considerarse a su vez como la raíz de un árbol, también
podemos hablar de altura de ramas. El árbol del ejemplo tiene
altura 3, la rama 'B' tiene altura 2, la rama 'G' tiene altura 1,
la 'H' cero, etc.
Definición 1: Sea G = (V,E) un grafo no dirigido, diremos que
G es un árbol T, si G es conexo y
acíclico.

Definición 2: Diremos que T es un árbol generador de un


grafo G si T es árbol y subgrafo generador de G.

*Ejercicio: Buscar un árbol generador del grafo siguiente.

Teorema
1. En un árbol, dos vértices cualesquiera están unidos por un
único camino.
2. Un grafo G es conexo si y sólo si tiene un árbol generador.
3. Si G es un árbol, entonces el número de aristas es igual al
número de vértices menos uno.
4. Todo árbol T no trivial (más de 1 vértice) tiene al menos
dos vértices de grado 1.

3.7.2 ÁRBOLES GENERADORES.

DEFINICIÓN.- Un árbol T es un árbol generador de un grafo G, si T es


un subgrafo de G que contiene a todos los vértices de G.
Un grafo G tiene un árbol generador si y solo si G es conexo, por lo
tanto, es posible determinar varios árboles generadores para un grafo G
dado. Un grafo G tendrá varios árboles generadores, por ejemplo
consideremos que el Grafo G es el que se muestra a continuación:

Un árbol generador para este grafo, es conexo y aciclico ya que existe


un único camino entre cualquier par de vértices, se presentan a
continuación:
La figura anterior representa a un árbol generador para el Grafo G, ya
que contiene a todos los vértices del grafo y es conexo. En la siguiente
figura se muestra otro árbol generador para el grafo G.

Existen varios algoritmos para hallar un árbol generador de un grafo G,


de estos algoritmos hay 2 básicos que son el algoritmo de buscar
primero a lo ancho y el algoritmo de buscar primero al largo.

3.7.3 ÁRBOLES GENERADORES MINIMALES

Un Arbol Generador Minimal es el que resulta de la construcción en


primer lugar de un Arbol generador, pero con la característica de ser el
de menos peso del grafo al cual genera. Por ejemplo sea un grafo
ponderado ( con peso) con cinco vértices. La idea es construir un
subgrafo que una a todos los puntos pero con el mínimo de peso (el
peso se refiere al valor que se le da a cada uno de los lados de un
grafo). Este subgrafo debe ser un árbol generador, ya que debe unir
todos los vértices, debe ser conexo y debe haber un único camino entre
cada par de vértices, por lo tanto, lo que se necesita es un árbol
generador con el mínimo de peso, es a esto lo que se llama árbol
generador minimal. Sea G un grafo con peso. Un árbol generador
mínimal de G es un árbol generador de G con peso mínimo. Ejemplo:
Sea el Grafo G :

Los Arboles T1 y T2 son arboles generadores de G, sin embargo el peso


de ambos es distinto (T1=32 y T2=41). Por lo tanto el Arbol Generador
Minimal de G es T1. Arboles Generadores Minimales se pueden generar
con algoritmos como el Algoritmo de Prim, el cual construye un árbol en
forma iterativa, agregando lados hasta obtener un árbol generador
minimal. En cada iteración se coloca un lado de peso mínimo que no
forme un circuito con el árbol que se ha construido con iteraciones
anteriores.

Este algoritmo es un ejemplo de algoritmo voraz, el cual optimiza la


selección hecha en cada iteración sin considerar las elecciones que
corresponden a iteraciones anteriores.
Otro algoritmo que origina un árbol generador minimal en un grafo G de
n vértices, conexo y con peso es el Algoritmo de Kruskal. Este parte con
un grafo T que contiene inicialmente todos los vértices y ningún lado. en
cada iteración se agrega un lado a T de peso mínimo, tal que no
complete un circuito en T. Cuando T tenga n-1 lados, se termina.

3.7.4 RECORRIDOS.

Definiremos tres métodos de recorridos de un árbol:

ALGORITMO DE RECORRIDO EN ORDEN INICIAL O PREORDEN. Este algoritmo


comienza en la raíz, después pasa por el nodo de la izquierda, si este tiene hijos
continua siempre con el de la izquierda, hasta llegar a la hoja, si la hoja tiene
hermanos continua con él más cercano a ella hasta terminar con el nivel mas bajo.
Siempre dando preferencia al nodo de la izquierda y con el nivel mas bajo.
Una vez que termina la rama izquierda que sale de la raíz continua con la rama
adyacente a ella hasta agotarla y así sucesivamente hasta completar el recorrido del
árbol.
A continuación se presenta el algoritmo más formal de este tipo de recorrido y
podemos concluir que este recorrido primero procesa raíz, después el subárbol
izquierdo y al final el subárbol derecho. Este algoritmo recibe un árbol binario T como
dato y da por sentado que PT es la raíz de T, el algoritmo tiene los siguientes pasos:

1. [ ¿Es trivial?] Si PT esta vació entonces se regresa.


2. [ Procesa raíz] Procesa PT.
3. [Procesa el subárbol izquierdo] Invocamos de nuevo al algoritmo de forma
recursiva pero ahora usando como dato el árbol cuya raíz es el hijo a la
izquierda de PT.
4. [Procesa el subárbol derecho] Invocamos de nuevo al algoritmo de forma
recursiva pero ahora usando como dato el árbol cuya raíz es el hijo a la derecha
de PT y regresa.

ALGORIMO DE RECORRIDO EN ORDEN INTERMEDIO O INORDEN.


Este algoritmo comienza con el hijo que se encuentra mas a la izquierda del árbol, de
ahí regresa al padre, si el hijo tiene hermanos recorre todos los hermanos, usando él
la misma técnica primero el hijo izquierdo después el padre y a continuación los
hermanos del hijo. Una vez que termina con todos los hermanos del mismo nivel
continua con el abuelo, después con los hijos de este y así sucesivamente hasta
terminar la reama izquierda, después continua con la rama adyacente y así hasta
terminar con el árbol.

A continuación se presenta el algoritmo más formal de este tipo de recorrido y


podemos concluir que este recorrido primero procesa el subárbol izquierdo, la raíz y el
subárbol derecho. Este algoritmo recibe un árbol binario T como dato y da por sentado
que PT es la raíz de T, el algoritmo tiene los siguientes pasos:
1. [ ¿Es trivial?] Si PT esta vació, entonces se regresa.
2. [Procesa el subárbol izquierdo] Invocamos de nuevo al algoritmo de forma
recursiva pero ahora usando como dato el árbol cuya raíz es el hijo a la
izquierda de PT.
3. [ Procesa raíz] Procesa PT.
4. [Procesa el subárbol derecho] Invocamos de nuevo al algoritmo de forma
recursiva pero ahora usando como dato el árbol cuya raíz es el hijo a la derecha
de PT y regresa.

ALGORITMO DE RECORRIDO EN ORDEN FINAL O POSTORDEN.


Se comienza en la hoja situada mas a la izquierda, después continua con los nodos
de este mismo nivel, si estos nodos tienen hijos primeramente recorre los hijos y hasta
el final al padre, dando como preferencia a los que se encuentran mas a la izquierda.
Esto se hace con todos los descendientes de la raíz y finalmente recorre la raíz.
A continuación se presenta el algoritmo más formal de este tipo de recorrido y
podemos concluir que este recorrido primero procesa el subárbol izquierdo, el
subárbol derecho y al final la raíz . Este algoritmo recibe un árbol binario T como dato
y da por sentado que PT es la raíz de T, el algoritmo tiene los siguientes pasos:

1. [ ¿Es trivial?] Si PT esta vació, entonces se regresa.


2. [Procesa el subárbol izquierdo] Invocamos de nuevo al algoritmo de forma
recursiva pero ahora usando como dato el árbol cuya raíz es el hijo a la
izquierda de PT.
3. [Procesa el subárbol derecho] Invocamos de nuevo al algoritmo de forma
recursiva pero ahora usando como dato el árbol cuya raíz es el hijo a la derecha
de PT .
4. [ Procesa raíz] Procesa PT .

A continuación se muestra un ejemplo utilizando un árbol binario al que se le hacen


los 3 recorridos. El árbol T se muestra a continuación:
El recorrido en orden inicial es: ABCDEFGHIJ
El recorrido en orden intermedio es: CBDEAFIHJG
El recorrido en orden final es: CEDBIJHGFA

3.7.5 ORDENAMIENTOS.

La importancia de la ordenación en el procesamiento de datos es


evidente, y por eso se han creado mucho algoritmos de ordenación,
cada uno de los cuales resulta el más conveniente en un caso
determinado. Aquí se analizaran 2 algoritmos de ordenación.
Un aspecto importante a analizar en esta parte es observar que el
problema de ordenar n datos requiere al menos O(n log n)
comparaciones en el peor de los casos. El problema del ordenamiento se
puede describir fácilmente. Dados n datos x1, x2, ....., xn hay que
colocarlos en orden creciente o decreciente.
Existen varios métodos para realizar la ordenación de un árbol, algunos
de estos métodos son:
_ Burbujeo ( que se explica mas adelante por ser el más común).
_ Combinación de 2 arreglos (Orden creciente para los elementos).
_ Ordenamiento Combinado. ( Combina 2 arreglos ordenados).

ORDENAMIENTO POR BURBUJEO.


Dado un arreglo de datos S, este algoritmo efectúa la ordenación en
orden creciente. Los pasos del algoritmo:

Dado un arreglo de datos: S(1), S(2), ....., S(N)


1. [¿Es trivial?] Sí N = 1, alto.
2. [Inicialice I] I := 1. (Los datos S(k), con k < 1, se ordenan)
3. [Inicialice J] J := N – 1. (El par de datos S(J) y S(J + 1) van a
compararse.
4. [Compare] Si S(J + 1) < S(J), entonces (cambie) TEMP = S(J
+ 1); S(J + 1) = S(J); S(J) = TEMP.
5. [Termino el lazo en J ?] Sí J > 1, entonces J = J –1; Siga al
paso 4.
6. [¿Termino el lazo en I ?] Sí I = N –1, entonces, alto; En otro
caso, I = I + 1; siga al paso 3.
3.8 REDES.

Los grafos se utilizan mucho para representar redes de transporte a


través de las cuales fluyen mercancías o cualquier tipo de datos o cosas.
Cuando se utiliza un grafo dirigido ponderado para resolver problemas
de optimización, como seria el caso de determinar el flujo máximo a
través de un sistema de tuberías, o para calcular el costo mínimo de
transporte entre 2 ciudades, etc., se dice que se trata de una red de
trasporte.

DEFINICIÓN.- Una red de transporte (o simplemente red) es un grafo


simple, dirigido y con peso, G que cumple con las siguientes
condiciones:
a) Existe solamente un vértice en G, que no tiene lados de llegada y que
se denomina fuente.
b) Hay únicamente un vértice en G, que carece de lados de salida y que
se llama deposito ( resumidero o destino).
c) El peso de un lado ( i, j ) es un numero no negativo que se conoce
con el nombre de capacidad de ( i, j ).
d) El grafo no dirigido que se obtiene a partir de G, sin considerar las
direcciones de los lados, es conexo.
El siguiente ejemplo representa una red de transporte, la fuente y él
deposito son los vértices a y z, respectivamente. La capacidad del lado
(a, b), C ab es de 3 y la capacidad del lado (b, c), C bc es de 2. La red
se representa en el siguiente grafo G.

Un flujo en una red es un valor que se asigna a cada lado dirigido de


manera que no exceda la capacidad del lado. Por otra parte, se da por
sentado que el flujo que llega a un vértice v, el cual no es ni fuente ni
deposito, es igual al que sale de v.

DEFINICIÓN.- Sea G un grafo que represente una red de transporte, y


Cij, la capacidad del lado dirigido (i, j). Un flujo F en G asigna a cada
lado dirigido (i, j) un numero no negativo Fi j tal que:
a) Fi j [ Ci j .
b) Para cada vértice j, Que no es ni fuente ni deposito, se tiene que :
Fi j = Fj k
i k

Se llamara Fi j el flujo en el lado (i, j). Para cualquier vértice j, se llama:


El flujo que llega a j y:
El flujo que sale de j.
La propiedad expresada en la ecuación se denomina conservación del
flujo.
Por ejemplo para el grafo anterior se tienen las siguientes asignaciones
que definen un flujo para la red del grafo G:

Fab = 2, Fbc = 2, Fcz = 3, Fad = 3, Fdc = 1, Fde = 2, Fez = 2.


Por ejemplo, el flujo que llega al vértice d, es el mismo que sale de el, y
se comprueba a continuación:

El flujo que llega al vértice d es Fad = 3 , y es el mismo que sale ya que


Fdc + Fde = 1 + 2 = 3, por lo que se comprueba que el flujo de entrada
es el mismo que el de salida para el vértice d.

DEFINICIÓN.- Sea F el flujo en una red G. La siguiente expresión da el


valor del flujo F.

.
3.8.2 TEOREMA DE FLUJO MÁXIMA

Un flujo maximal en G, donde G es una red de transporte es un flujo de


valor máximo para la red.

El algoritmo de procedimiento de marca o señalización se usa para la


obtención del flujo maximal en una red.

El problema de flujo máximo se define sobre una red con capacidades


en los arcos, y dos nodos selectos; el nodo fuente (s) y el nodo terminal
(t). El problema consiste en encontrar la mayor cantidad de flujo que se
puede mandar desde s hasta t respetando las capacidades de los arcos.

El problema de flujo máximo también tiene la propiedad de integridad.


Existen distintos algoritmos para resolver este problema. La mayoría se
basan en la idea de camino aumentativo. Un camino aumentativo es un
camino en la red, que permite aumentar la cantidad de flujo desde s
hasta t: mandándolo directamente o redirigiendo el flujo existente

Otro tipo de modelo tiene un número en cada arco, pero ahora el


número corresponde a la capacidad. Esto limita el flujo sobre el arco (es
el máximo flujo por arco). Por ejemplo, en un sistema de distribución la
capacidad podría estar limitada por la cantidad de material (digamos
toneladas) que pueden ir sobre un canal de distribución dado. Podríamos
entonces estar interesados en la capacidad de la red, para saber cuanto
puede enviarse desde un nodo fuente a un nodo destino? Usando la
misma red anterior, tratando los números como capacidades, ¿cuánto
puede enviarse desde LA hasta Boston?
Red de Distribución

Asociado al flujo máximo está el "cuello de botella": un conjunto de


arcos cuyas capacidades están igualadas a su flujo máximo, y que al
eliminarlas no existe una trayectoria de origen al destino en la red. Este
es actualmente un resultado no-trivial el mostrar que el flujo máximo es
igual al tamaño del mínimo cuello de botella. Es una tarea interesante el
tratar de encontrar el cuello de botella en el ejemplo.

Nota: Los modelos del flujo máximo ocurren en aplicaciones donde el


costo no está en juego, y el objetivo es maximizar el número de items
manejados (en un sentido amplio). Aquí tenemos un problema similar
que puede tratarse por el flujo máximo.

Una Red de Transporte es una grafica dirigida, simple, con pesos y que
debe cumplir las siguientes:

Poseer una fuente o vértice fijo que no tiene aristas de entrada.

Poseer un sumidero o vértice fijo que no tiene arista de salida

El peso Cij de la arista dirigida de i a j llamado capacidad de “ij” es


un numero no negativo.

Este es un ejemplo de una red que parte de un punto a que es un Muelle


y llega a un punto z que es una refinería.
Definición:

Sea “G” una red y sea “Cij” la capacidad de la arista dirigida (ij) se
dice que un flujo F en G asigna a cada arista dirigida (ij) un numero no
negativo Fij tal que debe cumplir:

Fij " Cij

Para todos los vértices que no sea fuente ni sumidero se cumple:


ec. 8.1.1 (esta es la ecuación de conservación de flujo)

Teorema 1:

Dado un flujo F en una red el flujo de salida de la fuente es igual


al flujo de entrada del sumidero.

En una red G, el flujo máximo es un flujo máximo. Generalmente


existen varios flujos con el mismo valor máximo. Para encontrar el flujo
máximo consideraremos un flujo inicial en cada arista igual a cero,
después se determina un camino específico de la fuente al sumidero y
se incrementa el flujo.

Si una arista esta dirigida hacia la fuente decimos que esta arista
esta dirigida en forma impropia, en caso contrario esta dirigida en forma
propia.

Si se determina un camino P de la fuente al sumidero en donde


cada arista de P esta orientada en forma propia y el flujo en cada arista
es menor que la capacidad de la arista, es posible aumentar el valor de
flujo.

Es posible incrementar el flujo en ciertos caminos de la fuente al


sumidero que tenga aristas orientadas en forma impropia y propia. Sea
P un camino de “a” a “z” y sea “x” un vértice en P que no sea “a” ni ”z”

Ambas aristas están orientadas en forma propia, en este caso, si


incrementamos el flujo en ", el flujo en la entrada en x seguirá siendo
igual al flujo de salida de x.

Si incrementamos el flujo en e2 en ", debemos disminuir el flujo en


e1 en " de modo que el flujo de entrada en x siga siendo igual al flujo de
salida en x.
Es análogo en el caso b

Disminuimos el flujo en ambas aristas. En cada caso las asignaciones


resultantes de las aristas dan como resultado un flujo.

Para realizar estas alteraciones debemos tener un flujo menor que


la capacidad en una arista orientada en forma propia y un flujo distinto
de cero en una arista orientada en forma impropia.

Teorema 2:

Sea P un camino de “a” a ”z” en una red G tal que:

Para cada arista (i,j) de P, orientada en forma propia.

Fij <Cij

Para cada arista (i,j) de P, orientada en forma impropia

0 <Fij

Se define

F'ij =

Si no existieran caminos que concuerden con el teorema 2, el flujo


es máximo, entonces se considera el algoritmo:

Iniciar con un flujo


Buscar un camino que satisfaga con las condiciones del teorema 2
Si no existe el camino el flujo es máximo.
Se incrementa el flujo en ", y se regresa a línea 2.

A dicho algoritmo se le llama Algoritmo etiquetado.

Ejemplo: Para este ejemplo hemos usado una parte de la flota de la


empresa multinacional ESSO.

La planta de ESSO-Texaco para el aeropuerto internacional de El


Salvador posee dos tanques que son capaces de contener 180,000
galones de combustible para avion jet. Ambas distribuidoras depositan
combustible en los mismos tanques, la ESSO esta encargada de
depositar en los tanques de las 23:30 a las 6:00 y de las 6:00 en
adelante se recibe producto de Texaco. Los camiones de la ESSO salen
de la base hacia la refinería a cargar combustible o si ya están cargados,
se dirigen directamente hacia la planta del aeropuerto a descargarlo. La
siguiente red representa las posibles rutas que pueden tomar los
camiones y sus respectivos tiempos:

Por medio del diagrama nos podemos dar cuenta que un camión que no
esta cargado de combustible no puede partir mas tarde de las 23:30 y
cargar combustible ya que llegaría después de las 5:00 y un camión
tarda una hora en descargar todo su combustible, lo cual provocaría que
chocaran los horarios de los camiones ESSO con los horarios de los
camiones de Texaco. Un camión ya cargado puede salir lo mas tarde a
las 3:30 de la mañana para llegar exactamente a las 5:00. Estas
restricciones de tiempo se deben a que todos los camiones de ESSO
tienen un limite de velocidad por seguridad que es de 70 kmh y los
tiempos ya están medidos.

El problema dos que escogimos esta enfocado siempre a los camiones


de la empresa ESSO, pero en este caso enfocado a la longitud de los
trayectos. Para tener una idea más amplia de lo que se habla,
colocamos el siguiente mapa:
El tiempo que se recorre en cada uno de los trayectos y los trayectos
mismos se representan en la siguiente red:

Es evidente que el camino 2 es el más adecuado por el tiempo que utiliza que es
de 30 minutos menos que el camino 1.

Para el caso G es una red con una fuente a y un sumidero z luego la capacidad de
las aristas i,j es Cij

3.8.3 TEOREMA DEL CORTE MINIMAL

Un corte (P, P) en G consiste en un conjunto P de vértices y de su


complemento P de P, con a Є P y z Є P

Si N=(v,e) es una red de transporte y C es un conjunto de corte para el


grafo no dirigido asociado con N, entonces C es un corte, o corte a-z, si
la eliminación de las aristas de C de la red produce la separación de a y
z.

En esta figura se muestra los diferentes cortes que se pueden realizar a


un grafo:
b 4 d

5 5
2
a 5 z
6
7
6
g 5 h
TEOREMA DE CORTE MINIMO

Se le llama teorema de corte mínimo aquel corte que contiene el mismo


número tanto en el flujo como en las capacidades, es decir, en sus lados
de corte.

Sea G una red y consideremos el flujo F al concluir el algoritmo. Algunos


vértices están etiquetados y otros no. Sea P(P) el conjunto de vértices
etiquetados (no etiquetados). (Recuerde que P denota el complemento
de P.) Entonces la fuente a está en P y el sumidero z está en P. El
conjunto S de aristas (V,W), con v Є P Y w Є P es un Corte, y la suma
de las capacidades de las aristas en S es la Capacidad del corte.
Veremos que este corte tiene una capacidad mínima y, como un corte
mínimo corresponde aun flujo máximo, el flujo F es máximo.
Comenzamos con la definición formal de corte.

En esta sección, G es una red con fuente a y sumidero z. La capacidad


de la arista (i.j) es Cij.

Un Corte (P,P) en G consta de un conjunto P de vértices y el


complemento P de P, con a Є P y z Є P.

Un corte en una red. La línea punteada divide los vértices en los


conjuntos P= {A,B,C,D} y P={C,E,F,Z} produciendo el corte (P,P).
2,2 d
b

5,4 4,2

a z
2,2

3,2 5,4
g h
2,2

La capacidad del corte (P,P) es el número

3.8.4 PAREOS.

Un pareo para G es un conjunto de lados E los cuales no tienen vértices


comunes. Al pareo E que contiene el máximo número de lados se le
conoce como pareo maximal para G.

Un pareo completo para G es un pareo o parejamiento E que contiene


la siguiente propiedad: si v Є V, entonces (v,w) Є E, para algún w Є W.
Un pareo maximal para G es el pareo E que contiene el máximo número
de lados.

Sea G=(V,E) un grafo bipartito con V dividido como X U Y. (Cada arista


de E tiene la forma {X,Y}, con x Є X y y Є Y. )

a) Un emparejamiento de G es un subconjunto de E tal que ningún


par de aristas comparte un vértice en X o en Y.
b) Un emparejamiento completo de X en Y es un emparejamiento de
G tal que cada x Є X es el extremo de un arista.
C1
S1

C2 S2

C3 S3

C4 S4

S5

Este es un problema puede reducirse a encontrar el flujo maximal en


una red:

A J1
J2
B J3

C
J4
D
J5

A=J2 Y J5
B=J2 Y J5
C=J1, J3, J4 Y J5
D=J2 Y J5
Supóngase que 4 personas A, B, C, y D llenan solicitudes para
cinco trabajadores j1,j2, j3, j4 y j5. Considérese que el solicitante está
calificado para A=j2 y j5, el B esta calificado B=j2 y j5, el C=j1, j3, j4 ,
j5 y el D= j2 y j5

La situación puede ser modelada por el grafo de la figura anterior


donde los vértices representan a los solicitantes y a los trabajos. Un
lado une a un solicitante con el trabajo para el cual esta calificado. Es
posible demostrar que no se puede parear un trabajo con cada
solicitante; basta considerar que A, B y D están calificados solo para los
trabajo J2 y J5. Si A y B se les asigna un trabajo, no queda trabajo
alguno para D. Por lo tanto no existe asignación de trabajo para A, B, C
y D.

En el ejemplo anterior consiste en hallar trabajos para las


personas calificadas. Un pareo maximal determina trabajos para el
máximo numero de personas y se indican con líneas gruesas. Un pareo
completo halla trabajo para todos los solicitantes. Se prueba que el
grafo anterior no es un pareo completo.

Ejemplo: En la siguiente figura el pareo con líneas gruesas que aparece


en maximal y completo. Este ejemplo también puede modelarse como
un problema de redes.

w
A

X
B
Y
C

Z
Modele el problema de esta figura como un problema de redes:

A J1

J2

J3
C

J4
D

J5

En primer lugar se asigna la capacidad 1 a cada lado del grafo. A


continuación se agrega una superfuente a y lados con capacidad 1 que
van desde a a cada lado uno de A,B,C y D. finalmente, se introduce un
superdeposito z y lados de capacidad 1 en cada lado que van de J1,J2,
J3, J4 Y J5 a z .

El teorema siguiente relaciona las redes pareadoras o de pareo, y


los flujos.
Sea G un grafo un grafo dirigido bipartido con conjuntos disjuntos
de vértices V y W, en el cual los lados están dirigidos de los vértices de
V a los vértices de W (cualquier vértice de G está en V o en W, pero no
en ambos).

a) Un flujo en la red de parejamiento proporciona un pareo en


G. El vértice v V es pareado con el vértice w W si y solo
si el flujo en el lado (v, w) es 1.
b) Un flujo maximal corresponde a un pareo maximal.
c) Un flujo de valor V corresponde a un pareo completo.

Demostración sea a (z) la fuente (o el deposito) en la red de


parejamiento y supóngase que se tiene un flujo dado.

Supóngase además, que el lado (v,w), v V, w W, tiene flujo 1. El


único lado que llega al vértice v es (a, v). Este lado debe tener flujo
igual a 1; así que el flujo en el vértice v es igual a 1. Debido a que el
flujo que sale de v es también el único lado de la forma (v, x) que tiene
flujo 1 es (v, w). Similarmente el único lado de la forma (x, w) que tiene
flujo 1 es (v, w). Luego su E es el conjunto de los lados de forma
(v,w)que tiene flujo 1, entonces los elementos de E no tienen vértices
comunes por lo tanto, E es pareo para G.

Las partes (b) y (c) se deducen el hecho de que l número de vértices en


v pareados es igual al valor del flujo correspondiente.

Debido a que un flujo maximal proporciona un parejamiento maximal en


el algoritmo, aplicado a una red de pareo, produce un parejamiento
maximal.

A continuación se estudiara la existencia de un parejamiento completo a


un grafo dirigido y bipartido G que tiene conjuntos de vértices V y W. si
S V, se define:
R(S)= {w Wlv S y (v,w) es un lado en G}.

Supóngase que G tiene un pareo completo si S V, debe tenerse:


lSl≤lR(S)l.
Si sucede que lSl≤lR(S)l para todos los subconjuntos de S de V,
entonces G tiene un pareo completo. Ese resultado fue obtenido por
primera vez por el matemático inglés Philip Hall y es conocido como el
teorema de casamiento de Hall, ya que si v es un conjunto de
hombres y W uno de mujeres y existen lados desde v V a w W, v y w
son compatibles, entonces el teorema da una condición en el cual cada
hombre puede casarse con una mujer compatible con el.

3.9 REDES DE PETRI.

Las redes de Petri representan una alternativa para modelar sistemas,


sus características hacen que, para algunos problemas las redes de Petri
funcionen de una manera natural.

Las redes de petri como ahora conoceremos a las redes de Petri (Petri
Net) fueron inventadas por el alemán Karl Adam Petri en 1962. En su
tesis doctoral "kommunikation mit automaten" (Comunicación con
autómatas), establece los fundamentos para el desarrollo teórico de los
conceptos básicos de las redes de petri.

Las redes petri son consideradas una herramienta para el estudio de los
sistemas. Con su ayuda podemos modelar el comportamiento y la
estructura de un sistema, y llevar el modelo a condiciones límite, que en
un sistema real son difíciles de lograr o muy costosas. La teoría de la
red petri ha llegado a ser reconocida como una metodología establecida
en la literatura de la robótica para modelar los sistemas de manufactura
flexibles.

Comparada con otros modelos de comportamiento dinámico gráficos,


como los diagramas de las máquinas de estados finitos, las redes de
petri ofrecen una forma de expresar procesos que requieren sincronía. Y
quizás lo más importante es que las PN pueden ser analizadas de
manera formal y obtener información del comportamiento dinámico del
sistema modelado.

Para modelar un sistema se usan representaciones matemáticas


logrando una abstracción del sistema, esto es logrado con las PN, que
además pueden ser estudiadas como autómatas e investigar sus
propiedades matemáticas.

Las redes de Petri se utilizan para modelar el comportamiento dinámico


de sistemas discretos.

Se componen de dos tipos de objetos:

Las plazas que permiten representar los estados del sistema


mediante la utilización de marcas.
Las transiciones que representan el conjunto de acciones a realizar
cuando se cumplen unas determinadas precondiciones en el
sistema.

Mediante una red de Petri puede modelarse un sistema de


evolución en paralelo compuesto de varios procesos que cooperan para
la realización de un objetivo común. : Una red de Petri es un conjunto
formado por R={P, T, Pre, Post}

P: Conjunto de plazas de cardinal n.


T: Conjunto de transiciones de cardinal m.
Pre: Aplicación de incidencia previa. Viene definida como:
Pre:PxT --> Naturales
Post: Aplicación de incidencia posterior. Viene definida como:
Post:PxT --> Naturales}

Para modelar una red petri debemos reconocer las condiciones y


los eventos que se dan en él, de esta manera podemos hacer la analogía
entre el sistema y el modelo, al conocer las condiciones que se
necesitan para dar cierto evento podemos diseñar los módulos y
relacionarlos con otras condiciones, y para esto necesitamos saber la
estructura de una PN para saber que corresponde a una condición y un
evento en la red.

La Red Petri se compone de cuatro partes:

Un conjunto de nodos.
Un conjunto de transiciones.
Una función de entrada y
Una función de salida.

Las funciones de entrada y salida relacionan a los nodos y a las


transiciones. La función de entrada es un mapeo de una transición tj a
una colección de nodos conocidos como los nodos de entrada de una
transición. La estructura de una PN es definida por los nodos, las
transiciones, la función de entrada y la función de salida.

Una red de Petri es un grafo dirigido bipartito, con un estado inicial,


llamado marcación inicial. Los dos componentes principales de la red de
Petri son los sitios (también conocidos como estados) y las transiciones.
Gráficamente, los sitios son dibujados como círculos y las transiciones
como barras o rectángulos. Las aristas del grafo son conocidas como
arcos. Estos tienen un peso específico, el cual es indicado por un
número entero positivo, y van de sitio a transición y viceversa. Por
simplicidad, el peso de los arcos no se indica cuando éste es igual a 1.
Un arco que esté etiquetado con k puede ser interpretado como k arcos
paralelos.

Una marca U es una característica de la red petri, marca U es una


asignación de tokens a lared petri . Un token es un concepto primitivo
de una red perti, un número de ellos reside en los nodos y se mueve
entre ellos; los tokens son la parte dinámica de las redes de petri, su
número puede variar entre nodos y son los que determinan la situación
de la red en un momento determinado.

Una marca U de una red de petri P=(P,T,I,O) es una función U: P N; es


decir el nodo pi tiene U(pi) tokens. La red de petri puede ser considerada
también como un modelo de flujo de información, en donde el
comportamiento dinámico de los tokens representa el flujo. Dicho de
otra manera la información depende de lo que la red de petri esta
modelando.
De manera formal, una marcación M es definida como M : P

. También es conveniente, en algunos casos, el denotar


una marcación M de m sitios como un vector-m donde el i-ésimo
componente es denotado como M(pi), por ejemplo M =
<M(p1)...,M(pm)>.

El estado del sistema que la red esté modelando es representado con la


asignación de enteros no-negativos a los sitios. Esta asignación es
conocida como una marcación, la cual es representada gráficamente
mediante unos pequeños círculos negros dentro de un sitio p, llamados
tokens . Si el número de tokens es demasiado grande, los k tokens son
representados con un número no-negativo dentro del correspondiente
sitio.

Típicamente, los estados representan algún tipo de condición en el


sistema, y una transición representa un evento. Un sitio de entrada
(salida) a una transición representa el pre- (post-) condiciones. Los
tokens pueden tener muchas interpretaciones. Por ejemplo, cuando un
sitio está marcado con un token, este puede representar que la
correspondiente condición es verdadera. En otros casos, k tokens pueden
representar k recursos, por ejemplo, el número de clicks del mouse realizados.
Debido a que las redes de Petri pueden modelar muchos tipos de sistemas, lo que
los sitios, transiciones y tokens representen varía enormemente.

La representación gráfica de una PN es importante porque al observar el modelo


del sistema en forma gráfica y observar como cambia de un estado a otro puede
mantener la atención y dar una perspectiva más clara a quién esté analizando el
problema.

Definición: Una gráfica G de una PN P=(P,T,I,O) es una gráfica múltiple bipartita


dirigida G=(V,A) donde V={ v1, v2, …, vn} es un conjunto de vértices y A={ a1, a2,
…, an} es un conjunto de arcos dirigidos ai=(vj,vk) con vj, vk Î V, V=PÈ T para cada
ai Î A se cumple aj=(vj,vk) Þ vj Î P, vk Î T, ó vj Î T, vk Î P.

Un circulo O representa un nodo; una barra | representa una transición. Los arcos
o curvas conectan los nodos y las transiciones, si un arco va de un nodo a una
transición, el nodo será una entrada y si el arco va de una transición a un nodo, el
nodo será una salida de esa transición. Los tokens son representados por
pequeños puntos.

Ejemplo: Se utilizará las redes petri para representar un ejemplo de un elevador;


en esta especificación cada piso p del edificio (el cual tiene m pisos) será

representado por un sitio Pp, , en la red de Petri; un elevador está


representado por un token. Un token en Pp indica que un elevador está en el piso
p.

La primera condición es:

C1: Cada elevador tiene un grupo de botones, uno para cada piso.
Los botones se iluminan al presionárseles y hacen que el elevador
visite el piso correspondiente. La iluminación se cancela cuando el
piso es visitado por el elevador.

Para incorporar esto en la especificación es necesario la adición de


más sitios. El botón del elevador para el piso p es representado en la

red de Petri por el sitio BEp, . De una manera más precisa,


debido a que existen n elevadores el sitio debe ser denotado como BEf,e,

con , . Pero para hacer más simple la notación, el


subíndice e que representa al elevador será suprimido. Un token en BEp
indica que el botón del elevador para el piso p está iluminado. Debido a
que el botón debe estar iluminado la primera vez que este sea
presionado y que las subsecuentes ocasiones en que se presione ese
botón serán ignoradas. Esto se muestra en la figura

Red de Petri para representar un botón del elevador

Primero, supóngase que el botón BEp no está iluminado. No existe


ningún token en el sitio, debido a la presencia del arco inhibidor, la
trancisión BEp presionado está habilitada. La transición es disparada, y
un nuevo token es puesto en BEp .
Fig. Red de Petri para representar un botón del elevador,
después de haber presionado EB

Ahora, no importa cuantas veces sea presionado el botón, la


combinación del arco inhibidor y el token provocan que la trancisión BEp
presionado no puede ser habilitada. Por lo tanto, no es posible que
exista más de un token en el sitio BEp. Supongamos que el elevador va
a viajar del piso g al piso p. Debido a que el elevador está en el piso g
un token está en Pg, como se muestra en la figura 1. La transición
elevador en acción es habilitada y entonces es disparada. Los tokens
en BEp y Pg son consumidos, apagando de esta manera la luz en el
botón BEp, y un nuevo token aparece en Ff, figura 3; el disparo de esta
transición lleva al elevador del piso g al piso p.

Fig. Red de Petri para representar un botón del elevador,


después de haber disparado EB

La segunda condición del problema indica:

C2: Cada piso, exceptuando al primer y último piso, tienen dos


botones, uno para solicitar un elevador ``hacia arriba'' y otro para
pedir un elevador ``hacia abajo''. Estos botones se iluminan al
presionárseles. Dejan de estar iluminados cuando el elvador visita
ese piso y se mueve en la dirección deseada.

Los botones de piso son representados por los sitios BPpu y BPpd,
los cuales representan los botonres para solicitar un elevador hacia
arriba y un elevador hacia abajo, respectivamente. De manera más
precisa, el piso 1 tiene un botón BP1u, y el piso m tiene un botón BPmd,
los pisos intermedios tienen dos botones, BPpu y BPpd, 1 < p < m. La
figura 4 muestra el momento en que el elevador llega al piso p desde el
piso g con uno o ambos botones iluminados. Si ambos botones están
iluminados, sólo uno se apagará.

Fig. Red de Petri para representar los botones de piso

La tercera condición dice:

C3: Cuando un elevador no tiene ninguna petición de servicio, este


debe permanecer con las puertas cerradas en el piso en que se
encuentre en ese momento.

Debido a que no existen peticiones de servicio del elevador, ninguna


transición elevador en acción es habilitada.
Lugar de entrada, salida, descarga

En una red de Petri, si una arista va del lugar p a la transición ,


decimos que p es un lugar de entrada para la transición t. Un lugar
de Salida se define de manera análoga. Si cada lugar de entrada de
una transición t tiene al menos un elemento, decimos que t está
activada.

La descarga de una transición elimina un elemento de cada lugar de


entrada y agrega un elemento a cada lugar de salida.

En la red de petri de la figura_1 los lugares p1 y p3 son lugares de


entrada para la transición t1. Las transiciones t1 y t2 están activadas,
pero la transición t3 no. Si descargamos la transición t1, obtenemos la
red de Petri marcada de la figura_2. Ahora, la transición t3 esta
activada. Si entonces descargamos la transición t3, obtenemos la red
que se muestra. En este momento, ninguna transición está activada y
por tanto ninguna se puede descargar.

Al modelar una situación, la descarga de una transición simula la


ocurrencia de ese evento. Por supuesto, un evento puede ocurrir sólo si
cumplen todas las condiciones para su ejecución; es decir, la transición
se puede descargar sólo si está activada. Al colocar elementos en los
lugares p1, p2 y p3 de la figura_3, mostramos que se cumplen las
condiciones para ejecutar las instrucciones A=1, B=2 y C=3. El
programa está listo para su ejecución. Como las transiciones A=1, B=2
y C=3 están activadas, se pueden descargar en cualquier orden o de
manera concurrente. La transición C=B+C sólo se activa si los lugares
p5 y p6 tienen elementos. Pero estos lugares tendrán elementos sólo si
las transiciones B=2 y C=3 se han descargado. En otras palabras, la
condición bajo la cual puede ocurrir el evento C=B+C es que B=2 y C=3
hayan sido ejecutadas. De esta forma modelamos las secuencias válidas
de ejecución de programas de computadora.

Entre las propiedades más importantes estudiadas en la teoría de


las redes de Petri están la supervivencia y la seguridad. La
supervivencia se refiere a la ausencia de estancamientos y la seguridad
se relaciona con la capacidad limitada de la memoria. Una red de petri
marcada está estancada si ninguna transición se puede descargar.

Redes Acotadas, seguras y vivas

Un marcado M de una red de petri está vivo si, partiendo de M, sin


importar la serie de descargas realizadas, es posible realizar cualquier
transición dada mediante alguna secuencia de descargas adicionales y
de esta manera P nunca se estancará sin importar la serie de descargas
de transiciones.

El marcado M de la red de la figura_4 está vivo. Para ver esto,


observamos que la única transición del marcado M que se puede
descargar es t1, la cual produce el marcado M´. La única transición del
marcado que puede descargarse es t2, la cual produce el marcado M´´.
La única transición del marcado M´´que se puede descargar es t3, la
cual nos regresa al marcado M.
El marcado de la figura 2 no está vivo, pues después de descargar
la transición A = 1 ya no puede volver a descargarse. Podemos tener
redes pseudo-vivas en las que existen algunas transiciones vivas y no se
bloquea totalmente.
Ejemplo:

Un lugar está acotado si existe tal que para todo marcaje

accesible se tiene . La red misma está acotada si existe una


cota uniforme para todos sus lugares. En el espacio de marcajes,
consideremos el orden dado por el producto del orden usual de . Para

cada marcaje inicial , sea la colección de marcajes


accesibles desde en R. Se ve directamente que si la red R está
acotada para el marcaje inicial , en otras palabras, si el conjunto

está acotado en , entonces el marcaje inicial es un

elemento maximal de . Sea R una red de Petri y sea un


marcaje inicial.

En otras palabras un marcado M para una red de petri está


acotado si existe algún entero positivo n con la propiedad de que, en
cualquier secuencia de descarga, ningún lugar recibe más de n
elementos. Si un marcado M está acotado y en cualquier secuencia de
descarga ningún lugar recibe más de un elemento, decimos que M es
un marcado seguro.
Los marcados de la figura_4 son seguros. El marcado de la figura_5
no es seguro, pues, como se muestra, si se descarga la transición t1, el
lugar p2 entonces tendrá dos elementos.
Ejemplo:

1) Demuestre que la marca M de la figura es viva y acotada.

M‟
Descarga de t2
Descarga de t3

M‟‟

SI es VIVA debido a que se puede descargar las transiciones t1, t2 y t3;


además de tener una característica (cíclica) y Si es ACOTADA debido a
que descargando la transición t1, t2 y t3 se obtienen en la marca M‟ y M‟‟,
respectivamente, las mismas fichas que estaban en la M inicial.
2) En la figura M:

a) Es M viva?

b) Es M segura?

c) Es M acotada?

a)

Descargar t1

No es VIVA debido a que ninguna transición se puede descargar.


b)

Descargar t1

No es SEGURA debido a que en un lugar no se puede tener más de 1


ficha.

c)

Descargar t1

Si es ACOTADA debido a que descargando la transición t1 se obtienen en


la marca M‟ las mismas fichas que estaban en la M inicial.
3) Dé un ejemplo de Red de Petri que tenga una marca segura pero no
viva.

Si es SEGURA debido a que ningún lugar tiene más de 1 ficha y No es


VIVA debido a que descargando t3 en la siguiente marca no se puede
descargar t1 porque la transición no está activada.
UNIDAD 4 SISTEMAS NUMÉRICOS

4.1 Representación de la información.


4.1.1 Introducción.
4.1.2 tipos de sistemas numéricos.
4.2 Conversiones.
4.2.1 Decimal a binario, Octal, Hexadecimal
4.2.2 Binario a Decimal, Octal, Hexadecimal.
4.3 Álgebra booleana.
4.3.1 Circuitos combinatorios.
4.3.2 Propiedades.
4.3.3 Funciones lógicas.
4.3.4 Aplicaciones.

ACTIVIDADES DE APRENDIZAJE
• Buscar y seleccionar información sobre los conceptos de sistemas
numéricos, tipos de sistemas y álgebra booleana. (Resumen
Conceptual)
• Realizar prácticas para que comprenda el uso de sistemas
numéricosy su conversión.
• Realizar prácticas para que comprenda el uso del álgebra booleana
en las funciones lógicas.
• Analizar, por equipo, los circuitos combinatorios.
AUTO EVALUACION
CONTENIDO

4.1 REPRESENTACIÓN DE LA INFORMACIÓN.


4.1.1 INTRODUCCIÓN.

A lo largo de la historia se han utilizado multitud de sistemas numéricos diferentes.


Las primeras formas de notación numérica consistían simplemente en líneas
rectas, verticales u horizontales; cada una de ellas representa el numero 1.
Por lo que este sistema era extremadamente engorroso para manejar grandes
números y para hacer operaciones. Ya en el año 3400 a.C. en Egipto y
Mesopotamia se utilizaba un símbolo específico para representar el número 10.
En la notación cuneiforme de Babilonia el símbolo utilizado para el 1, era el
mismo para el 60 y sus potencias; el valor del símbolo venía dado por su contexto.
En la antigua Grecia coexistieron dos sistemas de numeración paralelos:
El primero de ellos estaba basado en las iniciales de los (PI).
En el segundo sistema eran usadas todas las letras del alfabeto griego más
otras tres tomadas del alfabeto fenicio como guarismos (la ventaja de este
sistema era que con poca cantidad de números se podían expresar grandes
cifras; pero había que saberse de memoria un total de 27 símbolos).

La numeración romana es un sistema (tan bien conocido por nosotros) que tuvo
el mérito de ser capaz de expresar los números del 1 al 1.000.000 con solo siete
símbolos: I para el 1, V para el 5, X para el 10, L para el 50, C para el 100, D para
el 500 y M para el 1000. Es importante acotar que una pequeña línea sobre el
número multiplica su valor por mil. En la actualidad los números romanos se usan
para la historia y con fines decorativos. La numeración romana tiene el
inconveniente de no ser práctica para realizar cálculos escritos con rapidez.

La numeración arábiga es un sistema corriente de notación numérica que es


utilizado hoy casi en todo el mundo. Este sistema fue desarrollado primero por los
hindúes y luego por los árabes que introdujeron la innovación de la notación
posicional; en la que los números cambian su valor según su posición. La notación
posicional solo es posible si existe un número para el cero. El guarismo 0 permite
distinguir entre 11, 101 y 1001 sin tener que agregar símbolos adicionales.
Además todos los números se pueden expresar con sólo diez guarismos, del 1 al
9 más el 0.
La notación posicional ha facilitado muchísimo todos los tipos de cálculos
numéricos por escrito.

Toda esta historia da como resultado dos definiciones importantes:

NUMERACIÓN.- Es un sistema de símbolos o signos utilizados para expresar los


números.
En matemáticas, varios sistemas de notación que se han usado o se usan para
representar cantidades abstractas denominadas números. Un sistema numérico
está definido por la base que utiliza. La base de un sistema numérico es el número
de símbolos diferentes o guarismos, necesarios para representar un número
cualquiera de los infinitos posibles en el sistema.

La posición de una cifra indica el valor de dicha cifra en función de los valores
exponenciales de la base. En el sistema decimal, la cantidad representada por uno
de los diez dígitos -0, 1, 2, 3, 4, 5, 6, 7, 8 y 9- depende de la posición del número
completo.

NUMEROS.- Palabra o símbolo utilizado para designar cantidades o entidades,


que se comporten como cantidades. Es la expresión de la relación existente entre
una cantidad y otra magnitud que sirve de unidad. Se pueden considerar números
todos aquellos conceptos matemáticos para los cuales se definen dos
operaciones, de adición y multiplicación, cada una de las cuales obedece a las
propiedades conmutativa y asociativa.

4.1.2 TIPOS DE SISTEMAS NUMÉRICOS.


Los sistemas de numeración son conjuntos de dígitos usados para representar
cantidades, así se tienen los sistemas de numeración decimal, binario, octal,
hexadecimal, romano, etc. Los cuatro primeros se caracterizan por tener una base
(número de dígitos diferentes: diez, dos, ocho, dieciséis respectivamente) mientras
que el sistema romano no posee base y resulta más complicado su manejo tanto
con números, así como en las operaciones básicas. Vamos a entonces a centrar
nuestra atención en los cuatro primeros sistemas que son los que nos ocupan en
esta materia y sobre los cuales vamos a trabajar, y que para la computación son
básicos.

EL SISTEMA DECIMAL
El sistema de numeración decimal es el más usado universalmente, tiene como
base el número 10, o sea que posee 10 dígitos (o símbolos) diferentes (0, 1, 2, 3,
4, 5, 6, 7, 8, 9). El sistema de numeración decimal fue desarrollado por los
hindúes, posteriormente lo introducen los árabes en Europa, donde recibe el
nombre de sistema de numeración decimal o arábigo. Si se aplica la notación
posicional al sistema de numeración decimal entonces el dígito n en la posición
contada a partir del punto decimal hacia la izquierda iniciando en 0, tiene el valor
que se multiplica por: (10n).

Este valor es positivo y es mayor o igual que uno si el dígito se localiza a la


izquierda del punto decimal y depende del dígito A, en cambio el valor es menor
que uno si el dígito se localiza a la derecha del punto decimal. Por ejemplo el
Número 2634 en base decimal se puede representar con su valor posicional de la
siguiente forma: 2634 = 2 x 103 + 6 x 102 + 3 x 101 + 4 x 100

Es importante mencionar que para indicar la base de un numero se puede este


indicar escribiendo su base como un subíndice. Así por ejemplo el numero 2634
en base decimal se puede representar como 263410.
EL SISTEMA BINARIO
El sistema de numeración más simple que usa la notación posicional es el sistema
de numeración binario. Este sistema, como su nombre lo indica, usa solamente
dos dígitos (0,1). Por su simplicidad y por poseer únicamente dos dígitos
diferentes, el sistema de numeración binario se usa en computación para el
manejo de datos e información.

Normalmente al dígito cero se le asocia con cero voltios, apagado, desenergizado,


inhibido (de la computadora) y el dígito 1 se asocia con +5, +12 volts, encendido,
energizado (de la computadora) con el cual se forma la lógica positiva. Si la
asociación es inversa, o sea el número cero se asocia con +5 volts o encendido y
al número 1 se asocia con cero volts o apagado, entonces se genera la lógica
negativa.

A la representación de un dígito binario se le llama bit (de la contracción binary


digit) y al conjunto de 8 bits se le llama byte, así por ejemplo:

El numero binario 110 contiene 3 bits.


El numero binario 1001 contiene 4 bits.
El numero binario 1 contiene 1 bit.

Como el sistema binario usa la notación posicional entonces el valor de cada


dígito depende de la posición que tiene en el número.

La computadora está diseñada sobre la base de numeración binaria (base 2).

Por eso este caso particular merece mención aparte. Siguiendo las reglas
generales para cualquier base expuestas antes, tendremos que:
Existen dos dígitos (0 o 1) en cada posición del número.
Numerando de derecha a izquierda los dígitos de un número, empezando
por cero, el valor decimal de la posición es 2n.

EL SISTEMA OCTAL
El sistema de numeración octal es también muy usado en la computación por
tener una base que es potencia exacta de 2 o de la numeración binaria. Esta
característica hace que la conversión a binario o viceversa sea bastante simple.
El sistema octal usa 8 dígitos (0,1,2,3,4,5,6,7) para representar los números
y tienen el mismo valor que en el sistema de numeración decimal y su base es 8.

EL SISTEMA HEXADECIMAL
Un gran problema con el sistema binario es la gran cantidad de dígitos que
requiere la representación de un numero relativamente pequeño (verbosidad).
Para representar el valor 20216 se requieren ocho dígitos binarios, la versión
decimal sólo requiere de tres dígitos y por lo tanto los números se representan en
forma mucho más compacta con respecto al sistema numérico binario.
Desafortunadamente las computadoras trabajan en sistema binario, aunque es
posible hacer la conversión entre decimal y binario.

El sistema de numeración hexadecimal, o sea de base 16, resuelve este problema


(es común abreviar hexadecimal como hex aunque hex significa base seis
y no base dieciséis).

El sistema hexadecimal es compacto y nos proporciona un mecanismo sencillo de


conversión hacia el formato binario, debido a esto, la mayoría del equipo de
cómputo actual utiliza el sistema numérico hexadecimal. Como la base del sistema
hexadecimal es 16, cada dígito a la izquierda del punto hexadecimal representa
tantas veces un valor sucesivo potencia de 16.

Cada dígito hexadecimal puede representar uno de dieciséis valores entre 0 y


1516. Como sólo tenemos diez dígitos decimales, necesitamos inventar seis
dígitos adicionales para representar los valores entre 1016 y 1516.

En lugar de crear nuevos símbolos para estos dígitos, utilizamos las primeras
letras del alfabeto de la A a la F. La equivalencia entre hexadecimal y binario es
sencilla, considere la siguiente tabla:
Esta tabla contiene toda la información necesaria para convertir de binario a
hexadecimal y viceversa, este punto se ampliara mas adelante.

4.2 CONVERSIONES.
4.2.1 DECIMAL A BINARIO, OCTAL, HEXADECIMAL
Para realizar la conversión de un número decimal a un número binario existen
básicamente dos formas, la primera que es le método de descomposición consiste
en descomponer el numero decimal como la suma de varios números que sean
potencia de 2, pero este método es bastante complejo y resulta confuso. La
segunda forma es el método del residuo, este método emplea la división repetida
por 2, esta conversión requiere dividir el numero decimal entre 2 y repetir esta
división hasta que el cociente sea 0, para desarrollar este método se siguen unos
sencillos pasos:

Se toma el número entero y se divide entre dos, si el resultado es entero el


resto será 0 y si contiene parte fraccionario el resto será 1.
Del resultado se toma nuevamente la parte entera y se divide entre dos
siguiendo el paso anterior.
Lo anterior se repetirá hasta que en el resultado ya no contenga parte
entera.
Para colocar los residuos correctamente se empieza a tomar de abajo hacia
arriba como lo muestra la flecha, en el siguiente ejemplo.

Si la cantidad a convertir tiene parte fraccionaria se hace lo siguiente:


Se toma la parte fraccionaria y se multiplica por dos, si el resultado tiene
parte entera el resto será 1 y si no tiene será 0.
Del resultado se toma nuevamente la parte fraccionaria solamente, y se
repetirá el paso anterior.
Lo anterior se repite de acuerdo a la cantidad de números que se deseen
después del punto decimal o hasta que la parte decimal sea cero.
Para colocar el resto correctamente se empieza a tomar de arriba hacia
abajo, como lo muestra la flecha del ejemplo.
Para convertir de decimal a hexadecimal se siguen los siguientes pasos:
Se toma la parte entera y se divide entre 16, del resultado se toma la parte
fraccionaria y se multiplica por 16, el resto será el resultado de la
multiplicación.
Del resultado de la división se vuelve a tomar la parte entera repitiendo el
paso anterior.
Los pasos anteriores se repiten hasta que, en el resultado de la división, ya
no tenga parte entera.
Para tomar el resto correctamente, se empieza de abajo hacia arriba.
Si la cantidad a convertir tiene parte fraccionaria se hace lo siguiente:
Se toma la parte fraccionaria y se multiplica por 16, del resultado se toma la
parte entera y se coloca en el resto.
Del resultado se toma la parte fraccionaria y este será el nuevo valor con el
que se repite el paso anterior.
Lo anterior se repite de acuerdo a la cantidad de números que se deseen
después del punto decimal o hasta que la parte decimal sea cero.
Para colocar el resto correctamente se empieza a tomar de arriba hacia
abajo.
Para realizar la conversión de decimal a octal se sigue los siguientes pasos:
Se toma la parte entera y se divide entre 8, del resultado se toma la parte
fraccionaria y se multiplica por 8, el resto será el resultado de la
multiplicación.
Del resultado de la división se vuelve a tomar la parte entera repitiendo el
paso anterior.
Los pasos anteriores se repiten hasta que, en el resultado de la división, ya
no tenga parte entera.
Para tomar el resto correctamente, se empieza de abajo hacia arriaba.
Si la cantidad a convertir tiene parte fraccionaria se hace lo siguiente:
Se toma la parte fraccionaria y se multiplica por 8, del resultado se toma la
parte entera y se coloca en el resto.
Del resultado se toma la parte fraccionaria y este será el nuevo valor con el
que se repite el paso anterior.
Lo anterior se repite de acuerdo a la cantidad de números que se deseen
después del punto decimal o hasta que la parte decimal sea cero.
Para colocar el resto correctamente se empieza a tomar de arriba hacia
abajo.
4.2.2 BINARIO A DECIMAL, OCTAL, HEXADECIMAL.
Todo numero binario tiene un equivalente en decimal, y se calcula simplemente
sumando los valores de las potencias de 2 que correspondan a las diversas
posiciones en las que el numero binario tenga un digito 1, puede haber números
binarios enteros o con partes fraccionaria. Así por ejemplo:

El número 1101012 es:


1101012 = 1*(25) + 1*(24) + 0*(23) + 1*(22) + 0*(21) + 1*(20)
1101012=32 + 16+ 4 +1
1101012 = 5310

El número 10101. 1012 es:


10101.1012 = 1*(24) + 0*(23) + 1*(22) + 0*(21) + 1*(20) + 1*(2-1) + 0*(2-1) + 1*(2
2) 10101.1012=16+ 4 +1+ 0.5 + 0.125
10101.1012 = 21.62510

Cualquier numero octal también tiene equivalente en decimal y se calcula


simplemente sumando los productos del digito octal por las potencias de 8 que
correspondan a las diversas posiciones de los valores de los dígitos octales. Como
el sistema de numeración octal usa la notación posicional entonces para el
número 3452.328 su equivalente a decimal dará como resultado lo siguiente.

El numero 3452.328 es:


3452.328 = 3*(83) + 4*(82) + 5*(81) + 2*(80) + 3*(8-1) + 2*(8-2)
3452.328= 3*512+ 4*64 + 40 + 2 + 3*0.125 + 2*0.015625
3452.328= 1536 + 256+ 40 + 2 + 0.375 + 0.03125
3452.328= 1834 + .40625
3452.328 = 1834.4062510

Para convertir cualquier numero hexadecimal a su equivalente en decimal


utilizando el valor de cada posición de los dígitos y se calcula simplemente
sumando los productos de las potencias de 16 que correspondan a la posición por
cada digito hexadecimal.

El numero 35716 es:


35716 = 3*(162) + 5*(161) + 7*(160)
35716 = 768 + 80 + 7
35716 =85510
Binario, Octal y Hexadecimal.

Las tablas siguientes nos facilitan las conversiones de octal a binario y de


hexadecimal a binario.

Su aplicación es muy fácil. Para convertir de octal a binario: se va tomando los


números de izquierda a derecha, número por número se busca su equivalencia en
la tabla y se acomoda hasta formar el número binario.

Para convertir de binario a octal: el número binario se divide en bloque de 3


unidades de derecha a izquierda, si el último bloque no se completa se aumentan
0 hasta que se complete. Se va buscando la equivalencia por bloques en la tabla,
de izquierda a derecha.

Ejemplos:
573 base 8 base 2
5738 = 1011110112
10100010 base 2 base 8
010 100 010 2 = 2428
Para convertir de hexadecimal a binario: se va tomando los números de izquierda
a derecha, número por número se busca su equivalencia en la tabla y se acomoda
hasta formar el número binario. Para convertir un número hexadecimal en binario,
simplemente sustituya los correspondientes cuatro bits para cada dígito
hexadecimal, por ejemplo, para convertir 0ABCD(16) en un valor binario:

0 A B C D (hexadecimal)
0000 1010 1011 1100 1101 (Binario)

Ejemplo.
1BC8 base 16 base 2
1BC816 = 00011011110010002
Para convertir de binario a hexadecimal: el número binario se divide en bloques de
4 unidades de derecha a izquierda, si el último bloque no se completa se
aumentan 0 hasta que se complete. Se va buscando la equivalencia por bloques
en la tabla, de izquierda a derecha.

La conversión de formato binario a hexadecimal es casi igual de fácil, en primer


lugar necesitamos asegurar que la cantidad de dígitos en el valor binario es
múltiplo de 4, en caso contrario agregaremos ceros a la izquierda del valor, por
ejemplo el número binario 1011001010, la primera etapa es agregarle dos ceros a
la izquierda para que contenga doce dígitos 0010 1100 1010. La siguiente etapa
es separar el valor binario en grupos de cuatro bits, así:

0010 1100 1010

Finalmente buscamos en la tabla de arriba los correspondientes valores


hexadecimales dando como resultado, 2CA, y siguiendo la convención
establecida:
02CA16.

Ejemplo.
010010010 base 2 base 16
0000 1001 00102 = 09216

Para convertir de hexadecimal a binario: se va tomando los números de izquierda


a derecha, número por número se busca su equivalencia en la tabla y se acomoda
hasta formar el número binario. Para convertir un número hexadecimal en binario,
simplemente sustituya los correspondientes cuatro bits para cada dígito
hexadecimal, por ejemplo, para convertir 0ABCD(16) en un valor binario:

0 A B C D (hexadecimal)
0000 1010 1011 1100 1101 (Binario)
Ejemplo.
1BC8 base 16 base 2
1BC816 = 00011011110010002
Para convertir de binario a hexadecimal: el número binario se divide en bloques de
4 unidades de derecha a izquierda, si el último bloque no se completa se
aumentan 0 hasta que se complete. Se va buscando la equivalencia por bloques
en la tabla, de izquierda a derecha.

La conversión de formato binario a hexadecimal es casi igual de fácil, en primer


lugar necesitamos asegurar que la cantidad de dígitos en el valor binario es
múltiplo de 4, en caso contrario agregaremos ceros a la izquierda del valor, por
ejemplo el número binario 1011001010, la primera etapa es agregarle dos ceros a
la izquierda para que contenga doce dígitos 0010 1100 1010. La siguiente etapa
es separar el valor binario en grupos de cuatro bits, así:

0010 1100 1010


Finalmente buscamos en la tabla de arriba los correspondientes valores
hexadecimales dando como resultado, 2CA, y siguiendo la convención
establecida:
02CA16.

Ejemplo.
010010010 base 2 base 16
0000 1001 00102 = 09216

4.3 ÁLGEBRA BOOLEANA.


Álgebra de Boole (también llamada Retículas booleanas) en informática y
matemáticas, son estructuras algebraicas que "capturan la esencia" de las
operaciones lógicas Y, O y NO, así como el conjunto de operaciones unión,
intersección y complemento.

Se denomina así en honor a George Boole, matemático inglés que fue el primero
en definirla como parte de un sistema lógico a mediados del siglo XIX.

Específicamente, el álgebra de Boole fue un intento de utilizar las técnicas


algebraicas para tratar expresiones de la lógica proposicional. En la actualidad el
álgebra de Boole se aplica de forma generalizada en diseño electrónico. Se aplicó
por primera vez en circuitos de conmutación eléctrica biestables por Claude
Shannon en 1938.

Los operadores del álgebra de Boole pueden representarse de varias formas.


A menudo se representan simplemente como AND (Y), OR (O) y NOT (NO). En
electrónica digital también se emplean la X-OR (O exclusiva) y su negaciones
NAND (NO Y), NOR (NO O) y X-NOR (equivalencia) . En matemáticas a menudo
se utiliza “+” en lugar de OR y “·” en lugar de AND, debido a que estas
operaciones son de alguna manera análoga a la suma y el producto en otras
estructuras algebraicas, y NOT se representa como una línea o una comilla sobre
la expresión que se pretende negar (NO A sería Ā o A').
Debido a los principios del álgebra booleana son hasta cierto punto abstractos, no
tuvo una aplicación importante sino hasta 1838 en que la compañía de teléfonos
BELL, realizo un análisis de los circuitos de su red telefónica utilizando álgebra
booleana.

Un álgebra booleana “B” consiste en un conjunto S que contiene dos elementos


distintos, el 0 y el 1, operadores binarios como + y * en S, y un operador unario “ ’
” en S, los cuales cumplen varias características. El álgebra Booleana es aquella
que representa operaciones básicas sobre variables que solamente pueden tomar
2 valores el 0 y el 1. Un ejemplo de una expresión booleana es:
B =X+ Y*X
B=b*c + a‟
F=A*B + A‟*B*C

4.3.1 CIRCUITOS COMBINATORIOS.


Cuando el álgebra booleana se emplea para representar los circuitos lógicos son
estructuras construidas a partir de ciertos circuitos elementales llamados puertas
lógicas. Estos circuitos pueden verse como maquinas formadas por dos o más
dispositivos de entrada y un único dispositivo de salida. A los dispositivos de
entrada se les asigna secuencias de n-bits que son procesadas por el circuito BIT
a BIT para generar una secuencia n-bits de salida.
Los circuitos son la aplicación mas utilizada en computación, estos circuitos
pueden construirse usando compuertas lógicas que son capaces de hacer
cambios en los valores de voltaje (bits) las compuertas lógicas son: el AND (Y),
OR (O) y NOT (NO), las compuertas compuesta son el XOR, NOR, NAND. La
representación grafica de estas funciones lógicas se presenta a continuación.

COMPUERTA AND (Y)


Acepta a A y B como datos de entrada y se denota por A • B en donde:
A • B {el resultado en Z es 1 sí A = 1 y B = 1 y 0 en otro caso}
COMPUERTA NOT (NO)
Esta solo acepta un dato de entrada y se denota A’.
A’= {El resultado es 1 sí A=0 y 0 sí A=1}

(Que da como resultado (A+B)‟=A‟ B‟, en Z)


DEFINICIÓN.- una expresión booleana con símbolos A, .... , N se define
recursivamente como sigue:
0,1, A, ......, N son expresiones booleanas

Si A y B son expresiones booleanas, entonces:


a) A
b) A„
c) A * B = AB
d) A + B

Algunas veces si X es una expresión booleana en los símbolos A,.....,N se expresa


como:
X= X(A, ...., N)
Con las compuertas lógicas podemos representar expresiones booleanas por
ejemplo:
La expresión booleana F = AB + C’
El circuito lógico seria:
A los datos de entrada se le pueden asignar valores de 1 y 0, y con estos valores
podemos de terminar cual será el valor de F para una combinación especifica. Si
por ejemplo a las entradas A , B y C le asignamos valores:
A=1
B=0
C=0

El valor de F en ese circuito seria :


F = [ (1 * 0 ) + 0‟] = [ 0 + 1] = 1

Este valor de F es valido solo para esa combinación de valores en las entradas,
dentro de los circuitos o bloques lógicos, la tabla lógica de un circuito combinatorio
muestra todas las posibles salidas de la función que se obtiene para cada una de
las entradas posibles.

Una tabla lógica de un circuito se forma igual que una tabla de verdad, primero se
colocan las entradas en el orden en el que aparecen en el circuito de arriba hacia
abajo, después van las negaciones de las entradas en caso de que se necesiten y
después todas los resultados que se genera en cada compuerta hasta llegar a F.
Aunque en la mayoría de los casos en las tablas lógicas solo se colocan las
entradas y la salida F.

Por ejemplo la tabla lógica del ejemplo anterior tendría 8 renglones porque tiene 3
entradas ( esto se sabe calculando la formula 2N, entonces 23 = 8). Primero
colocamos las 3 entradas A, B y C, estas entradas se llenan con unos y ceros para
tener todas las posibles combinaciones con dichos valores; después se pone la
negación de la entrada C, y después la operación de AB y después el valor de F.

La tabla queda como se muestra a continuación:


La combinación que utilizamos primero esta marcada para comprobar el resultado.
El siguiente circuito lógico representa gráficamente a la expresión o función
booleana (en muchos libros el termino se usa de forma indistinta)

A partir de un circuito lógico también se puede obtener la expresión booleana a la


que representa, y esto se hace solo reduciendo la expresión booleana según el
circuito. Por ejemplo se tiene el siguiente circuito lógico y se desea encontrar la
expresión booleana a la que representa y su tabla lógica.
La función booleana que representa el circuito es:
F = (A + B‟)‟ + A‟C

4.3.2 PROPIEDADES.

El resultado de aplicar cualquiera de las tres operaciones definidas a variables del


sistema booleano resulta en otra variable del sistema, y este resultado es único,
las principales propiedades de los circuitos combinatorios son:

1. Ley de idempotencia:
A+A=AyA•A=A
2. Ley de involución:
(A')' = A
3. Ley conmutativa:
A+B=B+AyA•B=B•A
4. Ley asociativa:
A + (B + C) = (A + B) + C y A • (B • C) = (A • B) • C
5. Ley distributiva:
(A + B) • C = A • C + B • C y A • (B + C) = A • B + A • C
6. Ley de absorción:
A + A • B = A y A • (A + B) = A
7. Ley de De Morgan:
(A + B)' = A' • B' y (A • B)' = A' + B'
8. Ley de Identidad:
A+0=AyA•1=A
9. Ley de complementación:
A + A‟ = 1 y A • A‟ = 0
4.3.3 FUNCIONES LÓGICAS.

Las funciones booleanas representan un circuito, y estas funciones se pueden


simplificar para que no sea tan complicado entenderlo, ya que el resultado es
igual. Para poder simplificar las funciones utilizamos los teoremas y las
propiedades mencionadas anteriormente. Para obtener el dual de los teoremas del
álgebra booleana se convierten los ceros en unos y los unos en ceros. Los signos
(+) se convierten en paréntesis, puntos, asteriscos o simplemente no se ponen, y
al contrario los asteriscos en signos (+). De los postulados del álgebra booleana
se derivan los teoremas que permiten simplificar las expresiones booleanas, esto
es bueno ya que se pueden implementar los circuitos con menos equipo, a
continuación se presenta la lista de teoremas:

Los teoremas del 1 al 4 se aplican en cualquier caso, los teoremas del 5 al 9 son
propiedades que tiene el álgebra booleana, semejantes a las reglas de conjuntos
donde esta la propiedad conmutativa, asociativa y de Morgan; y por lo general los
teoremas del 11 al 14 es mas bien una transposición. Este teorema se aplica
cuando en 2 términos, uno contiene una variable y el otro su complemento
.
Las funciones boolenas son aquellas funciones que se pueden representar por
medio de expresiones booleanas solamente, por lo que únicamente pueden arrojar
como resultados los valores de 0 y 1. Una función booleana es una aplicación de
A x A x A x....A en A, siendo A un conjunto cuyos elementos son 0 y 1 y tiene
estructura de álgebra de Boole.

Supongamos que cuatro amigos deciden ir al cine si lo quiere la mayoría. Cada


uno puede votar sí o no. Representemos el voto de cada uno por xi. La función
devolverá sí (1) cuando él numero de votos afirmativos sea 3 y en caso contrario
devolverá 0. Si x1 vota 1, x2 vota 0, x3 vota 0 y x4 vota 1 la función booleana
devolverá 0. La aplicación de estos teoremas es muy sencilla, simplemente se
comparan partes de la función con los teoremas que permitan ir simplificando la
función, Esto se realiza hasta que ya no sea posible simplificar más.

Por ejemplo hay que simplificar la siguiente expresión booleana usando los
teoremas vistos en la tabla de teoremas y aplicando el más adecuado y permita
simplificar la expresión. La expresión es:
La expresión booleana en su forma más simple es F = 1, lo que indica este
resultado es que si se sustituyen las diferentes combinaciones con los valores
binarios 0 o 1 de las variables A, B y C en la expresión inicial, el resultado será
siempre igual a 1; cuando se dice que aplica un teorema a la inversa es que se
hace del lado derecho hacia la izquierda de la igualdad en el teorema. Pero no
siempre el resultado es igual a 1, y lo que se espera mas bien es que se obtenga
una función más simple expresada con variables.

Por ejemplo si se tuviera la siguiente expresión booleana y se simplificara


quedaría:

De preferencia se utiliza solamente un teorema a la vez, pero se pueden aplicar


varios al mismo tiempo, pero para eso se necesita practica, en los ejemplos
anteriores no se utilizo para que quede claro como se aplican los teoremas.

MAPAS DE KARNAUGH
Las expresiones booleanas también se pueden simplificar con el método grafico
llamado mapas de Karnaugh, este método del mapa representa un procedimiento
simple directo para minimizar expresiones. Este método fue propuesto pro Veitch y
modificado ligeramente por Karnaugh en honor de quien lleva su nombre “Mapas
de Karnaugh”.

El mapa representa un diagrama visual de todas las formas posibles en que se


puede expresar una función en forma normal. Al reconocer varios patrones, el
usuario puede derivar expresiones algebraicas alternas para la misma función de
las cuales se puede escoger las más simples. Se asume que la expresión
algebraica más simple es cualquiera en una suma de productos o productos de
sumas que tiene le mínimo numero de letras y cuya expresión no es
necesariamente la única, puede haber varias.

Las tablas o mapas se dividen en cierto numero de casillas dependiendo la


cantidad de variables que intervengan en la función. Él numero de casillas se
puede calcular con la siguiente formula:

Numero de casillas = 2n, donde n = numero de variables.


Así entonces por ejemplo una función de 2 variables se podrá plasmar en un mapa
de 4 casillas, una función de 3 variables generara un mapa de 8 casillas y así
sucesivamente.

El aspecto de los mapas de Karnaugh para 2,3,4 y 5 variables se muestra en la


siguiente figura:

En cada casilla se colocara un 1 si el mini termino existe o un 0 sino lo esta.


Un mini termino es aquel que forma parte de la función y que se puede expresar
de la manera más simple formando lo que se conoce en álgebra elemental como
un monomio. Por ejemplo si tuviéramos la siguiente función booleana:
F= X’Y + XY

La función anterior consta de 2 mini términos, uno que es X‟Y y el otro que es XY.
En la casilla que le corresponda a esos mini términos se colocara un 1 y si no se
ponen ceros (0). A continuación se presenta el mapa de Karnaugh para la función
anterior, esta función solo tiene 2 variables X y Y, por lo tanto el mapa solo tendrá
4 casillas.
Para simplificar la función se marcan las casillas en cuestión y se eliminan las
variables que cambian de una casilla a otra, en casillas adyacentes. En el mapa
anterior la variable que cambia es X, ya que en las casillas de arriba X tiene un
valor de 0 y en la de abajo tiene un valor de 1. Sin embargo Y se mantiene igual
en ambas casillas, y la simplificación que se hace no es otra cosa mas que la
aplicación de los teoremas del álgebra booleana, y la reducción se hace de esta
forma:

Para simplificar una función que contiene 3 literales o variables el mapa tendrá 8
casillas. Las secuencias en que se colocan las variables no es la binaria sino de
manera tal que solamente exista un cambio de cero a uno o de uno a cero a la
vez, esto es, no debe cambiar mas que un bit en cada paso ( a esta manera de
arreglar así los bits se llama código reflejado). Cada minitermino debe tener las 3
variables o literales. Por ejemplo de la siguiente función booleana, simplifícala
utilizando el método del mapa de karnaugh, la función es:

F = XY’Z’ + XY’Z + XYZ’ + X’YZ’


En este caso se forman 2 bloques, mismos que permiten eliminar una variable en
cada uno de ellos, en el primer bloque se elimina la Z ya que es la que cambia y
en el segundo bloque se elimina la X porque es la que cambia lo que hace que
solo queden 2 términos, y la función queda:

F = XY’ + YZ’

Se pueden realizar simplificaciones entre casillas adyacentes de 2, 4, 8, .... etc.

Entre mayor sea el bloque más simple será la expresión que resulta de la
simplificación, además una celda se puede asociar con mas de un bloque. Por
ejemplo simplifica la siguiente función:

F = X’Y’Z + XY’Z + X’YZ + XYZ + XYZ’

En este mapa se formaron 2 bloques uno que esta en color y otro que esta rayado,
en el bloque mayor se eliminaron las variables X y Y debido a que de una casilla a
otra cambian de valor. Se nota que entre más grande sea el bloque la expresión
resultante sea menor. Y entonces la expresión quedara:
F = Z + XY
Si en un mapa se unen los 2 extremos de un mapa ya sea horizontal o
verticalmente, entonces las celdas de las esquinas del mapa quedaran juntas y
por lo tanto se consideran como celdas adyacentes y esto permite una mejor
simplificación. Lamentablemente esto no es así, pero con objeto de conseguir una
imagen mental y gráfica de las adyacencias algebraicas podemos ayudarnos de
las siguientes figuras. Para tres variables:
Primero doblar el mapa hasta superponer completamente las casillas, con lo que
toma el aspecto de un mapa de 4 variables, después seguir el procedimiento para
mapas de 4 variables. No siempre la función original tiene todas las variables en
cada uno de sus mini términos, en este caso de ser así, ese mini termino equivale
a las variables que se dan inicialmente, por ejemplo si se desea simplificar la
siguiente expresión:

F = W’X’ + W’XY’Z + W’XYZ + WXY’Z’ + WX’Y’Z’ + WX’YZ’


En este caso el mini termino W‟X‟ juntamente con todas las posibles
combinaciones de las variables faltantes. Para este ejemplo se tiene que:

W’X’ = W’X’YZ + W’X’Y’Z + W’X’Y’Z’ + W’X’YZ’

Después se colocan los unos en las celdas correspondientes y se procede a


realizar la agrupación y la simplificación ubicando los bloques.

Nótese que los bits de las columnas y líneas, solamente cambia uno a la vez.
En este caso se tienen 2 bloques de 4 celdas, uno que es el rectángulo que tiene
líneas horizontales y lo forman las 4 esquinas del mapa, en cada uno de ellos se
deben eliminar 2 variables, además se encuentra otro bloque de 2 celdas que
tiene líneas inclinadas, de tal forma que la función queda:

F = X’Z’ + W’Z + WY’Z’

El primer mini termino se genera del bloque de 2 celdas, el segundo del rectángulo
de 4 celdas, y el tercer de las 4 esquinas.
4.3.4 APLICACIONES.

Los circuitos lógicos se aplican de forma total en el área computacional, estos


circuitos son los elementos que forman la base de los modernos sistemas de
cómputo, en el diseño electrónico se estudia a profundidad los conceptos aquí
presentados, pero en el aspecto programático podemos decir que con los
elementos vistos en ésta sección es posible implementar maquinas de estado, sin
embargo la moraleja de ésta lección es muy importante: “cualquier algoritmo que
podamos implementar en software, lo podemos a su vez implementar
directamente en hardware con las compuertas lógicas “. Esto sugiere que la lógica
booleana es la base computacional en los modernos sistemas de cómputo
actuales. Cualquier programa que usted escriba, independientemente del lenguaje
que utilice, sea éste de alto ó bajo nivel, se puede especificar como una secuencia
de ecuaciones booleanas.

Un hecho igualmente interesante es el punto de vista opuesto, es posible


implementar cualquier función de hardware directamente en software, en la
actualidad ésta es la función principal del lenguaje ensamblador y otros con
capacidad de trabajar directamente en hardware, como el C y el C++. Las
consecuencias de éste fenómeno apenas se están explotando, se infiere la
existencia de un futuro muy prometedor para el profesional de la programación,
especialmente aquellos dedicados a los sistemas incrustados (embedded
systems), los microcontroladores y los profesionales dedicados a la Programación
Orientada a Objetos. Para tener éxito en éstos campos de la investigación es
fundamental comprender las funciones booleanas y la manera de implementarlas
en software.

Aún y cuando no se desee trabajar en hardware, es importante conocer las


funciones booleanas ya que muchos lenguajes de alto nivel procesan expresiones
booleanas, como es el caso de los enunciados if-then ó los bucles while.
BIBLIOGRAFÍA
1. Matemáticas Discretas. R. Johnson Baug. Editorial
Iberoamericana.
2. Matemáticas Discretas Para La Ciencia De Lacomputación.
Hugo David Calderon Vilca

También podría gustarte