UACM CASA LIBERTAD PROYECTO 1 Resolución de un sistema de ecuaciones lineales de 2, 3 y 4 incógnitas! http://armandovalera.info avalera@hotmail.com UACM CASA LIBERTAD PROYECTO 2 Determina el tipo de matriz Una matriz es cuadrada cuando tiene el mismo número de renglones que de columnas. Este tipo de matrices pueden ser: Simétricas: si el elemento i,j es igual al elemento j,i para todo par de valores i y j. Triangular superior: si todos los elementos i,j por arriba de la diagonal principal son iguales. Triangular inferior: si todos los elementos i,j por debajo de la diagonal principal son iguales. Diagonal es toda matriz cuadrada en la que todos los términos no situados en la diagonal principal son ceros. Escalar es toda matriz cuadrada en la que todos los términos de la diagonal principal son iguales. La diagonal principal son aquellos elementos i,j para valores iguales de i y j Elaborar un proyecto que permita verificar que tipo de matriz es, puede ser de dimensión 2x2 hasta una matriz de 6x6 como mínimo! http://armandovalera.info avalera@hotmail.com UACM CASA LIBERTAD http://armandovalera.info avalera@hotmail.com UACM CASA LIBERTAD http://armandovalera.info avalera@hotmail.com UACM CASA LIBERTAD PROYECTO 3: Realizar un programa que realice las operaciones básicas entre polinomios http://armandovalera.info avalera@hotmail.com UACM CASA LIBERTAD http://armandovalera.info avalera@hotmail.com UACM CASA LIBERTAD PROYECTO 4. Realiza una calculadora igual o similar a la calculadora de Windows, el leguaje c# incorpora prácticamente todas las funciones por ejemplo elevar al cuadrado, cubo, o x “elevado” a la y, raíz cuadrada, conversión de un número decimal a binario octal, hexadecimal o viceversa! http://armandovalera.info avalera@hotmail.com UACM CASA LIBERTAD PROYECTO 5. Realizar un proyecto con 3 operaciones sobre matrices la suma, multiplicación e inversa, la suma ya se realizó en clase, la multiplicación también pero en consola hay que implementarla en Windows Forms, con respecto a la inversa obtendremos la inversa de la Matriz 1 únicamente. http://armandovalera.info avalera@hotmail.com UACM CASA LIBERTAD PROYECTO 6. Realizar un proyecto sobre un simulador para solicitar un crédito de un auto, de acuerdo a la CONDUSEF, para tal fin podemos ver la demostración en la siguiente liga: http://portalif.condusef.gob.mx/condusefautomotriz/sca_simulador_5.php Aplicamos una galería de imágenes, operaciones básicas y controles diversos, matrices para generar Tasa de Interés, el CAT de cada institución bancaria, distintos plazos a pagar a 6, 12, 24, 60 meses, etc. http://armandovalera.info avalera@hotmail.com UACM CASA LIBERTAD http://armandovalera.info avalera@hotmail.com UACM CASA LIBERTAD http://armandovalera.info avalera@hotmail.com UACM CASA LIBERTAD PROYECTO 7. Optimización en Redes - Algoritmo de Dikjstra 1. Información teórica. Las aplicaciones del algoritmo de Dijkstra son muy diversas y de gran importancia en distintas áreas del conocimiento. Vamos a presentar algunas de ellas. Encaminamiento de paquetes por los routers Consideremos una red telefónica. En un momento dado, un mensaje puede tardar una cierta cantidad de tiempo en atravesar cada línea (debido a efectos de congestión, retrasos en las conexiones etc.). En este caso tenemos una red con costes en los arcos y dos nodos especiales: el nodo de comienzo y el de finalización, el objetivo aquí es encontrar un camino entre estos dos nodos cuyo coste total sea el mínimo. Aplicaciones para Sistemas de información geográficos: extracción de características curvilíneas de imágenes usando técnicas de minimización del camino: La imagen se representa como una matriz de puntos, cada uno con una especial intensidad. Cada nodo se corresponde con un punto (pixel) de la imagen y tiene hasta ocho nodos adyacentes. El peso de los arcos viene dado en este caso por la diferencia de intensidad. Esta técnica presenta un gran ahorro de costes frente a las herramientas existentes actualmente en el mercado que usan métodos de vectorización automáticos. Reconocimiento de lenguaje hablado: Un problema que se presenta es el distinguir entre palabras que suenan de manera similar. Se puede construir un grafo cuyos vértices correspondan a palabras posibles y cuyos arcos unan palabras que puedan ir colocadas una al lado de otra. Si el peso del arco corresponde a la probabilidad de que estén así colocadas, el camino más corto en el grafo será la mejor interpretación de la frase. Otras aplicaciones: Enrutamiento de aviones y tráfico aéreo. Tratamiento de imágenes médicas. Problemas de optimización de una función de coste para moverse entre diversas posiciones. 2. Problema a resolver. El algoritmo de dijkstra determina la ruta más corta desde un nodo origen s hacia los demás nodos. Las distancias se almacenan en un vector D. Básicamente, el algoritmo toma en la i-ésima iteración al nodo que tiene la menor distancia, Vi, y ve si es posible disminuir la distancia de sus nodos adyacentes, para hacerlo se verifica si la distancia hasta Vi más el costo para ir de i al nodo adyacente, w(i,j), es menor a la distancia actual en el nodo adyacente. El programa tendrá 4 funciones: http://armandovalera.info avalera@hotmail.com UACM CASA LIBERTAD Una función para inicializar el grafo, otra función para insertar los nodos, una función que calcule la distancia mínima desde i-esimo nodo hacia los demás, y una ultima función para imprimir los resultados. 3. Ejemplo. Para el siguiente grafo: Encontrar la distancia de cada nodo hacia el resto de los nodos. Optimización de Redes - Algoritmo de Dikjstra Menú Principal 1. Captura de datos 2. Generación de resultados 3. Origen-Destino 4. Salir 3. 1 Datos de entrada Como entrada para el programa se introdujo la siguiente información: Introduce el número de nodos y aristas del grafo: 5 6 Leemos las aristas (los dos primeros valores son los nodos y el tercer valor es la distancia de la arista): 1 2 3 1 3 10 2 4 5 3 4 6 3 5 15 4 5 4 http://armandovalera.info avalera@hotmail.com UACM CASA LIBERTAD 3. 2 Datos de salida En la salida el primer número es el nodo y el valor entre paréntesis es la distancia: La menor distancia desde el nodo 1 hacia los otros nodos es: 1(0) 2(3) 3(10) 4(8) 5(12) La menor distancia desde el nodo 2 hacia los otros nodos es: 1(3) 2(0) 3(11) 4(5) 5(9) La menor distancia desde el nodo 3 hacia los otros nodos es: 1(10) 2(11) 3(0) 4(6) 5(10) La menor distancia desde el nodo 4 hacia los otros nodos es: 1(8) 2(5) 3(6) 4(0) 5(4) La menor distancia desde el nodo 5 hacia los otros nodos es: 1(12) 2(9) 3(10) 4(4) 5(0) 3. 3 Origen-Destino Aquí debemos de escribir cual es la ruta con el menor costo. Origen 1 Destino 5 La ruta con el menor costo es: 1 – 2 – 4 – 5 con un costo total de: 12 4. Bibliografía • CORMEN Thomas, Leiserson Charles and Rivest Ronald. Introduction to Algorithms. The MIT Press, 1990. • PARBERRY Ian. Problems on Algorithms. Prentice Hall, 1995. • Rafael Lopez Bracho, Javier Ramirez Rodríguez, Cesar Uribe Ugalde, Apuntes de Optimización en redes, CBI Departamento de Sistemas UAM, http://armandovalera.info avalera@hotmail.com UACM CASA LIBERTAD 1996. PROYECTO 8. Ruta para transportarse en metro Aquí utilizamos arreglos, un arreglo por cada línea, el usuario teclea o selecciona el origen y destino, el proyecto nos dará la información de cuál ruta debemos seguir. En general tenemos tres casos, de menor a mayor dificultad son: a) Cuando el origen destino se encuentran en la misma línea b) Cuando para dirigirse del origen al destino debemos realizar un transbordo c) Cuando para dirigirse del origen al destino debemos realizar dos transbordos Limitaciones del proyecto: 1) En el caso b) y c) cuando debemos de transbordar, puede existir más de una ruta, con solo indicar una es suficiente aunque esta ruta no sea la más corta o de menor “costo”. 2) Cuando no sea suficiente con dos transbordos para llegar a la ruta especificada deberá imprimir el mensaje “No puedo ayudarte , ahora si me la pusiste difícil” o el mensaje que creamos conveniente Tip para realizar el proyecto: Además de tener un arreglo por cada línea del metro debemos de tener otro que especifique entre que líneas podemos transbordar http://armandovalera.info avalera@hotmail.com