Постановка задачи

Пусть у нас есть множество людей, представленное двумя персонажами - Алисой (a) и Борисом (b). И есть также две характеристики - ростh(height) и весw(weight). Рост измеряется в сантиметрах, а вес - в килограммах. Пусть Алиса и Борис люди молодые и здоровые, тогда значения их характеристик могут быть такими:

h(a) = 170 \ sm, \quad w(a) = 70 \ kg \\ h(b) = 180 \ sm, \quad w(b) = 80 \ kg

Допустим, что есть еще один персонаж - Павел (p), для которого тоже известны рост и вес:h(p) = 160 \ sm, w(p) = 60 \ kg. Требуется на основании характеристик Павла выразить его как линейную комбинацию Алисы и Бориса. Ну то есть найти коэффициенты выражения p = p_a a + p_b b. Коэффициенты данного выражения называются также координатами Павла в базисе из Алисы и Бориса.

Для чего это может понадобиться? Например для того, чтобы определить неизвестные характеристики Павла по известным для Алисы и Бориса. Например, если известен возраст Алисы и возраст Бориса, то зная координаты Павла, можно оценить и его возраст тоже.

Конечно, данная задача очень проста и сводится к решению системы линейных уравнений. Но мы воспользуемся ее простотой, чтобы продемонстрировать язык форм и их произведений.

Представление характеристик

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

/f_a = 170 /h + 70 /w

Здесь/h, /w- элементы, обратные росту и весу (единицы измерения значений свойств мы опустили). Поскольку элемент/f_aявляется линейной комбинацией обратных элементов, то он принадлежит копространству. Для того, чтобы найти значение роста Алисы достаточно умножить выражение ее свойств на элемент роста. Получим по правилам внешнего произведения:

h(a) = /f_a*h=170 /h*h + 70 /w*h = 170

Аналогично можно выразить вес:w(a) = /f_a*w =  70. Поскольку тут внешнее произведение, то порядок множителей важен.

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

Опять же из того, что/w*h = 0, некоторые авторы делают вывод о том, что данные элементы ортогональны. И опять же возникает путаница с ортогональностью элементов, которые принадлежат одному пространству. Но это разные "ортогональности".

У нас тут пространство людей - аффинное. Нет никакой связи между Алисой и Борисом, нет скалярного произведения между ними, нет метрики. Есть лишь проекция на пространство характеристик.

Формы

Характеристики Бориса мы можем записать аналогичным выражением:/f_b = 180 /h + 80 /w. Возникает вопрос - как соединить данные Алисы с данными Бориса в одно алгебраическое выражение? Как выглядит выражение, из которого можно получать на выбор - рост Алисы или вес Бориса?

Ответ в общем-то несложен. Так же как мы сложили свойства, можно сложить и выражения для этих свойств. Только при этом надо указать, что одно выражение относится к Алисе, а другое - к Борису. Чтобы выразить это корректно, мы и используем понятие линейной формы.

Можно мыслить форму как набор ячеек, в которые можно помещать элементы. Каждая ячейка отделена от другой. Вот форма из двух ячеек, в которых расположены элементыx, y: \langle x, y \rangle. Каждая запятая - отделяет одну ячейку формы от другой. Общее количество ячеек - это валентность (или ранг) формы (не путать с понятием порядка симплекса!).

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

x = \langle x \rangle = \langle x, \rangle = \langle x, 1 \rangle

Но если формы перемножаются, то наличие "пустых ячеек" становится важным, поскольку умножение форм - это умножение их аргументов (ячеек):

\langle a, b \rangle * \langle x, 1 \rangle = \langle a*x, b \rangle;  \quad\langle a, b \rangle * \langle 1, x \rangle = \langle a, b*x \rangle

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

Вернемся к Алисе и Борису. Форма позволяет разделить элементы пространства физлиц и пространства характеристик по разным ячейкам. Например, свойства Алисы с помощью билинейной формы можно записывать так:

