Das Sortierproblem als eine Begegnung mit dem axiomatischen Denken Martin Epkenhans June 29, 2009 Abstract Ausgehend vom Sortierproblem für endliche Folgen, sollen die für eine Sortierung notwendigen Eigenschaften von Relationen entwickelt werden, um so eine axiomatische Theorie zu erhalten. Keywords Sortieren · Axiomatisches Denken 1 Einführung Die theoretische Informatik ist nicht nur aus der Mathematik entstanden, sondern nutzt stärker als andere Bereiche der Informatik weiterhin mathematische Schreib- und Denkweisen. Genannt seien an dieser Stelle etwa die Beschreibung formaler Sprachen, endlicher Automaten und die Chomsky-Hierarchie. Hierbei gibt man gewöhnlich gewisse Mengen vor (z.B. Terminalsymbole, Nichtterminalsymbole, Zustände, Funktionen, etc.)und fordert ggf. weitere Eigenschaften (z.B. | u |≤| v | für die Ableitungsregeln u → v bei kontextsensitiven Sprachen). In einem weiteren Schritt betrachtet man Beispiele für die definierten Begriffe und sieht so u.a., dass die Definitionen nicht inhaltsleer sind. Danach werden Zusammenhänge studiert und bewiesen, z.B. Zusammenhänge zwischen Automaten und Sprachen. Dieses Denken und Arbeiten ist dem axiomatischen Arbeiten der Mathematik sehr verwandt. Nun hat sich der Mathematikunterricht nach den Erfahrungen mit der ”Neuen Mathematik” sehr stark von diesem Arbeiten abgewandt. Der Mathematikunterricht leistet aktuell keinen Beitrag zum Verständnis axiomatischer Theorien. Dabei wäre gerade dies im Bereich der theoretischen Informatik von Vorteil. Nun ist die Entwicklung axiomatischer Theorien in der Mathematik ein gewöhnlich langer Prozess. So erkennt man erst durch das Studium vieler Beispiele und Gegenbeispiele, welche Begriffsbildung sinnvoll zu sein scheint. Dass die Chomsky-Hierarchie eine sinnvolle Einteilung von Sprachen ist, ist a priori im Schulunterricht nicht einleuchtend. Warum soll man kontextfreie Sprachen von kontextsensitiven Sprachen abgrenzen? An dieser Stelle soll nun an einem kleinen Beispiel, das in einer Unterrichtsreihe realisiert werden kann, der Weg zu einer kleinen axiomatischen Theorie 1 2 von Schülern entdeckt werden. Dabei benutzen wir in dieser Arbeit Begriffe wie axiomatische Theorie nur zur Verständigung mit dem kundigen Lehrer, zur korrekten Einordnung der zu behandelnden Inhalte in den wissenschaftlichen Gesamtzusammenhang. Für den Unterricht selbst sind solche Begriffe nicht erforderlich. Man startet mit einem bekannten, leicht verständlichen Problem und erkennt mit der Zeit die Notwendigkeit allgemeiner Zugänge und Aussagen zu dieser Thematik und entwickelt eine kleine Theorie. Dabei haben wir uns bewusst für ein gängiges Thema des Informatikunterrichts entschieden, das Sortieren. Im Gegensatz zu anderen Themen der theoretischen Informatik ist das Sortieren auch außerhalb des Informatikunterrichts leicht und ohne Vorkenntnisse verständlich. Daher bietet sich für die hier vorgestellte Unterrichtseinheit neben dem Informatikunterricht auch der Mathematikunterricht an. Diese Arbeit stellt kein Plädoyer für eine Rückkehr zur Strukturmathematik im Schulunterricht dar. Es soll hier keine konkrete Unterrichtseinheit zu diesem Thema vorgestellt werden. Wir stellen die fachlichen Voraussetzungen zusammen und geben danach Tipps für die Umsetzung im Unterricht, die bereits erfolgreich in Informatikleistungskursen realisiert worden sind. Gleichzeitig soll diese Arbeit auch ein Diskussionsanreiz zum Thema ”Welchen Einfluß können informatische Fragestellungen auf die Inhalte des Mathematikunterrichts haben?” sein. Mathematikdidaktiker haben wich wiederholt gegen ein eigenes Unterrichtsfach Informatik ausgesprochen, da die wichtigen informatischen Inhalte im Mathematikunterricht bereits behandelt werden. Aus Sicht der Informatik kann man daher die Frage stellen, ob diese starke Abkehr der Strukturmathematik tatsächlich das richtige Fundament für eine erfolgreiche Beschäftigung mit Informatik liefert. (siehe hierzu die Tagungsbände des Arbeitskreis ”Mathematikunterricht und Informatik ” in der GDM). 2 Fachsystematische Hintergründe Zunächst wollen wir die fachsystematischen Hintergründe zusammenstellen. Als Literatur empfehlen wir an dieser Stelle [LS97]. Definition 1 Sei M eine nichtleere Menge und sei ∼ eine Relation auf M . Wir nennen ∼ • reflexiv, falls x ∼ x für alle x ∈ M . • irreflexiv, falls x 6∼ x für alle x ∈ M . • antisymmetrisch, falls aus x ∼ y und y ∼ x folgt, dass x = y. • transitiv, falls x ∼ y und y ∼ z impliziert x ∼ z. • konnex, falls für alle x, y ∈ M gilt: x = y, x ∼ y oder y ∼ x. • linear, falls für alle x, y ∈ M gilt x ∼ y oder y ∼ x. 3 • trichotom, falls für alle x, y ∈ M entweder x = y oder x ∼ y oder y ∼ x gilt. • Eine reflexive Ordnungsrelation ist eine reflexive, antiysmmetrische und transitive Relation. Ist die reflexive Ordnung zusätzlich noch linear, so spricht man von einer reflexiven totalen oder linearen Ordnung auf M . Entsprechend sind die Begriffe irreflexive Ordnung und irreflexive lineare Ordnung erklärt. Bekannte Beispiele für Ordnungen sind etwa die üblichen ≤ bzw. <-Relationen auf den natürlichen Zahlen, den ganzen Zahlen, den rationalen und reellen Zahlen. Dabei ist ≤ reflexiv und < irreflexiv. Hinzu kommt die Teilmengenbeziehung von Mengen und die Teilbarkeitsrelation von natürlichen Zahlen. Im Zusammenhang mit Sortierproblemen stellt die lexikographische Ordnung auf verschiedenen später noch zu präzisierenden Mengen ein weiteres wichtiges Beispiel dar. Zunächst wollen wir davon ausgehen, dass auf der betrachteten Menge M nur eine Relation besteht, die notwendigen Eigenschaften im Hinblick auf die Sortierbarkeit sollen einzeln herausgearbeitet werden. Daher unterscheiden wir an dieser Stelle zwischen partiell sortierten und (vollständig) sortierten Folgen. Da wir auf Ordnungsrelationen abzielen, wählen wir von nun ab ≺ als Relationszeichen. Definition 2 Sei M eine Menge mit einer Relation ≺. 1. Eine Folge x1 , . . . , xn von Elementen von M heißt partiell sortiert bzgl. ≺, falls für alle i = 1, . . . , n − 1 gilt xi = xi+1 oder xi ≺ xi+1 . 2. Die Folge heißt (vollständig) sortiert bzgl. ≺, falls aus i ≤ j folgt xi ≺ xj oder xi = xj . 3. Ein Element a ∈ M heißt Maximum (Minimum), falls für alle x ∈ M aus a ≺ x (x ≺ a) folgt a = x. 4. Ein Element m ∈ M heißt größtes (kleinstes) Element, falls x ≺ m (m ≺ x) für alle x ∈ M gilt. 5. Entsprechend sind maximale, minimale, kleinste und größte Elemente von endlichen Folgen definiert. Sei nun M eine Menge mit einer Relation ≺. Satz 1 1. Jede sortierte Folge ist partiell sortiert. 2. Die Umkehrung gilt im Allgemeinen nicht. 3. Ist ≺ transitiv, so ist jede partiell sortierte Folge auch vollständig sortiert. 4 Beweis: (1) ist trivial, da es sich um eine Abschwächung handelt. Zum Beweis von (2) sei M = {a1 , a2 , a3 } eine dreielementige Menge mit der Relation a1 ≺ a2 , a2 ≺ a3 und a3 ≺ a1 . Dann ist a1 ≺ a2 ≺ a3 eine partiell sortierte, aber nicht vollständig sortierte Folge. (3) folgt durch Induktion über den Abstand j − i ≥ 1 der Elemente mit Hilfe der Transitivität. Satz 2 Sei ≺ eine lineare oder eine konnexe Relation auf M . 1. Dann kann jede endliche Teilmenge N 6= ∅ von M als partiell sortierte Folge geschrieben werden. Die Folge ist im Allgemeinen nicht vollständig sortiert und nicht eindeutig. 2. Ist die Relation ≺ jedoch linear, transitiv und antiysmmetrisch, so gibt es genau eine partiell sortierte Folge der Teilmenge N , die dann auch vollständig sortiert ist. 3. Ist die Relation ≺ trichotom und transitiv, so gibt es genau eine partiell sortierte Folge der Teilmenge N , die dann auch vollständig sortiert ist. Beweis: Zu 1) Die Existenz einer partiell sortierten Folge beweisen wir durch Induktion nach der Kardinalität n = ]N der Teilmenge N ⊂ M . Der Induktionsanfang n = 1 ist klar. Sei also n > 1 und sei x1 R . . . Rxn−1 eine partiell sortierte Folge von n − 1 Elementen von N . Eine solche Folge existiert nach Induktionsvoraussetzung. Hierbei steht das Relationszeichen R für ≺ oder =. Sei xn ∈ N das verbleibende Element aus N . Sei zunächst ≺ konnex. Falls xn−1 ≺ xn oder xn−1 = xn gilt, so ist x1 R . . . xn−1 Rxn eine partiell sortierte Folge von N . Anderenfalls sei i ≤ n−1 der minimale Index mit xn ≺ xi . Dann ist x1 R . . . xi−1 Rxn ≺ xi R . . . Rxn−1 eine partiell sortierte Folge. Im Fall i = 1 beginnt die Folge mit xn . Der Beweis für eine lineare Relation ergibt sich analog zum obigen Beweis, wobei man hier die Fälle xn−1 ≺ xn und xn ≺ xn−1 unterscheidet. Im Beweis von Satz 1(2) haben wir eine konnexe Relation auf einer dreielementigen Menge angegeben. Die Folgen a1 ≺ a2 ≺ a3 und a2 ≺ a3 ≺ a1 sind partiell sortierte, aber nicht vollständig sortierte und voneinander verschieden. Die Relation kann leicht zu einer linearen Relation erweitert werden. Zu 2) Wegen Satz 1(3) müssen wir nur noch die Eindeutigkeit nachweisen. Seien x1 R . . . Rxn und y1 R . . . Ryn zwei sortierte Folgen, bestehend aus den gleichen n Elementen aus M . Dann gibt es Indizes i, j ≤ n mit xi = yn und yj = xn . Aus yn = xi ≺ xn und xn = yj ≺ yn folgt mit der Antisymmetrie xn = yn . Die Eindeutigkeit der Folge ergibt sich nun durch Induktion über n. Zu 3) Wir argumentieren wie oben. Bei einer trichotomen Relation kann der Fall yn = xi ≺ xn und xn = yj ≺ yn nicht eintreten. Daher muss xn = yn gelten. 5 2.1 Die lexikographische Ordnung Die alphabetische Sortierung von Wörtern ist eine alltäglich anzutreffende Ordnungsstruktur. Aber nicht nur Wörter werden so sortiert, in einem Computer kann man die Dateien innerhalb eines Ordners nach Namen sortieren, diese Namen dürfen jedoch mehr als die Buchstaben des Alphabets enthalten. So ist es üblich geworden, Dateinamen mit Versionsnummern oder dem Erstellungsdatum zu versehen. Wie geschieht in diesen Fällen die Sortierung, wie wird die Reihenfolge festgelegt? Diese Fragestellung führt auf eine Verallgemeinerung der alphabetischen Ordnung, die sogenannte lexikographische Ordnung. Definition 3 Sei Σ eine endliche Mengen von Zeichen, auch Buchstaben genannt. Die Menge L(Σ) der endlichen Folgen von Zeichen aus Σ, auch Wörter genannt, nennt man die Sprache über dem Alphabet Σ. Für die Zeichen im Alphabet Σ wird nun eine Reihenfolge vorgegeben. Seien nun x = x1 . . . xk und y = y1 . . . yl zwei Wörter der Sprache L(Σ). Dann gilt genau dann x < y, wenn • xi = yi für 1 ≤ i ≤ k < l oder • es existiert ein i mit 1 ≤ i ≤ k, l und xi = yi für 1 ≤ j < i und xi < yj . Ein Wort x kommt somit vor dem Wort y, falls x kürzer ist als y und genau einem Anfangsteil von y entspricht oder falls x und y bis zu einem gewissen Index übereinstimmen und an der ersten Stelle, an der sie sich unterscheiden, das entsprechende Zeichen von x in der gewählten Reihenfolge von Σ vor dem entsprechenden Zeichen von y kommt. Betrachten wir hierzu einige Beispiele. Setze Σ = {a, b, . . . , z, 0, 1, . . . , 9} und sei die Reihenfolge der Zeichen entsprechend. Dann gilt etwa ordnung < ordnungen, 14april < 15april, 14 < 15, aber auch 0100 < 100. Man beachte, dass die Zeichenketten in keiner Weise interpretiert werden, somit 0100 und 100 zwei verschiedene Zeichenketten sind. Betrachten wir nun Σ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} mit der entsprechenden Reihenfolge der Zeichen. Gibt man Kalenderdaten in der Form TTMMJJJJ an, z. B. 11122006, 11102007 und 12122005, so gilt etwa 11102007 < 11122006 < 12122005. Gibt man hingegen ein Datum im Format JJJJMMTT an, so werden die Daten chronologisch geordnet. Dies läßt sich leicht mit Dateinamen in einem Computer überprüfen. Man kann der Deutlichkeit halber auch noch den Punkt als Trennzeichen aufnehmen. 3 Hinweise zur schulischen Umsetzung Im Unterricht sollten möglichst die Transitivität und eine der Eigenschaften linear, konnex bzw. trichotom herausgearbeitet werden. Hinzu kommen ggf. die Antisymmetrie, Reflexivität und die Irreflexivität. Letzteres ist mit Blick auf etwa das Interface comparable aus JAVA essentiell für die Entwicklung allgemeiner Sortierprogramme. Viele Sortieralgorithmen wie etwa Bubble-Sort, 6 Insertion-Sort, Selection-Sort vergleichen nicht jedes Element mit jedem, sondern nutzen die Transitivität aus. Lauffähig sind sie aber auch ohne diese Eigenschaft der Relation, nur mit welchem Ergebnis hinsichtlich der Problemstellung? Daneben sollte zumindest ein Teil der obigen Sätze in ihrem Wesensgehalt erarbeitet werden. Zu Beginn muss zum einen geklärt werden, ob gleiche Elemente in einer Folge vorkommen dürfen und wie sie dann behandelt werden sollen. Eine wichtige Aufgabe ist die Klärung der Frage, was unter einer Lösung des Sortierproblems überhaupt verstanden werden soll. Gewöhnlich bestehen die ersten Beispiele aus Zahlen oder Wörtern, evtl. allgemein aus Zeichenketten. Hier ist die eigentliche Problematik den Schülerinnen und Schülern nicht sofort ersichtlich, daher wirkt die getroffene Unterscheidung in partiell sortierte und sortierte Folgen zunächst sehr künstlich und ist anfangs sicherlich noch nicht erforderlich. Wichtig ist es, dass die Schülerinnen und Schüler erkennen, das die Transitivität eine zu fordernde Eigenschaft ist. ”Zum wirklichen Begriffsverständnis ist stets ein kritischer Bezug auf vorhandene oder zu suchende Objekte im Sinne einer Einteilung in Beispiele und Gegenbeispiele erforderlich”, so H. Hischer in [His02] S. 153. Diese These gilt besonders bei der eigenständigen Entwicklung von Begriffen. Dazu müssen Beispiele präsentiert oder durch geeignete Denkanstöße von den Schülerinnen und Schüler entwickelt werden, die der Forderung der Transitivität bzw. der Eindeutigkeit nicht genügen. Bei vielen Sortierproblemen werden verschiedene Objekte nach einem Schlüssel sortiert, etwa Personen nach dem Geburtsdatum. Auch an dieser Stelle kann anfangs ein Klärungsbedarf bestehen. 3.1 Das topologische Sortieren Arbeits- oder Handlungsabläufe bestehen häufig aus einzelnen Schritten, bei denen es teilweise eine Abhängigkeit in der Durchführungsreihenfolge gibt. Diese Schritte sollen in eine sinnvolle Reihenfolge gebracht werden. So muss beim Kaffeekochen mit einer Kaffeemaschine die Filtertüte vor dem Einfüllen des Kaffeepulvers eingelegt werden. Hingegen kann man das Wasser vorher oder nachher einfüllen, das Einschalten sollte aber am Ende des Vorgangs erfolgen. Damit ergeben sich verschiedene sinnvolle Handlungsabläufe beim Kaffeekochen. Mathematisch spricht man hier vom topologischen Sortieren. Diese Fragestellungen führen in die Graphentheorie und die Informatik, können an dieser Stelle jedoch geeignete Beispiele zur Verfügung stellen. 3.2 Linearität und Trichotomie Nicht beide Begriffe müssen entwickelt werden. Eine offene Fragestellung im Unterricht kann Fragestellungen von Schülerinnen und Schülern produzieren, die auf beide Begriffe hinauslaufen. Stellt man im Unterricht eine kleine Anzahl verschieden großer Gegenstände mit der Aufforderung, diese der Größe nach zu sortieren, auf den Tisch, so wird gewöhnlich zuerst zielsicher der größte Gegenstand gegriffen, dann der 7 zweitgrößte usw.. Der gewünschte paarweise Vergleich findet nicht statt. Es bedarf daher gewisser Hilfskonstruktionen. Bewährt hat sich an dieser Stelle das Arbeiten mit Gewichten. Dabei sollten die Gegenstände so beschaffen sein, dass sie unterschiedlich schwer sind, dies aber äusserlich nicht erkennbar ist. Eine Balkenwaage leistet weitere Hilfsdienste. Hierdurch kann man erkennen, dass beim Sortieren die Vergleichbarkeit zweier beliebiger Folgenelemente von Vorteil ist. Ebenso kann man erkennen, dass man zwischen der Gleichheit von Objekten und der Gleichheit des gewählten Vergleichschlüssels unterscheiden muss. Hat man einen unterrichtlichen Bezug zum Fach Informatik, so kann etwa das Einbinden einer Schnittstelle Comparable in JAVA diese Erkenntnis liefern. Sportturniere werden teilweise nach einem K.o.-System durchgeführt. Warum kann man nach diesem System die Spiele bzw. Mannschaften nicht bezüglich ihrer gezeigten Leistungen in eine Reihenfolge bringen? 3.3 Die Transitivität Sucht man, motiviert durch die bekannten linearen Ordnungen, nach einem geeigneten Axiomensystem, so wird man zum einen das topologische Sortieren zu Recht als eigenständiges Problem ausgliedern und die Linearität, Konnexität bzw. Trichotomie als erste Forderung erheben. Es ist kaum zu erwarten, dass man an Beispielen von linearen Ordnungen den Begriff der Transitivität entdeckt. Stellen wir uns daher eine Sportliga vor, in der jeder Sportler einmal gegen jeden Sportler spielt, wobei ein Unentschieden als Ergebnis nicht zugelassen ist. Die den Ligatabellen zugrunde liegenden Punktesysteme sind den Schülerinnen und Schülern gewöhnlich bekannt. Die Aufforderung, die Spieler in eine Reihenfolge zu bringen, wird daher die gebräuchlichen Verfahren reproduzieren und an dieser Stelle so nichts zur Klärung beitragen. Der Arbeitsauftrag sollte daher etwa wie folgt lauten: • Wieso wird an dieser Stelle ein Punktesystem eingeführt? • Wieso kann allein mit Hilfe der durch die Spiele festgestellten Relationen zwischen den Spielern keine eindeutige Tabelle erstellt werden? • Erstelle mit Hilfe der erspielten Relation eine sortierte Folge der Sportler und betrachte die Spielergebnisse von in der Folge nicht benachbarter Spieler. • Die UEFA-Richtlinien bei Gruppenspielen erstellen die Tabelle u.a. nach den den folgenden Kriterien: Bei Punktgleichheit von zwei oder mehreren Mannschaften zählt als nächstes der direkte Vergleich nach Punkten. Läßt sich mit diesen Kriterien immer eine eindeutige Tabelle erstellen? 8 Literaturverzeichnis [His02] Horst Hischer. Mathematikunterricht und Neue Medien. Franzbecker, 2002. [LS97] I. Lehmann and W. Schulz. Mengen- Relationen- Funktionen. TeubnerVerlag Stuttgart- Leipzig- Wiesbaden, 1997.