Агрегирование вероятностных планов

Я пытаюсь создать простой планировщик на основе 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

Если все три плана, которые являются взаимоисключающими, начинаются с действия А1, как мне их объединить, чтобы определить общую "пригодность" для использования действия А1? Моя первая мысль состоит в том, чтобы суммировать факторы определенности и умножить их на среднее значение по утилитам. Это кажется правильным?

Так что мой текущий результат будет выглядеть так:

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 ответа

Решение

Если вы предпримете действие А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)

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

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

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

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

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

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

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

Редактировать:

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

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

Другие вопросы по тегам