博弈论中的机制设计可以用演化算法自动实现吗?
博弈论中的机制设计完全可以用演化算法自动实现!实际上最著名的工作还是微软刘铁岩教授的博弈机器学习那篇论文。但是,远在2003年,演化计算领域就已经出现了用演化算法实现机制设计的论文。这里我以2003年的一篇文章【Using genetic programming to optimise pricing rules for a double auction market】简单介绍一下如何使用演化算法实现电价交易市场中的定价策略制定。这篇文章是非常早期的演化机制设计论文,因此并没有取得很显著的效果,对演化机制设计感兴趣的同学可以进一步阅读Steve Phelps的博士论文以了解更多的相关研究。
问题描述
该论文主要将尝试使用遗传编程算法设计电价交易策略。具体来说,电价交易市场存在多个买家和卖家,并有一个交易中介机构。买家和卖家都有自己的预期出价。中介机构根据买家和卖家的出价进行匹配,并敲定最终的价格。而机制设计的目的就是希望通过良好的机制实现整体市场的利益最大化。
评估函数
对于一个交易策略,其评估函数由多方面构成,例如市场效率,买家偏向和卖家偏向。
首先,整个市场效率可以使用下面公式进行定义。PBA代表买家的实际收益,PSA代表卖家的实际收益。PBE代表买家的理想收益,PSE代表卖家的理想收益。
买家能力MPB,定义为定价策略对买家的偏向。具体来说,即当前收益PBA和理想市场情况下的理想收益PBE之间的差值,除以PBE。这个值越小代表定价策略越有利于买家。
同样的,也可以定义定价策略对卖家的偏向,MPS,这个值越小代表定价策略越有利于卖家。
此外,还可以根据当前市场情况下的理想收益与当前收益的差距定义SMPB和SMPS,具体定义方法可以参考论文。
为了保证所有评估函数最佳值为1,最差值为0。作者按照下面的方法定义了五个评估函数。
聚合上面的评估函数,可以得到下面两个评估函数。
在经典的交易机制设计领域,目前常用的一个基准机制是取买家出价和卖家出价的加权和作为最终成交价格,即如下公式所示。在论文中,作者选择 k=0.5 ,即取平均值作为最终价格。
搜索算法
论文使用了遗传编程算法对定价策略进行搜索,具体来说就是通过演化算法尝试使用数学运算符组合卖家出价 p_a 和买家出价 p_b ,形成最终的市场定价。对于每一个搜索出的定价策略,都通过仿真环境进行交易模拟,并通过上面的评估函数进行评估。
实验结果
最终实验得到了如下所示的定价策略,单单从公式上来看,这里遗传编程算法演化出了一个非常复杂的公式。
为了简化理解,作者将该公式所对应的定价曲面在下图中进行了绘制。可以发现,遗传编程所发现的定价策略和经典的均值定价策略具有相似的曲面。这意味着模型通过演化算法可以自动发现类似均值定价策略的策略。