Discusión:Algoritmo voraz

¿Por qué algoritmo greedy?

En el propio artículo aparece una traducción 'algoritmos ávidos', aunque creo que es de uso más frecuente 'algoritmos voraces'.

- Normalmente se denominan algoritmos voraces, miopes o glotones (greedy). Pienso que no está de más que se use ese término puesto que en mucha documentación en español lo especifican así. --Manz 17:10 24 jun 2006 (CEST)

-Tambien se les denomia "Golosos"

- Modifico el código:

 AlgoritmoGreedy(C: ConjuntoCandidatos)
   S:=∅;
   solucionEncontrada:=false;
   WHILE (C <> ∅) AND (NOT solucionEncontrada)
      a:=seleccionaCandidato(C);
      IF esFactible(a ∪ S)
        S:=S ∪ a;
        IF esSolucion(S) 
          solucionEncontrada:=TRUE
   return S; //devuelve la solución

Puesto que un Booleano por defecto es inicializado a false y eliminando el "solucionEncontrada:=false" se simplifica un poco.

Además propongo otro cambio (que alguien me confirme si estoy en lo cierto:)

 AlgoritmoGreedy(C: ConjuntoCandidatos)
   S:=∅;
   WHILE (C <> ∅) AND (NOT Solucion(S))
      a:=seleccionaCandidato(C);
      IF esFactible(a ∪ S)
           S:=S ∪ a;
   // FIN WHILE
   IF esSolucion(S) 
        return S; //devuelve la solución
   else
        return "No hay solucion"

--Manz 17:12 24 jun 2006 (CEST)

La presunción de que un booleano se inicializa a false depende del pseudocódigo que se utilice y no creo que esté de más. La otra variante que propones es eliminar el flag booleano; bueno, creo que su misión, aparte de quizá aportar claridad, es no ejecutar redundantemente la función esSolución(). Gothmog (discusión) 00:29 28 jun 2006 (CEST)
Volver a la página «Algoritmo voraz».