Инвариант (математика)

undefined

В математике инвариант — это свойство математического объекта (или класса математических объектов), которое остаётся неизменным после применения к объекту операций или преобразований определённого типа[1][2]. Конкретный класс объектов и тип преобразований обычно указываются в контексте использования термина. Например, площадь треугольника является инвариантом относительно изометрий евклидовой плоскости. Используются выражения «инвариант относительно» и «инвариант к» преобразованию. Более общо, инвариант относительно эквивалентного отношения — это свойство, постоянное на каждом классе эквивалентности[3].

Инварианты используются в различных областях математики, таких как Геометрия, Топология, Алгебра и Дискретная математика. Некоторые важные классы преобразований определяются по инварианту, который они сохраняют. Например, конформные отображения определяются как преобразования плоскости, сохраняющие углы. Открытие инвариантов является важным этапом в процессе классификации математических объектов[2][3].

Примеры

Простой пример инвариантности выражается в нашей способности считать. Для конечного множества объектов любого рода существует число, к которому мы всегда приходим, независимо от порядка, в котором считаем объекты в множестве. Эта величина — кардинальное число — ассоциируется с множеством и инвариантна относительно процесса счёта.

Тождество — это равенство, которое остаётся верным при любых значениях переменных. Существуют также неравенства, сохраняющие истинность при изменении значений переменных.

Расстояние между двумя точками на числовой прямой не изменяется при прибавлении одного и того же числа к обоим значениям. В то же время Умножение не обладает этим свойством, так как расстояние не инвариантно относительно умножения.

Углы и отношения расстояний инвариантны относительно масштабирования, поворотов, переносов и отражений. Эти преобразования порождают подобные фигуры, что лежит в основе тригонометрии. В отличие от этого, углы и отношения не инвариантны относительно неравномерного масштабирования (например, растяжения). Сумма внутренних углов треугольника (180°) инвариантна относительно всех указанных выше преобразований. Ещё один пример: все окружности подобны — их можно преобразовать друг в друга, и отношение длины окружности к диаметру инвариантно (обозначается греческой буквой π (пи)).

Более сложные примеры:

Задача MU

Задача MU[7] — хороший пример логической задачи, где определение инварианта полезно для доказательства невозможности. В задаче требуется, начиная со слова MI, получить слово MU, используя на каждом шаге одно из следующих правил преобразования:

  1. Если строка оканчивается на I, можно добавить U (xI → xIU)
  2. Строку после M можно полностью удвоить (Mx → Mxx)
  3. Любые три подряд идущих I (III) можно заменить на один U (xIIIyxUy)
  4. Любые две подряд идущих U можно удалить (xUUyxy)

Пример вывода (с верхними индексами, указывающими применённые правила):

MI →2 MII →2 MIIII →3 MUI →2 MUIUI →1 MUIUIU →2 MUIUIUUIUIU →4 MUIUIIUIU → ...

Возникает вопрос: возможно ли получить MU из MI, используя только эти четыре правила? Можно потратить много времени, перебирая варианты, однако быстрее будет найти свойство, инвариантное относительно всех правил (то есть не изменяющееся ни одним из них), и тем самым показать невозможность получения MU. С логической точки зрения можно заметить, что избавиться от I можно только, если в строке есть три подряд идущих I. Это делает интересным следующий инвариант:

Число I в строке не делится на 3.

Это инвариант задачи, если для каждого правила выполняется: если инвариант выполнялся до применения правила, он будет выполняться и после. Рассмотрим влияние каждого правила на количество I и U:

Правило #I #U Влияние на инвариант
1 +0 +1 Число I не меняется. Если инвариант выполнялся, он сохраняется.
2 ×2 ×2 Если n не делится на 3, то и 2n не делится. Инвариант сохраняется.
3 −3 +1 Если n не делится на 3, то и n−3 не делится. Инвариант сохраняется.
4 +0 −2 Число I не меняется. Если инвариант выполнялся, он сохраняется.

Таблица выше ясно показывает, что инвариант сохраняется при каждом из возможных правил, то есть, какое бы правило ни было выбрано и в каком бы состоянии ни находилась строка, если число I не делилось на три до применения правила, оно не будет делиться и после.

Поскольку в исходной строке MI содержится одна буква I, а 1 не делится на 3, можно заключить, что получить MU из MI невозможно (так как число I никогда не станет кратным трём).

Инвариантное множество

Подмножество S области определения U отображения T: UU называется инвариантным множеством относительно этого отображения, если Элементы S не обязательно неподвижны, хотя само множество S фиксировано в булеане U. (Некоторые авторы используют терминологию инвариантно как множество[8] в отличие от инвариантно поэлементно[9] для различения этих случаев.) Например, окружность является инвариантным подмножеством плоскости относительно поворота вокруг её центра. Кроме того, Коническая поверхность инвариантна как множество относительно гомотетии пространства.

Инвариантное множество относительно операции T также называют устойчивым относительно T. Например, нормальные подгруппы, играющие важную роль в теории групп, — это те подгруппы, которые устойчивы относительно внутренних автоморфизмов данной группы[10].[11][12] В линейной алгебре, если линейное преобразование T имеет собственный вектор v, то прямая, проходящая через 0 и v, является инвариантным множеством относительно T; в этом случае собственные векторы порождают инвариантное подпространство, устойчивое относительно T.

Если Tвинтовое перемещение, то винтовая ось — инвариантная прямая, хотя при ненулевом шаге у T нет неподвижных точек.

