¿Qué es un algoritmo pseudo-polinomio?
Un algoritmo pseudo-polinomio es un algoritmo cuya complejidad temporal en el peor de los casos es polinomial en el valor numérico de la entrada (no en el número de entradas).
Por ejemplo, considere el problema de contar las frecuencias de todos los elementos en una array de números positivos. Una solución de tiempo pseudopolinomial para esto es primero encontrar el valor máximo, luego iterar desde 1 hasta el valor máximo y para cada valor, encontrar su frecuencia en la array. Esta solución requiere tiempo de acuerdo con el valor máximo en la array de entrada, por lo tanto, pseudopolinomio. Por otro lado, un algoritmo cuya complejidad de tiempo es polinomial en el número de elementos en la array (no valor) se considera un algoritmo de tiempo polinomial.
Pseudo-polinomio y NP-Completo
Algunos problemas NP-Completos tienen soluciones temporales pseudo-polinómicas. Por ejemplo, las Soluciones de Programación Dinámica de problemas de Mochila 0-1 , Suma de Subconjunto y Partición son Pseudo-Polinomios. Los problemas NP completos que se pueden resolver utilizando algoritmos de tiempo pseudopolinomiales se denominan débilmente NP-completos.
Referencia:
https://en.wikipedia.org/wiki/Pseudo-polynomial_time
Este artículo es una contribución de Dheeraj Gupta . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo y enviarlo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA