Go to the documentation of this file.
   10 #define ADD_NO_PRUNING 
   18 using namespace gtsam;
 
   24     s.addStudent(
"Michael N", 
"AI", 
"Autonomy", 
"Perception", 
"Tucker Balch");
 
   27     s.addStudent(
"Tucker H", 
"Controls", 
"AI", 
"Perception", 
"Jim Rehg");
 
   30     s.addStudent(
"Jake H", 
"Controls", 
"AI", 
"Perception", 
"Henrik Christensen");
 
   33     s.addStudent(
"Tobias K", 
"Controls", 
"AI", 
"Autonomy", 
"Mike Stilman");
 
   36     s.addStudent(
"Shu J", 
"Controls", 
"AI", 
"HRI", 
"N/A 1");
 
   39     s.addStudent(
"Akansel C", 
"AI", 
"Autonomy", 
"Mechanics",
 
   40         "Henrik Christensen");
 
   43     s.addStudent(
"Tiffany C", 
"Controls", 
"N/A 1", 
"N/A 2", 
"Charlie Kemp");
 
   54   string path(
"../../../gtsam_unstable/discrete/examples/");
 
   57   s.addArea(
"Harvey Lipkin", 
"Mechanics");
 
   58   s.addArea(
"Wayne Book", 
"Mechanics");
 
   59   s.addArea(
"Jun Ueda", 
"Mechanics");
 
   62   s.addArea(
"Patricio Vela", 
"Controls");
 
   63   s.addArea(
"Magnus Egerstedt", 
"Controls");
 
   64   s.addArea(
"Jun Ueda", 
"Controls");
 
   67   s.addArea(
"Jim Rehg", 
"Perception");
 
   68   s.addArea(
"Irfan Essa", 
"Perception");
 
   69   s.addArea(
"Aaron Bobick", 
"Perception");
 
   70   s.addArea(
"Henrik Christensen", 
"Perception");
 
   72   s.addArea(
"Mike Stilman", 
"AI");
 
   73   s.addArea(
"Henrik Christensen", 
"AI");
 
   74   s.addArea(
"Frank Dellaert", 
"AI");
 
   75   s.addArea(
"Ayanna Howard", 
"AI");
 
   78   s.addArea(
"Ayanna Howard", 
"Autonomy");
 
   80   s.addArea(
"Charlie Kemp", 
"Autonomy");
 
   81   s.addArea(
"Tucker Balch", 
"Autonomy");
 
   82   s.addArea(
"Ron Arkin", 
"Autonomy");
 
   84   s.addArea(
"Andrea Thomaz", 
"HRI");
 
   85   s.addArea(
"Karen Feigh", 
"HRI");
 
   86   s.addArea(
"Charlie Kemp", 
"HRI");
 
   89   s.addArea(
"N/A 1", 
"N/A 1");
 
   90   s.addArea(
"N/A 2", 
"N/A 2");
 
   93   for (
size_t i = 0; 
i < nrStudents; 
i++)
 
  112         *std::dynamic_pointer_cast<DecisionTreeFactor>(scheduler.
product());
 
  118   SETDEBUG(
"DiscreteConditional::DiscreteConditional", 
true);
 
  133   SETDEBUG(
"DiscreteConditional::COUNT", 
true);
 
  138   vector<double> slotsAvailable(
largeExample(0).nrTimeSlots(), 1.0);
 
  141   for (
size_t s = 0; 
s < 7; 
s++) {
 
  163     size_t bestSlot = root->argmax();
 
  168     values[dkey.first] = bestSlot;
 
  169     size_t count = (*root)(
values);
 
  172     slotsAvailable[bestSlot] = 0.0;
 
  173     cout << scheduler.
studentName(6 - 
s) << 
" = " << scheduler.
slotName(bestSlot) << 
" (" << bestSlot
 
  174          << 
"), count = " << count << endl;
 
  198     size_t slot, vector<Scheduler>& schedulers) {
 
  201   SETDEBUG(
"Scheduler::buildGraph", 
false);
 
  205   schedulers.push_back(scheduler);
 
  211   vector<Scheduler> schedulers;
 
  212   vector<DiscreteBayesNet::shared_ptr> samplers(7);
 
  215   vector<size_t> slots{16, 17, 11, 2, 0, 5, 9}; 
 
  216   for (
size_t i = 0; 
i < 7; 
i++)
 
  220   for (
size_t n = 0; 
n < 500; 
n++) {
 
  221     vector<size_t> 
stats(19, 0);
 
  222     vector<DiscreteValues> 
samples;
 
  223     for (
size_t i = 0; 
i < 7; 
i++) {
 
  224       samples.push_back(samplers[
i]->sample());
 
  230     if (nz >= 15 && 
max <= 2) {
 
  231       cout << 
"Sampled schedule " << (
n + 1) << 
", min = " << 
min << 
", nz = " << nz
 
  232            << 
", max = " << 
max << endl;
 
  233       for (
size_t i = 0; 
i < 7; 
i++) {
 
  234         cout << schedulers[
i].studentName(0) << 
" : " << schedulers[
i].slotName(
 
  290   scheduler.
addStudent(
"Carlos N", 
"Perception", 
"AI", 
"Autonomy",
 
  291       "Henrik Christensen");
 
  292   scheduler.
print(
"scheduler");
 
  295   vector<size_t> slots{16, 17, 11, 2, 0, 5, 9, 14};
 
  296   vector<double> slotsAvailable(scheduler.
nrTimeSlots(), 1.0);
 
  298   slotsAvailable[
s] = 0;
 
  314   size_t bestSlot = root->argmax();
 
  319   values[dkey.first] = bestSlot;
 
  320   size_t count = (*root)(
values);
 
  321   cout << scheduler.
studentName(0) << 
" = " << scheduler.
slotName(bestSlot) << 
" (" << bestSlot
 
  322        << 
"), count = " << count << endl;
 
  324   for (
size_t n = 0; 
n < 10; 
n++) {
 
  325     auto sample0 = chordal->sample();
 
  
void solveStaged(size_t addMutex=2)
const std::string & slotName(size_t s) const
#define tictoc_finishedIteration()
DiscreteBayesNet::shared_ptr createSampler(size_t i, size_t slot, vector< Scheduler > &schedulers)
KeyFormatter DefaultKeyFormatter
Assign default key formatter.
set noclip points set clip one set noclip two set bar set border lt lw set xdata set ydata set zdata set x2data set y2data set boxwidth set dummy y set format x g set format y g set format x2 g set format y2 g set format z g set angles radians set nogrid set key title set key left top Right noreverse box linetype linewidth samplen spacing width set nolabel set noarrow set nologscale set logscale x set set pointsize set encoding default set nopolar set noparametric set set samples
void addStudentSpecificConstraints(size_t i, std::optional< size_t > slot={})
static constexpr bool debug
DiscreteBayesNet::shared_ptr eliminate() const
void addStudent(Scheduler &s, size_t i)
static const std::vector< Vector3 > large
DiscreteFactor::shared_ptr product() const
void printAssignment(const DiscreteValues &assignment) const
std::shared_ptr< This > shared_ptr
shared_ptr to this class
std::pair< Key, size_t > DiscreteKey
size_t nrStudents() const
current number of students
void setSlotsAvailable(const std::vector< double > &slotsAvailable)
std::shared_ptr< This > shared_ptr
void product(const MatrixType &m)
void print(const std::string &s="Scheduler", const KeyFormatter &formatter=DefaultKeyFormatter) const override
const std::string & studentName(size_t i) const
DiscreteValues optimize(OptionalOrderingType orderingType={}) const
Find the maximum probable explanation (MPE) by doing max-product.
void buildGraph(size_t mutexBound=7)
Scheduler largeExample(size_t nrStudents=7)
void addStudent(const std::string &studentName, const std::string &area1, const std::string &area2, const std::string &area3, const std::string &advisor)
const DiscreteKey & studentKey(size_t i) const
size_t nrTimeSlots() const
gtsam
Author(s): 
autogenerated on Wed May 28 2025 03:03:01