Matemáticas Computacionales y Teoría de la Computación Ing. Cecilia E. Jaramillo Jaramillo, PhD. Quito, Noviembre 2023 Matemáticas Computacionales y Teoría de la Computación Normas - Clase Presencial ● Ser puntuales. Las clases se dictarán según el horario establecido. ● El uso de teléfono celular durante el periodo de clases (2 horas) no esta permitido (se retirará en caso necesario) salvo casos excepcionales. La norma aplica a maestra y alumnos. Los contenidos que se revisarán requieren de toda su atención. ● Tareas y trabajos tienen fecha tope (se especifica con anterioridad). Si una tarea es enviada fuera de plazo se recibe pero se calificará sobre 8 en caso de que tenga menos de 24 horas de retraso. Si pasa de ese plazo se calificará sobre 7. ● Las evaluaciones tienen un tiempo limitado. La fecha de las mismas se socializa con anterioridad con excepción de evaluaciones flash que pueden ser aplicadas sin previo aviso. ● Se solicita que el alumno colabore mostrando el máximo de responsabilidad y honestidad durante la realización de todas las actividades planificadas. Tanto tareas como evaluaciones, trabajos individuales y en grupo, así como exposiciones tendrán calificación y se tomarán en cuenta en el cómputo de sus notas parciales y finales. ● Traer calculadora siempre (no sirve la calculadora del celular). Capítulo 1. Conjuntos y Lógica Cecilia E. Jaramillo Jaramillo Matemáticas Computacionales y Teoría de la Computación Normas - Clase Virtual ● Ser puntuales. Las clases se dictarán según el horario establecido. ● Asegurarse de disponer de un espacio adecuado y alejado de ruidos y distracciones. ● El uso de teléfono celular durante el periodo de clases (2 horas) no es aconsejable. Los contenidos que se revisarán requieren de toda su atención. ● Tareas y trabajos tienen fecha tope (se especifica con anterioridad). Si una tarea es enviada fuera de plazo se recibe pero se calificará sobre 8 en caso de que tenga menos de 24 horas de retraso. Si pasa de ese plazo se calificará sobre 7. ● Las evaluaciones tienen un tiempo limitado. La fecha de las mismas se socializa con anterioridad con excepción de evaluaciones flash que pueden ser aplicadas sin previo aviso. ● Si el alumno no puede asistir a la sesión virtual tiene la obligación de revisar la grabación de la clase y desarrollar las actividades en clase que se hayan desarrollado. Debe subir su trabajo hasta las 23h59 del mismo día. ● Se solicita que el alumno colabore mostrando el máximo de responsabilidad y honestidad durante la realización de todas las actividades planificadas. Tanto tareas como evaluaciones, trabajos individuales y en grupo, así como exposiciones tendrán calificación y se tomarán en cuenta en el cómputo de sus notas parciales y finales. ● Disponer de calculadora siempre (no la calculadora del celular). Capítulo 1. Conjuntos y Lógica Cecilia E. Jaramillo Jaramillo Objetivos de la Asignatura ● Conocer los conceptos y estructuras de matemáticas discretas utilizados en sistemas computacionales. ● Conceptualizar los fundamentos teóricos de la ciencia de la computación. ● Aplicar el razonamiento lógico - matemático en la solución de problemas prácticos. ● Usar las estructuras discretas para el diseño de soluciones a problemas computacionales. ● Fomentar la solidaridad, la responsabilidad y la ética profesional. Capítulo 1. Conjuntos y Lógica Cecilia E. Jaramillo Jaramillo Capítulo I - Conjuntos y Lógica Objetivos: ● ● ● ● Conocer el sistema de numeración binario. Ejecutar operaciones básicas usando el sistema de numeración de base 2. Entender la importancia del sistema binario para el mundo computacional. Metodología: ● ● ● ● Repaso de conceptos previos Revisión de definiciones y fórmulas Explicación de caso concreto Ejercicios Capítulo 1. Conjuntos y Lógica Cecilia E. Jaramillo Jaramillo Sílabo CAPÍTULO 1. Conjuntos y Lógica 1.1. Sistema de numeración y aritmética binaria 1.2. Conjuntos 1.3. Proposiciones 1.4. Reglas de inferencia. 1.5. Cuantificadores. CAPÍTULO 2. Funciones, Secuencias y Relaciones 2.1. Funciones. 2.2. Strings y Secuencias. 2.3. Relaciones. CAPÍTULO 3. Métodos de conteo 3.1. Principios básicos de conteo. 3.2. Permutaciones. 3.3. Combinaciones. 3.4. Permutaciones y combinaciones generalizadas. 3.5. Coeficientes binomiales y el principio del palomar. 3.6. Principio de la inducción matemática. Capítulo 1. Conjuntos y Lógica Cecilia E. Jaramillo Jaramillo Sílabo CAPÍTULO 4. Grafos y Árboles 4.1. Conceptos básicos sobre grafos. 4.2. Ciclos de Hamilton y el problema del vendedor 4.3. Tipos de grafos. 4.4. El camino más corto de un grafo. 4.5. Conceptos básicos sobre árboles binarios y de expansión. 4.6. Isomorfismo de grafos y árboles. CAPÍTULO 5. Autómatas finitos 5.1. Lenguajes formales 5.2. Autómatas finitos determinísticos 5.3. Autómatas finitos no determinísticos 5.4. Conversión NFA-DFA 5.5. Intersección de autómatas finitos 5.6. Autómatas finitos probabilísticos 5.7. Cadenas de Markov Capítulo 1. Conjuntos y Lógica Cecilia E. Jaramillo Jaramillo Sílabo CAPÍTULO 6. Lenguajes regulares 6.1. Lenguajes regulares 6.2. Gramáticas regulares 6.3. Expresiones regulares formales 6.4. Expresiones regulares en lenguaje de programación (PCRE) CAPÍTULO 7. Lenguajes libres de contexto 7.1. Lenguajes libres de contexto 7.2. Autómatas de pila 7.3. Gramáticas libres de contexto 7.4. Lenguajes ambiguos CAPÍTULO 8. Máquinas de Turing 8.1. Introducción a las Máquinas de Turing 8.1. Máquinas de Turing como reconocedores de lenguajes 8.2. Máquinas de Turing como transductores 8.3. Complejidad de tiempo, complejidad de espacio e intractabilidad. 8.4. Introducción a la decibilidad 8.5. Introducción a la reducibilidad Capítulo 1. Conjuntos y Lógica Cecilia E. Jaramillo Jaramillo Sílabo Semanas de trabajo: 16 Forma de evaluación: - Tareas (individuales y grupales) - Lecciones (Al finalizar cada capítulo) - Lecciones flash (A lo largo del semestre. Sin previo aviso) - Evaluación Parcial 1 y Evaluación Parcial 2 - Proyecto Grupal (Uno por semestre) Capítulo 1. Conjuntos y Lógica Cecilia E. Jaramillo Jaramillo Sumario Capítulo I - Conjuntos y Lógica 1.1. Sistema de numeración y aritmética binaria 1.2. Conjuntos 1.3. Proposiciones 1.4. Reglas de inferencia. 1.5. Cuantificadores. Conclusiones Capítulo 1. Conjuntos y Lógica Cecilia E. Jaramillo Jaramillo Sistema de numeración y Aritmética Binaria Conceptos Básicos Sistema de Numeración: Conjunto de símbolos y de normas a través del cual pueden expresarse la cantidad de objetos en un conjunto. Todo sistema de numeración contiene: ● ● Un conjunto determinado y finito de símbolos, Un conjunto determinado y finito de reglas (para combinar los símbolos). Ejemplo: Sistema decimal, sistema octal, sistema hexadecimal, sistema binario. …¿Cómo se llama el sistema de numeración que usamos cotidianamente? Capítulo 1. Conjuntos y Lógica Cecilia E. Jaramillo Jaramillo Sistema de numeración y Aritmética Binaria Conceptos Básicos Sistema de Numeración: Conjunto de símbolos y de normas a través del cual pueden expresarse la cantidad de objetos en un conjunto. Todo sistema de numeración contiene: ● ● Un conjunto determinado y finito de símbolos, Un conjunto determinado y finito de reglas (para combinar los símbolos). Ejemplo: Sistema decimal, sistema octal, sistema hexadecimal, sistema binario. …¿Cómo se llama el sistema de numeración que usamos cotidianamente? ¿De donde proviene? Según historiadores y antropólogos: Capítulo 1. Conjuntos y Lógica Cecilia E. Jaramillo Jaramillo Sistema de numeración y Aritmética Binaria Conceptos Básicos Sistema Decimal: Sistema de numeración posicional que emplea un conjunto de 10 elementos para representar todas las cantidades posibles dentro del conjunto. ● ● Al ser un sistema Posicional, los dígitos adquieren su valor de acuerdo a la posición relativa que ocupan. Esta posición, a su vez, depende en este caso de la base 10. Se trabaja únicamente con 10 símbolos definidos. Para crear números más grandes no se deben crear nuevos símbolos, sino nuevas columnas de símbolos. Ejemplo: Capítulo 1. Conjuntos y Lógica IMPORTANTE: Un error en la posición de una cifra altera el valor total. Cecilia E. Jaramillo Jaramillo Sistema de numeración y Aritmética Binaria Conceptos Básicos Sistema Decimal: Sistema de numeración posicional que emplea un conjunto de 10 elementos para representar todas las cantidades posibles dentro del conjunto. ● ● Al ser un sistema Posicional, los dígitos adquieren su valor de acuerdo a la posición relativa que ocupan. Esta posición, a su vez, depende en este caso de la base 10. Se trabaja únicamente con 10 símbolos definidos. Para crear números más grandes no se deben crear nuevos símbolos, sino nuevas columnas de símbolos. Ejemplo: Capítulo 1. Conjuntos y Lógica IMPORTANTE: Un error en la posición de una cifra altera el valor total. Cecilia E. Jaramillo Jaramillo Sistema de numeración y Aritmética Binaria Conceptos Básicos Sistema Decimal: Sistema de numeración posicional que emplea un conjunto de 10 elementos para representar todas las cantidades posibles dentro del conjunto. ● ● Al ser un sistema Posicional, los dígitos adquieren su valor de acuerdo a la posición relativa que ocupan. Esta posición, a su vez, depende en este caso de la base 10. Se trabaja únicamente con 10 símbolos definidos. Para crear números más grandes no se deben crear nuevos símbolos, sino nuevas columnas de símbolos. Ejemplo: IMPORTANTE: Un error en la posición de una cifra altera el valor total. En un sistema numérico posicional cada dígito tiene un valor absoluto (el valor de la cifra en sí) y un valor relativo (según su posición). Capítulo 1. Conjuntos y Lógica Cecilia E. Jaramillo Jaramillo Sistema de numeración y Aritmética Binaria Sistema Binario Sistema posicional de dos elementos: O y 1. ● Al igual que en el sistema decimal un número binario está compuesto por combinaciones de los símbolos que acepta el sistema (0 , 1). ● Cada símbolo tiene un peso, es decir un valor por la posición que ocupa. ● El valor relativo de cada posición está dado por una potencia de 2. A la numeración Binaria se la denomina "sistema base 2". Ejemplo: Capítulo 1. Conjuntos y Lógica Cecilia E. Jaramillo Jaramillo Sistema de numeración y Aritmética Binaria Sistema Binario Sistema posicional de dos elementos: O y 1. ● Al igual que en el sistema decimal un número binario está compuesto por combinaciones de los símbolos que acepta el sistema (0 , 1). ● Cada símbolo tiene un peso, es decir un valor por la posición que ocupa. ● El valor relativo de cada posición está dado por una potencia de 2. A la numeración Binaria se la denomina "sistema base 2". Ejemplo: Capítulo 1. Conjuntos y Lógica Cecilia E. Jaramillo Jaramillo Sistema de numeración y Aritmética Binaria Sistema Binario ¿Cómo se transforma un número binario a decimal? Ejemplo: Tarea (descrita al final de la presentación): Investigar cómo se transforma de decimal a binario. Desarrollar 3 ejemplos con números de mínimo 3 cifras. Capítulo 1. Conjuntos y Lógica Cecilia E. Jaramillo Jaramillo Sistema de numeración y Aritmética Binaria Sistema Binario ¿Por qué es importante el sistema binario? ● ● ● Para los humanos es natural contar en base 10. Para los computadores la existencia de 10 estados no es natural. Los computadores funcionan con voltajes. Incluso su sistema de almacenamiento se basa en la ausencia o la presencia de un voltaje. Para un computador es óptimo representar los datos con un sistema basado en 2 valores. 1 0 Link de interes: ● Qué es el código binario y para qué sirve: ● ● El sistema binario: https://iesalandalus.es/tyc/t1/4el_sistema_binarioel_lenguage_de_los_ordenadores.html Sistema binario y compuertas lógicas: https://youtu.be/RVGIXfC4Xeg?si=4TkEyIEoARPeQTYD Capítulo 1. Conjuntos y Lógica https://youtu.be/f5Onw5qTOz4 Cecilia E. Jaramillo Jaramillo Sistema de numeración y Aritmética Binaria Aritmética Binaria Suma Binaria La suma binaria tiene cuatro combinaciones posibles: Ejemplo: a) Link de interes: ● Calculadora binaria: https://www.calcuvio.com/conversion-binario-decimal Capítulo 1. Conjuntos y Lógica Cecilia E. Jaramillo Jaramillo Sistema de numeración y Aritmética Binaria Aritmética Binaria Suma Binaria La suma binaria tiene cuatro combinaciones posibles: Ejemplo: a) b) Link de interes: ● Calculadora binaria: https://www.calcuvio.com/conversion-binario-decimal Capítulo 1. Conjuntos y Lógica Cecilia E. Jaramillo Jaramillo Sistema de numeración y Aritmética Binaria Aritmética Binaria Suma Binaria La suma binaria tiene cuatro combinaciones posibles: Ejemplo: a) b) Escribo 0 y acarreo 1 Link de interes: ● Calculadora binaria: https://www.calcuvio.com/conversion-binario-decimal Capítulo 1. Conjuntos y Lógica Cecilia E. Jaramillo Jaramillo Sistema de numeración y Aritmética Binaria Aritmética Binaria Suma Binaria La suma binaria tiene cuatro combinaciones posibles: El 1 del acarreo se coloca en la columna siguiente de la izquierda. Ejemplo: a) b) Escribo 0 y acarreo 1 Link de interes: ● Calculadora binaria: https://www.calcuvio.com/conversion-binario-decimal Capítulo 1. Conjuntos y Lógica Cecilia E. Jaramillo Jaramillo Sistema de numeración y Aritmética Binaria Aritmética Binaria Suma Binaria La suma binaria tiene cuatro combinaciones posibles: IMPORTANTE: Se puede comprobar fácilmente si se transforma el binario a decimal y se realiza la operación indicada. Ejemplo: a) b) Link de interes: ● Calculadora binaria: https://www.calcuvio.com/conversion-binario-decimal Capítulo 1. Conjuntos y Lógica Cecilia E. Jaramillo Jaramillo Sistema de numeración y Aritmética Binaria Aritmética Binaria Suma Binaria - Ejercicios en Clase Sumar: 1. 2. 3. 4. 5. 001101 + 100101 111011 + 110 1011011 + 1011010 111110111 + 111001 10111+11011+10111 Link de interes: ● Calculadora binaria: https://www.calcuvio.com/conversion-binario-decimal Capítulo 1. Conjuntos y Lógica Cecilia E. Jaramillo Jaramillo Sistema de numeración y Aritmética Binaria Aritmética Binaria Resta Binaria Aquí se debe observar con atención el caso especial en el que se resta 0 - 1. Escribo 1 y acarreo 1 Método del Complemento a 2: ● Al sustraendo se le calcula el complemento a 1. ● Al resultado se le calcula el complemento a 2 (Complemento a 1 + 1) ● Al minuendo se le suma el complemento a 2 Capítulo 1. Conjuntos y Lógica Cecilia E. Jaramillo Jaramillo Sistema de numeración y Aritmética Binaria Aritmética Binaria Resta Binaria Aquí se debe observar con atención el caso especial en el que se resta 0 - 1. ¿Por qué 0 - 1 me da 1 con un acarreo de 1? Escribo 1 y acarreo 1 Método del Complemento a 2: ● Al sustraendo se le calcula el complemento a 1. ● Al resultado se le calcula el complemento a 2 (Complemento a 1 + 1) ● Al minuendo se le suma el complemento a 2 Capítulo 1. Conjuntos y Lógica Cecilia E. Jaramillo Jaramillo Sistema de numeración y Aritmética Binaria Aritmética Binaria Resta Binaria Método del Complemento a 2: ● Al sustraendo se le calcula el complemento a 1. ● Al resultado se le calcula el complemento a 2 (Complemento a 1 + 1) ● Al minuendo se le suma el complemento a 2 Ejercicio: De 100111011, restar 011100101 Escribo 1 y acarreo 1 Aplicando Complemento a 2: Bit de desborde. Se desprecia. La respuesta no puede tener más bits que los usados por los operandos Capítulo 1. Conjuntos y Lógica Cecilia E. Jaramillo Jaramillo Sistema de numeración y Aritmética Binaria Aritmética Binaria Resta Binaria - Ejercicios en Clase Restar por el método directo: 1. 2. 3. 1010 - 0101 1100-001 100111011-011100101 Restar por el método de complemento a 2: 1. 100111011-011100101 2. 11011011-00010111 3. 11010001101-1000111101 Link de interes: ● Calculadora binaria: https://www.calcuvio.com/conversion-binario-decimal Capítulo 1. Conjuntos y Lógica Cecilia E. Jaramillo Jaramillo Sistema de numeración y Aritmética Binaria Aritmética Binaria Multiplicación Binaria Los factores sólo pueden ser 0s y 1s: La multiplicación binaria se basa en sumas repetitivas. ● ● ● Capítulo 1. Conjuntos y Lógica Al multiplicar un 1 por las cifras del primer factor se obtendrá siempre el mismo número. Al multiplicar un 0 por las cifras del primer factor se obtendrá siempre una fila de ceros (Se podría omitir). Al final se suman las filas obtenidas y se halla la respuesta final. Cecilia E. Jaramillo Jaramillo Sistema de numeración y Aritmética Binaria Aritmética Binaria Multiplicación Binaria - Ejercicios en Clase Multiplicar y comprobar el resultado transformando a decimal y ejecutando la multiplicación. Se requiere proceso. 1. 2. 3. 101111*1011 101111*1001 1001111*110 Link de interes: ● Calculadora binaria: https://www.calcuvio.com/conversion-binario-decimal Capítulo 1. Conjuntos y Lógica Cecilia E. Jaramillo Jaramillo Sistema de numeración y Aritmética Binaria Aritmética Binaria División Binaria Se procede igual que en la división decimal. En el proceso se necesita aplicar la multiplicación y la resta. ● ● ● ● ● ● Capítulo 1. Conjuntos y Lógica Tenemos dividendo y divisor. Al tener 3 cifras en el divisor (110), tomo 3 del dividendo (101) y comparo. Si no alcanza, tomo una cifra más del dividendo (1010) y procedo. Al dividir las cifras tomadas del dividendo para el divisor, la única posibilidad de división es a 1. Procedo tal y como se haría una división decimal, multiplicando el 1 del cociente por el divisor y escribiendo las cifras bajo el dividendo. Efectúo la resta y bajo la siguiente cifra del dividendo (1). Comparo las cifras actuales del divisor para las del dividendo. Si me alcanza prosigo, sino cero al cociente y bajo la siguiente cifra. Cecilia E. Jaramillo Jaramillo Sistema de numeración y Aritmética Binaria Aritmética Binaria División Binaria - Ejercicios en Clase Dividir y comprobar el resultado transformando a decimal y ejecutando la división. Se requiere proceso. 1. 2. 3. 1110011 para 11011 110111 para 1100 1001011 para 11 Link de interes: ● Calculadora binaria: https://www.calcuvio.com/conversion-binario-decimal Capítulo 1. Conjuntos y Lógica Cecilia E. Jaramillo Jaramillo Sistema de numeración y Aritmética Binaria Conclusiones Importante: División: aplicación de la multiplicación y la resta. ● ● ● ● En un Sistema Posicional los símbolos empleados por el sistema poseen un valor absoluto y un valor relativo. En un Sistema Posicional los símbolos adquieren su valor de acuerdo a la posición relativa que ocupan. Esta posición, a su vez, depende de la base (10, 2, 8). Para un computador es óptimo representar los datos con un sistema basado en 2 valores. El uso de la aritmética binaria permite comprender la base de los procesos computacionales. Capítulo 1. Conjuntos y Lógica Cecilia E. Jaramillo Jaramillo Sistema de numeración y Aritmética Binaria Tarea2 - S1: Fecha de entrega: Lunes 13 de noviembre, 23h59. Modo de entrega: Escanear (en buena calidad) y subir al aula virtual. Si la tarea no es legible se anula directamente. 1) 2) 3) Investigar cómo se transforma de decimal a binario. Desarrollar 3 ejemplos con números de mínimo 3 cifras. Desarrollar los siguientes ejercicios (con proceso): ○ Sumar: 01010111+ 0111101; 1101000 + 1110101 ○ Restar: 10110011101-1110101; 10010110110101-101101010 ○ Multiplicar: 10110101000101*1011; 10100001111011*10011 ○ Dividir: 1101011111 para 1111; 11100 para 110 Plantearse 2 ejercicios de cada una de las operaciones (Suma, resta, Multiplicación y División) y resolverlo tanto en binario como en decimal. Los números en binario deben corresponder a números decimales de al menos 3 cifras. Capítulo 1. Conjuntos y Lógica Cecilia E. Jaramillo Jaramillo Sistema de numeración y Aritmética Binaria Bibliografía PRINCIPAL ● Fortney, J.P. Discrete Mathematics for Computer Science. An Example-Based Introduction. Taylor & Francis Group, 2021. ● Johnsonbaugh, R. Discrete Mathematics. Eighth Edition. PEARSON EDUCACIÓN, 2018. ● Linz, P. An Introduction to Formal Languages and Automata. Quinta edición. Jones & Bartlett Learning. 2012. SECUNDARIA ● Lipschutz, S. y Lars, M. Matemáticas Discretas. McGraw Hill, 2017. ● Espinosa, R. Matemáticas Discretas. Segunda Edición. Alfaomega Grupo Editor, S.A. de C.V., México, 2016. Links de Interés ● Calculadora binaria: https://www.calcuvio.com/conversion-binario-decimal ● ● ● Suma de binarios: https://www.calcuvio.com/suma-binaria Qué es el código binario y para qué sirve: https://youtu.be/f5Onw5qTOz4 Operaciones con números binarios: http://centros.edu.xunta.es/iesmanuelchamosolamas/electricidade/fotos/numeracion.htm Aritmética Binaria: https://lc.fie.umich.mx/~jfelix/LabDigI/Practicas/P2/Lab_Digital_I-2.html Sistemas de numeración y aritmética binaria: http://www.unicauca.edu.co/matematicas/eventos/log&co/MATERIAL/Elementos_Logica/Textos/Biblioteca/Libros/Li bro_019/Sistemas_de_numeracion.htm ● ● Capítulo 1. Conjuntos y Lógica Cecilia E. Jaramillo Jaramillo ¿Preguntas? Gracias por su atención Cecilia E. Jaramillo Jaramillo Email: cejaramilloj@gmail.com cecilia.jaramillo@epn.edu.ec Quito, Noviembre 2023 Sistema de numeración y Aritmética Binaria Complemento a 2 - Bit de Signo En el sistema de Complemento a 2 (C2), el Bit Más Significativo (MSB) se llama “Bit de Signo” : ● 1 => El número es negativo y el resto de bit están en forma complementada ● 0=> El número es positivo y el resto de bits indican su magnitud directamente Ejemplo: MSB 1001110010101000 LSB Byte Bit Binary Digit Ejercicio: Expresar - 5 y + 5 en 1 palabra de 8 bits en el sistema de Complemento a 2. Capítulo 1. Conjuntos y Lógica 38 Cecilia E. Jaramillo Jaramillo Sistema de numeración y Aritmética Binaria Complemento a 2 - Bit de Signo Ejercicio: Expresar - 5 y + 5 en 1 palabra de 8 bits en el sistema de Complemento a 2. 1) Transformando + 5 a binario: 101 ● El número se lee de abajo hacia arriba: ● Como se pide representar con 8 bits tenemos + 510 = 000001012 2) Para representar - 5 calculamos el complemento a 2 de +5: +5 = 00000101 C1 = 11111010 C2 (C1 +1) = 11111011 Rta: + 510 = (00000101)2 - 510 = (11111011)2 en C2 Capítulo 1. Conjuntos y Lógica 39 Cecilia E. Jaramillo Jaramillo