Мотивация

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

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

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

Внешнее произведение

Суть внешней алгебры в том, что объекты можно умножать. Если вас это не впечатлило, то еще раз - умножать можно любые объекты, а не только числа. Можно умножать людей, города, компьютеры, бухгалтерские счета и все остальное, что подходит под понятие объекта. Такое произведение объектов называется "внешним умножением". Это исторически сложившийся термин для того, чтобы отличать внешнее произведение от внутреннего, которым обычно обозначают скалярное произведение.

Обычно внешнее произведение математики обозначают клином (wedge)\wedge. Но этот знак неудобен. Во-первых, его нет на клавиатуре. Во-вторых, никакого другого умножения, кроме внешнего, для произвольных объектов не существует. Поэтому будем обозначать внешнее произведение звездочкой. Вот оно, умножение элементаa на элементb: a*b .

Выглядит знакомо, да? Но в отличие от привычного произведения чисел внешнее произведение антикоммутативно - проще говоря, меняет знак при перестановке множителей. Вот так:

a*b=-b*a

Это важное свойство, которое является ключевым для внешней алгебры. Из него в частности следует, что внешнее произведение элемента на самого себя может быть только нулем - объектом без знака: a*a = 0.

Какой смысл несет в себе "внешнее произведение". По простому - это ничто иное, как объединение объектов в список. Поэтому, когда элементов много, то их удобно обозначить списком. Такой упорядоченный список выделим квадратными скобками:a*b*c*d = [abcd]. При этом надо помнить про наличие знака у списка - при перестановке соседних элементов знак списка меняется на противоположный: [abcd] = -[acbd]. Ну и как следствие - в таком списке не может быть одинаковых элементов.

Список с такими свойствами будем называть симплексом. Симплекс из двух элементов - отрезок, из трех - треугольник, и т. д. (Только надо иметь ввиду, что это топологические отрезки и треугольники. У них нет длин, углов и прочих метрических параметров.). Количество элементов симплекса задает его порядок (грейд). Математики чаще используют понятие мерности. Размерность симплекса на 1 меньше его порядка. То есть отрезок является одномерным.

Симплексы можно умножать друг на друга - это будет эквивалентно объединению двух списков: [ab]*[cd] =[abcd]. Но при наличии в множителях одинаковых элементов результатом объединения будет пустой список - нуль: [ab]*[ac]=0.

Ну и еще одно полезное правило. При перестановке перемножаемых симплексов местами знак меняется на противоположный, если произведение порядков симплексов нечетное:

S_s * P_p = (-1)^{sp} P_p*S_s

Здесь нижние индексы обозначают порядок симплексов.

Обратные элементы

В нашей алгебре не обойтись без понятия единицы. Единица - это такой элемент, при умножении на который с любой стороны симплекс остается без изменений: 1*[ab]=[ab]*1=[ab]. В свою очередь наличие единицы позволяет расширить множество элементов, введя понятие обратных. Кратко обратные элементы именуют коэлементами. При умножении на обратный элемент обращается в единицу. Поскольку у нас не обычное умножение, а внешнее, то важно относительное положение множителей - при перемене мест элемента и обратного ему единица становится отрицательной. Для удобства (связанного с понятием граничного оператора) постулируем, что если обратный элемент расположен слева, то результатом произведения будет 1, а если справа, то -1. Это выглядит поначалу немного непривычно, но в целом окупается:

/a*a=1, \quad a*/a =a/a = -1

Здесь перед коэлементами стоит префикс в виде косой черты /. Если обратный элемент умножается на другой элемент, то результатом будет пустой симплекс - ноль: /a*b=0.

Коэлемент можно трактовать как отсутствие элемента. Это дырка в множестве. Но интересно, что с коэлементами можно обращаться так же как с обычными. Произведение коэлементов образует обратный симплекс (косимплекс). Для заданного симплекса можно определить обратный. Постулируем, что при умножении обратного слева на исходный должны получить 1 независимо от порядка симплекса: /S*S=1. Отсюда следует правило расположения элементов в обратном симплексе - в нем порядок элементов меняется на обратный. Таким образом еслиS = [abcd], то/S = /[abcd] = [/d/c/b/a].

