我正在尝试创建一个简单的基于STRIPS的规划器。我已经完成了计算可以达到目标的独立概率规划的基本功能,但现在我正在尝试根据它们的初始动作来聚合这些规划,以确定在时间t0时“总体”最佳动作是什么。
考虑以下示例。效用(Utility)介于 0 和 1 之间,表示该规划完成目标的程度。置信因子(CF)也介于 0 和 1 之间,表示执行该规划将导致给定效用的概率。
Plan1: CF=0.01, Utility=0.7Plan2: CF=0.002, Utility=0.9Plan3: CF=0.03, Utility=0.03
如果所有这三个规划(它们是互斥的)都以动作 A1 开始,我应该如何聚合它们以确定使用动作 A1 的总体“适应度(fitness)”?我的第一个想法是将置信因子相加,然后将其乘以效用的平均值。这看起来正确吗?
所以,我目前的结果看起来像:
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,那么你必须决定遵循这三个规划中的哪一个,它们是互斥的。在那个时候,我们可以计算出规划 1 的预期效用为
E[plan1] = Prob[plan1 succeeds]*utility-for-success + Prob[plan1 fails]*utility-of-failure = .01*.7 + .99*0 //我假设 0 = .007
其他两个规划也类似。但是,由于你只能选择一个规划,因此采取行动 A1 的真实预期效用(我认为这就是你所说的“适应度”)是
max(E[plan1],E[plan2],E[plan3]) = fitness(A1)