MultiAgentDecisionProcess  Release 0.2.1
argumentUtils.cpp
Go to the documentation of this file.
1 
28 using namespace std;
29 
30 
31 #include "argumentUtils.h"
32 #include "argumentHandlers.h"
33 #include "MADPParser.h"
34 #include "directories.h"
36 
37 #include "ProblemDecTiger.h"
38 #include "ProblemFireFighting.h"
39 using namespace ArgumentHandlers;
40 namespace ArgumentUtils {
41 
43 {
45  switch(args.problem_type)
46  {
47 
48  case(ProblemType::DT):
49  {
50  ProblemDecTiger* p = new ProblemDecTiger();
51  dp = p;
52  break;
53  }
54  case(ProblemType::FF):
55  {
56  dp = new ProblemFireFighting(args.nrAgents, args.nrHouses,
57  args.nrFLs);
58  break;
59  }
60 
61  case(ProblemType::PARSE):
62  default: //try to open the .dpomdp file and parse it
63  {
64  string dpomdpFile=directories::MADPGetProblemFilename(args);
65  // load the DecPOMDP problem
66  if(args.isTOI)
67  {
69  new TOIFactoredRewardDecPOMDPDiscrete("","",dpomdpFile);
70  if(args.sparse)
71  toi->SetSparse(true);
72  MADPParser parser(toi);
73  if(args.sparse)
75  else
77 
78  dp=toi;
79  }
80  else{
81 
82  DecPOMDPDiscrete* decpomdp =
83  new DecPOMDPDiscrete("","",dpomdpFile);
84  if(args.sparse)
85  decpomdp->SetSparse(true);
86  MADPParser parser(decpomdp);
87  dp = decpomdp;
88  }
89  if(args.verbose >= 0)
90  cout << "ArgumentUtils: Problem file parsed" << endl;
91  }
92  }
93  if(args.discount > 0)
94  dp->SetDiscount(args.discount);
95 
96  if(args.verbose >= 0)
97  cout << "ArgumentUtils: Problem instantiated." << endl;
98 
99  return dp;
100 }
101 
102 } //namespace