Агрегирование вероятностных планов - PullRequest
1 голос
/ 13 сентября 2010

Я пытаюсь создать простой планировщик на основе STRIPS .Я завершил базовую функциональность для вычисления отдельных вероятностных планов, которые будут достигать цели, но теперь я пытаюсь определить, как агрегировать эти планы на основе их первоначального действия, чтобы определить, какое «общее» лучшее действие происходит в момент времени t0..

Рассмотрим следующий пример.Полезность, ограниченная от 0 до 1, показывает, насколько хорошо план выполняет цель.CF, также ограниченный между 0 и 1, представляет фактор уверенности, или вероятность того, что выполнение плана приведет к данной полезности.

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

Если все три плана, которые являются взаимоисключающими, начинаются сдействие 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

Есть ли более теоретически обоснованный способ?

Ответы [ 3 ]

2 голосов
/ 14 сентября 2010

Если вы предпринимаете действие А1, то вам нужно решить, какой из 3 планов последовать, которые являются взаимоисключающими.На этом этапе мы можем рассчитать, что ожидаемая полезность плана 1 равна

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

Аналогично для двух других планов.Но, поскольку вы можете выбрать только один план, реальная ожидаемая полезность (которую, я думаю, вы подразумеваете под «приспособленностью») от действия А1 составляет

max(E[plan1],E[plan2],E[plan3]) = fitness(A1)
2 голосов
/ 14 сентября 2010

Если вы заинтересованы в вероятностном планировании, вам следует взглянуть на модель POMDP и алгоритмы, такие как итерация значения.

Edit:

На самом деле, я должен был указать вам Марковский процесс принятия решения (без ЗП). Прости.

Что вам, вероятно, следует сделать для решения вашей проблемы, это максимизировать ожидаемую полезность. Назовите фитнес это.

2 голосов
/ 14 сентября 2010

Я думаю, что фитнес-функция, о которой вы говорите, должна также учитывать все планы, в которых А1 не является первым действием.Все они могут быть действительно хорошими, в этом случае делать А1 - плохая идея, или они могут быть ужасными, в этом случае выполнение А1 выглядит как хороший ход.

Глядя на ваши идеи, второе делает многобольше смысла для меня.Он рассчитывает ожидаемую полезность выбора плана равномерно случайным образом из всех планов, которые начинаются с A1.Это при условии, что план либо достигает данной полезности, либо полностью терпит неудачу.Например, первый план получает полезность = 0,01 с вероятностью 0,7 и получает полезность = 0 с вероятностью 0,3.Это кажется разумным предположением;это все, что вы можете сделать, если у вас нет больше данных для работы.

Итак, вот мое предложение: пусть A1 - все планы, начинающиеся с A1, и ~ A1 - все планы, не начинающиеся с A1.Затем

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

, где пригодность, как вы определили ее во втором примере.

Это должно дать вам соотношение ожидаемой полезности для планов, начинающихся с А1, и тех, которые не имеют.Если значение больше единицы, A1 выглядит как хорошее действие.

...