Los algoritmos aparecen con frecuencia en las matemáticas, sobre todo en las discretas. El lugar obvio es la teoría de grafos y la combinatoria. Se tratarán temas como los árboles de expansión, la búsqueda de caminos, la construcción de conjuntos independientes, los flujos de red, etc. Por supuesto, también querrás resolver problemas de optimización. Entender por qué funcionan los algoritmos le permitirá comprender mejor los problemas.
También entran en juego otras áreas de las matemáticas. Por ejemplo, ¿sabía que construir un árbol de expansión está muy relacionado con construir una base para un espacio vectorial? Las relacionamos con la Teoría de Matroides, donde tenemos un conjunto base $G$ y un conjunto $I \subset 2^{G}$ donde cada elemento de $I$ es un subconjunto independiente de $G$ . Si $G$ es un conjunto de vectores, $I$ es el conjunto de todos los conjuntos de vectores linealmente independientes.
La independencia lineal también está relacionada con la geometría del plano proyectivo. La colinealidad en el plano de Fano también puede describirse mediante un Matroide.
Una vez configurado nuestro Matroide, podemos ordenar los elementos de $G$ y utilizar un algoritmo de base codiciosa para resolver el problema de optimización.
La teoría de los algoritmos también se adentra en la teoría de la $\mathcal{NP}$ -Completitud y complejidad. Es útil entender la idea de un problema que (creemos) no tiene solución eficiente, y demostrarlo. También te adentrarás en el análisis de la eficiencia temporal y espacial de un algoritmo. Esta habilidad es útil si trabajas en el lado numérico/aplicado de las cosas, para diseñar y seleccionar algoritmos eficientes en tu modelo matemático. Si usted está haciendo un montón de modelado de alta potencia y alto rendimiento, esto es muy útil.