‹ Alle Einträge

Algorithmen à la Ikea

 
Das ist nicht die Bauanleitung für einen PAX-Schrank, sondern für einen Algorithmus © Screenshot/ IDEA

Ein Algorithmus ist eigentlich eine mathematische Anleitung, um etwas auszurechnen. Manche Mathematiker sehen das mit dem Ausrechnen aber nicht so eng: Für sie sind Algorithmen regelrechte Mathe-Bastelanleitungen, für Rechenergebnisse oder andere Objekte aus der Mathematik. Da liegt es nahe, an Handwerk zu denken, an den Bau von Möbeln – und an Ikea-Bauanleitungen für Pax, Billy oder Metod.

Sebastian Morr und Sándor P. Fekete sind offenbar genau solche Mathe-Bastler. Fekete ist Professor an der TU Braunschweig, Morr freischaffender Informatiker und ehemaliger Student Feketes. Zu zweit hatten sie die Idee, einige mathematische Algorithmen in die Bildersprache von Ikea-Bauanleitungen zu übersetzen. Das Ganze nennt sich dann IDEA. So entstanden Anleitungen zu "Kwick Sört" oder "Merge Sört", Sortieralgorithmen, die Fachleute bisher als "Quicksort" und "Merge Sort" kannten.

Es gibt aber auch eine Anleitung zu "Bogo Sört", einem ziemlich dämlichen Sortieralgorithmus: Um damit ein Set Spielkarten zu sortieren, mischt man bei "Bogo Sört" einfach so lange, bis die Karten zufällig in der richtigen Reihenfolge sind. Mathematisch gesehen ist das ein Algorithmus, praktisch ist es nicht. Daher wird der Anleitung eine Warnung mit zwölf Sanduhren vorangestellt. Die Algorithmiker der TU Braunschweig erklären aber auch, wie die Public-Key-Verschlüsselung funktioniert ("Public Key Krüpto") oder wie man das Haus vom Nikolaus und andere "Graphen" in einem Strich zeichnen kann ("One Ströke Dråw").

Wie mischt man am besten Karten? Nach dem "Bogo Sört"-System. Aber Vorsicht, das könnte dauern © Screenshot/ IDEA

"Wir wollen zeigen, dass Algorithmen mehr als Textzeilen sind – oder irgendwelche geheimnisvolle Dinge, die unser Leben bestimmen", sagt Sándor Fekete über das Projekt. Doch nicht immer ist es einfach, die Bildsprache zu entschlüsseln. Wer "One Ströke Dråw" wirklich verstehen will, braucht ohne Vorwissen vermutlich länger als für den Zusammenbau eines Pax-Kleiderschranks. Das liegt auch daran, dass mathematische Algorithmen eben doch mehr sind als Ikea-Anleitungen: Bei Ikea ist der "Input" exakt bis zur letzten Schraube vorgegeben, mathematische Algorithmen kann man dagegen immer auf viele verschiedene mögliche Eingabeszenarien anwenden. Das macht sie kompliziert. Immerhin kommt man ohne IKEA-Imbusschlüssel aus.

 