/f_a = (170 \langle /h, \rangle + 70 \langle /w, \rangle) * \langle , /a \rangle  = 170 \langle /h, /a \rangle + 70 \langle /w, /a \rangle

Теперь можно объединить свойства Алисы и Бориса в одно алгебраическое выражение:

/G = 170 \langle /h, /a \rangle + 70 \langle /w, /a \rangle + 180 \langle /h, /b \rangle + 80 \langle /w, /b \rangle

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

Ну что, неплохо. Хотя мы и потратили кучу слов, чтобы получить несложное выражение. Тензор (и форму) можно представить в виде матрицы:

\begin{array}{c | c c} /G & /a & /b \\ \hline /h & 170 & 70 \\ /w  & 180 & 80 \end{array}

А можно и как таблицу базы данных (только базы данных не поддерживают коэлементы):

Свойство

Физлицо

Значение

/h

/a

170

/w

/a

70

/h

/b

180

/w

/b

80

Из данного тензора можно извлекать информацию алгебраическими операциями. Например, для того, чтобы извлечь все данные о росте людей, достаточно умножить тензор на форму роста\langle h, \rangle. Получим:

/G * \langle h, \rangle = 170 /a + 180 /b

Здесь мы использовали свойства форм: \langle 0, x \rangle = 0; \langle 1, x \rangle = x. Если же надо узнать вес Алисы, то следует умножить тензор на форму\langle w, a \rangle. Полученное значение (70) можно интерпретировать как значение формы. Поэтому часто говорят, что здесь определено скалярное произведение между пространством характеристик и пространством людей. В том смысле что для каждой формы, в которой указана какая-то характеристика и какое-то лицо, можно получить значение (в общем случае оно необязательно скалярное) умножением метрического (ко)тензора на данную форму.

Можно рассчитать суммарный рост людей. Для этого следует сформировать билинейную форму из роста и суммы элементов-людей. Значение данной формы и будет искомым ответом: /G * \langle h, a + b \rangle = 170 + 180 = 350. Даже если бы в таблице (форме) были данные других людей, они бы не вошли в сумму. То есть выборка элементов действует как фильтр.

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

Обращение формы

Напомним, что в исходной задаче требуется преобразовать характеристики Павла в координаты относительно Алисы и Бориса. Алгебраически, нам надо найти такой тензор, при умножении на который кортежа характеристик Павла получим его координаты. Характеристики Павла выражены в копространстве: /f_p = 160 /h + 60 /w. Соответственно, искомый тензор должен выражаться через элементы обычного пространства. Кроме того, при умножении на данный тензор характеристик Алисы должны получить ответa. Соответственно для характеристик Бориса - ответb. Короче, нам нужно найти тензор, обратный нашему метрическому/G. Или по другому - перевести наш тензор из копространства в обычное.

В матричной математике нам достаточно просто обратить матрицу. Но здесь у нас алгебра форм, и мы выполним обращение вручную. В предыдущей статье показано, что для этого нам надо найти предельную и допредельную грейд-формы (тензоры). То есть умножать наш тензор на себя до предела. В нашем примере предел наступает почти сразу, поскольку у нас всего два элемента в пространстве, и предельные косимплексы людей и характеристик будут такими:/a/b, /h/w. Для достижения предела достаточно возвести наш тензор в квадрат (ну и не забыть при этом разделить на факториал двойки). Выполняя произведение форм по правилам, получим:

/S = (/G)^2/2 = (170*80 - 70*180) \langle /h/w, /a/b \rangle = 1000 \langle /h/w, /a/b \rangle

Продвинутые заметят, что число "1000" тут появилось не случайно - это детерминант формы (матрицы). Если обратить предельную коформу, то получим предельную форму в исходном пространстве:

S = /(/S) = 0.001 \langle w*h, b*a \rangle

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

