Você está na página 1de 5

UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD DE INGENIERA CIENCIAS FSICAS Y MATEMTICAS


INGENIERA INFORMTICA
INTEGRANTES: Estalin Gunza

Grupo: 5

Damin Quisingo

ALGORITMOS VORACES
Definicin:
Se conocen como algoritmos miopes o glotones, y son aquellos que se caracterizan por
tomar decisiones basados en la informacin que tienen a primera mano, sin tener en
cuenta lo que pueda pasar ms adelante; adems, una vez que toman una decisin nunca
reconsideran otras posibilidades, lo que ocasionalmente los lleva a caer en puntos
muertos o sin salida.
Los algoritmos voraces tambin se caracterizan por la rapidez en que encuentran una
solucin (cuando la encuentran), la cual casi siempre no es la mejor. Normalmente son
utilizados para resolver problemas en los que la velocidad de respuesta debe ser muy
alta o en la que el rbol de decisiones de bsqueda es muy grande, no siendo posible
analizar la totalidad de posibilidades.
Ejemplos tpicos de problemas que se pueden resolver mediante este esquema son:
bsquedas en rboles o grafos, recorridos de grafos, solucin de laberintos, devolver el
cambio, algunos juegos entre otros.
Forma general:
La estrategia general de este tipo de algoritmos se basa en la construccin de una
solucin, la cual comienza sin elementos y cada vez que debe tomar algn tipo de
decisin, lo hace con la informacin que tiene a primera mano, la cual de alguna manera
le permita adicionar elementos y as avanzar hacia la solucin total. Cada elemento o
paso de la solucin se adiciona al conjunto solucin y as hasta llegar a la solucin final
o a un punto en el cual no puede seguir avanzando, lo cual indica que no encontr una
solucin al problema.
Elementos:
Los algoritmos voraces suelen ser bastante simples. Se emplean sobre todo para resolver
problemas de optimizacin, como por ejemplo, encontrar la secuencia ptima para
procesar un conjunto de tareas por un computador, hallar el camino mnimo de un grafo,
etc. Habitualmente, los elementos que intervienen son:

Un conjunto o lista de candidatos (tareas a procesar, vrtices del grafo, etc.);


Un conjunto de decisiones ya tomadas (candidatos ya escogidos);

Una funcin que determina si un conjunto de candidatos es una solucin al


problema (aunque no tiene por qu ser la ptima);
Una funcin que determina si un conjunto es completable, es decir, si aadiendo
a este conjunto nuevos candidatos es posible alcanzar una solucin al problema,
suponiendo que esta exista;
Una funcin de seleccin que escoge el candidato an no seleccionado que es
ms prometedor;
Una funcin objetivo que da el valor/coste de una solucin (tiempo total del
proceso, la longitud del camino, etc.) y que es la que se pretende maximizar o
minimizar;

Funcionamiento de la Tcnica Voraz


La tcnica voraz intenta resolver el problema fijando progresivamente los valores de las
variables de la funcin objetivo, sin violar las restricciones, hasta llegar al mximo o
mnimo de funcin.
En cada paso se determina el valor de una de las variables an no fijada mediante una
FUNCIN DE SELECCIN. Encada instante, la funcin de seleccin siempre toma la
decisin factible que es localmente ptima, es decir, la que hace que la funcin objetivo
tome el mejor valor posible hasta el momento, sin intentar averiguar si forma parte de la
solucin ptima global.
Una de las caractersticas que diferencian a la tcnica voraz de otras que estudiaremos
despus es que nunca reconsidera una decisin tomada!
Esquema:
Para resolver el problema de optimizacin hay que encontrar un conjunto de candidatos
que optimiza la funcin objetivo. Los algoritmos voraces proceden por pasos.
Inicialmente el conjunto de candidatos es vaco. A continuacin, en cada paso, se intenta
aadir al conjunto el mejor candidato de los an no escogidos, utilizando la funcin de
seleccin. Si el conjunto resultante no es completable, se rechaza el candidato y no se le
vuelve a considerar en el futuro.
En caso contrario, se incorpora al conjunto de candidatos escogidos y permanece
siempre en l. Tras cada incorporacin se comprueba si el conjunto resultante es una
solucin del problema. Un algoritmo voraz es correcto si la solucin as encontrada es
siempre ptima. El esquema genrico del algoritmo voraz es:
funcion voraz(C:conjunto):conjunto
{ C es el conjunto de todos los candidatos }
S <= vacio

{ S es el conjunto en el que se construye la solucion}

mientras solucion(S) y C <> vaciohacer


