Discusión:Algoritmo voraz

Contenido de la página no disponible en otros idiomas.
De Wikipedia, la enciclopedia libre

¿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)