Идемпотентность
Идемпоте́нтность — свойство объекта или операции при повторном применении операции к объекту давать тот же результат, что и при первом. Термин предложил американский математик Бенджамин Пирс (англ. Benjamin Peirce) в статьях 1870-х годов. Пирс получил термин путём комбинации двух латинских слов: «idem» («тот же самый») и «potens» («способный»).
Примеры идемпотентных операций:
- сложение с нулём:
- умножение на единицу:
- модуль числа:
- поиск максимального значения:
- вычисление наибольшего общего делителя:
- сложение по модулю 2 с нулём:
- нахождение остатка от деления:
- возведение в степень ноль:
- конъюнкция или дизъюнкция элемента с самим собой: или
Элемент
Идемпотентный элемент (идемпотент) в алгебре — элемент полугруппы, сохраняющийся при умножении самого на себя: Теорема об идемпотенте гласит: в конечной полугруппе есть идемпотент.
Идемпотентный элемент содержит идемпотентный элемент (обозначается ), если Отношение является отношением частичного порядка в множестве идемпотентных элементов и называется естественным частичным порядком на множестве
Два идемпотентных элемента ассоциативного кольца (которое будет полугруппой по умножению) и называются ортогональными, если
Операция
В математике
Идемпотентная бинарная операция в математике — операция, относительно которой всякий элемент обладает идемпотентностью в вышеназванном смысле:
Этим свойством обладают, например, логическое И и логическое ИЛИ.
Идемпотентная унарная операция — операция, для которой выполняется
- , или
Из линейных операторов в идемпотентны только тождественный оператор, нулевой оператор и параллельная проекция. Поэтому проектор в алгебре — в том числе в бесконечномерных пространствах — определяется как
В информатике
Идемпотентная операция в информатике — действие, многократное повторение которого эквивалентно однократному.
Примером такой операции могут служить GET-запросы в протоколе HTTP. По спецификации, сервер должен возвращать идентичные ответы на идентичные GET-запросы (при условии, что ресурс не изменился). Это позволяет корректно кэшировать эти ответы, снижая нагрузку на сеть.
Для препроцессора языка C директива «#include "xxx.h"
» является идемпотентной, если в заголовочном файле есть защита от двойного включения.
Литература
- Peirce B. Linear Associative Algebra. 1870.
- Gunawardena, Jeremy (1998), "An introduction to idempotency", in Gunawardena, Jeremy (ed.), Idempotency. Based on a workshop, Bristol, UK, October 3–7, 1994 (PDF), Cambridge: Cambridge University Press, pp. 1—49, Zbl 0898.16032
- Idempotent. Encyclopedia of Mathematics. Springer (Translation of Soviet Mat. Enc.).
- Иванова О. А. Идемпотент // Математическая энциклопедия. — М.: Советская энциклопедия. И. М. Виноградов. 1977—1985.