Help with power management telecommunication problem (Nash equilibrium)

2 Ansichten (letzte 30 Tage)
Jim
Jim am 2 Nov. 2011
This is a telecommunicational problem. In particular i use game theory to find out the most effective power set to maximize overall utility (Nash equilibrium).Right now, i am trying to find Pareto improvements (equlilibria where some players can improve their own position and at the same time not ruin overall utility) by including a cost factor, which is a more effective way to control greedy players...My problem is that I am not sure if this is right and i don't know how to make the right graphs e.g. cost factor to total utility or comparison of equilibrium powers of all players with and without a cost factor.Here follows my code's body:
close all;
clear all;
%data definition
L=64; %number of information bits per frame
R=10^4; %bit rate
M=80; %total number of bits per frame
W=10^6; %spread spectrum bandwidth
s2=5*10^(-15); %AWGN noise power at the receiver
pmax=2; %maximum power constraint
k=0.097*10^(-3); %a constant for path loss calculation
pj=0.001:0.001:pmax; %a variety of powers for each user
d=[0.31 0.46 0.57 0.66 0.74 0.81 0.88 0.94 1.00]; %distance of each user from antenna
nash=[0 0 0 0 0 0 0 0 0 ]; %initialization of nash equilibrium powers
h=k./(d.^4); %simple path loss model
ind=1;
ind2=1;
p(ind,:)=ones(1,9);
q=zeros(1,9);
psummax=0;
cbest=0.0;
pfin(ind2,:)=zeros(1,9);
psum(ind2)=0;
ut_sum(ind2)=0;
ut_net(ind2,:)=0;
utsummax=0;
for c=10^3:10^6:10^12;
c
while max(abs(p(ind,:)-q))>10^(-4)
q=p(ind,:);
ind=ind+1;
for i=1:9
g=(W/R)*(h(i)*pj)/(sum(h(1:(i-1)).*p(ind-1,1:(i-1)))+sum(h((i+1):end).*p(ind-1,(i+1):end)) + s2);
%mathematical type for finding the Signal to Interference Rate
pe=0.5.*exp(-g./2); %Bit Error rate
f=(1-2.*pe).^M; %Efficiency
u=L*R.*f./(M.*pj)-c.*(pj.^2); %Utility
um=max(u);
kk=find(u==um);
p(ind,i)=pj(kk);
ut_net(ind2,i)=um;
%calculate each user's utility for the best power value for this
%particular value of c and save it
end
end
pfin(ind2,:)=p(ind,:);
pfin(ind2,:)
ut_net(ind2,:)
% the value of each user's utility at equilibrium for this particular
% value of c
ut_sum(ind2)=sum(ut_net(ind2,1:9));
if ut_sum(ind2)>utsummax
utsummax=ut_sum(ind2);
cbest=c;
nash=pfin(ind2,:);
end
ind2=ind2+1;
ind=1;
clear p
p(ind,:)=ones(1,9);
end

Antworten (2)

Jim
Jim am 10 Nov. 2011
Anyone please?

Talha Rahman
Talha Rahman am 8 Dez. 2011
Hey Jim,
I looked at your code and i think you are confused how to plot graph between cost function and total utility. First of all, quite many numbers of samples to plot the graph. Question would be how to get samples. It is easy as u need to to provides values for one of two variables (either utility or cost function). for example u make an array of cost function like
[1 2 3 4 5 6 7 8 9 10 11 ....]
Now against each cost function value, u will compute utility and in the end you would get utility values. then u can use plot function in matlab; put your cost function on x-axis and utility on y-axis. In order to get smooth plot, run monte carlo simulations I hope i answerd you confusion.
HTH
Talha

Kategorien

Mehr zu Video games finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by