FH Graubünden PH Graubünden

Bienentanz

Algorithmisches Denken in der Primarschule

Zusammenfassung

Ziel dieses Bausteins ist es, eine weitere Vertiefung in die Logo-Programmierung vorzustellen, indem ein Algorithmus an einer Stelle gefunden wird, an der er zumindest nicht unmittelbar vermutet wird. Genauer geht es uns hierbei um den Schwänzeltanz der Honigbiene, mit welchem Kundschafterinnen den übrigen Bienen die Position einer Nahrungsquelle mitteilen.

Den Schwänzeltanz sollen die Studierenden mit der Turtle nachprogrammieren, die dann die Rolle der Kundschafterbiene einnimmt. Wir nehmen einen vereinfachten Tanz an, um die Programmierung übersichtlich zu halten.

Wir setzen hierbei voraus, dass die Studierenden das Konzept der Schleife kennen und bereits wissen, wie sie eigene Befehle mit Parametern definieren können. Generell werden Vorkenntnisse in der Programmiersprache Logo erwartet. Hinweise zur Literatur über die Grundlagen finden sich in den Quellenangaben.

Beispielsequenz

Honigbienen kommunizieren miteinander unter anderem, um einander auf Nahrungsquellen aufmerksam zu machen. Hierzu werden Kundschafterbienen ausgesendet, die auf Nahrungssuche gehen und – falls sie erfolgreich bei der Suche sind – die Position der gefundenen Nahrungsquelle ihren im Stock gebliebenen Kolleginnen mitteilen.

Abbildung 1 stellt das Prinzip vereinfacht dar: Die Honigbiene kommuniziert in unserem vereinfachten Modell im Wesentlichen zwei Dinge (Parameter) der Nahrungsquelle, nämlich

.bienentanz1.png.
Abbildung 1. Schematische Darstellung des Bienentanz
Die Biene tanzt dabei auf einer Wabe, indem sie eine Schlangenlinie läuft, sich dann nach links dreht und einen Halbkreis beschreibt, anschliessend dieselbe Schlangenlinie wie zuvor erneut abläuft, sich diesmal nach rechts dreht und wieder einen Halbkreis beschreibt und das Ganze schliesslich mehrmals wiederholt.

Die Distanz n hängt damit zusammen, wie lange die Biene benötigt, um die Schlangenlinie zurückzulegen und der Winkel α entspricht dem Winkel zwischen Futterquelle und Sonne, wobei die direkte Linie zur Sonne wiederum durch die Senkrechte auf der Wabe repräsentiert wird.

Aufgabe 1

Wir möchten damit beginnen, das Mittelstück des Tanzes umzusetzen. Allerdings wird dabei auf die Schlangenlinie verzichtet und die Biene (Turtle) soll stattdessen einfach eine gerade Strecke laufen. Die Strecke besitzt eine feste Länge von 200 und kann schneller oder langsamer zurück gelegt werden. Je grösser die Distanz zur Nahrungsquelle, desto länger benötigt die Biene, um die Strecke zu fliegen.

