

























































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: programación, Profesor: Manuel Rubio, Carrera: Ingeniería de Tecnologías y Servicios de Telecomunicación, Universidad: UPM
Tipo: Ejercicios
1 / 65
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!


























































Dise˜no y An´alisis de Algoritmos
Grado en Ingenier´ıa Inform´atica
Tema 5: Algoritmos voraces Contenidos
(^1) Introducci´on
2 Ejemplos b´asicos
(^3) Cambio de monedas
4 Problema de la mochila
(^5) Problemas de planificaci´on de tareas
(^6) Patrones ´optimos de mezcla
(^7) Arbol de recubrimiento de coste m´´ ınimo
(^8) Caminos m´ınimos desde un nodo
Tema 5: Algoritmos voraces Introducci´on
Los algoritmos voraces se suelen aplicar a problemas de optimizaci´on Maximizar o minimizar una funci´on objetivo
Suelen ser r´apidos y f´aciles de implementar
Exploran soluciones “locales”
No siempre garantizan la soluci´on ´optima
Tema 5: Algoritmos voraces Introducci´on
Son algoritmos que siguen una heur´ıstica mediante la cual toman decisiones ´optimas locales en cada paso, de manera muy eficiente, con la esperanza de poder encontrar un ´optimo global tras una serie de pasos
Se aplican, sobre todo, a problemas duros, desde un punto de vista computacional Ejemplo: problema del viajante (NP-completo) Heur´ıstica: “escoge la ciudad m´as pr´oxima no visitada a´un”
Para ciertos problemas se puede demostrar que algunas estrategias voraces s´ı que logran hallar un ´optimo global de manera eficiente
Tema 5: Algoritmos voraces Introducci´on
Conjunto de candidatos C : la soluci´on se construir´a con un subconjunto de estos candidatos
Funci´on de selecci´on: selecciona el candidato “local” m´as id´oneo
Funci´on de factibilidad: comprueba si un candidato es factible
Funci´on objetivo: determina el valor de la soluci´on (funci´on a optimizar)
Funci´on soluci´on: determina si el subconjunto de candidatos ha alcanzado una soluci´on
Tema 5: Algoritmos voraces Introducci´on
La t´ecnica voraz funciona por pasos: Partimos de una soluci´on vac´ıa y de un conjunto de candidatos a formar parte de la soluci´on En cada paso se intenta a˜nadir el mejor de los candidatos restantes a la soluci´on parcial Una vez tomada la decisi´on, no se puede deshacer Si la soluci´on ampliada es v´alida ⇒ candidato incorporado Si la soluci´on ampliada no es v´alida ⇒ candidato desechado
El algoritmo acabar´a cuando el conjunto de elementos seleccionados constituya una soluci´on o cuando no queden elementos sin considerar
Tema 5: Algoritmos voraces Ejemplos b´asicos
Tema 5: Algoritmos voraces Ejemplos b´asicos
Camino m´as corto - 1 Encontrar el camino m´as corto de v 0 a vn, donde solo hay caminos entre v´ertices adyacentes (vi− 1 y vi , para i = 1,... , n).
5 1 3
10 9 2 6
4
7
v 0 v 1 v 2 v 3
¿Funci´on de selecci´on? M´etodo voraz: en cada paso se coge el arco de menor longitud 5 1 3
10 9 2 6
4
7
v 0 v 1 v 2 v 3
Soluci´on optima: 1 + 2 + 4 = 7 Se demuestra que la estrategia es ´optima (por contradicci´on)
Tema 5: Algoritmos voraces Ejemplos b´asicos
¿Funci´on de selecci´on? M´etodo voraz: en cada paso se coge el arco de menor longitud
v0,1 v3, v1,
v2,
v1,
v1,
v1, v2,
v2,
3 1 5
7
13 1
2
3 2 9 10 5
7
4
(^62)
Longitud de la soluci´on voraz: 1 + 9 + 13 = 23 (v 0 , 1 , v 1 , 2 , v 2 , 1 , v 3 , 1 )
Tema 5: Algoritmos voraces Ejemplos b´asicos
v0,1 v3, v1,
v2,
v1,
v1,
v1, v2,
v2,
3 1 5
7
13 1
2
3 2 9 10 5
7
4
(^62)
Se demuestra que la estrategia no es ´optima (contraejemplo) Longitud de la soluci´on optima: 3 + 3 + 1 = 7 (v 0 , 1 , v 1 , 1 , v 2 , 2 , v 3 , 1 )
Tema 5: Algoritmos voraces Cambio de monedas
Problema del cambio de monedas Se dispone de n monedas de euro con valores de 1,2,5,10,20 y 50 c´entimos de euro, 1 y 2 euros.
Dada una cantidad X de euros, devolver dicha cantidad con el menor n´umero posible de monedas
Ejemplo: devolver 2.24e Soluci´on: 4 (2 + 0,20 + 0,02 + 0,02)
Tema 5: Algoritmos voraces Cambio de monedas
Conjunto de candidatos: Todos los tipos de monedas Funci´on soluci´on: Conjunto de monedas que suman X , {n 1 , n 2 ,... , n 8 }, ni = n´umero de monedas de tipo i Funci´on de factibilidad: Si ∑ 8 i=1 ni^ >^ X^ , el conjunto obtenido no podr´a ser soluci´on Funci´on objetivo: Minimizar la cardinalidad de las soluciones posibles Funci´on de selecci´on: Moneda de valor m´as alto posible, que no supere el valor que queda por devolver
Tema 5: Algoritmos voraces Problema de la mochila
Tema 5: Algoritmos voraces Problema de la mochila
Problema de la mochila - Versi´on 1 Se tiene un conjunto de n objetos, cada uno con un peso pi , y una mochila con capacidad C.
p (^1) p (^2)
p (^3) C
Maximizar el n´umero de objetos que se pueden introducir en la mochila sin sobrepasar la capacidad C