В теории вероятностей и эргодической теории инвариантные множества обычно определяются через более сильное свойство [13][14][15] Если отображение измеримо, инвариантные множества образуют сигма-алгебру, называемую инвариантной сигма-алгеброй.

Формальное определение

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

Неизменность относительно действия группы

Во-первых, если имеется группа G, действующая на математическом объекте (или множестве объектов) X, можно спросить, какие точки x остаются неизменными, «инвариантными» относительно действия группы или её элемента g.

Часто группа действует на множестве X, и возникает задача определить, какие объекты в связанном множестве F(X) инвариантны. Например, поворот плоскости вокруг точки оставляет эту точку инвариантной, а параллельный перенос не оставляет ни одной точки инвариантной, но оставляет инвариантными все прямые, параллельные направлению переноса. Формально, множество прямых на плоскости P обозначим как L(P); тогда жёсткое движение плоскости переводит прямые в прямые — группа жёстких движений действует на множестве прямых — и можно спросить, какие прямые остаются неизменными при действии.

Более важно, можно определить функцию на множестве, например, «радиус окружности на плоскости», и спросить, инвариантна ли эта функция относительно действия группы, например, жёстких движений.

Двойственным к инвариантам является понятие коинвариантов, также называемых орбитами, что формализует понятие конгруэнтности: объекты, которые можно перевести друг в друга действием группы. Например, относительно группы жёстких движений плоскости периметр треугольника — инвариант, а множество треугольников, конгруэнтных данному, — коинвариант.

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

Например, треугольники, у которых все три стороны равны, конгруэнтны относительно жёстких движений (по признаку SSS), и потому длины трёх сторон образуют полную систему инвариантов для треугольников. Три угла треугольника также инвариантны относительно жёстких движений, но не образуют полной системы, так как неконгруэнтные треугольники могут иметь одинаковые углы. Однако если разрешить масштабирование наряду с жёсткими движениями, то признак подобия AAA показывает, что это полная система инвариантов.

Независимость от представления

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

Наиболее распространённые примеры:

Неизменность при деформации

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

Инварианты в информатике

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

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

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

Автоматическое обнаружение инвариантов в императивных программах

Инструменты абстрактной интерпретации могут вычислять простые инварианты для заданных императивных программ. Вид свойств, которые могут быть обнаружены, зависит от используемых абстрактных доменов. Типичные примеры — диапазоны значений целых переменных, например 0<=x<1024, отношения между переменными, например 0<=i-j<2*n-1, и информация о делимости, например y%4==0. В академических прототипах рассматриваются также простые свойства указателей[16].

Более сложные инварианты, как правило, должны задаваться вручную. В частности, при верификации императивной программы с помощью исчисления Хоара[17] инвариант цикла должен быть задан вручную для каждого цикла, что является одной из причин непрактичности этого подхода для большинства программ.

В контексте приведённого выше примера задачи MU в настоящее время не существует общего автоматического инструмента, способного обнаружить невозможность получения MU из MI только с помощью правил 1–4. Однако, если вручную абстрагировать строку до числа символов "I", например, с помощью следующей программы на C, инструмент абстрактной интерпретации сможет обнаружить, что ICount%3 не может быть равно 0, и, следовательно, цикл "while" никогда не завершится.

void MUPuzzle(void) {
    volatile int RandomRule;
    int ICount = 1, UCount = 0;
    while (ICount % 3 != 0)                         // бесконечный цикл
        switch(RandomRule) {
        case 1:                  UCount += 1;   break;
        case 2:   ICount *= 2;   UCount *= 2;   break;
        case 3:   ICount -= 3;   UCount += 1;   break;
        case 4:                  UCount -= 2;   break;
        }                                          // вычисленный инвариант: ICount % 3 == 1 || ICount % 3 == 2
}

Примечания

Литература

  • Fraleigh, John B. (1976), A First Course In Abstract Algebra (2nd ed.), Reading: Addison-Wesley, ISBN 0-201-01984-1 
  • Herstein, I. N. (1964), Topics In Algebra, Waltham: Blaisdell Publishing Company, ISBN 978-1114541016 
  • Kay, David C. (1969), College Geometry, New York: Holt, Rinehart and Winston 
  • McCoy, Neal H. (1968), Introduction To Modern Algebra, Revised Edition, Boston: Allyn and Bacon 
  • J.D. Fokker, H. Zantema, S.D. Swierstra (1991). "Iteratie en invariatie", Programmeren en Correctheid. Academic Service. ISBN 90-6233-681-7.
  • Weisstein, Eric W. Invariant (англ.) на сайте Wolfram MathWorld.
  • Popov, V.L. (2001), Invariant, in Hazewinkel, Michiel, Encyclopedia of Mathematics, Springer, ISBN 978-1-55608-010-4 
  • Billingsley, Patrick. Probability and Measure. — John Wiley & Sons, 1995. — ISBN 0-471-00710-2.
  • Douc, Randal. Markov Chains / Randal Douc, Eric Moulines, Pierre Priouret … [и др.]. — Springer, 2018. — ISBN 978-3-319-97703-4. — doi:10.1007/978-3-642-14295-6_8.
  • Klenke, Achim. Probability Theory: A comprehensive course. — Springer, 2020. — ISBN 978-3-030-56401-8. — doi:10.1007/978-1-4471-5361-0.

Ссылки