Подтвердить что ты не робот

Как используется линейная алгебра в алгоритмах?

Несколько моих сверстников отметили, что "линейная алгебра" очень важна при изучении алгоритмов. Я изучил множество алгоритмов и провел несколько курсов линейной алгебры, и я не вижу связи. Итак, как используется линейная алгебра в алгоритмах?

Например, какие интересные вещи могут иметь матрица связности для графа?

4b9b3361

Ответ 1

Три конкретных примера:

  • Линейная алгебра - основа современной 3d графики. Это по сути то же самое, что вы узнали в школе. Данные хранятся в трехмерном пространстве, которое проецируется на 2-мерную поверхность, что вы видите на экране.
  • Большинство поисковых систем основаны на линейной алгебре. Идея состоит в том, чтобы представлять каждый документ как вектор в гиперпространстве и видеть, как вектор связан друг с другом в этом пространстве. Это используется проект lucene, среди прочих. См. VSM.
  • Некоторые современные алгоритмы сжатия, такие как формат, используемый форматом ogg vorbis, основаны на линейной алгебре или, более конкретно, на методе Vector Quantization.

В основном это сводится к тому, что линейная алгебра является очень мощным методом при работе с несколькими переменными и имеет огромные преимущества для использования в качестве теоретической основы при разработке алгоритмов. Во многих случаях этот фундамент не настолько заметен, как вы думаете, но это не значит, что его нет. Вполне возможно, что вы уже внедрили алгоритмы, которые было бы невероятно трудно получить без linalg.

Ответ 2

Криптограф, вероятно, скажет вам, что понимание теории чисел очень важно при изучении алгоритмов. И он был бы прав - для своей конкретной области. Статистика также имеет свои виды использования - списки пропуска, хэш-таблицы и т.д. Полезность теории графов еще более очевидна.

Не существует неотъемлемой связи между линейной алгеброй и алгоритмами; существует неотъемлемая связь между математикой и алгоритмами.

Линейная алгебра - это поле со многими приложениями, и алгоритмы, которые его используют, поэтому имеют множество приложений. Вы не потратили время на изучение этого.

Ответ 4

Я не знаю, буду ли я его формулировать так: "Линейная алгебра очень важна при изучении алгоритмов". Я бы сказал, что все наоборот. Многие, многие и многие проблемы в реальном мире в конечном итоге требуют от вас для решения набора линейных уравнений.Если вам в конечном итоге придется решить одну из этих проблем, вам понадобится знать некоторые из многих алгоритмов для решения линейных уравнений. Многие из этих алгоритмов были разработаны, когда компьютеры были названы, а не машину. Рассмотрим, например, гауссовское исключение и различные алгоритмы матричной декомпозиции. Существует очень сложная теория lot о том, как решить эти проблемы для очень больших матриц, например.

Наиболее распространенные методы машинного обучения в конечном итоге имеют этап оптимизации, который требует решения набора одновременных уравнений. Если вы не знаете линейной алгебры, вы полностью потеряете.

Ответ 5

Многие алгоритмы обработки сигналов основаны на матричных операциях, например. Преобразование Фурье, преобразование Лапласа,...

Проблемы оптимизации могут часто сводиться к решению систем линейных уравнений.

Ответ 6

Линейная алгебра также важна во многих алгоритмах компьютерной алгебры, как вы могли догадаться. Например, если вы можете свести проблему к утверждению, что полином равен нулю, где коэффициенты многочлена линейны по переменным x1, …, xn, то вы можете решить, для каких значений x1, …, xn сделать многочлен равным 0 на приравнивая коэффициент каждого члена x^n до 0 и решая линейную систему. Это называется методом неопределенных коэффициентов и используется, например, для вычисления парциальных декомпозиций или для интеграции рациональных функций.

Для теории графов самая крутая вещь о матрице смежности заключается в том, что если вы возьмете n-ю степень матрицы смежности для невзвешенного графика (каждая запись будет либо 0, либо 1), M^n, то каждая запись i,j будет число путей от вершины i до вершины j длины n. И если это не просто здорово, тогда я не знаю, что это такое.

Ответ 7

Все ответы здесь являются хорошими примерами линейной алгебры в алгоритмах.

Как мета-ответ, я добавлю, что вы можете использовать линейную алгебру в своих алгоритмах, не зная об этом. Компиляторы, которые оптимизируют с помощью SSE (2), обычно векторизовать ваш код, имея много данных, которые манипулируют параллельно. Это по существу элементный LA.

Ответ 8

Это зависит от типа "алгоритмов".

Некоторые примеры:

  • Алгоритмы машинного обучения/статистики: линейные регрессии (наименьшие квадраты, гребень, лассо).
  • Потеря компрессии сигналов и другой обработки (распознавание лиц и т.д.). См. Собственные функции

Ответ 9

Например, какие интересные вещи могут иметь матрица связности для графа?

Множество алгебраических свойств матрицы инвариантно относительно перестановок вершин (например, abs (детерминант)), поэтому, если два графика изоморфны, их значения будут равны.

Это источник хорошей эвристики для определения того, являются ли два графика не изоморфны, так как, конечно, равенство не гарантирует существования изоморфизма.

Отметьте алгебраическую теорию графа для множества других интересных методов.