¿Cuáles son algunas aplicaciones de algoritmos en informática teórica a problemas en la práctica?

Hay una pequeña paradoja en esta pregunta ya que, en cierto sentido, una vez que un algoritmo se utiliza en la práctica, la gente ya no lo llamará ciencia de la computación teórica.

Puedes ver algunos de los míos en el video publicado por la respuesta de Obinna. Éstas incluyen:
* una variante del problema del vendedor ambulante para crear títulos para documentos generados por máquina
* una variante diferente de TSP para optimizar el diseño del código durante la compilación
* códigos de red lineales aleatorios para transmitir información a través de redes
* hashing consistente para implementar tablas hash distribuidas (para Akamai y otros sistemas peer to peer, así como la base de datos Cassandra)
* flujo máximo para determinar la estructura de las redes genéticas
Puede encontrar documentos sobre esos y otros ejemplos que he trabajado en mi página de publicaciones http://people.csail.mit.edu/karg… si filtra en “Aplicaciones de la teoría” en el filtro “categoría”.

Hay toneladas de otras aplicaciones; Solo puedo enumerar algunos:
* El hash perfecto te permite crear tablas hash sin colisiones, lo que garantiza una búsqueda en tiempo constante
* desde sus orígenes como una herramienta para ayudar a resolver problemas logísticos para el Ejército de EE. UU. en la Segunda Guerra Mundial, la programación lineal se ha utilizado para la optimización en casi todas las industrias imaginables. Hace muchos años recuerdo a Bill Pulleyblank en IBM diciéndome cómo su grupo había ahorrado a una fábrica de acero decenas de millones de dólares al año al calcular una mejora de un porcentaje en la forma en que cortaban sus rollos de acero para completar los pedidos.
* Cada aerolínea resuelve problemas de optimización combinatoria masiva para programar sus vuelos y tripulaciones
* Lo mismo es cierto en otros dominios de transporte como la programación de trenes; ver por ejemplo http://ifors.org/web/martin-grot…
* El trabajo de Al Roth sobre problemas de correspondencia revolucionó el sistema de donación de riñones en los EE. UU. (Y lo ayudó a ganar un premio Nobel)
* Las estructuras de datos de geometría computacional (particiones de espacio binario, diagramas voronoi, estructuras de datos de búsqueda de rango ortogonal, etc.) sustentan gran parte de los gráficos de computadora que impulsan nuestras películas y videojuegos
* Del mismo modo, las triangulaciones de Delaunay son importantes para los métodos de elementos finitos utilizados en muchas simulaciones (túneles de viento, dinámica de fluidos, etc.)
* Los algoritmos de flujo máximo se utilizan en técnicas de “corte de gráficos” en visión artificial

Un ejemplo es la prueba de primalidad (prueba si un número es primo o no). Usas esto en, por ejemplo, encriptación RSA cuando deseas generar números primos aleatorios muy grandes. Para hacer esto, solo genera un número aleatorio muy grande y utiliza un probador de primalidad para verificar si obtuvo un número primo; si no, repita. Según el teorema del número primo, la probabilidad de que un número aleatorio de n bits sea primo es aproximadamente proporcional a 1 / n, por lo que solo necesita repetir este O (n) veces para generar un primo aleatorio de n bits con alta probabilidad.

En el siguiente video, David Karger dio varios ejemplos de aplicaciones de ideas teóricas a problemas prácticos.
Estas incluyen ideas bien conocidas (y no tan conocidas).

Puede encontrar los 4 principales problemas de informática clásica y cómo deberíamos relacionarlos con las aplicaciones del mundo real para demostrar la relevancia de los temas que el alumno aprendió en la escuela.

Los 4 problemas clásicos de informática y cómo debemos cambiar

Mira varios algoritmos de clasificación. Muchos algoritmos para ordenar una lista o matriz o incluso múltiples variables. Si eso no es lo que quiere decir, deberá especificar un poco más.

Hashing consistente (los autores fundaron Akamai basándose en la idea): Hashing consistente

More Interesting

Cómo comenzar a hacer aprendizaje automático para un análisis de datos simple

¿Cuáles son algunas de las ofertas de colocación dadas a los estudiantes de matemáticas de IIT-K? ¿Son equivalentes a los chicos de CS?

¿Qué son los combinadores de SKI?

¿Cuál es el uso de las matemáticas en el mundo real en informática?

¿Quién comenzó la informática?

¿Qué son los bitcoins? ¿Cómo trabajan? ¿Por qué deberían ser utilizados?

¿Cuál es la mejor manera de aprender geometría algebraica si uno no está interesado en usarlo para propósitos teóricos numéricos, sino más bien para aplicaciones en física teórica e informática teórica?

Una máquina de Turing tiene una cantidad infinita de memoria, que no es posible en la vida real. ¿Por qué sigue siendo un buen modelo?

¿Cómo debo aprender matemáticas para el algoritmo de programación?

En algoritmos, proporcione una matriz incremental del entero (-200, ... 0, ... 500) y quite un número. ¿Cuál es el algoritmo eficiente para encontrar el número que falta?

Dados N puntos en el plano, ¿qué es un algoritmo eficiente para encontrar todos los conjuntos de 3 o más puntos colineales?

¿Necesito ser bueno en matemáticas para aprender codificación?

Hay una recta numérica con puntos enteros. Empiezas en 0. Puedes moverte (saltar) de dos maneras: 'a' avanza o 'b' retrocede a la vez. Si se da un entero de destino particular, x, (x> = 0), ¿cómo encontrar el número mínimo de saltos necesarios para llegar al destino?

¿Cuáles son algunos de los ejemplos más interesantes de problemas indecidibles sobre las máquinas de Turing?

¿Existe alguna analogía en la vida real con el concepto de expresiones regulares?