|
Go to the documentation of this file.
49 System machineab1( "data/wmachineab1.gen");
50 System machineab2( "data/wmachineab2.gen");
51 System machineab3( "data/wmachineab3.gen");
68 std::cout << "################################\n";
69 std::cout << "# fixed lazy specifications by omega-trim \n# intersection with plant, state count\n";
70 std::cout << " w.r.t a-b-machine 1 (std case): \n ";
71 std::cout << " #" << specab11. Size() << " #" << specab21. Size() << " #" << specab31. Size() << "\n";
72 std::cout << " w.r.t a-b-machine 2 (b exhausts the machine): \n ";
73 std::cout << " #" << specab12. Size() << " #" << specab22. Size() << " #" << specab32. Size() << "\n";
74 std::cout << " w.r.t a-b-machine 3 (b breaks the machine): \n ";
75 std::cout << " #" << specab13. Size() << " #" << specab23. Size() << " #" << specab33. Size() << "\n";
76 std::cout << "################################\n";
93 std::cout << "################################\n";
94 std::cout << "# omega relative closedness w.r.t. ab-machines\n";
95 std::cout << " w.r.t a-b-machine 1 (std case): \n ";
96 if(rcl1_1) std::cout << " passed "; else std::cout << " failed ";
97 if(rcl2_1) std::cout << " passed "; else std::cout << " failed ";
98 if(rcl3_1) std::cout << " passed "; else std::cout << " failed ";
100 std::cout << " w.r.t a-b-machine 2 (b exhausts the machine): \n ";
101 if(rcl1_2) std::cout << " passed "; else std::cout << " failed ";
102 if(rcl2_2) std::cout << " passed "; else std::cout << " failed ";
103 if(rcl3_2) std::cout << " passed "; else std::cout << " failed ";
105 std::cout << " w.r.t a-b-machine 3 (b breaks the machine): \n ";
106 if(rcl1_3) std::cout << " passed "; else std::cout << " failed ";
107 if(rcl2_3) std::cout << " passed "; else std::cout << " failed ";
108 if(rcl3_3) std::cout << " passed "; else std::cout << " failed ";
110 std::cout << "################################\n";
136 std::cout << "################################\n";
137 std::cout << "# omega synthesis statistics\n";
142 std::cout << "################################\n";
152 std::cout << "################################\n";
153 std::cout << "# omega controllability:\n";
155 std::cout << "# supervisor11: passed (expected)\n";
157 std::cout << "# supervisor11: failed (test case error)\n";
159 std::cout << "# supervisor12: passed (expected)\n";
161 std::cout << "# supervisor12: failed (test case error)\n";
163 std::cout << "# supervisor21: passed (expected)\n";
165 std::cout << "# supervisor21: failed (test case error)\n";
167 std::cout << "# supervisor23: passed (expected)\n";
169 std::cout << "# supervisor23: failed (test case error)\n";
170 std::cout << "################################\n";
184 machineab1. Write( "tmp_syn_2_machineab1.gen");
185 machineab2. Write( "tmp_syn_2_machineab2.gen");
186 machineab3. Write( "tmp_syn_2_machineab3.gen");
187 specab1. Write( "tmp_syn_2_specab1.gen");
188 specab2. Write( "tmp_syn_2_specab2.gen");
189 specab3. Write( "tmp_syn_2_specab3.gen");
190 supab11. Write( "tmp_syn_2_supab11.gen");
191 supab21. Write( "tmp_syn_2_supab21.gen");
192 supab12. Write( "tmp_syn_2_supab12.gen");
193 supab23. Write( "tmp_syn_2_supab23.gen");
218 std::cout << "################################\n";
219 std::cout << "# omega synthesis statistics\n";
229 std::cout << "################################\n";
266 msupab31. Write( "tmp_syn_2_msupab31.gen");
269 msupab32. Write( "tmp_syn_2_msupab32.gen");
272 msupab33. Write( "tmp_syn_2_msupab33.gen");
280 System ex1plant( "data/wplant1.gen");
294 ex1plant. Write( "tmp_syn_2_wplant1.gen");
295 ex1spec. Write( "tmp_syn_2_wspec1.gen");
297 ex1super. Write( "tmp_syn_2_wsuper1.gen");
300 std::cout << "################################\n";
301 std::cout << "# extended omega synthesis example 1 \n";
304 std::cout << "prefix controllability: " << cntr1 << std::endl;
305 std::cout << "rel. top. closed: " << closed1 << std::endl;
306 std::cout << "################################\n";
310 System ex2plant( "data/wplant2.gen");
327 std::cout << "################################\n";
328 std::cout << "# extended omega synthesis example 2 \n";
331 std::cout << "prefix controllability: " << cntr2 << std::endl;
332 std::cout << "rel. top. closed: " << closed2 << std::endl;
333 std::cout << "################################\n";
336 ex2plant. Write( "tmp_syn_2_wplant2.gen");
337 ex2spec. Write( "tmp_syn_2_wspec2.gen");
339 ex2super. Write( "tmp_syn_2_wsuper2.gen");
342 System ex3plant( "data/wplant3.gen");
351 StateMin(ex3controller, ex3controller);
364 std::cout << "################################\n";
365 std::cout << "# extended omega synthesis example 3 \n";
368 std::cout << "prefix controllability: " << cntr3 << std::endl;
369 std::cout << "prefix normality : " << norm3 << std::endl;
370 std::cout << "rel. top. closed: " << closed3 << std::endl;
371 std::cout << "################################\n";
374 ex3plant. Write( "tmp_syn_2_wplant3.gen");
375 ex3spec. Write( "tmp_syn_2_wspec3.gen");
377 ex3super. Write( "tmp_syn_2_wsuper3.gen");
379 ex3controller. Write( "tmp_syn_2_wcontr3.gen");
#define FAUDES_TEST_DUMP(mes, dat)
const TaEventSet< EventAttr > & Alphabet(void) const
EventSet ObservableEvents(void) const
void DWrite(const Type *pContext=0) const
void Write(const Type *pContext=0) const
void SWrite(TokenWriter &rTw) const
bool StateNamesEnabled(void) const
void StateMin(const Generator &rGen, Generator &rResGen)
void PrefixClosure(Generator &rGen)
void MarkAllStates(vGenerator &rGen)
void OmegaProduct(const Generator &rGen1, const Generator &rGen2, Generator &rResGen)
void InvProject(Generator &rGen, const EventSet &rProjectAlphabet)
bool IsControllable(const Generator &rPlantGen, const EventSet &rCAlph, const Generator &rSupCandGen)
bool IsNormal(const Generator &rL, const EventSet &rOAlph, const Generator &rK)
void OmegaSupConNormNB(const Generator &rPlantGen, const EventSet &rCAlph, const EventSet &rOAlph, const Generator &rSpecGen, Generator &rResGen)
bool IsRelativelyOmegaClosed(const Generator &rGenPlant, const Generator &rGenCand)
void OmegaSupConNB(const Generator &rPlantGen, const EventSet &rCAlph, const Generator &rSpecGen, Generator &rResGen)
bool IsOmegaControllable(const Generator &rGenPlant, const EventSet &rCAlph, const Generator &rGenCand)
void SupConCmplNB(const Generator &rPlantGen, const EventSet &rCAlph, const Generator &rSpecGen, Generator &rResGen)
void OmegaConNormNB(const Generator &rPlantGen, const EventSet &rCAlph, const EventSet &rOAlph, const Generator &rSpecGen, Generator &rResGen)
void OmegaConNB(const Generator &rPlantGen, const EventSet &rCAlph, const Generator &rSpecGen, Generator &rResGen)
libFAUDES 2.33b
--- 2025.05.07
--- c++ api documentaion by doxygen
|