基于Matlab绘制演化博弈主体的演化轨迹
背景:本文起源于我的碩士畢業論文,主要研究新能源汽車供應鏈主體之間的博弈問題,其中一個關鍵內容是制造商和經銷商之間的演化博弈。具體來說,是兩個博弈成員,每位成員有兩個策略,是典型的非對稱博弈。
因此,寫下這篇文章的目標是:1、整理演化博弈的研究思路 2、熟悉Matlab的使用 3、簡介演化博弈代碼包
一、演化博弈的介紹
1.1 演化博弈與傳統博弈的區別
演化博弈區別于傳統博弈的地方是,關于博弈主體的假設條件不同。
a)演化博弈:博弈主體是有限理性的,需要在博弈的過程中學習/模仿不斷調整策略,最后達到均衡。
b)傳統博弈:博弈主體是完全理性的,在博弈過程中能一次性做出最佳決策,即達到均衡。
因此,演化博弈在分析實際問題時,具備更強的解釋性,也更加貼近現實情況。
1.2 演化博弈的基本內容
根據學習群體的大小和學習速率的不同,主要將演化博弈分為了兩種:
a) 基于最佳反應動態(Best Response?Dynamics)的演化博弈
b) 基于復制動態(Replicator Dynamics)的演化博弈。
由于我的研究問題涉及的是大群體間的博弈問題,因此我使用的是第二種基于復制動態的演化博弈模型(以下簡稱RD),對實際問題進行刻畫,通過復制動態方程描述采取不同策略的群體比例的變化。
1.3 基于復制動態的演化博弈模型的例子
下面以對稱博弈為例,簡述RD。
通常,有兩個因素影響博弈方的學習進化速度:1)模仿對象的數量,即博弈方對應的比例情況;2)模仿對象的策略收益超過平均收益的大小。上述兩點分別決定了進化的難易程度和模仿的激勵大小。
假設在一個足夠大的群體間進行博弈,采用策略1的群體比例為x,采用策略2的群體比例為1-x。采用兩種策略博弈方的期望收益和群體平均收益分別是:
因此復制動態方程可以用下面的動態微分方程表示:
接下來研究的問題是關于非對稱博弈問題,因此,涉及兩個復制動態方程,會稍微復雜一點,但演化博弈的基本原理相同。
二、Matlab的基本使用
我對于Matlab的接觸是從大四開始的,但是研究生階段基本沒有使用Matlab這個強大的工具。現重新撿起來發現,這個軟件的功能確實強大。因此,對Matlab編程并不熟練的同學,也可以直接使用第三部分的演化博弈代碼。
這個演化博弈的工具是一個名為PDToolbox_matlab-master的程序套組,大致包含這些文件:
第一步:下載PDToolbox_matlab-master壓縮包,并解壓到你的熟悉的位置。
第二步:打開Matlab,將上述壓縮包添加到路徑。如圖
至此,關于Matlab的操作就算告一段落了。
三、演化博弈工具包PDToolbox_matlab-master的使用
據上,我研究的是雙主體雙策略的博弈問題,對應使用test2.m文件。下面是關于test.2中的一些代碼解讀:
上述紅框中的代碼是演化博弈中的關鍵參數,X0是一個2*2的矩陣,是演化博弈群體的初始比例。
關于支付矩陣的設置,如上代碼是使用的fitness2.m文件。
對應使用RD之后的演化軌跡如下:
? ? ? ?
上述圖像的意思是博弈雙方隨演化的進行,未能達到均衡狀態,采取策略的群體比例會一直呈現規律波動。
使用bnn dynamics(Brown-von Neumann-Nash Dynamics?)之后的演化軌跡如下:
? ? ? ?
說明兩博弈群體由最初的0.1和0.2的比例,逐步收斂于0.5和0.5,最終達到均衡。
結束!
matlab代碼:基于matlab的多方演化博弈.zip-物流文檔類資源-CSDN下載
總結
以上是生活随笔為你收集整理的基于Matlab绘制演化博弈主体的演化轨迹的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1067: 有问题的里程表
- 下一篇: React开发(223):详情页根据数组