Fakultät für Mathematik und Informatik Lehrstuhl für Didaktik der Mathematik der UNIVERSITÄT WÜRZURG Schülerprojekttage 2012 17. - 20. Juli 2012 School Meets Science Universität Würzburg - Projekttage Mathematik 2012 FAKULTÄT FÜR MATHEMATIK UND INFORMATIK DER UNIVERSITÄT WÜRZBURG Schülerprojekttage 2012 an der Fakultät für Mathematik und Informatik der Universität Würzburg Von Dienstag, 17. Juli, bis Freitag, 20. Juli 2012, führte die Fakultät für Mathematik und Informatik der Universität Würzburg ihre jährlichen Projekttage zur Förderung besonders begabter und interessierter Schülerinnen und Schüler unterfränkischer Gymnasien durch. In einem viertägigen Seminar bearbeiteten 50 TeilnehmerInnen in Kleingruppen unter qualifizierter Anleitung und Betreuung durch Professoren und Dozenten hochaktuelle Problemstellungen aus der Mathematik und Informatik. Die Schülerinnen und Schüler wurden hierfür eigens vom regulären Schulunterricht befreit. In einem Workshop von Dr. Jürgen Grahl, Ruben Schulze und Anna Roos gaben sie sich der Faszination der Zahlen hin. Bei Prof. Martin Hennecke und Matthias Türk wurden Roboter programmiert und so gesteuert, dass sie vorgegebene Parcours durchfahren; bei Dr. Gunther Dirr, Dr. Jens Jordan, Roman Geiselhardt und Michael Schönlein wurde die Dynamik von Meinungen untersucht. Prof. Christian Klingenberg und Isabel Grimm untersuchten die Auswirkungen des Klimawandels; bei Prof. Martin Hennecke und Nicolai Pöhner wurden Android Apps programmiert; Dr. Alexandra Schwartz, Dr. Joachim Spoerhase und Anna Weitzel zeigten, wie man in 80 Tagen um die Welt reisen kann. Prof. Daniel Wachsmuth und Lisa Schäfer führten Autorennen auf dem Karopapier durch; Prof. Hans-Georg Weigand, Dr. Robert Strich und Stefan Gaubitz untersuchten Fahrradspuren im Sand und alles, was man über den Verursacher daraus ablesen kann. Expertenvorträge, eine Studieninformationsveranstaltung und eine gemeinsame Abendgestaltung rundeten das Programm ab. Die Teilnehmerinnen und Teilnehmer der Projekttage verbrachten die gesamten vier Tage gemeinsam, um sich ausschließlich auf ihr Thema konzentrieren zu können. Das Seminar wird von der Firma SALT Solutions GmbH, dem Robert Krick Verlag, der Rexroth Bosch Group und der Sparkassenstiftung Mainfranken finanziell unterstützt. Ziel der Projekttage ist es, die Zusammenarbeit von Schule und Hochschule zu intensivieren, indem Schülerinnen und Schülern die Möglichkeit gegeben wird, die reale Welt der mathematischen und informatischen Wissenschaft kennen zu lernen. Anbei finden Sie die von den Schülerinnen und Schülern verfassten Berichte über ihre Arbeit bei den Projekttagen. Würzburg, August 2012 Mit freundlicher Unterstützung durch Prof. Dr. Hans-Georg Weigand SCHÜLERPROJEKTTAGE 2012 Gruppenfoto der Schülerprojekttage 2012 2 INHALT Allgemeines zu den Projekttagen .............................................................................................................. S. 4 -10 Projektberichte: »Faszination Zahlen« von Dr. J. Grahl, R. Schulze & A. Roos .................................................................................................. S. 11-20 »Robotersteuerung« von Prof. Dr. M. Hennecke, Prof. Dr. F. Puppe, M. Türk ................................................................. S. 21-26 »Meinungsdynamik« von Dr. Gunther Dir, Dr. Jens Jordan, M. Schönlein & R. Geiselhardt ............................................ S. 27-36 »Ein vereinfachtes globales Klimamodell« von Prof. Dr. Klingenberg & I. Grimm .................................................................................................. S. 37-47 »Android Apps programmieren« von Prof. Dr. M. Hennecke & N. Pöhner ............................................................................................. S. 48-55 »In 80 Tagen um die Welt« von Dr. A. Schwartz, Dr. J. Spoerhase & A. Weitzel ............................................................................ S. 56-61 »Autorennen auf Karopapier« von Prof. Dr. D. Wachsmuth & L. Schäfer ............................................................................................ S. 62-67 »Fahrrad-Mathematik« von Prof. Dr. H.-G. Weigand, Dr. R. Strich & S. Gaubitz................................................................... S. 68-76 3 PROJEKTDATEN Beginn: Dienstag, 17. Juli 2012, 9:00 Uhr Ende: Freitag, 20. Juli 2012, 16:00 Uhr Tagungsort: Mathematisches Institut der Universität Würzburg, Emil-Fischer-Straße 30 und 40, MIND-Center 97074 Würzburg und Turing-Hörsaal des Informatik-Gebäudes Übernachtungen: Alle Teilnehmer werden während der vier Tage im Schönstattzentrum untergebracht: Marienhöhe Josef-Kentemich-Weg 1 97074 Würzburg Tel. 0931-70567-0 Anreise und Treffpunkt: Dienstag, 17. Juli 2012 um 9:00 Uhr, Schönstattzentrum Marienhöhe, direkt hinter dem neuen Sportzentrum am Hubland Kosten: Die Kosten pro Teilnehmer betragen 50 €. Die übrigen Kosten werden von der Firma SALT solutions GmbH, dem Robert Krick Verlag, der Rexroth Bosch Group und der Sparkassenstiftung Mainfranken übernommen. Teilnehmer: Pro Schule 1–2 Schüler der Jahrgangsstufe 11 oder 10 An- und Rückfahrt: Wird von den Teilnehmern selbst organisiert. Fahrtkosten können nicht erstattet werden. Sonstige Hinweise: An den Abenden sind mathematische Vorträge vorgesehen. Natürlich gibt es auch Freizeit und einen Ausflug nach Würzburg. Falls Sie ein Musikinstrument haben, bringen Sie es bitte mit! Bringen Sie – wenn möglich – einen Laptop mit! Abschlusspräsentation: Am Freitag den 20. Juli 2012 um 14.00 Uhr werden die Ergebnisse der Projekte im Zuse-Hörsaal (im Informatikgebäude der Universität Würzburg) vorgestellt. Dazu sind alle Interessierten herzlich eingeladen! 4 TERMINPLAN Dienstag, 17. Juli 9:00 Uhr Raum Treffpunkt der Teilnehmer im Schönstattzentrum. Josef-Kentenich-Weg 1, 97074 Würzburg Tel: 0931 / 70567-0, Fax: 0931 / 70567-27 10:15 – 12:00 Uhr Begrüßung, Vorstellung der Themen, Gruppenbildung, Präsentation der Gruppen 12:00 – 13:00 Uhr Mittagspause 13:00 – 18:00 Uhr Beginn der Projektarbeit 18:30 – 20:00 Uhr Abendessen im Schönstattheim 20:00 – 21:30 Uhr Mathematischer Vortrag im Schönstattzentrum (Prof. Dr. Manfred Dobrowolski) Mittwoch, 18. Juli Projektarbeit 12:00 – 13:30 Uhr Mittagspause 13:30 – 17:00 Uhr Projektarbeit 17:00 – 18:00 Uhr Informationen über das Mathematik- und das Informatikstudium an der Universität Würzburg (PD Dr. Christian Zillober, Prof. Dr. Alexander Wolff) 18:30 – 20:00 Uhr Abendessen im Schönstattheim 20:00 – 23:00 Uhr Abend zur freien Verfügung, Probe der Musikgruppe für die Präsentation am Freitag Donnerstag, 19. Juli TuringHörsaal Raum 9:00 – 12:00 Uhr Projektarbeit 12:00 – 13:30 Uhr Mittagspause 13:30 – 18:00 Uhr Projektarbeit 18:30 – 20:00 Uhr Abendessen im Schönstattzentrum 20:00 – 22:00 Uhr Vorbereitung der Präsentation, Üben der Musikgruppe, Treffen mit den Dozentinnen und Dozenten Freitag, 20. Juli 11:15 Uhr Seminarraum Raum 9:00 – 12:00 Uhr 9:00 – 12:00 Uhr HS 2 Raum Projektarbeit und Vorbereitung der Präsentation – Anfertigen eines schriftlichen Ergebnisberichts Fototermin vor der Enneperschen Minimalfläche 11:30 – 13:30 Uhr Kurz-Übungsmöglichkeit für die Präsentation 12:00 – 14:00 Uhr Mittagspause 14:00 – 16:15 Uhr Musikalischer Auftakt durch die Musikgruppe der Teilnehmer, Öffentliche Präsentation der Ergebnisse 5 TuringHörsaal TuringHörsaal SCHÜLERGRUPPEN Gruppe 1: Faszination Zahlen (J. Grahl, R. Schulze, A. Roos) Name Vorname Schule Ort Hofmann Rother Keßler Merz Rottmann Kuhn Friedmann Laura Felix Moritz Carina Christian Franziska Lisa Gymnasium Bad Königshofen Hermann Staudinger-Gymn. Friedrich-List-Gymnasium Mädchenbildungswerk Martin-Pollich Olympia-Morata-Gymnasium Franken-Landschulheim Schloß Gaibach Bad Königshofen Erlenbach Gemünden Gemünden Mellrichstadt Schweinfurt Volkach Gruppe 2: Robotersteuerung (M. Hennecke, F. Puppe, M. Türk) Name Vorname Schule Ort Stumpf Schuhmann Sehne König Simon Rebecca Martin Veronika Maximilian Alessandro Maria-Ward-Gymnasium Jack-Steinberger-Gymnasium Steigerwald-Landschulheim Balthasar-Neumann-Gymnasium Walter-Rathenau Aschaffenburg Bad Kissingen Wiesentheid Marktheidenfeld Schweinfurt Gruppe 3: Meinungsdynamik (G. Dirr, J. Jordan, R. Geiselhardt, M. Schönlein) Name Vorname Schule Ort Brandl Gimpel Stößel Feußner Schürger Reinhart Rösch Theresa Clara Sebastian Felix Christina Michael Philipp Gymnasium Bad Königshofen Rhön-Gymnasium Friedrich-Rückert-Gymnasium Julius-Echter-Gymnasium Egbert-Gymnasium A.-v.-Humboldt-Gymnasium Deutschhaus-Gymnasium Bad Königshofen Bad Neustadt Ebern Elsenfeld Münsterschwarzach Schweinfurt Würzburg Gruppe 4: Klimawandel (C. Klingenberg, I. Grimm) Name Vorname Schule Ort Rieß Schneider Hermes Gottscholl Bräutigam Nikolaus Karin Pippa Klara Andreas Erik Paul Olympia-Morata-Gymnasium Matthias-Grünewald-Gymnasium St. Ursula-Schule Franken-Landschulheim Schloß Gaibach Walldorfschule Walldorfschule Schweinfurt Würzburg Würzburg Volkach Würzburg Würzburg 6 SCHÜLERGRUPPEN Gruppe 5: Android Apps programmieren (M. Hennecke, N. Pöhner) Name Vorname Schule Ort Martens Fernes Volkering Straub Göbl Meckel Jakob David Markus Kevin Steven Alan Jack-Steinberger-Gymnasium Steigerwald-Landschulheim Franz-Ludwig-von-Erthal-Gymnasium Balthasar-Neumann-Gymnasium Walter-Rathenau Deutschhaus-Gymnasium Bad Kissingen Wiesentheid Lohr Marktheidenfeld Schweinfurt Würzburg Gruppe 6: In 80 Tagen um die Welt (A. Schwartz, J. Spoerhase, A. Weitzel) Name Vorname Schule Ort Elter Zierof Hübner Seibold Kunz Wagenhäuser Lukas Sabrina Lena Dominik Theresia Peter Julius-Echter-Gymasium Franz-Ludwig-von-Erthal-Gymnasium Martin-Pollich Matthias-Grünewald-Gymnasium St.Ursula-Schule Franken-Landschulheim Schloß Gaibach Elsenfeld Lohr Mellrichstadt Würzburg Würzburg Volkach Gruppe 7: Autorennen auf Karopapier (D. Wachsmuth, L. Schäfer, Raum 30.01.003) Name Vorname Schule Ort Hillenbrand Roßmann Gubik Bördlein Rauch Berghoff Anna Jonas Eva Lena Anna Joshua Maria-Ward-Gymnasium Balthasar-Neumann-Gymnasium Mädchenbildungswerk Steigerwald-Landschulheim Egbert-Gymnasium Olympia-Morata-Gymnasium Aschaffenburg Marktheidenfeld Gemünden Wiesentheid Münsterschwarzach Schweinfurt Gruppe 8: Fahrrad-Mathematik (H.-G. Weigand, R. Strich, S. Gaubitz) Name Vorname Schule Ort Deublein Zöller Häuser Hoyer Pfister Öftering Dietz Alexander Felix Christian Tobias Mariette Patricia Stefanie Friedrich-Rückert-Gymnasium Hermann Staudinger-Gymn. Friedrich-List-Gymnasium Gymnasium Marktbreit Olympia-Morata-Gymnasium Olympia-Morata-Gymnasium St. Ursula Schule Ebern Erlenbach Gemünden Marktbreit Schweinfurt Schweinfurt Würzburg 7 THEMEN, DOZENTEN, HILFSKRÄFTE Thema Dozenten Hilfskräfte Faszination Zahlen Jürgen Grahl ................................. (Mathematik IV) Ruben Schulze ............................... (Informatik III) Anna Roos Robotersteuerung Prof. Dr. M. Hennecke ............. (Mathematik V) Prof. Dr. F. Puppe ........................ (Informatik VI) Matthias Türk Meinungsdynamik Dr. Gunther Dirr.......................... (Mathematik II) Dr. Jens Jordan ............................. (Mathematik II) Michael Schönlein ........................ (Mathematik II) Roman Geiselhardt Ein vereinfachtes Klimamodell Prof. Dr. C. Klingenberg ........... (Mathematik VI) Isabell Grimm Android Apps programmieren Prof. Dr. M. Hennecke.................(Mathematik V) Nicolai Pöhner In 80 Tagen um die Welt Dr. Alexandra Schwartz ........... (Mathematik VII) Dr. Joachim Spoerhase .................... (Informatik I) Anna Weitzel Autorennen auf Karo-Papier Prof. Dr. D. Wachsmuth.......... (Mathematik VII) Lisa Schäfer Fahrrad-Mathematik Prof. Dr. H.-G. Weigand .............(Mathematik V) Dr. Robert Strich ...........................(Mathematik V) Stefan Gaubitz Lehrstühle Mathematik I ................................................................................. Algebra Mathematik II ................... Dynamische Systeme und Kontrolltheorie Mathematik III ......................................................................... Geometrie Mathematik IV ........................................................... Funktionentheorie Mathematik V ...............................................................................Didaktik Mathematik VI ...................................................... Angewandte Analysis Mathematik VII............... Numerische Mathematik und Optimierung Mathematik VIII ........................................................................... Statistik Mathematik IX .......................................... Wissenschaftliches Rechnen Informatik I .... Effiziente Algorithmen und wissensbasierte Systeme Informatik VI .... Künstliche Intelligenz und angewandte Informatik 8 IMPRESSIONEN I 9 IMPRESSIONEN II 10 Projektbericht der Arbeitsgruppe Faszination Zahlen Betreuer: Jürgen Grahl, Ruben Schulze, Anna-Katharina Roos Teilnehmer(innen): Laura Hofmann (Gymnasium Bad Königshofen), Felix Rother (Hermann-Staudinger-Gymnasium Erlenbach), Moritz Keßler (Friedrich-ListGymnasium Gemünden), Carina Merz (Mädchenbildungswerk Gemünden), Christian Rottmann (Martin-Pollich-Gymnasium Mellrichstadt), Franziska Kuhn (OlympiaMorata-Gymnasium Schweinfurt), Lisa Friedmann (Franken-Landschulheim Gaibach). 1 Zielsetzung Anhand einer ganzen Reihe von kleineren, vielseitig gefächerten und inhaltlich nur lose verbundenen Problemen, vorwiegend aus der Zahlentheorie, sollte eine Vorstellung davon vermittelt werden, wie man in der Mathematik darum bemüht ist, durch kreatives Schließen elegante, „schöne“ Lösungen für auf den ersten Blick schwierige Probleme zu finden und tiefere Zusammenhänge aufzuspüren, die sich oftmals unter der Oberfläche der Dinge verbergen. Die einzelnen, von den Schüler(inne)n erarbeiteten Probleme mit Lösungen sind in Abschnitt 2 aufgelistet. In Abschnitt 3 finden sich dann einige weitere Themen, die im Laufe des Projekts besprochen wurden. 2 Die einzelnen Probleme mit Lösungen 1. Es sei eine Tafel Schokolade mit 4 mal 6 rechteckig angeordneten Stücken gegeben. Wie oft muss man diese Tafel mindestens durchbrechen, um sie in ihre 24 Einzelstücke zu zerlegen? Bei jedem Brechen darf dabei jeweils nur eines der gerade vorhandenen Teile in genau zwei Teile zerbrochen werden. Lösung: Man muss die Tafel genau 23 mal durchbrechen: Bei jedem Zerbrechen nimmt die Zahl der Teile genau um 1 zu, unabhängig davon, welches Teil und entlang welcher Linie zerbrochen wird. 2. Man zeige: Auf jeder echten Party (d.h. mit mindestens zwei Teilnehmern) gibt es mindestens zwei Teilnehmer, die unter den Anwesenden die gleiche Anzahl an Freunden haben. Hierbei wird angenommen, dass die Freundschaftsrelation symmetrisch ist (d.h. wenn A mit B befreundet ist, so auch B mit A), und es wird niemand als mit sich selbst befreundet angesehen. Lösung: Die Party bestehe aus n ≥ 2 Teilnehmern T1 , . . . , Tn . Es bezeichne f (j) für j = 1, . . . , n die Zahl der Freunde von Tj unter den Anwesenden. Dann gilt f (j) ∈ {0, 1, . . . , n − 1}. Annahme: Es gibt keine zwei Teilnehmer mit der gleichen Anzahl an Freunden unter den Anwesenden, d.h. es ist f (j) 6= f (k) für alle j, k ∈ {1, . . . , n} mit j 6= k. 11 Dann muss f jeden Wert aus der n-elementigen Menge {0, . . . , n − 1} annehmen. (Dies ist das sog. Schubfachprinzip; dahinter verbirgt sich die mathematische Tatsache, dass eine injektive Abbildung zwischen zwei endlichen Mengen gleicher Mächtigkeit surjektiv sein muss.) Insbesondere gibt es ein j ∈ {1, . . . , n} und ein k ∈ {1, . . . , n}, so dass f (j) = n − 1 und f (k) = 0. Dies bedeutet, dass Tj mit allen Partygästen, also auch mit Tk befreundet ist, Tk jedoch mit niemandem, im Widerspruch zur Symmetrie der Freundschaftsrelation. 3. In der Geschenkfabrik des Weihnachtsmanns arbeiten 20 Elfen. Eine von ihnen verwechselt niemals die Wunschzettel. Von jeweils zwei Elfen vertauscht eine regelmäßig die Listen mit den Wünschen. Wie viele der Elfen arbeiten immer korrekt? Lösung: Es arbeitet genau eine Elfe immer korrekt: Nach Voraussetzung ist die Zahl der korrekt arbeitenden Elfen mindestens 1. Gäbe es zwei korrekt arbeitende Elfen, so müsste eine von diesen nach Voraussetzung die Wunschzettel verwechseln, ein Widerspruch! 4. Graf Zahl besitze 7776 verschiedene positive Zahlen. Er stellt fest, dass jedes Produkt aus 7 beliebigen dieser Zahlen immer größer als 1 ist. Folgt daraus auch, dass das Produkt aller 7776 Zahlen größer als 1 ist? Lösung: Ja. Es seien a1 , a2 , . . . , a7776 diese 7776 Zahlen, in aufsteigender Reihenfolge geordnet, d.h. a1 < a2 < a3 < · · · < a7776 . Nach Voraussetzung ist 7 Y j=1 aj = a1 · . . . · a7 > 1. Damit muss auch a7 > 1 sein. (Andernfalls wäre ja a1 , . . . , a7 ≤ 1, also auch Q7 j=1 aj ≤ 1.) Es gibt also höchstens sechs aj , die nicht größer als 1 sind, d.h. es ist aj > 1 für alle j ≥ 7. Damit ist 7776 Y j=1 aj = 7 Y j=1 aj · 7776 Y j=8 aj > 7 Y aj > 1. j=1 5. Ist jede natürliche Zahl als Summe zweier Quadratzahlen (d.h. von Quadraten ganzer Zahlen) darstellbar? Gibt es ein N ∈ IN, so dass sich jede natürliche Zahl ≥ N als Summe zweier Quadratzahlen darstellen lässt? Lösung: Bereits die Zahl 3 ist offensichtlich nicht als Summe zweier Quadratzahlen darstellbar, so dass die erste Frage zu verneinen ist. Da Quadratzahlen modulo 4 nur die Reste 0 und 1 haben können, kommen als Reste modulo 4 von Summen von Quadratzahlen nur 0, 1 und 2 infrage. Jede Zahl mit Rest 3 modulo 4 ist daher nicht als Summe zweier Quadratzahlen darstellbar. Es gibt offensichtlich beliebig große solche Zahlen. Die Antwort auf die zweite Frage ist also ebenfalls nein. 6. Man bestimme sämtliche Primzahldrillinge, d.h. sämtliche Tripel (p, p + 2, p + 4), bei denen p, p + 2 und p + 4 Primzahlen sind. 12 Lösung: Der einzige Primzahldrilling ist (3, 5, 7). Denn für jede natürliche Zahl p ist eine der Zahlen p, p + 2 und p + 4 durch Drei teilbar, kann also nur dann prim sein, wenn sie selbst die Drei ist. Ausblick: Eine berühmte, bis heute völlig offene Vermutung besagt, dass es unendlich viele Primzahlzwillinge gibt. 7. Indem man ein Dreieck wie nebenstehend skizziert zerlegt und die Einzelteile neu zusammensetzt, erhält man ein Dreieck, bei dem ein Kästchen fehlt. Wohin ist dieses verschwunden? Lösung: Es liegt letztlich eine optische Täuschung vor: Das grüne und das graue Dreieick haben geringfügig unterschiedliche Steigung ( 83 bzw. 25 ). Daher handelt es sich bei den beiden großen „Dreiecken“ gar nicht um Dreiecke. Genauer ist im oberen Bild die (vermeintliche) „Hypotenuse“ leicht aufwärts, im unteren Bild leicht abwärts gekrümmt, so dass das obere „Dreieck“ kleineren Flächeninhalt hat als das untere. Dies erklärt das nach der Zerlegung und dem Rearrangement der Einzelteile fehlende Kästchen. 8. Eine dressierte Katze und ein Hund liefern sich ein Rennen – 50 Meter geradeaus und wieder zurück. Bei jedem Satz legt der Hund 75 cm zurück und die Katze 50 cm. Allerdings macht die Katze 3 Sätze in der gleichen Zeit, in der der Hund 2 macht. Es soll angenommen werden, dass Hund und Katze immer ganze Sätze machen. Die Zeit für das Wenden soll vernachlässigt werden. Wie wird das Rennen ausgehen? Lösung: Die Katze wird gewinnen. Denn sie benötigt für Hin- und Rückweg jeweils 100 Sätze, während der Hund jeweils 67 Sätze benötigt, die ihn aufgrund der Voraussetzungen allerdings mehr Zeit kosten als die Katze für 100 Sätze braucht. 9. Um zwölf Uhr mittags liegen die beiden Zeiger einer (Analog-)Uhr genau übereinander. Wann genau passiert dies zum ersten Mal nach 12 Uhr erneut? Lösung: Während der Stundenzeiger einer Uhr einen Umlauf macht, hat der Minutenzeiger bereits zwölf Umläufe zurückgelegt. Der Minutenzeiger „überholt“ den Stundenzeiger also elfmal innerhalb von zwölf Stunden, und zwar aus Symmetrie12 gründen nach jeweils gleichen Zeitabschnitten, nämlich alle 11 Stunden. Zum ersten 3 Mal nach 12 Uhr passiert dies also um 1 Uhr, 5 Minuten, 27 11 Sekunden. 10. Gibt es Zahlen, in deren Dezimaldarstellung sich jeder endliche Block von Ziffern findet? Gibt es in jedem echten Intervall [a, b] mit a < b eine solche Zahl? 13 Lösung: Die Antwort ist in beiden Fällen Ja. Beispielsweise leistet die sog. Champernowne-Zahl c := 0, 12345678910111213141516171819202122 . . . , deren Ziffernfolge sich durch Aneinanderreihen der (in Dezimaldarstellung geschriebenen) natürlichen Zahlen ergibt, offensichtlich das Gewünschte. Ist [a, b] mit a < b ein echtes Intervall, so gibt es eine ganze Zahl m und eine natürliche Zahl n, so dass 10mn , m+1 ⊆ [a, eine Zahl in [a, b], die ebenfalls das b] gilt. Es ist dann m+c 10n 10n Gewünschte leistet. Interpretation: In der Dezimaldarstellung von Zahlen mit der genannten Eigenschaft ist jede endliche Information codiert, d.h. man wird dort „irgendwo“ (in geeigneter Codierung) jedes Shakespeare-Stück, jedes jemals komponierte Musik-Stück, jede bisher aufgenommene Fotografie usw. wiederfinden. 11. Wie kann man mithilfe eines 5-Liter- und eines 3-Liter-Kruges eine Wassermenge von genau einem Liter abmessen? Dabei darf man voraussetzen, dass Wasser unbeschränkt zur Verfügung steht (und auch verschwendet werden darf). Die Krüge sollen jedoch nicht das Abmessen kleinerer Wassermengen als 3 bzw. 5 Liter zulassen. Weiter wird angenommen, dass beim Umfüllen kein Wasser verschüttet wird. Lösung: Mithilfe der beiden Krüge kann man zunächst 2 Liter abmessen. Diese füllt man in den kleinen Krug. Den verbleibenden Liter füllt man aus dem wieder mit 5 Litern gefüllten großen Krug auf, so dass im großen Krug 4 Liter verbleiben. Von diesen gießt man mithilfe des kleinen Krugs 3 Liter ab und erhält wie gewünscht genau einen Liter. Verallgemeinerung / Ausblick: Sind p und q teilerfremde natürliche Zahlen und hat man zwei Krüge, mit denen man p bzw. q Liter abmessen kann, so gelingt es mit diesen beiden Krügen, genau einen Liter abzumessen. Begründung: Wegen der Teilerfremdheit von p und q gibt es ganze Zahlen a, b, so dass die sog. Bezout-Identität ap + bq = 1 gilt. Begründung: Es sei d die kleinste positive Zahl, die in der Form ap + bq mit a, b ∈ Z darstellbar ist. Division mit Rest zeigt, dass wir hierin p in der Form p = md + r mit m, r ∈ Z und 0 ≤ r ≤ d − 1 schreiben können. Es folgt r = p − md = p − map − mbq = (1 − ma) · p − (mb) · q. Wegen der Minimalität von d und 0 ≤ r < d folgt hieraus r = 0. Also ist p = md, d.h. d|p. Analog folgt d|q, d.h. d ist ein gemeinsamer Teiler von p und q. Da p und q als teilerfremd vorausgesetzt waren, muss also d = 1 sein. Dies war zu zeigen. Man kann diese Bezout-Identität nun im Prinzip als Anleitung lesen, die gewünschte Wassermenge von einem Liter abzumessen. Wir verzichten auf die Details. 12. Wie viele verschiedene Möglichkeiten gibt es, eine Treppe mit n Stufen hinaufzusteigen, wenn man in jedem Schritt jeweils eine oder zwei Stufen auf einmal nehmen kann? 14 Lösung: Es sei zn die Zahl der Möglichkeiten, eine Treppe mit n Stufen in der angegebenen Weise hinaufzusteigen. Offensichtlich gilt z1 = 1 und z2 = 2. Weiter gilt zn+2 = zn + zn+1 für alle n ≥ 1. (Dies sieht man wie folgt ein: Wenn man eine Treppe mit n + 2 Stufen hinaufsteigt, kann man im ersten Schritt eine oder zwei Stufen nehmen. Es verbleiben danach noch n+1 oder n Stufen. Diese hochzusteigen, ist auf genau zn+1 bzw. zn verschiedene Weisen möglich. Also ist zn+2 = zn + zn+1 .) Damit und mit z1 = 1 = f2 , z2 = 2 = f3 folgt zn = fn+1 für alle n, wobei fn die n-te Fibonacci-Zahl ist (vgl. Abschnitt 3, Nr. 3). 13. Auf einer Weihnachtsfeier stehen N Studenten im Kreis. Jeder hat eine gerade Anzahl von Plätzchen. Nun gibt jeder die Hälfte seiner Plätzchen dem rechten Nachbarn. Wer danach eine ungerade Anzahl von Plätzchen hat, bekommt vom Weihnachtsmann ein zusätzliches Plätzchen. Dieser Vorgang wird beliebig oft wiederholt. Braucht der Weihnachtsmann unendlich viele Plätzchen? Wird irgendwann ein Zustand erreicht, in dem alle Studenten die gleiche Zahl an Plätzchen haben? Lösung: Der Weihnachtsmann braucht nur endlich viele Plätzchen. Es sei n(j, k) die Plätzchenanzahl des j-ten Studenten in der k-ten Runde und M (k) := max {n(1, k), n(2, k), . . . , n(N, k)} die maximale Plätzchenanzahl in der k-ten Runde. Dann gilt 1 · (n(j, k) + n(j − 1, k)) n(j, k + 1) = 2 · 4 für alle j = 1, . . . , N und alle k, wobei man n(0, k) := n(N, k) zu setzen hat. Da die n(j, k) und damit auch die M (k) alle gerade sind, folgt hieraus 1 n(j, k + 1) ≤ 2 · · M (k) = M (k) für alle j = 1, . . . , N und alle k 2 und damit auch M (k + 1) ≤ M (k) für alle k. Induktiv ergibt sich M (k) ≤ M (0) für alle k, falls k = 0 für die Ausgangssituation steht. Der Gesamtbedarf an Plätzchen ist also nach oben durch N · M (0) beschränkt. Eine Verfeinerung dieser Überlegung zeigt, dass nach endlich vielen Runden alle Studenten die gleiche Anzahl an Plätzchen haben: Nach dem soeben Gezeigten gibt es ein k0 , so dass der Weihnachtsmann ab der k0 -ten Runde keine Plätzchen mehr nachschießen muss. Ist nun M (k + 1) = M (k) für ein k ≥ k0 und sind nicht alle Anzahlen n(1, k), . . . , n(N, k) gleich, so muss in der (k + 1)-ten Runde die Zahl der Studenten, die diese Maximalanzahl M (k + 1) an Plätzchen haben, gegenüber der k-ten Runde abgenommen haben. Würde also niemals eine Konstellation erreicht, in der alle die gleiche Plätzchenzahl haben, so würde nach jeweils höchstens N − 1 Runden die Maximalanzahl M (k) abnehmen. Nach endlich vielen Runden wäre also M (k) = 0, so dass keine Plätzchen mehr vorhanden wären, was aber absurd ist, da ja keine Plätzchen aus dem Spiel verschwinden. 15 14. Man finde eine natürliche Zahl n, so dass die Dezimaldarstellung von n! auf genau 2012 Nullen endet. Lösung: Der Exponent, mit dem 5 in der Primfaktorzerlegung von n! auftaucht, ist offensichtlich jnk j n k j n k + + + .... E5 (n) := 5 25 125 Hieraus berechnet man E5 (8060) = 2012. Der Exponent E2 (n), mit dem 2 in der Primfaktorzerlegung von n! auftaucht, erfüllt offensichtlich E2 (n) ≥ E5 (n). (Anschaulich: Der Faktor 2 kommt (wesentlich) häufiger in der Primfaktorzerlegung von n! vor als der Faktor 5.) Also ist auch E2 (8060) ≥ 2012. Damit leistet n = 8060 das Gewünschte. 15. Ein böser Zauberer hat 100 Gefangene. Eines Morgens lässt er sie antreten und zaubert ihnen jeweils einen roten, grünen oder gelben Hut auf den Kopf. Jeder Gefangene kann die Hutfarben seiner 99 Leidensgefährten sehen, nicht aber seine eigene. Die Gefangenen müssen nun der Reihe nach die Farbe ihrer Hüte erraten und werden – da der Zauberer nicht immer nur böse ist – bei richtigem Raten freigelassen. Dabei dürfen sie sich untereinander nicht verständigen, abgesehen davon, dass jeder seine mutmaßliche Hutfarbe nennen darf. Durch einen glücklichen Umstand erfahren die Gefangenen schon am Abend zuvor von der Absicht des Zauberers in allen Details und haben Gelegenheit, sich zu beraten. Wie können sie erreichen, dass am nächsten Morgen möglichst viele von ihnen frei kommen? Wie viele sind dies? Lösung: Es können 99 Gefangene sicher befreit werden. Dazu werden die Hutfarben mit den Zahlen 0, 1 und 2 identifiziert. Es sei ck die Hutfarbe des k-ten Gefangenen (die in der Reihenfolge nummeriert werden, in der sie zum Erraten ihrer Hutfarbe aufgerufen werden). Der als erster aufgerufene Gefangene berechnet die Größe a := 100 X ck k=2 und nennt als „seine“ Farbe den bei Division von a durch 3 verbleibenden Rest r ∈ {0, 1, 2}. Hierdurch ist es möglich, allen 99 Gefangenen genügend Information zukommen lassen, damit diese hieraus und aus der Kenntnis der übrigen Hutfarben auf ihre eigene Hutfarbe zurückschließen können: Der j-te Gefangene bildet die Größe 100 X b := −cj + ck k=2 (d.h. die Summe aller Hutfarben mit Ausnahme seiner eigenen und der des ersten Gefangenen) und hiervon den Rest s modulo 3. Aus der Differenz r − s ist 16 nun ersichtlich, welchen Rest cj modulo 3 hat - und damit die Hutfarbe des j-ten Gefangenen. 16. Ein kleiner Dämon mit konstanter Schrittlänge wandere in einem Achteck mit den Winkeln 135 Grad. Dabei geht er entlang jeder Kante eine ganze Anzahl von (gleichlangen) Schritten. Man zeige, dass er für die ersten vier Kanten ebenso viele Schritte braucht wie für die letzten vier. Lösung: Es seien a1 , a2 , . . . , a8 die Kantenlängen des Achtecks, gemessen in Schritten, so dass also alle aj ganzzahlig sind. Dabei mögen stets aj und aj+1 zu benachbarten Kanten gehören. Da der Dämon nach Umlaufen des gesamten Achtecks wieder am Ausgangspunkt angelangt ist, ist die Summe seiner Bewegungen in Richtung jeder Kante Null. Es ist also 1 a1 − a5 + √ (a2 − a4 − a6 + a8 ) = 0, 2 denn die linke Seite dieser Gleichung ist gerade die Summe der Bewegungen entlang der ersten Kante. Der Faktor √12 erklärt sich hierbei daraus, dass Bewegungen entlang der zweiten, vierten, sechsten und achten Kante nur mit einem Anteil von cos 45◦ = √12 zur Bewegung in Richtung der ersten Kante beitragen. Ebenso gilt 1 a2 − a6 + √ (a3 − a5 − a7 + a1 ) = 0, 2 1 a3 − a7 + √ (a4 − a6 − a8 + a2 ) = 0 2 und 1 a4 − a8 + √ (a5 − a7 − a1 + a3 ) = 0. 2 Wäre a1 − a5 = 6 0, so erhielte man aus der ersten Gleichung √ 2= a2 − a4 − a6 + a8 , a5 − a1 √ d.h. √ 2 wäre ein Bruch zweier ganzer Zahlen, im Widerspruch zur Irrationalität von 2. Also ist a1 = a5 . Ebenso erhält man aus den übrigen Gleichungen a2 = a6 , a3 = a7 und a4 = a8 . Die Summe a1 + a2 + a3 + a4 der Schritte entlang der ersten vier Kanten stimmt also mit der Summe a5 + a6 + a7 + a8 der Schritte entlang der letzten vier Kanten überein. 17. Man zeige, dass es irrationale Zahlen a, b > 0 gibt, so dass ab rational ist. √ √2 √ Lösung: Falls 2 („wider Erwarten“) rational ist, so leisten a := b := 2 das √ √ √ 2 √ 2 √ Gewünschte. Falls 2 irrational ist, so setzt man a := 2 und b := 2. Es √ √ 2 √ 2 √ √2·√2 √ 2 b sind dann a und b irrational, aber a = 2 = 2 = 2 = 2 ist rational. Variante: Für a := e, b := ln 2 gilt ab = 2. Man muss dann aber zeigen, dass e und ln 2 irrational sind. Dies ist insbesondere für ln 2 nicht ganz einfach... 17 3 Einige zahlentheoretische Themen 1. Es wurden gängige Beweistechniken wie direkter Beweis, indirekter Beweis (Widerspruchsbeweis) und vollständige Induktion besprochen. Es wurde gezeigt, wie man mithilfe vollständiger Induktion einfache Beziehungen wie die durch den kleinen C.F. Gauß bekanntgewordene n X k=1 k= n · (n + 1) 2 für alle n ∈ IN beweisen kann. Wie sehr man sich vor voreiligen Schlussfolgerungen hüten muss, wurde anhand eines Induktions-„Beweises“ dafür, dass alle Menschen bis auf höchstens einen Außerirdische sind, erläutert: „Beweis“: Es sei A(n) die Aussage “Unter je n Menschen befindet sich höchstens einer, der kein Außerirdischer ist.” Dann ist A(1) sicher wahr. Wir nehmen an, A(n) sei für ein festes n bereits bewiesen, und betrachten eine beliebige Menge von n + 1 Menschen. Würden sich unter ihnen zwei Personen befinden, die keine Außerirdischen sind, so würden wir zwei solche Personen auch in einer geeigneten Menge von n Menschen finden - ein Widerspruch! Also gilt A(n + 1). Mittels vollständiger Induktion folgt die Gültigkeit von A(n) für alle n, wie behauptet. Der Gedankenfehler in dieser Argumentation liegt darin, dass der Schluss von A(1) auf A(2) offensichtlich falsch ist. Als Beweise wurden der Nachweis für die Irrationalität von √ Beispiele für indirekte √ 2 (oder allgemeiner von p, falls p prim ist) und der folgende berühmte Beweis von Euklid vorgestellt. 2. Satz: Es gibt unendlich viele Primzahlen. Beweis (Euklid): Wir schließen indirekt und nehmen hierzu an, es gäbe nur endlich viele Primzahlen. Diese seien mit p1 , p2 , . . . , pN bezeichnet. Wir setzen pe := p1 · p2 · . . . · pN + 1. Dann ist pe 6= pj für alle j = 1, . . . , N (denn pe ist größer als jedes pj ). Bei Division durch p1 , p2 , . . . , pN lässt pe jeweils den Rest 1, ist also durch keine dieser Zahlen teilbar. Folglich hat pe keine echten Primteiler und ist somit selbst eine Primzahl. Damit haben wir eine von p1 , p2 , . . . , pN verschiedene Primzahl gefunden, im Widerspruch zu unserer Annahme, dass p1 , p2 , . . . , pN sämtliche Primzahlen sind. Dies zeigt die Behauptung. Ergänzung: Es stellt sich die Frage, ob dieser Beweis ein Verfahren zur Konstruktion neuer Primzahlen aus den bereits bekannten liefert. Man könnte aufgrund der obigen Betrachtungen geneigt sein, die folgende Vermutung aufzustellen: Wenn p1 , . . . , pN die ersten N Primzahlen sind, dann ist pe := p1 · p2 · . . . · pN + 1 wieder prim. Diese Vermutung ist jedoch falsch, wie das Beispiel 2 · 3 · 5 · 7 · 11 · 13 + 1 = 30031 zeigt: Die Zahl 30031 ist nicht prim; es ist nämlich 30031 = 59 · 509. Als probate Methode zur Bestimmung von Primzahlen wurde das sog. „Sieb des Eratosthenes“ besprochen. 18 3. Goldener Schnitt und Fibonacci-Zahlen Der Goldene Schnitt Φ bezeichnet das Verhältnis, das sich ergibt, wenn man eine Strecke so teilt, dass sich die Gesamtstrecke zur längeren Teilstrecke so verhält wie die längere zur kürzeren Teilstrecke. Dies bedeutet 1 = Φ − 1. Φ Hieraus berechnet man sofort √ 1+ 5 Φ= . 2 Dieses seit der Antike bekannte Teilungsverhältnis wird vom menschlichen Auge als besonders ästhetisch empfunden. Es tritt in der Mathematik wie auch in Natur und Kunst in vielfältiger Weise auf (siehe hierzu ausführlich [1]). So teilen diejenigen Diagonalen im regulären Fünfeck, die sich nicht in einer Ecke schneiden, einander im Goldenen Schnitt. In der Natur ist der Goldene Schnitt z.B. bei der Anordnung von Blättern mancher Pflanzen realisiert, und in der Architektur der letzten 2500 Jahre finden sich zahllose Beispiele für die Verwendung des Goldenen Schnitts. Die Fibonacci-Zahlen fn sind definiert durch f1 := f2 := 1 und die Rekursionsformel fn = fn−1 + fn−2 für alle n ≥ 3. Zwischen den Fibonacci-Zahlen bestehen viele interessante Zusammenhänge. So gilt z.B. f1 +f2 +· · ·+fn = fn+2 −1 und f12 +f22 +· · ·+fn2 = fn ·fn+1 für alle n ∈ IN, wie man leicht durch vollständige Induktion beweist. Weitere Beispiele finden sich in [2, S. 231-234] und [3, S. 68-69]. Die Fibonacci-Zahlen beschreiben in einem auf den italienischen Mathematiker Leonardo da Pisa (genannt Fibonacci) zurückgehenden, stark vereinfachten und realitätsfernen Modell das Wachstum einer Population von (als unsterblich angenommenen!) Kaninchen, treten aber auch vielerorts in der Natur auf (z.B. in den spiralförmigen Mustern der Ananas oder Sonnenblume), meist im Zusammenhang mit dem Goldenen Schnitt. Dies hat damit zu tun, dass die Verhältnisse aufeinanderfolgender Fibonacci-Zahlen besonders gute Approximationen für den Goldenen Schnitt darstellen. Die Fibonacci-Zahlen lassen sich nämlich mittels der Formel von Binet explizit durch den Goldenen Schnitt ausdrücken: Für alle n ≥ 1 gilt n −1 1 n fn = √ · Φ − . Φ 5 Hieraus folgt sofort fn+1 = Φ, n→∞ fn lim so dass für hinreichend „große“ n der Quotient fn+1 eine „gute“ Näherung für Φ fn f8 21 darstellt. (Tatsächlich approximiert bereits f7 = 13 den Goldenen Schnitt mit einem Fehler von nur 0,17 %.) 19 Beweis der Formel von Binet: Es ist 1 Φ = Φ − 1, also Φ2 = Φ + 1. Wegen √ 1 1 1 1+ 5−1 √ · Φ+ √ = √ · (2Φ − 1) = = 1 = f1 Φ 5 5 5 und 1 1 1 1 2 √ · Φ − 2 = √ · Φ + 1 − (Φ − 1)2 = √ · Φ + 1 − Φ2 + 2Φ − 1 Φ 5 5 5 1 = √ · (2Φ − 1) = 1 = f2 5 gilt die Behauptung für n = 1 und n = 2. Es sei nun n ∈ IN \ {1}, und es gelte 1 fk = √ · 5 Φk − −1 Φ k ! , für alle k ∈ {1, . . . , n} (also auch für k = n und k = n − 1). Dann folgt fn+1 = = = = n n−1 ! −1 −1 Φn − + Φn−1 − fn + fn−1 Φ Φ n 1 −1 √ Φn−1 (Φ + 1) − (1 − Φ) Φ 5 n 1 −1 −1 n−1 2 √ Φ · ·Φ − Φ Φ 5 n+1 ! 1 −1 √ . Φn+1 − Φ 5 1 =√ · 5 Also gilt die Behauptung auch für n + 1. Nach dem Prinzip der vollständigen Induktion ist die Behauptung damit für alle n ∈ IN bewiesen. Literatur [1] Beutelspacher, A.; Petri, B.: Der Goldene Schnitt, Spektrum, Heidelberg 1996 [2] Padberg, F.: Elementare Zahlentheorie, Spektrum, Heidelberg 2008 [3] Scheid, H.: Zahlentheorie, Spektrum, Heidelberg 2003 Kontaktadresse: Dr. Jürgen Grahl Institut für Mathematik der Universität Würzburg, Zi. 121 Am Hubland 97074 Würzburg Tel.: 0931-888-4947 E-Mail: [email protected] 20 Robotersteuerung Teilnehmer: Rebecca Stumpf Martin Schuhmann Veronika Sehne Maximilian König Alessandro Simon Projektleiter: Prof. Dr. Martin Hennecke Prof. Dr. Frank Puppe Matthias Türk 21 Dienstag, den 17.07.2012 Ziel unserer Projektgruppe ist es, einen Roboter durch ein gegebenes Labyrinth zu navigieren (vgl. Abbildung auf der Titelseite). Zur Einführung in das Thema überlegen wir uns, welche Grundaufgaben ein autonomer Roboter dazu beherrschen muss. Problemstellungen: 1. Unsere erste Aufgabe ist es, den Roboter 20 cm geradeaus fahren und ihn daraufhin um 90 Grad nach rechts bzw. nach links drehen zu lassen. 2. Danach sollen die neu programmierten Grundfunktionen so verknüpft werden, dass damit ein bekannter Parcours durchfahren werden kann. 3. Mithilfe eines Zufallsgenerators wird nun eine beliebige Strecke ausgewählt und anschließend abgefahren. 4. Als abschließendes Problem haben wir unter Zuhilfenahme eines Lichtsensors unseren Roboter eine, durch schwarzes Klebeband markierte, Strecke erkennen und selbstständig abfahren lassen. Lösungen: 1. Um eine festgelegte Streckenlänge zurückzulegen, muss zunächst ermittelt werden, wie viele Radumdrehungen ausgeführt werden müssen. Hierzu bestimmen wir den Radumfang des Roboters. Dazu verfolgen wir zwei verschiedene Möglichkeiten: Wir rollen das Rad eine Umdrehung über ein Metermaß und lesen die zurückgelegte Strecke ab. Für eine Berechnung des Umfangs, messen wir den Radius und berechnen diesen mit der Formel . Abbildung 1: Ermitteln des Radumfangs 22 Um den Roboter 20 cm fortzubewegen, muss sich der Motor um drehen. Dieses Ergebnis wurde in ein Programm übertragen, damit der Roboter selbstständig diese Strecke abfährt. Eine 90 Grad Drehung auf der Stelle wird ermöglicht, indem sich beide Räder in verschiedene Richtungen mit gleicher Geschwindigkeit bewegen. Dafür wurde die Achsenlänge gemessen und mit der Formel der Umfang, des von den Rädern beschriebenen Vollkreises, berechnet und die benötigte Drehungsstrecke der beiden Räder ermittelt. Daraus können wir schließen, dass für jedes Rad eine Drehung von 146 Grad nötig ist. Auch dies wurde als Programm festgehalten und erfolgreich getestet. Durch vertauschen der Drehrichtungen werden sowohl Rechts-, als auch Linksdrehungen ermöglicht. 2. Da es sehr arbeitsaufwendig gewesen wäre, einen Parcours abzufahren und dabei jeden Befehl einzeln aufzurufen, lösten wir dieses Problem mithilfe der Datenstruktur eines Arrays. Hierfür wandelten wir die Befehle „moveForward“, „rotateLeft“ und „rotateRight“ in die Ziffern 1, 2 und 3 um und speicherten diese in den Array. Nun kann ein vorgegebener Parcours mit einem einzigen Befehl abfahren werden. 3. Durch das Importieren der Klasse „Random“ wird das Erzeugen mehrerer Zufallszahlen im Bereich von eins bis drei ermöglicht. Diese Zahlen werden in dem Array gespeichert und dadurch kann der Roboter eine völlig zufällige Strecke befahren. 4. Unter Zuhilfenahme eines am Boden des Roboters befestigten Lichtsensors, der die Farbhelligkeit des Untergrunds erkennt, soll er einem schwarzen Streifen folgen. Zuerst überlegen wir, ob es sinnvoll wäre, den Roboter auf der Mitte der Kennzeichnung fahren zulassen. Jedoch wird uns klar, dass dies mit nur einem Lichtsensor nicht möglich ist, da der Roboter nicht entscheiden kann, ob der Streifen sich beim Verlassen rechts oder links von ihm befindet. Folglich kommt uns die Idee, dass es einfacher wäre, ihn auf dem Übergang von schwarz zu grau bzw. weiß entlang fahren zu lassen. Hier kann der Roboter aufgrund der Farbhelligkeitsunterschiede entscheiden, in welche Richtung er drehen muss, um wieder auf die richtige Spur zu kommen. Damit er die Markierung nicht verliert, ist es besser, wenn er sich nicht auf der Stelle dreht, sondern während der Fahrt Kurven beschreibt. Dies wurde durch An- und Ausschalten der jeweiligen Motoren gelöst. Jedoch entsteht hierdurch ein neues Problem: Der Roboter bewegt sich bei einer geraden Kennzeichnung im Zickzack. Um dies zu beheben, schalten wir die Motoren nicht ab, sondern verringern bzw. erhöhen individuell die Geschwindigkeiten der Motoren. Mit dieser Methode können nun Kurven mit stumpfen Winkeln befahren werden. 23 Mittwoch, den 18.07.2012 Für eine einwandfreie Steuerung des Roboters bekommen wir Simulationsaufgaben gestellt, die wir am Computer mit der plattformunabhängigen Simulationsumgebung RoSE programmieren. Problemstellungen: 1. Zuerst sollen wir diverse Figuren zeichnen, die aus mehreren farbigen Quadraten bestehen. Hierbei wird die kleinstmögliche Schrittanzahl benötigt. 2. Darauf aufbauend sollen wir den simulationsgesteuerten Roboter so programmieren, dass er von einem beliebigen Startpunkt aus das rotmarkierte Zielfeld findet. 3. Einem Teil unserer Gruppe wird die Aufgabe zugeteilt, sich mit einem Algorithmus zu beschäftigen, der mithilfe von Markierungen der besuchten Kreuzungen und Wege aus dem Labyrinth herausfinden soll. 4. Die erste praktische Aufgabe am heutigen Tag ist es, den Roboter selbstständig um Ecken fahren zulassen. Zur Erweiterung dessen soll er nun Kreuzungen erkennen und diesen folgen. Lösungen: Zuerst einmal müssen wir uns mit den verschiedenen Methoden vertraut machen, die in der Simulationsumgebung verfügbar sind. Danach sind einfache Muster kein Problem. Aus einfachen Labyrinthen herauszufinden geht sehr leicht, indem man sich immer an eine der beiden Wände hält und dieser stur folgt. Allerdings kann diese Methode in einigen Irrgärten dazu führen, dass es sehr lange dauert, bis man sein Ziel erreicht, da man jeden Weg abfahren muss (wenn man Pech hat). Ein weiteres Problem ist die Tatsache, dass man das Ziel nur erreicht, wenn keine „Säulen“ existieren. In diesem Fall kann es geschehen, dass sich der Roboter in einer Schleife aufhängt. Dieses Problem haben wir mithilfe des Trémaux Algorithmus gelöst. Er basiert auf der Idee, den abgefahrenen Weg zu markieren, um ein erneutes Befahren zu vermeiden. Trifft man auf ein markiertes Feld wird dieses nochmal markiert und der Roboter versucht eine andere Richtung einzuschlagen. Der Trémaux Algorithmus wird zuerst in der Simulationsumgebung realisiert. Um das Fahren um die 90 Grad Ecken zu ermöglichen, muss die Methode „rotateRight“ mit dem Programm, durch das der Roboter der Linie folgt, kombiniert werden. Dies lösen wir mithilfe einer If-Anweisung, die den Roboter immer nach 20 cm Fahrt anhalten lässt und danach mit dem hinteren rechten Lichtsensor überprüft, ob sich rechts neben ihm eine schwarze Linie befindet und somit eine Kreuzung vorliegt. Nach Erkennung dieser dreht er über die Methode „rotateRight“ um 90 Grad nach rechts und folgt weiterhin dem Linienverlauf. Um die Linienerkennung zu vereinfachen versuchen wir die 24 Linienverfolgung mithilfe der beiden hinteren Sensoren zu lösen. Jedoch bereitet dies uns diverse Probleme, worauf wir beschließen das Folgen der Linie weiterhin auf dem vorderen Lichtsensor basieren zu lassen und die Hinteren nur zur Kreuzungserkennung zu verwenden. Aufgrund unserer Linienführungswahl an der rechten Kante, ist es uns nicht möglich den linken Sensor zu verwenden, da dieser sich immer über dem schwarzen Streifen befindet und somit keine Farbunterschiede erkennt (hier wäre ein Umbau des Roboters nötig gewesen). Am heutigen Tag ist die Implementierung aus zeitlichen Gründen nicht mehr lösbar und wird auf den morgigen Tag verschoben. Donnerstag, den 19.07.2012 Da die Problemstellungen des gestrigen Tages noch nicht vollständig gelöst sind, beschäftigen wir uns heute weiter mit diesen Aufgaben. Problemstellungen: 1. Der Algorithmus zum Durchlaufen des Labyrinths wird weiterentwickelt und vollendet, sodass er auf den mechanischen Roboter übertragen werden kann. 2. Die am Vortag gestellte Aufgabe, dass der Roboter die Kreuzungen erkennt und ihnen folgt, soll heute vollendet werden. Nach der Grundimplementierung der Kreuzungserkennung wird diese weiter verfeinert und kleine Ungenauigkeiten behoben. 3. Der Trémaux Algorithmus ermöglicht es uns, jedes Feld des Labyrinths und somit auch den Zielpunkt zu erreichen. Lösungen: 1. Die Umsetzung des Algorithmus gelang uns nicht auf Anhieb, da man viele Fälle beachten muss. Desweitern ist die Fehlerbehebung aufgrund der Größe des Programms sehr schwierig und mit viel Arbeit verbunden. Nichtsdestotrotz gelingt es uns nach einigen Stunden durch akribisches Auseinandernehmen des Programms unser Problem zu lösen und den Roboter sicher in sein Ziel zu führen, indem wir eine besser strukturierte Fallunterscheidung verwendet haben. 2. Nach der Reflektion der Probleme des gestrigen Tages stellen wir fest, dass es einfacher ist, den Roboter mit dem vorderen Lichtsensor auf der Kante des Streifens fahren zulassen. Der rechte Sensor dient zum Erkennen einer Kreuzung oder Ecke, wohingegen der linke Sensor außer Gebrauch bleibt, da dieser sich immer über dem schwarzen Streifen befindet und somit keine Kreuzungen feststellen kann. Wir starten einen Testlauf mit dem Roboter, um Fehler und Ungenauigkeiten festzustellen. Fehler: ungenaue Drehung bei den Kurven 25 Dieses Problem lösen wir durch erneute Berechnung, Richtigstellung und Verfeinerung der Werte. Aufgrund der Orientierung am rechten Streifenrand entstehen bei Links bzw. Rechtskurven unterschiedliche Streckenlängen zwischen den Kurven Dies lösen wir durch Spezifikationen der einzelnen Streckenabschnitte, mithilfe diverser if-Unterscheidungen. Orientierungsprobleme an Kreuzungen von vier Wegen If-Anweisungen, die eine maximal dreifache Drehung an jeder Kreuzung vorschreibt, dient uns dazu, dass sich der Roboter an jeder Kreuzung entscheiden muss, welchen Weg er nimmt, und nicht mehr den, aus dem er gekommen ist. 3. Der Algorithmus wurde nun mittels des universitätseigenen Simulationsprogramms RoSE für das aufgeklebte Labyrinth modelliert. Somit bekommen wir den einfachsten Weg, um jeden Punkt zu erreichen im vorgegebenen Irrgarten. Die Roboterbewegungen wurden nun an den Algorithmus angepasst, sodass er diesen Weg ablaufen kann. Reflexion Zusammenfassend kann man sagen, dass unsere Projektarbeit ein voller Erfolg war und wir viele neue Erfahrungen gesammelt haben. Obwohl wir zuvor noch nicht im Umgang mit Robotern erprobt waren, gab es trotz anfänglicher Misserfolge, am Ende ein zufriedenstellendes Ergebnis. Wir erweiterten unsere Java-Kenntnisse und sammelten neue Erfahrungen im Bereich Simulations- und Regelungstechnik. Des Weiteren stärkten wir unsere Teamfähigkeit und verbesserten unsere Kommunikationsfähigkeit mit vorher unbekannten Jugendlichen und Professoren der Universität in Würzburg. Auch an Spaß hat es in der doch sehr arbeitsreichen Woche nicht gemangelt, was einzig durch den langen Fußweg vom Schönstattzentrum zum MIND-Center getrübt wurde. Alles in Allem sind wir sehr zufrieden mit der Gestaltung und Organisation der Schülerprojekttage 2012 an der Universität in Würzburg und können sie den folgenden Schülern weiterempfehlen. 26 Schülerprojekttage 2012 Ergebnisse1 der Gruppe 3: „Meinungsdynamik“ Schüler: Theresa Brandl , Clara Gimpel , Sebastian Stößel, Felix Feußner, Christina Schürger, Michael Reinhart und Philipp Rösch Betreuer: G. Dirr, R. Geiselhart, J. Jordan, M. Schönlein 1. Problemstellung In einer Gruppe, in der n Personen vertreten sind, gibt es zu einem Thema drei verschiedene Meinungen: A, B und C In der Gruppe treffen sich nun immer zwei zufällige Personen und tauschen Argumente über ihre Meinungen bzgl. des Themas aus. Haben diese Personen dieselbe Meinung, so werden Sie in ihr bestärkt, es passiert also nichts. Gehen jedoch zwei Personen unterschiedlicher Meinung in einen Disput, so werden beide soweit verunsichert, dass sie am Ende die Meinung vertreten, die zuvor keiner der beiden hatte. 1 Überarbeitete Version 27 Mögliche Fragestellungen lauten nun: Kann ein Konsens gefunden werden? Wovon ist es abhängig, ob eine Übereinstimmung aller Personen erreicht werden kann? Welche bzw. wie viele Verteilungen von Personen mit der Meinung A, B bzw. C sind möglich? 2. Grundsätzliche Festlegungen Zunächst untersuchten wir die Situation anhand von einigen kleinen Zahlenbeispielen. Wir beobachteten die Entwicklung der Meinungen innerhalb der Gruppe und es wurde uns schnell klar, dass diese sehr komplex ist. Um das Problem verständlich und mathematisch darstellen zu können, einigten wir uns darauf, die Anzahl der einzelnen Meinungen als Zahlentripel darzustellen: Ist die Gesamtzahl der Personen in der Gruppe und es gibt a Personen mit der Meinung A, b Personen mit der Meinung B und c Person mit der Meinung C, so definierten . Zusätzlich führten wir den Begriff der wir diesen Zustand durch das Zahlentripel Endstation ein, der die Situation beschreibt, in der alle Personen der Gruppe eine gleiche Meinung angenommen haben. Endstationen sind also , und . Damit waren die grundsätzlichen Begriffe geklärt. Durch Probieren anhand verschiedener Fälle wie n = 3, n = 4, n = 5, n = 6 und n = 9, bei denen wir jeweils von verschiedenen Anfangssituationen (Zuständen) ausgingen und alle möglichen Entwicklungen in Betracht zogen, stellten wir fest, dass es, zumindest bei diesen Beispielen, immer drei verschiedene Teilmengen gibt, die man durch beliebige Begegnungen nicht verlassen kann. Derartige Teilmengen von Zahlentripel bezeichnen wir im Weiteren als Orbits, d.h. ein Orbit ist eine (möglichst kleine) Teilmenge von Zuständen, die man durch beliebige Begegnungen nicht verlassen kann. Man kann also von einem Orbit nicht in einen anderen gelangen, oder anders gesagt, man kann von einer Ausgangssituation nicht zu jeder beliebigen anderen gelangen. (Bemerkung: In diesem Sinn wären auch die 1-elementigen Teilmengen, die nur aus einer Endstation bestehen, Orbits. Diese Extremfälle wollen wir im Weiteren ausschließen.) Grundlegend werden zwei Fälle unterschieden, solche, bei denen die Gesamtzahl der Personen n durch 3 teilbar ist, und solche, bei denen n nicht durch 3 teilbar ist. Wir hatten die folgende Vermutungen: (a) Ist n durch 3 teilbar, so ergeben sich ein Orbit, in dem alle Endstationen vorkommen, und zwei andere Orbits, in denen jeweils keine Endstation vorhanden ist. Dabei hat der Orbit mit den drei Endstationen immer ein Element mehr als die beiden anderen. 28 (b) Ist n jedoch nicht durch 3 teilbar, so ergeben sich drei gleich große Orbits, die jeweils zu einer Endstation führen können. Wir haben versucht, dies am Beispiel n=5 graphisch darzustellen: 050 131 023 320 005 311 113 203 212 104 500 230 302 122 401 014 032 221 041 140 410 3. Mächtigkeit von Ω Eine Frage, die wir uns zu Beginn stellten, war, wie viele Verteilungen der verschiedenen Meinungen bei einer gegebenen Anzahl von n Personen, auftreten können. Also wie viele Möglichkeiten es bei einem gegebenen n für das Zahlentripel gibt. Diese Menge an möglichen Zuständen nannten wir Ω. Durch Ausprobieren für kleine n erkannten wir, dass die Mächtigkeit von Ω durch gegeben ist. Diese Formel ließ sich durch den Trick von Gauß2 zu umformen. Wir stellten fest, dass dies nichts anderes als der Binomialkoeffizient ist. Dies erscheint logisch, wenn man folgende Skizze betrachtet: Elemente Man stellt fest, dass die Anzahl der Zwischenräume zwischen den entnommenen (schwarzen) Feldern den möglichen Verteilungen von a, b und c entspricht. Somit kann man alle möglichen Meinungsverteilungen darstellen. Da nun die Anzahl aller Möglichkeiten angibt, um zwei Elemente aus Elementen ohne Zurücklegen oder Beachtung der Reihenfolge auszuwählen, erhält man die obige Aussage. 2 Exkurs: Die Gaußsche Summenformel ist eine Formel um die ersten n aufeinander folgenden natürlichen Zahlen zu addieren. Die Idee dahinter ist, dass die Summe aus der ersten und der letzten Zahl, der zweiten und vorletzten Zahl immer die gleiche ist. Somit kann die Summe einer Reihe von natürlichen Zahlen 1+2+3+…+n auch als n • (n+1) ausgedrückt werden. 29 ,k , das heißt, die Gesamtzahl der Personen ist These: Um unsere These, dass für durch 3 teilbar, die Mächtigkeit von Ω mit Rest 1 durch drei teilbar, sowie für und , die Mächtigkeit von Ω restlos durch drei teilbar ist, zu belegen, setzten wir in die Formel für die Werte , bzw. ,k ein. Es ergibt sich für : Hier ist der erste Summand durch 3 teilbar, denn k oder (k+1) ist eine gerade Zahl und ein Produkt aus einer geraden und einer ungeraden Zahl ist immer gerade, also kann man die 2 aus dem Nenner wegkürzen. für und für : : Auch bei diesen beiden Fällen ist der erste Summand durch 3 teilbar. Somit muss nur noch der und zweite Summand betrachtet werden. Dieser ist jedoch nur für durch drei teilbar. Damit ist im Falle, dass n nicht durch drei teilbar ist, restlos durch drei teilbar. Ist n durch drei teilbar, so bleibt bei der Division von mit 3 der Rest 1. Vorsicht: Die obige Überlegung zeigt nur, dass die Mächtigkeit von Ω der zuvor formulierten Vermutung nicht widerspricht. Dies ist jedoch noch kein Beweis der Vermutung. 4. Orbits und deren Charakterisierung 4.1. Unterscheidung der Orbits Die Begegnungen von Personen mit unterschiedlicher Meinung lassen sich durch Abbildungen beschreiben. Diese drücken die Meinungsänderungsprozesse innerhalb der Gruppe aus. Treffen z.B. zwei Personen mit Meinung A und B aufeinander, so ergibt sich hinterher die . Dieses Aufeinandertreffen lässt sich durch die Meinungsverteilung Abbildung (a,b,c) = (a+2,b-1,c-1) darstellen. Analog lassen sich für das Aufeinandertreffen von Personen mit Meinung A und C die Abbildung (a,b,c) = (a-1,b+2,c-1) und für das Aufeinandertreffen von B und C die Abbildung (a,b,c) = (a+2,b-1,c-1) definieren Vermutung: Bei der Betrachtung der verschiedenen Orbits ist aufgefallen, dass durch Anwendung der Abbildungen , und der Orbit eines jeden Zahlentripels niemals verlassen werden kann. Auch fällt auf, dass die Differenz aus a und b bei Division durch 3 immer denselben Rest liefert. Schreibt man also a-b = 3k+ε, wobei ε entweder 0, 1 oder 2 ist 30 und den Rest beim Teilen durch 3 angibt, so vermuteten wir, dass dieses ε für jeden der 3 Orbits spezifisch ist. Beweis: Um das zu beweisen haben wir uns überlegt, wie sich ε verändert, wenn eine der obigen Abbildungen auf unser Zahlentripel (a,b,c) angewendet wird. Formell sieht das dann so aus: Z, ε a-b = 3k+ε, k Durch Anwendung der Abbildungen , und {0,1,2}. erhält man: Zu τ1 : (a‘, b‘, c‘) = τ1( a, b, c) = (a+2, b-1, c-1). Falls a-b = 3k + ε, dann gilt a‘- b‘= a-b+3 = 3(k+1) + ε Zu τ2 : (a‘, b‘, c‘) = τ2(a, b, c) = (a-1, b+2, c-1). Falls a-b = 3k + ε, dann gilt a‘- b‘ = a-b-3 = 3(k-1) + ε Zu τ3 : (a‘, b‘, c‘) = τ3(a, b, c) + τ3 = (a-1, b-1, c+2). Falls a-b = 3k + ε, dann gilt a‘- b‘= a – b = 3k + ε Man sieht also, dass sich das ε nie ändert. Damit ist der Beweis erbracht, dass Tripel mit verschiedenen Resten ε in verschiedenen Orbits sind. Dies gilt analog auch für b-c und a-c. Diese Überlegungen führten uns dann zu der Fragestellung, in wie weit diese Differenzen voneinander abhängen. 4.2. Anzahl der Orbits Es gibt verschiedene Möglichkeiten, Differenzen innerhalb der Zahlentripel zu bilden: a-b, b-c und a-c. Die Reste dieser Differenzen bei der Division durch drei können zwischen 0 und 2 liegen. Es gibt also jeweils 3 mögliche Reste und 3 Möglichkeiten Differenz zu bilden. Es könnten also 33 = 27 Kombinationen und folglich 27 Orbits existieren. Wenn man jedoch zwei der Differenzen kennt, so ist die dritte dadurch eindeutig festgelegt, da (a-b) + (b-c) = a-c. Somit kann es höchstens 32 = 9 unabhängige Möglichkeiten geben. Ferner gilt: a – b = ε + 3k a – c = ε´ + 3k´ n=a+b+c ε1 {0,1,2}, ε2 {0,1,2}, k k’ Z Z Daraus folgt n + ε + ε´ = 3k – 3k´ -3a ist durch 3 teilbar. Somit ist ε´ eindeutig durch n und ε1 festgelegt. Vermutung: Es gibt insgesamt genau 3 Orbits und nicht mehr gibt. 4.3. Verteilung der Endstationen in den Orbits Mithilfe dieser Differenzen lässt sich auch unsere Vermutung, dass bei n = 3k, k alle Endstationen in einem Orbit liegen, während die Endstationen bei einem nicht durch 3 teilbaren n in verschiedenen Orbits liegen, beweisen. Die drei möglichen Endstationen sind 31 (n,0,0), (0,n,0) und (0,0,n). Wenn man nun die Differenzen a-b der Endstationen vergleicht, so sind diese n, -n und 0. Auch wenn man a-c oder b-c betrachtet, findet man diese Differenzen. Für n = 3k, k sind alle möglichen Differenzen von a-b, also 3k, -3k und 0 ohne Rest durch 3 teilbar, was analog auch für a-c und b-c gilt. Deswegen liegen hier alle sogenannten Endstationen in einem Orbit. Für n = 3k + δ, k , δ {1,2}, wenn n also nicht durch 3 teilbar ist, ergeben sich die Differenzen 3k+δ, -3k-δ und 0. Hier ergeben sich jedoch bei der Division durch 3 verschiedene Reste, nämlich jeweils einmal δ, einmal 3–δ und einmal 0. Somit liegen hier die Endstationen in den drei verschiedenen Orbits. 4.4. Die Mächtigkeit der Orbits Nun stellt sich die Frage, wie viele Elemente sich in einem Orbit befinden. Wir vermuteten, dass in den Fällen, in denen n nicht durch drei teilbar ist, sich in jedem Orbit gleich viele Zahlentripel befinden. Dies kann anhand einfacher Überlegungen gezeigt werden: , und in jeweils einem Orbit Es ist bekannt, dass die Endpunkte liegen. Zu jeder Endstation gibt es genau eine Konstellation von Meinungen, über die diese erreicht werden kann: , und . Schon hier fällt eine Symmetrie auf: kennt man alle Elemente des ersten Orbits, so kann man die Elemente des zweiten Orbits dadurch erhalten, dass man a und b vertauscht. Analog geht man mit dem dritten Orbit vor, wo man a und c des ersten Orbits vertauscht. Durch dieses Tauschen wird der Rest bei der Division der Differenz durch 3 verändert. Somit müssen diese durch Vertauschen von Stellen erhaltenen Zahlentripel in einem anderen Orbit liegen. So wird aufgrund dieser Symmetrie klar, dass im Fall, dass n nicht durch drei teilbar ist, sich in jedem Orbit gleich viele Zahlentripel befinden müssen. ; d.h. wenn n durch 3 teilbar ist. Wie oben schon Ein Sonderfall tritt ein, wenn n= 3k, k bewiesen, ist in diesem Fall nicht ohne Rest durch 3 teilbar und lässt sich deshalb nicht gleichmäßig auf 3 Orbits verteilen. Denn hierbei ergibt sich eine Zahlenkombination aus drei gleichen Zahlen ( , ), die auch beim Vertauschen von a, b und c immer gleich bleibt. Diese Kombination befindet sich nur im Endstationsorbit. Deshalb hat er ein Element mehr. Vorsicht: Die obige Argumentation geht in die richtige Richtung; ist jedoch nicht vollständig! 4.5. Wege innerhalb der Orbits Wir haben also drei verschiedene Orbits gefunden. Nun stellte sich die Frage, ob diese „zusammenhängend“ sind, d.h., ob innerhalb jedes Orbits von jedem beliebigen Ausgangszustand jeder beliebige andere Zustand erreicht werden kann. Offensichtlich ist dies nicht der Fall, ein Gegenbeispiel stellt der Fall dar. Hier kann im realen Modell keine der Abbildungen , und angewandt werden, da die Anzahl an Personen, die eine bestimmte Meinung haben, nicht negativ werden darf. Dies wollen wir im Folgenden außer Acht lassen. So sollen zwar negative Anzahlen an Meinungen weiterhin und zu verboten bleiben, jedoch soll es erlaubt sein, die Umkehrabbildungen , verwenden. Diese Vorgehensweise ist folgendermaßen motiviert: Wendet man alle drei Abbildungen hintereinander an, so erhält man die Identität (Ausgangssituation vor der Anwendung) zurück. 32 Damit erhalten wir z.B. für die Umkehrabbildungen zu die Identität . und darstellen. Wir betrachten nun Analog kann man auch die Umkehrabbildungen zu die Ausgangsverteilung und die Zielverteilung , welche aus einem Orbit stammen und beliebig festgelegt werden können. Zwischen diesen stellen wir einen Zusammenhang her, indem wir eine Größe V definieren, die den Unterschied zwischen den Zuständen beschreibt: Je kleiner V ist, desto „näher“ ist die Ausgangsverteilung an der gewünschten Zielverteilung . Um die Ausgangsverteilung dem Ziel noch weiter anzunähern, soll nun folgende Strategie angewandt werden: Zunächst wird geprüft, welcher der Beträge , und am größten ist, bei welcher Komponente an Meinungen also noch der größte Unterschied zum Ziel vorhanden ist. Für diesen größten Betrag wollen wir nun drei Fälle unterscheiden: Ist dieser gleich null, so ist die Zielverteilung erreicht; es bedarf keiner weiteren Operationen Der Betrag kann gleich 1 sein. Diesen Fall wollen wir später betrachten. Zunächst soll nur der Fall betrachtet werden, in denen der höchste Betrag größer oder gleich 2 ist. Um dem Ziel näher zu kommen, wollen wir nun so wählen, dass dieser höchste Betrag um 2 verringert wird. Der Einfachheit halber wollen wir nur Fälle betrachten, in denen ist. Somit wenden wir entweder oder an. Für Fälle in denen oder gilt das Folgenden jedoch analog. Vorsicht: Die obige Fallunterscheidung ist nicht vollständig; diese ist aber für die weitere Argumentation irrelevant. Um die Betragsstriche von aufzuheben, muss eine weitere Fallunterscheidung zwischen und durchgeführt werden. Ist nun , so wird angewandt. Man beachte, dass entweder oder gelten muss, da . Die Abbildung hat nun zwei offensichtliche Auswirkungen auf V: da wird da oder entweder an um 2 angenähert; wird um 2 verringert wird (wegen Anwendung von , also +1 bei b oder c) oder um 1 verringert der verbleibende Betrag wird nun maximal um 1 erhöht (wiederum wegen Anwendung von ) Für V erhält man damit in jedem Schritt eine Verringerung von mindestens 2. Nach 33 abschließender Untersuchung des Sonderfalls, werden wir sehen, dass man somit in einer zu jedem endlichen Anzahl von Schritten, in jedem Orbit von jedem beliebigen beliebigen gelangen. Nun soll noch der Sonderfall betrachtet werden, wenn der Betrag der größten Differenz gleich eins ist. Auch hier soll nur der Fall betrachtet werden, wenn und ist. In allen anderen Fälle kann man wiederum analog vorgegangen. Da muss nun entweder oder sein. Betrachten wir den Fall . Generell wissen wir, dass für zwei Meinungsverteilungen in einem Orbit gilt: und . Nun gibt es zwei Fälle: und damit und damit Wir wollen nur den ersten betrachten, für den zweiten gilt das Folgende wiederum analog: Dann ist und somit . Außerdem ist und damit ist . Einsetzen liefert: und damit Betrachten wir nun die Formel von oben, so sehen wir, dass Durch Gleichsetzen erhält man und damit Dies ist ein Widerspruch zu . Somit können Orbit liegen, wenn der Betrag der größten Differenz eins ist. und nicht im selben Damit ist bewiesen, dass in einem Orbit von jedem Ausgangszustand jeder beliebige andere Zustand erreicht werden kann. Es gibt also tatsächlich genau drei Orbits, die sich nicht weiter unterteilen. 34 Alternativer Lösungsansatz: Wenn man von einem beliebigen Zustand zu einem anderen Zustand im selben Orbit kommen will, muss man die obigen Abbildungen geeignet anwenden. Wenn man also von (a, b, c) zu (a‘, b‘, c‘) kommen will und a – b = 3k1 + ε; a‘ - b‘= 3k2 + ε bzw. a – b - 3k1 = ε = a‘- b‘- 3k2, k1, k2 Z, ε {0,1,2} dann bestimmt man zuerst den Unterschied zwischen den einzelnen Zuständen, also (a‘- a; b‘b; c‘- c). Wäre z.B. (a, b, c) = (103, 54, 49) und (a‘, b‘, c‘) = (3, 2, 201), dann wäre (-100, -52, +152) ihr Unterschied. Diese Differenz muss sich immer durch die Abbildungen τ1, τ2 und τ3 ausdrücken lassen, d.h. n(2,-1,-1) + k(-1,2,-1) + m(-1,-1,2) = (a‘-a; b‘-b; c‘-c), n, k, m Z Die Lösung dieses Problems ist nie eindeutig, da aus den Abbildungen τ1, τ2, τ3 immer eine Identität gebildet werden kann, also eine Schleife gegangen werden kann. Aber ein „Verhältnis“ der zur Lösung benötigten Operatoren kann festgestellt werden. Das Gleichungssystem hierfür ist: 2n – k - m = a‘-a -n + 2k - m = b‘-b -n – k + 2m = c’-c Wenn man hier nun für a‘-a; b‘-b und c‘-c die gegebenen Zahlen einsetzt und dann nach n, k und m auflöst, dann ist bekannt wie man von der einen Meinungskonstellation in eine andere kommt. Es ist uns misslungen diese Formeln nach n, k oder m, für den allgemeinen Fall, aufzulösen, da sich die Variablen immer wieder „herauskürzen“. Wenn man 2 Tripel aus verschiedenen Orbits in die Formel einsetzt, dann sieht man, dass es zu einem Widerspruch kommt. 5. Fazit Am Ende unseres Projekts können wir nun sagen und beweisen, ob eine bestimmte Ausgangskonstellation zu einer einstimmigen Entscheidung führt und wenn ja, zu welcher. Insgesamt hat es uns sehr viel Spaß gemacht, in der Gruppe zu arbeiten und uns mit diesem mathematischen Problem auseinander zu setzten. Zum Schluss wollen wir uns noch bei unseren Betreuern bedanken, die uns ab und zu auch ein wenig unter die Arme greifen mussten. 35 36 Klimawandel: Ein globales Treibhausgas Modell Leitung: Prof. Christian Klingenberg Isabel Grimm 37 1. Einführung Klimawandel Obwohl der Klimawandel inzwischen in dem Bewusstsein der Menschen angekommen ist und in den Medien auch häug über dieses Thema berichtet wird, taucht er fast nie direkt in den Nachrichten auf. Wenn vom Klimawandel die Rede ist, dann nur im Zusammenhang extremen Wetterereignissen oder Naturkatastrophen. Anschlieÿend wird fast immer die Frage gestellt, ob der Klimawandel an diesen Ereignissen schuld ist. Diese Frage zu beantworten ist denkbar schwer. Dies liegt zum einen daran, dass es enorm viele Faktoren gibt, die das Klima beeinussen, zum anderen weiÿ man über viele Prozesse, die entscheidend sind, noch recht wenig. Auch wenn es dadurch noch Unsicherheiten gibt, lässt sich mit groÿer Sicherheit sagen, dass der Mensch maÿgeblich an diesem Wandel beteiligt ist, indem er enorme Mengen CO2 in die Atmosphäre emitiert. Da der Klimawandel zurzeit eine sehr aktuelle Problemstellung ist, beschäftigen wir uns auch während der Mathematikprojekttage mit diesem Thema. Auch das Wort Treibhauseekt ist in aller Munde und hängt eng damit zusammen. Doch- was ist das überhaupt? Spurengase in der Atmosphäre, v. a. CO2 und Methan, lassen die Sonnenstrahlung durch, sie reektieren jedoch die von der Erde in Richtung All zurückgestrahlte Wärmestrahlung. Die Folge davon ist, dass die Durchschnittstemperatur auf der Erde, nicht bei -15 ° sonderen bei +15° liegt. Da der Mensch im Industriezeitalter durch seine Lebensweise die Konzentration der Treibhausgase ( CO2 ,Methan, usw.) erhöht, steigt dadurch die Durchschnittstemperatur auf der Erde an. In unserem Projekt beschäftigen wir uns mit der CO2 -Konzetration und dem Austausch zwischen den einzelnen Resservoirs. 2. Mathematische Grundlagen Um ein Modell des CO2 -Austausches aufstellen zu können, müssen wir erst einige mathematische Grundlagen kennenlernen. 2.1 Gewöhnliche Differenzialgleichungen Zuerst behandeln wir gewöhnliche Dierenzialgleichungen (DGL). Damit bezeichnet man Bestimmungsgleichungen für eine Funktion einer unabhängigen Variable, die mindestens eine Ableitung der gesuchten Funktion enthält. Die Austauschvorgänge von CO2 zwischen drei verschiedenen Reservoirs können mit einer Skizze dargestellt werden. [y1 ]c b [y2 ] ↓a [y3 ] Hierbei sind y1 ,y2 und y3 jeweils die CO2 -Menge und a,b und c die jeweilige Austauschrate. Das dazugehörnde gekoppelte DGL-System lautet: · y 1 (t) = −(a + b) · y1 (t) + c · y2 (t) · y 2 (t) = b · y1 (t) − c · y2 (t) · y 3 (t) = a · y1 (t) 2.2 Matrizen Dies kann auch in Matrix-Schreibweise dargestellt werden: 38 · ⎞ ⎛ y1 −(a + b) ⎝ y2 ⎠ = ⎝ b a y3 ⎛ ⎞ ⎛ ⎞ c 0 y1 −c 0 ⎠ · ⎝ y2 ⎠ 0 0 y3 2.2.1 Definition Eine Matrix ist ein Zahlenschemata mit m Zeilen und n Spalten. Man spricht deshalb von einer (m×n)- Matrix. 2.2.2 Rechenregeln Für Matrizen gelten folgende Rechenregeln: Bei der Addition wird komponentenweise vorgegangen, wobei nur Matrizen gleicher Gröÿe addierte werden können. Bsp.: 1 2 0 4 4 1 + 1 2 = 5 3 1 6 Bei einer Multiplikation mit einem Skalar, wird dieser an jeden Eintrag multipliziert: Bsp.: 3· 1 2 0 4 3 6 = 0 12 Für die Multiplikation mit einer anderen Matrix darf man nur (m ×n)- und (n×p)- Matrizen verwenden, sie ist nicht ⎞ kommutativ. ⎛ ⎞⎛ ⎛ ⎞ a11 ..... a1n b11 ..... b1p c11 ..... c1p h ⎝ ..... ..... ..... ⎠·⎝ ..... ..... ..... ⎠ = ⎝ ..... ..... ..... ⎠, wobei cij k=1 aik b am1 ..... amn bn1 ..... bnp cm1 ..... cmp 1, ....., m;j = 1, ....., p) Bei 2)-Matrix verfährt man folgendermaÿen: einer (2 × b11 b12 (a11 b11 + a12 b21 ) (a11 b12 + a12 b22 ) a11 a12 · = (a21 b11 + a22 b21 ) (a21 b12 + a22 b22 ) a21 a22 b21 b22 2.2.3 Spezielle Matrizen Es gibt verschiedene spezielle Matrizen: Besteht eine Matrix nur aus einer Zeile, so spricht man von einem Zeilenvektor. Bei nur einer Spalte heiÿt dies Spaltenvektor. ⎛ Eine weitere⎞spezielle Matrix ist die Einheitsmatrix; z.B.: 1 ⎝ 0 In = 0 0 1 0 0 0 ⎠ ∈ Rn×n 1 Sie ist ein neutrales Element der Matrixmultiplikation, d.h. wenn man die Matrix A mit der Einheitsmatrix multipliziert, erhält man die Matrix A. 2.2.4 Determinante berechnen Um die Determinante einer (2×2)-Matrix zu berechnen, benutzt man folgende Formel: a b det c d = ad-bc Bei⎛einer (3×3)-Matrix gilt die so genannte Regel von Sarrus: ⎞ det⎝ a d g b e h c f ⎠= i aei+bfg+cdh-ceg-afh-bdi 39 Für eine (m×n)-Matrix liefert die Entwicklung nach i-ter Spalte die Determinante det A = nj=1 (-1)i+j aji detAji Beispiel: det 13 24 =(-1)1+1 ·1·det(4)+(-1)1+2 ·2·det(3) = 4+(-6) = -2 2.3 Eigenwerte und Eigenvektoren Zuerst denierten wir die Bedingungen für die Existenz eines Eigenvektor (EV). Existiert ein λ ∈ R, sodass die Gleichung Av = λv gilt, dann ist v, v = 0, v ∈ Rn , der Eigenvektor der Matrix A, wobei A ∈ Rnxn . λist dann der Eigenwert (EW). Bei der Berechnung des Eigenvektors muss immer zuerst der Eigenwert bestimmt werden, wobei es auch mehrere Eingenwerte geben kann. Um λzu bestimmen wird das charakteristische Polynom, det(A − λ · In ), gebildet und mit Null geleichgesetzt. Anschlieÿend werden alle λ, die Eigenwerte, ausgerechnet. Der ker(A − λi · In )(ker = Kern, entspricht alles was auf 0 abgebildet wird, d.h. löse das lineare Gleichungssystem (A − λi · In ) · x = 0) liefert die Menge aller Eigenvektoren zum Eigenwert λi . 1 −1 Bsp: Bestimme die Eigenwerte und Eingenvektoren zu A = 1 3 EW: det(A−λi ·In ) = det 1−λ 1 −1 3−λ = (1−λ)·(3−λ)+1 = λ2 −4·λ+4 charakteristisches Polynom = 0 ⇐⇒λ2 − 4 · λ + 4 = 0⇐⇒λ1,2 = 2 EV: −1 −1 ker(A − λ1,2 · I2 ) = ker , d.h. 1 1 x1 0 · = 0 x2 −1 −1 : 0 −1 −1 : 0 ⇒ 1 1 :0 0 0 :0 ⇒ −x1 − x2 = 0 ⇐⇒ x2 = −x1 x1 ⇒ ker(A − 2 · I2 ) = | x1 ∈ R −x1 −1 1 −1 1 z.B. wähle x1 = 1 ⇒ein Eingenvektor zum Eingenwert λ1,2 = 2 wäre v = 2.4 Lineare Abhängigkeit und Unabhängigkeit 1 −1 Vektoren heiÿen linear abhängig, wenn sie Vielfache voneinander sind. Allgemeiner lässt sich das Ganze denieren, wenn es eine Gleichung k1 · v1 + ....... + kn · vn = 0 für k ∈ R, (k1 , ....., kn )= (0, ......, 0) gibt. Anderenfalls nennt man v1 , ....., vn linear unabhängig (also wenn k1 · v1 + ....... + kn · vn = 0 nur für k1 = .... = kn = 0) Bsp.: 40 linear abhängig: ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ 1 3 1 3 ⎝ 2 ⎠, ⎝ 6 ⎠ (⇒ 3 · ⎝ 2 ⎠ − ⎝ 6 ⎠ = 0) 3 9 3 9 linear unabhängig: ⎛ ⎞⎛ ⎞ 1 4 ⎝ 2 ⎠,⎝ 5 ⎠ 3 6 2.5 Homogenes System linearer Differentialgleichungssysteme 1.Ordnung mit kostanten Koeffizienten Um die nötigen Rechenmethoden durchführen zu können, mussten wir zunächst einige Begrie klären. Zuerst haben wir die allgemeine Form von homogenen Systemen mit der von inhomogenen Systemen verglichen: · x(t)=A·x(t) , während · x(t)=A·x(t)+b(t). Dabei Ein homogenes System hat die Form System die folgende Form aufweist: ein inhomogenes gilt x,b Rnxn Der Grad einer Dierentialgleichung entspricht der höchsten Summe der auftretenden Potenzen der gesuchten Funktion einschlieÿlich ihrer Ableitungen in einem Term. Die Dierentialgleichung des 1. Grades nennt man linear. Wenn A konstant und somit unabhängig von t ist, spricht man von konstanten Koezienten. Die Ordnung einer Dierenzialgleichung entspricht der höchsten Anzahl der vorkommenden Ableitung einer Funktion. Aufgrund des Anfangswertproblems werden bei einer Dierentialgleichung n-ter Ordnung an der Stelle t 0 die Werte für · x, x, ..., x(n−1) vorgegeben. A·x · x= n×n (A ∈ R , x∈ Rn ). Die Lösung erhält man mit Hilfe der Eigenwertmethode, bei der die Gleichung ×n)-Matrix ist Als Ansatz wählt man x = r · e , r ∈ R , λ ∈ R. Anschlieÿend bestimmt man λund r mit det (A − λIn ) = 0 und ker(A − λi · In ). Danach gibt man die Lösungen x(1) , x(2) , ...an, wobei zu jebem Eigenwert der Vielfachheit m auch m zu lösen ist, wobei A die konstante (n λt h linear unabhängige Lösungen erzeugt werden. Anschlieÿend wird die allgemeine Lösung angegeben: x(t) = c1 r1 eλ1 t + ... + cm rm eλm t (c1 , ..., cm ∈ N) 2.6 Euler-Verfahren Das expliziete Eulerverfahren ist eine Methode zur näherungsweisen Lösung von Zuerst legt einen Anfangswert Durch diesen Punkt P0 (t0 , y0 ) · y = f (t, y) fest: y(t0 ) = y0 Dierenzialgleichungen, der Form: geht die Funktion, die wir näherungsweise durch das Verfahren bestimmen werden. Dazu muss die Schrittweite h ≥ 0 bestimmt werden. Diese kann beliebig gewählt werden, wobei gilt, je kleiner h, desto genauer ist die Ahnnäherung, aber desto gröÿer der Rechenaufwand. 41 Anschlieÿend wird der Punkt P1 (t1 , y1 ) bestimmt. Dies geschieht folgendermaÿen: - t1 entsteht durch die Addition von t0 und der Schrittweite h: t1 = t0 + h - y1 wird berechnet durch: y1 = y0 + Δy0 . Δy0 ist dabei das Produkt von h mit der Steigung im Vorgängerpukt P0 : m0 = Δy Δt mit m0 = f (t0 , y0 ) und Δt = h ergibt sich o 0 f (t0 , y0 ) = Δy h ⇒ Δy0 = h · f (t0 , y0 ) =⇒ y1 = y0 + h · f (t0 , y0 ) Allgemein sind die Formeln: tk+1 = tk + h yk+1 = yk + h · f (tk , yk ) [k = 0, 1, 2, ...] 3.Anwendung 3.1 2-Kasten-CO2 -Modell 3.1.1 Modell Diese mathematischen Grundlagen wenden wir jetzt auf ein 2-Kastenmodell an. [Luf t; y1 ] b ↑↓ a [W asser; y2 ] · y1 (t) = −y1 (t) · b + y2 (t) · a · y2 (t) = y1 (t) · b − y2 (t) · a · y1 −b a y1 = · b −a y2 y2 ZurLösung dieser Gleichung bestimmen −b − λ a ! det =0 b −a − λ wir erst den Eigenwert: ! (−b − λ) · (−a − λ) − a · b = 0 λ1 = 0, λ2 = −a − b Zu λ1 berechnen wir jetzt den Eigenvektor: −b a x1 0 · = b −a 0 x2 −b · x1 + a · x2 = 0 b · x1 − a · x2 = 0 , x2 ist beliebig 2 x1 = a·x b a·x2 −b a b ⇒ ker = | x2 ∈ R x2 b −a a Als Beispiel wählen wir hier 1b Die Eigenschaften folgendermaÿen. für λ2 berechnetman −b a x1 x1 · = −a − b b −a x2 x2 −b + a + b a a ker = ker b −a + a + b b 42 a b a · x1 + a · x2 = 0 b · x1 + b · x2 = 0 a · x1 = −a · x2 x1 = −x 2 a a −x2 | x2 ∈ R ⇒ ker = x2 b b −1 Als Beispiel wählen wir hier 1 λ ·t Eine Lösung bekommtmandurch Einsetzen in die Formel x(i) = ri · e : a b i a b · e0·t = 1 1 −1 y(2) = · e(−a−b)·t 1 Diese Ergebnisse Gesamtgleichung eingesetzt. a werdenin die −1 b y(t) = c1 · + c2 · · e(−a−b)·t 1 1 Anschlieÿend für y1 und y2 aufgestellt. werden dieGleichungen a (−a−b)·t y1 c1 · b −c2 · e = + y2 c1 c2 · e(−a−b)·t ⇒y1 (t) = c1 · ab − c2 · e(−a−b)·t y2 (t) = c1 + c2 · e(−a−b)·t Aufgrund des Anfangswertproblems legen wir für y1 (0) = 500 und 300 fest. 800 800 Aufgelöst erhält man für c1 = 1+ a und für c2 = 300 − 1+ a . y(1) = Eingesetz ergeben sich folgende Gleichungen. b y1 (t) = y2 (t) = 800 1+ a b 800 1+ a b · a b 800 ) · e(−a−b)·t 1+ a b 800 ) · e(−a−b)·t 1+ a b b − (300 − + (300 − Um a und b herauszubekommen, legen wir zwei weitere Werte fest. 3.1.2 Darstellung der Lösung mit dem Computer 43 für y2 (0) = Für die graphische Darstellung wählten wir für yw (0) = 300 und für yl (0) = 500. Deshalb ist der Startpunkt unabhängig von a und b. Die x-Achse des Graphen entspricht der Zeit, die y-Achse der CO2 -Konzentration in Luft bzw. Wasser. Nun wird a und b jeweils verändert: Bei Graphik 1 fällt die Kurve der CO2 Konzentration in der Luft, während die des Wassers fällt. Sie nehmen kurzzeitig den gleichen Wert an und sind deshalb kurz im Gleichgewicht. Danach steigen und fallen sie bis ein konstanter Wert erreicht wird. Bei der 2. Graphik fällt die CO2 -Konzentration der Luft, die Kurve der Werte des Wassers verläuft umgekehrt. Nach einer gewissen Zeit werden konstante Werte erreicht. Auch bei dem 3. Graphen fällt die CO2 -Konzentration in der Luft, die des Wassers hingegen steigt. Im Gegensatz zum 2. Graphen nehmen die beiden Kurven allerdings nach einiger Zeit die gleichen Werte an und ein Gleichgewicht stellt sich ein. Der 4. Graph verläuft umgekeht wie Graph 2. 3.1.3 Interpretation 44 Durch den Verlauf dieser Graphen wird deutlich, dass ohne äuÿere Einüsse die CO2 -Konzentration nach einer gewissen Zeit konstante Werte annimmt. 3.2 7-Kasten-CO2 -Modell 3.2.1 Modell Der CO2 -Austausch im 7-Kasten-Modell lässt sich mit folgenden Gleichungen beschreiben: · y ua (t) = θ 1 · yla(t) − θ 1 · yua (t), yua (1850) = 0 ua la · la ua 1 1 1 1 1 1 la · yua (t) + θ la · ysb (t) + θ la · yul (t) + θ la · ylb (t) − θ ua · yla (t) − θ sb · θua la sb ul lb la yla (t) − θ1ul · yla (t) − θ1lb · yla (t) + Qc (t) yla (1850) = 0 la la · y lb (t) = θ1lb · yla (t) − θ1la · ylb (t) ylb (1850) = 0 la lb · 1 y sb (t) = θsb · yla (t) − θ1la · ysb (t) ysb (1850) = 0 la sb · 1 1 y mb (t) = θmb · yul (t) − θul · ymb (t) ymb (1850) = 0 ul mb · y dl (t) = θ1dl · yul (t) − θ1ul · ydl (t) ydl (1850) = 0 ul dl · 1 1 1 y ul (t) = θul ·yla (t)+ θul ·ymb (t)+ θ1ul ·ydl (t)− θ1la ·yul (t)− θmb ·yul (t)− θ1dl ·yul (t) la mb dl ul ul ul y la (t) = , , , , , , yul (1850) = 0 Zur weitere Abstrahierung nehmen wir an, dass die Übergangskoezienten zwischen zwei Resservoirs auf dem Hin- und Rückweg gleich sind: dy 1 · (yla − yua ), yua (1850) = 0 dt = θ ua ua la = θla · (yua − yla ) + θ1la · (ysb − yla ) + θ1la · (ylb − yla ) + θ1la · (yul − yla ) + Qc (t) ua sb lb ul ,dyyla (1850) = 0 1 lb dt = θ lb · (yla − ylb ) , ylb (1850) = 0 dyla dt 1 la , dysb 1 ysb (1850) = 0 sb · (yla − ysb ) dt = θla dymb 1 ymb (1850) = 0 mb · (yul − ymb ) dt = θul dydl 1 ydl (1850) = 0 dl · (yul − ydl ) dt = θul dyul 1 1 1 ul · (yla − yul ) + θ ul · (ydl − yul ) + θ ul dt = θla dl mb , , 3.2.2 Numerische Lösung via Computer 45 · (ymb − yul ) , yul (1850) = 0 wobei r1 die Veränderung des neuem CO2 -Ausstoÿes ist. Verschiedene Annahmen: Bei erhöhtem CO2 -Austoÿ des Menschen in der Zukunft wird sich die Temperatur dramatisch erhöhen (r1 = 0, 005). Wenn der Mensch seinen CO2 -Ausstoÿ auch nur gering erhöht, hat auch dies eine Teperaturerhöhung zur Folge ( r1 = 0, 0025). Selbst wenn der Mensch seinen jetzigen CO2 -Ausstoÿ beibehält steigt die Temperatur (r1 = 0). Auch wenn der Mensch es schat seinen derzeitigen CO2 -Ausstoÿ zu reduzieren, steigt die Temperatur noch wenige Jahre an, bis sie dann endlich wieder fällt. Um dies zu veranschaulichen haben wir ein schon vorgegebenes Programm verwendet, bei dem wir verschiedene Parameter verändert haben, sodass wir dieses auf unser eigenes System von Dierentialgleichungen anwenden konnten. Dabei hat das Programm die Dierentialgleichungen mittels des Runge-KuttaVerfahrens numerisch gelöst, da die Gleichungen aus dem 7-Kasten-Modell zu komplex sind um sie analytisch zu lösen. Qc (t) = c1 · er1 ·t , 4. Ergebnis Selbst mit unserem stark abstrahierten und vereinfachten Modell ist die klare Tendenz eines weiterhin ungebremsten CO2 -Ausstoÿ des Menschen dargelegt, nämlich einen starken Temperaturanstieg auf der Erde. Damit konnten wir die verbreiteten Aussagen über den Klimawandel nachvollziehen. Obwohl die Temperaturerhöhung nicht sofort gestoppt werden kann, ist es wichtig, dass man den persönlichen CO2 -Ausstoÿ reduziert. Den gröÿten Anteil unserer CO2 Produktion hat der Flugverkehr. Auÿerdem verursacht die Fleischproduktion mit z.B. der Methanemission der Rinder und der Rodung für Weideächen 18% der weltweiten Treibhausgasemission 1 . Auch weite Transportwege der Lebensmittel bewirken einen Anstieg unseres CO2 -Ausstoÿes. Um die CO2 -Produktion jedes einzelnen festzustellen, lässt sich dessen ökologischer Fuÿabdruck berech46 nen, z.B. auf der Seite www.ecogood.de. An dem Ergebnis kann man erkennen, dass man noch viel zur Reduzierung des eigenen CO2 -Ausstoÿ beitragen kann, z.B. indem man öentliche Verkehrsmittel benutzt oder den Fleischkonsum reduziert. 1 http://www.stuv.uni-wuerzburg.de/leadmin/34000000/SSR_allgemein/Mensa- Philosophie/mensaphilosophie_lang_2011-06-08.pdf Erik Bräutigam, Andreas Gottscholl, Klara Hermes, Paul Nikolaus, Karin Rieÿ und Pippa Schneider 47 Android Apps programmieren Dienstag der 17. Juli Zunächst haben wir auf unseren Rechnern die Programmierumgebung „Eclipse“ installiert. Was sich zunächst einfach anhört, war für den einen oder anderen schon Abbildung 1: Screenshot der Programmierumgebung Eclipse die erste Geduldsprobe. Es fehlten teilweise Pakete, die essentiell für weitere Pakete waren und aus den Fehlermeldungen wurde man auch nicht immer schlau. Aber 1 48 trotzdem lief es am Ende bei fast allen. Denn um Apps für Android zu programmieren, benötigt man nicht nur das Paket für Java, in welcher Sprache diese auch geschrieben sind, sondern auch das Android SDK. Um nun in die Programmierung einzusteigen, bekamen wir die Aufgabe einen Taschenrechner mit den Grundoperationen für das Handy zu schreiben. Dies war für manche deutlich einfacher als für andere. Es war schwer genug nur zwei Zahlen einzugeben und dann zwischen den Rechenoperationen +, *, / und - zu unterscheiden. Wir begannen damit, dass wir das Layout für unsere kleine App entwarfen. In Eclipse steht einem die Möglichkeit offen, dies mit einer GUI vorzunehmen. Das hatte jedoch seine Tücken, denn schnell stieß man an seine Grenzen und musste für die eine oder andere Option trotzdem in den Quelltext wechseln. So konnte man zwar den Namen der Schaltflächen und Textfelder in der GUI ändern, wenn man aber nun einstellen wollte, dass in das Textfeld nur Zahlen, was für einen Taschenrechner nun mal sinnvoll ist, eingegeben werden, so musste man wohl oder übel im Quelltext die Attribute des Textfelds um eine Zeile erweitern. Dann informierten wir uns selbstständig im Internet wie wir die Zahlen, die im Textfeld standen auslesen und in einen geeigneten Datentyp überführen. Dies lösten wir folgendermaßen: public double einlesenB(){ EditText za2 = (EditText) findViewById(R.id.editText2); String zwei= za2.getText().toString(); return Double.parseDouble(zwei); } Um die beiden Zahlen, die nun eingegeben und ausgelesen wurden, vernünftig mit einander in Relation zu bringen haben wir Schaltflächen genutzt. Selbstredend wurde mit der Plusschaltfläche eine Addition durchgeführt. Schließlich begannen wir nun uns den Code für die Ausgabe des Ergebnisses zu überlegen. Wir kamen auf folgende Lösung: public void setzen(double erg){ EditText za3; String drei; za3 = (EditText) findViewById(R.id.editText3); drei= String.valueOf(erg); za3.setText(drei); } 49 Die Dezimalzahl erg kommt von den verschiedenen Methoden wie Plus, Minus, Mal und geteilt, die zwei Zahlen zu einer verrechnen. Es wäre nun einfach anzunehmen, dass wenn man nun die Einzelteile zusammenfügt, ein funktionierendes Ganzes das Ergebnis sei. Dies war aber nicht so, viel mehr stellte dieser letzte Schritt uns vor die größten Probleme. Im Einzelnen funktionierte jeder Teil einwandfrei, aber zusammengefügt gab es Fehlermeldungen. Nun musste man die Fehler aufspüren, was nicht überall gelang. Wir haben das Handy an den Computer angeschlossen und unser Programm oder die Absturzmeldung darauf laufen lassen. Unter dem Strich haben wir ein paar fertige Taschenrechner Programme und auch eines, welches noch über weitere Funktionen wie Potenzschreibweise oder Ergebnisübertragung verfügt. Mittwoch der 18. Juli Wir haben nun unser eigentliches Projekt begonnen. Bei diesem wollen wir einen interaktiven Lageplan der Universität Würzburg erstellen. Wir möchten, dass wenn man sich über das Unigelände bewegt, dass man seinen momentanen Standpunkt auf dem Unigelände in der App auf einer Karte angezeigt bekommt. Des weiteren möchten wir eine kurze Information über die in der Nähe liegenden Gebäude geben. Beispielsweise ein Bild oder einige Hintergrundinformationen. Zu nächst haben wir uns mit Hilfe einer Internet-Recherche auf das Thema vorbereitet. Wir haben uns informiert, wie von Google bereitgestellte Kartenfunktion in eine Android App implementiert werden kann. Diese Karten werden von Google für alle kostenlos bereitgestellt, die ein Google-Konto besitzen. Nachdem dies geschafft war, konnten wir nun auf unseren Smartphones eine Karte anzeigen lassen. Aber um den Standort des Handy herauszufinden, benötigt man noch mehr, denn wir hatten lediglich eine Karte von der gesamten Welt auf dem Handy. Um dieses Problem zu lösen, griffen wir auf den Ortungssensor des Handy zu, denn ohne den momentan Aufenthaltsort zu wissen, kann man nicht anzeigen, welche Gebäude in der Nähe vorzufinden sind. Um nun eine kurze Information darüber zu bekommen, wie gut unsere GPS-Sensoren im Handy funktionieren, haben wir unsere momentane Position mit Hilfe eines PopUp Fenster anzeigen lassen. Während manche Geräte mehrmals die Sekunde ihre Postion aktualisierten, haben andere überhaupt kein Signal gefunden. Dieses PopUp Fenster erwies sich auch noch als sehr nützlich. Auch haben wir beschlossen nicht nur die Koordinaten anzeigen zu lassen, sondern auch die Adresse der nächsten Straße, denn darunter lässt sich deutlich mehr vorstellen, anzeigen zu lassen. Hier ist der 50 Code für diese Passage, die Erklärung ist als Kommentar eingefügt: //neues Objekt der Klasse Geocoder erstellen. // Dieses kann Adressen zu GPS-Koordinaten heraussuchen. Geocoder address = new Geocoder(getApplicationContext()); //neuen String erstellen in den später die Adresse geschrieben wird. String strAddress=""; //Da Fehler auftreten können, wird der Ausdruck mit try und catch umrahmt. try { //Nun werden mögliche Adressen in der Umgebung abgerufen // und in eine Liste geschrieben. Uns genügt hier eine. List<Address> adrs = address.getFromLocation (location.getLatitude(), location.getLongitude(), 1); //Aus dem neuen Objekt Address wird nun Zeile für Zeile ein String gemacht. for (int i=0; i<adrs.get(0).getMaxAddressLineIndex(); i++) { strAddress=strAddress+"\n"; strAddress=strAddress+adrs.get(0).getAddressLine(i); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } //Und zum Schluss geben wir Koordinaten und Adresse //mit Hilfe einer Toast Message(PopUp Fenster) ausgegeben. Toast.makeText(getApplicationContext(), "Geographische Breite: "+location.getLatitude()+ "\nGeographische Länge: "+location.getLongitude()+ strAddress, Toast.LENGTH_LONG).show(); Nun sind wir auf dem Campus in Kleingruppen umhergegangen und haben die Koordinaten verschiedener wichtiger Gebäude aufgenommen und fotografiert. Diese Informationen haben wir nun in eine Liste eingefügt und in unser Programm eingebettet.Wir haben eine neue Klasse „PlacesOfInterest“ erstellt, welche die verschiedenen Ort repräsentiert. Wir haben dann unsere Koordinaten in Google Maps überprüft, denn teilweise wurden an der richtigen Stelle alte Benachrichtigungen angezeigt, da diese so zahlreich geschaffen wurden und nicht zeitnah angezeigt werden konnten. 51 Nachdem dies überprüft war haben wir die Koordinaten und ihre Punkte in eine Liste in Java eingetragen, was wir erst neu lernen mussten. Abbildung 2: Kevin und Steven beim Aufnehmen der Koordinaten Donnerstag der 19. Juli Die Punkte, die wir in der Liste gespeichert hatten, wollten wir nun auch noch in unserer App visualisieren. Dafür haben wir uns eine neue Methode angeschaut, welche es ermöglicht auf einer Landkarte, die nun mal in unserer App schon vorhanden ist, anzuzeigen. Dafür mussten wir aber erst die Koordinaten aus der Liste auslesen und casten, das heißt in einen anderen Dateityp umwandeln, denn die Methode, welche die die Markierungen auf die Karte setzt nimmt nur Ganzzahlen an, wir jedoch hatten unsere Koordinaten überlicherweise als Dezimalzahlen gespeichert. Dies war aber nicht sonderlich schwierig, da Java solche Methoden häufig gebraucht und somit schon vorhanden sind. Da der heutige Tag im Sinne der Erweiterung und Verbesserung der App stand, überlegten wir uns gemeinsam was wir noch für weitere Funktionen einbauen könnten. Somit kamen wir auf die Idee, dass es eigentlich ganz nett sei weitere Informationen zu erhalten, wenn man die Markierungen für die Sehenswürdigen der Universität drücke. Dies realisierten wir zunächst mit dem Namen des Gebäudes, schnell kam und 52 Abbildung 3: Bild der Karte mit den Marken noch die Idee auch die Entfernung von seinem momentan zu dem gewählten Punkt anzuzeigen. Dafür war es nötig, dass wir unseren momentan Standpunkt regelmäßig aktualisierten. Dies lösten wir mir einer for-Schleife: for(PointOfInterest p : PunkteErstellen()) { int lat = (int) (p.getLatitude() * 1E6); int lon = (int) (p.getLongitude() * 1E6); String name=p.getName(); GeoPoint geo = new GeoPoint(lat,lon); Location Current = new Location(p.getName()); Current.setLongitude(p.getLongitude()); Current.setLatitude(p.getLatitude()); OverlayItem item = new OverlayItem(geo, p.getName(), "Die Entfernung zu Gebäude "+name+ " beträgt "+(int)loc.distanceTo(Current)+" Meter."); myItemizedOverlay.addItem(item); 53 } Zur Überprüfung unserer Arbeit machten wir einen Spaziergang durch den Campus mit unserer App. Wir überprüften die Positionen in der Realität und fanden auch einige kleinere und größere Fehler. So sollte die Minimalfläche beispielsweise mit auf der Straße stehen, was sie freilich nicht tut. Dies kann man auch auf Fehler durch das GPS zurückführen, denn dies hat im zivilen Bereich eine gewisse Ungenauigkeit und diese wurde uns doch das eine oder andere Mal zum Verhängnis. Nachdem wir unsere eigentlich fertige App überprüft hatten, waren wir doch noch so unermüdlich, dass wir sie noch um einige weitere Funktionen erweitern wollten. So wollten wir das Handy vibrieren lassen, sobald man sich in die nähere Umgebung einer Markierung begibt. Wir wählten den Radius auf 30 Meter und wollten mit folgender Anweisung eine Benachrichtigung mit dem Namen des Gebäudes geben if(loc.distanceTo(Current)<=30){ Vibrator v= (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); v.vibrate(400); Toast.makeText(getApplicationContext(),"Du bist bei "+name+".", Toast.LENGTH_LONG).show() } Es stellte sich jedoch das Problem, dass wenn wir uns innerhalb des Radius bewegten die ganze Zeit eine Benachrichtigung erhielten, was auf Dauer sehr nervend war. Wir überlegten uns wie wir das in den Griff bekommen könnten und lösten es damit, dass wir die if-Anweisung um die Bedienung erfüllten, dass wenn der selbe Name ausgeben würde wie zuvor, dass dann die Bedingung nicht greift und die Anweisung für vibrieren und Benachrichtigung ausgeben einfach übersprungen wird. if ((lastPoint==poi.getN())&&(loc.distanceTo(ziel)>30)) { lastPoint=""; } if ((loc.distanceTo(ziel)<30)&&(lastPoint!=poi.getN())) { // Get instance of Vibrator from current Context Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); // Vibrate for 300 milliseconds v.vibrate(300); Toast.makeText(getApplicationContext(), "Du befindest dich bei "+poi.getN() 54 1000).show(); lastPoint=poi.getN(); viewDetails(poi); } Und schließlich wollten wir nun, wenn wir in die Nähe des Gebäude kommen, dass dann ein neues Fenster aufgeht und uns Bilder und Informationen zeigt. Das sieht wie folgt aus. Abbildung 4: Screenshot des Fenster mit Bildern und Informationen Freitag der 20.Juli Vormittags haben wir die Präsentation und den Projektbericht fertiggestellt. Am Nachmittag war dann die eigentliche Präsentation. 55 In 80 Tagen um die Welt Gruppe 6 Quelle: http://en.wikipedia.org/wiki/File:Around_the_World_in_Eighty_Days_map.png von Roke unter der Creative Commons Attribution-ShareAlike 3.0 Unported Lizenz Schülerinnen und Schüler: Lukas Elter, Lena Hübner, Theresia Kunz, Dominik Seibold, Sabrina Zierof Betreuerinnen und Betreuer: Alexandra Schwartz, Joachim Spoerhase, Anna Weitzel Problemstellung Wie hat es Phileas Fogg geschafft, die Welt in 80 Tagen zu umrunden? Hatte er die Reise vorher genau geplant oder hat er einfach versucht, jeden Tag so weit wie möglich zu kommen? Das kann man heute natürlich nicht mehr nachprüfen. Interessant wäre es allerdings zu wissen, wie man diese Reise heute planen könnte. Hätte man eine Route und eine Zeit für die gesamte Reise festgelegt, so müsste man als nächstes alle Übernachtungsmöglichkeiten heraussuchen, um später viele Freiheiten bei der endgültigen Reiseplanung zu haben. Ist all dies erledigt, fängt die Problematik an, mit der wir uns beschäftigen wollen. Unsere Aufgabe besteht darin, uns zu überlegen, welche Übernachtungsmöglichkeiten am günstigsten sind, um die gegebene Strecke in einer bestimmten Zeit zu bewältigen und dabei an allen Tagen möglichst gleich weit zu reisen. 1 56 Kennzahlen zum Vergleich von Lösungsmöglichkeiten Unsere erste Überlegung ist zu definieren, was „gleichmäßig“ bedeutet und wie man Strecken auf ihre Gleichmäßigkeit überprüfen kann. Damit wir dies besser verdeutlichen können, führen wir folgende Bezeichnungen ein: Wir nennen die Anzahl der Teilstrecken n, die einzelnen Teilstrecken l1 , l2 , . . . , ln , die Menge aller Teilstrecken l = (l1 , . . . , ln ) und die Gesamtstrecke L = l1 + . . . + ln . Die Anzahl der Tage bezeichnen wir mit k und die einzelnen Tagesetappen, d.h. die jeweils an einem Tag insgesamt zurückgelegte Strecke, mit e1 , e2 , . . . ek . Start 1 1 1 l4 = 7 e1 = 10 l5 = 5 l6 = 4 e2 = 5 e3 = 4 Ziel Abbildung 1: Teilstrecken li und Tagesetappen ej Um nun verschiedene Lösungsmöglichkeiten vergleichen zu können, gibt es viele Möglichkeiten. Aus Zeitgründen schränken wir uns auf die folgenden drei ein. • Die erste Idee ist den Durchschnitt der an einem Tag zurückgelegten Strecke d = Lk zu berechnen. Idealerweise sollten alle Tagesetappen möglichst nahe an diesem Durchschnitt sein. Daher sollte die Summe aller Differenzen zwischen d und e relativ gering sein, d.h. der Wert 1 k k X |d − ej | j=1 sollte möglichst klein sein. • Einzelne Tagesetappen, die besonders stark von d abweichen, fallen dabei aber genauso sehr ins Gewicht, wie viele Etappen, die nur wenig von d abweichen, zusammen. Um solche stark abweichenden Etappen mehr zu „bestrafen“, betrachten wir als nächstes die Varianz. Angewandt wird hierbei dasselbe Prinzip, jedoch werden die Differenzen zusätzlich quadriert, d.h. man betrachtet 1 k k X (d − ej )2 . j=1 Da man bei dieser Methode sehr große Abweichungen leichter erkennen kann als bei der ersten Methode, schließen wir die erste wieder aus. • Weiter überlegen wir uns, dass es erstrebenswert ist, wenn die längste Tagesetappe, die wir im Folgenden mit emax = max ej j=1,...,k bezeichnen wollen, so klein wie möglich ist, da dann auch alle anderen Tagesetappen möglichst kurz werden. Dies nennen wir den MinMax-Ansatz. 57 Nun vergleichen wir die letzten beiden Möglichkeiten. Zum einen hat man bei der Varianz meistens ein gleichmäßigeres Ergebnis als bei der Lösung, bei welcher emax möglichst gering ist, denn der MinMax-Ansatz achtet nur auf emax und nicht darauf, dass alle anderen Tagesetappen gleichmäßig sind. Hat man also eine Teilstrecke li , die viel größer als alle anderen ist, so kann es in der Lösung auch sehr kurze ej geben. Im Gegensatz dazu ist bei der Varianz am wichtigsten, dass alle Tagesetappen ej ungefähr gleich sind. Allerdings gibt es auch Beispiele, wo die Varianz eine Lösung ergibt, die man nicht als gleichmäßig bezeichnen würde. Will man zum Beispiel die Teilstrecken l = (50, 45, 10, 10, 70, 10, 1) auf 4 Tage aufteilen, so ergibt die Varianz optimale Tagesetappen von (50, 45, 20, 81). Der MinMax-Ansatz hingegen ergibt Tagesetappen von (50, 65, 70, 11), hat also drei ungefähr gleich lange Tagesetappen und nur einen Ausreißer. Zusätzlich ist beim MinMax-Ansatz leichter den Rechenaufwand für die Bestimmung der optimalen Lösung gering zu halten. Man erhält also nicht immer das gleichmäßigste Ergebnis, wenn emax minimiert wird, aber das ist auch nicht unbedingt nötig, da man das Ergebnis, wenn es nicht eindeutig ist, von Hand leicht verbessern kann. Legt man viel Wert darauf, dass schon im berechneten Ergebnis alle Tagesetappen möglichst gleich lang sind, wäre die Varianz die sinnvollere Methode, aber im Verhältnis zum höheren Rechenaufwand fällt dieser Vorteil nicht so sehr ins Gewicht. Deswegen entscheiden wir uns dafür, dass der MinMax-Ansatz effizienter ist. Außerdem überlegen wir, ob es sinnvoll ist, die Varianz eventuell am Ende noch zum Finden des „besten“ Ergebnisses zu verwenden, falls der MinMax-Ansatz mehr als eine Lösung findet. Nachdem wir einige mit dem der MinMax-Ansatz bestimmte Lösungen betrachtet haben, entscheiden wir aber, dass diese Lösungen gut genug sind. Lösung des Problems mit dem Computer Nachdem wir uns für ein Ziel entschieden haben, stellen wir das Problem mathematisch dar, um damit rechnen zu können. Aus den oben genannten Informationen lässt sich entnehmen, welche Daten wir zur Berechnung benötigen. Der Reiseweg wird als Vektor l = (l1 , . . . , ln ) bestehend aus den einzelnen Teilstrecken li dargestellt. Als weiterer Eingabewert wird die Anzahl der Tage k benötigt. Wir überlegen uns nun einen Algorithmus mit dem Ziel, ein kleinstmögliches emax zu finden und programmieren diesen in MATLAB. Brute-force Algorithmus Die Umsetzung als Programm beginnt mit der Idee eines Algorithmus, der jede mögliche Kombination von Übernachtungsmöglichkeiten ausprobiert und am Ende alle Strecken ausgibt, deren maximale am einem Tag zurückgelegte Strecke emax so klein wie möglich ist. Dazu entwickeln wir die Funktion Uebernachtung, die uns aus der gegebenen Strecke l und der Anzahl der Tage k alle möglichen Reiserouten generiert, d.h. alle möglichen Kombinationen von Übernachtungen, wobei im Zielpunkt immer eine Übernachtung eingeplant wird. Schritt Zwei ist nun die Implementierung einer Routine Weg, die aus den möglichen Reiserouten die Tagesetappen ei berechnet. 58 Start Start 1 1 1 1 1 1 1 .. . Start 1 1 7 4 5 4 5 4 5 4 Ziel 17 1 7 2 1 5 Ziel 16 1 7 10 Ziel Abbildung 2: Illustration des brute-force Algorithmus Schließlich sucht ein Filter diejenigen Routen heraus, deren maximale Etappenlänge emax am kleinsten sind. Dieses Verfahren wird in Abbildung 2 illustriert. Mit dieser Methode erhalten wir alle möglichen Lösungen. Allerdings ergeben die durchgeführten Testläufe, dass die benötigte Rechendauer am Computer exponentiell zu den Teilstrecken l und den Tagen k ansteigt. Dies ist nicht überraschend, da n−1 Möglichkeiten überprüft werden müssen. Am größten ist die Rechendauer k−1 daher bei k = n2 . Bereits für n = 20 und k = 10 ergibt sich daher eine Rechenzeit von mehr als 260 Sekunden. Wir müssen also nach einer effizienteren Lösung suchen. 19 3 Start 19 3 1 1 1 19 3 7 5 4 Ziel durchschnittliche Etappen Start 1 1 1 7 3 13 5 3 23 2 23 4 Ziel 2 13 Rundung Start 1 1 1 3 7 5 12 4 Ziel 4 vom Rundungsalgorithmus gefundene Lösung Abbildung 3: Der Rundungsalgorithmus Näherungsweise Lösung durch Runden Um ein schnelleres Verfahren zu erhalten, überlegen wir uns einen weiteren Algorithmus: den Rundungsalgorithmus Maxweg. Hierbei wird unser Weg l in Etappen 59 der Größe d eingeteilt und schließlich auf den nächstliegenden Übernachtungspunkt „gerundet“, vergleiche Abbildung 3. Dieser Algorithmus liefert leider nicht immer die optimale Lösung, vergleiche Abbildung 1. Man kann sich aber überlegen, dass der so berechnete Wert emax höchstens doppelt so groß, wie der kleinstmögliche Wert e∗max ist. Dies wird in Abbildung 4 illustriert. Start li ≤ e∗max ≤ 21 li ≤ 12 e∗max li+1 ≤ e∗max = d ≤ e∗max Ziel ≤ 12 li+1 ≤ 12 e∗max Abbildung 4: Güte der vom Rundungsalgorithmus bestimmten Lösung Effizienteres Verfahren zur Bestimmung der optimalen Lösung Um eine optimale Lösung effizient zu bestimmen, schränken wir uns zunächst auf den Fall ein, wo die Länge aller Teilstrecken eine natürliche Zahl ist, d.h. li ∈ N. Wir suchen eine obere und untere Schranke für das optimale emax und testen dann für alle Werte dazwischen, ob mit diesen Werten als emax ein Durchlauf möglich ist. Als untere Schranke wählen wir die durchschnittliche Tagesetappe d und als obere Schranke zunächst die Gesamtlänge der Reise L. Da ein Abtasten aller Werte emax = L, L − 1, L − 2, . . . , d sehr lange dauern kann, entscheiden wir uns für ein anderes Verfahren: Wir testen zunächst, ob es möglich ist die gesamte Strecke in der (bzw. der größten natürlichen Zahl emax ≤ L−d ) zu vorgegebenen Zeit mit emax = L−d 2 2 durchlaufen. Wenn ja, suchen wir zwischen L−d und d weiter, wenn nicht, betrachten 2 und L. Dies wiederholen wir solange, bis eine Lösung wir die Werte zwischen L−d 2 gefunden ist. Damit ist der benötigte Zeitaufwand in Abhängigkeit von L und d = Lk nicht mehr direkt proportional zu L − d sondern direkt proportional zu log2 (L − d). Um dies noch weiter zu verbessern, wählen wir schließlich statt L den von unserem Rundungsalgorithmus bestimmten Wert emax ≤ L als obere Schranke. Um zu überprüfen, ob es möglich ist, das Ziel innerhalb der vorgegeben Tageszahl mit einem gegeben emax zu erreichen, verwenden wir die Methode Limittest. Hierbei wird versucht an jedem Tag so weit wie möglich, aber höchstens emax zu reisen. Kann man so die ganze Reise in höchstens k Tagen abschließen, ist emax ein zulässiges Limit, sonst nicht. Wir kombinieren also Rundungsalgorithmus, Limitsuche und Limittest zu einen neuen – verbesserten – Algorithmus, der das kleinstmögliche emax bestimmt. Bei etlichen Tests des Laufzeitverhaltens und der Richtigkeit der Ergebnisse im Vergleich zum erstgenannten Algorithmus kommt die erhöhte Effizienz dieses Verfahrens deutlich zur Geltung: die kleinstmögliche Etappe emax wird selbst bei 2000 Teilstrecken immer noch zehn mal schneller ermittelt als bei dem brute-force Algorithmus mit 20 Teilstrecken. Allerdings überprüft unsere Limitsuche bisher nur ganze Zahlen als mögliche Werte für emax und lässt sich auch nicht ohne weiters so ändern, dass auch reelle Zahlen als Teilstreckenlängen li möglich sind, ohne dass unendlich viele Schritte durch- 60 geführt werden müssen. Um trotzdem mit reellen Zahlen arbeiten zu können, muss daher zuerst eine Betrachtung aller möglichen Werte für emax erfolgen: Es kommt ja nicht jede Zahl aus dem Intervall [d; L] für emax in Frage. Da lediglich Zahlen vorkommen können, die die Summe von benachbarten Teilstrecken sind, lassen sich alle möglichen Werte leicht berechnen. Wir können also die Limitsuche anpassen, so dass sie nur noch die so bestimmten Werte nach dem besten durchsucht. Dies hat außerdem den Vorteil, dass die Zahl der hierfür höchstens benötigten Schritte nun nicht mehr von der Größe der Teilstrecken li , sondern nur noch von ihrer Anzahl n abhängt; sie ist proportional zu log2 n2 = 2 log2 n. Zusammenfassung Auf Basis all dieser Überlegungen entsteht schließlich ein Algorithmus, der auch für reelle Teilstreckenlängen li eine Kombination von Übernachtungen findet, bei der die Tagesreisebelastung immer möglichst klein (sprich emax minimal) ist und trotzdem noch möglichst viele freie Tage am Ende zur Verfügung sind. Diverse Testläufe dieser Methode mit dem Namen berechnung offenbaren, dass die so generierte Streckeneinteilung meistens ziemlich genau mit der (von uns erwarteten) optimalen Aufteilung der Strecke übereinstimmt und auch für sehr große Beispiele die Lösung in einer akzeptablen Zeit berechnet wird. 61 Thema: Autorennen auf Karopapier Teilnehmer: Hillenbrand Anna, Roßmann Jonas, Gubik Eva, Bördlein Lena, Rauch Anna, Berghoff Joshua Leiter: Prof. Dr. Wachsmuth, M. Ullrich, L. Schäfer Dienstag, der 17.07.2012: Nachdem sich alle Projektteilnehmer zu einer kurzen Präsentation der Themen im Hörsaal 2 der Universität versammelt haben, werden die Projektgruppen durch Herrn Professor Weigand eingeteilt. In der Gruppe „Autorennen auf Karopapier“ wird uns zuerst das Thema, das auch als Spiel bekannt ist, genauer durch Prof. Dr. Wachsmuth erläutert. Anschließend haben wir uns im Internet über die Regeln informiert. Zuerst wird auf einem karierten Papier ein beliebiger Streckenverlauf, der eine Start- und eine Ziellinie beinhaltet, eingezeichnet. Jeder Teilnehmer des Spiels besitzt ein imaginäres Auto, das zu Beginn durch einen Punkt auf der Startlinie symbolisiert wird. Der Bewegungsvektor des Autos am Anfang des Spiels auf (0/0) festgelegt. Pro Zug kann man als Spieler sowohl die x-, als auch die y-Komponente des Vektors um den Betrag 1 erhöhen oder vermindern. Das Ziel ist es, die vorgegebene Strecke mit möglichst wenigen Zügen zu passieren. Die Schwierigkeit liegt darin, den vorgegebenen Kurs, besonders in den Kurven, zu halten. 62 Um die Regeln zu verinnerlichen, unternehmen wir erste Spielversuche. Anschließend vergleichen wir unter der Anleitung von Herrn Ullrich die lineare Beschleunigung auf dem Karopapier mit der realen Beschleunigung eines Autos. Wir haben festgestellt, dass sich die Beschleunigung bei kleineren Kästchen, der Beschleunigung der realen Bewegung annähert. Daraufhin versuchen wir anhand von Skizzen eine Kurvenbewegung mit Vektoren nachzuziehen. 63 Mittwoch, der 18.7.2012: Nachdem sich die Gruppe um 09:05 im Arbeitsraum versammelt, schlägt Herr Prof. Dr. Wachsmuth neue Fragestellungen für den heutigen Arbeitsabschnitt, da die gestrigen bereits gelöst wurden: - Wie bringt man einem Programm bei, die Richtung zum Ziel herauszufinden? Wie beschreibt man die Geschwindigkeitsbeschränkung? Wie viele Suchknoten gibt es? Welches wäre das geeignetste Suchverfahren? Durch Probieren ergibt sich, dass der schnellste Weg, meist intuitiv gefunden, möglichst nah am Inneren der Kurve entlang führt. Um die Kurve sicher zu nehmen, muss man früh genug abbremsen, um nicht zu weit an den Rand zu kommen bzw. in der Bahn zu bleiben. 64 Wenn man die Geschwindigkeitsregelung darstellt, ergibt sich folgende Tabelle: V\A 1 2 3 4 5 6 V\A 1 2 3 4 5 6 7 1 2 3 4 5 6 7 8 9 11 12 13 14 15 16 17 18 19 V = Momentane Geschwindigkeit Rot = Crash grau = V beibehalten A = Abstand nach vorne Gelb = Bremsung Grün = beschleunigen Da wir immer noch Probleme haben, eine Regelmäßigkeit in den Kurven zu finden, fertigen wir obige Tabelle an. Sie zeigt das empfohlene „Fahrverhalten“ an der aktuellen Position. Hierbei wird die momentane Geschwindigkeit V mit dem Abstand A verglichen. Die Tabelle zeigt dann anhand der Farbe, ob man mit diesen Koordinaten beschleunigen, bremsen oder konstant weiterfahren soll. 65 10 20 Tabelle 2: 33 33 33 27 26 25 24 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 26 25 24 23 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 25 24 23 22 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 24 23 22 21 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 23 22 21 20 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 22 21 20 19 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 21 20 19 18 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 20 19 18 17 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 19 18 17 16 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 18 17 16 15 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 17 16 15 14 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 33 33 33 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 33 33 33 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 33 33 33 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 Da wir feststellen, dass die Mitglieder unserer Gruppe kaum Informatikkenntnisse besitzen, gibt uns Herr Ullrich eine Einführung in die Funktionsweise von Suchverfahren (Tiefensuche). Mithilfe dieser Kenntnisse fertigen wir die obige Tabelle. Wir weisen hierbei jedem Punkt auf dem Gitter eine Zahl „Z“ zu. Diese Zahl dient später dem Suchalgorithmus als Orientierung. Wir haben die Zahlen so gewählt, dass sich der Computer immer den nächsten Punkt mit der geringsten Zahl sucht, sodass er mit jedem Schritt dem Ziel etwas näher kommt. Das Auto wählt immer die erst möglichste niedrigste Zahl, wobei er in der Reihenfolge seiner Suche festgelegt ist. Damit das Auto die Bahn nicht verlässt haben wir diese Felder mit der sehr hohen Zahl 33 versehen. Anhand Tabelle 2 versuchen wir die überlegten Schritte in Gedanken durchzuspielen, um mögliche Fehler zu finden. Dabei stellen wir fest, dass der Weg, den der Computer gehen würde, sich noch von der von uns als optimal angenommenen Kurve unterscheidet. Zusätzlich fügen wir an die Ziellinie noch sechs Reihen „1er“ an, damit das Auto über die Ziellinie fahren kann, wenn es zu sehr beschleunigt hat. Mit Hilfe von Herrn Prof. Wachsmuth und Herrn Ullrich übertragen wir unsere Überlegungen in das Computerprogramm. 66 Donnerstag, der 19.7.2012: Um 9 Uhr versammeln wir uns alle, um unsere Tabellen in das Programm Math Lab zu überführen. Dazu überlegen wir uns die nötigen Schritte, die später in das Programm übernommen werden sollen. Diese formulieren wir zunächst in ganzen Sätzen. Unser Versuch des Programmierens: (0/0) (1/0) (1/-1) (0/-1) (-1/-1) (-1/0) (-1/1) (0/1) (1/1) =(0/0) = +R Allgemein: = Z= Eckpunkt Start bei P(0/0) For = +R + +“i-te Spalte von R“ with = +R und 1. Position k=1, pro Position k=k+1 -wähle R so, dass die Zahl des Eckpunkts möglichst klein ist -falls Z 0 , gehe einen Schritt zurück und probiere eine neue Möglichkeit (wähle das nächst größere aus) -wiederhole bis Eckpunkt Z=1 -merke k natürliche Zahlen bis Z=1 -speichere die Geschwindigkeit, Vektor und Koordinaten in einer Liste Desweiteren beginnen wir mit der Vorbereitung in zwei Gruppen der Präsentation am Freitag. Die erste Gruppe beschäftigt sich mit dem Einstieg, den Spielregeln und dem Vergleich von Realität und Karopapier. Die zweite Gruppe bereitet den Vortrag über den Algorithmus, Optimierung der Spielzüge und Weiterentwicklung. 67 Projektbericht Gruppe 8 „Fahrrad-Mathematik“ „In welche Richtung fuhr der Postbote?“ Mitglieder der Projektgruppe: Name Deublein Zöller Häuser Hoyer Pfister Öftering Dietz Vorname Alexander Felix Christian Tobias Mariette Patricia Stefanie Schule Friedrich-Rückert-Gymnasium Hermann Staudinger-Gymn. Friedrich-List-Gymnasium Gymnasium Marktbreit Olympia-Morata-Gymnasium Olympia-Morata-Gymnasium St.Ursula-Schule Ort Ebern Erlenbach Gemünden Marktbreit Schweinfurt Schweinfurt Würzburg Betreuer der Gruppe: Prof. Dr. Hans-Georg Weigand, Dr. Robert Strich, Stefan Gaubitz Was steckt hinter dem Begriff Abbildung 1: „Fahrrad-Mathematik“? Immerhin haben Fahrräder auf den ersten Blick nicht so viel mit Mathematik zu tun, als dass sich eine Gruppe von sieben mathematikbegeisterten Schülern gut vier Tage damit beschäftigen könnte. Die Idee für dieses Projekt, sich intensiver mit den Spuren von Fahrrädern auseinanderzusetzen, kam Robert Strich, als er ein Bild (Abb. 1) sah, das eine gepflasterte schneebedeckte Einfahrt zeigt, in der sich deutlich zwei Radspuren abzeichnen. Es ergibt sich die Frage, ob es eine Möglichkeit gibt, anhand dieser Radspuren die Fahrtrichtung zu bestimmen, in die der Fahrradfahrer gefahren ist. Natürlich gibt es dazu auch eine kleine Geschichte, um das Problem zu veranschaulichen: Luisa befindet sich unter der Dusche, als der Postbote klingelt. Dieser hat ein Päckchen dabei, das Luisa sehnsüchtig erwartet. Leider ist der Postbote, nachdem er vergeblich geklingelt hat, schon weitergefahren, als sie zur Tür gerannt ist. Alles, was noch zu sehen ist, sind Fahrradspuren im Schnee (siehe Abb. 1). Soll Luisa nun nach rechts oder nach links laufen um der Boten noch einzuholen? Bei dem ersten Treffen am Dienstag suchen wir zuerst nach Anhaltspunkten, die wir aufgreifen könnten, um der Antwort näher zu kommen. Zur Vereinfachung des ohnehin schon kompliziert erscheinenden Problems gehen wir von Optimalbedingungen der Umgebung aus. Wir sind uns einig, dass es sicherlich von Vorteil wäre, zunächst das 68 Verhalten der Räder bei einem praktischen Abbildung 2: Versuch zu beobachten, damit wir daraus neue Erkenntnisse gewinnen können (und weil manche von uns nicht ganz von der Richtigkeit des Ausgangsbildes überzeugt waren). Um die Richtung des Fahrens bestimmen zu können, bietet sich womöglich eine genauere Beobachtung der beiden Schnittpunkte der Spuren an (vgl. Abb. 1). Hinzu kommt noch, dass man beabsichtigt, die beiden Radspuren den jeweiligen Rädern zuordnen zu können. Hier kommt jedoch nach kurzer Zeit der Einwand, dass das Hinterrad des Fahrrades genauso hinter dem Vorderrad hergezogen würde wie der Anhänger eines Autos, der ja bekanntlich bei Kurven diese immer etwas enger fährt als das ziehende Auto. Deshalb verdichtet sich bereits vor dem praktischen Versuch die Vermutung, dass das Hinterrad immer die kürzere Strecke zurücklegt. Da wir Verwirrungen vermeiden wollen, einigen wir uns darauf, den Begriff „Fahrrad“ für das Gesamtrad zu verwenden, Abbildung 3: während wir bei Vorder- und Hinterrad von V- und H-Rad sprechen. Nicht zu vergessen ist auch, dass sich, wie bereits erwähnt, vereinzelt Zweifel breit machen, ob die Kurve (Abb. 1) in dieser Form überhaupt realistisch und echt ist. Nichtsdestoweniger gehen wir davon aus, dass eine Abhängigkeit zwischen den Spuren existiert. Dabei müssen die Spuren (Graphen) nicht zwingend Funktionen sein, da sie auch Graphen von Relationen sein könnten. Ein neuer Aspekt kommt hinzu, wenn wir weiterhin davon ausgehen, dass die Rahmenlänge des Rades sich tangential immer an die Hinterradkurve anlegt und dadurch die Vorderradspur ergibt, weil beide am Rahmen fest fixiert sind (Abb. 2). Anschließend versuchen wir, verschiedene Kurven mit dem Fahrrad nachzufahren um daraus neue Erkenntnisse aus dem Verhalten der Räder zueinander gewinnen zu können. Dabei tauchen jedoch schon die ersten Probleme auf: Wo und wie macht man das am besten? Zumindest kann sich nun aber jeder davon überzeugen, dass das Bild möglich ist, da man deutlich sieht, dass die Fahrwege der verschiedenen Räder nicht identisch sind. Nun kommen wir auf die Idee, ein großes Koordinatensystem auf dem angrenzenden Parkplatz des Mathematikgebäudes aufzuzeichnen und langsam mit dem Vorderrad aufgezeichnete Funktionen abzufahren. Hierzu zeichnen wir etwa eine Parabel und den Graph einer Kosinusfunktion. Das Experiment wird aus dem dritten Stockwerk gefilmt, um die Kurven 69 dann anschließend auf den Computer übertragen und mit entsprechender Videosoftware analysieren zu können. Dabei beobachtet man die Bewegung des Hinterrades, welches wir zuvor mit Wasser angefeuchtet hatten, damit es eine sichtbare Spur hinterlässt (Abb. 3). Das Ergebnis halten wir ebenso fotografisch fest, um es, wie die Videoaufnahme, durch Grafikprogramme auszuwerten. Ein Problem kommt hinzu: Es fängt an zu regnen und damit ist unser Versuch mit dem angefeuchteten Rückrad schnell beendet. Mit dem erzeugten Bildmaterial können wir aber unsere Hypothese über das Verhalten des Hinterrades, dass es – in einer Kurve - immer einen kürzeren Weg als das Vorderrad zurücklegt, belegen. Des Weiteren hilft die Idee, die Schnittpunkte der Spuren zu betrachten, nur teilweise weiter. Wir sind uns sicher, dass der „erste“ Schnittpunkt, also der, der dort liegt, von wo der Fahrer kommt, kleinere Beträge der x- und y-Werte aufweist als der „zweite“, der beim Herausfahren entsteht. Leider lässt das Bild vermuten, dass der Postbote jeweils in die Kurve eingelenkt als auch nach der Kurve direkt wieder in eine andere Richtung umgelenkt hat, wodurch sich die Schnittpunkte in ihrer Position verschieben. Außerdem ist das Bild (Abb. 1) offensichtlich optisch verzerrt, so dass es schwierig wird, aus der Zeichnung reale Längen zu entnehmen. Immerhin bewahrheitet sich eine weitere Vermutung, und zwar, dass der Abstand der beiden zugehörigen Punkte von Vorder- und Hinterrad immer gleich lang ist. Logisch, weil der Radstand natürlich unveränderlich ist. Diese Erkenntnis dient als Grundlage für eine mathematische Lösung des Zusammenhangs zwischen Hinter- und Vorderradspur. Diese Formel nennen wir Tobiassche Formel oder auch H-V-Theorie, also die Formel, die es uns erlaubt, von der Hinterradkurve auf die des Vorderrades zu schließen (Abb. 4, 5). Abbildung 4: Abbildung 5: Während nun ein Teil unserer Gruppe versucht, diese Theorie von Tobias zu überprüfen, beschäftigen sich die anderen der Gruppe damit, das Bildmaterial der Sinus- und Kosinusfunktionen in unterschiedliche Programme wie Geogebra und Turboplotter zu integrieren. 70 Am darauffolgenden Tag beginnen wir wieder mit einer Besprechung und teilen unsere Gruppe wiederum auf: Eine Videogruppe, die neues Bildmaterial erstellen und dieses mit dem Videoprogramm Kinovea analysieren soll. Dabei achten sie besonders darauf, die Fehler des Vortages zu vermeiden, wie das Wackeln des Fahrrads oder schlecht verfolgbare Punkte. Mit Hilfe von Kinovea können wir sowohl die Kurve des H- als auch die des V-Rades verfolgen lassen (Abb. 6). Abbildung 6: 6: Abbildung Der andere Teil überprüft die Tobiassche Formel des Vortages grafisch auf Geogebra. Die Videogruppe verbringt den Vormittag damit, für weitere Videoanalysen des Fahrverhaltens, mit dem Fahrrad einen Halbkreis, eine Parabel, eine Kosinus-Funktion, sowie die Kurve auf dem Bild (Abb. 1) abzufahren. Hierzu werden die Kurven und ein Koordinatensystem wieder mit Kreide auf den oben genannten Parkplatz gezeichnet. Von einem Fenster im 3. Stock aus wird gefilmt. Diesmal ist die Kamera jedoch an einem Stativ fixiert, um ein Wackeln im Filmmaterial zu vermeiden. Je ein Punkt auf einem Rad wird mit einem leuchtenden Punkt markiert um die Auswertung zu erleichtern. Dabei fällt auf, dass aufgrund der Neigung des Fahrrads in der Kurve, die Bahnen in der Videoanalyse verzerrt dargestellt werden. Mit einiger Übung gelingt es das Fahrrad in den Kurven gerade zu halten und so diese Verzerrung zu vermeiden. Die andere Gruppe hat herausgefunden, wie die Position des Vorderrades anhand der Position des Hinterrades zu ermitteln ist. Deshalb versuchen wir ab jetzt, die aufgezeichneten Kurven mit dem Hinterrad anstelle des Vorderrades abzufahren, da die Formel anhand dieser Ergebnisse überprüft und veranschaulicht werden kann. Wir können für die verschiedenen Variablen und Faktoren, wie etwa die Rahmengröße des Fahrrads, „Schieberegler“ einbauen, um die Kurven mit wenig Aufwand ansehen, anpassen und verändern zu können. Nachdem wir das Problem rechnerisch gelöst haben, wenden wir uns der grafischen Lösung zu. Zwei Schülerinnen setzen diese direkt im Programm Geogebra in die Tat um und fügen sogar ein sich auf den Kurven bewegendes Fahrrad ein. 71 Am Donnerstag Vormittag prüfen wir zunächst, ob wir alle Punkte, die wir uns an den anderen Tagen vorgenommen hatten, abgearbeitet haben und ob noch jemand andere Ideen gesammelt hatte. Außerdem entwarfen wir unser Logo (Abb. 7). Abbildung 7: Nach vielen Überlegungen kommt die gesamte Gruppe auf Theorien zur Lösung der Ausgangsfrage, wohin der Postbote denn gefahren sei. (1) Die Videogruppe konnte anhand eines Videos nachweisen, dass man tatsächlich durch die Position der Schnittpunkte der Kurven des Hinter- und des Vorderrads auf die Fahrtrichtung schließen kann. Deshalb kann man davon ausgehen, dass der Postbote von rechts kam und nach links gefahren ist (vgl. Abb.1). (2) Außerdem erkennt die Geogebragruppe, dass der Abschnitt der beiden Kurven abhängig von der Fahrtrichtung ist: Dort, von wo der Fahrer kommt, ist der Abschnitt kleiner als da, wo er hinfährt. (3) Wenn man zwei Kurven hat, von denen eine die H- und eine die V-Kurve ist, kann man grafisch auch auf eine andere Weise leicht darauf schließen, welche Kurve welche ist. Dazu muss man einfach Tangenten anlegen. Wenn man von der Hinterradkurve ausgeht, dann muss man tangential stets dieselbe Strecke „nach vorne“ gehen, um zu einem Punkt der Vorradkurve zu kommen. Abb. 8 Abb. 9 Damit können wir nun unsere graphische Lösung der experimentell erhaltenen Kurve gegenüberstellen und sehen zufrieden die Übereinstimmung. 72 Abb. 10 Abb. 11 Die folgende Abbildung zeigt die V-Kurve, wenn die H-Kurve den Graphen einer Sinusfunktion durchläuft. Abb. 12 Dann wenden wir uns dem – wohl schwierigeren – Problem zu, ob wir auch aus der V-Kurve die H-Kurve bestimmen können. 73 Wir wenden hierzu die Methode der kleinen Schritte an. Ausgangspunkt ist das Fahrrad mit dem Radstand d, mit Valt als Ort des Vorder- und Halt als Ort des Hinterrads. Wenn sich nun das VRad von Valt nach Vneu bewegt, dann zieht es das H-rad hinter sich her. Wir nehmen an, dass sich das H-Rad dann im Punkt Hneu befindet, der auf der Verbindungsstrecke von Halt und Vneu im Abstand d von Vneu entfernt liegt (Abb. 12). Mit dieser Überlegung erstellen wir zum einen ein Computerprogramm in Java, und zum anderen ein Programm in Geogebra, um die Abbildung 13: Gesamtbewegung sukzessive schrittweise zu erhalten. Abb. 14 ist ein Ausschnitt aus dem JavaProgramm Abb. 14 Die folgenden Abb. 15, 16 und 17 zeigen die jeweilige „Schleppkurve“ des H-Rades, wenn sich das V-Rad auf einer Sinuskurve mit unterschiedlichen Frequenzen bewegt. 74 Abb. 15 Abb. 16 Abb. 17 75 Der Donnerstag Nachmittag und Abend dient vor allem der Ausarbeitung der Präsentation und des Protokolls. Der Freitag Vormittag diente zum einen der weiteren Vorbereitung der Präsentation, zum anderen konnten wir nun aber auch eindeutig feststellen, in welche Richtung der Postbote aus unserem Anfangsbild gefahren war. Legt man Tangenten an die innere Kurve des HRades, so muss man in gleichen Abstanden vom H- zum V-Rad kommen. Das ist aber nur der Fall – unter Berücksichtigung der Perspektive - wenn man von rechts nach links geht. Also ist der Fahrradfahrer von rechts nach links gefahren. Abb. 18 76 Impressum Herausgeber: Lehrstuhl für Didaktik der Mathematik der Universität Würzburg Emil-Fischer-Str. 30 97074 Würzburg http://www.dmuw.de Die Schülerprojekttage 2012 wurden von Dienstag, 17. bis Freitag, 20. Juli 2012 von der Fakultät für Mathematik und Informatik der Universität Würzburg durchgeführt und vom Lehrstuhl für Didaktik der Mathematik organisiert. M.R.; J.W. 07.2012 3 3 8 .