elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Foros Generales
| |-+  Foro Libre
| | |-+  ¿El problema más importante: P vs. NP?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿El problema más importante: P vs. NP?  (Leído 4,110 veces)
JonaLamper


Desconectado Desconectado

Mensajes: 394



Ver Perfil
¿El problema más importante: P vs. NP?
« en: 2 Junio 2016, 00:18 am »

Bueno, ahora explicaré un poco mejor qué es P vs. NP (espero que está vez no me borren el thread  ;D) y porqué es el problema más importante en computación y uno de los más importantes del mundo. Vamos a ello:


Esta historia empieza cuando el Instituto Clay de Matemáticas  (Cambridge, Massachusetts) se reúne en el año 2.000 y establece 7 problemas muy importantes cuya solución se desconoce. Estos 7 problemas pasan a conocerse como "Los problemas del milenio" y el Instituto Clay ofrece una recompensa de 1 millón de dólares por la resolución de cada problema. Como os podéis imaginar, el simple hecho de entender los problemas no está al alcance de todos, pues son problemas bastante profundos que tienen que ver con matemáticas, física, etc. Hoy vamos a conocer uno de ellos: P vs. NP. ¿Por qué? Porque P vs. NP es el problema más reciente de todos y resulta muy fácil de entender (y además es un problema de computación). Vamos a explicarlo sin entrar en muchos detalles y abordando lo básico para saber de qué trata:

Las clases de complejidad P y NP

Cuando logramos resolver un problema con un algoritmo tardamos un tiempo... el que sea. Nos vamos a concentrar únicamente en dos tiempos: polinómico y no polinómico. Los problemas que tardan un tiempo polinómico son aquellos que se resuelven en un tiempo n, n^2, n^3, n^100, n^10000, etc. Y los problemas que tardan un tiempo no polinómico son aquellos que se resuelven en un tiempo 2^n, 3^n, 10^n, 100^n, etc. Como todos sabéis, es mucho peor 2^n que n^2. Vamos a ver algunos problemas de ejemplo

  • Ejemplo polinómico: imaginemos que queremos buscar un número en una lista sin ordenar. Entonces no queda más remedio que recorrer toda la lista, ¿verdad? Bien, pues ese problema se resuelve en un tiempo polinómico (pues a las malas tendremos que recorrer toda la lista).
  • Ejemplo no polinómico: imaginemos que te doy un conjunto de números, este: {0, 2, 4, 5, 10, 230, 783, 45, 61, 17} y te digo "¿Hay alguna forma de que con ese conjunto consigas obtener el número 8 haciendo sumas y restas? Entonces lo que tú harías es empezar a probar todos los números a ver si logras el número 8 (ten en cuenta que el conjunto podría ser muy grande, de tamaño n).

Perfecto, ahora sabemos que existen 2 cajitas donde podemos clasificar los problemas según tarden un tiempo polinómico o no polinómico en resolverse. Pues estas dos cajitas son las clases de complejidad P (polinómico) y NP (no polinómico). Por cierto, P en realidad significa "Polinómico determinista" y NP significa "Polinómico no determinista", pero esto es otra historia que será contada en otro momento.


Vale, vale. Pero... ¿Y por qué todo esto es tan importante? Ahora mismo te vas a dar cuenta.

El Problema

El problema de P vs. NP se basa en demostrar si ambas clases de complejidad son la misma (en este caso P = NP) o son diferentes (P != NP). Dicho de otro modo: ¿existe algún problema en NP que pueda resolverse en tiempo polinómico? Pues aunque esta pregunta parezca tan trivial, nadie lo sabe. Vamos a ver qué pasa si P = NP o si P != NP (ahora sí que os vais a acojonar).


P != NP

Si P != NP (que es lo que la mayoría de la gente piensa) en realidad no hay grandes cambios. O sea, esto no sería divertido. Simplemente se sabría que hay problemas cuya resolución no puede hacerse mejor que en tiempo no polinómico. Y poco más.

P = NP

Aquí viene lo divertido. Veamos: hay problemas que tardan tiempo no polinómico y entonces, cuando tienen una entrada un poco grande, la función crece rapidísimo (imagina 2^100 o 2^1000). Por lo tanto, aunque los ordenadores vayan súper rápidos, tardarían un tiempo muy, muy grande en hallar una solución. ¿Sabéis ese fabuloso algoritmo de cifrado que se llama RSA? RSA se utiliza para cifrar cuentas bancarias y multitud de comunicaciones hoy en día. Pues bien, RSA se basa en la factorización de números enteros, ¿y sabéis qué? Hallar la factorización de números enteros es un problema que está en NP. Luego, ¿os imagináis qué pasaría si alguien descubre que P = NP? Pues eso, que toda la seguridad de Internet se va a la *****.


No quiero extenderme mucho más, pero si buscáis un poco, veréis que hay miles de problemas en NP (y muchos de ellos con un gran impacto en el día a día del ser humano). Así que si P != NP perfecto. Pero si P = NP... Creo que no exageraría al decir que la vida cambiaría para muchas personas.

Y por eso, P vs NP es uno de los 7 problemas del milenio (y quizá el de mayor repercusión).

Aquí termina la historia y os dejo una pregunta para quien quiera resolverla:

