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