Frage

Ich versuche, eine einfach zu erstellen -basierte Planer STRIPS. Ich habe die Grundfunktionalität zu berechnen getrennte Wahrscheinlichkeitspläne abgeschlossen, die ein Ziel erreichen, aber jetzt versuche ich, um zu bestimmen, wie diese Pläne zu aggregieren auf der Grundlage ihrer anfänglichen Aktion, um zu bestimmen, was die „overall“ beste Aktion zum Zeitpunkt t0 .

Betrachten Sie das folgende Beispiel. Dienstprogramm, begrenzt zwischen 0 und 1, darstellt, wie gut der Plan das Ziel erreicht. CF, auch begrenzt zwischen 0 und 1 ist, stellt die Sicherheit-Faktor oder die Wahrscheinlichkeit, dass der Plan der Durchführung in der gegebenen Dienstprogramm führt.

Plan1: CF=0.01, Utility=0.7
Plan2: CF=0.002, Utility=0.9
Plan3: CF=0.03, Utility=0.03

Wenn alle drei Pläne, die sich gegenseitig ausschließen, beginnen Sie mit der Aktion A1, wie soll ich sie aggregieren die Gesamt „Fitness“ zu bestimmen, für die Aktion A1 verwendet? Mein erster Gedanke ist es, die Sicherheit-Faktoren zu summieren, und mehr, dass durch den Durchschnitt des Dienstprogramme. Heißt das, richtig zu sein?

So ist mein aktuelles Ergebnis würde wie folgt aussehen:

fitness(A1) = (0.01 + 0.002 + 0.03) * (0.7 + 0.9 + 0.03)/3. = 0.02282

Oder soll ich die einzelne wahrscheinlich Dienstprogramme berechnen, und jene im Durchschnitt?

fitness(A1) = (0.01*0.7 + 0.002*0.9 + 0.03*0.03)/3. = 0.00323

Gibt es eine theoretisch fundierte Art und Weise?

War es hilfreich?

Lösung

Wenn Sie Aktion A1 nehmen, dann müssen Sie, welche der drei Pläne entscheiden zu folgen, die sich gegenseitig ausschließen. An diesem Punkt können wir berechnen, dass der erwartete Nutzen des Plans 1

E[plan1] = Prob[plan1 succeeds]*utility-for-success 
           + Prob[plan1 fails]*utility-of-failure
         = .01*.7 + .99*0 //I assume 0
         = .007

Ebenso für die anderen 2 Pläne. Aber nur weil Sie einen Plan auswählen können, den realen erwarteten Nutzen (was ich denke, ist, was Sie mit „Fitness“) von Maßnahmen zu ergreifen A1 ist

max(E[plan1],E[plan2],E[plan3]) = fitness(A1)

Andere Tipps

Ich denke, dass die Fitness-Funktion Sie sprechen, müssten auch alle, die Pläne betrachten, die als erste Aktion haben A1 nicht. Sie konnten alle wirklich gut sein, wobei in diesem Fall A1 tun, ist eine schlechte Idee, oder sie könnten in diesem Fall tun A1 sieht aus wie ein guter Schachzug schrecklich sein.

Ein Blick auf Ihre Ideen, macht die zweite viel mehr Sinn für mich. Sie berechnet den erwarteten Nutzen eines Plans gleichmäßig zufällig aus allen Plänen Kommissionierung, die mit A1 beginnen. Dies ist unter der Annahme, dass ein Plan entweder das gegebene Programm erreicht oder nicht vollständig. Beispielsweise erhält der erste Plan Dienstprogramm = 0,01 mit einer Wahrscheinlichkeit von 0,7 und erhält Dienstprogramm = 0 mit einer Wahrscheinlichkeit von 0,3. Dies scheint eine vernünftige Annahme; es ist alles können Sie tun, wenn Sie mit mehr Daten zu arbeiten.

Also hier ist mein Vorschlag: Let A1 alle Pläne sein, beginnend mit A1 und ~ A1 werden alle Pläne nicht-beginnend mit A1. Dann

F(A1) = fitness(A1) / fitness(~A1)

, wo Fitness ist, wie Sie es im zweiten Beispiel definiert.

Das sollte man ein Verhältnis von erwarteten Nutzen gibt für Pläne mit A1 gegen denjenigen beginnen, die dies nicht tun. Wenn es mehr als ein, A1 sieht aus wie eine gute Wirkung.

Wenn Sie in probabilistischer Planung interessiert sind, sollten Sie einen Blick auf dem POMDP Modell und Algorithmen wie Wert Iteration.

Edit:

Eigentlich sollte ich auf Markov Entscheidungsprozess (ohne PO). Es tut mir Leid.

Was sollten Sie wahrscheinlich für Ihr Problem zu tun ist, um den erwarteten Nutzen zu maximieren. Rufen Sie die Fitness dies.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top