INFORME DEL AVANCE DEL PROYECTO MATEMÁTICA DISCRETA - MA265 GRUPO: 8 “Los dinamitas de la UPC” Tema: Matrices Booleanas (AVIANCA) DOCENTE: Antonio Marcos Medina Martinez SECCIÓN: SS38 INTEGRANTES: ● ● ● ● Ventura Chancafe, Eduardo Renato (U202212645) Huillca Mejía, Alex (U202120679) Porras Delgadillo, Naomy Brisseth (U202217940) Armestar Heredia, Matias Gabriel (U20221A553) Lima - Perú 2023 – 1 1 ÍNDICE 1. Introducción 2. Objetivos 3. Fundamento Teórico 4. Anexo 5. Bibliografía 2 1. Introducción El objetivo de este trabajo es desarrollar un programa que permita comprobar la existencia de vuelos directos o con escala entre ciudades o países, utilizando matrices booleanas. Esta herramienta se basa en la teoría de grafos, en la cual los nodos representan las ciudades o países, y las aristas representan los vuelos entre ellos. La utilización de matrices booleanas para representar grafos es una técnica ampliamente utilizada en la programación, ya que permite representar de forma clara y sencilla las relaciones entre los nodos. En este caso, cada elemento de la matriz representa una posible conexión entre ciudades o países, y su valor booleano indica si existe o no un vuelo directo o con escala entre ellas. Para implementar este programa, se utilizará el lenguaje de programación Python, el cual cuenta con librerías específicas para trabajar con matrices y grafos. Además, se llevará a cabo una explicación detallada del fundamento teórico detrás de las matrices booleanas y la teoría de grafos, con el objetivo de que el lector pueda comprender el funcionamiento del programa de forma clara y concisa. El informe del curso de matemática incluirá una descripción detallada del funcionamiento del programa, así como ejercicios que permitirán al lector profundizar en la teoría detrás de las matrices booleanas y la teoría de grafos. También se incluirán imágenes del código para que el lector pueda visualizar de forma clara cómo se implementa la técnica de las matrices booleanas en la programación del programa. En resumen, este trabajo tiene como objetivo desarrollar un programa que permita comprobar la existencia de vuelos directos o con escala entre ciudades o países utilizando matrices booleanas, y su objetivo principal es brindar al lector una comprensión clara y concisa del funcionamiento y la teoría detrás de esta técnica de programación. 3 2. Objetivo En el presente proyecto se tiene como objetivo desarrollar un programa utilizando relaciones para representar las conexiones entre los diferentes destinos que ofrece la aerolínea Avianca. Al momento de mostrar los diferentes posibles destinos de los vuelos entre Perú, Colombia, Centroamérica y el Caribe de la compañía aérea Avianca se debe tener en cuenta lo siguiente: ● Si hay o no vuelo directo de una ciudad a otra. ● Si hay o no conexión de una ciudad con otra, con una escala, mostrando cuál es esta. ● Si hay o no conexión de una ciudad con otra, con dos escalas, mostrando cuáles son estas. Las localidades las cuales abarca la compañía aérea Avianca, se considerarán a partir de los siguientes gráficos: 4 3.Fundamento teórico Las matemáticas son un elemento fundamental asociado a la programación porque nos permite observar las relaciones entre distintos temas que se aplican al desarrollo de código, dependiendo de la situación y el propósito. Por un lado, el álgebra booleana, ciencia relevante para el desarrollo de nuestro proyecto, se utiliza para representar dos estados o valores de (1) o (0), indicando si el dispositivo está abierto o cerrado, si está abierto es porque conduce, de lo contrario (cerrado) es porque no conduce. Además, este sistema facilita el estudio sistemático del comportamiento de los componentes lógicos. Las variables booleanas forman la base de la programación mediante el uso de un sistema binario representado por los números 1 y 0. ¿Qué es una matriz booleana? Según Spiegato, una matriz booleana en programación de computadoras es una secuencia de valores que solo puede contener los valores de verdadero o falso. Por definición, un booleano solo puede ser verdadero o falso y no puede contener ningún otro valor intermedio. Una matriz es una secuencia de tipos de datos que ocupan posiciones numéricas en un espacio de memoria lineal. Si bien la implementación real de una matriz booleana a menudo se deja en manos del compilador o de las bibliotecas de lenguaje de computadora, se realiza de manera más eficiente utilizando bits en lugar de bytes o palabras completas. Hay varios usos para una matriz booleana, incluido el seguimiento de los indicadores de propiedad y la alineación de configuraciones para interfaces de hardware físico. Por ello, es importante desarrollar la matriz de relaciones entre los requerimientos del consumidor y las características de control del producto final, ya que existen diferentes niveles de correlación entre los requerimientos del consumidor y las características del producto, se utilizan un grupo de símbolos para identificar la significancia de estas relaciones. El beneficio de llenar esta matriz de relaciones utilizando los símbolos apropiados, es que rápidamente nos indica, si es que las características de control del producto final cubren adecuadamente los requerimientos o expectativas del consumidor. Por otro lado, tenemos la teoría de los grafos, es importante primero conocer estos siguientes puntos: Grafos: Un grafo es un par A= (X,Y), donde: - X es el conjunto cualquiera que no está vacío, el cual es más conocido como nodo o vértice. 5 - Y es el conjunto que presenta otros elementos (a,b) ∈ Y. También es más conocido por ser llamado arista o segmento. Tipos de grafos Existen dos tipos de grafos, los cuales son representados por conexiones y del mismo es de donde llegan a tener el nombre. Grafos simples/no conexos Grafos conexos Google (s.f) Árboles dirigido: Para Menendez, un árbol es un grafo conexo y sin ciclos; del mismo modo, él afirma que si a dicho árbol, que es un grafo conexo sin ciclos, se le agrega una arista formando un ciclo, dicho grafo deja de ser un árbol. Árboles con raíz: Según Menendez, un árbol con raíz es aquel árbol al cual se le designa un vértice diferente(especial), el cual sirve como origen de coordenadas. Dicho de una forma más fácil de entender es el inicio del árbol dirigido. Habiendo descrito lo anterior tenemos lo siguiente, Nivel 0 = {raíz} Nivel 1 = {vecinos de la raíz} Nivel 2 = {vecinos de los vértices del nivel 1} \ {raíz} 6 Nivel 3 = {vecinos de los vértices del nivel 2} \ {Nivel 1} Nivel j = {vecinos de los vértices del nivel j − 1} \ {Nivel j − 2} Mostrado de una manera gráfica es lo siguiente. Google (s.f) Donde tenemos: Nivel 0= {2} Nivel 1= {7;5} Nivel 2= {2;6;9} Nivel 3= {5;11;4} Por otro lado, Menéndez nos dice que los árboles tienen altura, y dicha altura será el nivel máximo no vacío, en el ejemplo anterior, nuestro árbol viene a ser de altura 3 Árbol binario: Para Menéndez, un árbol binario es aquel árbol con raíz que tiene un grado máximo de 2, es decir que a lo mucho de ese árbol van a salir 2 otros nodos. 7 Google(s.f.) 4. ANEXO: Ejercicio 1: 8 Ejercicio 2: 9 REFERENCIAS BIBLIOGRÁFICAS: 1. Villagómez, D. (2019). Utilización de los mapas de Karnaugh como estrategia didáctica para el aprendizaje de la simplificación de funciones booleanas con los estudiantes de octavo semestre de la carrera de ciencias exactas periodo abril-agosto 2019: http://dspace.unach.edu.ec/bitstream/51000/6228/1/UNACH-EC-FCEHT-TG-C.EXAC2019-000010.pdf.pdf 2. Spiegato, “s.f.”¿Qué es una matriz booleana?: https://spiegato.com/es/que-es-una-matriz-booleana 10 3. Menendez, F. (s.f.). Lógica y Álgebra Discreta. Recuperado de: https://catedras.facet.unt.edu.ar/lad/wp-content/uploads/sites/93/2020/05/06_UT04_LA D20.pdf 4. Monografías.(s.f). Árboles y grafos. Monografías.com. Recuperado de:https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.monografias.com%2 Ftrabajos98%2Farboles-y-grafos%2Farboles-y-grafos&psig=AOvVaw2DdRR0RCy75g hC6vfdg4pO&ust=1680988655932000&source=images&cd=vfe&ved=0CBEQjRxqFw oTCIiB_fHYmP4CFQAAAAAdAAAAABAf 5. Techie Delight. (2022, mayo 10). Boundary Traversal of a Binary tree. Techie Delight.Recuperado de:https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.techiedelight.com% 2Fes%2Fboundary-traversal-binary-tree%2F&psig=AOvVaw3cBPVe-Ai9e585YD619td W&ust=1680990901416000&source=images&cd=vfe&ved=0CBEQjRxqFwoTCMCr8 qDhmP4CFQAAAAAdAAAAABAE 11