質問

シンプルを作成しようとしています ストリップ- ベースのプランナー。目標に到達する個別の確率的計画を計算するための基本的な機能を完了しましたが、今ではこれらの計画を最初のアクションに基づいて集約する方法を決定し、時間T0で「全体的な」最良のアクションが何であるかを決定しようとしています。 。

次の例を考えてください。 0から1の間で囲まれたユーティリティは、計画が目標をどれだけうまく達成しているかを表しています。 0と1の間で制限されたCFは、確実性要因、または計画を実行すると与えられたユーティリティにつながる確率を表します。

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

相互に排他的な3つの計画すべてがアクションA1から始めた場合、アクションA1を使用するための全体的な「フィットネス」を決定するためにそれらを集約するにはどうすればよいですか?私の最初の考えは、確実性要因と、それを平均してユーティリティの複数を合計することです。それは正しいようですか?

だから私の現在の結果は次のようになります:

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

または、個々の可能性のあるユーティリティを計算し、それらを平均する必要がありますか?

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

理論的に健全な方法はありますか?

役に立ちましたか?

解決

アクションA1を使用した場合、3つの計画のどれをフォローするかを決定する必要があります。これは相互に排他的です。その時点で、プラン1の予想されるユーティリティは

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

同様に、他の2つの計画について。しかし、あなたは1つの計画しか選択できないので、アクションA1を取ることからの実際の期待されるユーティリティ(私はあなたが「フィットネス」とはどういうことかと思います)はです

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

他のヒント

あなたが話しているフィットネス関数は、A1を持たないすべての計画を最初のアクションとして考慮する必要があると思います。それらはすべて本当に優れている可能性があります。その場合、A1を行うことは悪い考えです。または、A1を行うことは良い動きのように見えるかもしれません。

あなたのアイデアを見ると、2番目のアイデアは私にとってはるかに理にかなっています。 A1で始まるすべての計画から、計画をランダムに均一に選択することの予想されるユーティリティを計算します。これは、計画が指定されたユーティリティを達成するか、完全に失敗するかのいずれかであるという仮定の下にあります。たとえば、最初の計画では、確率0.7でユーティリティ= 0.01を取得し、確率0.3でユーティリティ= 0を取得します。これは合理的な仮定のようです。より多くのデータを使用しない限り、できることはすべてです。

だから私の提案は次のとおりです。A1をA1から始めるすべての計画と〜A1をすべてA1で開始しないすべての計画とします。それで

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

ここで、フィットネスは2番目の例で定義したとおりです。

これにより、A1から始まるプランの予想ユーティリティの比率が得られません。 1つ以上の場合、A1は良いアクションのように見えます。

確率的計画に興味がある場合は、 POMDPモデル 値イテレーションなどのアルゴリズム。

編集:

実際、私はあなたを指摘するべきでした マルコフの決定プロセス (POなし)。ごめんなさい。

おそらくあなたの問題のためにすべきことは、予想されるユーティリティを最大化することです。これをフィットネスと呼んでください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top