Die lexikographische Ordnung ist eine Methode, um aus einer linearen Ordnung für einfache Objekte, beispielsweise alphabetisch angeordnete Buchstaben, eine lineare Ordnung für zusammengesetzte Objekte, beispielsweise aus Buchstaben zusammengesetzte Wörter, zu erhalten. Das namengebende Beispiel ist die Anordnung der Wörter in einem Lexikon: Sie werden zunächst nach ihren Anfangsbuchstaben sortiert, dann die Wörter mit gleichen Anfangsbuchstaben nach dem jeweils zweiten Buchstaben usw. Ist ein Wort ganz in einem anderen als Anfangsteil enthalten (wie beispielsweise „Tal“ in „Talent“), so wird das kürzere Wort zuerst aufgeführt.

Die lexikographische Ordnung über dem Standard-Alphabet wird generell als derart selbstverständlich angesehen, dass man kurz und einfach von der alphabetischen Ordnung spricht. Ein Suchbegriff kann außerordentlich schnell in einer sehr großen Menge von Suchbegriffen gefunden werden, wenn diese (nach einer totalen Ordnungsrelation) sortiert ist.

Definition

Bearbeiten

Gegeben sei ein quasigeordnetes Alphabet  , d. i. eine Menge von Zeichen   mit der Relation  [1] Eine Zeichenkette   aus Zeichen dieses Alphabets[2] ist lexikographisch kleiner als eine Zeichenkette  , das heißt   liegt in der Sortierung vor  , wenn beim komponentenweisen Vergleich Zeichen für Zeichen

  • Maßgabe (A):
das Zeichen   von   mit dem niedrigsten Index  , in dem sich die beiden Zeichenketten unterscheiden, (echt) kleiner ist als das entsprechende Zeichen   von  , also  ,
oder, wenn
  • Maßgabe (B):
  ein Anfang von   (d. h.   für alle verfügbaren  ), aber kürzer ist.

Meist wird für die zusammengesetzte Relation dasselbe Vergleichszeichen   (resp.   für die zugehörige Striktordnung) wie im Alphabet   verwendet, da letztere Relation eine Einschränkung der ersteren ist und so Widersprüche nicht entstehen können.

Durch die lexikographische Zusammensetzung wird aus einer Quasiordnung im Alphabet eine Quasiordnung auf der Menge der Zeichenketten, aus einer totalen Quasiordnung wieder eine totale Quasiordnung, aus einer Halbordnung wieder eine Halbordnung und aus einer Totalordnung wieder eine Totalordnung (der häufigste Fall).

Ein Spezialfall dieser Zusammensetzung ist die lexikographische Ordnung von Folgen einer festen endlichen Länge. Dann wird die Maßgabe (B) nicht benötigt. Beispielsweise ist ein geordnetes Paar   lexikographisch kleiner als ein Paar  , wenn

  • entweder  
  • oder   und  

gilt.

Beispiele

Bearbeiten

Ein Beispiel für eine derartige Ordnung ist die zeitliche Reihenfolge für Zahlentripel (Jahr, Monat, Tag): Ein Datum X ist früher als ein anderes Datum Y, wenn

  • entweder die Jahreszahl von X kleiner ist als die Jahreszahl von Y
  • oder die Jahreszahlen gleich sind, aber X in einem im Jahresverlauf früheren Monat liegt
  • oder die Jahreszahlen und Monate gleich sind, aber der Tag von X kleiner als der Tag von Y ist.

Ein weiteres Beispiel ist die übliche Rangfolge innerhalb eines Medaillenspiegels, bei der als erstes Kriterium die Anzahl der Goldmedaillen ausschlaggebend ist, bei gleicher Goldmedaillenzahl die Anzahl der Silbermedaillen und bei nochmaligem Gleichstand die Anzahl der Bronzemedaillen:

Land Gold   Silber   Bronze  
Land 1 10 5 7
Land 2 8 7 4
Land 3 8 5 7
Land 4 5 3 7
Land 5 5 3 2

Mathematische Verwendung

Bearbeiten

Unendliche Folgen

Bearbeiten

