|
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) Test protocol record macro ("mangle" filename for platform independance)
const TaEventSet< EventAttr > & Alphabet(void) const Return const reference to alphabet.
Generator with controllability attributes.
EventSet ObservableEvents(void) const Get EventSet with observable events.
void DWrite(const Type *pContext=0) const Write configuration data to console, debugging format.
void Write(const Type *pContext=0) const Write configuration data to console.
void SWrite(TokenWriter &rTw) const Write statistics comment to TokenWriter.
Base class of all FAUDES generators.
bool StateNamesEnabled(void) const Whether libFAUEDS functions are requested to generate state names.
Idx Size(void) const Get generator size (number of states)
bool OmegaTrim(void) Make generator omega-trim.
void StateMin(const Generator &rGen, Generator &rResGen) State set minimization.
void PrefixClosure(Generator &rGen) Prefix Closure.
void MarkAllStates(vGenerator &rGen) RTI wrapper function.
void OmegaProduct(const Generator &rGen1, const Generator &rGen2, Generator &rResGen) Product composition for Buechi automata.
void InvProject(Generator &rGen, const EventSet &rProjectAlphabet) Inverse projection.
void OmegaConNormNB(const Generator &rPlantGen, const EventSet &rCAlph, const EventSet &rOAlph, const Generator &rSpecGen, Generator &rResGen) Omega-synthesis for partial observation (experimental!)
bool IsControllable(const Generator &rPlantGen, const EventSet &rCAlph, const Generator &rSupCandGen) Test controllability.
bool IsNormal(const Generator &rL, const EventSet &rOAlph, const Generator &rK) IsNormal: checks normality of a language K generated by rK wrt a language L generated by rL and the s...
void OmegaSupConNormNB(const Generator &rPlantGen, const EventSet &rCAlph, const EventSet &rOAlph, const Generator &rSpecGen, Generator &rResGen) Omega-synthesis for partial observation (experimental!)
bool IsOmegaControllable(const Generator &rGenPlant, const EventSet &rCAlph, const Generator &rGenCand) Test omega controllability.
bool IsRelativelyOmegaClosed(const Generator &rGenPlant, const Generator &rGenCand) Test for relative closedness, omega languages.
void OmegaSupConNB(const Generator &rPlantGen, const EventSet &rCAlph, const Generator &rSpecGen, Generator &rResGen) Omega-synthesis.
void SupConCmplNB(const Generator &rPlantGen, const EventSet &rCAlph, const Generator &rSpecGen, Generator &rResGen) Supremal controllable and complete sublanguage.
void OmegaConNB(const Generator &rPlantGen, const EventSet &rCAlph, const Generator &rSpecGen, Generator &rResGen) Omega-synthesis.
Includes all libFAUDES headers, incl plugings
libFAUDES resides within the namespace faudes.
libFAUDES 2.32b
--- 2024.03.01
--- c++ api documentaion by doxygen
|