31「研讀分享」:Mathematica中關於演化博弈的函數

fans news 發佈 2022-01-11T00:53:18+00:00

Bring the analytical solutions of the parameters into the expressions of the original first-order conditions and state variables, and obtain the optimal coping strategies of different players in this game and the trajectory expressions of the state variables.

分享興趣、傳播快樂、增長見聞、留下美好,大家好,這裡是LearningYard學苑,今天小編為大家帶來文章:mathematica中關於動態微分博弈的函數。

自我鼓勵環節

題外話

昨天收到輔導員通知,我們學院這一屆的畢業條件已經更改,大概就是論文要往北大核心發了,還在期末複習的我和我的小夥伴留下了不學無術的淚水,道阻且長,但還是要堅持下去呀!

今日內容摘要:

之前學習的mathematica的相關知識,是為了求解博弈論的相關模型做的鋪墊。今天是一道開胃菜,在尋求導師建議後,我開始著手學習動態微分博弈模型,即今天的主題。學習的方法是找到一篇相關的高水平論文,第一步(今天的分享):先將文章的整體框架梳理出來,將模型步驟提煉出來,然後結合所學知識,想一想需要用哪些mathematica函數;第二步:通讀全文,把不理解的名詞、概念、算法等都搞懂,把研究模型的理論基礎搞懂;第三步:專攻論文中的建模和分析部分,利用軟體進行復刻;第四步:復刻論文中的算例。

01 動態微分博弈

從名詞來看,不難看出此博弈的性質。通過百度搜索、查閱相關論文可以總結如下信息:動態微分博弈是高級宏觀經濟學與運籌學中的動態優化的結合體。

我們對該名稱進行分解,可以分為動態優化(規劃)、微分(方程)、博弈論。動態優化(規劃)是運籌學中的一個分支,它主要用於求解以時間劃分階段的動態過程的優化問題,但是一些與時間無關的靜態規劃(如線性規劃、非線性規劃),只要人為地引進時間因素,把它視為多階段決策過程,也可以用動態規劃方法方便地求解[1]。

動態規劃的思想是將一個求最優化的問題,分解為多個階段,在每個階段存在不同的狀態,決策者通過改變決策變量來改變下一階段的狀態。(數學上用狀態方程來表示這一聯繫)。

在一個動態微分博弈中,博弈的各個參與方,都在進行動態規劃,他們根據別人的策略來進行自己的策略選擇,比如製造商的努力水平是跟隨時間變化的,製造商的努力水平會影響產品的質量,從而影響零售商下一階段的努力水平的決策。這只是一個簡單的例子,實際的情況可能更複雜,因為涉及的主體更多。

而為什麼叫微分博弈,個人理解是在這個博弈的均衡解求解過程,涉及到從微分方程中求解出所需要的函數表達式。即如果決策過程的演化(由參與者隨時間控制)發生在連續的時間內,通常涉及一個微分方程,這樣的動態博弈就被稱為微分博弈;如果它發生在離散的時間範圍內,則動態博弈有時被稱為離散時間博弈[2]。

02動態微分博弈的求解步驟

1. 做好假設:明確誰為博弈主導者,誰為跟隨者,寫出各個博弈方的控制變量和狀態變量的表達式;

2. 設立目標:用函數的形式寫出不同時刻,關於控制變量的目標函數(通常為博弈方利潤最大)的變化;

3. 數值分析:對目標函數進行取得最優值的一階條件分析,求出令目標函數取得最優解時的各參數的解析解;

4. 將參數的解析解帶入原一階條件和狀態變量的表達式,求出不同博弈者在此博弈中的最佳應對策略以及狀態變量的軌跡表達式。

03可能需要的函數

在第1步中,需要用建立函數的命令f[x_];同時需要設置幾個表達式;

在第2步中,需要求定積分-Integrate[f,{x,xmin,xmax}]以及常用函數NMaximize[f,x];

圖1

圖2

在第3步中,需要用到求偏導命令-D[f,x];

在第4步中,需要用到命令「/.」將參數的表達式代入原表達式;

整個過程設計很多符號和變量,需要大量使用化簡命令Fullsimplify和Simplify。

英文學習

