Zum Inhalt springen

Rangfunktion (Informatik)

aus Wikipedia, der freien Enzyklopädie
Dies ist die aktuelle Version dieser Seite, zuletzt bearbeitet am 26. Juni 2019 um 23:08 Uhr durch Früchtebrot (Diskussion | Beiträge) (Belege fehlen).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Unter einer Rangfunktion (englisch ranking function) versteht man in der Informatik eine Funktion mit Werten in den natürlichen Zahlen, die beim Lauf eines Algorithmus von Rechenschritt zu Rechenschritt monoton fällt. Diese Eigenschaft nutzt man aus, um die Terminierung des Algorithmus zu beweisen.

Einfaches Beispiel

[Bearbeiten | Quelltext bearbeiten]

Wir betrachten folgenden Algorithmus zur Addition zweier Zahlen:

sum (a, 0) = a
sum (a, b) = sum (incr (a), decr (b))

(hierbei bedeutet incr(a) die Erhöhung der Zahl a um 1 und decr(b) die Verminderung der Zahl b um 1).

In diesem Beispiel ist

  • r = b

eine Rangfunktion, die in jedem Rechenschritt um 1 abnimmt.

Weiteres Beispiel

[Bearbeiten | Quelltext bearbeiten]

Eine Variante des klassischen euklidischen Algorithmus zur Berechnung des größten gemeinsamen Teilers ggT(a,b) ist diese rekursive Version: Wenn a > b ist, dann rufe ggT(a-b,b) auf. Wenn a < b ist, dann rufe ggT(a,b-a) auf. Mache dies solange, bis a und b gleich sind. a bzw. b sind dann der gemeinsame größte Teiler.

In diesem Beispiel ist

eine Rangfunktion.