Öffnen Sie die Entwicklungsumgebung xLogoOnline (https://xlogo.inf.ethz.ch). Schreiben Sie einen Befehl tanzen, der einen Parameter :zeit erhält und zum Zurücklegen der Strecke mit der Länge 200 genau :zeit Sekunden braucht.

Verwenden Sie hierzu den wait-Befehl, bei welchem wir als Parameter in Hundertstelsekunden angeben, wie lange der Computer warten soll bis er den nächsten Befehl ausführt.

Testen Sie Ihr Programm für die Parameterwerte 1, 5 und 10.

Aufgabe 2

Als nächstes soll ein Halbkreis «getanzt» werden, um wieder am Ausgangspunkt der Schlangenlinie anzukommen.

Überlegen Sie sich hierzu gut, wie der Umfang eines Kreises mit einem festen Durchmesser (hier also 200) zu berechnen ist. Schreiben Sie daraus einen Befehl halbkreis. Die Zeit, die benötigt wird, um den Halbkreis zurüzulegen, ist nicht relevant und sollte dementsprechend mit Augenmass gewählt werden.

Aufgabe 3

Fügen Sie nun alle Schritte zusammen und erstellen einen Befehl bienentanz, der den ganzen Algorithmus zusammenfasst und dafür sorgt, dass die Turtle den Bienentanz entsprechend ausführt. Dem Befehl werden zwei Parameter :alpha und :zeit übergeben. Der Tanz soll 10 Mal ausgeführt werden.

Es darf dabei angenommen werden, dass die Sonne immer in der anfänglichen Blickrichtung der Turtle ist.

Lösungen zu den Aufgaben

Aufgabe 1

Die Strecke wird mit dem folgenden Befehl gezeichnet, wobei :zeit verwendet wird, um anzugeben, wie lange die Biene nach jedem Schritt wartet. Wenn der Wert von :zeit also beispielsweise 1 beträgt, so wartet die Biene 200 Mal jeweils 1/2, was insgesamt eine Wartezeit von 100 Zeiteinheiten entspricht. Logo arbeitet mit Hundertstelsekunden als Zeiteinheit. Das heisst, dass die Biene im obigen Fall also 100 Hundertstelsekunden (oder eine volle Sekunde) benötigt um die Strecke zurück zu legen. Die generelle Geschwindigkeit der Turtle sollte ausserdem auf das Maximum gesetzt sein.

Aufgabe 2

Da ein Kreis mit Durchmesser 200 einen Umfang von 200 · π besitzt, muss die Turtle insgesamt eine Strecke von 200 · π/2 laufen. Mit dem folgenden Teilprogramm wird diese auf 180 Schritte aufgeteilt, was dazu führt, dass nach jedem Schritt um ein Grad gedreht wird.

Aufgabe 3

Der gesamte Algorithmus kann wie folgt aussehen.

Hintergrundinformationen

Um die Turtle den Schwänzeltanz ausführen zu lassen, haben wir an vielen Stellen Vereinfachungen vorgenommen. Beispielsweise sind wir davon ausgegangen, dass die Biene ihren Tanz immer in der Horizontalen ausführt. Im Bienenstock hängen die Waben senkrecht. Die Bienen abstrahieren die Richtung zur Futterquelle, indem sie davon ausgehen, dass die Senkrechte nach oben die Richtung zur Sonne ist. Tanzt die Biene also senkrecht nach oben, bedeutet dies, dass die Futterquelle direkt in Richtung der Sonne liegt, der Winkel α also 0 ist. Sehr selten findet der Tanz zur Futtersuche auch in der Horizontalen statt. Beim Schwärmen ist es allerdings üblich, dass die Bienen auf der Bienentraube den zukünftigen Nistplatz mit einem in der Horizontalen getanzten Schwänzeltanz angeben.

Es werden während des Tanzes zur Lokalisierung einer Futterquelle noch weit mehr Information übermittelt. Die tanzende Biene gibt Proben des Futters ab und teilt damit die Art des Futters mit. Sie gibt ein lautes Summen ab, das mit den Flugmuskeln erzeugt wird, ohne dass die Biene fliegt. Der Schwänzeltanz ist also von deutlich höherer Komplexität als der programmierte Algorithmus suggeriert.

Didaktischer Kommentar

Eine Differenzierung kann vorgenommen werden, um die Schlangenlinie, die in Aufgabe 1 sehr einfach umgesetzt worden ist, detailierter umzusetzen. Werden beispielsweise kleine Halbkreise aneinander gereiht, wird es allerdings schwerer, die richtige zeitliche Verzögerung zu wählen bzw. kann diese dann nur nur approximiert werden. Ein Kompromiss könnte sein, die Turtle in einem Zickzack hin und her «wackeln» zu lassen.

Der Baustein enthält die folgenden Aspekte des algorithmischen Denkens.

Quellenangaben und Weiterführende Literatur

Abbildungsverzeichnis

Zurück PDF Übungen als PDF