Die lexikographische Ordnung lässt sich auf unendliche Folgen fortsetzen:[3] Eine Folge   ist lexikographisch kleiner als eine Folge   wenn beide Folgen vor einem Index   gleich sind, aber   ist. Besteht das Alphabet z. B. aus den Ziffern  , so kann die Folge als ein Dezimalbruch interpretiert werden, der eine reelle Zahl zwischen   und   darstellt. Die lexikographische Ordnung der Folgen entspricht im Wesentlichen der reellen Ordnung im Intervall  . Allerdings haben die (abzählbar unendlich vielen) abbrechenden Dezimalbrüche, die also an ihren Enden nur Ziffern   oder   haben, zwei lexikographisch verschiedene Urbilder, bspw.  , aber lexikographisch  .

Weitere Verallgemeinerung

Bearbeiten

Das Prinzip kann weiter ausgedehnt werden auf Folgen, in denen der Indexbereich eine beliebige wohlgeordnete Menge   ist. In diesem Fall definiert man   für Funktionen   (wobei   linear geordnet ist), falls für das minimale Element   des Definitionsbereiches  , für das sich   und   unterscheiden,   gilt. Die so entstandene Ordnung auf den Funktionen ist wieder linear geordnet.

Anwendung: Ketten in der Potenzmenge einer Ordinalzahl

Bearbeiten

In der Mengenlehre wird oft der Spezialfall betrachtet, bei dem die Indexmenge eine Ordinalzahl   ist und die Folgenglieder nur die Werte   oder   annehmen. Diese Grundmenge wird mit   bezeichnet und sie steht in einer bijektiven Beziehung zu der Potenzmenge von  . Eine Ordinalzahl wird immer als die Menge ihrer Vorgänger-Ordinalzahlen gesehen. Einer Teilmenge   von   kann man die Funktion   zuordnen für die  , wenn   und  , wenn  . Umgekehrt kommt man von einer Funktion   mit der Menge   wieder zu einer Teilmenge von   . Wir betrachten jetzt   mit der lexikographischen Ordnung, wie sie oben definiert wurde. Diese lineare Ordnung kann für kombinatorische Fragen über unendliche Kardinalzahlen verwendet werden. Es gilt:

Für jede wohlgeordnete Teilmenge   von   gilt   .

Zum Beweis durch Induktion nehmen wir an, dass die Aussage für alle Ordinalzahlen   bereits gegeben ist. Ist   so betrachten wir die Einschränkungen   der Funktionen   auf die Teilmenge  . Die Mengen   sind dann wohlgeordnete Teilmengen der lexikographisch geordneten Mengen   . Aus der Induktionsvoraussetzung folgt, dass  . Jetzt nehmen wir wieder ein f in der wohlgeordneten Menge   und betrachten auch den direkten Nachfolger  . Wir definieren   als das kleinste   mit  . Dann gilt für   stets   sowie   und   . Zwei Funktionen   und   in   mit   müssen sich schon unterhalb von   unterscheiden. Nehmen wir an, dass   gilt. Dann ist  ,  ,   und  . Daraus folgt, dass in der lexikographischen Ordnung auch   und   gilt und folglich   und   , also   . Die Mengen   für ein gegebenes   werden also jeweils durch die Einschränkung auf   injektiv auf eine Teilmengen von   abgebildet und haben somit auch nur eine Mächtigkeit  . Da aber  , ist   bewiesen.

Verwendung in der Informatik

Bearbeiten

Der Arbeitsspeicher eines Computers kennt eine kleinste adressierbare Einheit, auch „Speicherstelle“ genannt. Ein Beispiel ist das Byte bestehend aus 8 Bits, sie kann aber auch aus einer anderen Anzahl von Bits bestehen, oder, wenn die Maschine im Dezimalsystem rechnet, eine Dezimalziffer beherbergen.

Zweckmäßigerweise sind die Inhalte zweier Speicherstellen (Bytes) auf der untersten Maschinenebene immer miteinander (im Sinne einer Totalordnung) vergleichbar. Zweckmäßigerweise sind die Ziffern resp. Buchstaben den Bitkombinationen eines Bytes so zugeordnet, dass diese Ordnung mit der üblichen Ordnung im Ziffernsystem resp. Alphabet übereinstimmt. Aufbauend auf diesem Grundbaustein eines Vergleichs lassen sich durch lexikographische Zusammensetzung zusammengesetzte Datentypen, beispielsweise mehrstellige Zeichenketten, miteinander vergleichen.

