Está en la página 1de 168

Matemticas para Computadora

Unidad Temas 1 Lgica matemtica Subtemas 1.1Introduccin al clculo de proposiciones. 1.2 Concepto de argumento y tipos de proposiciones lgicas. 1.3 Conexiones lgicas y jerarquas. 1.3.1 Conjuncin. 1.3.2 Disyuncin 1.3.3 Condicional. 1.3.4 Bicondicional. 1.4 Clculo de predicados. 1.4.1 Definicin. 1.4.2 Variables y particularizaciones. 1.4.3 Cuantificadores y restricciones. 1.5 lgebra declarativa. 1.6 Induccin matemtica. 1.7 Reglas de inferencia. 1.8 Evaluacin de expresiones. 1.9Tautologas y contradicciones. 1.9.1 Equivalencias lgicas y utilizaciones. 1.9.2 Deduccin preposicional. 1.9.3 Demostracin condicional y directa. 1.10 Implicacin Tautolgica. 2.1 Introduccin. 2.2 Propiedades de las relaciones. 2.2.1 Sobre un conjunto. 2.2.2 Reflexivas. 2.2.3 Simtricas y transitivas. 2.3 Cerradura. 2.4 Relaciones de equivalencia. 2.5 Ordenes parciales. 2.6 Diagramas de Hasse. 3.1 Introduccin. 3.1.1 Conceptos bsicos de grafos. 3.1.2 Clasificacin de grafos. 3.2 Representacin de estructura

Relaciones.

Teora de grafos.

3.3 3.4 3.5 3.6

3.7

3.8

3.9 4 Sistemas numricos

mediante grafos. 3.2.1 Secuencias. 3.2.2 Seleccin (if-then-else). 3.2.3 Mientras (while). 3.2.4 Repetir hasta que (repeatuntil). 3.2.5 Seleccin mltiple (case). Clculo de caminos a partir de una representacin matricial. Espacio de estados. Representacin mediante espacio de estados. Estrategia y algoritmos de bsqueda. 3.6.1 Guiada por datos (forward). 3.6.2 Guiada por objetivos (backtrack). 3.6.3 En profundidad. 3.6.4 En anchura. rboles. 3.7.1 propiedades. 3.7.2 rboles generadores. 3.7.3 rboles generadores minimales 3.7.4 Recorridos. 3.7.5 Ordenamientos. Redes. 3.8.1 Modelos. 3.8.2 Teorema de flujo mxima 3.8.3 Teorema del corte minimal 3.8.4 Pareos. Redes de Petri.

4.1 Representacin de la informacin. 4.1.1 Introduccin. 4.1.2 tipos de sistemas numricos. 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 lgicas.

4.3.4 Aplicaciones.

Unidad 1. Lgica matemtica


1.11 Introduccin al clculo de proposiciones.
El lenguaje natural es un instrumento de comunicacin humana, que se caracteriza por su gran flexibilidad: es sabido que no siempre es necesario expresar una frase completa o incluso correcta para que sea entendido el mensaje. Adems, el lenguaje natural est lleno de redundancias, ambigedades, etc. Estas caractersticas hacen que la Lgica Formal no est interesada en l. Por el contrario, la lgica pretende ser una ciencia rigurosa y universal que permita realizar clculos exactos. Para ello, requiere el diseo de un lenguaje artificial en el cual: - lo que importe sea la forma o aspecto externo, y no el significado de las frases; - slo los mensajes que cumplan rigurosamente las normas sintcticas sean aceptados como correctos. Por otra parte, sabemos que las posibilidades de uso del lenguaje son muchas. La lgica, bsicamente, slo se ocupa de aquellos discursos que se caracterizan porque sus afirmaciones tienen un valor de verdad, esto es, estn formados por enunciados simples de los que podemos decir si son verdaderos o falsos. Adems, la lgica formal es una de las ciencias que estudian el conocimiento. Pero no se ocupa de la actividad de conocer, sino del resultado, lo que llamamos conocimiento, el cual se encuentra normalmente fijado en el lenguaje. El conocimiento puede producirse de dos formas: - Por constatacin de hechos o ideas. - Por deduccin, esto es, a partir de ciertos conocimientos se obtienen otros cuya afirmacin se sigue de los anteriores. En sntesis, la lgica es la disciplina que trata de los mtodos de razonamiento. En un nivel elemental, la lgica proporciona reglas y tcnicas para determinar si es o no vlido un argumento dado. El principal aporte que la lgica hace a las ciencias se refiere a la ordenacin, estructuracin y anlisis de las verdades conocidas. El razonamiento lgico se emplea en matemtica para demostrar teoremas; en ciencias de la computacin, para verificar si son o no correctos los programas y para demostrar teoremas; en las ciencias fsicas y naturales, para sacar conclusiones de experimentos, y en las

ciencias sociales y en la vida cotidiana, para resolver una multitud de problemas. Ciertamente, el razonamiento lgico se usa en forma constante. La lgica formal estudia primeramente la formalizacin del lenguaje natural, y luego los principios de la inferencia vlida. Una inferencia, razonamiento, argumento o deduccin es un tipo de pensamiento que se caracteriza porque en l se produce siempre el paso de una serie de conocimientos (que se llaman premisas) a otro conocimiento nuevo (que llamamos conclusin). La lgica formal se estudia en dos niveles, que dependen de la complejidad a la hora de la simbolizacin: - Lgica de Proposiciones, en el cual el elemento bsico en la formalizacin del lenguaje es la proposicin, asercin o enunciado simple. - Lgica de Predicados, donde los elementos bsicos en la formalizacin del lenguaje son los componentes de la proposicin, es decir, los trminos y los predicados. En cuanto a la definicin de la validez de las frmulas y de los razonamientos, hay dos lneas principales de estudio para cada uno de los niveles citados : - Teora Interpretativa (mtodo semntico): Estudia la validez semntica de frmulas y argumentos en base a la relacin entre significados ("verdadero" o "falso") de sus componentes proposicionales. - Teora de la Demostracin (mtodo axiomtico): Estudia la validez de frmulas, en base a su derivacin a partir de una frmulas vlidas definidas axiomticamente y mediante la aplicacin de reglas vlidas.

1.12 Concepto de argumento y tipos de proposiciones

lgicas.
Argumentos e inferencia La principal tarea de la lgica es la de averiguar cmo la verdad de una determinada proposicin est conectada con la verdad de otra. En lgica habitualmente se trabaja con grupos de proposiciones relacionadas. Un argumento es un conjunto de dos o ms proposiciones relacionadas unas con las otras de tal manera que las proposiciones llamadas 'premisas' se supone que dan soporte a la proposicin denominada 'conclusin'. La transicin o movimiento desde las premisas hasta la conclusin, es decir, la conexin lgica entre las premisas y la conclusin, es la inferencia sobre la que descansa el argumento.

Los argumentos Veamos con un ejemplo de argumento que aparece de una u otra manera en todos los libros de introduccin a la lgica: Si Scrates es humano, entonces es mortal (2) Scrates es humano (3) Por lo tanto, Scrates es mortal (1) En este ejemplo las dos primeras proposiciones funcionan como premisas, mientras que la proposicin tercera es la conclusin. Fjate que las palabras "premisa" y "conclusin" se definen aqu slo por medio de la relacin que hay entre ellas dentro de un argumento concreto. Una misma proposicin puede aparecer como conclusin de un argumento en una parte de razonamiento, pero tambin como una de las premisas en otra parte posterior del mismo razonamiento. En nuestro ejemplo, nada impide que nuestra conclusin "Scrates es mortal" puede utilizarse como premisa para otro argumento. La inferencia Hay un cierto nmero de expresiones verbales del lenguaje cotidiano que marcan o indican si una determinada proposicin funciona como premisa o como conclusin (por ejemplo, la expresin "por lo tanto" se suele ir seguida de la conclusin). Sin embargo, el uso de estos marcadores lingsticos no es estrictamente necesario, ya que el contexto puede aclarar la direccin del movimiento desde las premisas hasta la conclusin. Lo que distingue a un argumento de una mera coleccin de proposiciones es la inferencia que se supone que las une. Veamos esta idea con un par de ejemplos. Si yo profiero "Daniela es cirujana y el sol brilla, aunque la catedral de Len es gtica" lo nico que tengo es un conjunto de proposiciones que no tienen ninguna relacin entre ellas en el sentido de que la verdad o falsedad de cada una de ella no tiene que ver con la verdad o falsedad de las dems. Sin embargo, si yo digo: "Daniela es cirujana, por lo que Daniela ha estudiado Medicina, ya que todos los cirujanos han estudiado Medicina", estoy empleando un argumento perfectamente vlido en el que la verdad de la conclusin "Daniela ha estudiado Medicina" se deriva inferencialmente de las premisas "Daniela es cirujana" y "Todos los cirujanos han estudiado Medicina". Identificacin de argumentos Es importante aprender a distinguir a los argumentos de meros grupos de proposiciones que no cumplen con los requisitos necesarios para hablar de argumentos. Recuerda que los argumentos consisten en grupos de proposiciones en los que hay algunos que actan como premisas que, en virtud de la inferencia lgica, justifican otra proposicin que llamamos conclusin. Por el momento

aprenderemos a identificar argumentos, sin pronunciarnos sobre si se trata de buenos o malos argumentos (vlidos o invlidos); esta cuestin la trataremos un poco ms adelante, y constituye el grueso de Aprende Lgica. Para decidir si estamos ante un argumento o no, simplemente apelaremos al sentido comn y a un sencillo anlisis del texto sobre el que hayamos de decidir, centrndonos en los siguientes aspectos: 1. El texto, tiene una conclusin?. Si es as, cul es? 2. El texto ofrece razones que apoyen la conclusin?, es decir, hay premisas? Si es as cules son? 3. El texto presume que hay una relacin inferencial entre premisas y conclusiones? Presuncin de facticidad y presuncin de inferencia Quien presenta un argumento esta formulando (explcita o implcitamente) dos presunciones acerca de dicho argumento. Una es la presuncin de facticidad, es decir, da por sentado (asume) que las premisas que se proporcionan son, de hecho, verdaderas. La segunda presuncin es la presuncin de inferencia, que asume que las premias estn conectadas con la conclusin de tal forma que la fundamentan, que le dan apoyo. De hecho esta relacin inferencial entre premisas y conclusin es el ncleo de la lgica, y nuestro principal objeto de atencin en Aprende Lgica, y la analizaremos de distintas maneras y desde diferentes ngulos. Siempre que tratamos de convencer a alguien de algo argumentando ponemos en juego estas dos presunciones: la de facticidad para reclamar la relevancia real del asunto tratado en las premisas, y la de inferencia para mostrar la conexin entre las premisas y la conclusin. Por tanto, para decidir si estamos ante un argumento o no, debemos identificar se estn presentes de manera adecuada tanto la presuncin de facticidad como la de inferencia. Si no es un argumento, qu es? Un buen mtodo para determinar si una porcin de discurso (hablado o escrito) no es un argumento, es identificar qu es entonces. A continuacin ofrecemos un lista de posibles alternativas cuando no encontramos en una porcin de discurso premisas, conclusin o relacin inferencial lgica entre ambas. (Haz clic en los enlaces de la columna de la derecha para acceder a ejemplos de cada uno de los tipos descritos) Advertencias No se proporcionan razones (no hay Predomina la funcin apelativa y conativa. premisas). Ejemplo de advertencia de

Enunciacin No se proporciona un fundamento slido, real para tal Ejemplo de una creencia u opinin. Aunque puede que exista la creencia creencia u pretensin de que se reconozca tal creencia u opinin

opinin

como verdadera, no hay un desarrollo sistemtico de premisas-inferencia-conclusin en apoyo de lo enunciado.

Ejemplo de Proposiciones Las proposiciones no estn conectadas por relacin proposiciones vagamente inferencial alguna. vagamente relacionadas relacionadas Son simples enumeraciones de hechos, del tipo que aparecen en las noticias de los peridicos. No hay Ejemplo intencin de probar nada, simplemente, se proporciona informe informacin sobre los hechos. Simplemente se ofrecen ejemplos de algo. de

Informes

Ilustracin

Ejemplo de ilustracin

Son enunciados con la estructura "Si... entonces..." Los enunciados condicionales no son argumentos en s mismos, pero los arguementos con frecuencia se Ejemplo de Enunciados componen de varias proposiciones de este tipo. Lo que enunciado condicionales sigue al "si..." se denomina "antecedente" (es decir la condicional condicin), y lo que sigue al "entonces..." es el "consecuente" (es decir lo que sucede cuando se cumple la condicin). Consiste en una aclaracin de por qu algo es el caso. Una explicacin a veces es difcil de distinguir de un argumento porque tambin involucra razones (similares a las premisas). Pero, a diferencia de los argumentos, donde la conclusin es "nueva" informacin, en una explicacin el enunciado que es explicado (el explanandum, la parte que parece la conclusin) es normalmente un hecho comnmente Ejemplo de Explicaciones aceptado. El explanans (los enunciados que sirven para explicacin aclarar, que pueden ser similares a las premisas) es la nueva informacin de una explicacin, mientras que las premisas son los hechos aceptados en los argumentos. En los argumentos se busca fundamentar informacin nueva a partir de informacin ya aceptada, mientras que en las explicaciones se busca aclarar informacin ya bien establecida.

El lenguaje formal de la lgica proposicional est formado por dos elementos: Proposiciones Conectivos lgicos

Proposiciones ( frases declarativas simples o asercin o enunciado) . Una proposicin es la mnima unidad del lenguaje con contenido de informacin sobre la que es posible pronunciarse con un verdadero o con un falso, pero no ambas cosas. Si una proposicin es verdadera, diremos que su valor de verdad es verdadero; si una proposicin es falsa, su valor de verdad es falso. Pueden ser de varios tipos: Proposiciones de accin con sujeto no determinado: "Hace fro", "Llueve". Proposiciones de atribucin de propiedades a sujetos determinados: "Ana es estudiosa". Proposiciones de relacin: "Ana es prima de Eduardo", "Comodoro Rivadavia est entre Trelew y Caleta Olivia". Ejercicio 1. Cules de las siguientes son proposiciones ? De serlo, indicar su valor de verdad. Es Valor de proposicin? verdad. (a) La Tierra es redonda. si verdadero (b) 2 + 3 = 5 si Verdadero (c) Entendi algo hasta ahora ? No Falso (d) x = 3. No Falso (e) Tom un vaso de agua. Si Verdadero (f) La temperatura en la superficie del planeta Si Verdadero Venus es 800F. (g) Maana habr viento. Si falso En matemtica, las letras x, y, z, ... denotan, a menudo, variables que pueden ser reemplazadas por nmeros reales, y estas variables pueden combinarse con las operaciones comunes +, , -, y . Una variable proposicional es una variable que puede ser reemplazada por una proposicin. Usaremos las letras p, q, r, ... para simbolizar a las variables proposicionales. Un enunciado que contenga al menos una variable proposicional se dice una forma o frmula proposicional. Ejemplo 1. Usaremos la notacin p: Llueve. q: Hace fro. para definir a p como la proposicin "Llueve" y q como la proposicin "Hace fro." Cuando no se preste a confusin hablaremos indistintamente de proposicin o forma proposicional. La diferencia entre ellas es que toda proposicin tiene un valor de verdad mientras que una forma proposicional es una expresin cuyo valor de verdad

no puede ser determinado hasta que las variables proposicionales no sean sustituidas por las proposiciones. Conectivos (u operadores lgicos). Los conectivos lgicos son los elementos que permiten construir frases nuevas a partir de las existentes, obteniendo nuevos significados. Las proposiciones compuestas son aquellas que resultan de combinar por medio de conectivos lgicos proposiciones o variables proposicionales. A las proposiciones o variables proposicionales que las componen se las llama operandos. Ejemplo 2. Combinando las proposiciones del Ejemplo 1 con el conectivo y podemos formar la proposicin compuesta p y q: "Llueve y hace fro".

1.13Conexiones lgicas y jerarquas.


Existen conectores u operadores lgicas que permiten formar proposiciones compuestas (formadas por varias proposiciones). Los operadores o conectores bsicos son: Negacin Si p es una proposicin, la negacin de p es la proposicin no p, denotada por ~ p (en algunos textos tambin se utiliza p, o bien Expresin en lenguaje natural no p no ocurre que p no es cierto que p es falso que p no es el caso de p etc. TABLA DE VERDAD p V F ~p F V ).

Estrictamente hablando, no no es un conectivo, dado de que no une dos proposiciones, y ~p no es en realidad una proposicin compuesta. Sin embargo, no es una operacin unaria, en el sentido que acta sobre un slo elemento, para la coleccin de proposiciones, y ~p es una proposicin si p lo es.

Ejercicio 2. Dar la negacin de las siguientes proposiciones. (a) p: 1 + 1 = 3. 1+13 (b) q: Yo salgo de casa. No salgo de casa Operador Not (no) Su funcin es negar la proposicin. Esto significa que s alguna proposicin es verdadera y se le aplica el operador not se obtendr su complemento o negacin (falso). Este operador se indica por medio de los siguientes smbolos: {, , }. Ejemplo. p 1 0 p 0 1
La negacin de est lloviendo en este momento (p=1), es no est lloviendo en este momento (p=0)

Adems de los operadores bsicos (and, or y not) existe el operador xor, cuyo funcionamiento es semejante al operador or con la diferencia en que su resultado es verdadero solamente si una de las proposiciones es cierta, cuando ambas con verdad el resultado es falso. En este momento ya se pueden representar con notacin lgica enunciados ms complejos. Ejemplo Sean las proposiciones: p: Hoy es domingo. q: Tengo que estudiar teoras del aprendizaje. r: Aprobar el curso. El enunciado: Hoy es domingo y tengo que estudiar teoras de aprendizaje o no aprobar el curso. Se puede representar simblicamente de la siguiente manera: p q r Por otro lado con ayuda de estos operadores bsicos se pueden formar los operadores compuestos Nand (combinacin de los operadores Not y And), Nor (combina operadores Not y Or) y Xnor (resultado de Xor y Not).

1.13.1

Conjuncin.

Si p y q son proposiciones, la conjuncin de p y q es la proposicin compuesta "p y q", denotada por p q. El conectivo y se denota por el smbolo . Expresin en lenguaje natural p y/e q p aunque q p pero q p no obstante q p a pesar de q

etc. Esta es una operacin binaria, pues combina dos objetos, sobre el conjunto de proposiciones. La proposicin compuesta p q es verdadera cuando ambas, p y q, son verdaderas; de lo contrario, es falsa. Los valores de verdad de p q en trminos de los valores de verdad de p y q son proporcionados en la tabla de verdad que aparece a continuacin: TABLA DE VERDAD p V V F F q V F V F p q V F F F

Obsrvese que para dar la tabla de verdad de p q se necesita considerar cuatro casos posibles. Esto se desprende del hecho de que cada una de las proposiciones p y q puede ser verdadera o falsa. Ejercicio 3. Formar la conjuncin de p y q para cada uno de los siguientes casos. (a) p: Llueve. q: Hace Llueve y hay sol sol. (b) p: 1 < 7 q: -1 > -2 1<7 y -1>-2 (c) p: Llueve q: 1 < 7 Llueve y 1<7 Operador and (y) Se utiliza para conectar dos proposiciones que se deben cumplir para que se pueda obtener un resultado verdadero. Si smbolo es: { un punto (.), un parntesis}. Se , le conoce como la multiplicacin lgica: Ejemplo. Sea el siguiente enunciado El coche enciende cuando tiene gasolina en el tanque y tiene corriente la batera Sean: p: El coche enciende. q: Tiene gasolina el tanque. r: Tiene corriente la batera. De tal manera que la representacin del enunciado anterior usando simbologa lgica es como sigue:

p = q r Su tabla de verdad es como sigue: Donde. 1 = verdadero 0 = falso


p = q r 1 0 0 0

q 1 1 0 0

r 1 0 1 0

q 1 1 0 0

r 1 0 1 0

p = q r 1 0 0 0

En la tabla anterior el valor de q=1 significa que el tanque tiene gasolina, r=1 significa que la batera tiene corriente y p = q r=1 significa que el coche puede encender. Se puede notar que si q o r valen cero implica que el auto no tiene gasolina y que por lo tanto no puede encender.

1.13.2

Disyuncin

Si p y q son proposiciones, la disyuncin de p y q es la proposicin compuesta "p o q", designada por p q. El conectivo o se denota por el smbolo . Expresin en lenguaje natural p o/u q o ambos o bien p o bien q al menos p o q como mnimo p o q etc. La proposicin compuesta p q es verdadera si por lo menos una de las proposiciones p o q es verdadera; ser falsa cuando ambas proposiciones p y q sean falsas. Los valores de p q son proporcionados en la siguiente tabla de verdad : TABLA DE VERDAD p V V q V F p q V V

F F

V F

V F

Ejercicio 4. Formar la disyuncin de p y q para cada uno de los siguientes casos. (a) p: 2 es un nmero natural. q: es un 2 es numero natural o es racional nmero racional. (b) p: 1 < -7 q: Rawson es la capital de 1<-7 o Rawson ws la capital Santa Cruz. deSanta Cruz El conectivo o es ms complicado que el conectivo y porque se emplea de dos formas diferentes. Supngase que alguien dice: "Fui en automvil a mi trabajo o tom el tren para ir a mi trabajo." En esta proposicin compuesta se tiene la disyuncin de las proposiciones p: "Fui en automvil a mi trabajo" y q: "Tom el tren para ir a mi trabajo." Por supuesto ocurri exactamente una de las dos posibilidades. No podran haber ocurrido ambas, por lo cual el conectivo o se est usando en un sentido excluyente. Por otra parte, considrese la disyuncin "Pas lgebra o desaprob anlisis." En este caso, ocurri por lo menos una de las dos posibilidades. Sin embargo, podran haber ocurrido ambas, por lo que el conectivo o se est usando en un sentido inclusivo. Con este operador se obtiene un resultado verdadero cuando alguna de las proposiciones es verdadera. Se indica por medio de los siguientes smbolos: {, +, }. Se conoce como la suma lgica. Ejemplo. Sea el siguiente enunciado Una persona puede entrar al cine si compra su boleto u obtiene un pase. Donde. p: Entra al cine. q: Compra su boleto. r: Obtiene un pase. q 1 1 0 0 r 1 0 1 0 p manera La nica =q ren la que no puede ingresar al cine (p=0), es que no compre su boleto (q=0) y 1 que no obtenga un pase (r=0). 1 1 0

O Excluyente Podemos definir el o excluyente, denotndolo por de modo que p q resulte falso slo cuando p y q sean ambas verdaderas o ambas falsas. Si p y q no tienen el mismo valor de verdad, p q resulta verdadera. TABLA DE VERDAD p q p q

V V F F

V F V F

F V V F

1.13.3

Condicional.

Una proposicin condicional, es aquella que est formada por dos proposiciones simples (o compuesta) p y q. La cual se indica de la siguiente manera: p q Se lee Si p entonces q

Ejemplo. El candidato del PRI dice Si salgo electo presidente de la Repblica recibirn un 50% de aumento en su sueldo el prximo ao. Una declaracin como esta se conoce como condicional. Su tabla de verdad es la siguiente: Sean p: Sali electo Presidente de la Repblica. q: Recibirn un 50% de aumento en su sueldo el prximo ao. De tal manera que el enunciado se puede expresar de las siguiente manera. p q Su tabla de verdad queda de la siguiente manera: p 1 1 0 0 q 1 0 1 0 p q 1 0 1 1

La interpretacin de los resultados de la tabla es la siguiente: Considere que se desea analizar si el candidato presidencial minti con la afirmacin del enunciado anterior. Cuando p=1; significa que sali electo, q=1 y recibieron un aumento de 50% en su sueldo, por lo tanto p q =1; significa que el candidato dijo la verdad en su campaa. Cuando p=1 y q=0 significa que p q =0; el candidato minti, ya que sali electo y no se incrementaron los salarios. Cuando p=0 y q=1 significa que aunque no sali electo hubo un aumento del 50% en su salario, que posiblemente fue ajeno al candidato presidencial y por lo tanto; tampoco minti de tal forma que p q =1.

Si p y q son proposiciones, se llama proposicin condicional, o implicacin a la proposicin compuesta "si p entonces q", designada por p q. A la proposicin p se la llama antecedente (o hiptesis, o premisa) , y a la proposicin q se la llama consecuente (o conclusin). El conectivo si ... entonces se denota por el smbolo . Expresin en lenguaje natural si p entonces q slo si q entonces p p suficiente para q q necesario para p no p a menos que q p slo si q etc. Ejercicio 5. Escribir la implicacin p q para cada una de las siguientes proposiciones. (a) p: Tengo hambre. q: Si tengo hambre, comere Comer (b) p: Sopla viento. q: 3 + Si sopla viento entonces 3+2=5 2=5 La siguiente es la tabla de valores de verdad para la proposicin condicional. TABLA DE VERDAD p V V F F q V F V F p q V F V V

Si p q es una implicacin, entonces la recproca de p q es la implicacin q p, y la contrapositiva de p q es la implicacin ~ q ~ p. Ejercicio 6. Dar la recproca y la contrapositiva de la implicacin "Si llueve, entonces me quedo en casa." Si me quedo en casa entonces Si no me quedo llueve entonces no llueve en casa

1.13.4

Bicondicional.

Si p y q son proposiciones, a la proposicin compuesta p si y slo si q, denotada por p q, se la llama bicondicional (o equivalencia o doble implicacin). El conectivo si y slo si se denota por el smbolo . Expresin en lenguaje natural

p si y slo si q p necesario y suficiente para q etc. La tabla que se muestra a continuacin proporciona los valores de verdad de p q. Obsrvese que p q es verdadera solamente en el caso en que ambas, p y q, sean verdaderas o cuando ambas, p y q, sean falsas. TABLA DE VERDAD p V V F F q V F V F pq V F F V

Es la siguiente equivalencia una proposicin verdadera ? "-2 > -4 si y slo si 2 < 4". SI Sean p y q dos proposiciones entonces se puede indicar la proposicin bicondicinal de la siguiente manera: pq Se lee p si solo si q

Esto significa que p es verdadera si y solo si q es tambin verdadera. O bien p es falsa si y solo si q tambin lo es. Ejemplo; el enunciado siguiente es una proposicin bicondicional Es buen estudiante, si y solo si; tiene promedio de diez Donde: p: Es buen estudiante. q: Tiene promedio de diez. por lo tanto su tabla de verdad es.

p 1 1 0 0

q 1 0 1 0

p q 1 0 0 1

La proposicin condicional solamente es verdadera si tanto p como q son falsas o bien ambas verdaderas

