Así que siento que mucha gente se está centrando en cómo las computadoras pueden calcular las cosas. Eso no me emociona. La pregunta no es acerca de “cómo hacen las computadoras las matemáticas” sino “cómo intentan las personas aprovechar las matemáticas para hacer cosas geniales con las computadoras”. Esa es la pregunta que estoy respondiendo.
- Matemática discreta: esto es ante todo. Cosas como la combinatoria, la teoría de grafos, la lógica, son cruciales para la informática. En última instancia, estamos trabajando en máquinas discretas (incluso las teóricas, como las máquinas de Turing o el cálculo Lambda de Church) y, en el mejor de los casos, podemos hablar sobre aproximaciones de cosas continuas. Aún así, esto no significa que no podamos usar la continuidad como un buen modelo, como en
- Análisis real: si toma un curso de algoritmos (fundamentalmente un esfuerzo discreto), sus análisis de tiempo serán en términos de notación “big-oh”; en última instancia, así es como las funciones actúan asintóticamente a medida que sus entradas abarcan todos los valores posibles. Si bien esto es, en última instancia, de naturaleza discreta, es útil utilizar el cálculo / análisis real e integrar nuestras funciones para analizar en un continuo (como [math] \ mathbb R [/ math]).
- Teoría del múltiple: los múltiples son una rama de la topología y la geometría. Estos aparecen en una gran cantidad de teoría del aprendizaje automático, ya que los algoritmos involucrados están descubriendo implícitamente un [matemático] n [/ matemático] múltiple en algún espacio ambiental. No soy un chico de ML, así que no puedo decirte más que eso, pero esta es un área activa de investigación.
- Topología: más general que la teoría múltiple, la topología tiene algunas aplicaciones sorprendentes en la teoría de la computación; en combinatoria; en redes (y también en aprendizaje automático, como arriba).
- Estadísticas y teoría de la probabilidad: de nuevo, ML. También las estadísticas son el rey para el análisis empírico
- Álgebra abstracta: esto aparece en todas partes. El estudio del diseño del lenguaje de programación, por ejemplo, modela algunas propiedades agradables (como el sistema de tipos) algebraicamente. Tome un sistema de tipos con una relación básica de subtipo y suponga que hay algún “tipo más grande” (llamado unión o límite superior mínimo de todos los demás elementos; piense en
Object
en Java). Esto forma un entramado de unión bajo la operación de supertipo menos común: tipos dados [matemática] T_1, T_2 [/ matemática] decimos que [matemática] T = T_1 \ vee T_2 [/ matemática] if [matemática] T_1 <: T [/ matemática] y [matemática] T_2 <: T [/ matemática] y que cualquier otra [matemática] T '[/ matemática] que satisfaga esto también satisfizo [matemática] T <: T' [/ matemática]. Mira en celosías para más información sobre esto; es bastante sencillo pero un poco formal.Otro lugar donde aparecen las tonterías algebraicas es en la gestión matemática del estado de la computación. Esto es realmente muy difícil de modelar bien. Lo que implementaron lenguajes como Haskell fue una mónada: una envoltura que se basa (libremente) en la noción categórica de una mónada fuerte. Básicamente, una mónada tiene dos operaciones: le permite inyectar un valor en la mónada y le permite tomar mónadas con valores y convertirlos en la misma mónada con un nuevo valor (posiblemente de un nuevo tipo); Además, estas operaciones tienen que satisfacer algunas leyes básicas de cordura que intuitivamente pensarías que son ciertas pero para las cuales ciertos casos degenerados pueden conjurarse para violar si una persona verdaderamente vil y horrible tuviera que pensar en ello …
- Teoría de la computación y la complejidad: la computación es discreta pero es una pequeña teoría agradable en sí misma. La complejidad (también discreta) se ha convertido en un tema muy interesante y difícil (ver P = NP).
Este es un tipo de matemática muy centrada en el CS que a menudo se inspira en diversos orígenes. - Teoría de números: la criptografía, esa cosa que hace posible sus compras en Amazon, depende completamente de la teoría de números. Mira en RSA, por ejemplo
- Álgebra lineal: pertenece al primer puesto de la lista y podría decirse que es un subcampo de álgebra abstracta. El álgebra lineal se puede usar para gráficos; para grandes conjuntos de datos; para algoritmos de compresión; para encriptación (AES); para codificación de información (búsqueda de matrices dispersas, etc.).
- Tecnología: ¿Es posible identificar "objetos" en imágenes tomadas desde teléfonos inteligentes?
- ¿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?
- ¿Qué literatura necesitas para resolver el problema P vs NP?
- Cómo aprender machine learning con experiencia en negocios
- ¿Puede un programa de computadora derivar las matemáticas?