Greenfoot Reinforcement Learning: jetzt über Git verfügbar

(8 Kommentare.)

Ich habe jetzt endlich mein Greenfoot-Reinforcement-Material (siehe alter Blogeintrag, und die davor) aufgeräumt, vereinfacht und dokumentiert. Das habe ich zwar schon vor ein Tagen verkündet, aber jetzt gilt es wirklich. Und zwar ich habe das ganze Projekt nach Github Codeberg verlegt:

https://codeberg.org/HerrRau/GreenfootReinforcementLearning/#readme

Dort kann ich meine Verbesserungen aktuell halten und die Anleitung ständig erweitern. Sie beginnt so:

Das hier ist ein Greenfoot-Projekt mit mehreren eigentlich voneinander unabhängigen rudimentären Spielen: Ein einfaches Breakout, ein einfacheres Autorennen, ein Snake. Sie sind alle deshalb in einem Projekt, weil sie alle die gleiche zusätzliche Infrastruktur nutzen, um nämlich automatisierte Bots alleine oder gegeneinander spielen zu lassen. Diese Bots können durch KI-Agenten gesteuert werden (Reinforcement Learning) oder, insbesondere bei Snake, auch einen einfachen Algorithmus verwenden, wie er von Schülern oder Schülerinnen entwickelt werden könnte.

  1. Man kann sich das Greenfoot-Projekt herunterladen, und dann erst einmal einfache Versionen von Breakout, primitivem Autorennen und Snake spielen.
  2. Dann kann man die vorgegebenen KI-Lösungen für diese Spiele ausprobieren.
  3. Dann kann man den Rest der Anleitung lesen und versuchen herauszufinden, wie das überhaupt alles funktioniert, erläutert an einem Minimalbeispiel.
  4. Und zuletzt gibt es ein Beispiel für ein Labyrinth-Minispiel, für das es noch keine KI-Lösung gibt – die kann man dann selber zu schreiben versuchen, unterstützt durch die Kommentare im Code.

(Warum Github? Weil ich da schon ein Konto habe. Gerne ziehe ich anderswohin um; laut Informatik-Lehrplan der Oberstufe sollen die Schüler und Schülerinnen mit Versionsverwaltung arbeiten, das Kultusministerium stellt aber keine Infrastruktur zur Verfügung, sprich: einen git-Server. Könnte man da nicht etwas mit ByCS machen? Immerhin war neulich die Rede davon, dass die Schulen sich bald ministeriell geprüfte Lösungen dafür kaufen dürfen. Nachtrag: Probiere gerade Codeberg aus.)

Die Farbgebung beim Labyrinth ist bewusst gewählt; man könnte das Spiel ja noch erweitern (Wizard of Wor, wer’s noch kennt). Aber die KI tut sich schon jetzt bei vielen Settings nicht leicht, vielleicht ist auch hier ein stupider Algorithmus besser als ein künstlich intelligenter.

Im Moment sitze ich noch beim Training für eine einfache Rohversion von Tron: Deadly Discs. Und selbst auf einer arg reduzierten Miniwelt der Größe 18 x 12 dauert der Lernvorgang sehr, sehr lange – da merkt man richtig, wie viele Ressourcen so ein Training erfordert.


Beitrag veröffentlicht am

in

Kommentare: 8

Kommentare

8 Antworten zu „Greenfoot Reinforcement Learning: jetzt über Git verfügbar“

  1. Norman

    👍👍

    Hier fliegen gerade zwei Alternativen durchs Netz:
    Forgejo
    Codeberg

  2. Genau so etwas suchte ich, Norman, vielen Dank!

  3. Norman

    Ein Erfahrungsbericht wäre sehr willkommen!

  4. Viel Erfahrung kann ich noch nicht beisteuern, aber ich habe das Projekt inzwischen nach Codeberg umgezogen: https://codeberg.org/HerrRau/GreenfootReinforcementLearning/#readme

    Funktioniert alles wie gewohnt. Das Readme editiere ich online; pull, commit und push habe ich mir in eine Batch-Datei geschrieben, weil ich zu faul für die Kommandozeile bin. Die Commit-Message steht allerdings hardcodiert in der Batch-Datei, da sollte ich mir vielleicht etwas ausdenken. Ein Wiki scheint es anders als bei Github nicht zu geben, oder vielleicht muss man das einschalten; nie verwendet.

    Github mit SuS ist umständlich, ich muss dazu die im Menü gut versteckten personal access tokens (fine-grained) finden. Aber damit können SuS an einzelnen Projekten mitarbeiten, ohne einen Account zu haben. Bei Codeberg/forgejo scheint es diese Tokens nicht in fine-grained zu geben, das heißt, ich kann sie nicht auf ein einzelnes Projekt begrenzen, sondern sie gelten für den ganzen Account und alle Projekte darin. Das ist für die Schule schlecht. Deshalb habe ich auch noch nicht getestet, ob der überhaupt mit BlueJ zusammenarbeitet – zum Einstieg würde man Git innerhalb von BlueJ verwenden, abgespeckt und vereinfacht, nicht über Kommandozeile oder GUI.

  5. Norman

    Ich hatte mich schon über die vielen „identischen“ Commits gewundert… Muss eine Batch-Datei nicht auch auf der Kommandozeile aufgerufen werden?

    Ich sehe aber richtig, dass ein Import, also die Übernahme der kompletten Historie eines Repositories nicht möglich ist? Also nur eine neues Repository angelegt wird, und ab diesem Zeitpunkt eine neue Historie geschrieben wird?

    Erstaunlich, dass es nur globale Zugriffstokens gibt, das wäre für mich auch wichtig.

  6. >Muss eine Batch-Datei nicht auch auf der Kommandozeile aufgerufen werden?
    Nein, geht auch per Doppelklick im Windows-Explorer, zum Beispiel.

    >Ich sehe aber richtig, dass ein Import, also die Übernahme der kompletten Historie eines Repositories nicht möglich ist? Also nur eine neues Repository angelegt wird, und ab diesem Zeitpunkt eine neue Historie geschrieben wird?
    Ich weiß es nicht, aber wohl nicht. Es gibt die option „migrate from“, zum Beispiel github, dann kann man sogar doch das Wiki mitnehmen, und Issues, aber das Repository wird auch da einfach geklont – und da geht ja die History nicht mit, nehme ich an.

  7. Norman

    Hachja, den guten alten Doppelklick gibt’s ja auch noch.

    In die Batch-Datei sollte sich doch ein (Windows-)Dialog für die Commit-Message einbauen lassen? Auf jeden Fall mit einem PowerShell-Script.

  8. Geht auch mit simpler Batch-Datei, ich musste nur eben die Syntax heraussuchen. Danke für die Anregung!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert