Idempotenz

Begriff der Mathematik und Informatik

Idempotenz ist eine Bezeichnung aus der Mathematik und Informatik. In der Mathematik bezeichnet man ein Objekt , das mit einer Verknüpfung die Eigenschaft hat, als idempotent bezüglich dieser Verknüpfung. Ein wichtiger Spezialfall sind idempotente Funktionen bezüglich der Hintereinanderausführung. Analog dazu wird in der Informatik ein Stück Programmcode, das mehrfach hintereinander ausgeführt das gleiche Ergebnis wie bei einer einzigen Ausführung liefert, als idempotent bezeichnet.

Etymologie Bearbeiten

Neologismus (sprachliche Neubildung) aus lateinisch idem → la für „derselbe“ oder „dasselbe“ und dem Substantiv Potenz („in der Mathematik: Produkt mehrerer gleicher Faktoren“), abgeleitet von lateinisch potentia → la für „Vermögen“, „Kraft“ oder „Wirksamkeit“.[1]

Definitionen Bearbeiten

Idempotente Elemente Bearbeiten

Ein Element   einer Menge   heißt idempotent bezüglich einer  -stelligen Verknüpfung   und   falls gilt:

 

Falls   ist und die Verknüpfung (wie etwa bei der Multiplikation in Ringen üblich) in Potenzschreibweise notiert wird, schreibt sich die Bedingung als

 

woraus unmittelbar

  für alle  

folgt, was die Bezeichnung Idempotenz (lat. für gleiche Potenz) erklärt.

Erfüllt dagegen   für eine einstellige Verknüpfung   die Gleichung

 

dann ist   ein Fixpunkt von  

Idempotente Funktionen Bearbeiten

Man nennt eine einstellige Verknüpfung oder Funktion   idempotent, wenn sie bezüglich der Komposition idempotent ist:

 

d. h., für alle   ergibt eine zweimalige Anwendung von   den gleichen Wert wie die einmalige:  .

Idempotente algebraische Strukturen Bearbeiten

Sind alle Elemente einer Halbgruppe (oder allgemeiner eines Magmas)   idempotent bezüglich  , dann wird auch   selbst idempotent genannt. Alternativ wird eine idempotente Halbgruppe auch oft als ein Band bezeichnet.[2][3] Jedes kommutative Band heißt Halbverband. Man nennt eine Halbgruppe   global idempotent, falls gilt:

  mit  .

Einen Halbring   einen Fastring   sowie einen Ring   bezeichnet man als idempotent, falls jeweils   bzw.   idempotent ist. Im Gegensatz dazu ist ein Dioid   ein Hemiring mit Einselement und idempotenter Addition.

Beispiele Bearbeiten

Idempotente Verknüpfungen:

  • Bezüglich der Multiplikation sind die Lösungen   und   der Gleichung   die einzigen idempotenten reellen Zahlen.
  • Bezüglich einer zweistelligen Verknüpfung   ist ein (links- oder rechts-)neutrales Element   stets idempotent:   In einer Gruppe ist das neutrale Element das einzige idempotente Element.
  • In einem Ring mit Eins sind   und   stets idempotente Elemente bezüglich der Multiplikation. Falls der Ring nicht nullteilerfrei ist, können auch noch weitere idempotente Elemente existieren. Beispielsweise gilt im Restklassenring  
  und  .
  • In einem Verband   sind alle Elemente idempotent bezüglich der Verknüpfungen   und  . D.h. es gilt stets   und  . Entsprechendes gilt für die Halbverbände   und  .
  • Absorbierende Elemente sind immer idempotent.

Idempotente Abbildungen:

  • Konstante Funktionen:  
  • Identische Abbildung:  
  •  , wenn  
  • Projektionen, z. B.  
  • Betragsfunktionen:  
  • Hüllenoperatoren.
  • Kernoperatoren.

Eigenschaften Bearbeiten

 
idempotent ist. Insbesondere ist   diagonalisierbar und alle Eigenwerte von   sind   oder  . Geometrisch können idempotente lineare Abbildungen als Projektion des Vektorraums auf einen Untervektorraum interpretiert werden.
  • Jeder idempotente Ring   ist kommutativ, denn es gilt für alle  
 
