Cinvestav
Departamento de Computación
Curso: Análisis y Diseño de Algoritmos
Prof. Dr. Luis Gerardo de la Fraga
Cuatrimestre agosto a diciembre de 2021
Este es el contenido del curso.
Apuntes del Curso:
Tareas del Curso:
Tarea 11: El problema de la multiplicación de una cadena de matrices
Fecha de entrega: miércoles 15 de diciembre, 2021
- Verificar el ejemplo de libro con la cadena de matrices de dimensiones
(30, 35, 15, 5, 10, 20, 25)
cuya separación óptima es: ((A1(A2 A3))((A4 A5) A6)) y costo es 15,125 multiplicaciones escalares.- Calcular la partición óptima para calcular el producto de la cadena de matrices cuya secuencia de dimensiones es: (5, 10, 3, 12, 5, 50, 6)
- Use el método de sustución para verificat que la solución a la ecuación de recurencias para este problema es Omega(2^n)
Tarea 10: El árbol dinámico de n nodos para calcular estadísticas de orden
Fecha de entrega: miércoles 8 de diciembre, 2021
- Realizar primero las funciones para insertar y borrar en un árbol rojo y negro.
- Hacer las adecuaciones para el cálculo de las estadísticas de orden.
- Leer el apunte de la clase del día 1 de diciembre para la verificación de que el código realizado es correcto.
Tarea 9: Rotaciones sobre los nodos de un árbol
Fecha de entrega: lunes 29 de noviembre, 2021
- Realizar el pseudocódigo de la operación rotar_derecha()
- Codificar las operaciones de rotar derecha e inquierda en python
- Realice una rutina para construir un árbol de búsqueda binario a partir de una lista de llaves. Utilice esta rutina para probar la ejecución correcta de las operaciones de rotación sobre el árbol.
- Argumente que para cada árbol de búsqueda binario con n nodos, existen exactamente n-1 rotaciones.
Tarea 8: Estadísticas de orden
Fecha de entrega: miércoles 10 de noviembre, 2021
- Programar la rutina para encontrar el mínimo y máximo de un conjunto de n elementos que ocupe a lo más 3 piso(n/2) comparaciones.
- Muestre el que segundo más pequeño de n elementos puede encontrarse con n + techo( lg n ) - 2 comparaciones en el peor caso (también se debe encontrar el elemento más pequeño).
Tarea 7: Ordenamiento en tiempo lineal
Fecha de entrega: miércoles 3 de noviembre, 2021
- Implementar en python el ordenamiento por indizado para ordenar de forma lexicográfica palabras.
- Respondan a la pregunta:
¿Tiene que ser el número de cubetas igual al número de llaves?
O dicho de otra forma ¿si m y n no son iguales se cambia el tiempo de ejecución?
Tarea 6: Ordenamiento del montón
Fecha de entrega: miércoles 27 de octubre, 2021
- Programar en python el ordenamiento por el montón
- Mostrar al menos el resultado de cuatro ejecuciones revolviendo aleatoriamente la misma entrada
- Mostrar que, con la representación con un arreglo para almacenar los n elementos de un montón, las hojas son nodos indexados por piso(n/2)+1, piso(n/2)+2, ..., n
Tarea 5: Algoritmos aleatorizados
Fecha de entrega: miércoles 20 de octubre, 2021
Realice dos codificacion en python para el algoritmo
de la contratación de un asistente y el
algoritmo de Las Vegas. Debe de poner
al menos cinco resultados de sus pruebas.
Tarea 4: Estrategia divide y vencerás
Fecha de entrega: miércoles 29 de septiembre, 2021
Realizar estos dos problemas
Tarea 3: Problemas
Fecha de entrega: miércoles 22 de septiembre, 2021
Realizar estos dos problemas
Tarea 2: Problemas
Fecha de entrega: miércoles 15 de septiembre, 2021
Realizar estos dos problemas
Tarea 1: Algoritmo para el trazo de una línea en cualquier sentido
Fecha de entrega: miércoles 8 de septiembre, 2021
- Se dede analizar el número de casos que se tienen para trazar una línea. Hacer el diagrama como en clase para visualizar todos los casos.
- Hacer una tabla de cada caso y la forma de detectarlo
- Codificar el algoritmo en python
- Hacer la prueba con este código y realizar la gráfica de salida.
El código de shell se ejecuta como "bash tarea1.sh"
La gráfica debe estar hecha con gnuplot.Última actualización: 13 de diciembre, 2021
Comentarios: fraga en cs cinvestav mx