Если симплекс умножить на обратный справа, то результат зависит от четности порядка симплекса:

S_p/S^p=(-1)^p

Если симплекс умножается на косимплекс, то взаимно обратные элементы должны сокращаться. Для того, чтобы правильно учесть знак необходимо элемент и обратный ему поставить рядом и выполнить сокращение с учетом их положения. Например: [ab]*[/a] = [ab/a] = -[a/ab]=b.

Если перемножаемые симплекс и косимплекс содержат элементы, которых нет в другом, то результатом произведения будет ноль: [abc]*[/a/b/d] = [abc/a/b/d] = -[c/d] = 0.

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

Линейные комбинации и цепи

Элементы и симплексы можно не только умножать, но и складывать, образуя линейные комбинации. Перед каждым симплексом в комбинации может быть скалярный множитель (число). Пример линейной комбинации симплексов 2-го порядка:

B=[ab]-[ac]+[bc].

Линейные комбинации тоже можно интерпретировать как список элементов (слагаемых). Однако в отличие от симплекса в линейных комбинациях допускается наличие произвольного количества одинаковых элементов. Коэффициенты линейной комбинации отражают кратность элементов списка, при этом допускаются и отрицательные кратности. Правила раскрытия двух видов списков отражаются законом дистрибутивности:

a*(b+c)=a*b+a*c

Но надо помнить, что умножение здесь внешнее (антикоммутативное). Поэтому некоторые привычные формулы выглядят иначе. Например, внезапно(a + b)*(a-b) =2 b*a.

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

Линейную комбинацию можно рассматривать как разложение некоего объекта того же порядка по базисным. Например, если у нас есть два объектаaиb, то можно определить объектx как их линейную комбинацию:

x=x_a a + x_b b

Полученный объект является зависимым, или производным. Отметим, что умножение производного объекта на симплекс его базиса, дает ноль:[ab]*x=0. То есть зависимые объекты не создают нового пространства. Ну или по другому - размерность пространства определяется количеством независимых элементов.

Коэффициенты разложения элемента по базисным могут быть определены через умножение на коэлементы базиса:

x_a = /a*x, x_b = /b*x

Получается, что внешнее произведение элементов и коэлементов является скалярным (в том смысле, что результат является скаляром). Но между самими элементами скалярное произведение не определено.

Аннулятор и граница

Мы определили симплексы как произведение элементов, определили обратные элементы и обратные симплексы, ввели понятие линейной комбинации симплексов. Пора разобраться с понятием вектор. Часто вектор появляется в учебниках как "черт из табакерки" - то есть явочным порядком. Но постулируя вектор как независимое понятие, мы препятствуем осмыслению его обобщения, создаем искусственный барьер в понимании "реальной картины мира". В нашей алгебре первично понятие объекта (элемента). Вектор - производное понятие, и сейчас мы его "произведем".

Вначале нам понадобится еще одно фундаментальное понятие, которое имеет разные названия, в зависимости от контекста в котором употребляется. Здесь для него используем абстрактный термин - аннулятор, хотя пока и непонятно, чего он там обнуляет. Пусть имеется некое конечное множество элементов, например, a, b, c, d. Тогда аннулятором для данного множества является сумма обратных элементов данного множества:

/z_{abcd} = /a+/b+/c+/d

Согласно определению аннулятор принадлежит копространству (пространству обратных элементов), поэтому для его обозначения используем косую черту. Поскольку у каждого симплекса есть множество образующих его элементов, то любому симплексу можно сопоставить аннулятор. При этом от знака симплекса аннулятор не зависит.

Аннулятор позволяет определить граничный оператор над симплексом как внешнее умножение аннулятора на симплекс. Результатом действия является граница. Вот она, граница симплекса[abcd]:

B[abcd] = /z_{abcd}*[abcd] = [bcd] - [acd] + [abd] - [abc]

Границы настолько важны, что не пожалеем для их обозначения отдельных скобок:

(abcd) == B[abcd]

Аннулятор множества является также аннулятором всех его подмножеств. Поэтому граница симплекса может быть образована умножением не только на его аннулятор, но и на любой аннулятор надмножества. Пример:

