← Documentation
ADS-IDAC Engine 5.0.0
BranchProbability.h
Go to the documentation of this file.
1#pragma once
2
3#include <iostream>
4#include <typeinfo>
5// BranchProbability.h: interface for the BranchProbability class.
6//
8
9#include "../CalculationAid/Probability.h"
10#include "BranchGoal.h"
11#include "BranchStrategy.h"
12#include "BranchSubGoal.h"
13#include "BranchDiagnosis.h"
15#include "BranchActionPack.h"
16#include "BranchAction.h"
22#include "BranchProcedureStep.h"
23#include "BranchSystemAction.h"
25#include "../Scheduler/CommunicationPlace.h"
26#include "../ControlPanel/StateOfActivation.h"
29#include <boost/archive/text_oarchive.hpp>
30#include <boost/archive/text_iarchive.hpp>
31#include <boost/serialization/access.hpp>
32#include <boost/serialization/vector.hpp>
33#include <boost/serialization/base_object.hpp>
34#include <boost/serialization/export.hpp>
35
45{
46public:
50 virtual ~BranchProbability();
55 void setIDOfThisBranch(int);
57// void setIThBranchInTheAssociatedBranchCluster(int);
64// int getIThBranchInTheAssociatedBranchCluster();
106 void setTypeOfChild(int);
107 int getTypeOfChild();
110 void saveInfoToFile(std::ostream &);
121 void saveBranchProbabilityToFile(std::ofstream &);
123 void retrieveBranchProbabilityFromFile(std::ifstream &);
126 std::vector<int> child_IDs;
128 template<class Archive>
129 void serialize(Archive & ar, const unsigned int version) {
130// std::cout << "Serializing class: " << typeid(*this).name() << std::endl;
131 // Serialize base class members
132 ar & boost::serialization::base_object<Probability>(*this);
133 ar & boost::serialization::base_object<CommunicationPlace>(*this);
134 ar & boost::serialization::base_object<StateOfActivation>(*this);
139 ar & type_of_child;
140 ar & child_IDs;
141 }
142private:
147 int type_of_child;//Branch Or ES
148// int i_th_branch_in_the_associated_branch_cluster;
149};
150
151
152BOOST_CLASS_EXPORT_KEY(BranchProbability)
One alternative of a BranchCluster, i.e. one PE node of the DET.
void calculateProbability()
Sets the conditional probability to the product of the probabilities of every content item this alter...
double unconditional_branch_probability
void copyBranchProbability(BranchProbability &)
Copies the IDs, probabilities, child type, state of activation and content of another alternative....
double getUnconditionalBranchProbability()
void saveBranchProbabilityToFile(std::ofstream &)
Writes the IDs, unconditional probability and child type, then the Probability, CommunicationPlace an...
BranchProbability()
Constructs an alternative with all IDs -999, unconditional probability -1.0 and child type sim::None.
void setUnconditionalBranchProbability(double)
void retrieveBranchProbabilityFromFile(std::ifstream &)
Reads the layout written by saveBranchProbabilityToFile.
void setTypeOfChild(int)
Sets the kind of node that follows this alternative: sim::Branch::Branch (a child cluster) or sim::Br...
void calUnconditionalBranchProbability(double)
Sets the unconditional probability to x times the conditional probability.
void serialize(Archive &ar, const unsigned int version)
void setIDOfTheChildBranchCluster(int)
Sets the ID of the node that follows this alternative: the child cluster ID, or the end state ID when...
friend class boost::serialization::access
std::vector< int > child_IDs
void setIDOfTheAssociatedBranchCluster(int)
int getIDOfTheAssociatedBranchCluster()
void sendBranchInfoToCommandCenter(int)
Hands the content of this alternative to the command center (g_sim.Command_handler)....
void saveInfoToFile(std::ostream &)
Writes the content of this alternative in the PE node text form (CommunicationPlace::saveInfoToFileAs...