Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Algoritmos Greedy: Introducción y Algoritmos Voraces, Apuntes de Ingeniería Infórmatica

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

2016/2017

Subido el 19/06/2017

ironmand10s
ironmand10s 🇪🇸

3 documentos

1 / 65

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Algoritmos Voraces
Dise˜no y An´alisis de Algoritmos
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41

Vista previa parcial del texto

¡Descarga Algoritmos Greedy: Introducción y Algoritmos Voraces y más Apuntes en PDF de Ingeniería Infórmatica solo en Docsity!

Algoritmos Voraces

Dise˜no y An´alisis de Algoritmos

Algoritmos voraces Contenidos

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

Algoritmos voraces

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

Algoritmos voraces

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

Elementos

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

Esquema general

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

Ejemplos b´asicos

Algoritmos voraces Ejemplos b´asicos

Camino m´as corto - 1

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

Camino m´as corto - 2

¿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

Camino m´as corto - 2

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

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

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

Problema de la mochila

Algoritmos voraces Problema de la mochila

Problema de la mochila - 1

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