¿Cuáles son las características de un algoritmo codicioso?

Los síntomas (precondiciones) de Greedy son los mismos que los de DP, es decir, subproblemas superpuestos y subestructuras óptimas …

Tanto Greedy como DP son una forma de optimizar la recursividad (subestructura óptima). La diferencia está en su aplicabilidad, DP resuelve todos los subproblemas posibles y luego los combina para calcular la solución de un problema mayor, Greedy no resuelve todos los subprocesos. problemas, sigue un enfoque donde no surge la necesidad de resolver todos los subproblemas.

Obviamente, Greedy no se puede aplicar a todos los problemas, pero DP se puede utilizar para resolver todos los problemas, incluso los que se resuelven con DP.

Las diferencias se explican claramente en mi libro:

Compre programación dinámica para entrevistas de codificación: un enfoque ascendente para la resolución de problemas Reserve en línea a precios bajos en India

dos características: subestructura óptima y propiedad de elección codiciosa. Para la mayoría de los problemas que puede superar un algoritmo codicioso, el problema generalmente se puede convertir en un problema matroide máximo

Algoritmo codicioso: -El significado de este algoritmo es que vas a resolver una pregunta tomando el caso óptimo que crees que no se hace la pregunta y no es necesario que obtengas la respuesta.

Solo una ayuda: -Las principales preguntas de codiciosos pueden resolverse clasificando y la complejidad de la solución para este algoritmo es O (nlogn).

Espero eso ayude.

Para algoritmos con un gran espacio de búsqueda, una forma de aproximar la solución óptima es definir una métrica para estimar la “bondad” de una solución en un subespacio particular. Un algoritmo codicioso elige el subespacio para buscar en función de esta aproximación, luego elige el subespacio de ese subespacio en función de la misma métrica de aproximación, y así sucesivamente hasta obtener una solución. Los algoritmos codiciosos suelen ser rápidos, pero sus soluciones no siempre son óptimas, y debe tener cuidado de definir una buena métrica para obtener una solución casi óptima u obtener la solución óptima la mayor parte del tiempo.