(abc)= /z_{abc}*[abc] == /z_{abcd}*[abc]

Граница (симплекса) есть цепь - линейная комбинация симплексов. Порядок границы на 1 меньше порядка образующего ее симплекса. В частности, вектор - это граница 1-порядка, образованная отрезком (симплексом 2-го порядка):

(ab) = /z_{ab}*[ab] = b - a

Вектор 2-го порядка называют бивектором, 3-го - тривектором и т.д. Граница произвольного порядка может быть названа мульти- или поливектором.

Действие граничного оператора может быть отменено. Существует элемент, умножая на который границу симплекса, можно восстановить исходный симплекс. Данный элемент называется центроидом множества (или барицентром). Центроид - это среднее суммы элементов:

g_{abcd} = (a+b+c+d)/4

Здесь круглые скобки - это не обозначение границы, а группировка элементов (обычно смысл скобок понятен из контекста). Проверим действие центроида:

g_{abcd}*(abcd) = (a+b+c+d)*([bcd] - [acd] + [abd] - [abc])/4 = [abcd]

Умножение границы на центроид собирает несколько слагаемых в одно.

Основное свойство границ

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

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

/z_{abcd} * (abcd) = /z_{abcd} * /z_{abcd} * [abcd] = 0

Данная формула раскрывает смысл термина "аннулятор" - при действии на границу аннулятор ее обнуляет. Раскрывая границу как линейную комбинацию симплексов и умножая каждый симплекс на аннулятор, получаем тождества границ:

/z_{abcd} * (abcd) = /z_{abcd} * ([bcd] - [acd] + [abd] - [abc]) = (bcd) - (acd) + (abd) - (abc) = 0

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

(ab) = (ax)-(bx),\\ (abc) = (abx)-(acx)+(bcx),\\ (abcd) = (abcx) - (abdx)+(acdx)-(bcdx).

Общий элементxв правой части тождеств можно также интерпретировать как центр координат. На этом свойстве основано определение векторного пространства с общим центром, который всегда можно исключить. при выражении других границ пространства.

Становится понятно также, что двум различным цепям может соответствовать одна и та же граница при условии, что разность данных цепей является границей. Соответственно и восстановление цепи по границе (умножением на центроид) выполняется с точностью до произвольной границы.

Произведение границ

Обратимся к произведению границ. Произведение двух границ тоже является границей, но есть нюансы. Если перемножаемые границы имеют более одного общего элемента, то их произведение равно нулю. Это следствие свойств внешнего произведения. Пример:

(abc)(abd)=([bc]-[ac]+[ab])*([bd]-[ad]+[ab]) = -[bcad]-[acbd] = [acbd]-[acbd] = 0

Если границы имеют один общий элемент, то при умножении они сливаются в одну (компоненту) - это правило слияния границ. Пример слияния двух векторов в 2-границу (бивектор):

(ab)(bc) = (b - a)*(c - b) = b*c - a*c + a*b = (abc)

Если же перемножаемые границы не имеют общих элементов, то границы не сливаются. Получаем границу, состоящую из нескольких компонент связности. Пример такой границы, содержащей 4 элемента:(ab)(cd). Поскольку под поливектором обычно понимают границу с одной компонентой связности, то строго говоря границы и поливекторы - это не одно и то же. Под поливектором будем понимать всегда границу из одной компоненты.

Итак, порядок границы p(B)   зависит не только от количества образующих ее элементов n   , но и от количества ее компонент m. Порядок границы (ab)(cd)  равен 2, несмотря на то, что она содержит 4 элемента. Для получения порядка границы надо из количества элементов вычесть количество компонент: p(B) = n(B) - m(B)   .

Кроме того, одна и та же граница может быть образована произведением разных границ меньшего порядка. Например, граница (abc)может быть образована тремя разными парами векторов: (abc) == (ab)(bc)==(ab)(ac)==(ac)(bc). То есть произведение границ с общим элементом уничтожает информацию о том, какие именно границы умножались - границы сливаются в одну.

Для тех, кому интересны подробности, откуда все это следует

укажем, что в основе доказательства свойств произведения границ лежит правило Лейбница (цепочки), которое применительно к оператору границы можно записать в следующем виде:

\partial (X^p*Y) = \partial(X)*Y+(-1)^p X*\partial(Y)

Здесь граничный оператор (умножение на аннулятор слева /z*обозначен как частная производная\partial - это общепринятое обозначение. Используя данное тождество, можно показать, что\partial[Xv]*\partial[vY] = \partial[XvY]. Проще всего это сделать раскрытием левой и правой частей по правилу Лейбница.

Немного линейной алгебры...

Пространство элементов, с которым мы тут возимся, принято называть аффинным. Это пространство, в котором есть элементы и их линейные комбинации, но нет метрики.

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

Рассмотрим пространство, образованное тремя элементами, среди которых выделим центр - общий элементO. Границей пространства будет бивектор базиса(Oxy). Пусть теперь в данном пространстве есть три элементаa,b,cс известными координатами относительно базисных элементов. Задача состоит в том, чтобы выразить бивектор(abc)через базисный.

Вначале выпишем координаты элементов. Учтем, что сумма коэффициентов разложения элемента по базисным должна быть равна единице - это следствие того, что граница любого элемента пространства должна быть равна 1: z*a=1. Такие координаты называются барицентрическими. Тогда для базиса из 3-х элементов две координаты являются независимыми, а третья - выражается через них:

a = a_x x  + a_y y + (1 - a_x - a_y) \ O = O + a_x (Ox) + a_y (Oy)

Данная формула может быть представлена как координаты вектора (Oa) = a - O:

(Oa) = a_x (Ox) + a_y (Oy)

Аналогичным образом можно найти координаты векторов(Ob)и(Oc). Перемножая векторы, можно выразить координаты бивекторов через базисный бивектор:

(Oab)=(Oa)*(Ob)=(a_x b_y - a_y b_x) (Oxy)

Для нахождения искомого бивектора(abc)воспользуемся тождеством границ из предыдущего раздела: (abc) = (Oab) - (Oac) + (Obc). Подставляя в него координаты бивекторов, получаем итоговый ответ:

(abc) = abc_{xy} (Oxy) = ((a_x b_y - a_y b_x) - (a_x c_y - a_y c_x) + (b_x c_y - b_y c_x)) (Oxy)

Значение скалярного коэффициента abc_{xy}здесь как раз и будет отношением площадей искомого и базового бивекторов. Отметим, что коэффициент может быть и отрицательным, поскольку у бивекторов есть ориентация.

Аффинные координаты и площади
Аффинные координаты и площади

Коэффициент может быть также выражен как детерминант матрицы: abc_{xy} = det(ABC). Значения матрицы координатABCравны произведению элементов и базисных коэлементов (за исключением центра координат):

ABC=(a,b,c)*(/z,/x,/y) =\matrix{1 && 1 && 1 \\ a_x && b_x && c_x \\ a_y && b_y && c_y}

Для вычисления относительного объема в матрицу добавляется дополнительная строка и колонка, соответствующие новому измерению.

Умение различать ситуации, где пространство является аффинным, является полезным навыком при анализе данных. Пусть, например, задано множество людей, для которых известны рост и вес. Данные свойства образуют два вектора аффинного пространства. Как показано выше, в таком пространстве можно сравнивать людей отдельно по росту или весу, но нет возможности оценить близость людей одновременно по "росто-весу", поскольку нет связи между данными свойствами, нет метрики. Но ничто не мешает сравнивать по "росто-весу" тройки людей. Координаты этих троек (вычисленные указанным выше способом) пропорциональны их относительной площади и не зависят от скалярного произведения свойств (угла между базисными векторами).

... и топологии

Про топологию говорят, что это геометрия без измерений. В том смысле, что конкретные координаты элементов топологам неинтересны. Поэтому коэффициенты топологических цепей всегда равны +-1. Алгебраические выражения границ симплекса можно интерпретировать топологически. В качестве примера приведем разрезание (топологического) квадрата с вершинами a, b, c, dна два треугольника. Треугольники в данном случае должны быть ориентированы, то есть иметь знак. Тогда квадрат можно представить как сумму (склейку) треугольников:Square = [abc]+[acd]. Применив к данной цепи граничный оператор, получим цепь из 4-х 2-симплексов - это граница квадрата:

/z*Square = (abc)+(acd)=[ab]+[bc]+[cd]+[da]

Склейка симплексов
Склейка симплексов

При сложении 2-границ общая сторона треугольников сократилась. В общем случае, можно продолжать склейку треугольников, получая произвольные топологические многогранники. Кажется, что можно любую поверхность представить как сумму треугольников, но на самом деле нет. При покрытии треугольниками поверхности ленты Мёбиуса не удается сократить внутренние границы!

Мы определили границу симплексаBкак результат действия граничного оператора (умножение аннулятора) на некий симплекс. Повторное взятие границы, как уже отмечалось дает ноль:

/z*B = 0

Но вообще говоря, возможны и другие цепи (линейные комбинации симплексов), граница которых нулевая. Цепи с нулевой границей называют цикламиC. Инвариант циклов:

/z*C=0

Циклы - это более общее подмножество цепей, чем границы. В общем случае существуют циклы, которые не являются границами какого-либо симплекса. Их называют гомологиями:

H=C/B

Говоря про циклы, снова оговоримся - это топологические циклы. Так же как в топологическом треугольнике нет величины сторон и углов, так и в топологическом цикле нет величины связи между элементами цикла.

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

Коцепи и дуальность

Для заданного конечного множества независимых элементов существует симплекс предельного порядка, определяемый как произведение всех элементов. Граница данного симплекса называется предельной границей пространства - она имеет максимальный порядок из всех возможных границ на данном множестве. Предельная граница для множества 4-х элементов a, b, c, d : I_3=(abcd) .

Предельная граница множества всегда связна (имеет только одну компоненту). Умножение предельной границы на коэлементы понижает ее порядок, но оставляет границу связной: (abcd) /a = (bcd). Умножение предельной границы на сумму коэлементов порождает границы, состоящие из компонент. Например,

(/a+/b)(abcd)==(abcd)(/c+/d) = (acd)-(bcd) = (ab)(cd)

Здесь мы видим коцепи 1-го порядка - это линейные комбинации коэлементов. Встречаются также коцепи более высокого порядка. Например, граница из трех компонент может быть получена умножением предельной границы на аннуляторы двух произвольных компонент:

(ab)(ij)(xy) = -(/a+/b)(/x+/y)I_5=(/i+/j)(/x+/y)I_5=(/a+/b)(/i+/j)I_5

ЗдесьI_5 = (abijxy)- предельная граница 6 элементов. Коцепь 2-го порядка:

(/a+/b)(/i+/j) == /a/i+/a/j+/b/i+/b/j

Видим, что разным коцепям может соответствовать одна и та же граница. Из данных соотношений следует, что границуBна конечном множестве элементов можно задать через коцепь/B. Умножая коцепь на предельную границу, переходим из копространства в обычное:

B = /B*I

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

Дуальное преобразование и звездочка Ходжа - это не одно и тоже!

Для тех, кто вообще в курсе про оператор Ходжа. Оператор Ходжа преобразует одни (поли)векторы пространства в другие векторы того же пространства. Дуальное преобразование преобразует коцепи в границы.

Чтобы определить в пространстве оператор Ходжа, надо договориться об общем элементе всех границ. То есть задать начало координат. Такое возможно, поскольку произвольная граница всегда может быть выражена через линейную комбинацию границ с общим элементом (см. граничные тождества). В этом случае становится однозначным дополнение поливектора до предельной границы пространства, которое и называется звездочкой Ходжа.

Можно определить и обратное дуальное преобразование - от границ (цепей) к коцепям. Пусть дана некая граница (в общем случае произвольная цепь)B. Надо построить дуальную ей коцепь/B для заданного пространства (симплекса) с предельной границей I.

Алгоритм построения может быть таким. Для цепи определяем центроид g(средняя сумма элементов, образующих цепь). "Интегрируем" цепь умножением слева на центроид. Переводим полученный "интеграл" из пространства в копространство умножением на косимплекс пространства/S. Косимплекс пространства однозначно определяется предельной границейI. Полученная коцепь и будет искомой:

/B = /S*(g*B)

В данной формуле круглые скобки обозначают порядок операций.

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