15 Kommentare

  1.   hobbeshunter

    Auf die Gefahr hin, dass das schon jemand gepostet hat: Die Darstellung von Quicksort ist mKn nicht korrekt. Da die beiden Laufvariablen so lange inkrementiert werden, bis das Element, welches sie indexieren, größer/ kleiner als das Pivotelement ist, müsste in Bild 5 das größte Element (zuanfangs an Stelle 0) ganz rechts sein.

  2.   uboot

    So ähnlich habe ich das auch gemacht, wenn Mathematik partout nicht in meinen Schädel wollte. Mit lauter Pfeilen und Symbolen. Schließlich hat es geholfen. So eine Mühe! Für Zeug, was ich nicht brauche und daher längst vergessen habe!
    Aber das schlimmste ist: Zeug, daß ich nie gebraucht habe und nie brauchen werde, hat sich nach nur 3x Lesen ins Hirn gebrannt und ist jetzt, 30 Jahre später, noch jederzeit abrufbar!

  3.   ub01

    @Ocatene, auch das kam mir sofort in den Sinn. Die IDEA Seite hat aber nicht nur Sortieralgorithmen. Ich finde es eine sehr gelungene Idee.

  4.   Wiesflecker

    Ich denke, dass dieser Ansatz didaktisch (Hoch-)Schule machen sollte. Viele Menschen, denen Mathematik ein Horror ist und mit denen ich sprach,vermittelten mir oft, dass sie in den Formalismen des Fachs keine Handlungsanweisungen oder „Legoklötze“ sehen, die man verschieben oder drehen und wenden kann, sondern einen Wust aus Zeichen, die in ihnen keine Bilder, Formen oder Zusammenhänge heraufbeschwören. Ich habe viele Gleichungen in der Schulzeit zB nicht verstanden, da ich die Variablen als einzelne Phoneme/Buchstaben interpretierte und mein Hirn den Schritt zu (X=Platzhalter für alles Mögliche) einfach nicht gehen wollte. X war „iks“ – Ein Lautwert oder Buchstabe in einem für mich aussagelosen Konvolut an anderen Sonderzeichen. Erst, als ein Lehrer begann, Gleichungen und Funktionen graphisch zu interpretieren (über das zeichnen im Koordinatensystem hinaus, ähnlich wie im Artikel) hat es geklickt.

  5.   Octane

    Oder man schaut sich mal das altbekannt Video zur Visualisierung von verschiedenen Sortierverfahren an.

  6.   nicht von hier

    Genial, so kann man Menschen für Mathe begeistern. Vielleicht sollten einige Hochschulen sich die Folien borgen.

  7.   joaber

    Super – das Prinzip von Quicksort kommt mmN in ziemlich 30 Sekunden rüber. Genial gemacht, nur der Rekursionsschritt ist nicht ganz so klar erklärt.

    Würde mich über mehr solcher Visualisierungen freuen, ich werde mal suchen.

  8.   BeRootOrReboot

    Anmerkung zum Artikel und zu #5: BOGO SÖRT ist tatsächlich ein Sortieralgorithmus, der allerdings vergleichsweise ineffizient beim Sortieren ist. Korrekterweise ist der hohe zu erwartende Zeitaufwand als Warnung mitgeteilt worden.

    Der Autor möge sich die IDEA-Anleitung nochmal genau anschauen (vor allem den Schritt 4, der eine Fallunterscheidung implementiert) und dann die Bildunterschrift anpassen.

    Der Verbesserungsvorschlag für die Bildunterschrift aus dem Posting #5 ist jedoch selbst noch nachbesserungswuerdig, denn es handelt sich bei BOGO SÖRT nicht um „die beste Art, Karten zu sortieren“, sondern nur um eine Möglichkeit.

    In einer Gesellschaft, die „Zeit ist Geld“ bei der Bewertung von Algorithmen und Handlungsentscheidungen zugrundelegt, wird dieser Algorithmus als eher nachteilig angesehen werden.

  9.   BeRootOrReboot

    Anmerkung zum Artikel und zu #5: BOGO SÖRT ist tatsächlich ein Sortieralgorithmus, der allerdings vergleichsweise ineefizient beim Sortieren ist.

    Der Autor möge sich die IDEA-Anleitung nochmal genau anschauen (vor allem den Schirtt 4, der eine Fallunterschiedung implementiert) und dann die Bildunterschrift anpassen.

  10.   VeroikaF

    „“Wir wollen zeigen, dass Algorithmen mehr als Textzeilen sind – oder irgendwelche geheimnisvolle Dinge, die unser Leben bestimmen“, sagt Sándor Fekete über das Projekt.“

    Man könnte dazu vielleicht anmerken, dass der Algorithmus selbst ja nichts bestimmt, sondern er ist das Ergebnis von 1 bis x Software-Entwicklern, die ihren Lösungsweg/Denke „zu Papier“ gebracht haben.
    Dabei werden z. B. für Werte/Zahlen etc., die eingegeben werden, Variablen verwendet – d. h. man hat einen „Quellcode“, der den Lösungsweg darstellt, und kann diesen für viele unterschiedliche Eingaben verwenden und das Ergebnis wird immer auf die gleiche Weise z. B. berechnet: Ergebnis = Eingabe x + Eingabe y; wobei das Ergebnis nur eben abhängig von den jeweiligen Eingaben, die gemacht wurden, ist. Bei Internet-Anwendungen/Websites haben wir im Hintergrund also so einen Algorithmus/Quellcode und jeder Rechner, der die Seite aufruft, verwendet diesen mit den individuellen Eingaben eines jeden Nutzers.

    Es gibt Algorithmen, mit denen man
    …Berechnungen ausführt wie y = x + v, oder
    „Optionen“ auswählen kann (z. B. WENN ich diese oder jene Eingabe mache, DANN möchte ich das sehen/angezeigt bekommen/berechnen dürfen,
    oder z. B. WENN diese oder jene Angabe über mich in einer Datenbank gespeichert ist und diese automatisch abgerufen wird, sobald ich eine „Webseite“ öffne oder einen Button klicke, DANN darf ich (nur) das und jenes angezeigt bekommen/verwenden),
    Daten z. B. in Tabellen/Datenbanken abspeichern kann oder abrufen kann,
    Daten zusammenführen/kombinieren/auswerten kann wie z. B. der Vergleich der Säulen im oberen Bild,
    usw.

    Lösungswege bzw. Herangehensweisen gibt es je nach „Problem“ viele, d. h. z. B. auch wenn die Software A die gleichen Funktionen wie B hat, dann muss der Code nicht unbedingt identisch sein. Es gibt auch unterschiedliche Programmiersprachen; die jeweils Eigenheiten besitzen, ähnlich wie Fremdsprachen.

    Das Schwierige in der Programmierung besteht unter anderem darin, dass man einem Computer alles bis ins Kleinste Detail erklären muss: Beispiel, man will einen Kuchen backen. Ganz nebenbei bemerkt ein Mensch, dass vielleicht die Ofentür zu ist bevor man den Kuchenteig reinschiebt oder dass sich noch etwas im Backofen befindet. Ein Computer macht das nicht; ihm muss alles explizit beschrieben werden.

    Zudem zeigt es auch, wenn man Software entwickelt und Fehler in Kauf nimmt, ist es in manchen Umfeldern mitunter nicht so schlimm, in anderen aber wieder schon. Es gibt da so einen Begriff – good enough technology. Also Software, die für den Betrieb okay ist, aber eben noch nicht ganz ausgefeilt, weil man vielleicht erst mal schauen möchte, wie die Software auf dem Markt ankommt oder der Finanzierung aus wirtschaftlichen, strategischen, o. ä. Gründen gedimmt ist etc. Wenn es jedoch um z. B. personenbezogene Daten geht, dann sieht es anders aus – beispielsweise, wenn eine Bank Daten von einer Datenbank in die nächste „umzieht“ und dabei Daten verloren gehen bzw. abgefischt werden und dann plötzlich Kunden auf ihren Abrechnungen seltsame Einkäufe stehen haben. Oder wenn Hacker persönliche Daten aus Sozialen Plattformen auslesen und diverse Dinge damit anstellen usw.

 

Bitte melden Sie sich an, um zu kommentieren.

Anmelden Registrieren