DS_DA_ActionModelPURPOSEDS_DA_ActionModel constructor.
SYNOPSISfunction AM=DS_DA_ActionModel(varargin)
DESCRIPTIONDS_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 INFORMATIONThis function calls:
SOURCE CODE0001 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 |