A partir de este momento, ya se est en condiciones de representar cualquier enunciado con conectores lgicos. Ejemplo. Sea el siguiente enunciado Si no pago la luz, entonces me cortarn la corriente elctrica. Y Si pago la luz, entonces me quedar sin dinero o pedir prestado. Y Si me quedo sin dinero y pido prestado, entonces no podr pagar la deuda, si solo si soy desorganizado Donde: p: Pago la luz. q: Me cortarn la corriente elctrica. r: Me quedar sin dinero. s: Pedir prestado. t: Pagar la deuda. w: soy desorganizado. (p q) [p (r ] [(r s) t ] w s) Tablas de verdad. En estos momentos ya se est en condiciones de elaborar cualquier tabla de verdad. A continuacin se presenta un ejemplo para la proposicin [(pq) (q ] (rq). r)

p 0 0 0 0 1 1 1 1

q 0 0 1 1 0 0 1 1

r 0 1 0 1 0 1 0 1

q p q 1 1 1 1 0 1 0 1 1 0 1 0 0 1 0 1

(q (pq) r) (q r) 0 1 1 1 0 1 0 1 0 0 1 1 0 1 0 1

rq [(pq) (q ] (rq) r) 1 0 1 1 1 0 1 1 1 0 1 1 0 0 1 1

El nmero de lneas de la tabla de verdad depende del nmero de variables de la expresin y se puede calcular por medio de la siguiente formula. No de lneas = 2n Donde n = nmero de variables distintas. Es importante destacar a medida que se avanza en el contenido del material el alumno deber participar activamente. Estos significa que cuando se esta definiendo proposiciones y caractersticas propias de ellas, adems de los ejemplos que el maestro explique, el alumno deber citar proposiciones diferentes, deber entender el porque un enunciado no es vlido. Cuando se ven conectores lgicos, los alumnos

debern saber emplearlos en la representacin de proposiciones ms complejas. Pero algo muy importante, es que los ejemplo que el maestro y los alumnos encuentren en la clase, deben ser de inters para el estudiante. Cuando se ven tablas de verdad el alumno deber saber perfectamente bien el porque de cada uno de los resultados. En pocas palabras el conocimiento deber ser significativo.

1.14Clculo de predicados.
1.14.1 Definicin.

Predicado: formalizacin de una propiedad o de una relacin. Predicados mondicos (para expresar propiedades, con un slo argumento). Frmula atmica: Predicado seguido por sus argumentos, tambin ser una sentencia. El Clculo Proposicional, resulta til para muchas aplicaciones computacionales, entre las que podemos citar, anlisis de circuitos, anlisis y confiabilidad de sistemas mediante rboles lgicos, diversas aplicaciones de satisfactibilidad a problemas de planeacin, etc. Sin embargo, existe una gran cantidad de aplicaciones donde el Clculo Proposicional no se considera suficiente, debido a que cuenta con una deductibilidad limitada y en donde es preferible un tipo especial de lgica conocido como Lgica de Predicados ( Clculo de Predicados). Para explicar esta situacin, consideremos el argumento conformado con las siguientes sentencias del Clculo Proposicional: P = Todos los mamferos son mortales Q= Lassie es un mamfero ==> R= Lasssie es mortal

Las expresiones P, Q, R, son proposiciones, puesto que todas ellas son enunciados que pueden ser evaluados como V (verdaderos) o F (falsos). Hay que hacer notar, sin embargo, que mediante la aplicacin de reglas de inferencia del Clculo Proposicional, no es posible deducir R a partir de las premisas P y Q anteriores, ya que el Clculo Proposicional no tiene acceso a los elementos comunes que conforman estas proposiciones, como son mamifero, mortal y Lassie, e indispensables para llegar a la conclusin R resultante. Sin embargo, esta misma expresin en Cculo de Predicados, se podra escribir distinguiendo los elementos constitutivos de cada proposicin. Es decir, el Clculo de Predicados se aplica para las mismas proposiciones que pueden ser enunciadas en Clculo Proposicional, con la diferencia que en el primero se tiene acceso a los elementos constitutivos de cada proposicin.

Una de las aplicaciones ms importantes del Clculo de Predicados es la especificacin formal, la cual permite describir lo que el usuario desea que un programa realice. sta es una aplicacin que ha empezado a ser empleada para el desarrollo de al menos las partes crticas de un sistema. De esta manera piezas de cdigo especificadas formalmente, pueden ser verificadas, en principio, matemticamente, incrementando la confiabilidad del sistema completo. Existen varios lenguajes de especificacin formal basados en lgica, como Z o VDM, de los cuales se hablar ms adelante en este curso. En el caso de la especificacin y verificacin formal de programas, las piezas de cdigo son acompaadas por pre y post condiciones, las cuales se escriben como frmulas del Clculo de Predicados. Las pre y postcondiciones deben ser vlidas, antes y despus de que la pieza de cdigo correspondiente se ejecute. Es decir, si la pieza de cdigo satisface su especificacin, entonces se dice que el programa es correcto. Por otra parte, dada una pieza de cdigo y sus pre y postcondiciones, se dice que un algorimo tiene la propiedad de correctividad si se es capaz de decir si dicha pieza de cdigo es o no correcta. El anlisis de la correctividad de algoritmos es una parte fundamental en Ciencias compuationales. Formalmente, es necesario asegurar una definicin precisa de las pre y post condiciones, de manera que se interprete de ellas un solo significado; sto es logrado escribiendo las pre y post condiciones como frmulas del Clculo de Predicados. ste es particularmente til para describir la semntica de los lenguajes de programacin, as como para describir el comportamiento funcional de un programa o una parte de l. En el Clculo de Predicados hay otras diferencias bsicas respecto al Clculo Proposicional, entre las que podemos citar: Se indican postulados sobre objetos individuales: Ejemplo: Juan es alto se puede escribir: ES_ALTO(JUAN) Donde ES_ALTO es un smbolo de predicado y JUAN es una constante. Ntese que el predicado anterior puede ser evaluado como V (verdadero) o F (falso). Se indican postulados relacionando varios objetos. Por ejemplo es posible expresar: Juan es to de Mara

en la forma: ES_TIO(MARIA,JUAN) Donde ES_TIO es un Smbolo de Predicado que tiene como argumentos a las constantes MARA Y JUAN. Obsrvese que el predicado anterior podr ser evaluado como F (falso) o V (verdadero). Se utilizan cuantificadores universales y existenciales. Ejemplo: El argumento anterior sobre Lassie se puede escribir: for_all (x) MAMFERO(x) ==> MORTAL (x) MAMFERO(LASSIE) ===> MORTAL (LASSIE) Una posible interpretacin de este modelo se presenta a continuacin: i)) En este argumento tenemos las siguientes premisas: La primera proposicin seala que todos los elementos x son mamiferos implican que x es mortal. La segunda expresin indica que es conocido que Lassie es un mamfero. ii)) La conclusin de este argumento es: Lassie es mortal iii) El nico conector lgico de esta expresin es el smbolo ==> el cual es como en el caso del Cculo Proposicional, el de implicacin. No obstante en Clculo de Predicados se

pueden utilizar todos los conectores lgicos del Clculo Proposicional. Podramos interpretar este argumento indicando que si las dos premisas son verdaderas, entonces se puede deducir que Lassie es mortal En el Clculo de Predicados se usan varios tipos de smbolos: SMBOLOS DE FUNCIN Ejemplos: mas(x,y) padre(x) SMBOLOS DE PREDICADOS Ejemplos: MAYOR(ms(x,1),x) CONSTANTES. Ejemplos: CASA, MARA SMBOLOS DE VARIABLES. Ejemplos: x,y En Clculo de Predicados, nos referimos a trminos cuando hablamos de constantes, variables o smbolos de funcin, cuyos elementos sabemos de antemano que son trminos. As, por ejemplo, la variable x y la constante 1 son trminos. Dado el smbolo de funcin ms de dos argumentos, las siguientes expresiones tambin son trminos: ms (x,1) ms (ms(x,1),1) El primero de ellos se refiere a la suma x +1, mientras que el segundo a la suma de los trminos correspondientes a x+1 con el trmino 1. Como para el caso del Clculo de Proposiciones, se usan tambin tomos en el Clculo de Predicados, los cuales son enunciados simples (es decir predicados), que estn conformados con smbolos de predicados, con varios trminos como argumentos y que pueden ser evaluados como V (verdaderos) o F (falsos), de

manera que no pueden ser descompuestos en proposiciones ms simples. De esta manera las siguientes expresiones son tomos: MAMFERO(x) MORTAL (LASSIE) ES_TIO(JUAN, JOSE) ES_NIETO(PANCHO_VILLA, PEDRO_CASISTRANINI) Es decir, se puede definir trmino de la siguiente manera: DEFINICIN: Si P es un smbolo de predicado de n argumentos y t1,t2, ..., tn son tminos, entonces P(t1,t2,...tn) es un trmino. Ninguna otra expresin puede ser un tmino. En la siguiente lectura trataremos la forma como se convierte formulas del Clculo de Predicados a formas sin cuantificadores, las cuales son ms faciles de manejar. Como veremos, estas formas, llamadas formas normales prenexas permiten un manejo similar al que se hace con el Clculo de Proposiciones. Tipos de proposiciones predicativas A lo largo de toda la tradicin lgica iniciada por Aristteles se han considerado cuatro maneras de emparejar trminos con predicados para obtener proposiciones. Reciben el nombre de categricos. Se distinguen unos de otros por medio de cuatro letras : A (universal afirmativo) : "Todo ... es ..." E (universal negativo) : "Ningn ... es ..." I (existencial afirmativo) : "Algn ... es ..." O (existencial negativo) : "Algn ... no es ..." Las relaciones que hay entre ellas se representan en el siguiente grfico :

1.14.2 1.14.3

Variables y particularizaciones. Cuantificadores y restricciones.

Definicin semntica de cuantificadores Es necesario definir el procedimiento de atribucin de significados a las frmulas cuantificadas a partir de los significados ya conocidos de la frmula para cada elemento del dominio referido. El significado de una frmula cuantificada se obtiene de la siguiente manera : 1 x F(x) es "V" si la frmula F( _ ) es verdadera para cualquier elemento del dominio asignado a x. x F(x) es "F" si la frmula F( _ ) es falsa para algn elemento del dominio asignado a x. 2 x F(x) es "V" si la frmula F( _ ) es verdadera para algn elemento del dominio asignado a x. x F(x) es "F" si la frmula F( _ ) es falsa para cualquier elemento del dominio asignado a x. Interdefinicin entre cuantificadores Una vez conocidos los dos cuantificadores que vamos a manejar, podemos analizar cmo se definen uno en funcin del otro. 1 Universal/Existencial

En lenguaje natural la frase "no todas las personas saben computacin" equivale obviamente a "hay personas que no saben computacin". Luego, en lenguaje predicativo, la frmula " x P(x)" interpretada en el dominio de las personas equivale a " x P(x)". 2 Existencial/Universal Del mismo modo, la oracin "no existe ninguna persona que sepa computacin" es equivalente a "todas las personas no saben computacin". Formalizando esto al lenguaje predicativo, nos encontramos con que las frmulas " x P(x)" y " x P(x)" son equivalentes. As, un cuantificador seguido de una negacin es intercambiable por una negacin seguida del otro cuantificador. Reglas bsicas referentes a cuantificadores El sistema de reglas de inferencia para la lgica proposicional que hemos construido contena seis reglas bsicas suficientes por s solas para resolver los argumentos que pretendamos. Como hemos dicho en varias oportunidades, la lgica de predicados abarca (superndola) a la lgica proposicional. Por tanto, al conjunto de reglas de inferencia definido le aadiremos otras nuevas referentes a los cuantificadores. Especificacin universal (EU) x A(x) A(t) Generalizacin existencial (GE) A(t) . x A(x) Generalizacin universal (GU) A(y) . x A(x) Especificacin existencial (EE) x A(x) ; A(y) B B

Cabe sealar algunos detalles a fin de evitar posibles errores. 1. ESPECIFICACIN UNIVERSAL Esta regla puede aplicarse siempre a cualquier trmino y en cualquier punto de la demostracin, dado que si una frmula es verdad para todo el dominio, tambin lo es para un elemento puntual perteneciente a ese dominio, ya sea constante o variable. 2. GENERALIZACIN EXISTENCIAL Esta regla tambin puede aplicarse a cualquier trmino y en cualquier momento de la demostracin. Si una frmula A( _ ) es verdad para un elemento del dominio, tambin lo es para un subconjunto del dominio de por lo menos un elemento. 3. GENERALIZACIN UNIVERSAL Para poder generalizar una verdad individual a todo un dominio, el elemento del dominio para el cual se conoce dicha verdad ha de ser un elemento cualquiera que en nada especial se diferencia de los dems. Por lo tanto, para nosotros, el elemento en cuestin deber estar representado por una letra de variable, y adems habr que asegurarse que es cualquiera, es decir, que no pertenece a un subconjunto restringido por alguna caracterstica especial. 4. ESPECIFICACIN EXISTENCIAL La aplicacin de esta regla slo ser correcta si el elemento referenciado por "y" es un elemento especialmente escogido para representar la caracterstica x A(x), y eso no ocurrir si el individuo ha aparecido ya en otra premisa auxiliar. Por tanto, cada vez que se realice una nueva especificacin existencial, se deber utilizar una nueva variable, para no incurrir en el error de suponer que entre los dos subconjuntos del dominio a especificar hay elementos comunes. Universal [, para todo...]. -Existencial [ , existe un... tal que...] Conversiones (equivalencias): (x)P(x) ( x)(P(x)) ; ( x)P(x) (x) (P(x)). Descripcin de los cuatro modelos bsicos de enunciados de la lgica clsica: 1) Enunciado Universalmente Afirmativo (A): (x) P(x) [Todos los x son P] 2) Enunciado Universalmente Negativo (E): (x) P(x) [Ningn x es P] 3) Enunciado Particularmente Afirmativo (I): ( x) P(x) [Algn x es P] 4) Enunciado Particularmente Negativo (O): ( x) P(x) [Algn x no es P]

1.15lgebra declarativa.
1.16 Induccin matemtica.

En esta ltima seccin analizaremos otra tcnica de demostracin. Supongamos que la proposicin que se va a demostrar puede expresarse en la forma " n n0 [ P(n) ], en donde n0 es algn entero fijo. Lo que queremos demostrar, en otras palabras, es que la proposicin P(n) es verdadera para todos los valores de n mayores o iguales a n0. El siguiente resultado muestra cmo puede hacerse: Supongamos que (a) P(n0) es verdadera, y (b) si P(k) es verdadera para valores de k n0, entonces P(k + 1) debe ser tambin verdadera. Entonces P(n) es verdadera para todos los valores de n n0. A este resultado se le llama principio de induccin matemtica. En consecuencia, para demostrar la verdad de una proposicin " n n0 [ P(n) ] usando el principio de induccin matemtica, se debe comenzar por demostrar directamente que la primera proposicin P(n0) es verdadera. A ste se lo conoce como paso base de la induccin y es, por lo general, muy fcil. Luego se tiene que demostrar que P(k) P(k + 1) es una tautologa para cualquier seleccin de k n0. Como el nico caso en que una implicacin es falsa es si el antecedente fuera verdadero y el consecuente falso, este paso suele hacerse demostrando que, si P(k) fuera verdadera, entonces P(k + 1) tendra que ser tambin verdadera. Ntese que esto no es lo mismo que suponer que P(k) es verdadera para algn valor de k. A esta paso se le llama paso inductivo o paso por induccin, y por lo general se requiere algo de esfuerzo para demostrar que la implicacin es siempre verdadera. Adems, a la proposicin P(k) que se supone verdadera se la llama hiptesis inductiva. Ejemplo 6: Demostraremos por induccin matemtica que para todos los valores de n 1, 1 + 2 + 3 + ... + n = n(n + 1)/2. Denotemos por P(n) : 1 + 2 + 3 + ... + n = n(n + 1)/2. Aqu, n0 = 1. 1) Paso base: Probaremos primero que P(1) es verdadera. Para ello basta ver que 1 = 1 (1 + 1)/2, lo cual muestra que P(1) es verdadera.

2) Paso inductivo: Debemos demostrar ahora que para k 1, si P(k) es verdadera, entonces P(k + 1) tambin debe ser verdadera. Suponemos entonces que para algn valor fijo k 1, 1 + 2 + 3 + ... + k = k (k + 1)/2 (hiptesis inductiva) Deseamos demostrar que 1 + 2 + 3 + ... + (k + 1) = (k + 1) ((k + 1) + 1)/2. Escribamos entonces el primer miembro de P(k + 1) de la siguiente forma: 1 + 2 + 3 + ... + k + (k + 1) = k (k + 1)/2 + (k + 1) (por hiptesis inductiva) = (k + 1) (k/2 + 1) = (k + 1) (k + 2)/2 = (k + 1) ((k + 1) + 1)/2. Por lo tanto, P(k + 1) es verdadera. Por el principio de induccin, se sigue que P(n) es verdadera para todos los valores de n 1. El siguiente ejemplo muestra cmo el principio de induccin puede ser til en la programacin de computadoras. Ejemplo 7: Consideremos la siguiente funcin dada en pseudocdigo: FUNCIN CUAD(A) 1. C 0 2. D 0 3. MIENTRAS(D A) a. C C + A b. D D + 1 4. SALIDA(C) FIN DE LA FUNCION CUAD. El nombre de la funcin, CUAD, sugiere que calcula el cuadrado de A. El paso 3b muestra que A debe ser un entero positivo para que el ciclo termine. Unos cuantos tanteos para valores particulares de A proporcionarn evidencia de que la funcin s

efecta esta tarea. Sin embargo, no podemos asegurar de esta forma que la funcin CUAD siempre calcula el cuadrado del entero positivo A sin importar cun grande pueda ser. Se dar entonces una demostracin por induccin matemtica. Para cada n 0, sean Cn y Dn los valores de las variables C y D, respectivamente, despus de pasar por el ciclo MIENTRAS n veces. En particular, C0 y D0 representan los valores de las variables antes de iniciarse el ciclo. Sea P(n) el predicado Cn = A Dn . Se demostrar por induccin que " n 0, P(n) es verdadera. Aqu n0 = 0 . 1) Paso base: P(0) es la proposicin C0 = A D0 , la cual es verdadera ya que C y D valen cero "despus" de que el cero pasa por el ciclo MIENTRAS. 2) Paso inductivo: La hiptesis inductiva es P(k) : Ck = A Dk . Queremos demostrar que P(k + 1) : Ck+1 = A Dk+1 es verdadera. Despus de pasar por el ciclo, C se incrementa por A, y D se incrementa por 1, de manera que Ck+1 = Ck + A y Dk+1 = Dk + 1. As, Ck+1 = Ck + A = A Dk + A (por hip. inductiva) = A (Dk + 1) = A Dk+1 . Por el principio de induccin matemtica, se desprende que mientras ocurra el ciclo, Cn = A Dn. El ciclo debe terminar (Por qu?). Cuando esto ocurra, D = A, de modo que C = A A, o sea, A2, y ste es el valor regresado por la funcin CUAD. Esta tcnica para demostrar que los ciclos y programas hacen lo que se afirma que hacen es una parte importante de la teora de verificacin de algoritmos.

1.17Reglas de inferencia.
Los argumentos basados en tautologas representan mtodos 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 llama reglas de inferencia. Las reglas de inferencia permiten relacionar dos o ms tautologas o hiptesis en una demostracin.

Ejemplo 1 Es valido el siguiente argumento?. Si usted invierte en el mercado de valores, entonces se har rico. Si se hace usted rico, entonces ser feliz. ____________________________________________________ Si usted invierte en el mercado de valores, entonces ser feliz. Sea: p: Usted invierte en el mercado de valores. q: Se har rico. r: Ser feliz De tal manera que el enunciado anterior se puede representar con notacin lgica de la siguiente manera: p q q r ______ p r Ejemplo 2. Es valido el siguiente argumento?. Si bajan los impuestos, entonces se eleva el ingreso El ingreso se eleva. _________________________________________ Los impuestos bajan Solucin: Sea p: Los impuestos bajan. q: El ingreso se eleva. p q q _____ p El aplicar la regla de inferencia es lo que le cuesta ms al alumno y se deber poner mucha atencin para que el alumno aprenda a aplicar dicha regla. En una demostracin no solamente hay tautologas e hiptesis, tambin existen reglas de inferencia que permiten obtener nuevas lneas vlidas, esta es la parte en donde la mayora de alumnos tienen problemas y en donde no sabe que regla

aplicar para resolver un determinado problema. A continuacin se cita una lista de las principales reglas de inferencia que se pueden aplicar en una demostracin. 19.Adicin p _______ p q Simplificacin p q ____________ p Silogismo disyuntivo p q p _________ q 23.Conjuncin q _________ p q 24.- Modus pones p pq _________ q 25.- Modus tollens pq q ___________ p

20.-

21.-

22.- Silogismo hipottico pq qr ________ pr

1.18Evaluacin de expresiones.
1.19 Tautologas y contradicciones.
Tautologa, es aquella proposicin (compuesta) que es cierta para todos los valores de verdad de sus variables. Un ejemplo tpico es la contrapositiva cuya tabla de verdad se indica a continuacin. p 0 0 1 1 q 0 1 0 1 p 1 1 0 0 q 1 0 1 0 pq 1 1 0 1 qp 1 1 0 1 (pq)(qp) 1 1 1 1

Note que en las tautologas para todos los valores de verdad el resultado de la proposicin es siempre 1. Las tautologas son muy importantes en lgica matemtica ya que se consideran leyes en las cuales nos podemos apoyar para realizar demostraciones.

A continuacin me permito citar una lista de las tautologas ms conocidas y reglas de inferencia de mayor uso en las demostraciones formales que obviamente el autor no consider..

1.- Doble negacin. a). p''p 2.- Leyes conmutativas. a). (p q)(q p) b). (p q)(q p) c). (pq)(qp) 3.- Leyes asociativas. a). [(p r][p r)] q) (q b. [(p r][p r)] q) (q 4.- Leyes distributivas. a). [p r)][(p (p (q q) r)] b. [p r)][(p (p (q q) r)] 5.- Leyes de idempotencia. a). (p p)p b). (p p)p 6.- Leyes de Morgan a). (p q)'(p' q') b). (p q)'(p' q') c). (p q)(p' q')' b). (p q)(p' q')' 7.- Contrapositiva. a). (pq)(q'p') 8.- Implicacin. a). (pq)(p' q) b). (pq)(p q')' c). (p q)(p'q) d). (p q)(pq')' e). [(pr) (qr)][(p q)r] f). [(pq) (pr)][p(q r)] 9.- Equivalencia a). (pq)[(pq) (qp)]

10.- Adicin. a). p(p q) 11.- Simplificacin. a). (p q)p 12.- Absurdo a). (p0)p' 13.- Modus ponens. a). [p (pq)]q 14.- Modus tollens. a). [(pq) q']p' 15.- Transitividad del a). [(pq) (qr)](pr) 16.- Transitividad del a). [(pq) (qr)](pr) 17.- Mas implicaciones lgicas. a). (pq)[(p r)(q s)] b). (pq)[(p r)(q s)] c). (pq)[(qr)(pr)] 18.- Dilemas constructivos. a). [(pq) (rs)][(p r)(q s)] b). [(pq) (rs)][(p r)(q s)]
Contradiccin es aquella proposicin que siempre es falsa para todos los valores de verdad, una de las mas usadas y mas sencilla es p . Como lo muestra su p correspondiente tabla de verdad. p 0 1 Si en el ejemplo anterior p: La puerta es verde. p 1 0 p p 0 0

La proposicin p equivale a decir que La puerta es verde y la puerta no es p verde. Por lo tanto se esta contradiciendo o se dice que es una falacia. Una proposicin compuesta cuyos resultados en sus deferentes lneas de la tabla de verdad, dan como resultado 1s y 0s se le llama contingente.

1.19.1

Equivalencias lgicas y utilizaciones.

Equivalencia lgica. Se dice que dos proposiciones son lgicamente equivalentes, o simplemente equivalentes. Si coinciden sus resultados para los mismo valores de verdad. Se indican como p q. Considero que un buen ejemplo es el que se estableci para ilustrar la tautologa en donde se puede observar que las columnas de (pq) y (qp) para los mismo valores de verdad, por lo tanto se puede establecer que (pq) (qp)

1.19.2

Deduccin preposicional.

Evaluacin semntica de deducciones Por definicin, una deduccin P1, P2, P3, ..., Pn Q es semnticamente correcta si y slo si toda interpretacin que satisface al conjunto de premisas, tambin satisface a la conclusin. Diremos que la formula Q es una consecuencia lgica de un conjunto P de premisas predicativas. Por lo que la evaluacin de una deduccin en un dominio D requerir la evaluacin de todas sus posibles interpretaciones en el dominio D. Demostracin de deducciones Una deduccin o argumento se describe aqu tambin de la manera conocida : P1, P2, P3, ..., Pn Q. La demostracin de la validez de un argumento en un sistema formal consiste en una sucesin finita de frmulas F1 = P1, ..., Fm = Q, todas ellas vlidas tales que :

1. Cada frmula Fi es :
a) una de las premisas. b) una frmula vlida del sistema, es decir, es un axioma o un teorema previamente demostrado. c) una frmula deducida de frmulas previas aplicando alguna regla de inferencia.

2. Y la ltima frmula de la sucesin Fm = Q, es precisamente la conclusin del


argumento cuya validez se est demostrando. Diremos entonces que Q es consecuencia lgica del conjunto de premisas P1, P2, P3, ..., Pn. Cuando en una demostracin de una deduccin se utiliza la misma variable en frmulas distintas, debe entenderse referida al mismo elemento del dominio para poder aplicar las reglas de inferencia.

1.19.3

Demostracin condicional y directa.

Mtodos de demostracin. Demostracin por el mtodo directo. Supngase que pq es una tautologa, en donde p y q pueden ser proposiciones compuestas, en las que intervengan cualquier nmero de variables propositvas, se dice que q se desprende lgicamente de p. Supngase una implicacin de la forma. (p1 p2 ....... pn) q Es una tautologa. Entonces est implicacin es verdadera sin importar los valores de verdad de cualquiera de sus componentes. En este caso, se dice que q se desprende lgicamente de p1,p2,......,pn. Se escribe. p1 p2 . . . pn ___ q Realmente el camino que se debe seguir para llevar a cabo una demostracin formal usando el mtodo directo. Significa que s se sabe que p1 es verdadera, p2 es verdadera,...... y pn tambin es verdadera, entonces se sabe que q es verdadera. Prcticamente todos los teoremas matemticos estn compuestos por implicaciones de este tipo. (p1 p2 ....... pn) q Donde la pi son llamadas hiptesis o premisas, y q es llamada conclusin. Demostrar el teorema, es demostrar que la implicacin es una tautologa. Note que no estamos tratando de demostrar que q (la conclusin) es verdadera, sino solamente que q es verdadera si todas las pi son verdaderas.

