28 gen.
Read(
"data/syn_manufacturing_w1.gen");
30 gen.
Read(
"data/syn_manufacturing_m1.gen");
32 gen.
Read(
"data/syn_manufacturing_w2.gen");
34 gen.
Read(
"data/syn_manufacturing_m2.gen");
49 gen.
Read(
"data/syn_manufacturing_b1.gen");
51 gen.
Read(
"data/syn_manufacturing_b2.gen");
55 std::map<Idx,Idx> MapEventsToPlant;
66 MapEventsToPlant, DisGenVec, SupGenVec);
72 std::cout <<
"################################\n";
73 std::cout <<
"Hello, this is a test case for compositional synthesis \n";
74 std::cout <<
"################################\n";
78 std::map<Idx,Idx>::iterator mit = MapEventsToPlant.begin();
79 std::cout <<
"################\n";
80 std::cout <<
"this is map\n";
81 std::cout <<
"################\n";
82 for(; mit != MapEventsToPlant.end(); ++mit) {
83 std::cout <<
"map "<<pEvSymTab->
Symbol(mit->first) <<
" to ";
84 std::cout << pEvSymTab->
Symbol(mit->second) << std::endl;
89 for(; i < DisGenVec.
Size(); ++i) {
96 for(i=0; i < SupGenVec.
Size(); ++i) {
104 Idx TransRelSize = 0;
105 for(i=0; i < SupGenVec.
Size(); ++i) {
106 Size += SupGenVec.
At(i).
Size();
110 std::cout<<
" the number of supervisors is "<<SupGenVec.
Size()<<std::endl;
111 std::cout<<
" the total size is "<<Size<<std::endl;
112 std::cout<<
" the total number of TransRel is "<<TransRelSize<<std::endl;
113 std::cout <<
"################################\n";
131 Parallel(SigSupGen, SigDisGen, My_Closed);
139 mit = MapEventsToPlant.begin();
140 for(; mit != MapEventsToPlant.end(); ++mit) {
141 if(mit->first == mit->second)
continue;
143 Idx kid = mit->first;
144 Idx parent = mit->second;
150 for(; tit != invtr.
EndByEv(kid); ++tit)
160 std::cout <<
"the size of closed behavior is :\n";
161 std::cout <<
"the states : " << My_Closed.
Size() << std::endl;
162 std::cout <<
"the TransRel : " << My_Closed.
TransRelSize() << std::endl;
163 std::cout <<
"################################\n";
172 bool my_iscon =
true;
183 std::cout <<
"the supervisor is " << (my_iscon?
"":
" not ") <<
"controllable\n";
184 std::cout <<
"the supervisor is " << (my_isNB?
"":
" not ") <<
"nonblocking\n";
#define FAUDES_TEST_DIFF()
#define FAUDES_TEST_DUMP(mes, dat)
bool Insert(const Idx &rIndex)
std::string Symbol(Idx index) const
std::vector< int >::size_type Position
virtual const T & At(const Position &pos) const
Iterator EndByEv(Idx ev) const
Iterator BeginByEv(Idx ev) const
void Read(const std::string &rFileName, const std::string &rLabel="", const Type *pContext=0)
void Write(const Type *pContext=0) const
virtual void PushBack(const Type &rElem)
const TransSet & TransRel(void) const
bool SetTransition(Idx x1, Idx ev, Idx x2)
SymbolTable * EventSymbolTablep(void) const
Idx TransRelSize(void) const
void aParallel(const Generator &rGen1, const Generator &rGen2, Generator &rResGen)
void Parallel(const Generator &rGen1, const Generator &rGen2, Generator &rResGen)
bool IsControllable(const Generator &rPlantGen, const EventSet &rCAlph, const Generator &rSupCandGen)
void CompositionalSynthesis(const GeneratorVector &rPlantGenVec, const EventSet &rConAlph, const GeneratorVector &rSpecGenVec, std::map< Idx, Idx > &rMapEventsToPlant, GeneratorVector &rDisGenVec, GeneratorVector &rSupGenVec)
bool IsNonblocking(const GeneratorVector &rGvec)