(2)基于主从博弈

最近在写论文,其中用到关于博弈论问题,记录一下心得体会吧,大佬轻喷

目录

一、Stackelberg平衡

1、定义

2、怎么用

2.1 问题阐述:

2.2 matlab代码

3、用于微电网


一、Stackelberg平衡

1、定义

Stackelberg game–主从博弈–mobile computing最常用模型
一方先行动,一方后行动的博弈也称为斯坦克伯格问题,也可称为主从博弈(leader and follower),与经典博弈模型相比,Stackelberg是一个动态的过程。即在经典博弈中的每一个参与人在博弈中地位是一致的,而主从博弈中的参与者的地位是不一致的,跟随者的策略选择依赖于领导者的策略选择。

Stackelberg game往往存在一个均衡的情况,这也是大部分模型想要达到或者计算的case,给一个最经典的例子
        具体有大佬介绍,直接贴过来,如下

(17条消息) 博弈论基础知识--非合作博弈,零和博弈,负和博弈,主从博弈,Nash均衡_Ordinary_yfz的博客-CSDN博客

2、怎么用

2.1 问题阐述:

设目标函数为Z=61.2-10*(X1+X2),博弈者成本函数C=1.2X,求Stackelberg均衡时两个博弈者的值(其中X1为领导者,X2为跟随者)

解:首先求解如下优化模型:

   max X2[61.2-10*(X1+X2)]-1.2X

得到X2=\frac{60-10X1}{20}

求解过程如下(字有点丑,别嫌弃)(2)基于主从博弈_第1张图片

然后求解下列优化模型:

max X1[61.2-10*(X1+X2)]-1.2X

s.t.   X2=\frac{60-10X1}{20}

得到结果X1=3,X2=3/2

2.2 matlab代码

clc;clear
clear
clc
syms X1 X2;
Y2=-X2*(61.2-10*(X1+X2))+1.2*X2;
eq=diff(Y2,X2); %diff求导数,对
x2=solve(eq,X2);

Y1=-X1*(61.2-10*(X1+x2))+1.2*X1;
vdpf = matlabFunction([Y1],'Vars',{X1}); %将符号表达式转化为函数句柄!!!
[x1,fval1]=fminsearch(vdpf,0);%使用无导数法计算无约束的多变量函数的最小值
x2=subs(x2,x1);
[x1,x2]

3、用于微电网

后续再填空

你可能感兴趣的:(微电网群优化,matlab)