Yesterday, I received a notification from the counselor that the graduation requirements of our college have been changed this year. Probably the thesis will be sent to the core of Peking University. My friends and I, who are still reviewing at the end of the term, left tears of ignorance. The days of scientific research are expected to be difficult. It's a long road, but keep going!

The relevant knowledge of mathematica learned before is a foreshadowing for solving related models of game theory. Today was an appetizer, and after seeking advice from a mentor, I set out to learn dynamic differential game models, today's topic. The method of learning is to find a relevant high-level paper. The first step is to sort out the overall framework of the article, extract the model steps, and then combine the knowledge you have learned to think about which mathematica functions you need to use; the second step : Read through the whole text, understand the terms, concepts, algorithms, etc. that you don’t understand, and understand the theoretical basis of the research model; Step 3: Specialize in the modeling and analysis part of the paper, and use software to reproduce; Step 4 : Reproduce the calculation example in the paper.

01 Dynamic Differential Game

Judging from the noun, it is not difficult to see the nature of this game. Through Baidu search and related papers, the following information can be summarized: Dynamic differential game is a combination of advanced macroeconomics and dynamic optimization in operations research.

We break down this name into dynamic optimization (planning), differentiation (equations), and game theory. Dynamic optimization (planning) is a branch of operations research. It is mainly used to solve optimization problems of dynamic processes divided by time. However, some time-independent static programming (such as linear programming and nonlinear programming), as long as artificial Introducing the time factor and treating it as a multi-stage decision-making process, it can also be easily solved by dynamic programming [1]. The idea of dynamic programming is to decompose an optimization problem into multiple stages. In each stage, there are different states. The decision maker changes the state of the next stage by changing the decision variables. (The equation of state is used mathematically to represent this connection). In a dynamic differential game, each participant in the game is performing dynamic planning, and they make their own strategic choices according to the strategies of others. For example, the manufacturer's effort level changes with time, and the manufacturer's effort level will affect The quality of the product, thus influencing the decision of the retailer's next stage of effort level. This is just a simple example, the actual situation may be more complex because more subjects are involved.

And why it is called a differential game, my personal understanding is that in the process of solving the equilibrium solution of this game, it involves solving the required function expression from the differential equation. That is, if the evolution of the decision-making process (controlled by the participants over time) occurs in continuous time, usually involving a differential equation, such a dynamic game is called a differential game; if it occurs in discrete time horizons, then the dynamic Games are sometimes called discrete-time games [2].

02 Solving steps of dynamic differential game

1. Make assumptions: clarify who is the game leader and who is the follower, and write the expressions of the control variables and state variables of each game party;

2. Setting up goals: write the changes in the objective function of the control variables at different times in the form of a function (usually the player with the greatest profit);

3. Numerical analysis: carry out the first-order condition analysis to obtain the optimal value of the objective function, and obtain the analytical solution of each parameter when the objective function obtains the optimal solution;

4. Bring the analytical solutions of the parameters into the expressions of the original first-order conditions and state variables, and obtain the optimal coping strategies of different players in this game and the trajectory expressions of the state variables.

03 Functions that may be needed

In step 1, you need to use the command f[x_] to create a function; you need to set several expressions at the same time;

In the second step, you need to find the definite integral -Integrate[f,{x,xmin,xmax}] and the commonly used function NMaximize[f,x];

figure 1

figure 2

In step 3, you need to use the partial derivative command -D[f,x];

In step 4, you need to use the command "/." to substitute the expression of the parameter into the original expression;

Many symbols and variables are designed in the whole process, which requires a lot of use of the simplification commands Fullsimplify and Simplify.


今天的分享就到這裡啦!

感興趣的同學可以留言與小編交流,

咱們下周見!

參考資料:

[1]沈大慶.國防工業出版社:國防工業出版社,2015-08:71.

[2]張紀峰.美國工程院院士深度解析:博弈論與控制面臨哪些挑戰和機遇?[EB/OL]. [2022-01-11]. https://mp.weixin.qq.com/s/8ac66DPKuKkZndmbtdisbw.

英文翻譯:Google翻譯。

本文由LearningYard學苑原創,部分資料、圖片來源於網絡,如有侵權請聯繫。

關鍵字: