Introducción al algoritmo codicioso

Una estrategia utilizada para resolver problemas. El algoritmo codicioso se considera uno de los enfoques utilizados para resolver problemas. Este hereje de resolución de problemas va con la elección que parece mejor en ese momento. Este enfoque se utiliza mejor para resolver problemas de optimización. Los problemas de optimización se pueden definir como problemas que requieren resultados mínimos o máximos. Un algoritmo codicioso es un enfoque más simple y directo que se puede utilizar para lograr una solución óptima.

¿Qué es el algoritmo codicioso?

El Algoritmo codicioso es una estrategia algorítmica utilizada para tomar la mejor opción opcional en una etapa muy pequeña y, a la larga, generar una solución óptima a nivel mundial. Este algoritmo elige la mejor solución posible en ese momento sin tener en cuenta las consecuencias. El método codicioso dice que el problema debe resolverse en etapas en las que cada entrada se considera dado que esta entrada es factible. Como este enfoque solo se centra en un resultado inmediato sin tener en cuenta el panorama general, se considera codicioso.

Definiendo el concepto central

Hasta ahora, sabemos qué es un algoritmo codicioso y por qué se llama así. Los siguientes punteros te harán entender el algoritmo codicioso de una mejor manera. Por ahora, ha quedado muy claro que el algoritmo codicioso solo funciona cuando hay un problema; sin embargo, este enfoque solo es aplicable si tenemos una condición o restricción para ese problema.

Tipos de problemas

  1. Problema de minimización: Obtener una solución a un problema es fácil dado que se cumplen todas las condiciones. Sin embargo, cuando este problema exige un resultado mínimo, se denomina Problema de minimización.
  2. Problema de maximización : Un problema que exige el resultado máximo se conoce como el problema de maximización.
  3. Problema de optimización: Un problema se llama problema de optimización cuando requiere resultados mínimos o máximos.

Tipos de soluciones

  1. Solución factible: ahora, cuando surge un problema, tenemos muchas soluciones posibles para este problema. Sin embargo, teniendo en cuenta la condición establecida en ese problema, elegimos soluciones que satisfagan la condición dada. Dichas soluciones que nos ayudan a obtener resultados que cumplan con la condición dada se denominan Soluciones factibles .
  2. Solución óptima: una solución se llama óptima cuando ya es factible y logra el objetivo del problema; El mejor resultado. Este objetivo podría ser el resultado mínimo o máximo. El punto aquí para ser notado es que cualquier problema solo tendrá una solución óptima.

El siguiente ejemplo te hará entender el método codicioso fácilmente. Digamos, uno quiere comprar el mejor auto disponible en el mercado. Uno de los métodos para elegir este auto es mediante el análisis de todos los autos en el mercado. Ahora, esto lleva mucho tiempo, para facilitar la tarea, se selecciona un automóvil de las marcas específicas en las que están interesados ​​en invertir. Categorizando esto aún más, uno volvería a elegir los modelos deseados mirando sus características. Por lo tanto, el enfoque utilizado aquí es codicioso, ya que esta solución fue la solución óptima para usted mientras consideraba que todos los factores eran favorables para usted.

Componentes centrales de un algoritmo codicioso

Ahora, cuando comprendamos mejor este mecanismo, exploremos los componentes centrales de un algoritmo codicioso que lo distingue de otros procesos:

  • Conjunto de candidatos: se crea una respuesta a partir de este conjunto.
  • Función de selección: selecciona el mejor candidato para ser incluido en la solución.
  • Función de viabilidad: esta sección calcula si un candidato puede utilizarse para contribuir a la solución.
  • Una función objetivo: asigna un valor a una solución completa o parcial.
  • Una función de solución: se utiliza para indicar si se ha encontrado una solución adecuada.

¿Dónde funciona mejor el algoritmo codicioso?

El algoritmo codicioso se puede aplicar a los problemas mencionados a continuación.

  • El enfoque codicioso se puede utilizar para encontrar el gráfico de árbol de expansión mínimo utilizando el algoritmo de Prim o Kruskal
  • Encontrar el camino más corto entre dos vértices es otro problema que se puede resolver utilizando un algoritmo codicioso. Aplicar el algoritmo de Dijkstra junto con el codicioso algoritmo le dará una solución óptima.
  • Codificación Huffman

Ventajas

La mayor ventaja que tiene el algoritmo de Greedy sobre otros es que es fácil de implementar y muy eficiente en la mayoría de los casos.

Desventajas

El Algoritmo codicioso básicamente construye una solución parte por parte y elige la siguiente parte de tal manera que produzca la mejor solución para el problema actual que se presenta de inmediato. Como resultado, no hay consideración ni preocupación por las consecuencias de la decisión actual tomada. Nunca reconsiderando las elecciones tomadas anteriormente, el Algoritmo Greedy no puede producir una solución óptima, aunque ofrece una solución casi óptima . El Problema de la mochila y el Problema del vendedor ambulante son ejemplos de problemas en los que el Algoritmo codicioso no produce una solución óptima.

  • Problema de la mochila: Más comúnmente conocido con el nombre de problema de mochila, es un problema cotidiano que enfrentan muchas personas. Digamos que tenemos un conjunto de artículos y cada uno tiene un peso y un valor (ganancia) diferentes para llenar en un contenedor o debe recolectarse de tal manera que el peso total sea menor o igual al del contenedor mientras el beneficio total se maximiza .

Conclusión

El algoritmo codicioso se aplica mejor cuando se necesita una solución en tiempo real y las respuestas aproximadas son "suficientemente buenas". Claramente, un algoritmo codicioso minimiza el tiempo mientras se asegura de que se produzca una solución óptima, por lo tanto, es más aplicable para su uso en una situación donde se requiere menos tiempo. Después de leer este artículo, uno podría tener una idea justa sobre los algoritmos codiciosos. Además, esta publicación explica por qué se considera como los mejores marcos que responden a casi todos los desafíos de programación, además de ayudarlo a decidir la solución más óptima en un momento determinado.

Sin embargo, en el lado áspero, para aplicar la teoría del algoritmo codicioso, uno debe trabajar más duro para conocer los problemas correctos. Aunque es un concepto científico que tiene lógica, también tiene una esencia de creatividad.

Artículos recomendados

Esta ha sido una guía de Qué es un algoritmo codicioso. Aquí discutimos el concepto central, los componentes, la ventaja y la desventaja del algoritmo codicioso. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. Algoritmo en Programación
  2. ¿Qué es perl?
  3. Introducción al algoritmo
  4. ¿Qué es el Sprint ágil?