

























































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
Una introducción a los algoritmos voraces, sus características, ventajas y desventajas, y ejemplos básicos de su aplicación. Los algoritmos voraces son una clase de algoritmos heurísticos que siguen una estrategia de tomar decisiones ótimas locales en cada paso, con la esperanza de encontrar una solución ótima global tras una serie de pasos. Se aplican principalmente a problemas difíciles desde un punto de vista computacional, como el problema del viajante. Se incluyen ejemplos de algoritmos como el método voraz y el algoritmo de kruskal.
Tipo: Apuntes
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
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
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
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
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
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
Algoritmos voraces Ejemplos b´asicos
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)
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 )
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 )
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)
Algoritmos voraces Cambio de monedas
Conjunto de candidatos: Todos los tipos de monedas Funci´on soluci´on: Conjunto de monedas que suman X Funci´on de factibilidad: Si
∑ 8 i=1 vi^ ni^ >^ X^ , el conjunto obtenido no podr´a ser soluci´on ni = n´umero de monedas de tipo i vi = valor de una moneda de tipo i 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
Algoritmos voraces Problema de la mochila
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