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



我在理解劣势以及本地状态究竟是什么时遇到了问题。有人可以澄清这一点吗?

最佳答案

我将在这里向您展示一个示例来解释这个想法。希望能帮助到你。有关详细信息,请参阅 slide

问题:

这是一个称为Tile World的经典问题。

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


  • 环境状态

    环境的状态可以使用以下变量来描述:
  • 代理当前位置 (a_x, a_y)
  • 四个tile的当前位置 (t1_x, t1_y) , (t2_x, t2_y) , (t3_x, t3_y) , (t4_x, t4_y)

  • 状态转移

    假设在当前状态下,如果代理将其下方的瓷砖向下推,则系统状态转移到下一个状态,其中每个变量保持不变,除了代理的当前位置和被插入的瓷砖的位置。

    实用功能

    我们的效用函数可以定义为被填充的孔的百分比,即
                # of holes filled
       u =  -------------------------
                # of total holes
    

    很明显:
  • 如果代理填满了所有的洞,utility = 1
  • 如果代理填充了零个孔,utility = 0

  • 关联效用函数

    现在看看下面的两个状态。



    很容易看出:
  • 两个状态具有相同的效用值,即 1/3(因为 3 个孔中的 1 个被填充)
  • 左侧(状态 s1 )是 位置,在该位置,您无法将所有瓷砖移动到孔中
  • 右侧(状态 s2 )是 良好的 位置,您可以选择将剩余的两个瓷砖移入孔中。

  • 所以结论是:
  • 如果您仅将效用函数与本地状态相关联,例如 u(s1)u(s2) ,您实际上无法区分效用方面的差异。 u(s1)=u(s2)=1/3
  • 您需要状态的全局或长期 View ,可以用 run 表示,这是一系列交错的环境状态和代理采取的操作。
  • 您可以不将实用程序分配给单个状态,而是分配给运行。这种方法采用固有的 长期 观点。

    u: 运行 -> 实际值
  • 在这个设置中,代理的最佳策略是最大化 预期效用 ,这并不意味着它会是最好的,但平均而言我们可以期望它做得最好。

    预期效用 = ( u(r) x Prob(r) )
  • 的总和

    详情请引用你提到的那本书或对应的slide

    关于machine-learning - 将公用事业分配给本地州时难以指定长期观点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14360893/

    10-12 18:11