将实用程序分配给本地状态时难以指定长期视图

JB2*_*JB2 4 artificial-intelligence machine-learning agent

我目前正在阅读Wiley和Woolridge的多代理系统简介,我希望是否有人可以向我澄清以下内容.在谈到效用函数时,作者说:

实用程序是表示状态"好"的数值:效用越高越好.

然后,代理的任务是实现最大化效用的状态- 我们不会向代理指定如何执行此操作.在这种方法中,任务规范只是一个功能

u:E -> R 
Run Code Online (Sandbox Code Playgroud)

它将真实价值与每种环境状态联系起来.

鉴于这种性能指标,我们可以通过几种不同的方式定义代理在某些特定环境中的整体效用.一种(悲观)方式是将代理的效用定义为代理可能遇到的最差状态的效用; 另一种可能是将整体效用定义为遇到的所有州的平均效用.没有正确或错误的方法:措施取决于您希望代理执行的任务类型.

这种方法的主要缺点是它为当地国家分配公用事业; 在将实用程序分配给各个州时很难指定长期视图.

我在理解缺点以及究竟是什么样的本地状态时遇到了问题.有人可以澄清一下吗?

gre*_*ess 15

我将在这里向您展示一个解释这个想法的例子.希望能帮助到你.有关详情,请参阅幻灯片.

问题:

这是一个经典问题Tile World.

  • 二维网格世界,其中我们有一个代理,瓷砖,障碍物和洞.
  • 代理可以在四个方向(向上,向下,向左,向右)移动,如果它位于图块旁边,则可以在适当的方向上推动它.
  • 代理人必须用瓷砖填充孔.
  • 目的是用瓷砖填充所有孔.

在此输入图像描述

环境状况

可以使用以下变量描述环境的状态:

  • 代理人的当前位置 (a_x, a_y)
  • 四个瓷砖目前的位置(t1_x, t1_y),(t2_x, t2_y),(t3_x, t3_y),(t4_x, t4_y)

国家转移

假设在当前状态下,如果代理将其下方的区块推下,则系统状态转移到下一个状态,其中每个变量保持不变,除了代理的当前位置和正在推送的区块的位置.

实用功能

我们的效用函数可以定义为填充孔的百分比,即

            # of holes filled
   u =  -------------------------
            # of total holes 
Run Code Online (Sandbox Code Playgroud)

很明显:

  • 如果代理填充所有孔,则实用程序= 1
  • 如果代理填充零个洞,则实用程序= 0

关联效用函数

现在看看下面的两个州.

在此输入图像描述 在此输入图像描述

很容易看出:

  • 这两个州都具有相同的效用值1/3(因为填充了1个3个孔)
  • 左(状态s1)是位置,您无法将所有瓷砖移动到孔中
  • 右(状态s2)是一个很好的位置,您可以选择将剩余的两个瓷砖移动到孔中.

所以结论是:

  • 如果您仅将实用程序功能与本地状态相关联,例如,u(s1)或者u(s2),您实际上无法区分实用程序.u(s1)=u(s2)=1/3.

  • 您需要一个可以用run表示的状态的全局或长期视图,这是一系列交错的环境状态和代理所采取的操作.

  • 您可以将实用程序分配给不是单个状态,而是分配给运行.这种方法具有固有的长期观点.

    你:跑 - >真正的价值

  • 在此设置中,代理商的最佳策略是最大化预期效用,这并不意味着它将是最好的,但平均而言我们可以期望它做得最好.

    期望效用=(u(r)x Prob(r)之和)

有关详细信息,请参阅您提到的书或相应的幻灯片.