| Thema: |
|
||
| Autor: | token | ||
| Datum: | 14.10.25 15:21 | ||
| Antwort auf: | Kreisläufe und Kreislaufunterbrecher von Pfombo | ||
>So, das sind nur BEISPIELE. Doch aufbauend auf diesen Beispielen kann man nun selbst mal nachdenken, was es noch so gibt, oder eben Begriffen aus dieser Antwort nachgehen. Als Mathe-Noob hab ich natürlich keine Ahnung von Rekursion, aber hey, es klingt interessant, ich schlags mal nach. Oder es findet sich hier ein Informatiker, der aufklären kann :) (Edit: Ok, Rekursion ist krass. Schade, dass ich so schlecht in Mathe bin [https://de.wikipedia.org/wiki/Rekursion)] > Ich werde jetzt nicht dein Chatprotokoll lesen und schauen ob dich AI darauf aufmerksam gemacht hat dass die Rekursion trotz sich im Rekursivverfahren wiederholender Elemente kein Kreislauf im strengen Sinne ist, und dass das was du womöglich als Unterbrecher verstehst, inhärent in einer Rekursion mitdefiniert werden muss damit die Rekursion als Problemlöser überhaupt funktioniert. Du kennst meine Ansicht zu diesen Protokollen und deinem Vorgehensmodell, ich kenne deine, belassen wir es dabei ;) Zur Rekursion mag ich dennoch paar Sätze schreiben, einfach weil das was ist wo ich ein für mich sehr spannendes Metathema sehe. Nämlich das unlocken neuer Features im eigenen Gehirn wenn es um Denkweisen geht. Ich hatte ja schon im AI-Thread geschrieben dass man nun dahin geht echte Denkmodelle und Denkstrategien in den AIs zu modellieren. Also statt diesen Wahrscheinlichkeitsbäumen wirklich zielgerichtete Verfahren, Dinge, die wir gemeinhin als echtes Denken titulieren. Und ich hatte auch geschrieben, dass viele, aber nicht alle dieser Denkstrategien, schon in uns drin stecken, so dass wir das selbst als Kinder intuitiv anwenden, auch wenn uns niemand beigebracht hat so vorzugehen. Also sind wir zwar nicht so wie gewisse Tierarten die schon bei Geburt mit fertigen Programmen rauskommen, wir müssen bspw. sowas wie das Gehen erst üben und lernen, aber wir sind auch kein weißes Blatt Papier sondern können ebenfalls Dinge von Geburt an. Unser krassestes Feature ist jedoch dass wir unser Repertoire auch erweitern können. Und Rekursion ist etwas wo ich sagen würde, das steckt in der Regel eben nicht intuitiv in uns drin. Aber das Konzept so zu verstehen dass man lernt es selbst zu verwenden ist dann eine Art Genichiro-Moment des Denkens. Wie in Sekiro gibt es ja das Game das man vor Genichiro spielt, und das Game das man nach Genichiro spielt. Die mechanics die man vorher und nachher hat sind die gleichen, es wird kein neuer Skill im Game freigeschaltet, sondern eine Form von Erkenntnis im Kopf die deine Spielweise verändert/bereichert, dir neue Instrumente an die Hand gibt. Und ähnlich sehe ich das beim Denken mit dem Verständnis von Rekursion, ein Genichiro-Moment in der Rübe der neue Fähigkeiten freischaltet, wo du wenn du vorher und nachher auf ein und die gleiche Problemstellung schaust, gegebenfalls etwas darin erkennst was du vorher noch nicht sehen konntest. Aber was ist das eigentlich und warum ist es (imo) sehr unintuitiv so zu denken, so Problemstellungen zu lösen? Und davon gehe ich aus dass es das ist, ich kenne niemanden der bei dieser Lösungsstrategie aus dem Stand sagt, ist doch selbstverständlich, hab ich schon immer so gemacht. Sondern jeder bei diesem Konzept erstmal ein Brett vorm Kopf hat wenn es darum geht das Konzept zu verstehen, dessen Mächtigkeit für spezifische Problemstellungen zu begreifen, und dieses Instrument dann selbst für spezifische Problemstellungen anzuwenden. Verbildlichen wir mal das Verfahren anhand eines Beispiels was kein guter Anwendungsfall für Rekursion ist, aber die Vorgehensweise hoffentlich verständlich illustrieren kann. Rekursion verwendet eine Strategie die wir out of the box können. Sie zerlegt ein komplexes Problem in viele deutlich einfachere Teilprobleme bis zu einem gewissen Kern der trivial lösbar ist. Und ist man unten bei diesem Kern angekommen wird das wieder nach oben gereicht. Was es unintuitiv macht ist nicht das "was" es tut (Probleme lösen indem man das Problem in Teilprobleme zerlegt), sondern das "wie". Nämlich durch Selbstreferenzierung. Folgendes Szenario. Deine Mutter kocht dir Suppe, aber die Suppe schmeckt nicht. Aber deine Mutter ist streng. Du musst den Teller aufessen. Und du hast nun eine bestimmte Superkraft. Du kannst dich klonen. Du kannst Kopien von dir selbst erzeugen. Deine Mutter scheppert dir also den vollen Teller auf den Tisch und sagt, Pfombo, iss den Teller auf! Du probierst einen Löffel und denkst BÄH, aber erinnerst dich deiner Superkraft und hast eine schlaue Idee. Du erzeugst einen Klon von dir selbst und schiebst ihm deinen Teller rüber und sagst, Pfombo, iss die Suppe auf. Dieser Klon von dir ist aber ein Klon von dir, der macht das gleiche wie du. Er probiert einen Löffel, denkt sich BÄH, und hat dann eine schlaue Idee. Er erzeugt einen Klon von sich, schiebt diesem den Teller rüber und sagt, Pfombo, iss die Suppe auf. Irgendann ist der Raum voller Pfombos, die sich immer weiter geklont haben, hierbei hat aber jeder Pfombo nur genau einen Klon erzeugt. Jetzt haben wir schon den neunzigsten Pfombo der den Teller Suppe vom neunachtzigsten Pfombo rübergeschoben bekommen hat. Da schon 89 Pfombos einen Löffel ausgelöffelt haben ist der Teller nun leer. Pfombo 90 denkt sich geil, aufgegessen, ruft aus, ich bin ein braver Junge!, und schiebt den Teller zu Pfombo89. Und jetzt löst sich Pfombo90 wieder in Luft auf, er hat seinen Auftrag erfüllt. Pfombo89 ruft nun ebenfalls aus, ich bin ein braver Junge, und schiebt den Teller zu Pfombo88 der ihn erzeugt hat. Usw. Es macht Puff Puff Puff, nach und nach verschwinden die Pfombos und schieben ihren leeren Teller zu dem Pfombo der sie erzeugt hat. Und irgendwann landet der Teller bei dir, und du rufst aus, ich bin ein braver Junge, und Mama ist stolz. Das ist noch kein wirklich sinnhaftes Beispiel für eine rekursive Problemlösung, sondern ziemlich umständlich. Aber es dient ja nur der ersten Veranschaulichung. Wichtig sind hierbei folgende Details. Die Pfombos werden sich immer weiter klonen bis ein gewisser Zustand erreicht ist. Nämlich das Teller leer ist. Alle Pfombos sind im Raum bis die Aufgabe erfüllt ist. Hierbei gilt, in dem Moment wo ein Pfombo einen Klon erzeugt und ihm seinen Teller gibt, ist die Aufgabe von ihm noch nicht erfüllt. Erst wenn dieser Pfombo seinen Teller von seinem Klon zurück bekommt und diesen Teller ebenfalls an denjenigen gegeben hat der auch ihn geklont hat, hat er Feierabend und kann sich in Luft auflösen. Und schon sehen wir was für rekursive Problemlösung elementar wichtig ist. Es muss garantiert sein dass das Zerlegen des Problems so wie es zerlegt wird absolut garantiert dass irgendwann ein Endzustand erreicht ist. Das Problem in seiner quasi einfachsten Form, so dass der letzte Pfombo diesen Zustand erkennt und ihn dann auch löst. Es muss garantiert dass es im Vorgehensmodell zu diesem Basiszustand kommt, und dass dieser Zustand dann auch erkannt und gelöst wird. Weil was würde passieren wenn nicht? Angenommen du würdest nur am Löffel riechen und dir denken, bäh, mach ich nicht, ich erzeuge einen Klon von mir und der soll das essen. Was würde passieren? Es wäre das Ende der Welt! Denn jeder Klon von dir würde das gleiche machen, sich weiter klonen und den Teller rüberschieben. Es würde einfach nicht aufhören. Irgendwann wäre der ganze Planet überlaufen von Pfombos die nicht aufhören sich weiter zu klonen und wir würden alle sterben. Aus großer Macht folgt große Verantwortung. Okay, weg von diesem Quatschbeispiel das nur die Vorgehensweise illustrieren sollte, hin zu einem Beispiel wo es anfängt Sinn zu ergeben und Eleganz zu entwickeln. Du bist nun in der Schule und im Matheunterricht. Dein Lehrer erklärt die Fakultätsfunktion. Was ist die Fakultät von 2? 1*2=2. Was ist die Fakultät von 3? 1*2*3=6. Was ist die Fakultät von 4? 1*2*3*4=24. Du hast das Muster verstanden und fühlst dich schlau. Jetzt gibt dir dein Lehrer ein paar Rechenaufgaben für Fakultäten. Und du hast direkt die Schnauze voll, die erste Aufgabe ist die Fakultät von 20 auszurechnen. An-stren-gend, soviele Multiplikationen. Aber dann schaust du auf die Fakultätsformel. Die Fakultät von x ist das gleiche wie x mal die Fakultät von x-1. Und jetzt erinnerst du dich deiner Superkraft und merkst, hey, ich muss nicht alles selbst ausrechnen, alles was ich rechnen muss ist 20 mal die Fakultät von 19. Also erzeugst du einen Klon von dir und sagst ihm, ey Pfombo, was ist eigentlich die Fakultät von 19? Das bist jedoch du, und der macht das gleiche, er sieht, die Fakultät von 19 ist 19 mal die Fakultät von 18. Und erzeugt einen weiteren Pfombo und fragt diesen, ey, was ist die Fakultät von 18? Und das geht so weiter. Irgendwann sind wir beim letzten Pfombo angelangt, und der wird gefragt, was ist die Fakultät von 1? Und er sagt, das ja einfach, das ist 1, gibt die Antwort und löst sich in Luft lauf. Und nun wird analog Zwischenergebnis für Zwischenergebnis von einem Pfombo zum anderen wieder hochgereicht. Und jeder Pfombo muss nur noch genau eine Multiplikation durchführen und der erste Pfombo rechnet dann das korrekte Ergebnis aus. Diese Beispiele sollen jedenfalls diese grundsätzliche Idee hinter dem eigentlichen Verfahren illustrieren. Eine Funktion die sich selbst aufruft und hierbei so strukturiert ist dass sie bei diesen Selbstaufrufen ein Problem zerlegt bis ein trivialer Endpunkt erreicht ist, und dann wieder den Rückwärtsgang einsetzt und die ganzen aufeinander aufbauenden Teilergebnisse wieder zum Ursprung zurück spielt. Aber das ist nur das rein theoretische Konzept. Die Rekursionen die aufzeigen was das für ein mächtiges Werkzeug sein kein und welche Eleganz den dahinter stehenden Lösungsstrategien teils inne wohnt, wo man wirklich komplexe Problemstellungen in ein sehr übersichtliches und vermeintlich einfaches Lösungsmodell übersetzt bekommt, bildet das nicht ab. In obigen Beispielen sind die Rekursionsaufrufe zum einfacheren Verständnis einfach eine Linie. Tatsächlich bilden diese Klonnetzwerke aber in der Regel keine Polonäsen sondern riesige verzweigte Verästelungen. Es gibt keine Regel dass ein Klon nur einen Klon von sich erzeugt, er kann auch mehrere Klone von sich erzeugen und ihnen unterschiedliche Teilaufgaben mitgeben. Das vielleicht populärste Beispiel für eine rekursive Lösung aus der Informatik ist vermutlich Quicksort. Ein Sortieralgorithmus der rekursiv vorgeht. Das sind ganz wenige Zeilen Code, wo wir wieder bei sowas wie Eleganz wären. Zu verstehen warum das überhaupt funktioniert und wie, ist imo schon gar nicht mal so einfach wenn man wenig Erfahrung mit dem Konzept hat. Aber dann auch noch zu verstehen warum es so schnell ist, da wird es schon äußerst mathematisch. Dabei ist das im Grundsatzverständnis "was ist die Idee hinter solchen Konzepten" aber noch nicht das was ich mit Genichiro-Moment meine. Was ich darunter verstehe, und da komm ich ja her warum mich das auf Metaebene so fasziniert, ist, dass sowas komisches nicht nur in seiner Funktionsweise zu verstehen, sondern so dass man lernt das auch selbst als Lösungsstrategie anzuwenden, in meinen Augen eine Art bewusstseinsverändernde Erfahrung sind. Es gibt eine Form von "vor Genichiro" und eine "nach Genichiro". Das Spiel davor und danach ist das exakt gleiche. Das was anders ist, ist man selbst, man hat eine Form von Erkenntnis wo man im Anschluss Dinge anders sieht, Dinge erkennt die man vorher nicht erkannt hat. In Richtungen denkt, in die man vorher nicht gedacht hat. Aber, Genichiros sind ein dickes Brett. Es gibt keine Abkürzung. Da muss man halt durch. Es geht da nicht darum etwas in der Theorie oberflächlich zu begreifen. So wie du hundert mal Alice im Wunderland lesen kannst, und das nicht mal im entferntesten dieser Bewusstseinsverändernden Erfahrung nahe kommt wenn man dann selbst mal so ein Zeug schmeißt ;) Aber jut, da du auf diese dicken Bretter ja keinerlei Lust hast, verzichte ich darauf dir eine kleine Rekursionshausaufgabe mitzugeben ;) :-* |
|||
| < antworten > | |||