Для того чтобы проиллюстрировать идею топоса как инвариантной структуры данных, рассмотрим Египетский треугольник
$a = BC = 3$ $b = CA = 4$ $c = AB = 5$
Проверка Пифагора:
Введём на множестве сторон вектор состояния
где:
-
$\mathbf{l}$ — вектор длин сторон треугольника; -
$t$ — время (параметр эволюции); -
$\Lambda$ — доля перетекающего параметра.
Для численного моделирования перейдём к явной дискретной схеме. Определим поток параметра вдоль направленных рёбер графа (цикла
Дивергенция (баланс) параметра в каждой вершине графа (стороне треугольника):
Шаг эволюции (явная схема Эйлера):
Несложно показать, что под действием данного потока Египетский треугольник
Исходный треугольник и полученный равносторонний связаны морфизмом (диффузионным потоком), сохраняющим структурные инварианты — периметр и сумму углов. В этом смысле равносторонний треугольник является топосом исходного Египетского треугольника.
Под топосом в контексте данной работы мы понимаем такую структуру данных, которая:
- Связана с исходным объектом вычислимым морфизмом;
- Сохраняет заданный набор интегральных мер (инвариантов) исходного объекта.
Принципиальное преимущество концепции топоса заключается в том, что для его получения могут существовать альтернативные алгоритмы, в том числе работающие за константное время
Например, для нахождения равностороннего топоса треугольника нет необходимости численно интегрировать уравнение диффузии. Достаточно:
- Вычислить периметр
$P = a + b + c$ ; - Равномерно распределить его длину между тремя сторонами:
$a' = b' = c' = P/3$ .