razonamiento explícito y experimentación en la algoritmia j. Ángel velázquez iturbide...
TRANSCRIPT
![Page 1: Razonamiento Explícito y Experimentación en la Algoritmia J. Ángel Velázquez Iturbide Departamento de Lenguajes y Sistemas Informáticos Universidad Rey](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54ddbe12497959e81b8b50fa/html5/thumbnails/1.jpg)
Razonamiento Explícito y Experimentación en la Algoritmia
J. Ángel Velázquez IturbideDepartamento de Lenguajes y Sistemas InformáticosUniversidad Rey Juan [email protected]
![Page 2: Razonamiento Explícito y Experimentación en la Algoritmia J. Ángel Velázquez Iturbide Departamento de Lenguajes y Sistemas Informáticos Universidad Rey](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54ddbe12497959e81b8b50fa/html5/thumbnails/2.jpg)
Reflexiones sobre la Docencia de la Algoritmia
J. Ángel Velázquez IturbideDepartamento de Lenguajes y Sistemas InformáticosUniversidad Rey Juan [email protected]
![Page 3: Razonamiento Explícito y Experimentación en la Algoritmia J. Ángel Velázquez Iturbide Departamento de Lenguajes y Sistemas Informáticos Universidad Rey](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54ddbe12497959e81b8b50fa/html5/thumbnails/3.jpg)
Seminario de Investigación e Innovación en Tecnologías del Software
Jornada sobre Innovación e Investigación en la Algoritmia
Índice
1. Introducción
2. “Diseño grueso” de algoritmos
3. “Diseño fino” de algoritmos
4. Análisis de algoritmos
5. Conclusiones
![Page 4: Razonamiento Explícito y Experimentación en la Algoritmia J. Ángel Velázquez Iturbide Departamento de Lenguajes y Sistemas Informáticos Universidad Rey](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54ddbe12497959e81b8b50fa/html5/thumbnails/4.jpg)
Seminario de Investigación e Innovación en Tecnologías del Software
Jornada sobre Innovación e Investigación en la Algoritmia
1. Introducción
Importancia de la Algoritmia:ACM Computing CurriculaTroncalidad en planes de estudios
españolesAlgunas reflexiones basadas en mi
experiencia investigadora y docente
![Page 5: Razonamiento Explícito y Experimentación en la Algoritmia J. Ángel Velázquez Iturbide Departamento de Lenguajes y Sistemas Informáticos Universidad Rey](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54ddbe12497959e81b8b50fa/html5/thumbnails/5.jpg)
Seminario de Investigación e Innovación en Tecnologías del Software
Jornada sobre Innovación e Investigación en la Algoritmia
2. “Diseño Grueso” de Algoritmos
Suele basarse en “técnicas de diseño”: Un esquema o patrón que puede aplicarse a una
clase amplia de problemas Enfoque ingenieril Punto de vista docente: ayuda al alumno
Técnicas más frecuentes: Divide y vencerás Algoritmos voraces Programación dinámica Búsqueda en espacios de estados en árbol Otras técnicas
![Page 6: Razonamiento Explícito y Experimentación en la Algoritmia J. Ángel Velázquez Iturbide Departamento de Lenguajes y Sistemas Informáticos Universidad Rey](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54ddbe12497959e81b8b50fa/html5/thumbnails/6.jpg)
Seminario de Investigación e Innovación en Tecnologías del Software
Jornada sobre Innovación e Investigación en la Algoritmia
2.1. Definición de las Técnicas de Diseño
Definiciones compuestas:Esquema de códigoCaracterización de los problemas:
Tipos de datosRestricciones semánticas. P.ej. vuelta atrás:
P(x1,...,xi+1) P(x1,...,xi)
o P(x1,…,xi) P(x1,...,xi+1)
Metodologías de diseño
![Page 7: Razonamiento Explícito y Experimentación en la Algoritmia J. Ángel Velázquez Iturbide Departamento de Lenguajes y Sistemas Informáticos Universidad Rey](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54ddbe12497959e81b8b50fa/html5/thumbnails/7.jpg)
Seminario de Investigación e Innovación en Tecnologías del Software
Jornada sobre Innovación e Investigación en la Algoritmia
2.1. Definición de las Técnicas de Diseño
Confusiones frecuentes:Búsqueda exhaustiva vs. vuelta atrásRecursividad múltiple vs. programación
dinámica:P.ej. números de FibonacciProgramación dinámica incluye:
problema optimización satisface principio optimidadalgoritmo directo con recursividad múltiple redundanteoptimización del algoritmo mediante tabulación
![Page 8: Razonamiento Explícito y Experimentación en la Algoritmia J. Ángel Velázquez Iturbide Departamento de Lenguajes y Sistemas Informáticos Universidad Rey](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54ddbe12497959e81b8b50fa/html5/thumbnails/8.jpg)
Seminario de Investigación e Innovación en Tecnologías del Software
Jornada sobre Innovación e Investigación en la Algoritmia
2.2. Metodologías de Diseño
Programación dinámica:1. Comprobar que el problema cumple el principio
de optimidad
2. Diseñar un algoritmo recursivo múltiple: resolver el problema en etapas (incrementalmente)
3. Tabular el algoritmo anterior:a. Obtener un árbol de recursión
b. Obtener el grafo de dependencia
c. Determinar un orden lineal de cómputo
d. Determinar el tamaño mínimo de la tabla necesaria
e. Implementar un algoritmo iterativo a partir de (c) y (d)
![Page 9: Razonamiento Explícito y Experimentación en la Algoritmia J. Ángel Velázquez Iturbide Departamento de Lenguajes y Sistemas Informáticos Universidad Rey](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54ddbe12497959e81b8b50fa/html5/thumbnails/9.jpg)
Seminario de Investigación e Innovación en Tecnologías del Software
Jornada sobre Innovación e Investigación en la Algoritmia
2.2. Metodologías de Diseño
Problema de la mochila 0/1:
ps=(3,6,9,5)bs=(7,2,8,4)c=15
contrariocasoenpspimbspimmáx
pspsipimpim
ii
i
),1(),,1((
),1(),(
0),1( pnm
![Page 10: Razonamiento Explícito y Experimentación en la Algoritmia J. Ángel Velázquez Iturbide Departamento de Lenguajes y Sistemas Informáticos Universidad Rey](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54ddbe12497959e81b8b50fa/html5/thumbnails/10.jpg)
Seminario de Investigación e Innovación en Tecnologías del Software
Jornada sobre Innovación e Investigación en la Algoritmia
2.2. Metodologías de Diseño
Problema de la mochila 0/1:
ps=(3,6,9,5)bs=(7,2,8,4)c=15
![Page 11: Razonamiento Explícito y Experimentación en la Algoritmia J. Ángel Velázquez Iturbide Departamento de Lenguajes y Sistemas Informáticos Universidad Rey](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54ddbe12497959e81b8b50fa/html5/thumbnails/11.jpg)
Seminario de Investigación e Innovación en Tecnologías del Software
Jornada sobre Innovación e Investigación en la Algoritmia
2.2. Metodologías de Diseño
Problema de la mochila 0/1:
ps=(3,6,9,5)bs=(7,2,8,4)c=15
![Page 12: Razonamiento Explícito y Experimentación en la Algoritmia J. Ángel Velázquez Iturbide Departamento de Lenguajes y Sistemas Informáticos Universidad Rey](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54ddbe12497959e81b8b50fa/html5/thumbnails/12.jpg)
Seminario de Investigación e Innovación en Tecnologías del Software
Jornada sobre Innovación e Investigación en la Algoritmia
2.2. Metodologías de Diseño
Problema de la mochila 0/1:
![Page 13: Razonamiento Explícito y Experimentación en la Algoritmia J. Ángel Velázquez Iturbide Departamento de Lenguajes y Sistemas Informáticos Universidad Rey](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54ddbe12497959e81b8b50fa/html5/thumbnails/13.jpg)
Seminario de Investigación e Innovación en Tecnologías del Software
Jornada sobre Innovación e Investigación en la Algoritmia
2.3. Catalogaciones de Técnicas de Diseño
Problemas con las técnicas usuales:Distinto nivel de generalidad de las técnicas Incapacidad de incluir otras técnicas (p.ej.
partición binaria o fuerza bruta)Propuesta no jerárquica (no permite
agrupar y relacionar técnicas) Incapacidad de clasificar muchos algoritmos
clásicos (p.ej. Euclides, de dispersión, etc.)
![Page 14: Razonamiento Explícito y Experimentación en la Algoritmia J. Ángel Velázquez Iturbide Departamento de Lenguajes y Sistemas Informáticos Universidad Rey](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54ddbe12497959e81b8b50fa/html5/thumbnails/14.jpg)
Seminario de Investigación e Innovación en Tecnologías del Software
Jornada sobre Innovación e Investigación en la Algoritmia
2.3. Catalogaciones de Técnicas de Diseño
Propuesta de Ananin Levitin:
![Page 15: Razonamiento Explícito y Experimentación en la Algoritmia J. Ángel Velázquez Iturbide Departamento de Lenguajes y Sistemas Informáticos Universidad Rey](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54ddbe12497959e81b8b50fa/html5/thumbnails/15.jpg)
Seminario de Investigación e Innovación en Tecnologías del Software
Jornada sobre Innovación e Investigación en la Algoritmia
2.3. Catalogaciones de Técnicas de Diseño
Propuesta de Alsuwaiyel:
![Page 16: Razonamiento Explícito y Experimentación en la Algoritmia J. Ángel Velázquez Iturbide Departamento de Lenguajes y Sistemas Informáticos Universidad Rey](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54ddbe12497959e81b8b50fa/html5/thumbnails/16.jpg)
Seminario de Investigación e Innovación en Tecnologías del Software
Jornada sobre Innovación e Investigación en la Algoritmia
2.4. Relaciones entre Técnicas de Diseño
Relaciones evidentes:Técnicas de búsqueda en espacios de
estados en árbolRelaciones no evidentes:
Programación dinámica vs. búsqueda en espacios de estados en árbol
![Page 17: Razonamiento Explícito y Experimentación en la Algoritmia J. Ángel Velázquez Iturbide Departamento de Lenguajes y Sistemas Informáticos Universidad Rey](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54ddbe12497959e81b8b50fa/html5/thumbnails/17.jpg)
Seminario de Investigación e Innovación en Tecnologías del Software
Jornada sobre Innovación e Investigación en la Algoritmia
2.4. Relaciones entre Técnicas de Diseño
Problema de la mochila 0/1:
contrariocasoenpspimbspimmáx
pspsipimpim
ii
i
),1(),,1((
),1(),(
0),1( pnm
![Page 18: Razonamiento Explícito y Experimentación en la Algoritmia J. Ángel Velázquez Iturbide Departamento de Lenguajes y Sistemas Informáticos Universidad Rey](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54ddbe12497959e81b8b50fa/html5/thumbnails/18.jpg)
Seminario de Investigación e Innovación en Tecnologías del Software
Jornada sobre Innovación e Investigación en la Algoritmia
2.4. Relaciones entre Técnicas de Diseño
Otras relaciones:
(a) Búsqueda exhaustiva (b) Vuelta atrás
(c) Programación dinámica (d) Algoritmos voraces
![Page 19: Razonamiento Explícito y Experimentación en la Algoritmia J. Ángel Velázquez Iturbide Departamento de Lenguajes y Sistemas Informáticos Universidad Rey](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54ddbe12497959e81b8b50fa/html5/thumbnails/19.jpg)
Seminario de Investigación e Innovación en Tecnologías del Software
Jornada sobre Innovación e Investigación en la Algoritmia
3. “Diseño Fino” de Algoritmos
Decisiones “menores” que influyen decisivamente en la forma del código final
![Page 20: Razonamiento Explícito y Experimentación en la Algoritmia J. Ángel Velázquez Iturbide Departamento de Lenguajes y Sistemas Informáticos Universidad Rey](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54ddbe12497959e81b8b50fa/html5/thumbnails/20.jpg)
Seminario de Investigación e Innovación en Tecnologías del Software
Jornada sobre Innovación e Investigación en la Algoritmia
3.1. Manipulación de Algoritmos y Mejora de su Eficiencia
Transformaciones de programasEjemplo de equivalencia:
if (cond) sentencia-then else sentencia-else if (!cond) sentencia-else else sentencia-then
Ejemplo de optimización (Hörner):pn(x) = cnxn + cn-1xn-1 + … + c1x + c0
pn(x) = (…((cnx + cn-1)x + cn-2)x + … )x + c0
![Page 21: Razonamiento Explícito y Experimentación en la Algoritmia J. Ángel Velázquez Iturbide Departamento de Lenguajes y Sistemas Informáticos Universidad Rey](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54ddbe12497959e81b8b50fa/html5/thumbnails/21.jpg)
Seminario de Investigación e Innovación en Tecnologías del Software
Jornada sobre Innovación e Investigación en la Algoritmia
3.2. Eliminación de la Recursividad
Operación implícita en la presentación del código final:Algoritmos voraces: conversión de la
recursividad lineal en iteraciónProgramación dinámica: eliminación de la
recursividad múltiple
![Page 22: Razonamiento Explícito y Experimentación en la Algoritmia J. Ángel Velázquez Iturbide Departamento de Lenguajes y Sistemas Informáticos Universidad Rey](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54ddbe12497959e81b8b50fa/html5/thumbnails/22.jpg)
Seminario de Investigación e Innovación en Tecnologías del Software
Jornada sobre Innovación e Investigación en la Algoritmia
3.3. Visualizaciones del Comportamiento
Visualizaciones ad hoc para problemasVisualizaciones generales:
Árbol de recursiónGrafo de dependencia
Visualizaciones para una técnica:Árboles de búsquedaTablas
![Page 23: Razonamiento Explícito y Experimentación en la Algoritmia J. Ángel Velázquez Iturbide Departamento de Lenguajes y Sistemas Informáticos Universidad Rey](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54ddbe12497959e81b8b50fa/html5/thumbnails/23.jpg)
Seminario de Investigación e Innovación en Tecnologías del Software
Jornada sobre Innovación e Investigación en la Algoritmia
3.3. Visualizaciones del Comportamiento
n producir equívocos:Permutaciones:
(x1,x2,x3)
(x1)
( )
i = 1
i = 3
i = 2
(x1,x2)
(x1,x2,x3)
(x1)
( )
(x1,x2)
![Page 24: Razonamiento Explícito y Experimentación en la Algoritmia J. Ángel Velázquez Iturbide Departamento de Lenguajes y Sistemas Informáticos Universidad Rey](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54ddbe12497959e81b8b50fa/html5/thumbnails/24.jpg)
Seminario de Investigación e Innovación en Tecnologías del Software
Jornada sobre Innovación e Investigación en la Algoritmia
3.4. Codificación de los Algoritmos
Problemas con algunos algoritmos:Codificación engorrosa (p.ej. Strassen)Salida compleja:
Se piden todas las solucionesProblemas de optimización: valor y secuencia
de decisionesAlgoritmos voraces: ordenación previa
![Page 25: Razonamiento Explícito y Experimentación en la Algoritmia J. Ángel Velázquez Iturbide Departamento de Lenguajes y Sistemas Informáticos Universidad Rey](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54ddbe12497959e81b8b50fa/html5/thumbnails/25.jpg)
Seminario de Investigación e Innovación en Tecnologías del Software
Jornada sobre Innovación e Investigación en la Algoritmia
4. Análisis de Algoritmos
Complejidad asintótica: enfoque formalTomar medidas de ejecución: enfoque
experimentalMedir tiempo de ejecuciónPlanificación cuidadosa del experimento
![Page 26: Razonamiento Explícito y Experimentación en la Algoritmia J. Ángel Velázquez Iturbide Departamento de Lenguajes y Sistemas Informáticos Universidad Rey](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54ddbe12497959e81b8b50fa/html5/thumbnails/26.jpg)
Seminario de Investigación e Innovación en Tecnologías del Software
Jornada sobre Innovación e Investigación en la Algoritmia
4.1. Análisis del Espacio
Medida de la eficiencia citada pero frecuentemente ignorada
Razón para mostrar algoritmos voraces en formato iterativo
Compromisos espacio-tiempo:Algoritmos recursivos eficientes (p.ej.
ordenación)Comprobaciones incrementales en vuelta
atrás
![Page 27: Razonamiento Explícito y Experimentación en la Algoritmia J. Ángel Velázquez Iturbide Departamento de Lenguajes y Sistemas Informáticos Universidad Rey](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54ddbe12497959e81b8b50fa/html5/thumbnails/27.jpg)
Seminario de Investigación e Innovación en Tecnologías del Software
Jornada sobre Innovación e Investigación en la Algoritmia
4.2. Otras Medidas Experimentales de Rendimiento
Número de veces de ejecución de una operación clave
Algoritmos recursivos:Número de llamadas recursivasProfundidad máxima de recursión
Vuelta atrás:Número de nodos realmente generadosPorcentaje sobre número potencial
![Page 28: Razonamiento Explícito y Experimentación en la Algoritmia J. Ángel Velázquez Iturbide Departamento de Lenguajes y Sistemas Informáticos Universidad Rey](https://reader033.vdocuments.pub/reader033/viewer/2022061301/54ddbe12497959e81b8b50fa/html5/thumbnails/28.jpg)
Seminario de Investigación e Innovación en Tecnologías del Software
Jornada sobre Innovación e Investigación en la Algoritmia
5. Conclusiones
Reflejado algunas reflexiones sobre la docencia de los algoritmos: problemas y soluciones
Cuestiones no abordadas:Cuestiones pedagógicas y organizativas:
laboratorios, aprendizaje activo, etc.Relación (y trasvases) con otras
asignaturas…