‹ 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.   D. Rutschmann

    Es heißt Inbusschlüssel, nicht „Imbusschlüssel“.

  2.   citation_or_source_needed

    Genial!

  3.   VeroikaF

    ein Sortieralgorithmus :) davon gibt’s einige. Den zweiten kannte ich allerdings noch nicht. Im Grunde genommen sind Algorithmen eine Beschreibung, die entweder aus Berechnung wie z. B.

    int v;
    int z;

    int x = v + z;
    System.out.println(x);

    besteht. Int steht für Integer, also ein ganzzahliges Zahlenformat, wobei v und z so eine Art Platzhalter für Werte sind, die an anderer Stelle (…) eingegeben werden von uns z. B. Dann kommt die Berechnung mit dem Zielwert x, der sich aus v + z ergibt. Dieser Zielwert wird dann in int x gespeichert.
    Und das Ergebnis kann dann zusätzlich am Bildschirm ausgegeben werden (System…..).
    Der Sortieralgorithmus oben macht nix anderes zu vergleichen und zu schieben, was das Zeug hält: Angenommen, Sie geben eine Zahlenreihe ein 3, 5, 8, 2, 1 usw. ein. Dann schnappt sich der Algorithmus den -hier 3. Wert/Säule, „vermisst“ sie, also schaut, welchen Wert sie besitzt, und vergleicht den Wert mit den Werten/Zahlen der anderen Säulen. Und sobald das bekannt ist, wird alles, was kleiner ist auf die linke Seite der 3. Säule gepackt/geschoben, alles was größer ist, wird auf die rechte Seite gepackt/geschoben. Dann folgt der nächste Vergleich- und Sortier-Durchlauf jeweils für die linke und die rechte Seite usw. bis alles sortiert ist.
    Finde ich eine gute Idee, dass man so etwas macht.

  4.   Schlecht sitzender Anzug

    Das lösen von gleichungen beansprucht die selben hirnareale wie mit lego klötzchen bauen. Was ja auch einleuchtet: Objekte verschieben, austauschen, verwandeln …

  5.   selex128

    Da ist dem Autor ein kleiner Fehler bei der Bildunterschrift von Bogo Sört unterlaufen. Es sollte heißen: Wie sortiert man am besten Karten.

  6.   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.

  7.   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.

  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.   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.

  10.   nicht von hier

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

 

Bitte melden Sie sich an, um zu kommentieren.

Anmelden Registrieren