Термин был введен американским математиком Бенджамином Пирсом в 1870 году [3] [4] в контексте элементов алгебр, которые остаются инвариантными при возведении в положительную целую степень, и буквально означает «(свойство иметь) ту же самую силу», от idem + potence (тот же самый + сила).
Определение
Элемент множества, снабженный бинарным оператором, называется идемпотентным относительно, если [5] [6]
.
Бинарная операция называется идемпотентной, если [ 7] [8]
В группе , единичный элемент является единственным идемпотентным элементом. Действительно, если является элементом из , таким что , то и, наконец, умножая слева на обратный элемент из .
В моноиде функций из множества в себя (см. возведение множества в степень ) с композицией функций идемпотентными элементами являются функции такие, что , [9] то есть такие, что для всех (другими словами, изображение каждого элемента является неподвижной точкой ). Например:
Абсолютное значение идемпотентно. Действительно, , то есть для всех ;
Если множество имеет элементы, мы можем разбить его на выбранные фиксированные и нефиксированные точки под , и тогда — число различных идемпотентных функций. Следовательно, принимая во внимание все возможные разбиения,
— общее число возможных идемпотентных функций на множестве. Целочисленная последовательность числа идемпотентных функций, заданная суммой выше для n = 0, 1, 2, 3, 4, 5, 6, 7, 8, ... начинается с 1, 1, 3, 10, 41, 196, 1057, 6322, 41393, ... (последовательность A000248 в OEIS ).
Ни свойство быть идемпотентным, ни свойство не быть не сохраняется при композиции функций. [10] В качестве примера для первого, mod 3 и оба идемпотентны, но не являются, [11] хотя случается, что являются. [12] В качестве примера для последнего, функция отрицания в булевой области не является идемпотентной, но является. Аналогично, унарное отрицание действительных чисел не является идемпотентным, но является. В обоих случаях композиция является просто функцией тождества , которая является идемпотентной.
Значение информатики
В информатике термин идемпотентность может иметь разное значение в зависимости от контекста, в котором он применяется:
Это очень полезное свойство во многих ситуациях, поскольку оно означает, что операцию можно повторять или повторять так часто, как это необходимо, не вызывая непреднамеренных эффектов. При неидемпотентных операциях алгоритму, возможно, придется отслеживать, была ли операция уже выполнена или нет.
Примеры из области компьютерных наук
Функция, ищущая имя и адрес клиента в базе данных , обычно идемпотентна, поскольку это не приведет к изменению базы данных. Аналогично, запрос на изменение адреса клиента на XYZ обычно идемпотентен, поскольку конечный адрес будет тем же самым, независимо от того, сколько раз будет отправлен запрос. Однако запрос клиента на размещение заказа, как правило, не идемпотентен, поскольку множественные запросы приведут к размещению нескольких заказов. Запрос на отмену конкретного заказа идемпотентен, поскольку независимо от того, сколько запросов будет сделано, заказ останется отмененным.
Последовательность идемпотентных подпрограмм, где хотя бы одна подпрограмма отличается от других, однако, не обязательно идемпотентна, если более поздняя подпрограмма в последовательности изменяет значение, от которого зависит более ранняя подпрограмма — идемпотентность не замкнута относительно последовательной композиции . Например, предположим, что начальное значение переменной равно 3, и есть последовательность подпрограмм, которая считывает переменную, затем изменяет ее на 5, а затем считывает ее снова. Каждый шаг в последовательности идемпотентен: оба шага, считывающие переменную, не имеют побочных эффектов, а шаг, изменяющий переменную на 5, всегда будет иметь тот же эффект независимо от того, сколько раз он выполняется. Тем не менее, выполнение всей последовательности один раз дает выход (3, 5), но выполнение ее во второй раз дает выход (5, 5), поэтому последовательность не является идемпотентной.
В протоколе передачи гипертекста (HTTP) идемпотентность и безопасность являются основными атрибутами, которые разделяют методы HTTP . Из основных методов HTTP GET, PUT и DELETE должны быть реализованы идемпотентным образом в соответствии со стандартом, но POST не обязательно. [13] GET извлекает состояние ресурса; PUT обновляет состояние ресурса; а DELETE удаляет ресурс. Как в примере выше, чтение данных обычно не имеет побочных эффектов, поэтому оно идемпотентно (фактически нульпотентно). Обновление и удаление заданных данных обычно являются идемпотентными, пока запрос уникально идентифицирует ресурс и только этот ресурс снова в будущем. PUT и DELETE с уникальными идентификаторами сводятся к простому случаю присвоения переменной либо значения, либо нулевого значения соответственно, и являются идемпотентными по той же причине; конечный результат всегда такой же, как и результат первоначального выполнения, даже если ответ отличается. [14]
Нарушение требования уникальной идентификации при хранении или удалении обычно приводит к нарушению идемпотентности. Например, хранение или удаление заданного набора контента без указания уникального идентификатора: запросы POST, которые не должны быть идемпотентными, часто не содержат уникальных идентификаторов, поэтому создание идентификатора делегируется принимающей системе, которая затем создает соответствующую новую запись. Аналогично запросы PUT и DELETE с неспецифическими критериями могут приводить к разным результатам в зависимости от состояния системы — например, запрос на удаление самой последней записи. В каждом случае последующие выполнения еще больше изменят состояние системы, поэтому они не являются идемпотентными.
В обработке потока событий идемпотентность относится к способности системы выдавать один и тот же результат, даже если один и тот же файл, событие или сообщение получено более одного раза.
В архитектуре загрузки-хранения инструкции, которые могут вызвать ошибку страницы, являются идемпотентными. Поэтому, если происходит ошибка страницы, операционная система может загрузить страницу с диска, а затем просто повторно выполнить ошибочную инструкцию. В процессоре, где такие инструкции не являются идемпотентными, работа с ошибками страниц становится гораздо сложнее. [15] [16]
При переформатировании вывода ожидается, что pretty-printing будет идемпотентным. Другими словами, если вывод уже "красивый", то pretty-printer ничего делать не должен. [ нужна цитата ]
В сервисно-ориентированной архитектуре (SOA) многошаговый процесс оркестровки, состоящий исключительно из идемпотентных шагов, может быть воспроизведен без побочных эффектов, если какая-либо часть этого процесса выйдет из строя.
Прикладные примеры, с которыми многие люди могут сталкиваться в своей повседневной жизни, включают кнопки вызова лифта и кнопки пешеходного перехода . [17] Первоначальная активация кнопки переводит систему в запрашивающее состояние, пока запрос не будет удовлетворен. Последующие активации кнопки между первоначальной активацией и удовлетворением запроса не имеют никакого эффекта, если только система не спроектирована так, чтобы регулировать время удовлетворения запроса на основе количества активаций.
^ "идемпотент". Merriam-Webster . Архивировано из оригинала 2016-10-19.
↑ Оригинальная рукопись лекции 1870 года перед Национальной академией наук (Вашингтон, округ Колумбия, США): Пирс, Бенджамин (1870) «Линейная ассоциативная алгебра» Со страниц 16-17: «Когда выражение, возведенное в квадрат или в любую более высокую степень, исчезает, его можно назвать нильпотентным ; но когда оно возводится в квадрат или в более высокую степень, оно дает себя в качестве результата, его можно назвать идемпотентным .
Определяющие уравнения нильпотентных и идемпотентных выражений соответственно A n = 0 и A n = A; но в отношении идемпотентных выражений всегда будет предполагаться, что они имеют вид A n = A, если иное не указано особо».
Напечатано: Пирс, Бенджамин (1881). «Линейная ассоциативная алгебра». American Journal of Mathematics . 4 (1): 97–229. doi :10.2307/2369153. JSTOR 2369153. См. стр. 104.
Перепечатано: Пирс, Бенджамин (1882). Линейная ассоциативная алгебра (PDF) . Нью-Йорк, Нью-Йорк, США: Д. Ван Ностранд. стр. 8.
^ Полчино и Сехгал 2002, стр. 127.
^ Валенца, Роберт (2012). Линейная алгебра: введение в абстрактную математику. Берлин: Springer Science & Business Media. стр. 22. ISBN9781461209010Элемент s магмы, такой что ss = s , называется идемпотентным .
^ Донедду, Альфред (1976). Polynômes et algèbre linéaire (на французском языке). Париж: Вюиберт. п. 180. Soit M un magma, обратите внимание на мультипликативность. По имени идемпотента M tout élement a de M tel que a 2 = a .
^ Джордж Гретцер (2003). Общая теория решеток . Базель: Birkhäuser. ISBN978-3-7643-6996-5.Здесь: Раздел 1.2, стр.5.
^ Гаррет Биркгофф (1967). Теория решеток . Colloquium Publications. Том 25. Providence: Am. Math. Soc.. Здесь: Раздел I.5, стр.8.
^ Это уравнение между функциями. Две функции равны, если их области определения и диапазоны совпадают, а их выходные значения совпадают на всей их области определения.
^ Если и коммутируют относительно композиции (т.е. если ), то из идемпотентности обоих и следует идемпотентность , поскольку , используя ассоциативность композиции.
^ например , но
^ также показывая, что коммутация и не является необходимым условием сохранения идемпотентности
^ "Идемпотентные методы". Протокол передачи гипертекста (HTTP/1.1): семантика и содержимое. раздел 4.2.2. doi : 10.17487/RFC7231 . RFC 7231. Он знает, что повторение запроса будет иметь тот же предполагаемый эффект, даже если исходный запрос был успешным, хотя ответ может отличаться.
^
Марк А. де Крюйф. «Построение компилятором идемпотентных регионов и применение в проектировании архитектуры». 2012. С. 10.
^ "Информация/инструкции по техническим характеристикам пассажирского лифта с редукторной тягой" (PDF) . Департамент труда Северной Каролины, Бюро лифтов . 2002. Архивировано из оригинала (PDF) 23.05.2011.Например, данная спецификация проекта включает в себя подробный алгоритм того, когда кабины лифта будут реагировать на последующие вызовы на обслуживание.
Дальнейшее чтение
Найдите понятие «идемпотентность» в Викисловаре, бесплатном словаре.
В Wikibooks есть больше информации по теме: Идемпотентность
В Викиверситете есть обучающие ресурсы по теме Portal:Computer Science
Goodearl, KR (1991), Регулярные кольца фон Неймана (2-е изд.), Malabar, FL: Robert E. Krieger Publishing Co. Inc., стр. xviii+412, ISBN 978-0-89464-632-4, МР 1150975
Гунавардена, Джереми (1998), "Введение в идемпотентность" (PDF) , в Гунавардена, Джереми (ред.), Идемпотентность. На основе семинара, Бристоль, Великобритания, 3–7 октября 1994 г. , Кембридж: Cambridge University Press , стр. 1–49, Zbl 0898.16032
Хазевинкель, Михель ; Губарени, Надежда; Кириченко В.В. (2004), Алгебры, кольца и модули. том. 1 , Математика и ее приложения, вып. 575, Дордрехт: Kluwer Academic Publishers, стр. xii+380, ISBN 978-1-4020-2690-4, МР 2106764
Лэм, TY (2001), Первый курс по некоммутативным кольцам , Graduate Texts in Mathematics, т. 131 (2-е изд.), Нью-Йорк: Springer-Verlag, стр. xx+385, doi :10.1007/978-1-4419-8616-0, ISBN 978-0-387-95183-6, г-н 1838439
Polcino Milies, César; Sehgal, Sudarshan K. (2002), Введение в групповые кольца, алгебры и приложения, т. 1, Kluwer Academic Publishers, стр. 127, ISBN 978-1-4020-0238-0, г-н 1896125