• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-04
  • 语言: Matlab
  • 标签: 博弈论  间谍  

资源简介

通过matlab实现对博弈论的仿真,并加入一个具有学习机制的间谍,通过仿真得到间谍对整个系统的影响

资源截图

代码片段和文件信息

function f =jiandieyige
close all;
clear all;
clc;
%%%%%%%%%%%%%%系统初始化%%%%%%%%%%%%%%%
n=100;   %n表示普通参与者用户的个数
round_time=100; %表示测试的总的次数
k=1;   %间谍的个数
agent_strategy=zeros(n+kround_time); %表示博弈者的策略矩阵
agent_result=zeros(size(agent_strategy)); %表示博弈者的结果矩阵
agent_gain=zeros(size(agent_strategy)); %表示博弈者的增益矩阵
Y=zeros(size(agent_strategy)); %监视矩阵
A=zeros(nround_time);  %用来判断间谍的策略值,对间谍策略进行赋值
gain_row=zeros(1n);
gain_normal=zeros(1n);
gain_jian=zeros(1n);
gain_spy=zeros(1n);
%%%%%%%%%%%%%以下用于给博弈者的策略赋值%%%%%%%%%%%%%%%%
for m=1:n   % m表示spyer的监视用户的个数,可以用连接度的概念来定义;
     I=randperm(n);
  for j=1:round_time
    for i=1:n
         agent_strategy(ij)=round(rand); % 完成对博弈策略的赋值,每次赋予该轮的博弈策略值。按照四舍五入的方式赋值;
    end     
        for l=1:m
         Y(lj)=agent_strategy(I(l)j); % 随着m值的不同,生成对应的矩阵,用于存储对应的监视用户策略的矩阵;   
        end
        A(mj)=sum(Y(:j)); % 对监视矩阵求和
    if A(mj)>=(m+1)/2   % 选择1的人数多
           agent_strategy(n+kj)=0;
    else      
            agent_strategy(n+kj)=1;
    end
    %%%%%%%%%%%%%%%%

评论

共有 条评论