G = /G*S = 0.08 \langle h, a \rangle - 0.18 \langle w, a \rangle - 0.07 \langle h, b \rangle + 0.17 \langle w, b \rangle

Минусы в коэффициентах появляются как следствие правил внешнего произведения.

Теперь наконец-то мы можем перевести Павла в пространство Алисы и Бориса. Умножим кортеж его характеристик на метрический тензор и получим:

p_{ab} = /f_p*G=2a - b

Это и есть ответ к поставленной в начале задаче. То есть судя по росту и весу Павел - это две Алисы минус один Борис. Можно проверить и извлечь рост Павла из исходного котензора. Получим:/G * \langle h, 2a - b \rangle = 2*170 - 180 = 340 - 180 = 160. Совпало с его данными.

Можно теперь оценивать и другие характеристики Павла. Если, например, возраст Алисы 25 лет, а возраст Бориса 30 лет, то возраст Павла предположительно 25*2-30 = 20 лет. Это гипотеза, выведенная на основании фактов (информации) о значении характеристик. При изменении фактов изменится и гипотеза. Если вдруг мы узнаем реальный возраст Павла, и он окажется не равным гипотезе (20), то это будет означать, что в нашей системе появился новый факт. И на этом основании мы можем увеличить мерность пространства (вместо двух людей в его базисе будет трое).

Об умножении форм

Рассмотрим еще один момент, связанный с произведением форм. Выше мы получили две взаимно обратные грейд-формыGи/G. Если их перемножить, то мы получим скаляр, равный 2, - это след тождественной матрицы (количество элементов пространства). То есть тут формы просто свернулись. Но с другой стороны, как известно, тензоры при умножении не всегда сворачиваются. Например, при матричном умножении двух матриц результатом снова является матрица (2-форма). Как выполнить умножение формы и коформы с сохранением валентности?

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

С использованием индексов наши тензоры имели бы такой вид: G == G_{mf}; \quad /G == G^{mf}. Здесь первым индексом обозначено пространство людей m == \{ a, b\}, а вторым - пространство характеристик f = \{ h, w\}. Верхнее положение индексов соответствует копространству элементов. Если надо выполнить умножение тензоров со сверткой по пространству характеристик, то это записывается так:

R_m^n = G_{mf}  G^{fn}

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

Если добавить, например, в коформу/Xпустой аргумент справа, а в формуY- слева, то при умножении останутся без изменений левый аргумент первой формы и правый от второй. А средний свернется. Пример свертки по среднему аргументу:

\langle /x, /a, 1 \rangle * \langle 1, 2a, y \rangle = \langle /x, 2, y \rangle = 2\langle /x, y \rangle

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

Еще вопросы

  • Чем алгебра форм отличается от матричной или тензорной?

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

    Кроме того, форма - это все-таки алгебраическое выражение, а не просто набор чисел. С ними можно обращаться как, например, с полиномами.

  • В чем суть полиформы?

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

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

    /W = E + /G + /G^2/2 = \\ = (E + 170 \langle /h, /a \rangle)*(E + 70 \langle /w, /a \rangle) * (E + 180 \langle /h, /b \rangle) * (E + 80 \langle /w, /b \rangle)

    Каждый фактор здесь - это информация о значении характеристики какого-то объекта. Если добавляется новый факторr \langle /x, /y \rangle то изменение общей полиформы пропорционально произведению полиформы и добавляемой формы:

    /W' - /W = r \ /W* \langle /x, /y \rangle

  • Что такое пространство со скалярным произведением?

    Это такое пространство, в котором задана 2-форма (тензор), аргументы которой принадлежат одному пространству (множеству). В примере с Алисой и Борисом такому пространству соответствовала бы форма вида\langle a, b \rangleили коформа\langle /a, /b \rangle. Коэффициент при такой форме отражает свойства пространства, то есть какое-то отношение между его элементами.

  • Существует ли 1-форма (кортеж), состоящий из элементов пространства и копространства, например, такая: a + /b?

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


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