У меня есть достаточное образование по математике, но я никогда не чувствовал себя уверенно на 100% с абстрактной алгеброй (математика групп, колец, полей и т. Д.). Я думаю, что это было отчасти потому, что мне нужно было увидеть приложения, и все, что я мог найти, были в физике, а не в CS. Поскольку я действительно заинтересован в CS, есть ли сейчас какие-либо материалы (онлайн-проекты, конспекты лекций, видео, книги), которые охватывают абстрактную алгебру с точки зрения приложений в CS и, в частности, алгоритмов / теории? Я рад, что эти приложения носят чисто теоретический характер, но они не должны предполагать каких-либо предварительных знаний в области абстрактной алгебры.
Я почти уверен, что если бы эти ресурсы существовали, они были бы оценены большим количеством исследователей КС.
источник
Ответы:
Вы можете попробовать заметки из курса Мадху Судана: алгебра и вычисления
источник
Один из возможных путей в абстрактную алгебру может состоять в том, чтобы взглянуть на нее с точки зрения криптографии, которая касается алгоритмов на конечном поле. Поля - это кольца, а поля - это две группы, связанные простыми законами. Теория поля использует векторные пространства на видном месте (теория Галуа), поэтому этот угол должен охватывать много абстрактной алгебры. Книга
Вычислительное введение в теорию чисел и алгебру В. Шуп
поэтому может представлять интерес.
Моя личная рекомендация - игнорировать приложения и изучать базовый текст по математике для студентов по абстрактной алгебре. Там нет недостатка в тех. Просто поверьте, что все эти вещи полезны, и что использование станет более простым, если вы освоите материал.
Самая базовая алгебра конструктивна, и вы можете легко реализовать базовые понятия для лучшего понимания, например, алгоритмы, которые проверяют, является ли таблица умножения группой, средство решения уравнений в группе, программа, которая проверяет, являются ли две алгебраические структуры изоморфными и т. Д. Большинство Из этих проблем есть грубые решения, которые легко реализовать, но они медленны. Чем больше вы узнаете об алгебре, тем больше алгоритмических комбинаций вы можете использовать для ускорения ваших программ. Например, знаменитые тесты на примитивность Миллера-Рабина и АКС .
источник
Посмотрите эту книгу Рудольфа Лидля и Харальда Нидеррейтера: Введение в конечные поля и их приложения (2-е издание, 1994 г.) http://www.amazon.com/Introduction-Finite-Fields-their-Applications/dp/0521460948
Цитирую описание книги в Amazon: «Теория конечных полей является отраслью современной алгебры, которая вышла на передний план в последние годы из-за ее разнообразных применений в таких областях, как комбинаторика, теория кодирования, криптология и математическое исследование коммутационных цепей. «.
источник
Помимо криптографии, очень хорошим практическим применением алгебры в информатике является, возможно, реализация дробей, где числитель и знаменатель имеют целочисленный или «большой целочисленный» тип, а длина кодирования сохраняется малой за счет сокращения дробей (т. Е. Выделение наибольшей общей делитель числителя и знаменателя).
Что касается типов данных «большое целое число», то интересным результатом является так называемая «китайская теорема об остатках», которая позволяет распараллеливать целочисленные операции, когда представление в качестве простых факторов аргументов известно.
Кроме того, большинство вещей, найденных в алгебре, может быть эстетически приятным (только личная точка зрения).
источник