1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
|
nt=1;
NTmax=12;
state=[0;1;2];
eina = 1;
sigma= 1;
es= 3;
et= 1;
alpha=0.9;
beta=0.4;
Oalpha=alpha;%omega de alpha
Obeta=beta;
a=2;
Talpha(NTmax,1)=alpha;
for i=NTmax-1:-1:1
Oalpha=alpha*Oalpha+(1-Oalpha)*beta;
Talpha(i,1)=Oalpha;
end
%belief starting from beta
Tbeta(1,1)=beta;
for i=2:NTmax
Obeta=alpha*Obeta+(1-Obeta)*beta;
Tbeta(i,1)=Obeta;
end
%corresponding value of the belief and their indice in the value matrix
Tbelief=[Tbeta;Talpha];
for i=1:2*NTmax
Tbelief(i,2)=i;
end
Tbelief(:,1)
pause
%Initialiser V et Vold
Vold=ones(2*NTmax,NTmax);
V=zeros(2*NTmax,NTmax);
lambda=alpha;
%boucle while
while a==2
Vold=V;
Olambda=alpha*lambda+(1-lambda)*beta;
for i=1:2*NTmax
if Tbelief(i,1)==Olambda
ind=Tbelief(i,2)
end
end
if nt < NTmax
Q0= -eina -sigma +Vold(ind,nt);
Q1= -es -sigma + Vold(1) ;
Q=[Q0;Q1];
[maxQ position]=max(Q);
a=state(position);
else (nt==NTmax);
Q1= -es -sigma + Vold(1);
maxQ=Q1 ;
a= 1 ;
end
%la mise a jour de nt, V et lambda selon la valeur de a
if a==0
for i=1:2*NTmax
if Tbelief(i,1)==lambda
ind2=Tbelief(i,2);
end
end
V(ind2,nt)=Q0;
lambda=Olambda;
nt
end
if a==1
for i=1:2*NTmax
if Tbelief(i,1)==lambda
ind3=Tbelief(i,2);
end
end
ind3=Tbelief(i,2);
V(ind3,nt)=Q1;
lambda=alpha;
nt=0
end
a
lambda
if a==0
a=2;
else
a=3;
end
plot(lambda,a)
end |
Partager