Контекст между абстрактной алгеброй и программированием
Я студент информатики среди вещей, которые я изучаю Абстрактную алгебру, особенно Group theory
,
Я занимаюсь программированием около 5 лет, и я никогда не использовал такие вещи, которые я изучаю в абстрактной алгебре.
каков контекст между программированием и абстрактной алгеброй? Я действительно должен знать.
2 ответа
Теория групп очень важна в криптографии, например, особенно конечные группы в асимметричных схемах шифрования, таких как RSA и El Gamal. Они используют конечные группы, основанные на умножении целых чисел. Однако есть и другие, менее очевидные виды групп, которые применяются в криптографии, такие как эллиптические кривые.
Другое применение теории групп, или, если быть более точным, конечных полей, - это контрольные суммы. Широко используемый механизм контрольной суммы CRC основан на модульной арифметике в кольце многочленов конечного поля GF(2).
Еще одно более абстрактное применение теории групп в функциональном программировании. Фактически, все эти приложения существуют на любом языке программирования, но функциональные языки программирования, особенно Haskell и Scala(z), охватывают его, предоставляя классы типов для алгебраических структур, таких как моноиды, группы, кольца, поля, векторные пространства и т. Д., Преимущество этого, очевидно, в том, что функции и алгоритмы могут быть заданы очень общим, высокоуровневым способом.
На метауровне я бы также сказал, что понимание базовой математики, такой как это, необходимо для любого ученого (не столько для программиста, сколько для специалиста по вычислительной технике - определенно), поскольку оно формирует весь ваш образ мышления. и необходим для более продвинутой математики. Если вы хотите заниматься трехмерной графикой или программировать промышленного робота, вам понадобится линейная алгебра, а для линейной алгебры вы должны знать хотя бы некоторую абстрактную алгебру.
Я не думаю, что есть какой-то контекст между теорией групп и программированием... или, скорее, ваш вопрос не имеет никакого смысла. Существуют приложения программирования для алгебры и наоборот, но они не являются внутренне связанными или взаимовыгодными, так сказать.
Если вы ученый-компьютерщик, пытающийся решить некоторые забавные проблемы абстрактных алгебр, существует множество проблем с перечислением и классификацией, которые могли бы выиграть от вычислительного подхода, над которым нужно работать в геометрической теории групп, которая является горячей темой на данный момент, вот довольно всеобъемлющий список исследователей и проблем (минимум 3 года назад)
http://www.math.ucsb.edu/~jon.mccammond/geogrouptheory/people.html
популярные проблемы включают конечно представленные группы, классификацию транзитивных групп перестановок, функции Мобиуса, полициклические порождающие системы
и эти
http://en.wikipedia.org/wiki/Schreier–Sims_algorithm
http://en.wikipedia.org/wiki/Todd–Coxeter_algorithm
и проблема, которая дала мне много бессонных ночей
http://en.wikipedia.org/wiki/Word_problem_for_groups
Существующие системы алгебры включают GAP и MAGMA
наконец, отличная ссылка