Institut de Robòtica i Informàtica Industrial

DS_DA_ActionModel

PURPOSE ^

DS_DA_ActionModel constructor.

SYNOPSIS ^

function AM=DS_DA_ActionModel(varargin)

DESCRIPTION ^

   DS_DA_ActionModel constructor.

   Defines an Action Model on discrete state and action spaces.
   Parameters:
     S: The discrete state space
     A: The discrete action space
     T: cell(1,numActions) with a table p(nextState,currentState).

CROSS-REFERENCE INFORMATION ^

This function calls:
  • size Returns the size of a policy.
  • ActionModel Action Model constructor.
  • dim Dimensionality of a continuous space.
  • dim Dimensionality of a discrete space.
This function is called by:

SOURCE CODE ^

0001 function AM=DS_DA_ActionModel(varargin)
0002 %   DS_DA_ActionModel constructor.
0003 %
0004 %   Defines an Action Model on discrete state and action spaces.
0005 %   Parameters:
0006 %     S: The discrete state space
0007 %     A: The discrete action space
0008 %     T: cell(1,numActions) with a table p(nextState,currentState).
0009 
0010 
0011 
0012   switch nargin
0013     case 1
0014       if isa(varargin{1},'DS_DA_ActionModel')
0015         AM=varargin{1};
0016       else
0017         if isa(varargin{1},'double')
0018           AM.T=varargin{1}; % cell with Table(nextState,currentState)
0019           AM.na=size(RM.T,3);
0020           AM.ns=size(RM.T,1);
0021           AM=class(AM,'DS_DA_ActionModel');
0022         else
0023           error('Wrong parameter type in DS_DA_ActionModel constructor');
0024         end
0025       end
0026     case 3
0027       if isa(varargin{1},'DSpace')
0028         AM.S=varargin{1};
0029       else
0030         error('Wrong parameter type in DS_DA_ActionModel constructor');
0031       end
0032       
0033       if isa(varargin{2},'DSpace')
0034         AM.A=varargin{2};
0035       else
0036         error('Wrong parameter type in DS_DA_ActionModel constructor');
0037       end
0038       
0039       if isa(varargin{3},'cell')
0040         AM.T=varargin{3};
0041         na=dim(AM.A);
0042         for a=1:na
0043           if nnz(AM.T{a})/numel(AM.T{a})<0.5
0044             AM.T{a}=sparse(AM.T{a});
0045           end
0046         end
0047       else
0048         error('Wrong parameter type in DS_DA_ActionModel constructor');
0049       end
0050       
0051       if dim(AM.S)~=size(AM.T{1},1) || dim(AM.S)~=size(AM.T{1},2) || dim(AM.A)~=size(AM.T,2)
0052         error('Size missmatch in DS_CA_ActionModel');
0053       end
0054       
0055       AMBase=ActionModel();
0056       
0057       AM=class(AM,'DS_DA_ActionModel',AMBase);
0058     otherwise
0059       error('Wrong number of parameters in DS_DA_ActionModel constructor');
0060   end
0061


Institut de Robòtica i Informàtica Industrial

Generated on Wed 05-Aug-2009 15:05:21 by m2html © 2003