Ingeniería de Sistemas Matemáticas discretas 2019-02 Agenda 1. Ejercicio preliminar 2. Introducción y antecedentes de la matemática discreta 3. Breve introducción a los sistemas de representación 4. Sistemas formales 5. Sistemas lógicos Ejercicio preliminar Ejercicio preliminar • Defina un nuevo lenguaje basado únicamente en emojis (Disponibles en WhatsApp) que permitan expresar la siguiente frase: • “ Esta tarde veámonos en la cafeteria para realizar la tarea. A que hora nos reunimos?” • Nota: Solo puede usar un máximo de 10 emojis para el ejercicio • Tiempo: 5 minutos Ejercicio preliminar (2) • Defina un nuevo lenguaje basado únicamente en emojis (Disponibles en WhatsApp) que permitan expresar la siguiente frase: • “ Voy al almacén de informática a comprar el doble de memoria RAM, una fuente de poder y una tarjeta de video para mi portátil” • Nota: Solo puede usar un máximo de 10 emojis para el ejercicio • Tiempo: 5 minutos Introducción y antecedentes de la matemática discreta ¿Qué es la matemática discreta? • La matemática discreta es una rama de las matemáticas que trata de las estructuras finitas y numerables, lo discreto es lo finito por lo que presenta el aspecto de los números naturales, dándole fundamentos matemáticos para la ciencia de la computación en donde la información en los ordenadores se manipula en forma discreta (palabras formadas por ceros y uno). • La matemática discreta es una disciplina que unifica diversas áreas de las matemáticas (lógica, combinatoria, probabilidad, aritmética y grafos, entre otras) y sus conceptos aparecen, con frecuencia, en muchas ramas de las matemáticas y de otras disciplinas. La matemática discreta y su relación con la computación • La matemática discreta es el ámbito de las matemáticas que se relaciona más de cerca con las computadoras, pues en éstas la información se almacena y se manipula en forma discreta (palabras formadas por ceros y unos), se necesita contar objetos (unidades de memoria, unidades de tiempo), estudiar relaciones entre conjuntos finitos (búsquedas en bases de datos) y analizar procesos que incluyan un número finito de pasos (algoritmos). • Entonces los conceptos y notaciones de la matemática discreta son útiles para estudiar y expresar objetos o problemas en algoritmos y lenguaje de programación. Aplicaciones modernas de la matemática discreta • Criptografía (Algoritmos de Hashing, lógica booleana para ciframiento) • Bases de datos relacionales (Conjuntos de datos) • Logística (Teoría de Grafos) • Verificación Automática de Circuitos Digitales (Lógica booleana) • Algoritmos (Lógica booleana) • Representación de Conocimiento • Razonamiento Automático • Inferencia Probabilística • Prueba Automática de Teoremas • Leyes para Mundos Virtuales • Computación (Sistema binario) • … Antecedentes modernos de la matemática discreta • Leibniz (Sistema algebraico para el razonamiento deductivo) • Boole (Algebra de Boole, aritmética computacional moderna) • De Morgan (Leyes de De Morgan, Reglas de inferencia) • Turing (Padre de la computación moderna) • Gödel (Sistema axiomático) Alan Turing (1912-1954) Breve introducción a los sistemas de representación Sistemas de representación • Un sistema es una realidad en la que ciertos elementos se agrupan por alguna razón que depende de un observador. • Cuando se trata de entender una realidad, se puede experimentar directamente para descubrir cómo se interactúa con ella. • Muchas acciones culturales, como la lengua materna, caminar, nadar, etc., son aprendidas y entendidas así. • Sin embargo, cuando se pretende entender una realidad, de manera que se pueda explicar y razonar sobre ella, es necesario establecer un lenguaje que permita denotar sus objetos y sus eventuales cambios. Sistemas de representación(2) • Al hablar de un sistema de manera coloquial o informal se puede caer en equivocaciones debidas a una mala comprensión de lo que constituye el sistema y de su dinamismo. • Para evitar esas eventuales fallas de comprensión o de uso de los sistemas se requiere un tratamiento formal (donde la forma importa), con lo cual se determina con claridad qué hace parte del sistema y qué no, y se entiende claramente cómo cambia lo que puede cambiar. • Las matemáticas pueden considerarse como un lenguaje de descripción y de discusión para hablar sobre sistemas. De hecho, las matemáticas sirven para definir sistemas formales. Se verá que un sistema formal no es otra cosa que un conjunto de elementos simbólicos que pueden manipularse de manera adecuada de suerte que reflejen una realidad deseada. Tipos de sistemas de representación • Informales • Formales • Lógicos Sistemas Formales Sistemas formales • Tras de un sistema formal hay, siempre, una realidad que se modela. La pretensión es que el formalismo se comporte a imagen y semejanza de la realidad modelada. • Una manera rápida de explicar el concepto de sistema formal es mediante la "ecuación" [Woo1988] Sistema formal = Lenguaje formal + Aparato deductivo • Donde: • Lenguaje formal: Con el que se denotan los elementos de la realidad modelada • Aparato deductivo: Sirve para establecer elementos de la realidad que tienen alguna cualidad interesante (v.gr., valor numérico, ser o no verdaderos, etc.). Lenguaje formal • Un lenguaje formal se puede establecer al definir dos componentes: • Un alfabeto, que especifica qué símbolos se utilizan en el lenguaje • Una sintaxis¸ que indica cómo los símbolos pueden juntarse para constituir elementos del lenguaje. Lenguaje formal • Un lenguaje formal se puede establecer al definir dos componentes: • Un alfabeto, que especifica qué símbolos se utilizan en el lenguaje • Una sintaxis¸ que indica cómo los símbolos pueden juntarse para constituir elementos del lenguaje. Lenguaje formal – Ejemplo Alfabeto • Para expresar notas musicales: {Do,Re,Mi,Fa,Sol,La,Si,#,b} • Para representar cartas de una baraja inglesa: {♣,♠,♥,♦,A,2,3,4,5,6,7,8,9,10,J,Q,K} Lenguaje formal – Ejemplo Alfabeto • Para expresar notas musicales: {Do,Re,Mi,Fa,Sol,La,Si,#,b} • Para representar cartas de una baraja inglesa: {♣,♠,♥,♦,A,2,3,4,5,6,7,8,9,10,J,Q,K} • Para representar los elementos de un Ajedrez: {Peón blanco, Torre blanca, Caballo blanco, Alfil blanco, Reina blanca, Rey blanco, Peón negro, Torre negra, Caballo negro, Alfil negro, Reina negra, Rey negro, A, B, C, D, E, F, G, 1, 2, 3, 4, 5, 6, 7, 8,x,#} Lenguaje formal – Fórmulas • Una fórmula o palabra es una secuencia de 0 o más símbolos del alfabeto. • El conjunto de todas las palabras posibles del alfabeto se denomina A*. • La cadena vacía de símbolos se representa con el símbolo ε. • Algunas fórmulas o palabras se consideran bien formadas. Éstas son las que satisfacen las reglas establecidas por la sintaxis. • Dicho de otro modo, la sintaxis establece qué palabras están bien formadas y, de paso, se entiende que el lenguaje está constituido, precisamente, por las fórmulas. Lenguaje formal – Ejemplo de fórmulas • Considérese el siguiente alfabeto para los números reales: {0,1,2,3,4,5,6,7,8,9,10,.} • Identifique cual de los casos anteriores corresponde a una sintaxis mal formada: • 0 • 0.1 • 1234,94 • 6.28 • 12.3.4 Lenguaje formal – Ejemplo de un lenguaje sencillo • Considérese el lenguaje L, que usa el alfabeto A = {x,y}, cuya sintaxis expresada en lenguaje natural está dada por la siguiente regla: • "una fórmula es cualquier cadena finita de 0 o más símbolos x, seguidos por uno a tres símbolos y, o una cadena de uno o más símbolos x". • Las siguientes palabras están en el lenguaje L: • y • xy • xyyy • xxxxxxxxxxxxx • Las siguientes palabras no están en L: • xyyyyy • xyxy • xxxxy Lenguaje formal – Gramática • La gramática es un formalismo para, dado un alfabeto y unas reglas de construcción, precisar qué palabras que se construyan con las letras del alfabeto se consideran parte del lenguaje. • Una posibilidad de hacer esto es mediante las llamadas gramáticas BNF (Backus-Naur Form). Lenguaje formal – Gramática BNF • Una gramática BNF para L es una cuádrupla G=(A,N,Σ,P), donde • A es el alfabeto del lenguaje L. Se dice que éstos son los símbolos terminales. • N es un alfabeto de símbolos auxiliares, diferentes de los de A. Se dice que éstos son los símbolos no terminales. • Σ es un elemento distinguido dentro de N. Se llama el símbolo inicial. • P es un conjunto de producciones. • V = A∪N es el alfabeto que reúne los símbolos terminales con los no terminales. • Una producción es una regla sintáctica de la forma α → β donde α, β son palabras en V*, pero α no es una palabra en A • Una fórmula (fórmula bien formada, fbf), para una gramática BNF, es una palabra constituida por solo símbolos terminales y derivable del símbolo inicial usando un número finito de producciones. Para denotar las producciones de una manera estructurada se usan notaciones abreviadas que usan al lado derecho expresiones formadas por palabras separadas por el carácter |: α → β1 | β2 | … | βm Lenguaje formal – Extensiones de la gramática BNF para denotar reglas • ε es la palabra vacía. • Se usan paréntesis simples para agrupar expresiones. • Elementos opcionales son denotados entre paréntesis cuadrados. Por ejemplo: α → β[γ] es una representación abreviada de las reglas α → β y α → βγ. • Elementos repetidos n veces son denotados con un exponente que indica el número de repeticiones. α → γn Por ejemplo, α → (β|δ)2 es una representación abreviada de la regla α → (β|δ)(β|δ) • Elementos repetidos 0 o más veces son denotados con un *. Así, α → γ* es una representación abreviada equivalente a la de las reglas α → ε α → γα • Elementos repetidos 1 o más veces son denotados con un +. Así, α → γ+ es una representación abreviada equivalente a la de las reglas α → γ α → γα Lenguaje formal – Ejemplos de reglas bajo la gramática BNF • El lenguaje 〈db〉 denota los dígitos binarios: 〈db〉 → 0|1 • El lenguaje 〈digito〉 denota los dígitos decimales: 〈digito〉 → 0|1|2|3|4|5|6|7|8|9 Nótese que también pudo haberse definido: 〈digito〉 → 〈db〉|2|3|4|5|6|7|8|9 • El siguiente lenguaje define cadenas de 4 dígitos decimales: 〈4dig〉 → 〈digito〉〈digito〉〈digito〉〈digito〉 Y se habría podido definir, de manera equivalente: 〈4dig〉 → 〈digito〉4 • El siguiente lenguaje denota números reales no negativos, expresados en notación decimal: 〈real no_neg〉 → 〈entero sin signo〉 | 〈fraccion decimal〉 |〈entero sin signo〉〈fraccion decimal〉 〈fraccion decimal〉 → .〈entero sin signo〉 〈entero sin signo〉 → 〈digito〉+ Lenguaje formal – Semántica • La semántica permite darle significado a las palabras de un lenguaje. • En los ejemplos mostrados es claro que los lenguajes que se construyen para representar números pueden significar, de manera natural, los números que culturalmente se leen con ellos. Así, 1 debería significar el número "uno", 2.3 el decimal "dos coma tres", etc. • Sin embargo, puede no ser claro lo que significan las representaciones bien formadas de notas musicales o de cartas de la baraja. • Una semántica para un lenguaje es una asignación que hace corresponder objetos de la realidad modelada con palabras del lenguaje. • Todo objeto de la realidad, que fuera motivo de interés por parte de quien la observa, debería tener una palabra que lo representara; de lo contrario, el lenguaje no sería suficientemente expresivo. • Es normal que la semántica se explique recursivamente, porque las palabras de los lenguajes se definen por este método. Lenguaje formal – Ejemplos de semántica • El lenguaje L del ejemplo de lenguaje sencillo (slide 23) se podría expresar con la siguiente gramática • 〈L〉 → x*y | x*yy | x*yyy | x+ • Ahora, el lenguaje L podría interpretarse con I, una asignación de valores numéricos, de la siguiente forma: • x denota el número 3 • y denota el número 2 • la yuxtaposición de un símbolo al lado de otro denota la suma de su interpretación. • Así, las fórmulas del ejemplo se interpretan como: • I(y) = 2 • I(xy) = 5 • I(xyyy) = 9 • I(xxxxxxxxxxxxx) = 39. Lenguaje formal – Ejemplos de semántica (2) • El lenguaje L para los números binarios se expresa a partir de la siguiente semántica : • B(0) = 0 • B(1) = 1 • B(αd) = 2*B(α) + B(d) • El número binario tiene como significado el valor entero que se le asigna usualmente. Por ejemplo: • B(1001) = 2*B(100) + B(1) • B(1001) = 2*(2*B(10) + B (0)) + B(1) • B(1001) = 2*(2*(2*B(1) + B(0)) + B (0)) + B(1) • B(1001) = 2*(2*(2*1 + 0) + 0) + 1 • B(1001) = 9. Aparato deductivo • Un sistema formal puede modelar una realidad, en cierto sentido, estática, como en los ejemplos de sistemas numéricos de las secciones anteriores. • De esta manera se puede pensar en que el sistema tiene un lenguaje para denotar objetos de la realidad. Los objetos denotados por un lenguaje formal pueden, a su vez, resultar interesantes por tener alguna cualidad que dependa de la realidad. • El interés por ciertas fórmulas se puede establecer con mecanismos de transformación similares a los usados para definir los lenguajes, aunque algo más elaborados que una gramática. Elementos del aparato deductivo • En este se definen un conjunto básico de fórmulas relacionadas con el contexto al que aplica, que se llaman axiomas, y unas reglas de inferencia, que permiten definir como interesantes otras fórmulas a partir de fórmulas interesantes que satisfagan ciertas condiciones. • Los axiomas y las reglas constituyen un aparato o cálculo deductivo, que se usa para inferir, derivar o deducir (estos verbos se utilizan indistintamente) fórmulas 'interesantes' a partir de unas que ya lo sean. • La deducción, entendida como el uso de un aparato deductivo, es un proceso recursivo que sirve para develar fórmulas interesantes. El nombre técnico para algo interesante es teorema. Un teorema es un axioma o se deriva de otros teoremas mediante reglas de inferencia Sistemas Lógicos Sistemas lógicos • Modelan realidades en las que hay afirmaciones, y éstas pueden ser ciertas o falsas. • Los axiomas de un sistema lógico son fórmulas que representan afirmaciones que se consideran verdaderas (verdades de facto). • Las reglas de inferencia constituyen un aparato deductivo que permite explicar que ciertas fórmulas son ciertas cuando algunas otras lo son. • Un sistema lógico clásico maneja dos valores de verdad posibles: verdadero y falso. Es usual incluir, como parte del lenguaje, dos símbolos que actúan como constantes, true y false y que, al momento de definir su semántica se entienden como fórmulas que son verdadera y falsa, respectivamente. • También se incluyen símbolos como =, ∧, ∨, ⇒, ⇐, ≡, ¬, …, para construir fórmulas que representan afirmaciones de diferentes formas (igualdad, conjunción, disyunción, implicación, consecuencia, equivalencia, negación, ...). ¿Qué se considera verdad en los sistemas lógicos? • En términos de informática, la verdad tiene que ver más con un enfoque matemático o en términos de sistemas formales que manejan el concepto de verdad o falsedad. • El lenguaje formal que el sistema lógico maneje puede tener más o menos expresividad (y entonces, semántica más o menos complicada) y la determinación de la verdad de una fórmula específica puede ser también más o menos complicada por esta razón. • Una fórmula puede ser verdadera en toda realidad (como lo son esos axiomas para las lógicas más sencillas) o verdadera en unos casos pero no en otros. • La verdad debe establecerse siempre con respecto a la realidad que se pretende modelar, pero una de las cosas deseables con los sistemas lógicos es que éstos sean herramientas operacionales para el cálculo de la verdad de las fórmulas Axiomas en sistemas lógicos • Es una proposición primitiva que se admite como cierta. En la construcción de una teoría axiomática se ha de partir de un conjunto de axiomas, escogidos de tal forma que dicho conjunto ha de ser: compatible, suficiente, independiente. • Compatibilidad: Dos axiomas no pueden formular en ellos, ni producir en sus resultados derivados, relaciones contradictorias. • Suficiencia: Toda proposición verdadera ha de ser deducible dentro del sistema. • Independencia: Ningún axioma ha de poderse deducir de otros. • Estableciendo el sistema de axiomas (que por cierto, no tienen porque ser "evidentes"), se comienza a construir la teoría enunciando y demostrando los teoremas. Reglas de inferencia en sistemas lógicos • Cualquier razonamiento deductivo que hagamos tomará la forma de un condicional. • Cada vez que empleemos reglas válidas para construir pruebas, observaremos que existe una conexión lógica entre las hipótesis y la conclusión, de tal manera que estaremos obligados a aceptar la conclusión, cuando hayamos aceptado las hipótesis. • Esto quiere decir que una inferencia requiere una conexión lógica entre hipótesis y conclusión la cual se expresa como "hipótesis Þ conclusión". • Para garantizar que nuestras conclusiones son válidas en la construcción de pruebas, emplearemos leyes de la lógica, las cuales reciben el nombre de reglas de inferencia o también reglas de prueba. • Son reglas que nos sirven para probar que a partir de unas premisas dadas es posible hacer la demostración para una conclusión específica. Su objetivo es abreviar las demostraciones. El método axiomático • La forma en que los sistemas lógicos modelan la verdad y las deducciones se conoce como el método axiomático de hacer lógica. • Se entiende que la verdad de las proposiciones es deducida a partir de verdades asumidas como tales y reglas de inferencia. Requisitos que debe cumplir un axioma • Un axioma no se demuestra, pero sí se justifica, por ejemplo se argumenta para afirmar que es una verdad universal en la realidad que interesa. • Si se logra evidenciar que una aserción no es verdad en cierto caso, ésta no puede ser un axioma. Al definir axiomas hay dos problemas posibles: • Axiomas falsos: Contra esto, tratar de asegurarse -intuitivamente- de que lo que se pretende que sea un axioma se satisface en varios casos. Esto no basta muchas veces, pero es mejor que nada. • Axiomas que son teoremas demostrables: En realidad, esto no causa problemas en cuanto a hacer las cosas correctamente ("modelar bien"). Pero un sistema formal será más fácil de entender si tiene menos axiomas porque, al fin y al cabo, éstos se aceptan con "actos de fe". Mejor tener menos axiomas pero, por otro lado, es bueno tener sentido común para, por razones prácticas, decidir si algo se debe demostrar o no. Ejemplo de definiciones de axioma no válido • Suponga que los siguientes son los axiomas definidas para su lenguaje: • Ax 1: x=x • Ax 2: x=y ⇒ y=x • Ax 3: x+x=x • Considere que ocurre en los siguientes casos: • Caso 1: • x=0 • Y=0 • Caso 2: • x=3 • y=3 Requisitos que debe cumplir una regla de inferencia • Las reglas de inferencia abstraen leyes de deducción que son universalmente correctas en la realidad modelada. • La corrección de una regla corresponde al hecho de que, siempre que pueda aplicarse sobre hipótesis que corresponden a teoremas, da lugar a un resultado que también debería ser un teorema. • En el caso de sistemas lógicos, si una regla de inferencia se aplica a fórmulas verdaderas, la conclusión debe ser verdadera. • Como los axiomas, si una pretendida regla no es correcta en un caso, no se puede asumir como parte del sistema de inferencia, porque esto dará lugar a un modelaje errado de la realidad y, usualmente incoherente o absurdo. Pero, en general, no se puede demostrar la corrección de las reglas de inferencia y, al definirlas, pueden darse problemas equivalentes a los ya mencionados para los axiomas. Taller • A partir de lo visto en clase desarrolle los siguientes puntos: 1. Dado el alfabeto A={a,b,c}, exprese en lenguaje natural una descripción sintáctica posible, de tal forma que abc, abcab, bcac, bbabbc sean formulas bien formadas. 2. Sea L el lenguaje de las palabras que comienzan con el símbolo a y terminan con el símbolo b, en el alfabeto A = {a,b,c}. Diseñe una gramática BNF que describa a L. 3. Considérese el lenguaje L, que usa el alfabeto A = {0,1,2,3,4,5,6,7,8,9}, cuya sintaxis expresada en lenguaje natural está dada por la siguiente regla: “Una fórmula corresponde al colocar consecutivamente la suma del primer elemento del alfabeto con respecto al que se encuentra en la ultima posición separados con guión medio con la suma del segundo elemento del alfabeto con respecto al penultimo, y así sucesivamente hasta que no haya dos elementos". Defina las palabras que se puede generar a partir de la formula anteriormente indicada. Taller (2) • A partir de lo visto en clase desarrolle los siguientes puntos: 4. A partir de los siguientes casos indique cuales son las proposiciones y los axiomas que hacen parte de los siguientes enunciados: a) Carlos aprobó el examen de matemáticas y ocupó el primer puesto en biología. Si Felipe no aprobó el examen de matemáticas entonces Carlos no ocupó el primer puesto en biología. Si Felipe aprobó el examen de matemáticas entonces aprobó el año. b) Si Nacional ganó el campeonato, entonces Junior fue el segundo o América fue el segundo. Si Junior fue el segundo, entonces Nacional no ganó el campeonato. Si Tolima fue el segundo, entonces América no fue el segundo. Referencias bibliográficas • Grossman J.W. discrete Mathematics: an introduction to concepts, methods and applications. Macmillan Publishing Company (1990). • Johnsonbaugh, Richard. Matemáticas discretas. Prentice-Hall. Sexta edición. • Matousek, jiri. Invitación a la matemática discreta. Serie Springer-Lehrbuch. 2008. • Micha, Elias. Matemáticas discretas. LIMUSA-CONALEP. Primera edición. • Lipschutz, Seymour. 2000 problemas resueltos de matemáticas discretas. Serie Schaum.2004. • Rosen, Kenneth. Discrete mathematics and its applications. McGrawHill Collage, 2006 • Veerarajan, T. Matemáticas discretas: Con teoría de gráficas y combinatoria. McGrawHill, 2008.