Todo el Internet se basa en el supuesto de que P! = NP. ¿Conoces el problema del vendedor ambulante?
Cambie el vendedor a una solicitud de página y las casas a servidores y obtendrá el enrutamiento de paquetes de Internet. Cuando mi computadora en Boston quiere enviar solicitudes a una computadora en Londres, tiene que encontrar un camino para llegar allí rebotando de un servidor a otro en el camino. Los datos podrían tomar miles de rutas diferentes a través de miles de computadoras diferentes entre Boston y Londres. Encontrar la ruta más rápida es una versión más grande de nuestro problema de vendedor.
Google, Facebook y Apple intentan facilitar el problema construyendo centros de datos cerca de las principales ciudades. Están tratando de hacer el mapa más pequeño cuando las personas hacen solicitudes.
- ¿Se puede usar un haz de neutrinos para la comunicación? ¿Es posible tener una computadora basada en neutrinos?
- ¿Cuáles son las puertas lógicas más comunes en las computadoras?
- Cómo diseñar una máquina de Turing que acepte una cadena de longitud impar
- ¿Cuáles son las ventajas y desventajas de la inteligencia artificial?
- ¿Cuáles son algunos aspectos negativos del programa de informática en Harvard?
Si pudiera encontrar una mejor manera de enrutar datos en Internet, podría hacer que las transacciones de acciones sean más rápidas que los demás y ganar miles de millones de dólares.
Otra versión de este problema tiene que ver con los secretos.
La mayor parte de Internet funciona con secretos. Quiero dar mi número de tarjeta de crédito a Amazon, pero no al tipo que está sentado a mi lado en Starbucks. No quiero compartir mi contraseña bancaria con mis vecinos, y no quiero dejar que mis amigos lean mi correo electrónico. Puede comprar, compartir y trabajar en Internet debido a secretos, y todos esos secretos se basan en las matemáticas.
La mayoría de los secretos en Internet están protegidos por criptografía de clave pública. Esa criptografía se basa en encontrar dos números grandes que, multiplicados juntos, equivalen a un número muy grande. Los dos números grandes son factores del número muy grande. (Piense en una mochila llena de pesas. Puede saber que el paquete pesa 10 kilogramos, pero no sabe si tiene un peso de 10 kilogramos, 10 pesos de un kilogramo o algo intermedio).
Por ejemplo, tome el número 26. Tiene cuatro factores: 1, 2, 13 y 26. Cada número contiene 1 y el número mismo, por lo que ignoraremos esos factores; los importantes son 2 y 13.
2 × 13 = 26
Puedes encontrar los factores del 26 probando cada número entre 1 y 26. Es mucho más difícil con un número increíblemente grande como:
33478071698956898786044169848212690817704794983713768568912431388982883793878002287614711652531743087737814467999489
¿Puedes encontrar factores de ese número? Te daré una respuesta.
36746043666799590428244633799627952632279158164343087642676032283815739666
y
511279233373417143396810270092798736308917
Esos números son vertiginosamente grandes. Nunca podría resolverlos en una hoja de papel, ni tampoco una computadora. No hay una buena manera de escribir un programa de computadora para encontrar rápidamente los factores de números grandes. Lo mejor que puede hacer es descartar los números que claramente no funcionan, y luego buscar factores uno por uno entre los billones y billones de números restantes. Encontrar factores es un problema de NP.
Tuve que trabajar duro para encontrar esos factores (bueno, los busqué en Wikipedia, pero alguien trabajó duro para encontrarlos). Asegurarse de que tengo razón es fácil. Podría escribir un pequeño programa de computadora para multiplicar el segundo y el tercer número. Si producen el primer número, entonces tengo razón y son factores. Tu trabajo es simple; Este es un problema de nivel P.
Si encontrar esos factores fuera fácil, Internet se caería.
Fuente: Revista Smashing