KJB
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
bbb_activity_sequence_prior.h
Go to the documentation of this file.
1 /* =========================================================================== *
2  |
3  | Copyright (c) 1994-2011 by Kobus Barnard (author)
4  |
5  | Personal and educational use of this code is granted, provided that this
6  | header is kept intact, and that the authorship is not misrepresented, that
7  | its use is acknowledged in publications, and relevant papers are cited.
8  |
9  | For other use contact the author (kobus AT cs DOT arizona DOT edu).
10  |
11  | Please note that the code in this file has not necessarily been adequately
12  | tested. Naturally, there is no guarantee of performance, support, or fitness
13  | for any particular task. Nonetheless, I am interested in hearing about
14  | problems that you encounter.
15  |
16  | Author: Ernesto Brau
17  * =========================================================================== */
18 
19 /* $Id$ */
20 
21 #ifndef B3_ACTIVITY_SEQUENCE_PRIOR_H
22 #define B3_ACTIVITY_SEQUENCE_PRIOR_H
23 
26 #include <bbb_cpp/bbb_traj_set.h>
28 #include <vector>
29 #include <string>
30 #include <utility>
31 
32 namespace kjb {
33 namespace bbb {
34 
41 {
42 private:
43  typedef std::pair<std::vector<size_t>, std::vector<size_t> > Chain_pair;
44 
45 public:
48  (
49  Parameter_prior& param_prior,
50  const Activity_library& lib
51  ) :
52  param_prior_p_(&param_prior),
53  parent_p_(0),
54  desc_p_(0),
55  lib_(lib)
56  {}
57 
59  void set_role(const std::string& role) { role_ = role; }
60 
62  void set_trajectories(const Traj_set& trajs) { trajs_ = trajs; }
63 
65  void set_parent(const Intentional_activity& act) { parent_p_ = &act; }
66 
68  void set_description(const Description& desc) { desc_p_ = &desc; }
69 
71  Parameter_prior& parameter_prior() const { return *param_prior_p_; }
72 
74  const std::string& role() const { return role_; }
75 
77  const Traj_set& trajectories() const { return trajs_; }
78 
80  const Intentional_activity& parent() const { return *parent_p_; }
81 
83  const Description& description() const { return *desc_p_; }
84 
86  const Activity_library& library() const { return lib_; }
87 
88 private:
90 
92  std::vector<size_t> sample_markov_chain(size_t T) const;
93 
95  Chain_pair condense_chain(const std::vector<size_t>& chain, size_t st) const;
96 
97  mutable Parameter_prior* param_prior_p_;
98  std::string role_;
99  Traj_set trajs_;
100  const Intentional_activity* parent_p_;
101  const Description* desc_p_;
102  const Activity_library& lib_;
103 };
104 
105 // useful typedef
107 
109 Activity_sequence sample(const As_prior& prior);
110 
111 }} // namespace kjb::bbb
112 
113 #endif /*B3_ACTIVITY_SEQUENCE_PRIOR_H */
114 
Definition: bbb_intentional_activity.h:39
Activity_sequence sample(const As_prior &prior)
Sample an activity sequence from the given prior.
Definition: bbb_activity_sequence_prior.cpp:90
const Traj_set & trajectories() const
Get trajectories for this sequence.
Definition: bbb_activity_sequence_prior.h:77
const Intentional_activity & parent() const
Get parent activity.
Definition: bbb_activity_sequence_prior.h:80
Definition: bbb_activity_sequence.h:39
const Activity_library & library() const
Get activity library.
Definition: bbb_activity_sequence_prior.h:86
Definition: bbb_description.h:62
Definition: bbb_traj_set.h:37
Activity_sequence_prior(Parameter_prior &param_prior, const Activity_library &lib)
Construct an activity sequence prior.
Definition: bbb_activity_sequence_prior.h:48
const std::string & role() const
Get role.
Definition: bbb_activity_sequence_prior.h:74
Definition: bbb_activity_sequence_prior.h:40
Parameter_prior & parameter_prior() const
Get parameter prior.
Definition: bbb_activity_sequence_prior.h:71
Definition: bbb_parameter_prior.h:38
void set_description(const Description &desc)
Set description.
Definition: bbb_activity_sequence_prior.h:68
void set_role(const std::string &role)
Set role.
Definition: bbb_activity_sequence_prior.h:59
void set_parent(const Intentional_activity &act)
Set parent activity.
Definition: bbb_activity_sequence_prior.h:65
Definition: bbb_activity_library.h:38
Activity_sequence_prior As_prior
Definition: bbb_activity_sequence_prior.h:106
const Description & description() const
Get description.
Definition: bbb_activity_sequence_prior.h:83
friend Activity_sequence sample(const Activity_sequence_prior &prior)
void set_trajectories(const Traj_set &trajs)
Set trajectories for this sequence.
Definition: bbb_activity_sequence_prior.h:62