Algoritme voraç

En ciències de la computació, un algoritme voraç (també conegut com codicioso, goloso, ávido, devorador o greedy) és una estratègia de busca per la qual se seguix una heurística consistent en elegir l'opció òptima en cada pas local en l'esperança d'aplegar a una solució general òptima. Este esquema algorítmic és el que menys dificultats planteja a l'hora de dissenyar i comprovar el seu funcionament. Normalment s'aplica als problemes d'optimisació.
Esquema
[editar | editar còdic]Donat un conjunt finito d'entrades , un algoritme voraç torna un conjunt (seleccionats) tal que i que ademés complix en les restriccions del problema inicial. A cada conjunt que satisfaça les restriccions se li sol denominar prometedor, i si este ademés conseguix que la funció objectiu es minimise o maximizar (segons corresponga) direm que és una solució òptima.
Característiques
[editar | editar còdic]S'utilisen generalment per a resoldre problemes d'optimisació (obtindre el màxim o el mínim). Prenen decisions en funció de l'informació que està disponible en cada moment. Una volta presa la decisió, esta no torna a replantejar-se en el futur. Solen ser ràpits i fàcils d'implementar. No sempre garantisen alcançar la solució òptima.
L'enfocament “greedy” no nos garantisa obtindre solucions òptimes. Per lo tant, sempre caldrà estudiar la correcció de l'algoritme per a demostrar si les solucions obtingudes són òptimes o no.
Elements dels que consta la tècnica
[editar | editar còdic]El conjunt de candidats, entrades del problema. Funció solució. Comprova, en cada pas, si el subconjunt actual de candidats elegits forma una solució (no importa si és òptima o no ho és). Funció de selecció. Informa quin és l'element més prometedor per a completar la solució. Este no pot haver segut triat en anterioritat. Cada element és considerat una sola volta. Després, pot ser rebujat o acceptat i pertanydrà a . Funció de factibilidad. Informa si a partir d'un conjunt es pot aplegar a una solució. Ho aplicarem al conjunt de seleccionats unit en l'element més prometedor. Funció objectiu. És aquella que volem maximizar o minimisar, el núcleu del problema.
Funcionament
[editar | editar còdic]L'algoritme tria en cada pas al millor element possible, conegut com el element més prometedor. S'elimina eixe element del conjunt de candidats () i, acte seguit, comprova si l'inclusió d'este element en el conjunt d'elements seleccionats () produïx una solució factible.
En cas que aixina siga, s'inclou eixe element en . Si l'inclusió no fora factible, es descarta l'element. Iteramos el bucle, comprovant si el conjunt de seleccionats és una solució i, si no és aixina, passant al següent element del conjunt de candidats.
Referències
[editar | editar còdic]Departament de ciències de la computació Universitat de Granada. (s. f.). Algoritmes Greedy. Abad Soriano, M. T. (2007–2008). Algoritmes voraços.
- Fillottrani, P. R. (2017). Algoritmes i complexitat.
- Este artícul conté una traducció derivada de «Algoritmo voraz» de Wikipedia en castellà publicada baix la Llicència de documentació lliure de GNU i la Llicència Creative Commons Reconeiximent-CompartirIgual 4.0 Internacional.