MultiAgentDecisionProcess  Release 0.2.1
TransitionModelDiscrete.cpp
Go to the documentation of this file.
1 
29 
30 using namespace std;
31 
33  _m_nrStates(nrS),
34  _m_nrJointActions(nrJA)
35 {
36 }
37 
39 {
40 }
41 
43 {
44  stringstream ss;
45  double p = 0.0;
46  ss << "s\tja\ts'\tP (tuples with P==0 are not printed)"<<endl;
47  for(int sI = 0; sI < _m_nrStates; sI++)
48  for(int jaI = 0; jaI < _m_nrJointActions; jaI++)
49  for(int sIp = 0; sIp < _m_nrStates; sIp++)
50  {
51  p = Get(sI, jaI, sIp);
52  if(p>0)
53  ss << sI << "\t" << jaI << "\t" << sIp << "\t" << p << endl;
54  }
55  return(ss.str());
56 }
57 
59 {
60  double randNr=rand() / (RAND_MAX + 1.0);
61 
62  double sum=0;
63  Index sucState=0;
64  int i;
65 
66  for(i=0;i<_m_nrStates;i++)
67  {
68  sum+=Get(state,action,i);
69  if(randNr<=sum)
70  {
71  sucState=i;
72  break;
73  }
74  }
75  return(sucState);
76 }