Handout

Werbung
Merlin Carl
27.10.2015
Das Invarianzprinzip
1 Invarianz
Das Invarianzprinzip ist ein wichtiges heuristisches Prinzip, das wir kurz in der Aufforderung ‘Suche nach dem, was sich nicht verändert.’ zusammenfassen können. Nützlich
ist es vor allem in Fällen, in denen ein Prozess vorliegt und gefragt ist, ob er stoppt,
zwangsläufig zu einem gewissen Ergebnis führt oder zu einem gewissen Ergebnis führen
kann.1
Typische Anwendungssituation: Es sind ein Startzustand und eine Reihe erlaubter
Operationen gegeben. Gefragt ist, ob ein gewisser Zielzustand erreichbar ist.
Idee: Suche nach einer Eigenschaft, die beim Startzustand vorliegt und durch die
Operationen erhalten bleibt, aber im Zielzustand nicht vorliegt. Dann ist gezeigt, dass
der Zielzustand nicht erreichbar ist.
Wir fassen die häufigste Anwendungssituation für das Invarianzprinzip zunächst noch
formal:
Es sei X eine Menge, R eine zweistellige Relation auf X. Für x, y ∈ X heißt x von y
aus R-erreichbar, falls eine endliche Folge (z0 , ..., zn ) von Elementen von X so existiert,
dass x = z0 , y = zn und (zi , zi+1 ) ∈ R für alle 0 ≤ i ≤ n − 1. Es sei nun I eine weitere
Menge, f : X → I eine Funktion. Dann heißt (f, I) eine Invariante von R auf X,
falls für alle x, y ∈ X gilt: Ist (x, y) ∈ R, so ist f (x) = f (y). (f, I) heißt vollständige
Invariante oder Klassifizierung von (X, R), falls für alle x, y ∈ X aus f (x) = f (y) folgt,
dass y von x aus erreichbar ist.
Invarianzprinzip (Grundformulierung): Ist (f, I) eine Invariante für (X, R) und sind
x, y ∈ X so, dass f (x) 6= f (y), so ist y von x aus nicht erreichbar.
Beispiel 1: Es stehen die natürlichen Zahlen 1, ..., n an einer Tafel. In einem Zug darf
man zwei der Zahlen an der Tafel, etwa a und b, wegwischen und stattdessen (einmal)
(a + b) hinschreiben. Zeige: Zum Schluss bleibt Σni=1 i an der Tafel stehen.
Beweis: Während des ganzen Prozesses ändert sich die Summe aller an der Tafel
stehenden Zahlen nicht. Folglich ist sie zum Schluss die gleiche wie am Anfang, und am
Anfang ist sie Σni=1 i.
Beispiel 2: Wieder stehen die natürlichen Zahlen 1, ..., n an einer Tafel. In einem
Zug darf man zwei der Zahlen an der Tafel, etwa a und b, wegwischen und stattdessen
(einmal) (a + b) − 1 hinschreiben. Hängt die Zahl, die zum Schluss an der Tafel steht,
von den Zügen ab? Falls nicht, wie lautet sie?
Lösung: Wenn S die Menge der zu einem gewissen Zeitpunkt jeweils an der Tafel
stehenden Zahlen ist, so ist Σs∈S s + (n − |S|) durch alle Züge hindurch invariant. Zu
Beginn ist |S| = n, also Σs∈S s + (n − |S|) = Σni=1 i = n(n+1)
, also gilt das gleiche auch
2
1
Eine wichtige Rolle spielt das Invarianzprinzip außer in der Mathematik daher auch in der Informatik
beim Nachweis der Korrektheit von Programmen.
zum Schluss. Zum Schluss ist aber |S| = 1, also ist Σs∈S s die übrig bleibende Zahl und
daher n(n+1)
= Σs∈S s + (n − 1), also bleibt die Zahl n(n+1)
− (n − 1) stehen.
2
2
Zusatz: Betrachte Beispiel 1 und 2 mit den Operationen (a, b) 7→ a + b − 3, (a, b) 7→ ab
bzw. (a, b) 7→ ab + a + b.
Beispiel 3: Es sei n eine ungerade natürliche Zahl. Alfred schreibt die Zahlen 1, ..., 2n
auf eine Tafel. Anschließend wählt er in jedem Zug zwei der Zahlen an der Tafel, etwa
a und b, wischt sie weg und schreibt stattdessen |a − b| dazu. Zeige: Zum Schluss wird
eine ungerade Zahl übrig bleiben.
Beweis: Der Rest modulo 2 ändert sich durch diese Züge nicht. Da die Summe zu
Beginn 2n(2n+1)
= n(2n + 1), also ungerade, ist, ist er das auch zum Schluss.
2
1.1 ‘Versteckte’ Anwendungen
Manchmal muss man die Situation erst selbst so umformulieren, dass von Operationen
und Zuständen die Rede ist und damit das Invarianzprinzip anwendbar wird.
Beispiel 1: Es seien n ∈ N und ak ∈ {−1, 1} für k = 1, ..., n so, dass a1 a2 + a2 a3 +
... + an a1 = 0. Zeige: n ist durch 4 teilbar.
Lösung: Wenn wir hier das Invarianzprinzip anwenden wollen, müssen wir irgendwie
einen Prozess ins Spiel bringen. Es empfiehlt sich, Prozesse zu betrachten, die an der
vorliegenden Situation möglichst wenig ändern. Da jedes ai einen der Werte −1 oder
1 annehmen soll, liegt es nahe, einmal die Übergänge zu betrachten, bei dem man den
Wert eines der ai wechselt. Wie ändert sich dadurch die Summe a1 a2 + a2 a3 + ... + an a1 ?
Offenbar sind zwei Summanden von der Änderung betroffen, nämlich ai−1 ai und ai ai+1 :
Beide ändern ihr Vorzeichen, d.h. beide ändern sich von −1 zu 1 oder umgekehrt. Anders
gesagt: Beide Summanden ändern sich um ±2. Damit ändert sich ai−1 ai + ai ai+1 um −4,
0 oder 4. Da es uns um Teilbarkeit durch 4 geht, sollten wir hier sicherlich festhalten,
dass der Rest modulo 4 der Summe also unter solchen Schritten invariant ist! Anfangs
ist die Summe gleich 0, also wird jede auf diese Weise erzeugte Summe durch 4 teilbar
sein.
Und was hilft das jetzt? Versuchen wir, die Situation möglichst einfach zu machen,
indem wir nacheinander jede −1 durch eine 1 ersetzen. Die Summe, die wir zum Schluss
erhalten, ist dann n. Und da der Rest modulo 4 sich nicht geändert hat, ist also n durch
4 teilbar.
Beispiel 2: Es sei ein 8 × 8-Schachbrett gegeben, bei dem zwei gegenüberliegende
Eckfelder entfernt wurden. Kann man das Restfeld mit 2×1-Dominosteinen überdecken?
Lösung: Hier liegt es nahe, als einen Schritt das Hinzufügen eines einzelnen Dominosteins zu betrachten. Jeder Dominostein bedeckt ein schwarzes und ein weißes Feld.
Anfangs sind 0 schwarze und 0 weiße Felder überdeckt. Es wird also stets die Anzahl
der überdeckten schwarzen Felder gleich der Anzahl der überdeckten weißen Felder sein.
Nun haben wir aber auf dem in der Aufgabenstellung beschriebenen Brett 30 Felder in
der einen und 32 in der anderen Farbe. Das Brett ist also nicht überdeckbar.
Beispiel 3: Es sei p(x) = xn + a1 xn−1 + ... + an ein Polynom mit ganzzahligen Koeffizienten und n > 0 so, dass p(0) und p(1) ungerade sind. Zeige, dass p(x) unganzzahlige
Nullstellen hat.
2
Lösung: Hier ist die entscheidende Beobachtung, dass sich der Rest, den q(k) (q ∈
Z[X], k ∈ Z) bei Division durch eine natürliche Zahl n lässt, nicht ändert, wenn man zu
k ein ganzzahliges Vielfaches von n addiert. Der Rest von q(k) modulo n hängt also nur
vom Rest von k modulo n ab. In unserem Fall ist n = 2. Da p(0) und p(1) beide den
Rest 1 mod 2 lassen, gilt das gleiche also für jede gerade und jede ungerade, d.h. für jede
ganze Zahl. Da 0 gerade ist, hat p also keine ganzzahligen Nullstellen. Da p andererseits
nicht konstant ist, muss es irgendwelche Nullstellen haben - und die sind alle ungerade.
Beispiel 4: Der wichtige Satz der linearen Algebra, dass für eine quadratische2 Matrix M über einem Körper K stets der Zeilenrang von M gleich dem Spaltenrang von
M ist, lässt sich auch mithilfe des Invarianzprinzips beweisen: Dazu zeigt man (was
nicht besonders schwierig ist), dass sowohl Zeilen- als auch Spaltenrang unter elementaren Zeilen- und Spaltenumformungen invariant sind. Nun kann man aber jede Matrix
mit elementaren Zeilen- und Spaltenumformungen auf Diagonalform bringen, und für
Diagonalmatrizen ist die Behauptung offensichtlich.
1.2 Periodische Invarianten
Bisweilen ist eine Größe in einem Prozeß zwar nicht unveränderlich, ändert sich aber nur
nach einem gewissen, periodischen Muster. Auch solche Situationen kann man häufig
ausnutzen.3
Beispiel: Auf jedem Feld eines 3 × 3-Quadrates sitzt ein Käfer. Ein Gong wird geschlagen, die Käfer erschrecken sich und laufen schnell in ein benachbartes Feld davon.
(Dabei gelten zwei Felder als benachbart, wenn sie eine gemeinsame Grenzlinie haben.)
Ist es möglich, dass anschließend wieder auf jedem Feld genau ein Käfer sitzt?
Lösung: Jeder Käfer ändert nach dem Gongschlag entweder seine x- oder seine yKoordinate um 1. Dadurch ändert er also die Parität (den Rest modulo 2) der Summe
der Koordinaten seines Standortes. Wenn das Quadrat unten links die Koordinaten (0, 0
hat, so gibt es anfangs 5 Käfer mit gerader und 4 mit ungerader Koordinatensumme.
Nach dem Gongschlag ist die Situation genau umgekehrt. Die 5 Käfer, die zuvor eine
gerade Koordinatensumme hatten, sitzen also jetzt auf einem der 4 Felder mit gerader
Koordinatensumme. Nach dem SFP sitzen also zwei davon auf dem gleichen Feld.
Hier muss man also das Invarianzprinzip mit dem Schubfachprinzip kombinieren, um
zur Lösung zu kommen.
2 Halbinvarianz
Halbinvarianten sind mit einem Prozess assoziierte Größen, die mit jedem Schritt größer
oder kleiner werden. In Bezug auf Halbinvarianten sollten wir unsere heuristische Forderung von oben entsprechend ändern zu: ‘Suche nach einer Größe, die sich nur in eine
Richtung verändert’
2
3
Diese Annahme dient nur der Einfachheit. Das Argument funktioniert auch im allgemeinen Fall.
Formal lassen sich solche ‘periodischen’ Invarianten mit etwas Trickserei auch als Invarianten auffassen.
Die so entstehenden Invarianten sind aber häufig ziemlich unnatürlich und deutlich schwieriger zu
erkennen als ihre periodischen Vorfahren.
3
Typische Anwendungssituation für Halbinvarianten ist die folgende: Gegeben sind ein
Startzustand und eine Reihe erlaubter Operationen. Man möchte zeigen, dass schließlich
zwangsläufig ein gewisser Zielzustand erreicht wird.
Die Grundidee besteht darin, den Zuständen natürliche Zahlen als ‘Kennzahlen’ so
zuzuordnen, dass die Anwendung jeder Operation zu einem Zustand führt, dem eine kleinere Kennzahl zugeordnet ist. Dann wird irgendwann zwangsläufig ein Zustand erreicht,
von dem aus keine weiteren Operationen mehr angewendet werden können. Das gleiche
gilt natürlich, wenn die Kennzahl mit jedem Schritt wächst und die Menge möglicher
Werte nach oben beschränkt ist. Auch ohne Beschränktheit lassen sich Halbinvarianten
z.B. nutzen, um zu zeigen, dass ein Prozess nicht periodisch sein kann.
Formal können wir unsere Darstellung aus dem Invarianzteil oben so anpassen: (f, H)
ist Halbinvariante für (X, R) wenn H ⊆ N und für x, y ∈ H mit (x, y) ∈ R stets gilt, dass
f (x) < f (y). Das ‘Halbinvarianzprinzip’ sagt dann in seiner einfachsten Form, dass für
ein (X, R), für das eine Halbinvariante existiert, jede Folge (xi : i ∈ N) von Elementen
von X mit (xi , xi+1 ) ∈ R für alle i ∈ N endlich ist.
Beispiel 1: Ausgehend von einem geordneten Paar (a, b) natürlicher Zahlen bilden
wir eine Folge ((ai , bi ) : i ∈ N) von solchen Paaren, indem wir fortgesetzt die kleinere
Zahl von der größeren subtrahieren, sofern nicht beide gleich sind. Zu zeigen ist, dass
(1) dieses Verfahren nach endlich vielen Schritten endet und (2) und zwar mit dem Paar
(ggT(a,b),ggT(a,b)).
Beweis: Ist a > b, so änder sich beim Übergang von (a, b) zu (a − b, b) die Summe
der Elemente des Paars von a + b zu a. Nach Annahme sind a und b positiv, also ist
a < a + b. Die Summen über die Elemente der Paare bilden also entlang des Prozesses
eine streng monoton fallende Folge natürlicher Zahlen. Da eine solche Folge endlich sein
muss, muss der Prozess nach endlich vielen Schritten beendet sein.
Ferner ist jeder gemeinsame Teiler von a und b auch ein gemeinsamer Teiler von a − b
und b und umgekehrt; es ist also ggT(ai , bi )=ggT(ai+1 , bi+1 ) für alle i, für die ai 6= bi (also
für die der Prozess noch nicht beendet ist). Endet der Prozess mit dem Paar (an , bn ), so ist
nach unserem Argument oben an = bn , also ggT(a,b)=ggT(an , bn )=ggT(an , an )=an =
bn .4
2.1 ‘Versteckte’ Anwendungen
Auch hier muss man die Situation manchmal erst selbst so umformulieren, dass von
Operationen und Zuständen die Rede ist. Das ist häufig besonders nützlich bei manchen
‘Optimierungsproblemen’, in denen es darum geht, zu zeigen, dass eine in gewissem Sinn
optimale Situation erreichbar ist: Zeige, dass sich jede Lösung, die noch nicht in einem
gewissen Sinn optimal ist ‘verbessern’ läßt und dass unendlich viele Verbesserungen nicht
möglich sind.
Beispiel 1: In einem Parlament habe jeder der n Abgeordneten höchstens 3 Feinde.
Zeige: Man kann das Parlament so in zwei Fraktionen aufteilen, dass jeder in der eigenen
Fraktion höchstens einen Feind hat. (Wir gehen davon aus, dass Feindschaft symmetrisch
ist.)
Beweis: Es sei eine beliebige Teilung des Parlamentes vorgegeben. Es sei S die Summe der Anzahlen der Feinde, die jeder Abgeordnete in der eigenen Fraktion hat. Diese
4
Dieser Prozess ist als ‘Euklidischer Algorithmus’ sicherlich aus der linearen Algebra bekannt.
4
Summe ist eine natürliche Zahl. Wir zeigen, dass man die Summe in jeder Situation, in
der ein Abgeordneter in der eigenen Fraktion noch mehr als einen Feind hat, verbessern
kann. Sei dazu a ein solcher Abgeordneter mit den Feinden b und c in der eigenen Fraktion. Wir ändern die Aufteilung, indem wir a der anderen Fraktion zuteilen. In der neuen
Fraktion kann a höchstens noch einen Feind haben, da er insgesamt höchstens 3 Feinde
hat. Sei d dieser Feind (falls er existiert). Durch die Neuzuteilung von a ändern sich die
Feindeszahlen in der eigenen Fraktion von d um +1, die von a um (mindestens) −2 und
die von b und c um jeweils −1, die Gesamtsumme ändert sich also um mindestens −3.
Da die Gesamtsumme stets eine positive ganze Zahl ist, kann sie nicht unendlich oft
verringert werden. Nach endlich vielen Neuzuteilungen ist also der gewünschte Zustand
erreicht.
Beispiel 2: 2n Botschafter sind zu einem Bankett eingeladen. Jeder Botschafter hat
höchstens n − 1 Feinde. Zeige: Man kann die Botschafter so an einen runden Tisch
setzen, dass keine zwei Feinde nebeneinander sitzen. (Wir gehen wieder davon aus, dass
Feinschaft symmetrisch ist.)
Beweis: Wieder gehen wir von einer willkürlichen Sitzordnung aus (P1 , P2 , ..., P2n )
aus, die wir schrittweise verbessern. Angenommen, Pi und Pi+1 sind befeindete Sitznachbarn. Wir suchen ein j so, dass der ‘Kreisbogen’ (Pj , ..., Pi ) umgedreht werden kann, um
die Situation zu verbessern, d.h. so, dass (P1 , ..., Pj−1 , Pi , Pi−1 , ..., Pj+1 , Pj , Pi+1 , ..., Pn )
weniger Paare befeindeter Nachbarn enthält als die Ausgangssituation (der einfacheren
Notation wegen sind wir hier davon ausgegangen, dass j < i, was natürlich nicht der
Fall sein muss). Die einzigen neuen Nachbarpaare, die entstehen, sind (Pj , Pi+1 ) und
(Pj−1 , Pi ). Wir müssen also zeigen, dass es ein j so gibt, dass weder zwischen (Pj und
Pi+1 ) noch zwischen Pj−1 und Pi ) eine Feindschaft besteht. Nun hat Pi+1 nach Annahme
höchstens n − 1 Feinde, also mindestens n Nichtfeinde. Diese (mindestens) n Nichtfeinde haben (mindestens) n linke Nachbarn. Da Pi nur n − 1 Feinde hat, kann Pi nicht
mit jedem dieser linken Nachbarn befeindet sein. Also existiert ein j wie gewünscht.
Durch die oben beschriebene Operationen verringert sich die Anzahl befeindeter Paare
von Nachbarn um mindestens 1. Da diese Anzahl stets eine natürliche Zahl ist, muss
dieser Prozess nach endlich vielen Schritten beendet sein. Es wird also schließlich eine
Situation der gewünschten Art erreicht.
3 (Halb-)Invarianzen als Teil der Lösung
Bisweilen ist durch das Auffinden einer Invarianz oder Halbinvarianz eine Aufgabe zwar
noch nicht ganz zu lösen, man erhält aber wertvolle Zwischenergebnisse. Wo immer man
Invarianzen aufspüren kann, sollte man versuchen, sie einzusetzen (aber natürlich, ohne
daran zu kleben)!
Beispiel 1: Engel S. 2 E1: Gegeben sei ein Punkt P = (a, b) der reellen Ebene mit
0 < a < b. Wir erzeugen eine Folge von Punkten (xn , yn ) durch folgende Regel: x0 = a,
2xn yn
n
y0 = b, xn+1 = xn +y
2 , yn+1 = xn +yn . Konvergiert die Folge? Und wenn sie es tut, gegen
welchen Grenzwert?
Lösung: Wir sollen nach etwas suchen, was sich beim Übergang von (xn , yn ) zu
n 2xn yn
(xn+1 , yn+1 ) = ( xn +y
2 , xn +yn ) nicht ändert. Sicherlich ist auffällig, das der Zähler von
xn+1 gleich dem Nenner von yn+1 ist. Probieren wir also einmal das Produkt aus! In der
n 2xn yn
Tat ist xn+1 yn+1 = xn +y
2
xn +yn = xn yn - das Produkt ist also invariant! Wir betrachten
5
noch die Differenz xn+1 − yn+1 und erhalten induktiv: 0 <
xn −yn
2 ,
xn −yn
2 .
xn +yn
2
−
2xn yn
xn +yn
=
(xn −yn )2
2(xn +yn )
<
also 0 < xn+1 − yn+1 <
Damit halbiert sich der Abstand in jedem Schritt,
die Folge der Abstände konvergiert also gegen 0. Im Grenzwert (x, y) ist also x = y. Die
2
2
Invariante oben
√ zeigt weiterhin, dass xy = ab sein muss. Also ist x = y = xy = ab,
also x = y = ab - wir haben einen Algorithmus zur Berechnung von Quadratwurzeln
gefunden!
Beispiel 2: Engel S. 11, A 25: Beispiel: Gegeben sei ein konvexes 2n-Eck E mit Eckpunkten A1 , ..., A2n . Wir wählen einen Punkt P im Inneren des 2n-Ecks, der auf keiner
der Diagonalen liegt. Zeige: Die Anzahl der Dreiecke mit Eckpunkten in {A1 , ..., A2n },
die P enthalten, ist gerade.
Lösung: E wird durch seine Diagonalen in Teilbereiche zerlegt, durch die keine Diagonale mehr läuft. Sicherlich sind alle Punkte innerhalb so eines Teilbereiches in der
gleichen Anzahl von Dreiecken der fraglichen Art enthalten. Wenn wir den Bereich betrachten, der die Strecke A1 A2 enthält, so sind die darin enthaltenen Punkte offenbar
genau in den Dreiecken der Form A1 A2 Ai , i ∈
/ {1, 2}, enthalten, und davon gibt es
2m − 2 = 2(m − 1) viele, also eine gerade Anzahl. Es liegt nun nahe, als ‘Schritt’ den
Übergang von einem in einen benachbarten Teilbereich zu betrachten, also einen Teilbereich, der mit dem gerade betrachteten eine gemeinsame Grenzlinie hat. Wenn diese
Grenzlinie ein Abschnitt der Diagonalen Ai Aj ist und wir P vom einen Bereich über die
Grenzlinie hinweg in den anderen bewegen, so entfernen wir es damit offenbar aus allen
Dreiecken über der Seite Ai Aj , die ihren dritten Eckpunkt auf der gleichen Seite haben
wie (anfangs) P und führen es zugleich in alle die Dreiecke Ai Aj Ak ein, bei denen Ak
auf der anderen Seite von Ai Aj liegt. Die Anzahl der Dreiecke, in denen P enthalten
ist, ändert sich also um die Differenz zwischen der Anzahl der Eckpunkte von E, die
auf der einen bzw. der anderen Seite von Ai Aj liegen. Insgesamt hat E eine gerade Anzahl, nämlich 2(m − 1), von Ai und Aj verschiedene Punkte; also haben entweder beide
Mengen eine gerade Anzahl von Elementen oder beide haben eine ungerade Anzahl von
Elementen; in beiden Fällen ist die Differenz gerade. Wir können P also beliebig in E
umher bewegen, ohne dass sich der Rest modulo 2 der Anzahl der Dreiecke, in denen P
enthalten ist, ändert. Da wir bereits eine Stelle gefunden haben, an der dieser Rest 0 ist,
gilt das also überall in E, wie gewünscht.
(Berühmtes Beispiel: Max Dehns Lösung von Hilberts drittem Problem durch Einführung der Dehn-Invarianten.5 )
5
Siehe z.B. Aigner/Ziegler: ‘Das BUCH der Beweise’, Kap. 7
6
Herunterladen