Приветствую Вас, уважаемые Читатели! Для того, чтобы понять суть и познать красоту явления, о котором я сейчас хочу рассказать, не требуется буквально никаких знаний.
Тем не менее, после прочтения Вы сможете с гордостью для себя осознать, что Вы только что прикоснулись к абсолютно фундаментальному понятию общей алгебры, возникающему в громадном количестве приложений: как математических, так и практических. Итак, поехали!
Для начала возьмем и представим множество, состоящее только из натуральных чисел:
N = {1,2,3,4,5......}
Порассуждаем, что мы можем с ними делать. В первую очередь на ум приходят математические операции: сложение и умножение.
Что общего у этих операций?
Во-первых, они бинарные, т.е. принимают на вход два аргумента, а возвращают один:
1 + 3 = 4
5 * 6 = 30
3 + 5 + 6 = (3+5) + 6 = 8 + 6 = 14
2*3*4 = (2*3) * 4 = 6 *4 = 24
Во-вторых, в последних двух случаях мы, сами того не зная, записали еще одно замечательное свойство этих операций - ассоциативность, заключающуюся в произвольной расстановке скобок между аргументами.
В-третьих, сколько бы мы не умножали или не складывали натуральные числа, мы все равно получим числа натуральные. В математике говорят, что, что операции сложения и умножения замкнуты во множестве натуральных чисел:
Поздравляю, ведь теперь мы можем ввести одну из самых простейших алгебраических конструкций - полугруппу.
Полугруппой называется пара (X, ¤), где Х - произвольное множество, а ¤ - операция, обладающая ,подобно умножению или сложению, свойством ассоциативности и замкнутая на множестве Х.
- Что может быть множеством Х и операцией ¤ ? Да всё, что угодно, до максимальной степени абстракции!
Например, пусть наше множество Х - все возможные сочетания маленьких букв русского алфавита:
"а", "аб", "алдырва", "лыжзузпоышгу" и т.д.
Определим на этом множестве операцию "конкатенации" (склеивания) слов. Эта операция, естественно, бинарная (всё так или иначе приходит к сложению двух слов) и ассоциативная:
("абвгд"+"ежз")+"иклмн"="абвгд" + ("ежз" + "иклмн") = "абвгдежзиклмн"
Так, вот мы и сейчас получили полугруппу!
Полугруппу можно ввести и на более "сложных" множествах. Например, в качестве множества Х возьмем множество всех квадратных матриц 2х2:
В качестве операции возьмем умножение, например в таком :
Данная операция бинарна (умножаем две матрицы, а получаем одну), ассоциативна (но не коммутативна в общем случае!) - в произведении матриц мы можем расставлять скобки так, как нам захочется. Значит, мы снова получили полугруппу!
Конечно, мы могли бы рассмотреть и квадратные матрицы произвольного размера, или все матрицы размера n*m.
Полугруппа - чрезвычайно простое понятие, тем не менее, являющееся базисом для рассмотрения всего алгебраического зоопарка!
Можно выйти еще на более серьезный уровень абстракции, но я думаю на этом примере стоит пока остановиться. Жду в комментариях Ваши примеры полугрупп!
В следующей статье, например, я добавлю в наши рассмотренные полугруппы еще один элемент, в результате которого мы получим моноид - очень важную алгебраическую конструкцию, часто встречающуюся на практике. Спасибо за внимание!