x <= el elemento de C que maximiza seleccionar(x)

C <= C \ {x}
si completable(S U {x}) entonces S <= S U {x}
si solucion(S)
entonces devolver S
si no devolver no hay solucin
Ventajas e Inconvenientes de los Algoritmos Voraces
o La principal ventaja de los algoritmos voraces es que suelen ser bastante
eficientes.
o Sin embargo, puesto que siempre toman decisiones localmente ptimas y no
reconsideran nunca las decisiones tomadas, no garantizan que se obtenga la
solucin ptima del problema, ni siquiera que se obtenga una solucin, aun
cuando dicha solucin exista.
o Esto es debido a que las decisiones localmente ptimas no garantizan la
obtencin de la solucin ptima global.
o Los problemas resolubles mediante la tcnica voraz, deben cumplir el principio
de optimizacin:
Una secuencia ptima de decisiones, toda subsecuencia hade ser tambin
ptima.

Ejemplos de Algoritmos Voraces


Algunos problemas conocidos que pueden resolverse mediante la tcnica voraz son: El
problema del cambio en monedas.

El problema de los cdigos de Huffman.


Enunciado: Tenemos un archivo de entrada. Asumiremos que el archivo est
compuesto de bytes (enteros de 8 bits sin signo). El problema consiste en codificar
(comprimir) el archivo de entrada utilizando el menor nmero posible de bits.
Solucin: del problema Se podra decir que la solucin se obtiene aplicando
cuatro fases: 1. Crear un vector de frecuencias de aparicin de cada byte en el
archivo de entrada. 2. Crear el rbol ptimo de codificacin de Huffman a partir del
vector de frecuencias. 3. Crear una tabla de codificacin a partir del rbol de
codificacin. 4. La codificacin propiamente dicha.

El problema del cambio de monedas

Enunciado: "Se pide crear un algoritmo que permita a una mquina expendedora
devolver el cambio mediante el menor nmero de monedas posible, considerando
que el nmero de monedas es limitado, es decir, se tiene un nmero concreto de
monedas de cada tipo".
Solucin: La estrategia a seguir consiste en escoger sucesivamente las monedas
de valor mayor que no superen la cantidad de cambio a devolver. El buen
funcionamiento del algoritmo depende de los tipos de monedas presentes en la
entrada. As, por ejemplo, si no hay monedas de valor menor que diez, no se podr
devolver un cambio menor que diez. Adems, la limitacin del nmero de monedas
tambin influye en la optimalidad del algoritmo, el cual devuelve buenas soluciones
bajo determinados conjuntos de datos, pero no siempre. Considrense los dos
siguientes ejemplos como demostracin de lo dicho:

El problema del maratn de pelculas


Enunciado: Se tiene un maratn de cine en el que se van a proyectar durante todo un da
pelculas, todas diferentes en las N salas disponibles, de cada pelcula se conoce entre
otras cosas la duracin, la sala de proyeccin y la hora de comienzo.
Ayudar a la gente a planificar el maratn sabiendo que lo que quiere es ver el mximo
nmero posible de pelculas

El problema de la mochila.
Enunciado: "Se tiene una mochila que es capaz de soportar un peso mximo P,
as como un conjunto de objetos, cada uno de ellos con un peso y un beneficio. La
solucin pasa por conseguir introducir el mximo beneficio en la mochila, eligiendo
los objetos adecuados. Cada objeto puede tomarse completo o fraccionado".
Solucin: La forma ms simple de saber qu objetos se deben tomar es ordenar
dichos objetos por la relacin beneficio / peso de mayor a menor. De esta forma,
tomaremos los objetos con mayor beneficio en este orden hasta que la bolsa se
llene, fraccionando si fuera preciso, el ltimo objeto a tomar.

El problema de los caminos mnimos en grafos.


Enunciado : determinar el camino ms corto dado un vrtice origen al resto de los
vrtices en un grafo con pesos no negativos en cada arista
Solucin: consiste en ir explorando todos los caminos ms cortos que parten del
vrtice origen y que llevan a todos los dems vrtices; cuando se obtiene el camino

ms corto desde el vrtice origen, al resto de vrtices que componen el grafo, el


algoritmo se detiene.

Bibliografa:
https://es.scribd.com/doc/131704052/23/Ventajas-e-Inconvenientes-de-losAlgoritmos-Voraces
http://www.virtual.unal.edu.co/cursos/sedes/manizales/4060024/Lecciones/Capit
ulo%20III/avoraces.htm
http://thales.cica.es/rd/Recursos/rd99/ed99-0033-04/voraz_introd.html

Você também pode gostar