Toda demostracin debe comenzar con las hiptesis, seguidas de las tautologas y reglas de inferencia necesarias, hasta llegar a la conclusin. A continuacin se prueba un enunciado en donde se puede apreciar el uso tanto de las tautologas como de las reglas de inferencia. Sean p: Trabajo. q: Ahorro. r: Comprar una casa. s: Podr guardar el coche en mi casa. Analizar el siguiente argumento: "Si trabajo o ahorro, entonces comprar una casa. Si compro una casa, entonces podr guardar el coche en mi casa. Por consiguiente, si no puedo guardar el coche en mi casa, entonces no ahorro". El enunciado anterior se puede representar como: p q r; y r s; entonces s' q'

Equivale tambin a probar el siguiente teorema:

[(p q) r] [r s] [s' q']


Como se trata de probar un teorema de la forma general:

p1 p2 ...... pn q
Se aplica el procedimiento general para demostracin de enunciados vlidos. A continuacin se demuestra el teorema respaldando cada uno de sus pasos en tautologas o reglas de inferencia ya conocidas.

1.2.3.4.5.6.7.-

(p q) r r s q (q p) q (p q) q r q s s' q'

Hiptesis Hiptesis Adicin tautologa 10 3; ley conmutativa, regla 2 4,1; silogismo hipottico, regla 22 5,2; regla 22 6; contrapositiva, regla 7.

El enunciado es vlido aunque la conclusin puede ser falsa o verdadera. Es recomendable numerar cada uno de los pasos. Se puede notar que las primeras lneas son hiptesis, la lnea 3 es una tautologa conocida y de la lnea 4 a 7 se

obtuvieron aplicando reglas de inferencia. Se indica la regla de inferencia aplicada por medio del nmero de la derecha, y las lneas a las cuales se les aplic dicha regla de inferencia por medio de los nmeros de la izquierda. El ejemplo anterior es una demostracin sencilla, pero puede ser tan complicada como sea necesario y el mtodo debe funcionar. Demostracin por contradiccin. El procedimiento de la demostracin por contradiccin es semejante a la que se realiz por el mtodo directo con la diferencia de que las lneas iniciales de dicha demostracin no son nicamente las hiptesis, sino adems se incluye en la demostracin una lnea con la negacin de la conclusin. Por otro lado el objetivo de la demostracin es llegar a una contradiccin. La demostracin del siguiente teorema por el mtodo de contradiccin es como se indica [p (p r) ] [(q s) t ] (p s) t Demostracin 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.p (p r) (q s) t p s t (q s) q s q s q s s p p q r q q q Contradiccin. Hiptesis Hiptesis Hiptesis Negacin de la conclusin 2,4; Modus tollens, regla 25 5; Ley de Morgan, 6 6; Simplificacin, regla 20 6; Ley conmutativa, 2b 8; Simplificacin, regla 20 3; Ley conmutativa, 2 10,9; Silogismo disyuntivo, regla 21 11,1; Modus ponens, regla 24 12; Simplificacin, regla 29 13,7; Conjuncin, regla 23

Note que juntamente con las premisas se debe incluir la negacin de la conclusin. En este momento el alumno ya tiene los elementos para llevar a cabo demostraciones con el apoyo del maestro. Es conveniente plantear varios enunciados, para que el alumno los represente con simbologa lgica en forma de teorema. Que ese mismo teorema lo represente con su tabla de verdad y haga la correspondiente demostracin por los dos mtodos antes mencionados. La forma en que el aprende a aplicar reglas de inferencia es semejante a la manera en que deber realizar una factorizacin o una aplicacin de una frmula en clculo diferencial o integral o la formula que debe aplicar para resolver un problema en fsica.

Lo que debe aprender es a relacionar los distintos conocimientos para poder llegar a la solucin. Es importante mencionar que el camino que debe seguir el alumno no es el mismo que el maestro sigui sino uno distinto pero que ambos llegan al resultado.

1.20 Implicacin Tautolgica.

Implicacin Tautolgica
Una proposicin P se dice que implica tautolgicamente una proposicin Q si y slo si la condicional es una tautologa. Esto quiere decir que para implicar algo tautolgicamente, esta tiene que su condicional tiene que ser cierta, si todos los valores implicados son ciertos y uno solo resulta ser falso entonces ya no sera una tautologa. Tautologa vendra siendo que algo es cierto, independientemente de lo que venga en la expresin, si lo que se quiere demostrar es cierto entonces usaremos la implicacin tautolgica. Sera representado as: Premisas Conclusiones = Tautologa y por lo tanto el razonamiento es cierto Ejemplo:

Es tautologa si... [(Q V R ) & (P R) & Q] P Siempre es cierta. Para hacer estas implicaciones tautolgicas se debe basar en las tablas de verdad que vimos anteriormente y con estas resolveremos las implicaciones tautolgicas con las que llegaremos al resultado, lo nico que tiene la implicacin tautolgica es que no se ven las leyes que se usan ni nada intermedio, solo el resultado, como la calculadora, no muestra los pasos que se siguieron para llegar al resultado.

Unidad 2. Relaciones.
2.7 Introduccin.
Concepto de relacin. Sean Es decir, R es una relacin de Si R es una relacin y Ejemplo: , decimos que esta relacionada con b. conjuntos. Una relacin de A en B es un subconjunto de .

Sean

. Los siguientes conjuntos son ejemplos de relaciones de A en B.

o o o o o
Para el caso especial en que R sea una relacin de con, en A. Destacaremos este hecho en la siguiente definicin. , decimos que, R es una relacin

http://www.virtual.unal.edu.co/cursos/sedes/manizales/4030029/lecciones/capitulo3/cap3_2_1.h tm

2.8 Propiedades de las relaciones.


2.8.1 Sobre un conjunto.
Relaciones entre conjuntos Hay dos relaciones importantes que se tienen entre conjuntos: contenencia e igualdad Definicin: 1.2.1 Contenencia entre conjuntos. Sean A y B conjuntos. A es unsubconjuntode Bsi cada elemento de A es un elemento de B. Si A es subconjunto de B escribimos si y solamente si Cuando A es subconjunto de B se dice tambin que, A est contenido en B o que, B contiene a A. . En smbolos tenemos que,

Ejemplo:

o o o o o
decir, El conjunto P de enteros pares es un subconjunto de los enteros. Es En el sistema de los nmeros reales se tienen las siguientes

o
contenencias importantes:

Si A no est contenido en, es decir, si hay un elemento que est en A y no est en B, escribimos Ejemplo:

o o

El conjunto R de nmeros primos no est contenido en el conjunto M de

nmeros naturales impares. Es decir

o
De acuerdo a la definicin de contenencia, cuando la implicacin es verdadera. Utilizaremos este hecho en la demostracin de las siguientes propiedades sobre contenencia entre conjuntos. Teorema 1.2.1 Para cualquier conjunto A, se tiene que: (i) (ii) (iii) Demostracin:

o
la implicacin

Como

no tiene elementos, la proposicin

es falsa. Por lo tanto es

es verdadera 1. Puesto que todo elemento pertenece a U, la proposicin es verdadera 2. es verdadera3.

o o

verdadera. Por lo tanto la implicacin

Definicin: 1.2.2 Igualdad entre conjuntos. Dos conjuntos A y B son iguales si tienen los mismos

elementos,es decir,

Ejemplo:

o o o
Cuando se quiere demostrar que A = B teniendo en cuenta la definicin anterior, debemos probar que i) y ii) .

Ilustraremos esta forma de mostrar la igualdad entre dos conjuntos en la demostracin de las siguientes propiedades sobre igualdad entre conjuntos. Teorema 1.2.2 Dados A, B y C conjuntos, se tiene que:

o o o
Demostracin: (i) Esto implica que: .

A =A. . .

. . Ejercicio:

Demostrar las partes (i) y (iii) del teorema anterior.

Negando la definicin de igualdad entre conjuntos, deducimos que dos conjuntos no son iguales si no tienen los mismos elementos: 5

Es decir,

Ejemplo:

o o o
Decimos que A es subconjunto propio de B si .

Utilizamos la notacin

para indicar que A es subconjunto propio de B. Por ejemplo,

Contenencia e igualdad entre conjuntos definidos por comprensin En el caso que los conjuntos estn descritos por comprensin, las relaciones de contenencia e igualdad se pueden expresar en trminos de los predicados que definen los conjuntos. Sean,

Como:

Entonces,

Por lo tanto,

Como:

Entonces,

En otros trminos,

Por lo tanto,

Ejemplo:

o o o o o

http://www.virtual.unal.edu.co/cursos/sedes/manizales/4030029/index.html Relacin en un conjunto. Sea A un conjunto. Una relacin en A es un subconjunto de .Es decir,

Ejemplo:

Sea

. Los siguientes conjuntos son relaciones en A.

o o o o
Obsrvese que para dos conjuntos cualesquiera Relaciones definidas por comprensin En el estudio de relaciones las ms importantes son aquellas para las cuales las parejas ordenadas que pertenecen a la relacin cumplen una propiedad particular. Por ejemplo, el conjunto de parejas , los conjuntos y son relaciones de A en B.

ordenadas

para las cuales x divide a y define una relacin en

. En este caso la relacin . un predicado en .

corresponde al conjunto de validez del predicado en dos variables: Definicin: 2.1.5 Relacin definida por comprensin. Sea Entonces

Es una relacin binaria en A. En este caso se tiene que: . Ejemplo: Los siguientes conjuntos son ejemplos de relaciones en

o o o o o o o o o o o o o o
La relacin conjunto. es un caso especial de una relacin bien importante la relacin de igualdad en un En las relaciones anteriores

Definicin: 2.1.6 Relacin de igualdad. Sea A un conjunto. La relacin de igualdad en A, denotada por esta definida por,

Por lo tanto, para

En consecuencia, para

Ejemplo:

Sean

.Entonces

o o o

http://www.virtual.unal.edu.co/cursos/sedes/manizales/40300 29/lecciones/capitulo3/cap3_2_1.htm

2.8.2 Reflexivas.
Relacin reflexiva. Sea R una relacin en el conjunto A. R es llamada reflexiva si

En consecuencia R no es reflexiva si

Es decir una relacin es reflexiva si y solamente si todo elemento est relacionado consigo mismo. El siguiente ejemplo ilustra el concepto de una relacin reflexiva. Ejemplo 1:

Considere las siguientes relaciones en

o o o o o o
Cuales de estas relaciones son reflexivas? Solucin:

Las relaciones Para cada anteriores:

son reflexivas: ,las parejas de la forma pertenecen a cada una de estas relaciones, es decir,

. Las otras relaciones no son reflexivas. En ellas no estn todas las parejas

En particular, Ejemplo 2:

no pertenece a ninguna de las relaciones

Considere las siguientes relaciones en

o o

o o o o o o o
Cuales de estas relaciones son reflexivas? Solucin:

o
Para todo .

es reflexiva:

o
Para todo

es reflexiva:

o
Todo entero es mltiplo de si mismo

es reflexiva:

es reflexiva:

o
Por ejemplo

no es reflexiva:

o
Por ejemplo

no es reflexiva:

no es reflexiva:

Por ejemplo

puesto que para todo

o
Para todo

es reflexiva:

o
Por ejemplo puesto que existe

no es reflexiva:

tal que,

http://www.virtual.unal.edu.co/cursos/sedes/manizales/40300 29/lecciones/capitulo3/cap3_2_2.htm

2.8.3 Simtricas y transitivas.


Relacin simtrica.Sea R una relacin en el conjunto A_ R es llamada simtrica si para cada la siguiente implicacin es verdadera:

En consecuencia R no es simtrica si existen

tales que:

Es decir una relacin es simtrica si y solamente si relacionado con . Ejemplo:

est relacionado con b implica que b est

Cuales de las relaciones del ejemplo 1 son simtricas?

Solucin:

Las relaciones

son simtricas: pertenece a la relacin, entonces tambin pertenece a la

En cada caso se cumple que si relacin.

no son simtricas. Por ejemplo:

Ejemplo: Cuales de las relaciones del ejemplo 2 son simtricas? Solucin:

o o

es simtrica puesto que para todo

,Si

no es simtrica: Por ejemplo

. Es decir,

o
mltiplo de 6. Es decir,

no es simtrica_ Por ejemplo 6 es mltiplo de 3 y 3no es

o
, entonces

es simtrica puesto que para todo

, Si

o o
entonces

no es simtrica: Por ejemplo es simtrica puesto que para todo , Si ,

es simtrica puesto que para todo

es simtrica puesto que para todo

un entero, m tambin lo es.

en este caso m = - n Obsrvese que como n es

es simtrica puesto que para cada .

http://www.virtual.unal.edu.co/cursos/sedes/manizales/40300 29/lecciones/capitulo3/cap3_2_2.htm

Se observa que los arcos del grafo son bidireccionales y la matriz es simetrica

Notar que no existen arcos en direccion opuesta en el grafo y que la matriz no puede ser simetrica.

Ejemplo de relacion que no es ni simetrica ni antisimetrica

Relacin antisimtrica Sea R una relacin en el conjunto A. R es llamada antisimtrica si para cada la siguiente implicacin es verdadera:

En consecuencia R no es antisimtrica si existen

tales que:

Es decir, una relacin es antisimtrica si y solamente si no hay elementos est relacionado con b y b est relacionado con . Ejemplo: Cuales de las relaciones del ejemplo 1 son antisimtricas? Solucin:

y b distintos tales que,

son antisimtricas: Para cada una de estas relaciones no hay elementos ambas estn en la relacin. y b con tal que las parejas

no son antisimtricas. Por ejemplo: , y sin embargo .

Ejemplo: Cuales de las relaciones del ejemplo2son antisimtricas? Solucin:

o
con respecto a

es antisimtrica puesto que dos elementos estn relacionados si y solamente si ellos son iguales. es antisimtrica puesto que para todo ,

no es antisimtrica: .

Por ejemplo, - 5 es mltiplo de 5, 5 es mltiplo de -5 y

Es decir

o
Por ejemplo,

no es antisimtrica:

. Es decir,

o
Es imposible que

es antisimtrica:

o
Por ejemplo,

no es antisimtrica:

. Es decir,

o
Por ejemplo,

no es antisimtrica:

. Es decir,

o
Por ejemplo,

no es antisimtrica: .

Es decir,

no es antisimtrica:

Por ejemplo:

Es decir,

Definicin: 2.2.4 Relacin transitiva. Sea R una relacin en el conjunto A. R es llamada transitiva si para cada la siguiente implicacin es verdadera: . En consecuencia: R no es transitiva si existen tales que:

Es decir, una relacin es transitiva si y solamente si a est relacionado con b y b est relacionado con c. Ejemplo: Cuales de las relaciones del ejemplo 1 son transitivas? Solucin:

o
, tambin se cumple que

es transitiva. En todos los casos en que son ciertas:

o o o o

o
, tambin se cumple que

es transitiva. En todos los casos en que :

o o o o o o o o o

o o o o o o o o o o
es transitiva ya que no existen tales que:

o
Por ejemplo,

no es transitiva:

o
Por ejemplo,

no es transitiva:

o
Por ejemplo, Ejemplo:

no es transitiva:

Cules de las relaciones del ejemplo 2 son transitivas? Solucin:

o
Si

es transitiva:

o
Si

es transitiva:

o
Si

es transitiva: es mltiplo de c

es mltiplo de b y b es mltiplo de c, entonces

es transitiva:

es verdadera.

Supongamos que Aplicando la ley distributiva de la

. Es decir, sobre la : .

Aplicando la ley distributiva de la

sobre la

: .

Por lo tanto: . En consecuencia:

. De esta forma:

o
Supongamos que Entonces, .

es transitiva:

Es decir,

Es decir,

Es decir,

Por lo tanto:

En consecuencia:

o
Por ejemplo,

no es transitiva:

o
Por ejemplo,

no es transitiva:

o
Por ejemplo,

no es transitiva:

o
Por ejemplo,

no es transitiva:

http://www.virtual.unal.edu.co/cursos/sedes/manizales/4030029/lecciones/capitulo3/cap 3_2_2_a.htm

Ejercicios:

2.9 Cerradura.

2.10

Relaciones de equivalencia.
en es de equivalencia ssi es refleja, simtrica y transitiva.

Recordemos que una relacin Definicin: Dado

llamamos (todos los elementos de

clase de equivalencia de relativa a al conjunto que estn relacionados con ).

Ejemplo: Considere la relacin de congruencia mdulo en ( ). En esta relacin es el conjunto de los pares, es el conjunto de los enteros impares, son los impares, . En este ejemplo existen slo 2 clases de equivalencia distintas: y . Observemos que . Adems . Propiedades: 1. Para cada , . , si , si , entonces , entonces . .

2. Para cada par de elementos 3. Para cada par de elementos Dem: 1. Por la reflexividad de ,

, luego

. , luego , y como es transitiva, y

2. En efecto, si entonces . Pero . La recproca es anloga. 3. Si entonces usando la simetra (para obtener suposicin original. __

, lo que implica que . Es decir, ) y la transitividad, , lo que contradice nuestra

Las dos propiedades anteriores permiten construir una particin de .

Esto es, una familia de subconjuntos de , dos a dos disjuntos, cuya unin es . De manera ms precisa, existe un conjunto de subconjuntos no vacos de , (que ser la particin de ), tal que si entonces (dos a dos disjuntos) y . Esta ltima

unin se entiende como sigue: formado por todos los elementos que pertenecen a alguno de los natural de la unin de dos conjuntos, convnzase!).

, es decir, es el conjunto (y es la generalizacin

La particin que nos interesa construir es la formada por las clases de equivalencia de , es decir,

Este conjunto se llama conjunto cuociente de esto con algunos ejemplos.

, y se suele anotar tambin como

. Veamos

Ejemplo Orgnico 14: A continuacin se presentan dos relaciones, usted deber ingresar dos nmeros y el programa dir si los nmeros ingresados estan o no relacionados. R1 = (N,N,R1), R1 = (a,b) |( k )a b = 5k (congruencia mdulo 5)
a =,b =

Cul es la clase de equivalencia de 0 para R1? Ejemplo Orgnico 15: Trabajaremos con la relacin definida en el ejercicio anterior. Primero usted debe demostrar que es una relacin de equivalencia. Luego usted ingresar un nmero y el programa devolver algunos elementos de la clase de equivalencia del nmero ingresado. Luego usted debe postular una frmula para estas clases de equivalencia.
a=

b=

Ejemplos: 1. Sea y la relacin en dada por Como ejercicio probar que es de equivalencia. Cul es la clase de equivalencia de . ?

Cul es

Se prueba que la particin en clases de equivalencia es

2. Sea y la relacin en tal que . Probar que equivalencia. Determinar la clase de equivalencia de un real cualquiera . Respuesta:

es de

. 3. Sea y a. Probar que una particin del conjunto . Es decir, los no vacos, , y . Definimos en la relacin . es de equivalencia.

b. Calcular las clases de equivalencia de . Respuesta: Slo haremos la parte (b), la otra parte queda de ejercicio. Supongamos luego ,

. De manera anloga se tiene que si . Luego . , entonces y si , entonces

4. Para , encontrar el conjunto cuociente de por la relacin de equivalencia anotamos por (los enteros mdulo ). Respuesta: Anotaremos la clase de equivalencia de de casos triviales:
o

, que

como

. Veamos primero un par para cada

Si , sabemos que . Luego

es la igualdad en , y entonces .

Si , entonces es directo que , por lo que hay una sola clase de equivalencia: para todos los enteros , y (un conjunto con un solo elemento).

Ahora supondremos que . Esta es la restriccin que generalmente seimpone cuando se usan las congruencias mdulo en la prctica. Haremos uso de la divisin de nmeros enteros, que se puede enunciar como sigue: Si y , entonces existe una nica pareja de enteros , llamados respectivamente cuociente y resto de la divisin de por , tales que , y adems . (La prueba de este resultado no es difcil, y adems demostraremos algo muy similar en el captulo de polinomios, as es que la omitimos.) Si es un entero cualquiera, dividindolo por obtenemos , con . Pero esta ecuacin dice que , es decir, que . De aqu que las clases de equivalencia para son slo . Adems estas clases son distintas entre s, puesto que si , para , entonces . Pero como tambin , entonces la unicidad de la divisin de por entrega . Concluimos entonces que http://im.ideamas.cl/algebra/algebrase21.html , y tiene exactamente elementos.

Ejercicios

2.11

Ordenes parciales.

2.12 Diagramas de Hasse. Diagramas de Hasse


Es habitual representar grficamente ciertos ordenes usando los llamados diagramas de Hasse. Para ello, cada elemento o punto del orden se representa por un pequeno crculo de tal manera que si a < b, el crculo que representa a a se ubica mas abajo que aquel que representa a b y cuando b cubre a a , se unen ambos crculos con una recta. En el caso de ordenes finitos no muy complejos, se puede hacer un diagrama completo, pero el metodo es ilustrativo incluso para ordenes infinitos. Ver la Figura 1.

Unidad 3. Teora de grafos.


3.10 Introduccin. La teora de grafos tiene su origen en el problema de los siete puentes de Knigsberg resuelto por Leonhard Euler. Ms tarde, otros problemas influyeron en el desarrollo de la teora de grafos como el estudio de las redes elctricas, la enumeracin de ismeros de hidrocarburos,...

Hoy en da es rara la disciplina cientfica o humanstica que no utiliza la teora de grafos. Como ejemplos podemos citar la psicologa en dinmica de grupos, la sociologa en los sociogramas, la fsica terica, que usa los diagramas de Feynmann, donde se representan mediante lneas las partculas elementales, el estudio de flujos en redes en programacin lineal e investigacin operativa, los cambios de variable en el clculo diferencial... Dibujar un grafo para resolver un problema es un reflejo muy comn, que no precisa conocimientos matemticos. Un grafo se parece a la figura siguiente, y consta de vertices y de aristas que renen algunos de ellos. En la teora de los grafos, slo se queda lo esencial del dibujo: la forma de las aristas no son relevantes, slo importan sus extremidades (o cabos); la posicin de los vertices tampoco, y se puede variar para obtener un grafo ms claro, y hasta sus nombres se pueden cambiar. Estos cambios se llaman isomorfismos de grafos. Generalmente, se considera que colocar los vertices en forma de polgono regular da grafos muy lebles. Formalmente: Un grafo es una pareja G = (V, A), donde V es un conjunto de puntos, llamados vertices, y A es un conjunto de pares de vertices, llamadas aristas. Para simplificar, la arista {a,b} se denota ab.

En la figura, V = { a, b, c, d, e, f }, y A = { ab, ac, ae, bc, bd, df, ef }. Una red de autovas que conectan ciudades, una red eltrica, un alcantarillado se pueden modelizar con grafos. En algunos casos es necesario imponer un sentido a las aristas, por ejemplo si se quiere representar la red de las calles de una ciudad con sus inevitables direcciones nicas. Las aristas son entonces pares ordenados de vrtices, con (a,b) (b,a), y se define as grafos orientados, como el siguiente:

En este grafo se ha autorizado una arista que tiene sus dos cabos idnticos: es un rizo (o bucle), y aparece tambin una arista sin flecha: significa que la arista se puede recorrer en cualquier sentido: es bidirreccional, y corresponde o dos aristas orientadas. Aqu V = { a, b, c, d, e }, y A = { (a,c), (a,d), (a,e), (b,e), (c,a),(c,c), (d,b) }. Del vertice d slo salen vertices: es una fuente. Del vertice e slo entran vertices: es un agujero, o pozo. Un ciclo es un camino, es decir una sucesin de aristas adyacientes, donde no se recorre dos veces la misma arista, y donde se regresa al punto inicial. Un ciclo hamiltoniano tiene adems que recorrer todas los vertices. Por ejemplo, en un museo grande (al estilo del Louvre), lo idneo sera recorrer todas las salas una sla vez, esto es buscar un ciclo hamiltoniano en el grafo que representa el museo (los vertices son las salas, y las aristas los corredores o puertas entre ellas). Se habla tambin de camino hamiltoniano si no se impone regresar al punto de partida, como en un museo con una nica puerta de entrada. Por ejemplo, un caballo puede recorrer todas las casillas de un tablero de ajedrez sin pasar dos veces por la misma: es un camino hamiltoniano.

Ejemplo de un ciclo hamiltoniano en el grafo del dodecaedro. Hoy en da, no se conocen mtodos generales para hallar un ciclo hamiltoniano.

Un grafo que no tiene circuito y que conecta a todos los puntos, se llama un rbol:

En un grafo con n vertices, los arboles tienen exactamente n - 1 aristas, y hay nn-2 rboles posibles. Los rboles son grafos que conectan vertices utilizando el menor nmero posible de aristas, de ah su inters concreto. En muchos casos, es preciso atribuir a cada arista un nmero especfico, llamado valuacin, ponderacin o coste segn el contexto, y se obtiene as un grafo valuado. Formalmente, es un grafo con una funcin v: A R+. Por ejemplo, un representante comercial tiene que visitar n ciudades conectadas entre si por carreteras; su inters previsible ser minimizar la distancia recorrida (o el tiempo, si se pueden prever atascos). El grafo correspondiente tendr como vrtices las ciudades, como aristas las carreteras y la valuacin ser la distancia entre ellas. Y, de momento, no se conocen mtodos generales para hallar un ciclo de valuacin mnima, pero s para los caminos desde a hasta b, sin ms condicin. Otro problema famoso relativo a los grafos: Cuntos colores son necesarios para dibujar un mapa poltico, con la condicin obvia que dos pases adyacientes no puedan tener el mismo color ? Se supone que los pases son de un solo pedazo, y que el mundo es esfrico o plano. En un mundo en forma de toro; el teorema siguiente no es vlido: Teorema de los cuatro colores: Cuatro colores son siempre suficientes para colorear el un mapa. El mapa siguiente muestra que tres colores no bastan: Si se empieza por el pas central a y se esfuerza uno en utilizar el menor nmero de colores, entonces en la corona alrededor de a alternan dos colores. Llegando al pas h se tiene que introducir un cuarto color. Lo mismo sucede en i si se emplea el mismo mtodo.

La forma precisa de cada pas no importa; lo nico relevante es saber cual pas toca cual otro. Estos datos estn incluidos en el grafo donde los vrtices son los pases y las aristas conectan los que justamente son adyacientes. Entonces la cuestin equivale a atribuir a cada vrtice un color distinto del de sus vecinos.

Hemos visto que tres colores no son suficientes, y demostrar que con cinco siempre se llega, es bastante fcil. Pero el teorema de los cuatro colores no es nada obvio. prueba de ello es que se ha tenido que emplear los ordenadores para acabar la demostracin (se ha hecho un programa que permiti verificar una multitud de casos , lo que ahorr muchsimo tiempo a los matemticos). Fue la primera vez que la comunidad matemtica acept una demostracin asistida por ordenador.

Un juego muy conocido es el siguiente: Se dibuja tres casas y tres pozos. Los vecinos de las casas tienen todos el derecho de utilizar los tres pozos. Como no se llevan bien en absoluto, no quieren cruzarse jams. Es posible trazar los nueve caminos que juntan las tres casas con los tres pozos sin que haya cruces ?

Cualquier disposicin de las casas, los posos y los caminos implica la presencia de al menos un cruce. Se nota Kn el grafo completo con n vrtices, es decir en el cual cada par de vertices estn conectadas por una arista. Kn,p es el grafo compuesto de un grupo de nvrtices y otro de p, tal que cada vrtice del primer grupo est conectado con cada del segundo, y no hay ms aristas. El juego anterior equivale a descubrir si el grafo K3,3 es planario, es decir si se puede dibujar en un plano sin que haya cruces. Y la respuesta es no. Establecer qu grafos son planarios no es obvio, y tiene que ver con la topologa.

En la figura, se nota que K4 es planar (con tal de desviar la arista ab al exterior del cuadrado), que K5 no lo es en absoluto, y que K3,2 lo es tambin ( desvos en gris). En un grafo, La distancia entre dos vrtices es el menor nmero de aristas de un recorrido entre ellos. El dimetro, en una figura como en un grafo, es la mayor distancia entre dos puntos de la misma. El dimetro de los Kn es 1, y el

de los Kn,p es 2. Un diametro infinito puede significar que el grafo tiene una infinidad e vrtices o simplemente que no es conexo. Tambin se puede considerar el dimetro promedio, como el promedio de las distancias entre dos vrtices. El mundo de Internet ha puesto de moda esa idea del dimetro: Si descartamos los sitios que no tienen enlaces, y escojamos dos paginas geb al azar: En cuntos cliques o clics se puede pasar de la primera a la segunda ? El resultado es el diametro de la Red, vista como un grafo cuyos vrtices son los sitios, y cuyas aristas son logicamente los enlaces. En el mundo real hay una analoga: tomando al azar dos seres humanos del mundo, En cuntos saltos se puede pasar de uno a otro, con la condicin de slo saltar de una persona a otra cuando ellas se conocen personalmente ? Con esta definicin, se estima que el dimetro de la humanidad es de ... ocho solamente! Este concepto refleja mejor la complejidad de una red que el nmero de sus elementos.

3.10.1

Conceptos bsicos de grafos.

Un grafo, G, es un par ordenado de V y A, donde V es el conjunto de vrtices o nodos del grafo y A es un conjunto de pares de vrtices, a estos tambin se les llama arcos o ejes del grafo. Un vrtice puede tener 0 o ms aristas, pero toda arista debe unir exactamente a dos vrtices. Los grafos representan conjuntos de objetos que no tienen restriccin de relacin entre ellos. Un grafo puede representar varias cosas de la realidad cotidiana, tales como mapas de carreteras, vas frreas, circuitos elctricos, etc. La notacin G = A (V, A) se utiliza comnmente para identificar un grafo. Los grafos se constituyen principalmente de dos partes: las aristas, vrtices y los caminos que pueda contener el mismo grafo CAMINO.Es una secuencia de vrtices V1, V2, V3, ... , Vn, tal que cada uno de estos V1-&gtV2, V2-&gtV3, V1-&gtV3. LONGITUD DE CAMINO. Es el nmero de arcos en ese camino. CAMINO SIMPLE. Es cuando todos sus vrtices, excepto tal vez el primero y el ltimo son distintos.

CICLO SIMPLE. Es un camino simple de longitud por lo menos de uno que empieza y termina en el mismo vrtice. ARISTAS PARALELAS. Es cuando hay ms de una arista con un vrtice inicial y uno terminal dados. GRAFO CICLICO. Se dice que un grafo es cclico cuando contiene por lo menos un ciclo. GRAFO ACICLICO. Se dice que un grafo es aciclco cuando no contiene ciclos. GRAFO CONEXO. Un grafo G es conexo, si y solo si existe un camino simple en cualesquiera dos nodos de G. GRAFO COMPLETO FUERTEMENTE CONEXO.Un grafo dirigido G es completo si para cada par de nodos (V,W) existe un camino de V a W y de W a V (forzosamente tendrn que cumplirse ambas condiciones), es decir que cada nodo G es adyacente a todos los dems nodos de G. GRAFO UNILATERALMENTE CONEXO.Un grafo G es unilateralmente conexo si para cada par de nodos (V,W) de G hay un camino de V a W o un camino de W a V. GRAFO PESADO ETIQUETADO. Un grafo es pesado cuando sus aristas contienen datos (etiquetas). Una etiqueta puede ser un nombre, costo un valor de cualquier tipo de dato. Tambin a este grafo se le denomina red de actividades, y el nmero asociado al arco se le denomina factor de peso. VERTICE ADYACENTE. Un nodo o vrtice V es adyacente al nodo W si existe un arco de m a n. GRADO DE SALIDA.El grado de salida de un nodo V de un grafo G, es el nmero de arcos o aristas que empiezan en V. GRADO DE ENTRADA.El grado de entrada de un nodo V de un grafo G, es el nmero de aristas que terminan en V. NODO FUENTE.Se le llama as a los nodos que tienen grado de salida positivo y un grado de entrada nulo. NODO SUMIDERO.Se le llama sumidero al nodo que tiene grado de salida nulo y un grado de entrada positivo. Aristas Son las lneas con las que se unen las aristas de un grafo y con la que se construyen tambin caminos.

Si la arista carece de direccin se denota indistintamente {a, b} o {b, a}, siendo a y b los vrtices que une. Si {a ,b} es una arista, a los vrtices a y b se les llama sus extremos.

Aristas Adyacentes: Se dice que dos aristas son adyacentes si convergen en el mismo vrtice. Aristas Paralelas: Se dice que dos aristas son paralelas si vrtice inicial y el final son el mismo. Aristas Cclicas: Arista que parte de un vrtice para entrar en el mismo. Cruce: Son dos aristas que cruzan en un punto.

Vrtices Son los puntos o nodos con los que esta conformado un grafo. Llamaremos grado de un vrtice al nmero de aristas de las que es extremo. Se dice que un vrtice es `par' o `impar' segn lo sea su grado.

Vrtices Adyacentes: si tenemos un par de vrtices de un grafo (U, V) y si tenemos un arista que los une, entonces U y V son vrtices adyacentes y se dice que U es el vrtice inicial y V el vrtice adyacente. Vrtice Aislado: Es un vrtice de grado cero. Vrtice Terminal: Es un vrtice de grado 1.

Caminos Sean x, y " V, se dice que hay un camino en G de x a y si existe una sucesin finita no vaca de aristas {x,v1}, {v1,v2},..., {vn,y}. En este caso

x e y se llaman los extremos del camino El nmero de aristas del camino se llama la longitud del camino. Si los vrtices no se repiten el camino se dice propio o simple. Si hay un camino no simple entre 2 vrtices, tambin habr un camino simple entre ellos. Cuando los dos extremos de un camino son iguales, el camino se llama circuito o camino cerrado. Llamaremos ciclo a un circuito simple

Un vrtice a se dice accesible desde el vrtice b si existe un camino entre ellos. Todo vrtice es accesible respecto a si mismo

3.10.2

Clasificacin de grafos.

Podemos clasificar los grafos en dos grupos: dirigidos y no dirigidos. En un grafo no dirigido el par de vrtices que representa un arco no est ordenado. Por lo tanto, los pares (v1, v2) y (v2, v1) representan el mismo arco. En un grafo dirigido cada arco est representado por un par ordenado de vrtices, de forma que y representan dos arcos diferentes. 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)} G3 = (V3, A3) V3 = {1, 2, 3} A3 = { <1, 2>, <2, 1>, <2, 3> } Grficamente estas tres estructuras de vrtices y arcos se pueden representar de la siguiente manera:

