He estado leyendo Álgebra lineal y sus aplicaciones para ayudar a comprender el material informático (principalmente el aprendizaje automático), pero me preocupa que mucha de la información no sea útil para CS. Por ejemplo, saber cómo resolver eficientemente sistemas de ecuaciones lineales no parece muy útil a menos que esté tratando de programar un nuevo solucionador de ecuaciones. Además, el libro ha hablado mucho sobre la amplitud, la dependencia lineal y la independencia, cuando una matriz tiene un inverso, y las relaciones entre estos, pero no puedo pensar en ninguna aplicación de esto en CS. Entonces, ¿qué partes del álgebra lineal se usan en CS?
15
Respuestas:
Las partes que mencionó son conceptos básicos de álgebra lineal. No puede comprender los conceptos más avanzados (digamos, valores propios y vectores propios) antes de comprender primero los conceptos básicos. No hay atajos en las matemáticas. Sin una comprensión intuitiva de los conceptos de amplitud e independencia lineal, no llegarás lejos en álgebra lineal.
Algunos algoritmos solo funcionan con matrices de rango completo. ¿Sabes lo que eso significa? ¿Sabes qué puede hacer que una matriz no sea de rango completo? ¿Cómo manejar esto? No tendrá idea si no sabe qué es la independencia lineal.
El algoritmo de eliminación gaussiano que se usa para resolver ecuaciones lineales en realidad puede ser numéricamente inestable si se implementa de manera incorrecta, y esto es algo de lo que puede tener que preocuparse en algunos casos. Sin comprender el algoritmo, no sabrá de dónde viene el problema y si hay algo que pueda hacer al respecto, no a nivel de algoritmos para resolver ecuaciones lineales, sino a nivel de encontrar las ecuaciones lineales correctas para resolver.
En resumen, no seas perezoso, y ten fe en que estas cosas son útiles.
fuente
El álgebra lineal a veces es extremadamente útil y potente en algoritmos gráficos. Con el teorema del árbol de la matriz, puede contar eficientemente el número de árboles de expansión que tiene un gráfico (debe comprender los valores propios). Una aplicación más desafiante, donde necesita una comprensión aún más firme del álgebra lineal es el algoritmo FKT para calcular el número de coincidencias perfectas en un gráfico plano en tiempo polinómico.
Hay muchos más ejemplos interesantes de usos del álgebra lineal en la teoría de grafos algebraicos y la teoría de grafos espectrales . Los algoritmos que surgen no son solo para contar problemas como los dos ejemplos que di. Por ejemplo, también puede verificar la conectividad o calcular el diámetro de un gráfico .
fuente
Uno de los usos más conocidos del álgebra lineal es el algoritmo Pagerank de Google :
fuente
Casi todo lo relacionado con gráficos por computadora, animación, visión por computadora, procesamiento de imágenes, computación científica o simulación de fenómenos físicos implicará un uso extensivo de vectores y matrices (álgebra lineal) desde cosas simples como representar transformaciones y orientaciones espaciales, hasta algoritmos muy complejos. Estas cosas solían ser el dominio de la supercomputación, pero ahora estos mismos campos son el núcleo de todas las aplicaciones más geniales en su escritorio, teléfonos y en cualquier otro lugar, desde videojuegos hasta fotografía computacional y autos sin conductor. El álgebra lineal está en todas partes.
fuente
Existen muchos algoritmos y técnicas basados en álgebra matricial. Y eso es genial. El análisis de componentes principales es un ejemplo de álgebra lineal aplicada bastante útil. Lo mismo puede decirse sobre el análisis de Fourier, que también tiene sus raíces en la ortogonalidad y los productos internos. Entonces hay aplicaciones directas.
PERO , aún más importante, tomar una clase de álgebra lineal es valioso porque te enseña a pensar de cierta manera. La mayoría de las buenas clases de álgebra lineal ponen énfasis en la generalización, la lógica y las pruebas. ¿Es algo cierto en general, o solo ciertos casos específicos y comunes? ¿Cómo puedes estar seguro? Ser capaz de pensar en cómo probar sus suposiciones es bueno porque te ayuda a evitar hacer malas suposiciones y escribir código que no se generalice en la forma en que asumes que lo hace. También le ayuda a pensar en cómo generalizar cosas que de otro modo serían difíciles de generalizar, y eso le permite resolver problemas más grandes.
En resumen, es bueno tener en cuenta que el álgebra lineal es bueno porque el levantamiento de pesas para la parte del cerebro es útil en informática.
fuente
La resolución de un sistema de ecuaciones lineales (que se puede hacer con el método de eliminación gaussiana), la programación lineal (que se puede resolver con el método simplex), los mínimos cuadrados y la detección comprimida (consulte el artículo de Wikipedia) son problemas prácticos que surgen en muchos Áreas de aplicación. El álgebra lineal ayuda a desarrollar algoritmos correctos y eficientes para estos problemas.
Consulte el texto [Cormen, Leiserson, Rivest y Stein, "Introducción a los algoritmos, tercera edición"], donde el Capítulo 28 trata sobre operaciones matriciales y el Capítulo 29 sobre programación lineal.
fuente