Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 强化学习_Matlab_Machine Learning_Reinforcement Learning - Fatal编程技术网

Matlab 强化学习

Matlab 强化学习,matlab,machine-learning,reinforcement-learning,Matlab,Machine Learning,Reinforcement Learning,我想使用这个q-learning(强化学习)代码。代码似乎是正确的,但我遇到了错误,我不知道为什么: function q=ReinforcementLearning clc; format short; format compact; int state=0; R= [-inf,-inf,-inf,-inf, 0,-inf; -inf,-inf,-inf, 0,-inf, 100; -inf,-inf,-inf, 0,-inf,-inf; -inf, 0, 0,-

我想使用这个q-learning(强化学习)代码。代码似乎是正确的,但我遇到了错误,我不知道为什么:

function  q=ReinforcementLearning 

clc;
format short;
format compact;
int state=0;


R= [-inf,-inf,-inf,-inf,   0,-inf;
-inf,-inf,-inf,   0,-inf, 100;
-inf,-inf,-inf,   0,-inf,-inf;
-inf,   0,   0,-inf,   0,-inf;
   0,-inf,-inf,   0,-inf, 100;
-inf,   0,-inf,-inf,   0, 100];

gamma=0.8;

q=zero(size(R));
q1=one(size(R))*inf;
count=0;

for episode = 0:20000;
y=randperm(size(R,1));
state=y(1);

x=find(R(state,:)>=0);
if size(x,1)>0,
  x1=RandomPermutation(x);
  x1=x1(1);
end

qMax=max(q,[],2);
q(state,x1)=R(state,x1)+ gamma* qMax(x1);
  int  state=x1;


if sum(sum(abs(q1-q)))<0.0001 && sum(sum(q>0))
  if count > 1000;

      break
  else
      count=count+1;
  end
else
  q1=q;
  count=0;
end

end

此代码可在以下链接中找到: 没有

int state=0;
int state=x1;
在matlab中。这就是C风格。在matlab中,int是一个内置函数,表示其他内容。 此外,它应该是

q=zeros(size(R));
q1=ones(size(R))*inf;
记住下载他的随机排列函数,否则就用randperm代替。

什么是
y=randperm(size(R,1))
<代码>R的大小已经是6*6。在重组时,它将产生另一个6*6矩阵,对吗?
q=zeros(size(R));
q1=ones(size(R))*inf;