Контекст между абстрактной алгеброй и программированием

Я изучаю информатику и изучаю абстрактную алгебру, особенно Group theory.

Я программирую около 5 лет и никогда не использовал такие вещи, которые изучаю в абстрактной алгебре.

каков контекст между программированием и абстрактной алгеброй? Я действительно должен знать.


person Billie    schedule 13.05.2013    source источник


Ответы (2)


Теория групп очень важна в криптографии, например, особенно в конечных группах в схемах асимметричного шифрования, таких как RSA и Эль-Гамаль. В них используются конечные группы, основанные на умножении целых чисел. Однако есть и другие, менее очевидные виды групп, которые применяются в криптографии, например эллиптические кривые.

Еще одним приложением теории групп или, если быть более точным, конечных полей являются контрольные суммы. Широко используемый механизм контрольных сумм CRC основан на модульной арифметике в кольце полиномов конечного поля GF(2).

Еще одно более абстрактное применение теории групп — функциональное программирование. На самом деле все эти приложения существуют на любом языке программирования, но функциональные языки программирования, особенно Haskell и Scala(z), охватывают его, предоставляя классы типов для алгебраических структур, таких как моноиды, группы, кольца, поля, векторные пространства и т. д. . Преимущество этого, очевидно, состоит в том, что функции и алгоритмы могут быть определены очень общим, высокоуровневым способом.

На мета-уровне я бы также сказал, что понимание базовой математики, подобное этому, важно для любого ученого-компьютерщика (не столько для программиста, сколько для ученого-компьютерщика — определенно), поскольку оно формирует весь ваш образ мышления. и необходим для более продвинутой математики. Если вы хотите заниматься 3D-графикой или программировать промышленного робота, вам понадобится линейная алгебра, а для линейной алгебры вы должны хотя бы немного знать абстрактную алгебру.

person Manuel Eberl    schedule 23.05.2013

Я не думаю, что есть какой-либо контекст между теорией групп и программированием... или, скорее, ваш вопрос не имеет никакого смысла. Существуют приложения программирования к алгебре и наоборот, но они по сути не связаны друг с другом или, так сказать, взаимовыгодны друг для друга.

Если вы ученый-компьютерщик, пытающийся решить некоторые забавные задачи абстрактной алгебры, существует множество проблем с перечислением и классификацией, которые могут выиграть от вычислительного подхода, над которым нужно работать в геометрической теории групп, которая является горячей темой в настоящее время, вот довольно всеобъемлющий список исследователей и проблем (не менее 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–Коксетер_алгоритм

и проблема, из-за которой я провел много бессонных ночей

http://en.wikipedia.org/wiki/Word_problem_for_groups

Существующие системы алгебры включают GAP и MAGMA.

наконец-то отличная ссылка

http://books.google.com/books?id=k6joymrqQqMC&printsec=frontcover&dq=finitely+presented+groups+book&hl=en&sa=X&ei=WBWUUqjsHI6-sQTR8YKgAQ&ved=0CC0Q6AEwAA#v=onepage&q=finitely%20presented%20groups%20book&f=false

person tweaking    schedule 26.11.2013