DGRAFO (GRAFO DIRIGIDO). A un grafo dirigido se le puede definir como un grafo que contiene aristas dirigidas, como en el siguiente caso.

APLICACIONES DE LOS DIGRAFOS Una de las aplicaciones mas importantes es de hallar el camino mas corto hacia un destino, ya sea de una ciudad a otra, de unos departamentos a otros, para el recorrido de rboles, sirve para la representacin de algoritmos, etc. Algunos de los principales tipos de grafos son los que se muestran a continuacin: Grafo regular: Aquel con el mismo grado en todos los vrtices. Si ese grado es k lo llamaremos k-regular. Por ejemplo, el primero de los siguientes grafos es 3-regular, el segundo es 2regular y el tercero no es regular Grafo bipartito: Es aquel con cuyos vrtices pueden formarse dos conjuntos disjuntos de modo que no haya adyacencias entre vrtices pertenecientes al mismo conjunto Ejemplo.- de los dos grafos siguientes el primero es bipartito y el segundo no lo es Grafo completo: Aquel con una arista entre cada par de vrtices. Un grafo completo con n vrtices se denota Kn. A continuacin pueden verse los dibujos de K3, K4, K5 y K6 Un grafo bipartito regular: se denota Km,n donde m, n es el grado de cada conjunto disjunto de vrtices. A continuacin ponemos los dibujos de K1,2, K3,3, y K2,5 Grafo nulo: Se dice que un grafo es nulo cuando los vrtices que lo componen no estn conectados, esto es, que son vrtices aislados.

Grafos Isomorfos: Dos grafos son isomorfos cuando existe una correspondencia biunvoca (uno a uno), entre sus vrtices de tal forma que dos de estos quedan unidos por una arista en comn.

Grafos Platnicos: Son los Grafos formados por los vrtices y aristas de los cinco slidos regulares (Slidos Platnicos), a saber, el tetraedro, el cubo, el octaedro, el dodecaedro y el icosaedro.

GRAFOS EULERIANOS.

Para definir un camino euleriano es importante definir un camino euleriano primero. Un camino euleriano se define de la manera ms sencilla como un camino que contiene todos los arcos del grafo. Teniendo esto definido podemos hablar de los grafos eulerianos describindolos simplemente como aquel grafo que contiene un camino euleriano. Como ejemplos tenemos las siguientes imgenes: El primer grafo de ellos no contiene caminos eulerianos mientras el segundo contiene al menos uno. GRAFOS CONEXOS. Un grafo se puede definir como conexo si cualquier vrtice V pertenece al conjunto de vrtices y es alcanzable por algn otro. Otra definicin que dejara esto ms claro sera: un grafo conexo es un grafo no dirigido de modo que para cualquier par de nodos existe al menos un camino que los une.

RBOLES. Un rbol se define como un tipo de grafo que no contiene ciclos, es decir es un grafo tambin acclico, pero a su vez es conexo. Tal es el caso de los siguientes dos grafos en donde se puede notar que ninguno de los dos contiene repeticiones (ciclos). BOSQUES DE RBOLES. Los bosques de rboles son un caso similar a los rboles, son acclicos, pero no son conexos. Como ejemplo tenemos la siguiente figura.

RECORRIDO DE UN GRAFO. Recorrer un grafo significa tratar de alcanzar todos los nodos que estn relacionados con uno que llamaremos nodo de salida. Existen bsicamente dos tcnicas para recorrer un grafo: el recorrido en anchura; y el recorrido en profundidad.

Recorrido en anchura: El recorrido en anchura supone recorrer el grafo, a partir de un nodo dado, en niveles, es decir, primero los que estn a una distancia de un arco del nodo de salida, despus los que estn a dos arcos de distancia, y as sucesivamente hasta alcanzar todos los nodos a los que se pudiese llegar desde el nodo salida. Recorrido en profundidad: el recorrido en profundidad trata de buscar los caminos que parten desde el nodo de salida hasta que ya no es posible avanzar ms. Cuando ya no puede avanzarse ms sobre el camino elegido, se vuelve atrs en busca de caminos alternativos, que no se estudiaron previamente.

3.11

Representacin de estructura mediante grafos.

REPRESENTACIN DE GRAFOS EN PROGRAMAS. Hay tres maneras de representar un grafo en un programa: mediante matrices, mediante listas y mediante matrices dispersas.

Representacin mediante matrices: La forma ms fcil de guardar la informacin de los nodos es mediante la utilizacin de un vector que indexe los nodos, de manera que los arcos entre los nodos se pueden ver como relaciones entre los ndices. Esta relacin entre ndices se puede guardar en una matriz, que llamaremos de adyacencia.

Representacin mediante listas: En las listas de adyacencia lo que haremos ser guardar por cada nodo, adems de la informacin que pueda contener el propio nodo, una lista dinmica con los nodos a los que se puede acceder desde l. La informacin de los nodos se puede guardar en un vector, al igual que antes, o en otra lista dinmica. Representacin mediante matrices dispersas: Para evitar uno de los problemas que tenamos con las listas de adyacencia, que era la dificultad de obtener las relaciones inversas, podemos utilizar las matrices dispersas, que contienen tanta informacin como las matrices de adyacencia, pero, en principio, no ocupan tanta memoria como las matrices, ya que al igual que en las listas de adyacencia, slo representaremos aquellos enlaces que existen en el grafo.

Existen dos formas de mantener un grafo "G" en la memoria de una computadora, una se llama Representacin secuencial de G, la cual se basa en la matriz de adyacencia A; la otra forma, es la llamada Representacin enlazada de G y se basa en listas enlazadas de vecinos. Independientemente de la forma en que se mantenga un grafo G en la memoria de una computadora, el grafo G normalmente se introduce en la computadora por su definicin formal: Un conjunto de nodos y un conjunto de aristas

Representacin secuencial de un grafo:

Considere el grafo siguiente "G": y suponga que los nodos se mantienen en memoria en un array DATOS tal como sigue: DATOS: X, Y, Z, W Para hallar la matriz de adyacencia A del grafo "G", tenemos que tomar en cuenta que los nodos estn normalmente ordenados de acuerdo con la forma en que aparecen en memoria; o sea, asumimos que u 1 = X, u 2 = Y, u 3 = Z, y u 4 = W, la matriz de adyacencia A de G seria la siguiente:

aqu a i j = 1 si hay una arista u i a u j ; si no a i j = 0. As entonces para hallar la matriz de camino P de G mediante las potencias de la matriz de adyacencia A, como G tiene cuatro nodos se calcula

por lo tanto la matriz de caminos P se obtiene ahora haciendo pi j = 1 siempre que haya una entrada positiva en la matriz B4 . as

La matriz de caminos muestra que no hay camino de u 1 a u 2 de hecho, no hay camino de ningn nodo a u 1 por tanto, G no es fuertemente conexo.

Representacin enlazada de un grafo: Un grafo "G" se guarda en memoria como sigue: NODO SIG ADY A 7 1 B 4 2 0 E 6 5 8 D 0 7 C 2 9 3

PRINCIPIO = 1, NDISP = 5 DEST ENL 2 10 1 ADISP = 8 Para dibujar el respectivo grafo "G", primero debemos buscar todos los vecinos de cada NODO[K] recorriendo su lista de adyacencia que tiene el puntero de adyacencia ADY[J]. Esto da como resultado: A: 2(B) y 6(D) B: 6(D), 4(E) y 7(C) C: 4(E) D: 4(E) E: 6(D) 6 3 2 4 6 3 0 4 6 0 5 7 0 6 4 0 7 4 8 4 0 9 6 0 10

Entonces procedemos a dibujar el diagrama del grafo como sigue: Sea G un grafo dirigido con m nodos. La representacin secuencial de G en la memoria, o sea, la representacin de G por su matriz de adyacencia A, tiene unas cuantas desventajas importantes.

En primer lugar, puede ser difcil insertar y eliminar nodos de G, esto es por que el tamao de A debera ser cambiado y los nodos deberan ser reordenados, as que habra muchos cambios en la matriz A; ms aun, si el numero de aristas es O(m) o O(m log2 m), entonces la matriz A estar desperdiciada (contendr muchos ceros); por tanto, se desperdiciar una gran cantidad de espacio; entonces G normalmente se representa en memoria por una representacin enlazada, tambin llamada estructura de adyacencia.

Considere el grafo G de la figura siguiente y su respectiva tabla de adyacencia, donde se muestra cada nodo de G seguido por la lista de nodos adyacentes, tambin llamados sucesores o vecinos.

Para apreciar aun ms esta situacin, podemos tambin usar un diagrama esquemtico de la representacin enlazada de G en la memoria, especficamente, la representacin enlazada contendr dos listas (o archivos), una lista de nodos NODO y una lista de aristas ARISTA, tal como sigue: Cada elemento de la lista NODO corresponder a un nodo de G y ser un registro de la forma:

NODO

SIG

ADY

Aqu NODO ser el nombre o valor clave del nodo, SIG ser un puntero al siguiente nodo de la lista NODO y ADY ser un puntero al primer elemento de la lista de adyacencia del nodo, que se mantiene en la lista ARISTA; el rea restante indica que puede haber otra informacin en el registro, tal como el grado de entrada GraEnt del nodo, el grado de salida GraSal del nodo, el ESTADO del nodo durante la ejecucin de un algoritmo, etc. Adicional a esto, cada elemento de la lista ARISTA corresponder a una arista de G y ser un registro de la forma: DEST ENL

Donde el campo DEST apuntar a la posicin en la lista NODO del nodo destino o terminal de la arista, el campo ENL enlazar juntas las aristas con el mismo nodo inicial, o sea, los nodos con la misma lista de adyacencia, y el campo restante indica que puede existir otra informacin en el registro correspondiente a la arista, tal como un campo ARIS conteniendo los datos etiquetados de la arista cuando G es un grafo con etiquetas, un campo PESO conteniendo el peso de la arista cuando G es un grafo con peso, etc. Podemos clasificar cada una de las estructuras de control ms comunes en programacin en uno de los siguientes tipos:

Secuencia: Ejecucin sucesiva de una o ms operaciones. Seleccin: Se realiza una u otra operacin, dependiendo de una condicin. Iteracin: Repeticin de una o varias operaciones mientras se cumpla una condicin.

3.11.1
Sentencia for

Secuencias.

La forma general de esta sentencia es: for (expresion 1; expresion 2; expresion 3) sentencia;

Figura 3.4: Sentencia for


Inicialmente se ejecuta expresion 1, se hace para inicializar algn parmetro que controla la repeticin del bucle. expresion 2 es una condicin que debe ser cierta para que se ejecute sentencia. expresion 3 se utiliza para modificar el valor del parmetro. El bucle se repite mientras expresion 2 sea cierto. Si sentencia es compuesta se encierra entre { }. Si se omite expresion 2 se asumir el valor permanente de 1 y el bucle se ejecutar de forma indefinida (bucle infinito).

Un ejemplo de uso de esta sentencia es el siguiente fragmento de programa, que calcula la suma de los numeros del 1 al 100: int numero, suma; suma=0; for (numero=1; numero<=100; numero++) suma = suma + numero;

3.11.2
Sentencia if

Seleccin (if-then-else).

La forma general de esta sentencia es: if (expresion) sentencia

Figura 3.1: Sentencia if Si la expresion es verdadera (valor distinto de 0), entonces se ejecuta sentencia. La expresion debe estar entre parntesis. Si sentencia es compuesta tenemos: if (expresion) { sentencia 1 sentencia 2 . sentencia N } Un ejemplo de uso de esta sentencia es el siguiente fragmento de programa, que decide si un nmero es par: int numero = 0, esPar= 0;

if ((numero % 2) == 0) esPar = 1;

Sentencia if-else La forma general de esta sentencia es: if (expresion) sentencia 1 else sentencia 2

Figura 3.2: Sentencia if-else Si expresion es verdadera (valor distinto de 0), entonces se ejecuta sentencia 1; en caso contrario, se ejecuta sentencia 2. Si las sentencias son compuestas se cierran entre { }. Las sentencias pueden ser a su vez sentencias if-else. if (expresion 1) if (expresion 2) S1 else S2 else S3 Un ejemplo de uso de esta sentencia es el siguiente fragmento de programa, que elige el menor de tres nmeros: float a, b, c, menor; a=2; b=4; c=1;

if (a < b) { if (a < c) menor else menor } else { if (b < c) menor else menor }

= a; = c; = b; = c;

IF THEN ELSE. Formato:

IF (expresin lgica o booleana) THEN Sentencial (simple o compuesta) ELSE Sentencia2 (simple o compuesta); Ejem. IF n>O then Writeln (`Nmero positivo'); IF n>O then Writeln (`Nmero positivo') ELSE Writeln (`Negativo o cero'); No puede existir un punto y coma inmediatamente antes de una palabra ELSE ya que sera interpretado como final de IF.

3.11.3
Sentencia while

Mientras (while).

La forma general de esta sentencia es: while (expresion) sentencia;

Figura 3.5: Sentencia while


sentencia se ejecutar mientras el valor de expresion sea verdadero. Primero se evala expresion Lo normal es que sentencia incluya algn elemento que altere el valor de expresion proporcionando as la condicin de salida del bucle. Si sentencia es compuesta se encierra entre { }.

Un ejemplo de uso de esta sentencia es el siguiente fragmento de programa, que calcula la suma de los numeros del 1 al 100: int suma, limite; suma=1; limite=100; while(limite>0) { suma=suma+limite; limite--; }

3.11.4

Repetir hasta que (repeat-until).

SENTENCIA REPEAT UNTIL Ejecuta las sentencias comprendidas entre las palabras reservadas REPEAT y UNTIL hasta que la expresin o variable sea verdadera. Formato:

REPEAT begin (Sentencia); (Sentencia); ... end;

UNTIL condicin; Caractersticas del bucle REPEAT: Se ejecutan siempre una vez, por lo menos, y la terminacin del bucle se produce cuando el valor de la expresin lgica o condicin de salida es verdadera. Se ejecuta hasta que la expresin es verdadera, es decir, se ejecuta mientras la expresin sea falsa. Ejemplo. El mismo que con la sentencia WHILE. Program escribeenteros; Var N,contador:integer; Begin Write ('Introduzca nmero mximo de enteros: '); Readin (N); Contador:= O; Repeat Contador:=contador+1; Write (contador:5) Until contador = N; Writeln ('Fin de programa. Contador = ',contador) End. Sentencia do-while La forma general de esta sentencia es: do sentencia; while (expresion);

Figura 3.6: Sentencia do-while


sentencia se ejecutar mientras el valor de expresion sea verdadero. sentencia siempre se ejecuta al menos una vez. Si sentencia es compuesta se encierra entre { }.

Para la mayora de las aplicaciones es mejor y ms natural comprobar la condicin antes de ejecutar el bucle, por ello se usa ms la sentencia while. Un ejemplo de uso de esta sentencia es el siguiente fragmento de programa, que pide un nmero igual a 0: int numero = 0; do { printf("Introduce el nmero 0:\n"); scanf("%d", &numero); /* Se lee el numero */ } while (numero != 0);

3.11.5
CASE OF Formato:

Seleccin mltiple (case).

CASE (expresin o variable) OF (lista de constantes1):(sentencia1);

(lista de conslantes2):(sentencia2); (lista de constantes3):(senteneia3);

