¿El algoritmo codicioso siempre resuelve el problema de cobertura de subconjunto?

Como sabrán, se muestra que la cobertura mínima del conjunto es NP-completa. Problemas como este generalmente se resuelven mediante algoritmos de aproximación o métodos heurísticos, porque es un compromiso razonable que no requerirá demasiado tiempo.

Como algoritmo de aproximación, el algoritmo codicioso puede no encontrar la solución óptima globalmente, sino probablemente una solución óptima localmente, siempre que el conjunto de subconjuntos de entrada tenga un subconjunto, cuya unión cubrirá el conjunto universal.

Veamos los pasos del algoritmo codicioso:

  1. Si el subconjunto resultante está vacío, coloque el subconjunto más grande en él;
  2. De lo contrario, busque un subconjunto con el mayor número de elementos que no están en el subconjunto resultante;
  3. Repita hasta que la unión del conjunto resultante cubra el conjunto universal.

Si ejecuta este algoritmo manualmente en varias entradas, es intuitivo que eventualmente resolverá la cobertura mínima establecida, pero la solución que encontrará no siempre será óptima.

More Interesting

¿Cuánto tiempo / horas debo pasar todos los días para ser un buen programador de Java para poder resolver estructuras de datos y algoritmos con ese lenguaje en el futuro?

¿Cuáles son las mejores prácticas para usar algoritmos de Machine Learning con Android?

¿Es posible determinar el valor máximo de puntos que se puede otorgar para una sola palabra Scrabble?

¿Cuál es el problema si clasificamos los intervalos según su tiempo de finalización como el problema de programación de intervalos? ¿Por qué es necesario ordenar según la hora de inicio en el problema de partición de intervalos?

¿Cuál es la mejor manera de encontrar la media de una secuencia en cualquier momento?

¿Cuáles son los mejores algoritmos de partición de gráficos para gráficos grandes?

Cómo calcular el gran espacio O de una pila en problemas de retroceso

¿Qué tan rápido irá un bote de semi desplazamiento de 24.5 m LWL x 6.4 m con una viga de 80 t con 1200 hp? ¿Tiene actualmente 2700 hp y pesa 85 t y va a 34 kts?

¿Cuál es la mejor estrategia para obtener una solución óptima para cualquier problema de codificación solicitado en la entrevista de codificación?

¿Qué es el retroceso en algoritmos?

Imagine una cerradura de bicicleta combinada con 4 anillos que contienen 10 letras. ¿Cómo se puede calcular qué letras en cada anillo producirán las palabras más válidas?

Cómo escribir un algoritmo de la pila de programas usando una matriz en C

¿Son SHA256 y AES256 funciones hash o cifrados o algoritmos?

Si una computadora toma el control total del control del tráfico aéreo, ¿cómo será el algoritmo? ¿Cómo manejará los aterrizajes de emergencia y cómo manejará una pista paralela?

¿Cuál es la forma más fácil / intuitiva de aprender sobre algoritmos y estructuras de datos?