Vous êtes sur la page 1sur 44

INTRODUCCIÓN A LA MATEMÁTICA DISCRETA

Carlos Fernando Arenas


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.

Vous aimerez peut-être aussi