(zweite und fünfte Gleichung wegen der Idempotenz, dritte und vierte Gleichung wegen der Distributivität), also
 
Damit gilt auch, indem man   und   setzt und wiederum die Idempotenz nutzt,
 
Folglich ist
 
Insbesondere gilt auch (wegen der Idempotenz und wegen (1) mit  )
  bzw.  
  • Ein idempotenter Fastring   ist genau dann kommutativ, wenn er distributiv ist, denn:
Falls   kommutativ ist, gilt für alle  
 
Ist hingegen   distributiv, so folgt daraus genau so wie bei einem idempotenten Ring die Kommutativität.

Informatik Bearbeiten

In der Informatik werden mit dem Begriff Idempotenz – je nach Kontext – zwei voneinander abweichende Definitionen verbunden:

  1. Bei imperativer Programmierung gilt ein Unterprogramm (Funktion) mit Auswirkungen als idempotent, wenn dessen mehrfache Ausführung denselben Zustand des Gesamtsystems bewirkt wie die einmalige Ausführung, oder in anderen Worten, wenn das Unterprogramm als Abbildung des Gesamtsystems auf sich selbst verstanden im mathematischen Sinne idempotent ist.
  2. Bei funktionaler Programmierung ist eine reine Funktion (Funktion ohne Nebeneffekte mit gleichen Ein- und Ausgabeparametern) idempotent, wenn sie dies im mathematischen Sinne ist.

Dies ist eine nützliche Eigenschaft, da sie bedeutet, dass eine Operation so häufig wiederholt oder erneut versucht werden kann wie notwendig, ohne unbeabsichtigte Auswirkungen zu verursachen. Bei nicht-idempotenten Operationen muss ein Algorithmus mitverfolgen, ob sie bereits ausgeführt wurden oder noch nicht.

Idempotenz wird beispielsweise von Recovery-Maßnahmen bei Datenbanken und Diensten gefordert, um Fehlertoleranz bei einem Absturz während einer Wiederanlaufphase zu gewährleisten. Undo- und Redo-Operationen müssen hier auch bei mehrfacher Hintereinanderausführung dasselbe Resultat zur Folge haben.

Rein lesende Services sind von Natur aus idempotent, da der Zustand der Daten nicht geändert wird. Jeder nicht idempotente schreibende Service kann zu einem idempotenten Service gemacht werden.

Beispiele Bearbeiten

  • Bei einem Service zum Verbuchen von Geldbeträgen ist der Aufruf einzahlen(100) nicht idempotent, da bei mehrmaligem Service-Aufruf der Betrag 100 mehrmals eingezahlt wird. Würde man hingegen neuerKontostand(600) aufrufen, so würde bei mehrmaligem Service-Aufruf der Kontostand gleich bleiben. Dieser Aufruf wäre idempotent.
  • (stabile) Sortierfunktionen sind idempotent, da einmal sortierte Daten bei erneuter Sortierung ihre Reihenfolge im Ergebnis nicht mehr verändern.

Siehe auch Bearbeiten

Literatur Bearbeiten

  • Jeremy Gunawardena: An introduction to idempotency in J. Gunawardena (Hrsg.): Idempotency, Cambridge University Press, 1998, ISBN 0-521-55344-X, S. 1–49 (englisch; Vorabveröffentlichung online, PDF-Datei, 414 kB)
  • Munindar Paul Singh, Michael N. Huhns: Service-oriented Computing: Semantics, Processes, Agents. Wiley 2005, ISBN 0-470-09148-7, S. 54 (Auszug in der Google-Buchsuche)

Einzelnachweise Bearbeiten

  1. Idempotenz. In: Wiktionary. 20. Mai 2019 (wiktionary.org [abgerufen am 21. Oktober 2022]).
  2. L. N. Shevrin: Semi-group of Idempotents. In: Michiel Hazewinkel (Hrsg.): Encyclopedia of Mathematics. Springer-Verlag und EMS Press, Berlin 2002, ISBN 1-55608-010-7 (englisch, encyclopediaofmath.org).
  3. Günther Eisenreich, Ralf Sube: Langenscheidts Fachwörterbuch Mathematik. Langenscheidt 1996, ISBN 3-86117-074-4, S. 381 (Auszug in der Google-Buchsuche)