¿P = NP o P != NP?

 ;D


Links interesantes:

En línea

Utilizar palabras para hablar de palabras es como utilizar un lápiz para hacer un dibujo de ese lápiz sobre el mismo lápiz.
A.I.

Desconectado Desconectado

Mensajes: 61


Ver Perfil
Re: ¿El problema más importante: P vs. NP?
« Respuesta #1 en: 2 Junio 2016, 20:00 pm »

NP no quiere decir no polinómico. NP es polinómico, pero no determinista.
En línea

JonaLamper


Desconectado Desconectado

Mensajes: 394



Ver Perfil
Re: ¿El problema más importante: P vs. NP?
« Respuesta #2 en: 2 Junio 2016, 21:00 pm »

¿Has leído todo el thread? Me refiero sobre todo a la parte que dice "NP significa Polinómico no determinista".

Cuando digo que tarda un tiempo "no polinómico" me refiero a que los ordenadores tardan ese tiempo en resolver un problema en NP. O sea, tardan un tiempo exponencial (n^2, n^100...). Lo cual es "no polinómico"
« Última modificación: 2 Junio 2016, 21:11 pm por JonaLamper » En línea

Utilizar palabras para hablar de palabras es como utilizar un lápiz para hacer un dibujo de ese lápiz sobre el mismo lápiz.
A.I.

Desconectado Desconectado

Mensajes: 61


Ver Perfil
Re: ¿El problema más importante: P vs. NP?
« Respuesta #3 en: 2 Junio 2016, 21:12 pm »


Las clases de complejidad P y NP
...

Perfecto, ahora sabemos que existen 2 cajitas donde podemos clasificar los problemas según tarden un tiempo polinómico o no polinómico en resolverse. Pues estas dos cajitas son las clases de complejidad P (polinómico) y NP (no polinómico).
...


A parte de que hay información errónea está muy mal redactado, lleva a confusión.
En línea

JonaLamper


Desconectado Desconectado

Mensajes: 394



Ver Perfil
Re: ¿El problema más importante: P vs. NP?
« Respuesta #4 en: 2 Junio 2016, 22:15 pm »

Está bien, dime, ¿qué información errónea hay?
En línea

Utilizar palabras para hablar de palabras es como utilizar un lápiz para hacer un dibujo de ese lápiz sobre el mismo lápiz.
A.I.

Desconectado Desconectado

Mensajes: 61


Ver Perfil
Re: ¿El problema más importante: P vs. NP?
« Respuesta #5 en: 3 Junio 2016, 01:18 am »

Por ejemplo lo que he citado en el mensaje anterior.
En línea

JonaLamper


Desconectado Desconectado

Mensajes: 394



Ver Perfil
Re: ¿El problema más importante: P vs. NP?
« Respuesta #6 en: 3 Junio 2016, 09:44 am »

Te vuelvo a repetir: lo ordenadores de hoy en día son deterministas. No existen ordenadores con muchísimos cores tales que cada core pueda ir explorando una solución como si fuese una Máquina de Turing no determinista. Luego los ordenadores de hoy en día tardan un tiempo polinómico en resolver problemas en P y un tiempo no polinómico (o más técnicamente "súper polinómico) en resolver problemas en NP.

Si eso es lo que no se entendió, ahora queda solucionado.
En línea

Utilizar palabras para hablar de palabras es como utilizar un lápiz para hacer un dibujo de ese lápiz sobre el mismo lápiz.
A.I.

Desconectado Desconectado

Mensajes: 61


Ver Perfil
Re: ¿El problema más importante: P vs. NP?
« Respuesta #7 en: 3 Junio 2016, 10:00 am »

Entonces parece que tienes a mano la demostración de P != NP, cuéntanos que tal la entrega del premio. También es una pena que hayas conseguido demostrar la opción no rentable (económicamente) del problema ;-)
En línea

JonaLamper


Desconectado Desconectado

Mensajes: 394



Ver Perfil
Re: ¿El problema más importante: P vs. NP?
« Respuesta #8 en: 4 Junio 2016, 00:48 am »

Lo que es una pena es que no haya gente en este foro interesada en la cuestión de P vs. NP.

Porque es obvio que tú no cuentas.
En línea

Utilizar palabras para hablar de palabras es como utilizar un lápiz para hacer un dibujo de ese lápiz sobre el mismo lápiz.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
PROBLEMA IMPORTANTE CON PESTAÑA SEGURIDAD CARPETA
Windows
LuzBlanca 3 7,358 Último mensaje 15 Enero 2012, 14:56 pm
por Randomize
Importante
Dispositivos Móviles (PDA's, Smartphones, Tablets)
GastyPuesto 0 1,900 Último mensaje 27 Septiembre 2012, 01:25 am
por GastyPuesto
importante
Programación General
wannabe 1 2,199 Último mensaje 15 Enero 2013, 15:31 pm
por $Edu$
¿Qué tan importante es C++?
Programación General
Wofo 6 6,855 Último mensaje 5 Marzo 2013, 14:50 pm
por Zhuikov
Importante! « 1 2 3 »
Dudas Generales
adrianitoo 29 13,277 Último mensaje 25 Agosto 2013, 20:50 pm
por adrianitoo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines