Kann eine Regelengine überschaubare und komplexe KI erzeugen?

7

Ich bin gerade dabei, eine KI-Dorfsimulation in Java zu erstellen. Nachdem ich eine einfache Regel-Engine für den Dialog implementiert habe, frage ich mich, ob dieses DSL für AI erweitert werden kann. Ich habe zuvor sowohl GOAP- als auch Verhaltensbäume implementiert, aber GOAP als verwirrend für den durchschnittlichen Benutzer angesehen. Verhaltensbäume können weiterhin eine Option sein.

In diesem Fall erwarte ich, dass die KI in der Lage ist, die Interaktionen zwischen Dorfbewohnern (die bereits im Regelsystem enthalten sind) zu steuern und die Ziele / täglichen Aktionen sowohl einzelner Dorfbewohner als auch des gesamten Dorfes zu verwalten. Die Maßnahmen könnten von der Sammlung von Ressourcen bis zur Entscheidung reichen, was in größerem Maßstab aufgebaut werden soll.

Ich habe jedoch Bedenken, ob ein Regelsystem Hierarchien oder viele komplexe Situationen verwalten kann. Es kann auch zu Interaktionen mit nicht technischen Benutzern kommen, daher ist Verständlichkeit wichtig.

Die derzeitige Regel-Engine erfasst eine Reihe von Fakten zu einem Ereignis, ordnet sie der besten Regel zu und führt eine Reihe von Aktionen aus.

Das Ergebnis der KI muss so komplex sein, dass es glaubwürdig ist. Zum Beispiel kann es viele konkurrierende Wünsche geben, sich zu entspannen, an einer dringenden Aufgabe zu arbeiten usw. Dies muss verwaltet und priorisiert werden können, wenn Aufgaben auftauchen. Eine dorfweite KI kann einzelnen Dorfbewohnern Aufgaben zuweisen, basierend auf ihren Fähigkeiten und der Dringlichkeit der Aufgabe. Es gibt zufällige Ereignisse, die die Priorität bestimmter Aufgaben ändern können. Mein Hauptanliegen ist, ob die Regelengine leistungsfähig ist, Aufgaben gut planen und auf dynamische Bedingungen reagieren kann.

Ist eine regelbasierte Engine für diese Art von KI wünschenswert?

Gozzen
quelle
1
"KI" ist ein so vages Konzept, weil es alles bedeuten kann, von "Auf den Spieler zugehen, wenn er sich in Reichweite befindet" über Fuzzy-Logik basierend auf Konversationsbäumen bis hin zur Crowd-Simulation. Was für eine KI? Haben Sie es versucht und es ist fehlgeschlagen? Haben Sie eine vollständige Spezifikation für das, was Ihre KI tun soll?
Tetrad
Ich habe ein wenig erweitert; Ich habe noch keine vollständige Spezifikation.
Gozzen
Sieht für mich immer noch ziemlich vage aus. Viel hängt davon ab, wie die Regeln aussehen, wie Sie sich zwischen konkurrierenden Regeln entscheiden, wie komplex die Ergebnisse sein müssen und wie Sie "überschaubar" und "Einfachheit" definieren.
Kylotan
Habe ein bisschen mehr hinzugefügt, kann morgen bei Bedarf vollständiger bearbeiten.
Gozzen
1
Was Sie nicht angegeben haben, wäre nützlich zu wissen, ob Ihre KI ihre Bewegungen realistischer planen muss oder ob sie je nach Situation reagieren muss. Jeder STRIPS-ähnliche Planer soll die Bewegungen der KI im Voraus planen und leidet unter dem Versuch, dem Planer die Welt zu beschreiben. Ein Verhaltensbaum soll es der KI ermöglichen, schnell auf eine sich verändernde Welt zu reagieren, hat jedoch keine Möglichkeit, die Bewegungen der KI im Voraus zu planen, da die KI ihre Entscheidungen möglicherweise ständig ändert.
David Young

Antworten:

1

Ja, eine Regelengine kann zumindest teilweise für komplexe KI verwendet werden. Leider sind Spiel-KI-Regel-Engines anscheinend eher selten. Die meisten meiner Google-Suchanfragen zu diesem Thema ergaben Ergebnisse, die nichts mit Spielen zu tun haben, oder nur Fragen zur Verwendung in Spielen (einschließlich dieser Frage). Ich habe nur einige Spiele gefunden, bei denen Regel-Engines verwendet werden.

Eines davon war ein Echtzeit-Strategiespiel namens HomeWorld 2 . Ein weiteres Echtzeit-Strategiespiel, das in minimalem Umfang eine Regel-Engine verwendet, ist AI War: Fleet Command . Die KI für dieses Spiel wird in dieser Reihe von Blog-Posts des Erstellers des Spiels ausführlicher beschrieben .

Ich empfehle Ihnen, eine relativ einfache regelbasierte Engine zu implementieren und mit Ihrem Spiel zu testen, um festzustellen, ob eine regelbasierte Engine für Ihr Spiel geeignet ist. Wenn es so aussieht, als würde es für Ihr Spiel funktionieren, können Sie es erweitern. Andernfalls können Sie es verwerfen und einen anderen Ansatz ausprobieren.

Gigggas
quelle