Korreliert die lexikographische Indizierung mit den Speicheradressen, hat also das beim Vergleichen höherrangige Byte die niedrigere Adresse, dann geschieht der Vergleich im Big-Endian-Stil, und im Little-Endian-Stil, wenn das höherrangige Byte die höhere Adresse hat. Da sich der lexikographische Vergleich im günstigsten Fall schon im ersten, höchstrangigen Byte entscheidet, ist er schneller, wenn dieses erste Byte im unmittelbaren Zugriff liegt.

Vergleich langer numerischer Daten

Bearbeiten

Auf vielen neueren Maschinen werden numerische Datentypen fester Länge (hardware-mäßig) im Little-Endian-Format gespeichert. (Für die Motivation und die Maschinen-Typen siehe den Artikel Byte-Reihenfolge.) Für diese kurzen Aggregate (meist in der Länge 2, 4, 8 oder 16 Bytes) gibt es entsprechende Maschineninstruktionen für die Vergleiche. Diese Instruktionen sind nicht zusammengesetzt, so dass das lexikographische Prinzip nicht zum Zuge kommt.

Die Langzahlarithmetik unterstützt das Rechnen mit ganzen Zahlen beliebiger Länge, einer Länge, die nur durch den verfügbaren Arbeitsspeicher begrenzt ist. Der numerische Vergleich beginnt wie der lexikographische bei beiden Operanden am höchstrangigen Ende. Dabei wird der Rang einer Stelle nicht von ihrem Abstand von diesem bestimmt, sondern von ihrem Abstand vom niedrigstrangigen Ende, der »Einerstelle«. Vor dem Vergleich müssen also die Längen der beiden Operanden durch Auffüllen mit führenden Nullen angeglichen werden. Danach werden (beim numerischen wie beim lexikographischen Vergleich) gleiche Ränge in beiden Operanden miteinander verglichen.[4]

Eine Auswahl von Langzahlarithmetik-Implementierungen findet sich im Abschnitt Langzahlarithmetik#Programmiersprachen. Das Vergleichen ist in diesen Softwarepaketen verglichen mit den vier Grundrechenarten aber eher ein Abfallprodukt. Die Verarbeitungsrichtung ist wie bei der Division von hochrangig zu niedrigrangig, bei Addition, Subtraktion und Multiplikation jedoch umgekehrt. Beide Arten der Speicherung, Big- und Little-Endian, können bei diesen fünf Operationen gut unterstützt werden, sofern auf beide Enden der Kette effizient zugegriffen werden kann.

Verwendung bei Bitketten

Bearbeiten

Konzeptionell sind Bitketten nichts anderes als Zeichenketten über dem zweiziffrigen Alphabet  . Wird eine Bit-Ziffer in (mindestens) einem Byte gespeichert, dann entspricht die Implementierung (und der lexikographische Vergleich) den üblichen Zeichenketten.

Bei einer kompakteren Implementierung mit 1 Bit pro Ziffer, also bspw. 8 Bit-Ziffern pro Byte oder 32 pro Wort, kann es, da alle Wörter genau gleich viele Bits enthalten und eine Kette eine beliebige nicht-negative Länge haben kann, passieren, dass im letzten (niedrigstrangigen) Wort unspezifizierte Bits anfallen, sog. Füllbits.

Wie bei den Zeichenketten startet der lexikographische Vergleich von Bitketten am Kettenanfang, bei der höchstrangigen Komponente (das ist Big-Endian-Stil und ist unabhängig von der Endianness der Maschine). Auf Big-Endian-Maschinen hat das höchstrangige Wort den niedrigsten Index und der Vergleich geht in die höheren Adressen wie bei den Zeichenketten. Auf Little-Endian-Maschinen müssen jedoch, wenn (pro Wort) die von der Maschine angebotenen Vergleichsinstruktionen verwendet werden sollen, die Komponenten genau umgekehrt angeordnet sein und das höchstrangige Wort den höchsten Index haben: der lexikographische Vergleich muss dort beginnen und sich zu den Bits niedrigeren Ranges (und niedrigerer Adresse) fortsetzen.[5]

Verwendung bei Zeichenketten

Bearbeiten

Beim Datentyp Zeichenkette ist die höchstrangige Komponente auf jedem Maschinentyp die (erste) mit der niedrigsten Adresse. Zeichenketten sind also auch auf Little-Endian-Maschinen im Big-Endian-Stil gespeichert.

Recht gute Unterstützung für den lexikographischen Vergleich von Zeichenketten gibt es in C, C++ mit:

  • strcmp,[6] lexikographischer Vergleich unter Berücksichtigung unterschiedlicher Längen im Sinn der Maßgabe (B), aber Einschränkung auf einen Zeichensatz (Alphabet) ohne das Abschlusszeichen null.
  • memcmp,[7] lexikographischer Vergleich mit gleichen (Byte-)Längen der beiden Zeichenketten, voller Zeichensatz.[8]
  • wcscmp,[9] lexikographischer Vergleich von 16-Bit wide strings[10] mit dem Basistyp wchar_t unter Berücksichtigung unterschiedlicher Längen im Sinn der Maßgabe (B), aber Einschränkung auf einen 2-Byte-Zeichensatz (Alphabet) ohne das Abschlusszeichen (wide) null.

Anwendung in der Mikroökonomik

Bearbeiten

→ Siehe auch: Präferenzrelation

Sei durch   mit   das Güterbündel / die Alternative   gegeben und mit   die Alternative   (  ist entsprechend beispielsweise die Menge von Gut 2 im Güterbündel  ). Man bezeichnet eine Präferenz-Indifferenz-Relation R als lexikographisch, wenn   dann und nur dann, wenn entweder   oder   und zugleich  .[11] Mit anderen Worten wird bei einer lexikographischen Präferenz-Indifferenz-Relation ein Güterbündel nur dann schwach gegenüber einem zweiten vorgezogen (das heißt als mindestens so gut wie dieses angesehen), wenn es mehr Einheiten vom ersten Gut enthält oder hilfsweise, falls beide Güterbündel gleich viele Einheiten von diesem Gut umfassen, wenn es mehr Einheiten vom zweiten Gut beinhaltet.

Eigenschaften der lexikographischen Präferenzenordnung:[12]

  1. Eine lexikographische Präferenzenordnung ist vollständig, asymmetrisch (und folglich auch antisymmetrisch), negativ transitiv und transitiv. (Zur Definition der Eigenschaften wird auf den Artikel Präferenzrelation verwiesen.)
  2. Eine lexikographische Präferenzenordnung kann nicht durch eine Nutzenfunktion repräsentiert werden. (Debreu 1959)[13]

Siehe auch

Bearbeiten

Literatur

Bearbeiten

Anmerkungen

Bearbeiten
  1. In der Regel wird meist eine Totalordnung vorliegen. Eine Quasiordnung ist lediglich die Minimalanforderung hier.
  2. D. h. mengentheoretisch ist   ein »Wort« der Kleeneschen Hülle des Alphabets  , ebenso wie  .
  3. Die abzählbar unendlichen Folgen von Zeichen aus dem Alphabet   werden mit   bezeichnet, siehe:   =  .
  4. Unter der Voraussetzung, dass führende Nullen unterdrückt sind, entspricht die (vorzeichenlose) numerische Ordnung der quasi-lexikographischen (im Englischen quasi-lexicographic, radix, length-plus-lexicographic oder shortlex order).
  5. Die Umwandlung einer Bitkette in eine binäre Langzahl (mit dem niedrigstrangigen Bit an der Einerstelle) bedingt auf Seite der Daten einen Rechts-Shift um die Anzahl der Füllbits. Ansonsten ist nur die Beschreibung zu ändern. Wie bei den binären Langzahlen können bei Bitketten Verschiebungen und logischen Verknüpfungen definiert werden; dazu noch die Kettenoperationen wie Verketten, Umkehren und Bildung von Teilketten.
  6. strcmp. en.cppreference.com, abgerufen am 31. März 2017.
  7. memcmp. en.cppreference.com, abgerufen am 31. März 2017.
  8. Auf vielen binär orientierten Big-Endian-Maschinen kann eine Zeichenkette auch als vorzeichenlose unsigned Binärzahl aufgefasst werden. Der zugehörige numerische Vergleich ordnet die Inhalte aber in etwas anderer Weise als der lexikographische der Zeichenketten (s. #Vergleich langer numerischer Daten).
  9. wcscmp. en.cppreference.com, abgerufen am 31. März 2017.
  10. The C99 standard draft + TC3. Abgerufen am 31. März 2017.
  11. Vgl. Mas-Colell/Whinston/Green 1995, S. 46.
  12. Vgl. Moore 2007, S. 14.
  13. Gerard Debreu: Theory of value. An axiomatic analysis of economic equilibrium. John Wiley & Sons, New York 1959.