... (lista de constantesN):(sentenciaN); ELSE (SENTENCIA) ... END; Ejem. Program menu; Var Numerodia: integer; Begin Write('introduzca el ordinal de un da laborable de la semana:') Readn (numerodia); Write (`Hoy es '); Case numerodia Of 1:Writeln ('Lunes'); 2:Writeln ('Martes'); 3:Writeln ('Miercoles'); 4:Writeln ('Jueves'); 5:Writeln ('Viernes'); 6:Writeln ('Sbado') Else

Writeln ('Domingo!!! No es da laborable'); End. Sentencia switch La forma general de esta sentencia es: switch (expresion) { case exp 1: sentencia 1; sentencia 2; break; case exp 2: case exp N: sentencia N; break; default: sentencia D;

Figura 3.3: Sentencia switch


expresion devuelve un valor entero, pero tambin puede ser de tipo char. exp1, ..., exp N representan expresiones constantes de valores enteros, aunque tambin pueden ser caracteres.

Un ejemplo de uso de esta sentencia es el siguiente fragmento de programa, que decide si imprime la vocal dada: letra='e'; switch(letra);

case 'a': case 'A': printf(``Es la vocal a\n''); break; case 'e': case 'E': printf(``Es la vocal e\n''); break; case 'i': case 'I': printf(``Es la vocal i\n''); break; case 'o': case 'O': printf(``Es la vocal o\n''); break; case 'u': case 'U': printf(``Es la vocal u\n''); break; default: printf(``Es una consonante\n'');

} Sentencia break La sentencia break se utiliza para terminar la ejecucin de bucles o salir de una sentencia switch. Es necesaria en la sentencia switch para transferir el control fuera de la misma. En caso de bucles anidados, el control se transfiere fuera de la sentencia ms interna en la que se encuentre, pero no fuera de las externas.

3.12 Clculo de caminos a partir de una representacin matricial.


Algoritmo de matriz de camino mnimo: Cuando se trata de un grafo con peso G de M nodos est memoria mediante su matriz de peso W; este algoritmo encuentra la matriz Q tal que [ I, J ] es la longitud del camino mnimo del nodo VI al nodo VJ . INFINITO es un nmero muy grande y MIN es la funcin del valor mnimo. 1. [ Inicializar Q ] repetir para I, J=1, 2, . . ., M: si W [ I, J ] = 0, entonces: hacer Q [ I, J ]:= INFINITO; si no: hacer Q [ I, J ] := W [ I, J ].

[ fin de bucle ] 2. [ Actualizar Q ] repetir pasos 3 y 4 para K=1, 2, . . ., M: 3. repetir paso 4 para I = 1, 2, . . ., M: 4. repetir para J = 1, 2, . . ., M: hacer Q [ i, J ] := MIN(Q [ i, J ]+ Q [ i, K ]+ Q [ K, J ]). [ fin de bucle ] [ fin de bucle del paso 3 ] [ fin de bucle del paso 2 ] 5. Salir.

3.13 3.14 3.15

Espacio de estados. Representacin mediante espacio de estados. Estrategia y algoritmos de bsqueda.


Guiada por datos (forward).

3.15.1

Algoritmo de avance (forward algorithm)

la probabilidad de la secuencia de observacin parcial o1o2...ot en el estado i hasta el tiempo t, dado el modelo . Puede calcularse t (i), as:

El nmero de operaciones requeridas para calcular t (j), 1 t T , 1 j N , ilustradas en la figura 1.6, es exactamente de N (N +1)(T -1)+N multiplicaciones y N (N -1)(T -1) sumas, entonces es del orden de N2T.

Figura 1.6 Secuencia de operaciones necesarias para el cmputo de la variable t +1(j) Para el aprendizaje del HMM se deben propagar las probabilidades en forma inversa.

3.15.2

Guiada por objetivos (backtrack).

Algoritmo de retroceso (backward algorithm)

La probabilidad de la secuencia de observacin parcial desde t+1 hasta el final, dado el estado i en el tiempo t y el modelo . La variable t (i) puede resolverse como sigue:

Los cmputos necesarios de t (i), 1 t T , operaciones, segn se ilustra en la figura 1.7.

1 i N , es del orden de N2T

Figura 1.7 Secuencia de operaciones requeridas para el cmputo de la variable de retroceso t

3.15.3

En profundidad.

Bsqueda en profundidad (BEP): Se comienza en cualquier vrtice y en cada paso se avanza a un nuevo vrtice adyacente siempre que se pueda. Cuando todos los adyacentes a X hayan sido visitados, se retrocede al vrtice desde el que se alcanz X y se prosigue. As se consigue etiquetar (visitar) todos los vrtices de la componente conexa en que se encuentre el vrtice inicial. Esta tcnica se utiliza cuando necesitamos encontrar respuesta a un problema sobre un grafo sin condiciones de optimizacin.

La idea en general de la bsqueda 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 atrs 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 tambin a la forma en que se debe pasar a travs de un laberinto. Observe que se hace uso una pila en lugar de una cola, y este es el detalle fundamental que hace la diferencia para realizar la bsqueda en profundidad. Algoritmo para la bsqueda en profundidad: Este algoritmo realiza la bsqueda 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 en la pila y cambiar su estado a estado de espera (ESTADO=2). 3. Repetir los pasos 4 y 5 hasta que la pila este vacia. 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 vecinos de N que estn 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.15.4

En anchura.

Bsqueda en anchura (BEA): A diferencia con la BEP ahora se visitan todos los vecinos de un vrtice antes de pasar al siguiente. Por tanto no hay necesidad de retroceder. Una vez etiquetados todos los vecinos de un vrtice X, se contina con el primer vrtice alcanzado despus de X en la bsqueda. Esta tcnica se utiliza para resolver problemas en los que se pide hallar una solucin ptima entre varias.

En general la bsqueda en anchura comenzando de un nodo de partida A es la siguiente: Primero examinamos el nodo de partida A. Luego examinamos todos los vecinos de A. Luego examinamos todos los vecinos de los vecinos de A y as sucesivamente. Con el uso de una cola, garantizamos que ningn nodo sea procesado ms de una vez y usando un campo ESTADO que nos indica el estado actual de los nodos. Algoritmo para la bsqueda en anchura: Este algoritmo realiza la bsqueda 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 en la COLA y cambiar su estado a espera (ESTADO=2). 3. Repetir pasos 4 y 5 hasta que COLA est vaca. 4. Quitar el nodo del principio de la cola, N. Procesar N y cambiar su estado a procesado (ESTADO=3). 5. Aadir a COLA todos los vecinos de N que estn en estado de preparados (ESTADO=1) y cambiar su estado al de espera (ESTADO=2). [ fin del bucle del paso 3 ] 6. Salir.

3.16

rboles.

A los arboles ordenados de grado dos se les conoce como arboles binarios ya que cada nodo del rbol no tendr ms de dos descendientes directos. Las aplicaciones de los arboles binarios son muy variadas ya que se les puede utilizar para representar una estructura en la cual es posible tomar decisiones con dos opciones en distintos puntos. La representacin grfica de un rbol binario es la siguiente:

Representacin en Memoria Hay dos formas tradicionales de representar un rbol binario en memoria:

Por medio de datos tipo punteros tambin conocidos como variables dinmicas o listas. Por medio de arreglos.

Sin embargo la ms utilizada es la primera, puesto que es la ms natural para tratar este tipo de estructuras. Los nodos del rbol binario sern representados como registros que contendrn como mnimo tres campos. En un campo se almacenar la informacin del nodo. Los dos restantes se utilizarn para apuntar al subarbol izquierdo y derecho del subarbol en cuestin. Cada nodo se representa grficamente de la siguiente manera:

El algoritmo de creacin de un rbol binario es el siguiente: Procedimiento crear(q:nodo) inicio mensaje("Rama izquierda?") lee(respuesta) si respuesta = "si" entonces new(p) q(li) <-- nil crear(p) en caso contrario q(li) <-- nil

mensaje("Rama derecha?") lee(respuesta) si respuesta="si" entonces new(p) q(ld)<--p crear(p) en caso contrario q(ld) <--nil fin INICIO new(p) raiz<--p crear(p) FIN

Clasificacin de Arboles Binarios Existen cuatro tipos de rbol binario:.


A. A. A. A.

B. B. B. B.

Distinto. Similares. Equivalentes. Completos.

A continuacin se har una breve descripcin de los diferentes tipos de rbol binario as como un ejemplo de cada uno de ellos. A. B. DISTINTO Se dice que dos rboles binarios son distintos cuando sus estructuras son diferentes. Ejemplo:

A. B. SIMILARES Dos arboles binarios son similares cuando sus estructuras son idnticas, pero la informacin que contienen sus nodos es diferente. Ejemplo:

A. B. EQUIVALENTES Son aquellos arboles que son similares y que adems los nodos contienen la misma informacin. Ejemplo:

A. B. COMPLETOS Son aquellos arboles en los que todos sus nodos excepto los del ultimo nivel, tiene dos hijos; el subarbol izquierdo y el subarbol derecho. 3.16.1 Propiedades.

3.16.2

rboles generadores.

Arboles Generadores.Def.: Un rbol T, subgrafo de un grafo G que contenga todos los vrtices de G se denmina Arbol Generador de G. A esta caracterstica general es posible agregar ciertos teoremas de modo de detallar an ms el alcance de la definicin. Es asi como el Grafo que contiene a T debe ser conexo, pues de lo contrario no existira un subgrafo que contuviera todos sus vrtices. En general un grafo G tendr varios rboles generadores ,como el del ejemplo 1 el cual tiene a lo menos dos arboles generadores T1 yT2. http://html.rincondelvago.com/matematicas-discretas_arboles-generadores-y-generadores-minimales.html

3.16.3

rboles generadores minimales

Algoritmo basado en el rbol generador minimal


El algoritmo basado en la matriz de similaridad produce un conjunto numeroso de arcos. Los grafos resultantes pueden simplificarse notablemente, reduciendo el conjunto de arcos hasta obtener un conjunto ms reducido que caracteriza cada uno de los subgrafos. Antes de presentar el algoritmo que nos ocupa resulta imprescindible introducir la notacin y conceptos que se van a emplear.

4.2.1 Notacin y conceptos previos


Para ilustrar los conceptos que vamos a definir emplearemos el grafo de la figura 57, obtenido al emplear el algoritmo basado en la matriz de similaridad para = 2.

Camino: Un camino entre dos vrtices, vi y vj, es una secuencia de vrtices vi,..., vj tal que entre dos vrtices consecutivos de la secuencia existe un arco que los une. A modo de ejemplo, la secuencia X5, X4, X3, X2 es un camino en el primer subgrafo ya que (X5, X4) A (S32 = 1). A (S54 = 1), (X4, X3) A (S43 = 1) y (X3, X2)

Ciclo: Un ciclo es un camino cerrado, esto es, un camino en el que el primer y ltimo vrtice coinciden. A modo de ejemplo, la secuencia X2, X3, X1, X2 es un ciclo en el primer subgrafo ya que esa secuencia forma un camino ( (X2, X3) (X3, X1) A (S31 = 1), (X1, X2) A (S12 = 1) y (X1, X2) ste camino empieza y termina en el mismo punto. A (S23 = 1),

A (S12 = 1)) y

Grafo conexo: Un grafo conexo es un grafo en el que hay uno o ms caminos entre cualquier par de vrtices. Con otras palabras, siempre puede encontrarse un camino que una cualquier par de vrtices. Resulta evidente que el grafo de la figura 57 no es un grafo conexo (por ejemplo, no hay ningn camino que una los puntos X7 y X10). Sin embrago, los cuatro subgrafos obtenidos si son subgrafos conexos.

rbol: Un rbol asociado a un grafo es un grafo conexo que no contiene ciclos. Los dos primeros grafos de la figura 57 contienen ciclos, por lo que no son rboles. Los otros dos si son rboles.

rbol generador: Un rbol generador es un rbol asociado a un grafo que contiene a todos los vrtices del grafo, esto es, conecta a todos los vrtices del grafo. Los subgrafos 3 y 4 son rboles generadores.

Antes de continuar debemos recordar que en la seccin 4.1.1 indicamos que un grafo seva para establecer relaciones cualitativas y cuantitativas. Hasta ahora hemos empleado una relacin cualitativa: dos puntos estn relacionados si su distancia es menor que el valor umbral, independientemente del valor de la distancia. Podemos, adems, establecer una relacin cuantitativa: asociaremos a cada arco un peso, el valor de la distancia entre los puntos que lo determinan. Esto har, que por ejemplo, podamos asociar a cada camino un peso, entendiendo que ste es la suma de los pesos de los arcos que lo forman.

A modo de ejemplo, en el primer subgrafo hay dos caminos entre X1 y X4. Cul es el menos costoso?

El camino formado por X1, X3, X4 tiene como peso 3.38. (X1, X3) = 1.80 y (X3, X4) = 1.58, por lo que el peso total es 1.80 + 1.58 = 3.38.

El peso del camino formado por X1, X2, X3, X4 es 4.96. (X1, X2) = 1.58, + 1.58 = 4.96. (X2, X3) = 1.50 y (X3, X4) = 1.58, por lo que el peso total es 1.58 + 1.80

As, el camino formado por X1, X3, X4 es el menos costoso. Al igual que se define el peso de un camino se define, por ejemplo, el peso de un rbol. Una vez establecidas las relaciones cuantitativas en grafos podemos continuar con las definiciones necesarias para nuestro propsito.

rbol generador minimal (AGM): Un rbol generador minimal es un rbol generador asociado a un grafo que verifica que su peso es el menor entre todos los posibles rboles generadores asociados a l.

Como el AGM es nico para un conjunto dado de puntos y arcos, es posible emplear este rbol como punto de partida en un algoritmo de agrupamiento. El punto de partida ser, por lo tanto, la construccin del AGM asociado al conjunto de puntos a agrupar. A continuacin presentamos un algoritmo para el clculo del AGM.

4.2.2 Algoritmo de clculo del rbol generador minimal


El algoritmo est basado en el clculo de una medida de distancia entre agrupamientos, definida como

(Si, Sj) =

{ (X, X')}

(9)

de forma que para dos agrupamientos cualesquiera, Si y Sj, (Si, Sj) es la distancia entre los puntos ms cercanos de los dos agrupamientos. Observar que en este caso, un agrupamiento no se caracteriza o representa por su centro, sino por un miembro de su agrupamiento.

Ejemplo

En la figura 59 mostramos un ejemplo de la medida de distancia dada en la ecuacin 9. En la grfica sealamos los puntos ms cercanos entre los agrupamientos y en la tabla los valores de distancia.

Figura 59: Distancias entre agrupamientos segn la ecuacin 9

Clculo del rbol generador minimal: AGM (X) Entradas


X Un conjunto de M patrones {X1,..., XM}

Salidas:

Numero de agrupamientos encontrados. A conjuntos de patrones (agrupamientos). Los centros de los A agrupamientos.

S1, S2,..., SA Z1, Z2,..., ZA

Algoritmo

1.

Inicializacin. A M Si {Xi} i = 1, 2,..., A

2. Terminar?. Si A = 1, ir a 5 para terminar.

3. Buscar los dos agrupamientos ms cercanos. Calcular (Si, Sj) para i, j = 1, 2,..., A i (Si, Sj) j

Seleccionar la pareja con menor

4. Mezcla de los agrupamientos ms cercanos. Trazar un arco entre los dos patrones ms cercanos de ambos agrupamientos. Mezclar los dos agrupamientos seleccionados. A A-1

4. Vuelta a iterar. Volver a 2.

5. Final. El algoritmo anterior parte de un conjunto con M agrupamientos individuales y en cada iteracin mezcla los dos agrupamientos ms cercanos (la medida de cercana viene dada por la ecuacin 9)

hasta obtener un nico agrupamiento. Como se deduce, se trata de un algoritmo indirecto, jerrquico y aglomerativo.

Ejemplo En este ejemplo ilustraremos el funcionamiento del algoritmo para el conjunto de patrones que estamos empleando, el de la figura 60.

Figura 60: Conjunto de patrones para el que se va a calcular el AGM

El primer paso consiste en crear A = M = 14 agrupamientos individuales, uno por cada patrn del conjunto. A continuacin se trata de buscar y mezclar, repetidamente, los dos agrupamientos ms cercanos. Se trata de construir la tabla de distancias pareja para la que la distancia sea mnima. (Si, Sj) para i, j = 1, 2,..., A i j y seleccionar la

Este paso se repite hasta que A = 1, por lo que, para simplificar, describiremos brevemente cada una de las iteraciones realizadas, de acuerdo al valor de A. 14 Inicialmente se verifica que la pareja (S8, S9) es la ms cercana, esto es, (S8, S9) = (X8, X9) = 1.12, por lo que stos forman un nuevo agrupamiento, al que denominamos S8 - 9 (ver figura 61.A). Despus de la mezcla, A = 13.

Figura 61: Mezcla de agrupamientos A) A = 13, y B) A = 12.

13 En el estado indicado en la figura 61.B hay varias parejas de agrupamientos a igual distancia mnima:

(S7, S8 - 9) = (S10, S11) = (S12, S13) =

(X7, X9) = 1.41 (X10, X11) = 1.41 (X12, X13) = 1.41.

Decidimos incorporar X7 al agrupamiento S8 - 9 al que denominamos ahora S7 - 8 - 9. Ahora, A = 12 (ver figura 61.B). 12 y 11 Se trata de unir las parejas de patrones a distancia 1.41 que no se unieron previamente. Esto es, se mezclan X10 y X11 por una parte, dando lugar a S10 - 11 y X12 y X13 por otra, dando lugar a S12 - 13 (ver figura 62.A). Despus de las mezclas, A = 10.

Figura 62: Mezcla de agrupamientos A) A = 10, y B) A = 9.

10 En el estado indicado en la figura 62.A la pareja (S2, S3) es la ms cercana, esto es, (S2, S3) = (X2, X3) = 1.5, por lo que stos forman un nuevo agrupamiento, al que denominamos S2 - 3 (ver figura 62.B). Despus de la mezcla, A = 9. 9 En el estado indicado en la figura 62.B hay varias parejas de agrupamientos a igual distancia mnima:

(S1, S2 - 3) = (S2 - 3, S4) = (S4, S5) =

(X1, X2) = 1.58 (X3, X4) = 1.58 (X4, X5) = 1.58 (X11, X12) = 1.58

(S10 - 11, S12 - 13) =

Decidimos incorporar X1 al agrupamiento S2 - 3 al que denominamos ahora S1 - 2 - 3. Ahora, A = 8 (ver figura 63.A).

Figura 63: Mezcla de agrupamientos A) A = 8, y B) A = 5.

8a5

Se trata de unir las parejas de patrones a distancia 1.58 que no se unieron previamente. En primer lugar se mezclan S1 - 2 - 3 y S4, dando lugar a S1 - 2 - 3 - 4 y a continuacin se mezclan S1 - 2 - 3 - 4 y S5, dando lugar a S1 - 2 - 3 - 4 - 5. Despus de estas mezclas, A = 6. Finalmente, se mezclan S10 - 11 y S12 - 13, dando lugar a S10 - 11 - 12 - 13 (ver figura 63.B). Finalmente, A = 5. 4 En el estado indicado en la figura 63.B la pareja (S1 - 2 - 3 - 4 - 5, S6) es la ms cercana, esto es, (S1 - 2 - 3 - 4 - 5, S6) = (X5, X6) = 1.80, por lo que X6 se incorpora al agrupamiento para formar S1 - 2 - 3 - 4 - 5 - 6 (ver figura 64.A). Despus de la mezcla, A = 4.

Figura 64: A) A = 4 y B) A = 3.

3 En el estado indicado en la figura 64.A, las distancias entre agrupamientos son las siguientes:

(S1 - 2 - 3 - 4 - 5 - 6, S7 - 8 - 9) =

(X4, X7) = 5.22 (X4, X10) = 6.80 (X5, X14) = 14.81

(S1 - 2 - 3 - 4 - 5 - 6, S10 - 11 - 12 - 13) = (S1 - 2 - 3 - 4 - 5 - 6, S14) = (S7 - 8 - 9, S10 - 11 - 12 - 13) = (S7 - 8 - 9, S14) =

(X4, X14) =

(X9, X10) = 3.81

(X9, X14) = 11.40 (X11, X14) = 6.96

(S10 - 11 - 12 - 13, S14) =

De estos clculos se deduce que la pareja (S7 - 8 - 9, S10 - 11 - 12 - 13) es la ms cercana, por lo que se mezclan los dos agrupamientos dando lugar a S7 - 8 - 9 - 10 - 11 - 12 - 13(ver figura 64.B). Despus de la mezcla, A = 3. 2 En el estado indicado en la figura 64.B, las distancias entre agrupamientos son las siguientes:

(S1 - 2 - 3 - 4 - 5 - 6, S7 - 8 - 9 - 10 - 11 - 12 - 13) = (S1 - 2 - 3 - 4 - 5 - 6, S14) = (X4, X14) =

(X4, X7) = 5.22 (X5, X14) = 14.81

(S7 - 8 - 9 - 10 - 11 - 12 - 13, S14) =

(X11, X14) = 6.96

De estos clculos se deduce que los dos primeros son los ms cercanos, por lo que se mezclan dando lugar a S1 -...- 13 (ver figura 65.A). Despus de la mezcla, A = 2. 1 Este paso es trivial y la mezcla da lugar a un nico agrupamiento, el mostrado en la figura 65.B.

Figura 65: Mezcla de agrupamientos A) A = 2, y B) A = 1.

Una vez finalizado el proceso de mezclas (A = 1) se obtiene el AGM asociado al conjunto de patrones dado en la figura 60. Finalmente, en la figura 66 mostramos el AGM resultante, en el que se indica el peso de cada arco.

Figura 66: AGM obtenido a partir del conjunto de patrones mostrado en la figura 60

Por definicin se asegura que este grafo es:


grafo conexo: hay uno o ms caminos entre cualquier par de vrtices. rbol: es un grafo conexo y no contiene ciclos. rbol generador: es un rbol y contiene a todos los vrtices. rbol generador minimal: su peso es el menor entre todos los rboles generadores asociados a l.

4.2.3 Algoritmo de agrupamiento basado en el AGM


Como hemos indicado anteriormente, el AGM es nico (en el sentido del peso o coste global), por lo que es posible partir del AGM como punto de partida de un algoritmo de agrupamiento ya que en el AGM se combinan propiedades de:

distancia densidad

En realidad, ms que emplear el AGM como punto de partida, se emplea un dimetro principal del AGM, que se define:

Dimetro principal: El dimetro principal de un AGM es un camino del AGM que tiene el mayor peso.

Como se puede deducir fcilmente, es posible encontrar varios dimetros principales sobre un mismo AGM. A nivel prctico y con la idea de que el clculo sea computacionalmente atractivo, un dimetro principal se calcula prestando atencin en los puntos de ramificacin del AGM, descartando las ramas que dan lugar a los caminos de menor peso.

Ejemplo Para el AGM mostrado en la figura 66 existe un nico dimetro principal, que consta de nueve vrtices y que indicamos en la figura 67. X1, X2, X3, X4, X7, X9, X10, X11, X14,

Figura 67: Dimetro principal sobre el AGM calculado anteriormente

En el AGM encontramos tres vrtices donde hay ramificaciones: 1. El vrtice 4: Dos caminos parten de l: 1) {X4, X3, X2, X1}, cuyo peso es 1.58 + 1.50 + 1.58 = 4.66, y 2) {X4, X5, X6} cuyo peso es 1.58 + 1.80 = 3.38. En este caso, se escoge el primer camino como parte del dimetro principal. 2. El vrtice 11: Dos caminos parten de l: 1) {X11, X12, X13}, cuyo peso es 1.58 + 1.41 = 2.99, y 2) {X11, X14} cuyo peso es 6.96. En este caso, se escoge el segundo camino como parte del dimetro principal. 3. El vrtice 9: Resulta trivial descartar el camino {X9, X8}. Por otra parte, como puede encontrase un camino desde X4 a X9 y otro desde X11 a X9 y no hay ms puntos de ramificacin, se unen estos caminos para formar el dimetro principal. El algoritmo de agrupamiento basado en el dimetro principal del AGM es muy simple. Se basa en la afirmacin de que pueden encontrarse K agrupamientos

(K T + 1) a partir de un dimetro principal con T arcos construido a partir del AGM mediante la eliminacin sucesiva de los arcos de mayor longitud. El algoritmo puede escribirse de la siguiente manera: 1. Construir el rbol generador minimal. 2. Tomar un dimetro principal. 3. A 4. Repetir 4.1 Eliminar el arco de mayor longitud 4.2 A A+1 Hasta A = K Como se deduce, se trata de un algoritmo ``top-down'', que parte de un nico agrupamiento y va generando nuevos agrupamientos por divisin. 1

Ejemplo En la tabla 6 mostramos en orden decreciente los pesos de los arcos del dimetro principal de la figura 67:

Tabla 6: Arcos y pesos del dimetro principal 11-14 4-7 9-10 1-2 3-4 2-3 7-9 10-11 1.41 6.96 4.72 3.81 1.58 1.58 1.50 1.41

Si eliminamos el arco de mayor longitud, (X11, X14) obtendremos dos agrupamientos (A = 2). Ver figura 68 para ms detalle.

Figura 68: Resultado del agrupamiento al eliminar (X11, X14). A = 2

Si eliminamos el siguiente arco de mayor longitud, (X4, X7) obtendremos tres agrupamientos (A = 3). Ver figura 69 para ms detalle.

Figura 69: Resultado del agrupamiento al eliminar (X4, X7). A = 3

Si eliminamos el siguiente arco de mayor longitud, (X9, X10) obtendremos cuatro agrupamientos (A = 4). Ver figura 70.

Figura 70: Resultado del agrupamiento al eliminar (X9, X10). A = 4

El algoritmo podra continuar generando nuevos agrupamientos hasta K = T + 1 = 9. Si el valor de K es demasiado alto puede producir agrupamientos sin demasiado sentido. Por ejemplo, el resultado para K = T + 1 = 9 sera el mostrado en la figura 71.

Figura 71: Resultado del agrupamiento cuando A = 9

4.2.4 Ejemplos adicionales


En esta seccin mostraremos el funcionamiento del algoritmo de construccin del AGM y del algoritmo de agrupamiento basad en el AGM empleando el conjunto de patrones que mostramos en la figura 15.

Construccin del AGM.

Partimos de un conjunto de 11 agrupamientos individuales y buscamos la pareja de agrupamientos ms cercanos. En este caso hay varias parejas a distancia 1: (X3, X4), (X5, X8), (X7, X8), (X8, X9) y (X8, X10). La mezcla de la primera pareja no requiere ninguna explicacin. Con respecto a las otras, hay varias posibilidades en cuanto al orden en que se van a mezclar. No hay que olvidar, sin embargo, que por la medida de distancia que se est utilizando, aunque un patrn se incorpore a un agrupamiento esta medida de distancia no se modifica, por lo que para esta configuracin el orden de las mezclas es irrelevante. Avanzando varios pasos, el resultado ser el mostrado en la figura 72.A: de los 11 agrupamientos individuales pasamos a tener A = 6 agrupamientos.

Figura 72: Resultado de mezclar agrupamientos: A) A = 6, B) A = 4

A distancia 1.41 se encuentran dos parejas de agrupamientos: 1) {X1} y el formado por {X3, X4} y 2) {X2} con {X6}. Al mezclar estos agrupamientos obtenemos A = 4 agrupamientos y el resultado es el mostrado en la figura 72.B. En el estado mostrado en la figura 72.B, la pareja de agrupamientos ms cercana es el formado por {X2, X6} con {X11} que estn a distancia 2.24 (ver figura 73).

Figura 73: Resultado de mezclar agrupamientos: A) A = 3, B) A = 2

En el estado mostrado en la figura 73.A, las distancias entre agrupamientos son:


({X1, X3, X4},{X5, X7, X8, X9, X10}) = ({X1, X3, X4},{X2, X6, X11}) =

(X3, X5) = 4.12

(X3, X11) = 4.47 (X11, X9) =

({X2, X6, X11},{X5, X7, X8, X9, X10}) = = (X11, X5) = 3.61

El resultado de mezclar los agrupamientos {X2, X6, X11} y {X5, X7, X8, X9, X10} se muestra en la figura 73.B. Finalmente, se mezclan los dos agrupamientos restantes a travs de los puntos X3 y X5. El resultado final es el AGM que mostramos en la figura 74.A, en el que indicamos los pesos de los arcos que lo forman.

Figura 74: A) AGM asociado al conjunto de puntos mostrado en la figura 15. B) Dimetro principal sobre el AGM.

Clculo de un dimetro principal asociado al AGM. En el AGM (figura 74.A) existen dos puntos de ramificacin:

En el punto 8 confluyen cuatro caminos de longitud 1: {X9, X8}, { X10, X8} y {X7, X8}. Cualquiera de ellos podra formar parte de un dimetro principal. Supongamos que escogemos el camino { X10, X8}. En el punto 5 confluyen los caminos { X1, X4, X3, X5} (peso = 6.53) y { X6, X2, X11, X5} (peso = 7.26) por un lado, y tres caminos de peso 2: { X9, X8, X5}, { X10, X8, X5} y { X7, X8, X5}. Como anteriormente escogimos { X10, X8}, solo consideramos el camino { X10, X8, X5} en este momento.

As, el dimetro principal sobre el AGM que escogemos es el mostrado en la figura 74.B. Podran haberse escogido otros dos dimetros igualmente vlidos: 1) el que incluye el arco {X8, X7} en lugar de { X10, X8} y 2) el que incluye el arco {X9, X8} en lugar de { X10, X8}. Los tres dimetros posibles tienen el mismo peso. Agrupamiento. En la tabla 7 mostramos en orden decreciente los pesos de los arcos del dimetro principal de la figura 74.B.

Tabla 7: Arcos y pesos del dimetro principal

3-5 5-11 2-11

1-2

1-4

2-6

3-4

5-8 8-10 1.00

4.12 3.61 2.24 1.58 1.41 1.41 1.00 1.00

Si eliminamos el arco de mayor longitud, (X3, X5) obtendremos dos agrupamientos (A = 2). Ver figura 75.A para ms detalle.

Figura 75: Resultado del agrupamiento al eliminar: A) (X3, X5) (A = 2), B) (X5, X11) (A = 3)

Si eliminamos el siguiente arco de mayor longitud, (X5, X11) obtendremos tres agrupamientos (A = 3). Ver figura 75.B para ms detalle. El proceso de divisin podra continuar hasta llegar a obtener 10 agrupamientos. Dejamos al lector que continue la divisin y que considere la posibilidad de modificar el algoritmo para que detenga el proceso de divisin el peso del arco a eliminar sea menor que un umbral dado.

http://www-etsi2.ugr.es/depar/ccia/rf/www/tema4_0001_www/node16.html 3.16.4 Recorridos.

El recorrido en un rbol binario permite rescatar los datos en formas diferentes. Aunque existen varias maneras de hacerlo, aqu se vern las ms conocidas : inorden , preorden , postorden. Una de los recorridos ms usados (inorden) es el que rescata los datos en forma ordenada (de menor a mayor). La tcnica que usualmente se usa para hacer el recorrido, es ir almacenando los datos en una estructura lineal : Cola , Lista o Pila. El criterio para escoger una de las tres depende del problema , pero generalmente los criterios generales son los siguientes : Cola : los datos quieren ser vistos en el mismo orden en el cual fueron recorridos y la cola pasa a ser un instrumento de almacenamiento de "corto plazo" : (almacenar , ver , vaciar ). Lista : los datos necesitan ser almacenados y se requieren operaciones en donde es necesario acceder a los datos en cualquier posicin. Pila : se necesita que los datos se almacenen en forma de pila, pasando a ser un instrumento de almacenamiento de "corto plazo". De aqu en adelante , las implementaciones de recorrido sern usando una Cola , ya que los problemas que vienen, requieren los datos en forma ordenada.

Definicin de Recorridos inorden : recorrer en inorden el subrbol izquierdo , visitar el elemento de la raz y luego recorrer en inorden el subrbol derecho. preorden : visitar el elemento de la raz , recorrer en preorden el subrbol izquierdo y luego recorrer en preorden el subrbol derecho. postorden : recorrer en postorden el subrbol izquierdo, luego recorrer en postorden el subrbol derecho y finalmente visitar el elemento de la raz. Ejemplo Recorridos inorden : 10 , 30 , 50 , 55 , 60 , 80 preorden : 60 , 30 , 10 , 50 , 55 , 80 postorden : 10 , 55 , 50 , 30 , 80 , 60

Implementacin del recorrido inorden Se declara una funcin que recibe como parmetros un arbol binario y una cola. Las instrucciones de la funcin, siguen el concepto recursivo de la definicin, teniendo en cuenta que el concepto de "visitar el elemento de la raiz" se reemplaza por : obtener la raz e insertar el elemento en la cola y que la condicin de la recursividad es que se encuentre con algn subrbol vaco. *nota : Hay que tener cuidado en verificar que la cola que se pasa como parmetro sea no vaca. Las funciones sern implementadas en el archivo "funcArbin.h". void inordenArbin(Arbin a,Cola col) { if (!vacioArbin(a)) { inordenArbin(izqArbin(a),col); TipoA raiz = raizArbin(a); adicCola(col,raiz); inordenArbin(derArbin(a),col); } } Las otras dos funciones que implementan los recorridos de preorden y postorden son similares, por lo que se omite mayor explicacin.

Liberar memoria Si se quiere eliminar todos los nodos del rbol, se puede plantear la idea que mediante un recorrido recursivo, en vez de almacenar la informacin en la cola , se libere memoria. Para no provocar errores, se ve que el recorrido en postorden nos da una buena idea para ir eliminando los nodos. Es importante que si se quiere insertar luego de haber llamado a sta funcin, se debe asignar a la variable, el valor retornado por la funcin arbinVacio(). Ejemplo : Arbin a = arbinVacio(); Cola c = inicCola(); a = insertarArbin(a,4,mayor); : a = insertarArbin(a,23,mayor);

inordenArbin(a,c); imprimir_cola(c); destruirArbin(a); a = arbinVacio(); a = insertar(a,10,mayor); : void destruirArbin(Arbin a) { if(!vacioArbin(a)) { destruirArbin(a->izq); destruirArbin(a->der); free(a); } } *nota : esta funcin est incluida en el archivo funcArbin.h Programa de prueba para el recorrido inorden El programa consiste en formar un rbol binario igual al del ejemplo (ver figura) , para luego hacer un recorrido inorden y mostrar los nmeros que se encuentran ordenados en la cola. *nota : como la cola se vaca mientras se recorren los datos para imprimirlos, slo basta con liberar memoria para el rbol binario. #include<stdio.h> #include<stdlib.h> /* declaracin de tipos */ typedef int TipoC; typedef int TipoA; /* archivos necesarios */ #include "tadCola.h" #include "tadArbin.h" #include "funcArbin.h" /* funcin especfica de comparacin que ser pasada como parmetro a la funcin insertarArbin */

int mayor(int a , int b) { return a > b; } int main() { Arbin a = arbinVacio(); Cola c = inicCola(); int arr[] = { 60, 30 , 80, 10 , 50 , 55 }; /* Se insertan los datos en el rbol*/ for(int i = 0; i < 6; i++) { a = insertarArbin(a,arr[i],mayor); } /* Recorrido en inorden .. los datos se almacenan en la cola */ inordenArbin(a,c); int aux; /* se imprimen los elementos de la cola */ while(!vaciaCola(c)) { aux = infoCola(c); printf("\t%d",aux); elimCola(c); } /* Se destruye el rbol */ destruirArbin(a); return 0; } Implementacin de funciones /* funcArbin.h */

void inordenArbin(Arbin a,Cola col) { if (!vacioArbin(a)) { inordenArbin(izqArbin(a),col); TipoA raiz = raizArbin(a); adicCola(col,raiz); inordenArbin(derArbin(a),col); } } void preordenArbin(Arbin a,Cola col) { if(!vacioArbin(a)) { TipoA raiz = raizArbin(a); adicCola(col,raiz); preordenArbin(izqArbin(a),col); preordenArbin(derArbin(a),col); } } void postordenArbin(Arbin a,Cola col) { if(!vacioArbin(a)) { postordenArbin(izqArbin(a),col); postordenArbin(derArbin(a),col); TipoA raiz = raizArbin(a); adicCola(col,raiz); } } void destruirArbin(Arbin a) { if(!vacioArbin(a)) { destruirArbin(a->izq); destruirArbin(a->der); free(a); } }

Hay tres manera de recorrer un rbol: en inorden, preorden y postorden. Cada una de ellas tiene una secuencia distinta para analizar el rbol como se puede ver a continuacin:

1. INORDEN o Recorrer el subarbol izquierdo en inorden. o Examinar la raz. o Recorrer el subarbol derecho en inorden. 2. PREORDEN o Examinar la raz. o Recorrer el subarbol izquierdo en preorden. o recorrer el subarbol derecho en preorden. 3. POSTORDEN o Recorrer el subarbol izquierdo en postorden. o Recorrer el subarbol derecho en postorden. o Examinar la raz. A continuacin se muestra un ejemplo de los diferentes recorridos en un rbol binario.

Inorden: GDBHEIACJKF Preorden: ABDGEHICFJK Postorden: GDHIEBKJFCA

3.16.5

Ordenamientos.

Qu es ordenamiento? Es la operacin de arreglar los registros de una tabla en algn orden secuencial de acuerdo a un criterio de ordenamiento. El ordenamiento se efecta con base en el valor de algn campo en un registro. El propsito principal de un ordenamiento es el de facilitar las bsquedas de los miembros del conjunto ordenado.

Ej. de ordenamientos: Dir. telefnico, tablas de contenido, bibliotecas y diccionarios, etc. El ordenar un grupo de datos significa mover los datos o sus referencias para que queden en una secuencia tal que represente un orden, el cual puede ser numrico, alfabtico o incluso alfanumrico, ascendente o descendente. Cundo conviene usar un mtodo de ordenamiento? Cuando se requiere hacer una cantidad considerable de bsquedas y es importante el factor tiempo.

Tipos de ordenamientos: Los 2 tipos de ordenamientos que se pueden realizar son: los internos y los externos. Los internos: Son aquellos en los que los valores a ordenar estn en memoria principal, por lo que se asume que el tiempo que se requiere para acceder cualquier elemento sea el mismo (a[1], a[500], etc). Los externos: Son aquellos en los que los valores a ordenar estn en memoria secundaria (disco, cinta, cilindro magntico, etc), por lo que se asume que el tiempo que se requiere para acceder a cualquier elemento depende de la ltima posicin accesada (posicin 1, posicin 500, etc).

Eficiencia en tiempo de ejecucin: Una medida de eficiencia es: Contar el # de comparaciones (C) Contar el # de movimientos de items (M) Estos estn en funcin de el #(n) de items a ser ordenados. Un "buen algoritmo" de ordenamiento requiere de un orden nlogn comparaciones.

La eficiencia de los algoritmos se mide por el nmero de comparaciones e intercambios que tienen que hacer, es decir, se toma n como el nmero de elementos que tiene el arreglo o vector a ordenar y se dice que un algoritmo realiza O(n2) comparaciones cuando compara n veces los n elementos, n x n = n2 Algoritmos de ordenamiento: Internos: 1. Insercin directa. 1. Insercin directa. 2. Insercin binaria. 2. Seleccin directa. 1. Seleccin directa. 3. Intercambio directo. 1. Burbuja. 2. Shake. 4. Insercin disminucin incremental. 1. Shell. 5. Ordenamiento de rbol. 1. Heap. 2. Tournament. 6. Sort particionado. 1. Quick sort. 7. Merge sort. 8. Radix sort. 9. Clculo de direccin. Externos: 1. 2. 3. 4. 5. Straight merging. Natural merging. Balanced multiway merging. Polyphase sort. Distribution of initial runs.

Clasificacin de los algoritmos de ordenamiento de informacin: El hecho de que la informacin est ordenada, nos sirve para poder encontrarla y accesarla de manera ms eficiente ya que de lo contrario se tendra que hacer de manera secuencial. A continuacin se describirn 4 grupos de algoritmos para ordenar informacin:

Algoritmos de insercin: En este tipo de algoritmo los elementos que van a ser ordenados son considerados uno a la vez. Cada elemento es INSERTADO en la posicin apropiada con respecto al resto de los elementos ya ordenados. Entre estos algoritmos se encuentran el de INSERCION DIRECTA, SHELL SORT, INSERCION BINARIA y HASHING. Algoritmos de intercambio: En este tipo de algoritmos se toman los elementos de dos en dos, se comparan y se INTERCAMBIAN si no estn en el orden adecuado. Este proceso se repite hasta que se ha analizado todo el conjunto de elementos y ya no hay intercambios. Entre estos algoritmos se encuentran el BURBUJA y QUICK SORT. Algoritmos de seleccin: En este tipo de algoritmos se SELECCIONA o se busca el elemento ms pequeo (o ms grande) de todo el conjunto de elementos y se coloca en su posicin adecuada. Este proceso se repite para el resto de los elementos hasta que todos son analizados. Entre estos algoritmos se encuentra el de SELECCION DIRECTA. Algoritmos de enumeracin: En este tipo de algoritmos cada elemento es comparado contra los dems. En la comparacin se cuenta cuntos elementos son ms pequeos que el elemento que se est analizando, generando as una ENUMERACION. El nmero generado para cada elemento indicar su posicin. Los mtodos simples son: Insercin (o por insercin directa), seleccin, burbuja y shell, en dnde el ltimo es una extensin al mtodo de insercin, siendo ms rpido. Los mtodos ms complejos son el quick-sort (ordenacin rpida) y el heap sort. A continuacin se mostrarn los mtodos de ordenamiento ms simples.

METODO DE INSERCIN. Este mtodo toma cada elemento del arreglo para ser ordenado y lo compara con los que se encuentran en posiciones anteriores a la de l dentro del arreglo. Si resulta que el elemento con el que se est comparando es mayor que el elemento a ordenar, se recorre hacia la siguiente posicin superior. Si por el contrario, resulta que el elemento con el que se est comparando es menor que el elemento a

ordenar, se detiene el proceso de comparacin pues se encontr que el elemento ya est ordenado y se coloca en su posicin (que es la siguiente a la del ltimo nmero con el que se compar).

Procedimiento Insertion Sort Este procedimiento recibe el arreglo de datos a ordenar a[] y altera las posiciones de sus elementos hasta dejarlos ordenados de menor a mayor. N representa el nmero de elementos que contiene a[]. paso 1: [Para cada pos. del arreglo] For i <- 2 to N do paso 2: [Inicializa v y j] v <- a[i] j <- i. paso 3: [Compara v con los anteriores] While a[j-1] > v AND j>1 do paso 4: [Recorre los datos mayores] Set a[j] <- a[j-1], paso 5: [Decrementa j] set j <- j-1. paso 5: [Inserta v en su posicin] Set a[j] <- v. paso 6: [Fin] End. Ejemplo: Si el arreglo a ordenar es a = ['a','s','o','r','t','i','n','g','e','x','a','m','p','l','e'], el algoritmo va a recorrer el arreglo de izquierda a derecha. Primero toma el segundo dato 's' y lo asigna a v y i toma el valor de la posicin actual de v. Luego compara esta 's' con lo que hay en la posicin j-1, es decir, con 'a'. Debido a que 's' no es menor que 'a' no sucede nada y avanza i. Ahora v toma el valor 'o' y lo compara con 's', como es menor recorre a la 's' a la posicin de la 'o'; decrementa j, la cual ahora tiene la posicin en dnde estaba la 's'; compara a 'o' con a[j-1] , es decir, con 'a'. Como no es menor que la 'a' sale del for y pone la 'o' en la posicin a[j]. El resultado hasta este punto es el arreglo siguiente: a = ['a','o','s','r',....] As se contina y el resultado final es el arreglo ordenado : a = ['a','a','e','e','g','i','l','m','n','o','p','r','s','t','x']

MTODO DE SELECCIN. El mtodo de ordenamiento por seleccin consiste en encontrar el menor de todos los elementos del arreglo e intercambiarlo con el que est en la primera posicin. Luego el segundo mas pequeo, y as sucesivamente hasta ordenar todo el arreglo.

Procedimiento Selection Sort paso 1: [Para cada pos. del arreglo] For i <- 1 to N do paso 2: [Inicializa la pos. del menor] menor <- i paso 3: [Recorre todo el arreglo] For j <- i+1 to N do paso 4: [Si a[j] es menor] If a[j] < a[menor] then paso 5: [Reasigna el apuntador al menor] min = j paso 6: [Intercambia los datos de la pos. min y posicin i] Swap(a, min, j). paso 7: [Fin] End. Ejemplo: El arreglo a ordenar es a = ['a','s','o','r','t','i','n','g','e','x','a','m','p','l','e']. Se empieza por recorrer el arreglo hasta encontrar el menor elemento. En este caso el menor elemento es la primera 'a'. De manera que no ocurre ningn cambio. Luego se procede a buscar el siguiente elemento y se encuentra la segunda 'a'. Esta se intercambia con el dato que est en la segunda posicin, la 's', quedando el arreglo as despus de dos recorridos: a = ['a','a','o','r','t','i','n','g','e','x','s','m','p','l','e']. El siguiente elemento, el tercero en orden de menor mayor es la primera 'e', la cual se intercambia con lo que est en la tercera posicin, o sea, la 'o'. Le sigue la segunda 's', la cual es intercambiada con la 'r'. El arreglo ahora se ve de la ['a','a','e','e','t','i','n','g','o','x','s','m','p','l','r']. siguiente manera: a =

De esta manera se va buscando el elemento que debe ir en la siguiente posicin hasta ordenar todo el arreglo. El nmero de comparaciones que realiza este algoritmo es : Para el primer elemento se comparan n-1 datos, en general para el elemento isimo se hacen n-i comparaciones, por lo tanto, el total de comparaciones es: la sumatoria para i de 1 a n-1 (n-i) = 1/2 n (n-1). MTODO BURBUJA. El bubble sort, tambin conocido como ordenamiento burbuja, funciona de la siguiente manera: Se recorre el arreglo intercambiando los elementos adyacentes que estn desordenados. Se recorre el arreglo tantas veces hasta que ya no haya cambios. Prcticamente lo que hace es tomar el elemento mayor y lo va recorriendo de posicin en posicin hasta ponerlo en su lugar. Procedimiento Bubble Sort

paso 1: [Inicializa i al final de arreglo] For i <- N down to 1 do paso 2: [Inicia desde la segunda pos.] For j <- 2 to i do paso 4: [Si a[j-1] es mayor que el que le sigue] If a[j-1] < a[j] then paso 5: [Los intercambia] Swap(a, j-1, j). paso 7: [Fin] End. Tiempo de ejecucin del algoritmo burbuja: 1. Para el mejor caso (un paso) O(n) 2. Peor caso n(n-1)/2 3. Promedio O(n2) MTODO DE SHELL. Ordenamiento de disminucin incremental. Nombrado as debido a su inventor Donald Shell. Ordena subgrupos de elementos separados K unidades (respecto de su posicin en el arreglo) del arreglo original. El valor K es llamado incremento.

Despus de que los primeros K subgrupos han sido ordenados (generalmente utilizando INSERCION DIRECTA), se escoge un nuevo valor de K ms pequeo, y el arreglo es de nuevo partido entre el nuevo conjunto de subgrupos. Cada uno de los subgrupos mayores es ordenado y el proceso se repite de nuevo con un valor ms pequeo de K. Eventualmente el valor de K llega a ser 1, de tal manera que el subgrupo consiste de todo el arreglo ya casi ordenado. Al principio del proceso se escoge la secuencia de decrecimiento de incrementos; el ltimo valor debe ser 1. "Es como hacer un ordenamiento de burbuja pero comparando e intercambiando elementos." Cuando el incremento toma un valor de 1, todos los elementos pasan a formar parte del subgrupo y se aplica insercin directa. El mtodo se basa en tomar como salto N/2 (siendo N el nmero de elementos) y luego se va reduciendo a la mitad en cada repeticin hasta que el salto o distancia vale 1. Procedimiento Shell Sort; const MAXINC = _____; incrementos = array[1..MAXINC] of integer; var j,p,num,incre,k:integer; begin for incre := 1 to MAXINC do begin /* para cada uno de los incrementos */ k := inc[incre]; /* k recibe un tipo de incremento */ for p := k+1 to MAXREG do begin /* insercin directa para el grupo que se encuentra cada K posiciones */ num := reg[p]; j := p-k;

while (j>0) AND (num < reg[j]) begin reg[j+k] := reg[j]; j := j - k; end; reg[j+k] := num; end end end; Ejemplo: Para el arreglo a = [6, 1, 5, 2, 3, 4, 0] Tenemos el siguiente recorrido: Recorrido 1 2 3 4 5 Salto 3 3 3 1 1 Lista Ordenada 2,1,4,0,3,5,6 0,1,4,2,3,5,6 0,1,4,2,3,5,6 0,1,2,3,4,5,6 0,1,2,3,4,5,6 Intercambio (6,2), (5,4), (6,0) (2,0) Ninguno (4,2), (4,3) Ninguno

3.17

Redes.

Que es una Red? Cada uno de los tres siglos pasados ha estado dominado por una sola tecnologa. El siglo XVIII fue la etapa de los grandes sistemas mecnicos que acompaaron a la Revolucin Industrial. El siglo XIX fue la poca de la mquina de vapor. Durante el siglo XX, la tecnologa clave ha sido la recoleccin, procesamiento y distribucin de informacin. Entre otros desarrollos, hemos asistido a la instalacin de redes telefnicas en todo el mundo, a la invencin de la radio y la televisin, al nacimiento y crecimiento sin precedente de la industria de los ordenadores ( computadores ), as como a la puesta en rbita de los satlites de comunicacin.

A medida que avanzamos hacia los ltimos aos de este siglo, se ha dado una rpida convergencia de estas reas, y tambin las diferencias entre la captura, transporte almacenamiento y procesamiento de informacin estn desapareciendo con rapidez. Organizaciones con centenares de oficinas dispersas en una amplia rea geogrfica esperan tener la posibilidad de examinar en forma habitual el estado actual de todas ellas, simplemente oprimiendo una tecla. A medida que crece nuestra habilidad para recolectar procesar y distribuir informacin, la demanda de mas sofisticados procesamientos de informacin crece todava con mayor rapidez. La industria de ordenadores ha mostrado un progreso espectacular en muy corto tiempo. El viejo modelo de tener un solo ordenador para satisfacer todas las necesidades de clculo de una organizacin se est reemplazando con rapidez por otro que considera un nmero grande de ordenadores separados, pero interconectados, que efectan el mismo trabajo. Estos sistemas, se conocen con el nombre de redes de ordenadores. Estas nos dan a entender una coleccin interconectada de ordenadores autnomos. Se dice que los ordenadores estn interconectados, si son capaces de intercambiar informacin. La conexin no necesita hacerse a travs de un hilo de cobre, el uso de lser, microondas y satlites de comunicaciones. Al indicar que los ordenadores son autnomos, excluimos los sistemas en los que un ordenador pueda forzosamente arrancar, parar o controlar a otro, stos no se consideran autnomos.

3.17.1 3.17.2 3.17.3 3.17.4

Modelos. Teorema de flujo mxima Teorema del corte minimal Pareos.

3.18

Redes de Petri.

Introduccin. Las redes de Petri representan una alternativa para modelar sistemas, sus caractersticas hacen que, para algunos problemas las redes de Petri funcionen de una manera natural. Las PN como ahora conoceremos a las redes de Petri (Petri Net) fueron inventadas por el alemn Karl Adam Petri en 1962. En su tesis doctoral "kommunikation mit automaten" (Comunicacin con autmatas), establece los fundamentos para el desarrollo terico de los conceptos bsicos de las PN.

Las PN 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 lmite, que en un sistema real son difciles de lograr o muy costosas. La teora de PN ha llegado a ser reconocida como una metodologa establecida en la literatura de la robtica para modelar los sistemas de manufactura flexibles. Comparada con otros modelos de comportamiento dinmico grficos, como los diagramas de las mquinas de estados finitos, las PN ofrecen una forma de expresar procesos que requieren sincrona. Y quizs lo ms importante es que las PN pueden ser analizadas de manera formal y obtener informacin del comportamiento dinmico del sistema modelado. Para modelar un sistema se usan representaciones matemticas logrando una abstraccin del sistema, esto es logrado con las PN, que adems pueden ser estudiadas como autmatas e investigar sus propiedades matemticas. Qu tipo de sistemas podemos modelar con las PN? Y Cmo logramos la analoga entre el sistema real y el modelo usando una PN? son dos de las preguntas a las que debemos atender. Para esto pongamos atencin a los sistemas: una idea fundamental en un sistema es que se compone de mdulos que interactan entre s, los cuales pueden ser considerados por si mismos un sistema, y podramos estudiar su comportamiento por separado y de esta manera aislarlos, pero siempre teniendo en cuenta la interaccin que guardan con los otros mdulos. Ahora deseamos conocer en que condiciones se encuentran los mdulos, es como si detuviramos al sistema en el tiempo, las condiciones internas de los mdulos determinaran el estado en el que se encuentran, para esto entendemos que un sistema es un arreglo dinmico que en el transcurso del tiempo tiene variaciones y no permanece esttico. El estado de un mdulo con frecuencia depende de su historia, es decir de las acciones dadas en un tiempo anterior. Hablemos de dos conceptos importantes: acciones y estados, las acciones nos conducen a un estado determinado del mdulo en el tiempo, las acciones de un mdulo en un sistema pueden ocurrir simultneamente con las acciones de otros mdulos, dado que ellos interacan entre s, es necesario sincronizar los eventos. Esto puede resultar en que las condiciones de un mdulo en el tiempo necesitan como entradas las salidas de otro, l cual necesita ms tiempo para generar las salidas, es entonces cuando pensamos en paralelismo y concurrencia. Las PN fueron diseadas especficamente para modelar este tipo de sistemas. Tomemos dos conceptos ms: eventos y condiciones, los eventos son las acciones que se dan en el sistema y nos llevan a un estado, podemos describir un estado como un conjunto de condiciones. Es til, para nuestro caso, representar dichas condiciones por medio de predicados.

Para que cierto evento ocurra es necesario que ciertas condiciones se cumplan, estas son llamadas pre-condiciones del evento, la ocurrencia del evento nos puede llevar a otras condiciones y es entonces cuando se dan las post-condiciones. Para modelar un sistema en una PN debemos reconocer las condiciones y los eventos que se dan en l, de esta manera podemos hacer la analoga entre el sistema y el modelo, al conocer las condiciones que se necesitan para dar cierto evento podemos disear los mdulos y relacionarlos con otras condiciones, y para esto necesitamos saber la estructura de una PN para saber que corresponde a una condicin y un evento en la red. Estructura de una red de Petri. Las PN se componen de cuatro partes:

Un conjunto de nodos. Un conjunto de transiciones. Una funcin de entrada y Una funcin de salida.

Las funciones de entrada y salida relacionan a los nodos y a las transiciones. La funcin de entrada es un mapeo de una transicin tj a una coleccin de nodos conocidos como los nodos de entrada de una transicin. La estructura de una PN es definida por los nodos, las transiciones, la funcin de entrada y la funcin de salida. Definicin: La estructura de la PN P=(P,T,I,O) donde:}
P={p1,p2,,pn} es un conjunto finito de nodos, con n 0. T={t1,t2,,tm} es un conjunto finito de transiciones con m 0. P T= I,O: T PUn nodo pi es un nodo de entrada de la transicin tj s pi I(tj); pi es un

nodo de salida s pi O(tj). Las entradas y salidas de una transicin son conjuntos que tienen elementos repetidos o mltiples ocurrencias de nodos (bags). La multiplicidad de un nodo de entrada pi para una transicin tj es el nmero de ocurrencias del nodo en el bag de entrada de la transicin. Escribimos esto como: #(pi,I(tj)). De igual forma para la salida lo cual escribimos: #(pi,O(tj)). Ejemplo: P=(P,T,I,O) P={p1,p2,p3, p4, p5} T={t1,t2,t3, t4, t5} I(t1) ={p1} O(t1)={p2, p3, p5} I(t2) ={p2, p3, p5} O(t2)={p5}

I(t3) ={p3} O(t3)={p4} I(t4) ={} O(t4)={p2, p3} I(t5) ={p4} O(t5)={p2, p3} Donde: #(p3,I(t2))=1 #(p5,O(t1))=1 Una marca U es una caracterstica de la PN, marca U es una asignacin de tokens a la PN. Un token es un concepto primitivo de una PN, un nmero de ellos reside en los nodos y se mueve entre ellos; los tokens son la parte dinmica de la PN, su nmero puede variar entre nodos y son los que determinan la situacin de la red en un momento determinado.
Definicin: Una marca U de una PN P=(P,T,I,O) es una funcin U: P N.

Es decir el nodo pi tiene U(pi) tokens. La PN puede ser considerada tambin como un modelo de flujo de informacin, en donde el comportamiento dinmico de los tokens representan el flujo. Dicho de otra manera la informacin depende de lo que la PN esta modelando. Representacin grfica de una red de Petri. La representacin grfica de una PN es importante porque al observar el modelo del sistema en forma grfica y observar como cambia de un estado a otro puede mantener la atencin y dar una perspectiva ms clara a quin est analizando el problema.
Definicin: Una grfica G de una PN P=(P,T,I,O) es una grfica mltiple bipartita dirigida G=(V,A) donde V={ v1, v2, , vn} es un conjunto de vrtices 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 transicin. Los arcos o curvas conectan los nodos y las transiciones, si un arco va de un nodo a una transicin, el nodo ser una entrada y si el arco va de una transicin a un nodo, el nodo ser una salida de esa transicin. Los tokens son representados por pequeos puntos . Ahora consideremos la PN vista anteriormente: P=(P,T,I,O) P={p1,p2,p3, p4, p5} T={t1,t2,t3, t4, t5} I(t1) ={p1} O(t1)={p2, p3, p5} I(t2) ={p2, p3, p5} O(t2)={p5}

I(t3) ={p3} O(t3)={p4} I(t4) ={} O(t4)={p2, p3} I(t5) ={p4} O(t5)={p2, p3} Donde: #(p3,I(t2))=1 #(p5,O(t1))=1 Reglas de disparo para una PN. La ejecucin en una PN es controlada por el nmero y distribucin de los tokens que tiene. Los tokens presentes en los nodos controlan la ejecucin de las transiciones de la red. Una PN se activa disparando transiciones. Una transicin es disparada removiendo tokens de los nodos de entrada y creando tokens de salida. De aqu podemos obtener la primera condicin de disparo en una transicin: todos los nodos de entrada de la transicin, deben tener al menos el mismo nmero de tokens, que de arcos que van hacia la transicin, para que sta sea disparada, cuando la transicin cumpla esta condicin se dice que es una transicin ENABLED. Definicin: Una transicin tj T en una PN P=(P,T,I,O) con una marca U es ENABLED si para todo pj P, U(pj)>=#( pj,I(tj)). Por ejemplo una transicin t3 con I(t3)={p3} y O(t3)={p4} es ENABLED slo cuando p3 tiene al menos un token. Cuando t3 es disparada slo un token es quitado a p3 y un token es depositado en p4 (s tuviera ms nodos de salida, depositaria un token en cada uno de ellos). Es decir por cada arco de salida es liberado un token. Consideremos la siguiente PN: Slo 3 transiciones estn en un estado ENABLED t1, t3, t4. La transicin t2 no puede ser disparada porque no hay tokens en el nodo p2, el cual es entrada de ella. Dado que t1, t3 y t4 son ENABLED cualquiera de ellas puede ser disparada. Podemos asociar de manera natural un vector u enlistando los valores de U. As para la PN mostrada tenemos u=(1,0,2,1,0). S la transicin t4 es disparada, remueve tokens de cada entrada y los deposita en cada salida, entonces remueve un token de p4 y deposita un token en p2 e incrementa el nmero de tokens en p3 de dos a tres; el vector u sera (1,1,3,0,0) y el estado de la red se mueve a como se muestra en la siguiente figura. Las transiciones pueden seguir disparndose indefinidamente hasta llegar a un estado deseado o hasta que ninguna pueda ser disparada. De lo anterior surgen dos preguntas: Cmo decidimos que transicin debe dispararse? Porqu no podemos disparar dos transiciones al mismo tiempo?

Decidir que transicin debe dispararse depende de nuestro modelo y s podemos disparar ms de una transicin en un mismo instante entonces estamos hablando de paralelismo. Pensemos en un ejemplo concreto: queremos sumar cuatro nmeros cualesquiera por medio de una PN. Dependiendo de cada nmero se ponen tantos tokens en los nodos correspondientes p1, p2, p3 y p4. Los primeros resultados parciales se almacenan en p5, y los ltimos en p6, una transicin para cada nodo es la que se encarga de quitar unidades en los sumandos y poner unidades en el resultado, cuando se efectan las dos sumas, se realiza una tercera suma, la realizan t5 y t6, su resultado se pone en p7. El orden en el que se realizan las operaciones no es un orden secuencial ya que la primer suma puede ocurrir indistintamente de las sumas anteriores. Redes de Petri Coloreadas Las redes de Petri coloreadas (CPN) pertenecen a la familia de las PN, la diferencia viene marcada por las consideraciones en CPN de colores y de funciones lineales asociadas a sus arcos. Los tokens de color pueden representar un atributo o distintivo, si es necesario definir dos atributos entonces surge la idea de colores compuestos. Una transicin en CPN est en estado ENABLED si todos sus nodos de entrada contienen un nmero de colores igual o mayor que los definidos por f i<c> donde fi es una funcin lineal asociada al nodo pi con la transicin tj. Entonces adems del concepto de color, estas redes manejan una funcin asociada para los elementos de las funciones I,O de la PN. Es fcil ver en una Red las transiciones que estn ENABLED y observar que a veces son ms de dos transiciones las que se pueden disparar, en la siguiente figura notamos que t1 y t2 pueden dispararse, pero si t1 es disparada, t2 dejar de ser ENABLED y si disparamos t2, no podremos disparar t1. Esto es conocido como un conflicto y nos ayuda a modelar problemas de sincronizacin. Extensiones al Modelo de Redes de Petri Un arco inhibidor es otro componente de una PN, ste va de un nodo a una transicin y es representado con un pequeo circulo al final del arco. La transicin que tiene arcos inhibidores no puede dispararse si el nodo de entrada contiene por lo menos tantos tokens como la multiplicidad del arco inhibidor. As por ejemplo la siguiente figura disparar cuando p1 tenga un token, y p2 no tenga tokens. En general las extensiones a la teora de PN dependen del modelo o la aplicacin donde se estn usando. Redes de Petri Temporales. Este tipo de redes son las que consideran el tiempo en el modelo. Es una consideracin importante ya que los sistemas reales casi siempre es indispensable considerarlo en la sincronizacin de los procesos.

El modelo ms simple es el que asigna duracin a: 1. Los nodos, en el sentido de que una condicin es verdadera para una cierta cantidad de tiempo. 2. La transicin, en el sentido de que un evento toma una cierta cantidad de tiempo en ocurrir. Cuando la duracin de los eventos no son fijos, o no pueden ser expresados con valores nominales, simplemente se estiman lmites dentro de los cuales el evento puede ocurrir. Modelado con Redes de Petri Eventos y condiciones. Podemos modelar sistemas complejos con PN, dividiendo el sistema en eventos y condiciones y de esta manera encontrar la analoga con la PN. Se toma como referencia que las condiciones que se dan en un sistema, son representadas por los nodos, ya que los tokens indican si esta condicin se cumple o no, y los eventos con las transiciones, que necesitan de condiciones para poder ser disparadas. Consideremos el siguiente sistema: Un taller que tiene tres mquinas, M1,M2 y M3, y dos operadores O1 y O2. El operador O1 puede trabajar las mquinas M1 y M2 y el operador O2 las mquinas M1 y M3. Las ordenes requieren de dos procesos, el primer proceso debe ser hecho por la mquina M1 y el segundo proceso puede ser hecho con la mquina M2 o la M3. Enlistemos las condiciones y los eventos: Condiciones A B C D E F G H I Una orden ha llegado y est esperando Una orden ha sido trabajada y est esperando ser procesada por M2 o M3 La orden es completada La mquina M1 est desocupada La mquina M2 est desocupada La mquina M3 est desocupada El operador O1 est sin trabajo El operador O2 est sin trabajo El operador O1 est ocupando la mquina M1

J K L Eventos

El operador O2 est ocupando la mquina M1 El operador O1 est ocupando la mquina M2 El operador O2 est ocupando la mquina M3

Llega una orden El operador O1 empieza la orden en M1 El operador O1 termina la orden en M1 El operador O2 empieza la orden en M1 El operador O2 termina la orden en M1 El operador O1 empieza la orden en M2 El operador O1 termina la orden en M2 El operador O2 empieza la orden en M3 El operador O2 termina la orden en M3 La orden es terminada y liberada

Precondiciones y postcondiciones de cada evento Condiciones Iniciales: d, e, f, g, h Eventos 1 2 3 4 5 Precondiciones Ninguna A, G, D I A, H, D J Postcondiciones A I G, D, B J B, H, D

6 7 8 9 10

B, G, E K B, f , H L c

K C, G, E I C, F, H Ninguna

La PN se muestra a continuacin: El problema de los cinco filsofos. Este problema puede dar una idea clara del potencial de una PN, el problema consiste de cinco filsofos que en forma alternada piensan y comen. Estn sentados en una mesa circular donde ha sido depositada comida china, cada filsofo tiene frente a l un plato donde servirse y entre cada uno de ellos un palillo chino. Como sabemos, para comer comida china necesitamos dos palillos, entonces cada filsofo para comer debe tener dos palillos en su poder. El problema est en que si cada filsofo tiene un slo palillo en su poder todos los filsofos entrarn en una espera eterna para comer, otro problema puede surgir y es el que un filsofo obtenga siempre los dos palillos y se mantenga comiendo, lo que producir que los otros filsofos no puedan comer (cayendo en un estado de inanicin). Analicemos los eventos y condiciones de este problema as como las precondiciones y postcondiciones para un slo filsofo y luego para ms. Condiciones 1 2 3 4 5 6 El palillo 1 est ocupado El palillo 2 est desocupado El palillo1 est ocupado El palillo 2 est ocupado El filsofo est meditando El filsofo est comiendo

Eventos 1 El filsofo empieza a meditar

El filsofo empieza a comer

Condiciones iniciales: 1,2, 5 Eventos 1 2 Precondiciones 6 1,2,5 Postcondiciones 1,2,5 3,4,6

S ahora se trata de dos filsofos se obtendr lo siguiente: Condiciones 1 2 3 4 5 6 7 8 El palillo 1 est ocupado El palillo 2 est desocupado El palillo1 est ocupado El palillo 2 est ocupado El filsofo 1 est meditando El filsofo 1 est comiendo El filsofo 2 est meditando El filsofo 2 est comiendo

Eventos 1 2 3 4 El filsofo 1 empieza a meditar El filsofo 1 empieza a comer El filsofo 2 empieza a meditar El filsofo 2 empieza a comer

Condiciones iniciales: 1,2, 5 Eventos 1 Precondiciones 6 Postcondiciones 3, 4, 5

2 3 4

3, 4, 5 8 3, 4, 7

1, 2, 6 3, 4, 7 1, 2, 8

Como sabemos las condiciones corresponden a nodos y los eventos a transiciones, las condiciones 1 y 3, 2 y 4 pueden modelarse con un slo nodo. El problema para cinco filsofos es modelado como se muestra en la siguiente figura. Los nodos P1,.,P5 representan los palillos, al inicio cuando todos los filsofos piensan, cada nodo tiene un token. Cada filsofo es representado por dos nodos M y C representan los estados meditando y comiendo respectivamente. Para que un filsofo coma es necesario que tenga los dos palillos en sus manos, entonces sus dos nodos deben tener un token y de esta manera poder comer.

Unidad 4. Sistemas numricos


4.4 Representacin de la informacin.

4.4.1

Introduccin.

En el sistema de nmeros decimales se dice que la base o raz es 10 debido a que usa 10 dgitos, y los coeficientes se multiplican por potencias de 10. El sistema binario unicamente posee dos valores posibles que son 0 y 1, en los cuales cada coeficiente Aj se multiplica por 2j, como ejemplo tendremos el desarrollo del nmero binario 11010.11 el cual ser representado por la siguiente manera : 1*24+1*23+0*22+1*21+0*20+1*2-1+1*2-2 16+8+0+2+0+0.5+0.25 = 26.75 Por lo tanto tenemos que un nmero en un sistema de base(r) tiene coeficientes multiplicados por potencias de (r) y quedara representado de la siguiente manera : an*rn+ an-1*rn-1+ . . . + a2*r2+ a1*r1+ a0*r0+ a-1*r-1+ . . . + a-m*r-m

4.4.2

Tipos de sistemas numricos.

Los sistemas de numeracin son conjuntos de dgitos usados para representar cantidades, as se tienen los sistemas de numeracin decimal, binario, octal, hexadecimal, romano, etc. Los cuatro primeros se caracterizan por tener una base (nmero de dgitos diferentes: diez, dos, ocho, dieciseis respectivamente) mientras que el sistema romano no posee base y resulta ms complicado su manejo tanto con nmeros, as como en las operaciones bsicas.

Los sistemas de numeracin que poseen una base tienen la caracterstica de cumplir con la notacin posicional, es decir, la posicin de cada nmero le da un valor o peso, as el primer dgito de derecha a izquierda despus del punto decimal, tiene un valor igual a b veces el valor del dgito, y as el dgito tiene en la posicin n un valor igual a: (bn) * A donde: b = valor de la base del sistema n = nmero del dgito o posicin del mismo A = dgito. Por ejemplo: digitos: 1 2 4 9 5 3 . 3 2 4 posicion 5 4 3 2 1 0 . -1 -2 -3 El sistema numrico decimal El sistema de numeracin decimal es el ms usado, tiene como base el nmero 10, o sea que posee 10 dgitos (o simbolos) diferentes (0, 1, 2, 3, 4, 5, 6, 7, 8, 9). El sistema de numeracin decimal fu desarrollado por los hindes, posteriormente lo introducen los rabes en Europa, donde recibe el nombre de sistema de numeracin decimal o arbigo. Si se aplica la notacin posicional al sistema de numeracin decimal entonces el dgito nmero n tiene el valor: (10n)* A Sistema Binario El sistema de numeracin ms simple que usa la notacin posicional es el sistema de numeracin binario. Este sistema, como su nombre lo indica, usa solamente dos dgitos (0,1). Por su simplicidad y por poseer nicamente dos dgitos diferentes, el sistema de numeracin binario se usa en computacin para el manejo de datos e informacin. Normalmente al dgito cero se le asocia con cero voltios, apagado, desenergizado, inhibido (de la computadora) y el dgito 1 se asocia con +5, +12 volts, encendido, energizado (de la computadora) con el cual se forma la lgica positiva. Si la asociacin es inversa, o sea el nmero cero se asocia con +5 volts o encendido y al nmero 1 se asocia con cero volts o apagado, entonces se genera la lgica negativa. A la representacin de un dgito binario se le llama bit (de la contraccin binary digit) y al conjunto de 8 bits se le llama byte, as por ejemplo: 110 contiene 3 bits, 1001 contiene 4 y 1 contiene 1 bit. Como el sistema binario usa la notacin posicional entonces el valor de cada dgito depende de la posicin que tiene en el nmero, as por ejemplo el nmero 110101b es: 1*(20) + 0*(21) + 1*(22) + 0*(23) + 1*(24) + 1*(25) = 1 + 4 + 16 + 32 = 53d

La computadora est diseada sobre la base de numeracin binaria (base 2). Por eso este caso particular merece mencin aparte. Siguiendo las reglas generales para cualquier base expuestas antes, tendremos que: Existen dos dgitos (0 o 1) en cada posicin del nmero. Numerando de derecha a izquierda los dgitos de un nmero, empezando por cero, el valor decimal de la posicin es 2n. Por ejemplo,11012 (en base 2) quiere decir:

1*(23) + 1*(22) + 0*(21) + 1*(20) = 8 + 4 + 0 + 1 = 1310


Sistema Octal El sistema de numeracin octal es tambin muy usado en la computacin por tener una base que es potencia exacta de 2 o de la numeracin binaria. Esta caracterstica hace que la conversin a binario o viceversa sea bastante simple. El sistema octal usa 8 dgitos (0,1,2,3,4,5,6,7) y tienen el mismo valor que en el sistema de numeracin decimal. Como el sistema de numeracin octal usa la notacin posicional entonces para el nmero 3452.32q tenemos: 2*(80) + 5*(81) + 4*(82) + 3*(83) + 3*(8-1) + 2*(8-2) = 2 + 40 + 4*64 + 64 + 3*512 + 3*0.125 + 2*0.015625 = 2 + 40 + 256 + 1536 + 0.375 + 0.03125 = 1834 + 40625dentonces, 3452.32q = 1834.40625d El subindice q indica nmero octal, se usa la letra q para evitar confusin entre la letra o y el nmero 0. Sistema Hexadecimal Un gran problema con el sistema binario es la verbosidad. Para representar el valor 20210 se requieren ocho dgitos binarios, la versin decimal slo requiere de tres dgitos y por lo tanto los nmeros se representan en forma mucho ms compacta con respecto al sistema numrico binario. Desafortunadamente las computadoras trabajan en sistema binario y aunque es posible hacer la conversin entre decimal y binario, ya vimos que no es precisamente una tarea cmoda. El sistema de numeracin hexadecimal, o sea de base 16, resuelve este problema (es comn abreviar hexadecimal como hex aunque hex significa base seis y no base dieciseis). El sistema hexadecimal es compacto y nos proporciona un mecanismo sencillo de conversin hacia el formato binario, debido a sto, la mayora del equipo de cmputo actual utiliza el sistema numrico hexadecimal. Como la base del sistema hexadecimal es 16, cada dgito a la izquierda del punto hexadecimal representa tantas veces un valor sucesivo potencia de 16, por ejemplo, el nmero 123416 es igual a: 1*163 + 2*162 + 3*161 + 4*160

lo que da como resultado: 4096 + 512 + 48 + 4 = 466010 Cada dgito hexadecimal puede representar uno de dieciseis valores entre 0 y 1510. Como slo tenemos diez dgitos decimales, necesitamos inventar seis dgitos adicionales para representar los valores entre 1010 y 1510. En lugar de crear nuevos simbolos para estos dgitos, utilizamos las letras A a la F. La conversin entre hexadecimal y binario es sencilla, considere la siguiente tabla: Binario 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F

Esta tabla contiene toda la informacin necesaria para convertir de binario a hexadecimal y visceversa. Para convertir un nmero hexadecimal en binario, simplemente sustituya los correspondientes cuatro bits para cada dgito hexadecimal, por ejemplo, para convertir 0ABCDh en un valor binario: 0 A B C D (Hexadecimal) 0000 1010 1011 1100 1101 (Binario) Por comodidad, todos los valores numricos los empezaremos con un dgito decimal; los valores hexadecimales terminan con la letra h y los valores binarios terminan con la letra b. La conversin de formato binario a hexadecimal es casi igual de fcil, en primer lugar necesitamos asegurar que la cantidad de dgitos en el valor binario es mltiplo de 4, en caso contrario agregaremos ceros a la izquierda del valor, por ejemplo el nmero binario 1011001010, la primera etapa es agregarle dos ceros a la izquierda para que contenga doce ceros: 001011001010. 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 convencin establecida: 02CAh.

4.5 Conversiones.
4.5.1 Decimal a binario, Octal, Hexadecimal
Cuando deseamos efectuar la conversin de decimal a binario o ha cualquier otro sistema con base r es ms conveniente si el nmero se separa en parte entera y en una parte fraccionaria, y la conversin de cada parte se efecta por separado : Ejemplo : Convertir el numero (41)10 a binario 41 1 LSB 20 0 21 22 23 24 (41)10 = (101001)2 Para convertir cualquier entero decimal ha cualquier sistema de base r la divisin se hace entre r en lugar de 2. Ejemplo : Convertir el numero (153)10 a base 8 153 154 155 1 LSB 19 3 2 2 MSB 10 5 2 1 0 1 0 1

MSB

(153)10=(231)8 Para convertir una fraccin decimal a binario, el sistema que se sigue es similar al que utilizamos para los enteros, sin embargo, se usa la multiplicacin en lugar de la divisin, y los enteros se acumulan en lugar de los residuos. Ejemplo : convertir (0.6875)10 a base 2 Entero Fraccin Coeficiente

0.6875 0.3750 0.75 0.5

*2 1 0.3750 (a-1) *2 0 0.75 *2 1 0.5 *2 1 0.0 (a-2) (a-3) (a-4)

= 1 = 0 = 1 = 1

(0.6875)10=(0.1011)2 Cuando deseamos convertir una fraccin decimal en nmero expresado en base r, el procedimiento es similar, la multiplicacin se hace con r en lugar de 2 y los coeficientes se encuentran con los enteros. Ejemplo : convertir (0.513)10 a base 8 Entero 0.513 0.104 0.832 0.656 0.248 0.984 * Fraccin * 8 4 * 8 0 * 8 6 * 8 5 * 8 1 8 7 0.872 a-6 = 7 0.104 0.832 0.656 0.248 0.984 a-1 a-2 a-3 a-4 a-5 Coeficiente = = = = = 4 0 6 5 1

Cuando deseamos hacer la conversin de un nmero decimal de una parte entera y una parte fraccionaria la conversin se hace por separado y posteriormente se combinan las dos respuestas. Ejemplo : (41.6875)10 -> (101001.1011)2

4.5.2 Binario a Decimal, Octal, Hexadecimal.


Un nmero binario x puede convertirse en decimal efectuando la suma de las potencias cuyo valor es uno. Ejemplo : (1010.011)2 = 1*23+0*22+1*21+0*20+0*2-1+1*2-2+1*2-3 = 8+0+2+0+0+0.25+0.125

= 10.375 Las conversiones entre cdigo binario, octal y hexadecimal es muy importante en las comparaciones digitales, ya que cada dgito octal corresponde a tres dgitos binarios y a cada dgito hexadecimal corresponde cuatro dgitos binarios. (10110001101011.111100000110)2 -> (26153.7406)8 Cuando deseamos convertir un nmero binario a hexadecimal, el proceso es similar excepto que el nmero binario se divide en grupos de 4. (10110001101011.11110010)2 -> (2C6B.F2)16 Los nmeros binarios son difciles de manejar ya que se requiere dos o cuatro veces mas dgitos que su equivalente decimal. Ejemplo : (111111111111)2 -> (4095)10 Una forma de reducir esta deficiencia es emplear la relacin entre el sistema de nmeros binarios con el sistema octal o hexadecimal. El nmero binario (111111111111)2 tiene 12 dgitos y los podemos expresar en octal (7777)8 (cuatro dgitos) o en hexadecimal como (FFF)16 (tres dgitos), la representacin octal o hexadecimal es mas deseable ya que se representa en forma mas compacta, como un tercio o un cuarto del nmero de dgitos requeridos por el nmero binario equivalente.

4.6 lgebra booleana.


Las lgebras booleanas, estudiadas por primera vez en detalle por George Boole , constituyen un rea de las matemticas que ha pasado a ocupar un lugar prominente con el advenimiento de la computadora digital. Son usadas ampliamente en el diseo de circuitos de distribucin y computadoras, y sus aplicaciones van en aumento en muchas otras reas. En el nivel de lgica digital de una computadora, lo que comnmente se llama hardware, y que est formado por los componentes electrnicos de la mquina, se trabaja con diferencias de tensin, las cuales generan funciones que son calculadas por los circuitos que forman el nivel. stas funciones, en la etapa de disea del hardware, son interpretadas como funciones de boole. En el presente trabajo se intenta dar una definicin de lo que es un lgebra de boole; se tratan las funciones booleanas, haciendo una correlacin con las frmulas proposicionales. Asimismo, se plantean dos formas cannicas de las funciones booleanas, que son tiles para varios propsitos, tales como el de determinar si dos expresiones representan o no la misma funcin. Pero para otros propsitos son a menudo engorrosas, por tener ms operaciones que

las necesarias. Particularmente, cuando estamos construyendo los circuitos electrnicos con que implementar funciones booleanas, el problema de determinar una expresin mnima para una funcin es a menudo crucial. No resultan de la misma eficiencia en dinero y tiempo, principalmente, dos funciones las cuales calculan lo mismo pero donde una tiene menos variables y lo hace en menor tiempo. Como solucin a este problema, se plantea un mtodo de simplificacin, que hace uso de unos diagramas especiales llamados mapas o diagramas de Karnaugh, y el cual tiene la limitacin de poder trabajar adecuadamente slo con pocas variables. Se realizan estas presentaciones con el fin de demostrar la afinidad existente entre el lgebra de boole y la lgica proposicional, y con el objeto de cimentar el procedimiento de simplificacin presentado en la lgica de proposiciones. 2. Resea Histrica A mediados del siglo XIX, George Boole (1815-1864), en sus libros: "The Mathematical Analysis of Logic" (1847) y "An Investigation of te Laws of Thought" (1854), desarroll la idea de que las proposiciones lgicas podan ser tratadas mediante herramientas matemticas. Las proposiciones lgicas (asertos, frases o predicados de la lgica clsica) son aquellas que nicamente pueden tomar valores Verdadero/Falso, o preguntas cuyas nicas respuestas posibles sean S/No. Segn Boole, estas proposiciones pueden ser representadas mediante smbolos y la teora que permite trabajar con estos smbolos, sus entradas (variables) y sus salidas (respuestas) es la Lgica Simblica desarrollada por l. Dicha lgica simblica cuenta con operaciones lgicas que siguen el comportamiento de reglas algebraicas. Por ello, al conjunto de reglas de la Lgica Simblica se le denomina LGEBRA DE BOOLE. A mediados del siglo XX el lgebra Booleana result de una gran importancia prctica, importancia que se ha ido incrementando hasta nuestros das, en el manejo de informacin digital (por eso hablamos de Lgica Digital). Gracias a ella, Shannon (1930) pudo formular su teora de la codificacin y John Von Neumann pudo enunciar el modelo de arquitectura que define la estructura interna de los ordenadores desde la primera generacin. Todas las variables y constantes del lgebra booleana, admiten slo uno de dos valores en sus entradas y salidas: S/No, 0/1 o Verdadero/Falso. Estos valores bivalentes y opuestos pueden ser representados por nmeros binarios de un dgito (bits), por lo cual el lgebra booleana se puede entender cmo el lgebra del Sistema Binario. Al igual que en lgebra tradicional, tambin se trabaja con letras del alfabeto para denominar variables y formar ecuaciones para obtener el resultado de ciertas operaciones mediante una ecuacin o expresin booleana. Evidentemente los resultados de las correspondientes operaciones tambin sern binarios. Todas las operaciones (representadas por smbolos determinados) pueden ser materializadas mediante elementos fsicos de diferentes tipos (mecnicos, elctricos, neumticos o electrnicos) que admiten entradas binarias o lgicas y que devuelven una respuesta (salida) tambin binaria o lgica. Ejemplos de dichos estados son: Abierto/Cerrado (interruptor), Encendida/Apagada (bombilla), Cargado/Descargado

(condensador) , Nivel Lgico 0/Nivel lgico 1 (salida lgica de un circuito semiconductor), etctera. Los dispositivos con los cuales se implementan las funciones lgicas son llamados puertas (o compuertas) y, habitualmente, son dispositivos electrnicos basados en transistores. Estos dispositivos, y otros que veremos a lo largo de esta unidad, son los que permiten el diseo, y la ulterior implementacin, de los circuitos de cualquier ordenador moderno, as como de muchos de los elementos fsicos que permiten la existencia de las telecomunicaciones modernas, el control de mquinas, etctera. De hecho, pensando en los ordenadores como una jerarqua de niveles, la base o nivel inferior sera ocupada por la lgica digital (en el nivel ms alto del ordenador encontraramos los actuales lenguajes de programacin de alto nivel). En esta unidad se representan las puertas lgicas elementales, algunas puertas complejas y algunos ejemplos de circuitos digitales simples, as como algunas cuestiones de notacin. Por otra parte se plantean actividades de trabajo, muchas de las cuales implican una respuesta escrita en vuestro cuaderno de trabajo. El deseo del autor es que os resulte sencillo y ameno adentraros en el mundo de la lgica digital y despertaros la curiosidad, tanto por ella, como por la matemtica que subyace en ella.

3. lgebra Booleana El lgebra booleana es un sistema matemtico deductivo centrado en los valores cero y uno (falso y verdadero). Un operador binario " " definido en ste juego de valores acepta un par de entradas y produce un solo valor booleano, por ejemplo, el operador booleano AND acepta dos entradas booleanas y produce una sola salida booleana. Para cualquier sistema algebraico existen una serie de postulados iniciales, de aqu se pueden deducir reglas adicionales, teoremas y otras propiedades del sistema, el lgebra booleana a menudo emplea los siguientes postulados:
Cerrado. El sistema booleano se considera cerrado con respecto a un operador binario si para cada par de valores booleanos se produce un solo resultado booleano. Conmutativo. Se dice que un operador binario " " es conmutativo si A B = B A para todos los posibles valores de A y B. Asociativo. Se dice que un operador binario " " es asociativo si (A B) C = A (B C) para todos los valores booleanos A, B, y C. Distributivo. Dos operadores binarios " " y " % " son distributivos si A (B % C) = (A B) % (A C) para todos los valores booleanos A, B, y C. Identidad. Un valor booleano I se dice que es un elemento de identidad con respecto a un operador binario " " si A I = A. Inverso. Un valor booleano I es un elemento inverso con respecto a un operador booleano " " si A I = B, y B es diferente de A, es decir, B es el valor opuesto de A.

Para nuestros propsitos basaremos el lgebra booleana en el siguiente juego de operadores y valores: - Los dos posibles valores en el sistema booleano son cero y uno, a menudo llamaremos a stos valores respectivamente como falso y verdadero. - El smbolo representa la operacin lgica AND. Cuando se utilicen nombres de variables de una sola letra se eliminar el smbolo , por lo tanto AB representa la operacin lgica AND entre las variables A y B, a esto tambin le llamamos el producto entre A y B. - El smbolo "+" representa la operacin lgica OR, decimos que A+B es la operacin lgica OR entre A y B, tambin llamada la suma de A y B. - El complemento lgico, negacin NOT es un operador unitario, en ste texto utilizaremos el smbolo " ' " para denotar la negacin lgica, por ejemplo, A' denota la operacin lgica NOT de A. - Si varios operadores diferentes aparecen en una sola expresin booleana, el resultado de la expresin depende de la procedencia de los operadores, la cual es de mayor a menor, parntesis, operador lgico NOT, operador lgico AND y operador lgico OR. Tanto el operador lgico AND como el OR son asociativos por la izquierda. Si dos operadores con la misma procedencia estn adyacentes, entonces se evalan de izquierda a derecha. El operador lgico NOT es asociativo por la derecha. Utilizaremos adems los siguientes postulados:
P1 El lgebra booleana es cerrada bajo las operaciones AND, OR y NOT P2 El elemento de identidad con respecto a es uno y con respecto a + es cero. No existe elemento de identidad para el operador NOT P3 Los operadores y + son conmutativos.

P4 y + son distributivos uno con respecto al otro, esto es, A (B+C) = (AB)+(AC) y A+ (BC) = (A+B) (A+C). P5 Para cada valor A existe un valor A' tal que AA' = 0 y A+A' = 1. ste valor es el complemento lgico de A. P6 y + son ambos asociativos, sto es, (AB) C = A (BC) y (A+B)+C = A+ (B+C).

Es posible probar todos los teoremas del lgebra booleana utilizando stos postulados, adems es buena idea familiarizarse con algunos de los teoremas ms importantes de los cuales podemos mencionar los siguientes:
Teorema 1: A + A = A Teorema 2: A A = A Teorema 3: A + 0 = A Teorema 4: A 1 = A Teorema 5: A 0 = 0 Teorema 6: A + 1 = 1 Teorema 7: (A + B)' = A' B' Teorema 8: (A B)' = A' + B' Teorema 9: A + A B = A Teorema 10: A (A + B) = A Teorema 11: A + A'B = A + B Teorema 12: A' (A + B') = A'B' Teorema 13: AB + AB' = A Teorema 14: (A' + B') (A' + B) = A' Teorema 15: A + A' = 1 Teorema 16: A A' = 0

Los teoremas siete y ocho son conocidos como Teoremas de DeMorgan en honor al matemtico que los descubri. Caractersticas: Un lgebra de Boole es un conjunto en el que destacan las siguientes caractersticas: 1- Se han definido dos funciones binarias (que necesitan dos parmetros) que llamaremos aditiva (que representaremos por x + y) y multiplicativa (que representaremos por xy) y una funcin monaria (de un solo parmetro) que representaremos por x'. 2- Se han definido dos elementos (que designaremos por 0 y 1) Y 3- Tiene las siguientes propiedades:
Conmutativa respecto a la primera funcin: x + y = y + x Conmutativa respecto a la segunda funcin: xy = yx Asociativa respecto a la primera funcin: (x + y) + z = x + (y +z) Asociativa respecto a la segunda funcin: (xy)z = x(yz) Distributiva respecto a la primera funcin: (x +y)z = xz + yz Distributiva respecto a la segunda funcin: (xy) + z = (x + z)( y + z) Identidad respecto a la primera funcin: x + 0 = x Identidad respecto a la segunda funcin: x1 = x Complemento respecto a la primera funcin: x + x' = 1 Complemento respecto a la segunda funcin: xx' = 0

Propiedades Del lgebra De Boole 1. Idempotente respecto a la primera funcin: x + x = x


Idempotente respecto a la segunda funcin: xx = x Maximalidad del 1: x + 1 = 1 Minimalidad del 0: x0 = 0 Involucin: x'' = x Inmersin respecto a la primera funcin: x + (xy) = x Inmersin respecto a la segunda funcin: x(x + y) = x Ley de Morgan respecto a la primera funcin: (x + y)' = x'y' Ley de Morgan respecto a la segunda funcin: (xy)' = x' + y'

Funcin Booleana Una funcin booleana es una aplicacin 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 mayora. Cada uno puede votar si o no. Representemos el voto de cada uno por xi. La funcin devolver s (1) cuando el 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 funcin booleana devolver 0. Producto mnimo (es el nmero posible de casos) es un producto en el que aparecen todas las variables o sus negaciones. El nmero posible de casos es 2n. Siguiendo con el ejemplo anterior. Asignamos las letras A, B, C y D a los amigos. Los posibles casos son: Votos Resultado ABCD 1111 1 1110 1 1101 1 1100 0 1011 1 1010 0 1001 0 1000 0 0111 1 0110 0 0101 0 0100 0 0011 0 0010 0 0001 0 0000 0 Las funciones booleanas se pueden representar como la suma de productos mnimos (minterms) iguales a 1.

En nuestro ejemplo la funcin booleana ser: f(A,B,C,D) = ABCD + ABCD' + ABC'D + AB'CD + A'BCD Diagramas De Karnaugh Los diagramas de Karnaugh se utilizan para simplificar las funciones booleanas. Se construye una tabla con las variables y sus valores posibles y se agrupan los 1 adyacentes, siempre que el nmero de 1 sea potencia de 2. En esta pgina tienes un programa para minimizacin de funciones booleanas mediante mapas de Karnaugh 4. lgebra Booleana y circuitos electrnicos La relacin que existe entre la lgica booleana y los sistemas de cmputo es fuerte, de hecho se da una relacin uno a uno entre las funciones booleanas y los circuitos electrnicos de compuertas digitales. Para cada funcin booleana es posible disear un circuito electrnico y viceversa, como las funciones booleanas solo requieren de los operadores AND, OR y NOT podemos construir nuestros circuitos utilizando exclusivamente stos operadores utilizando las compuertas lgicas homnimas Un hecho interesante es que es posible implementar cualquier circuito electrnico utilizando una sola compuerta, sta es la compuerta NAND Para probar que podemos construir cualquier funcin booleana utilizando slo compuertas NAND, necesitamos demostrar cmo construir un inversor (NOT), una compuerta AND y una compuerta OR a partir de una compuerta NAND, ya que como se dijo, es posible implementar cualquier funcin booleana utilizando slo los operadores booleanos AND, OR y NOT. Para construir un inversor simplemente conectamos juntas las dos entradas de una compuerta NAND. Una vez que tenemos un inversor, construir una compuerta AND es fcil, slo invertimos la salida de una compuerta NAND, despus de todo, NOT ( NOT (A AND B)) es equivalente a A AND B. Por supuesto, se requieren dos compuertas NAND para construir una sola compuerta AND, nadie ha dicho que los circuitos implementados slo utilizando compuertas NAND sean lo ptimo, solo se ha dicho que es posible hacerlo. La otra compuerta que necesitamos sintetizar es la compuerta lgica OR, sto es sencillo si utilizamos los teoremas de DeMorgan, que en sntesis se logra en tres pasos, primero se reemplazan todos los "" por "+" despus se invierte cada literal y por ltimo se niega la totalidad de la expresin: A OR B A AND B.......................Primer paso para aplicar el teorema de DeMorgan A' AND B'.....................Segundo paso para aplicar el teorema de DeMorgan (A' AND B')'..................Tercer paso para aplicar el teorema de DeMorgan (A' AND B')' = A' NAND B'.....Definicin de OR utilizando NAND Si se tiene la necesidad de construir diferentes compuertas de la manera descrita, bien hay dos buenas razones, la primera es que las compuertas NAND son las ms econmicas y en segundo lugar es preferible construir circuitos complejos utilizando los mismos bloques bsicos. Observe que es posible construir cualquier circuito lgico utilizando slo compuertas de tipo NOR (NOR = NOT(A OR B)). La correspondencia

entre la lgica NAND y la NOR es ortogonal entre la correspondencia de sus formas cannicas. Mientras que la lgica NOR es til en muchos circuitos, la mayora de los diseadores utilizan lgica NAND.

http://www.monografias.com/trabajos14/algebrabooleana/algebra-booleana.shtml
4.6.1 Circuitos combinatorios.
Un circuito combinacional es un sistema que contiene operaciones booleanas bsicas (AND, OR, NOT), algunas entradas y un juego de salidas, como cada salida corresponde a una funcin lgica individual, un circuito combinacional a menudo implementa varias funciones booleanas diferentes, es muy importante recordar ste echo, cada salida representa una funcin booleana diferente. Un ejemplo comn de un circuito combinacional es el decodificador de siete segmentos, se trata de un circuito que acepta cuatro entradas y determina cul de los siete segmentos se deben iluminar para representar la respectiva entrada, de acuerdo con lo dicho en el prrafo anterior, se deben implementar siete funciones de salida diferentes, una para cada segmento. Las cuatro entradas para cada una de stas funciones booleanas son los cuatro bits de un nmero binario en el rango de 0 a 9. Sea D el bit de alto orden de ste nmero y A el bit de bajo orden, cada funcin lgica debe producir un uno (para el segmento encendido) para una entrada dada si tal segmento en particular debe ser iluminado, por ejemplo, el segmento e debe iluminarse para los valores 0000, 0010, 0110 y 1000. En la siguiente tabla se puede ver qu segmentos deben iluminarse de acuerdo al valor de entrada, tenga en cuenta que slo se estn representando valores en el rango de 0 a 9, los decodificadores para las pantallas de siete segmentos comerciales tienen capacidad para desplegar valores adicionales que corresponden a las letras A a la F para representaciones hexadecimales, sin embargo la mecnica para iluminar los respectivos segmentos es similar a la aqu representada para los valores numricos. 0 1 2 3 4 5 6 7 8 9 a a a a a a a b b b b b b b b c c c c c c c c c d d d d d d e e f f f f f f g g g g g g g

e e

Los circuitos combinacionales son la base de muchos componentes en un sistema de cmputo bsico, se puede construir circuitos para sumar, restar, comparar, multiplicar, dividir y muchas otras aplicaciones ms. Circuitos Secuenciales Un problema con la lgica secuencial es su falta de "memoria". En teora, todas las funciones de salida en un circuito combinacional dependen del estado actual de los valores de entrada, cualquier cambio en los valores de entrada se refleja (despus de un intervalo de tiempo llamado retardo de propagacin) en las salidas. Desafortunadamente las computadoras requieren de la habilidad para "recordar" el resultado de clculos pasados. ste es el dominio de la lgica secuencial. Una celda de memoria es un circuito electrnico que recuerda un valor de entrada despus que dicho valor ha desaparecido. La unidad de memoria ms bsica es el flip-flop Set/Reset. Aunque recordar un bit sencillo es importante, la mayora de los sistemas de cmputo requieren recordar un grupo de bits, sto se logra combinando varios flip-flop en paralelo, una conexin de ste tipo recibe el nombre de registro. A partir de aqu es posible implementar diferentes circuitos como registros de corrimiento y contadores, stos ltimos tambin los conocemos como circuitos de reloj. Con los elementos mencionados es posible construir un microprocesador completo. 6. Relacin entre la lgica combinacional y secuencial con la programacin En sta leccin hemos dado una repasada muy bsica a los elementos que forman la base de los modernos sistemas de cmputo, en la seccin dedicada al diseo electrnico estudiaremos a profundidad los conceptos aqu presentados, pero para aquellos que estn ms interesados en el aspecto programtico podemos decir que con los elementos vistos en sta leccin es posible implementar mquinas de estado, sin embargo la moraleja de sta leccin es muy importante: cualquier algoritmo que podamos implementar en software, lo podemos a su vez implementar directamente en hardware. sto sugiere que la lgica booleana es la base computacional en los modernos sistemas de cmputo 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 funcin de hardware directamente en software, en la actualidad sta es la funcin principal del lenguaje ensamblador y otros con capacidad de trabajar directamente en hardware, como el C y el C++. Las consecuencias de ste fenmeno apenas se estn explotando, se infiere la existencia de un futuro muy prometedor para el profesional de la programacin, especialmente aquellos dedicados a los sistemas incrustados (embedded systems), los microcontroladores y los profesionales dedicados a la Programacin Orientada a Objetos. Para tener xito en stos campos de la investigacin es fundamental comprender las funciones booleanas y la manera de implementarlas en software. An y cuando Usted no 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.

http://www.monografias.com/trabajos14/algebrabooleana/algebra-booleana.shtml 4.6.2 Propiedades.


Propiedades del algebra de Boole. 1. Propiedad de cierre. Para un conjunto s se dice que es cerrado para un operador binario si para cada elemento de S el operador binario especifica una regla para obtener un elemento nico de S. Para el conjunto N = {1,2,3,4,} es cerrado con respecto al operador binario (+) por las reglas de la adicin aritmtica, ya que para que cualquier elemento a,b pertenecientes a N por la operacin a + b = c el conjunto de los nmeros naturales no esta cerrado con respecto al operador binario (-) por la regla de la resta aritmtica, debido a que 2-3 = -1 y 2,3 pertenecen a N pero -1 no pertenece a N. 2. Ley asociativa. El operador binario (*) es un conjunto S es asociativo siempre que x*y*z = x*(y*z) para toda x, y pertenecientes a S. 3. Ley conmutativa. Un operador binario (*) para un conjunto S es conmutativo siempre que: x*y = y*x para toda x,y pertenecientes a S. 4. Elemento identidad. El conjunto S tendr un elemento identidad multiplicativo identidad (*) en S si existe un e perteneciente a S con la propiedad e*x = x*e =e para cada x pertenecientes a S. 5. Inversa. El conjunto S tiene un elemento identidad (e) con respecto al operador (*) siempre que para cada x perteneciente a S exista un elemento y perteneciente a S tal que x*y=e. 6. Ley distributiva.

Si el operador (*) y el operador (.), son operadores binarios de S, (*) se dice que es distributivo sobre (.). Siempre que: x*(y . z) = (x*y) . (x*z) - El operador binario (+) define la adicin. - Identidad aditiva es el cero. - La inversa aditiva define la sustraccin. - El operador binario (.) define la multiplicacin. - Identidad multiplicativa es 1. - Inversa multiplicativa de A es igual a 1/A define la divisin esto es A * 1/A = 1 - La nica ley distributiva aplicable es la de operador (.) sobre el operador + (.) sobre (+) a(b+c)=(a.b) +(a.c) Para definir formalmente el lgebra de Boole se emplean postulados de Huntington. 1. a) Cierre con respecto al operador (+) b) Cierre con respecto al operador (.) 2. a) Un elemento identidad con respecto al operador (+), designado por el cero x+0 =0+x=x b) Un elemento identidad con respecto al operador (.) designado por el uno x*1=1*x=x 3. a) Conmutativo con respecto al operador (+) : x+y = y+x b) Conmutativo con respecto al operador (.) : x*y =y*x 4. a) El operador (.) es distributivo sobre el operador (+) : x.(y+z) = (x.y) + (y.z) b) El operador (+) es distributivo sobre el operador (.) : x+(x.z) = (x+y) . (x+z) 5. Para cada elemento de x pertenencia a B existe un elemento x complemento perteneciente a B denominado complemento de x tal que: a) x+x = 1 b) x = 0 6. Existen cuando menos dos elementos x,y pertenecientes a B tal que x diferente de y. Por lo tanto tenemos que el lgebra de Boole difiere de la aritmtica y del lgebra ordinaria en la sig: a) Los postulados Huntington: no incluyen al ley asociativa, no obstante esta ley es valida para el lgebra booleana (para ambos operadores)

b) La ley distributiva del operador (+) sobre el operador (.) esto es: x+(y.z) = (x+y).(x+z), la cual es valida para el lgebra de boole pero no para el lgebra ordinaria. c) El lgebra booleana no tiene inversa aditiva a multiplicativa, por lo tanto no hay operaciones de sustracciones o divisin. d) El postulado 5 define un operador llamado completo que no se encuentra en el lgebra ordinaria. e) En el algebra de Boole se define un conjunto B de dos elementos (0 y 1) y el lgebra ordinaria trata con el conjunto de los nmeros reales. Postulado 2 Postulado 5 Teorema 1 Teorema 2 Teorema 3 involucin Teorema 3 conmutativo Teorema 4 asociativo Postulado 4 distributivo +z) Teorema 5 morgan Teorema 6 absorcin Ejemplos: x x x x x x + + + + + + x x x x x x = = = = = = x (x + x) . 1 (x + x) (x + x) x + xx x+0 x x + xy = x x . 1 + xy = x x (1 + y) = x x (y + 1) = x x (1) = x x=x a) x + 0 = x a) x + x = 1 a) x + x = x a) x + 1 = 1 (x) = x a) x + y = y + x a) x + (y + z) = (x + y) +z a) x (y + z) = xy +xz a) ( x + y) = x y a) x + xy = x b) x . 1 = x b) x . x = 0 b) x . x = x b) x . 0 = 0 b) xy = yx b) x (yz) = (xy) z b) x + yz = (x + y)(x b) (xy) = x + y b) x (x + y) = x

Las variables booleanas pueden tomar varios valores de 1 0. Una funcin booleana es una expresin formada por variables binarias. Ejemplo: F1 = xyz Para F1 considerar que es igual a 1 si: x = 1; y = 1 ; z = 1; de otra manera F1 = 0.

Por lo tanto tendremos que una funcin booleana tambin puede representarse en una tabla de verdad. Para representar una funcin booleana en una tabla de verdad se necesita una lsit de 2ncombinaciones de 1 y 0 de las n variables binarias, y una columna que muestra combinaciones para las cuales f es igual a 1 0. x 0 0 0 0 1 1 1 1 yz 00 01 10 11 00 01 10 11 F1 0 0 1 1 1 0 1 0 F2 0 1 0 1 0 0 1 1 F3 1 0 0 1 0 1 1 0 F4 0 0 0 1 1 1 1 1

F1 = xyz + xyz + xyz + xyz = xy (z+z) + xz (y+y) = xy + xz F2 = xyz + xyz + xyz + xyz F3 = xyz + xyz + xyz + xyz F4 = xyz + xyz + xyz + xyz + xyz = xy (z+z) + xy (z+z) + xyz = xy + xy + xyz = x (y+y) + xyz = x + xyz = xz (y+y) + xy (z+z) = xz + xy

4.6.3 Funciones lgicas.

Manipulacin algebraica Cuando una funcin se incrementa con compuertas lgicas, cada literal en la funcin denota una entrada a una compuerta. 1. Cada literal denota la entrada a una compuerta. 2. Cada termino se implanta con una compuerta. Por el momento nos limitaremos a la minimizacin por literales. Por lo cual debe quedar muy claro que en la manipulacin algebraica no hay reglas especificas a seguir a que garanticen la respuesta final. Ejemplo: Reducir las siguientes funciones booleanas. 1. x (x+y) = xx + xy = xy 2. xyz + xyz + xy = xz (y+y) + xy = xz + xy 3. x + xy = (x+x)(x+y) = x+y Complemento de una funcin. El complemento de una funcin F es F obteniendose por el intercambio de 1s y 0s y de 0s y 1s. Ejemplo: (A+B+C) = (A+X) para X = B+C A . X ? A . (B+C) ? A . B .C (A+B+C+D+E+F+..I) (A.B.C.D.E.F.I) La forma generalizada de DMorgan enuncia que el complemento de una funcin se obtiene del intercambio de los operadores AND y OR y complementando cada literal. F1 = (xyz + xyz) = (x+y+z . x+y+z) F2 = ? x (yz+yz)? = x + ? x (y+z).(y+z)? Otra forma ms simple para derivar el complemento de una funcin es tomar el dual de la funcin y complementar cada literal. Hay que recordar que el cual de una funcin se obtiene por el intercambio de los operadores AND y OR y los 1s y los 0s. Ejemplo: F1 = xyz + xyz el dual: F1 = (x+y+z) . (x+y+z)

Las variables pueden ser normales (x) complemento (x). Cuando tenemos un conjunto de n variables nosotros podemos formar 2n miniterminos de acuerdo a la siguiente tabla: Para n=3 2n-1 combinaciones iniciando a partir de cero.

Cada minitrmino lo obtenemos de un trmino AND de las n variables y complementado cada variable si el nmero binario que representa es un 0 y no complementando si es un 1. Cada minitermino se representa por mj donde j representa el equivalente decimal del nmero binario del minitermino de la misma forma podemos tener los maxiterminos con las n variables formando un trmino OR para cada maxitermino. En estas se hace la consideracin de que cada variable no complementada corresponde al bit 0 y complementada al bit 1.

F1= xyz + xyz + xyz = m1+m4+m7 F2= xyz + xyz + xyz + xyz = m3+m5+m6+m7 F1= xyz + xyz + xyz + xyz + xyz (F1) = (x+y+z) . (x+y+z) . (x+y+z) . (x+y+z) . (x+y+z) = M0 . M2 . M3 . M5 . M6

El complemento de una funcin booleana lo podemos obtener al formar miniterminos para cada combinacin que produce un cero en la funcin y aplicando el operador OR a esos trminos. Las funciones booleanas expresadas como una suma de miniterminos o productos de maxiterminos se dice que esta en forma cannica. Simplificacion de Funciones Suma de miniterminos. Como sabemos cualquier funcin booleana puede expresarse como una suma de miniterminos. La suma de estos elementos que son los que definen una funcin booleana son aquellos que dan los 1s de la funcin en una tabla de verdad. Algunas veces es conveniente expresar la funcin booleana en la forma de suma de miniterminos. Si no puede hacerse en esta forma entonces puede realizarse primero por la expansin de la expresin en una suma de los trminos AND. Despus cada trmino se inspecciona para ver si contiene todas las variables, si se han perdido una o ms variables, se aplica el operador AND con una expresin x+x en donde x es una de las variables perdidas. Ejemplo: Expresar la funcin F = A+BC en una suma de miniterminos. F= A+BC F(A,B,C) A= A(B+B) = AB+AB = AB(C+C) + AB(C+C) = ABC + ABC + ABC +ABC BC = BC (A+A) = ABC + ABC F = ABC+ABC+ABC+ABC+ABC+ABC F = ABC+ABC +ABC+ABC+ABC F = m1+ m4+m5+ m6+ m7 F(A,B,C)=SUM(1,4,5,6,7) La SUMatoria representa al operador OR que opera en los trminos y nmeros siguientes son los minitrminos de la funcin. Las letras entre parntesis que siguen a F forman una lista de las variables en el orden tomado cuando el minitrmino se convierte en un trmino AND.

Producto de los maxitrminos. Para expresar una funcin booleana como un producto de maxitrminos, primero debe llevarse a una forma de trminos OR. Esto es posible al uso de la ley distributiva; esto es si x+yz = (x+y) (x+z); para cualquier variable perdida x en cada trmino se opera a OR con xx. Ejemplo: F = (x+y) (x+z) (y+z) (x+y) = x+y+zz = (x+y+z) (x+y+z) (x+z) = x+z+yy = (x+y+z) (x+y+z) (y+z) = y+z+xx = (x+y+z) (x+y+z) F = (x+y+z) (x+y+z) (x+y+z) (x+y+z) (x+y+z) (x+y+z) F = (x+y+z) (x+y+z) (x+y+z) (x+y+z) F = (x+y+z) (x+y+z) (x+y+z) (x+y+z) M0 M2 M4 M5 F(x,y,z) = PI(0,2,4,5) El operador PI denota la operacin AND de maxitrminos; y los nmeros son los maxitrminos de la funcin. Conversin entre formas cannicas. El complemento de una funcin expresada como suma de minitrminos es igual a la suma de los minitrminos perdidos de la funcin original. Ejemplo: F(A,B,C) = SUM(1,4,5,6,7) F(A,B,C) = SUM(0,2,3) = m0+m2+m3 Si obtenemos el complemento de F porque el teorema de DMorgan se obtiene F en una forma diferente. (F) = (m0+m2+m3) = m0.m2.m3 = M0 . M2 . M3 = PI(0,2,3) = (x+y+z) . (x+y+z) . (x+y+z) F = AD+BD+BD AD = AD(B+B) = ABD+ABD = ABD(C+C) = ABCD+ABCD

= ABD(C+C) = ABCD+ABCD BD = BD(A+A) = ABD+ABD = ABD(C+C) = ABCD+ABCD = ABD(C+C) = ABCD+ABCD BD = BD(A+A) = ABD+ABD = ABD(C+C) = ABCD+ABCD = ABD(C+C) = ABCD+ABCD F = ABCD+ABCD+ABCD+ABCD+ABCD+ABCD+ABCD+ABCD

4.6.4 Aplicaciones.