¿Es P=NP? ¿Podemos resolver cualquier problema con la informática?

Hoy en día, muchas personas confían en que, en algún momento, la informática podrá resolver todos los problemas del ser humano.

El auge del machine learning y la inteligencia artificial nos hacen soñar con un futuro en el que los algoritmos de las máquinas inteligentes serán capaces de dar respuesta a cualquier cuestión y, por tanto, podremos obtener soluciones para todos nuestros contratiempos. Nosotros, los humanos, sólo tendremos que plantear la pregunta y tumbarnos a esperar la solución.

Sin embargo, y desde el punto de vista matemático, no está tan claro que las cosas sean así. En este artículo vamos a hablar acerca de una pregunta que los matemáticos llevan décadas haciéndose y a la que todavía no se ha dado una respuesta. ¿Es P=NP?

¿Es P=NP?

Claro, si no eres matemático ni informático, o si no te has interesado en algún momento por esta cuestión, no tendrás ni idea de lo que estamos hablando. Y con razón.

En informática, se diferencia, grosso modo, entre dos tipos de problemas: los resolubles (aquellos se sabe pueden ser solucionados empleando la suficiente potencia de cómputo) y los irresolubles, conocidos como problemas indecidibles (aquellos que nunca se podrían solucionar, por más capacidad de cómputo que se empleara).

Dentro de los problemas resolubles encontramos a su vez otra categoría, que se viene a llamar la de los problemas intratables, esto es, aquellos que teóricamente pueden resolverse, pero para los que sería necesario utilizar tanto tiempo de cálculo que se sitúan al mismo nivel que los irresolubles. Para entendernos mejor, no se trata de que sea un ser humano quien se encargue de realizar los cálculos, sino de que pueda o no existir un algoritmo que sea capaz de realizar los cálculos en un periodo de tiempo razonable.

Hechas estas distinciones, sigamos avanzando. A los problemas que podemos resolver en un periodo de tiempo razonable se les ha dado a llamar polinomiales, representados por la letra “P”. De otro lado, existe una clase de problemas que agrupa a todos los P, a los que se suman otros muchos cuya categoría es, por el momento, desconocida (podríamos decir que aún no sabemos si podemos incluirlos en la clase P o la dificultad de su resolución supone que sean problemas intratables).

Así, y sentadas estas bases llegamos a la pregunta que da título a este epígrafe? ¿Es P=NP? ¿Podemos incluir toda esa categoría que aún desconocemos si son resolubles dentro de la categoría P o debemos situarlos todos dentro de la los problemas intratables?

A estas alturas tal vez os preguntéis qué interés tiene cuestionarse esto a nivel práctico. Bueno, no es que el mundo vaya a colapsar según el sentido de la respuesta, pero si ésta fuera que P≠NP los informáticos dejarían de buscar solución para cierto (y numeroso) tipo de problemas al considerarlos intratables, esto es, irresolubles en la práctica.

Sin embargo, si la respuesta fuera que P=NP esto podría suponer una buena noticia para muchas industrias y servicios, que contarían con la posibilidad de resolver muchos problemas cuya solución hoy no sabemos si podemos obtener o no.

Volviendo a la pregunta inicial…

Lo cierto es que si “ascendemos” a nuestro “sucio” mundo real desde el complejo y exacto mundo de las matemáticas, las cosas no son siempre tan precisas.

Aunque toda nuestra realidad tenga una base matemática (o, al menos, eso es lo que sostienen muchos matemáticos), el mundo real es tan complejo que descifrarlo con exactitud es, con demasiada frecuencia, una tarea imposible.

Si traducimos esto a los algoritmos de los que hablábamos al inicio de este artículo (machine learning e inteligencia artificial) lo que encontramos es que, cuando se plantea a estos un problema que deben resolver en el mundo real, no suelen ofrecer una respuesta exacta.

¿Qué significa esto? Por supuesto, no quiere decir que los algoritmos utilicen una forma de pensar intuitiva o “no matemática”. Por el contrario, las matemáticas son su “lenguaje” y el cálculo su herramienta predilecta. Sin embargo, la complejidad e incluso la irresolubilidad de muchos problemas hace que los algoritmos no siempre ofrezcan soluciones exactas, sino que estimen probabilidades (con frecuencia decidiendo después entre la opción que les parece más probable).

Un ejemplo sencillo y que está a la vista de todo el mundo. Cuando, en 2011, el programa de inteligencia artificial Watson (desarrollado por IBM) participó –y ganó- en el programa de televisión de preguntas y respuestas “Jeopardy”, este no ofrecía respuestas tajantes a las preguntas que el presentador del programa planteaba. Por el contrario, elaboraba un listado de posibles respuestas, a las que otorgaba un porcentaje de probabilidad de ser las acertadas, y ofrecía como respuesta definitiva aquella que obtenía una probabilidad de acierto más elevada.

Muchos de los algoritmos de inteligencia artificial “débil” que conocemos hoy en día funcionan de una manera similar. Los problemas que se plantean en el mundo real pueden ser tan complejos y obligan a tener en cuenta tantas variables que resulta imposible dar una respuesta matemáticamente exacta, por lo que hay que “fiarse” de las probabilidades. Eso sí, para dar respuesta a algunos problemas, ¡es mejor eso que confiar en nuestros limitados cerebros humanos!

Así, si volvemos a la pregunta que da título a este artículo podríamos decir que no, que la informática no puede dar una respuesta exacta a cualquier problema, aunque sí es posible que pueda ayudarnos (ya lo hace hoy en día y lo hará aún mejor en el futuro) a dar una solución más o menos satisfactoria a la mayoría de los problemas a los que tengamos que enfrentarnos (¡si es que seguimos aquí para verlo!).

¿Qué tal se encuentra tu humano cerebro a estas alturas de la lectura? ¿Has sido capaz de llegar hasta aquí? ¡Te agradecemos el esfuerzo! Y si lo has conseguido, ¿por qué no dedicas unos minutos a conocer Pandora FMS?

Pandora FMS no puede resolver problemas, pero te puede decir cuándo algo es un problema o está a punto de serlo. Quizás no sea inteligente, pero es decidido y rápido.

Pandora FMS es un software de monitorización flexible, capaz de monitorizar dispositivos, infraestructuras, aplicaciones, servicios y procesos de negocio.

¿Quieres conocerlo mejor? Entra aquí: https://pandorafms.com/es/

O también puedes enviar cualquier consulta que tengas acerca de Pandora FMS. Hazlo de una manera muy sencilla, gracias al formulario de contacto que se encuentra en la siguiente dirección: https://pandorafms.com/es/empresa/contacto/

¡El equipo de Pandora FMS estará encantado de atenderte!

Shares