|
|
||||||
|
syn_wsupcon.cpp
Go to the documentation of this file.
167 if(rPlantGen.StateNamesEnabled() && rSpecGen.StateNamesEnabled() && rResGen.StateNamesEnabled())
254 if(rPlantGen.StateNamesEnabled() && rSpecGen.StateNamesEnabled() && rResGen.StateNamesEnabled())
317 FD_DF("SupConNormCmplNB(" << rL.Name() << "," << rK.Name() << "): #" << Ki.Size() << " m#" << Ki.MarkedStatesSize());
348 SupConNormCmplNB(rPlantGen,rPlantGen.ControllableEvents(),rPlantGen.ObservableEvents(),rSpecGen,*pResGen);
374 originally proposed by J. Thistle et al. The actual implementation, however, is based on a sufficient
535 W.M. Wonham, 1992, adapted for the special case of deterministic Buchi-automata. Referring to the
536 referenced literature, the corresponding iteration is "essentially optimal" in terms of performance.
538 to apply strategic substitutions in order to obtain a reference implementation. This is suspected
539 to introduce (linear) penalty for avoidable boolean operations on sets of states. In a recent study,
563 // here, p(T) denotes the set of states that can be driven to enter T under liveness assumption inf-markL;
574 FD_DF("OmegaControlledLiveness(): [STD] iterate resolved/targetLstar #" << xsz << "/" << targetLstar.Size());
577 // here, thetaTilde(T) denotes the set of states that can be controlled such that T is persistently
588 // evaluate thetaTilde(targetL)=nu(domainL).mu(target1)[ theta(targetL+(target1-markL), domainL-markL) ];
589 // here, theta(T,D) is the set of states that, by one transition, can enter T and can be controlled not to exit D+T;
590 // start with domainL:=full and iterate domainL -= mu(target1)[theta(targetL+(target1-markL), domainL-markL)];
715 FD_WARN("OmegaControlledLiveness(): [FBM] iterate resolved/targetLstar #" << xsz << "/" << targetLstar.Size());
727 // evaluate thetaTilde(targetL)=nu(domainL).mu(target1)[ theta(targetL+(target1-markL), domainL-markL) ];
830 FD_WARN("OmegaControlledLiveness(): [FBM] controls " << rSupCandGen.SStr(*sit) << " " << controls1X[*sit].ToString());
924 FD_WARN("OmegaControlledLiveness(): [POBS] iterate resolved/targetLstar #" << xsz << "/" << targetLstar.Size());
936 // evaluate thetaTilde(targetL)=nu(domainL).mu(target1)[ theta(targetL+(target1-markL), domainL-markL) ];
1023 //FD_WARN("OmegaControlledLiveness(): [POBS] theta candidate verified " << rSupCandGen.SStr(*sit));
1089 //FD_WARN("OmegaControlledLiveness(): [POBS] controls at cx=" << cx << " for plant state " << rSupCandGen.SStr(*sit) << " " << controls1X[cx].disable_all.ToString());
1183 FD_WPC(rProductCompositionMap.size(),rProductCompositionMap.size()+todo.size(),"OmegaSupConProduct(): processing");
1184 FD_DF("OmegaSupConProduct(): processing" << rProductCompositionMap.size() << " " << todo.size());
1194 // iterate over transitions, pass1: figure whether current state becomes critical (tmoor 201308)
1216 FD_DF("OmegaSupconOmegaParallel: common event " << rSpecGen.EStr(stit->Ev) << " to a critical states");
1236 FD_DF("SupConProduct: " << rPlantGen.EStr(ptit->Ev) << " is enabled in the plant but disabled in the specification");
1239 FD_DF("OmegaSupConProduct: disabled event " << rPlantGen.EStr(ptit->Ev) << " is uncontrollable");
1311 FD_DF("OmegaSuperParallel: add transition to new generator: " << rResGen.TStr(Transition(currentt, ptit->Ev, nextt)));
1352 FD_DF("OmegaSupConNBUnchecked(\"" << rPlantGen.Name() << "\", \"" << rSpecGen.Name() << "\")");
1430 if(rPlantGen.StateNamesEnabled() && rSpecGen.StateNamesEnabled() && pResGen->StateNamesEnabled())
1449 if(!(rPlantGen.StateNamesEnabled() && rSpecGen.StateNamesEnabled() && pResGen->StateNamesEnabled()))
1485 FD_WARN("OmegaSupConNormNB: un-observabel events: " << (rPlantGen.Alphabet()-rOAlph).ToString());
1708 OmegaSupConNormNBUnchecked(rPlantGen, rCAlph, rOAlph, rSpecGen, plantmarking, constates, feedback, rResGen);
1710 rResGen.Name(CollapsString("OmegaSupConNormNB(("+rPlantGen.Name()+"),("+rSpecGen.Name()+"))"));
1726 OmegaSupConNormNB(rPlantGen, rPlantGen.ControllableEvents(),rPlantGen.ObservableEvents(),rSpecGen,*pResGen);
1751 OmegaSupConNormNBUnchecked(rPlantGen, rCAlph, rOAlph, rSpecGen, plantmarking, cxmap, feedback, rResGen);
1803 OmegaConNormNB(rPlantGen, rPlantGen.ControllableEvents(),rPlantGen.ObservableEvents(), rSpecGen,*pResGen);
#define FD_WPC(cntnow, contdone, message) Application callback: optional write progress report to console or application, incl count Definition: cfl_definitions.h:107 Definition: syn_wsupcon.cpp:842 virtual void InsertSet(const NameSet &rOtherSet) Inserts all elements of rOtherSet. Definition: cfl_nameset.cpp:295 Definition: syn_wsupcon.cpp:1107 bool operator<(const OPSState &other) const Definition: syn_wsupcon.cpp:1116 OPSState(const Idx &rq1, const Idx &rq2, const bool &rf) Definition: syn_wsupcon.cpp:1111 TBaseSet< Transition, TransSort::X1EvX2 >::Iterator Iterator Iterator on transition. Definition: cfl_transset.h:269 const TaEventSet< EventAttr > & Alphabet(void) const Return const reference to alphabet. Definition: cfl_agenerator.h:1358 EventSet ControllableEvents(void) const Get EventSet with controllable events. Definition: cfl_cgenerator.h:1124 EventSet ObservableEvents(void) const Get EventSet with observable events. Definition: cfl_cgenerator.h:1239 Triple (X1,Ev,X2) to represent current state, event and next state. Definition: cfl_transset.h:57 void DWrite(const Type *pContext=0) const Write configuration data to console, debugging format. Definition: cfl_types.cpp:225 std::string ToString(const std::string &rLabel="", const Type *pContext=0) const Write configuration data to a string. Definition: cfl_types.cpp:169 void Write(const Type *pContext=0) const Write configuration data to console. Definition: cfl_types.cpp:139 StateSet::Iterator StatesBegin(void) const Iterator to Begin() of state set. Definition: cfl_generator.cpp:1057 StateSet::Iterator InitStatesBegin(void) const Iterator to Begin() of mInitStates. Definition: cfl_generator.cpp:1150 bool SetTransition(Idx x1, Idx ev, Idx x2) Add a transition to generator by indices. Definition: cfl_generator.cpp:1626 const StateSet & MarkedStates(void) const Return const ref of marked states. Definition: cfl_generator.cpp:1913 const EventSet & Alphabet(void) const Return const reference to alphabet. Definition: cfl_generator.cpp:1878 virtual void Move(vGenerator &rGen) Destructive copy to other vGenerator. Definition: cfl_generator.cpp:333 bool InitStatesEmpty(void) const Check if set of initial states are empty. Definition: cfl_generator.cpp:663 EventSet ActiveEventSet(Idx x1) const Return active event set at state x1. Definition: cfl_generator.cpp:1938 const StateSet & InitStates(void) const Const ref to initial states. Definition: cfl_generator.cpp:1908 TransSet::Iterator TransRelBegin(void) const Iterator to Begin() of transition relation. Definition: cfl_generator.cpp:1067 void ClrTransition(Idx x1, Idx ev, Idx x2) Remove a transition by indices. Definition: cfl_generator.cpp:1660 void WriteStateSet(const StateSet &rStateSet) const Write a stateset to console (no re-indexing). Definition: cfl_generator.cpp:2535 void InjectMarkedStates(const StateSet &rNewMarkedStates) Replace mMarkedStates with StateSet given as parameter without consistency checks. Definition: cfl_generator.cpp:1535 bool ExistsState(Idx index) const Test existence of state in state set. Definition: cfl_generator.cpp:1776 bool IsCoaccessible(void) const Check if generator is Coaccessible. Definition: cfl_generator.cpp:2103 std::string TStr(const Transition &rTrans) const Return pretty printable transition (eg for debugging) Definition: cfl_generator.cpp:3841 StateSet::Iterator StatesEnd(void) const Iterator to End() of state set. Definition: cfl_generator.cpp:1062 void DelStates(const StateSet &rDelStates) Delete a set of states Cleans mpStates, mInitStates, mMarkedStates, mpTransrel, and mpStateSymboltabl... Definition: cfl_generator.cpp:1381 TransSet::Iterator TransRelEnd(void) const Iterator to End() of transition relation. Definition: cfl_generator.cpp:1072 std::string EStr(Idx index) const Pretty printable event name for index (eg for debugging). Definition: cfl_generator.cpp:3828 void SetMarkedState(Idx index) Set an existing state as marked state by index. Definition: cfl_generator.cpp:1507 Idx InsInitState(void) Create new anonymous state and set as initial state. Definition: cfl_generator.cpp:1287 virtual void EventAttributes(const EventSet &rEventSet) Set attributes for existing events. Definition: cfl_generator.cpp:1730 bool StateNamesEnabled(void) const Whether libFAUEDS functions are requested to generate state names. Definition: cfl_generator.cpp:999 std::string SStr(Idx index) const Return pretty printable state name for index (eg for debugging) Definition: cfl_generator.cpp:3834 bool ExistsMarkedState(Idx index) const Test existence of state in mMarkedStates. Definition: cfl_generator.cpp:1806 std::string UniqueStateName(const std::string &rName) const Create a new unique symbolic state name. Definition: cfl_generator.cpp:1039 void InjectAlphabet(const EventSet &rNewalphabet) Set mpAlphabet without consistency check. Definition: cfl_generator.cpp:1170 virtual void RestrictSet(const TBaseSet &rOtherSet) Restrict elements given by other set. Definition: cfl_baseset.h:2064 virtual void InsertSet(const TBaseSet &rOtherSet) Insert elements given by rOtherSet. Definition: cfl_baseset.h:1987 bool LanguageInclusion(const Generator &rGen1, const Generator &rGen2) Test language inclusion, Lm1<=Lm2. Definition: cfl_regular.cpp:815 void Product(const Generator &rGen1, const Generator &rGen2, Generator &rResGen) Product composition. Definition: cfl_parallel.cpp:418 void Project(const Generator &rGen, const EventSet &rProjectAlphabet, Generator &rResGen) Deterministic projection. Definition: cfl_project.cpp:1349 void InvProject(Generator &rGen, const EventSet &rProjectAlphabet) Inverse projection. Definition: cfl_project.cpp:1479 void OmegaConNormNB(const Generator &rPlantGen, const EventSet &rCAlph, const EventSet &rOAlph, const Generator &rSpecGen, Generator &rResGen) Omega-synthesis for partial observation (experimental!) Definition: syn_wsupcon.cpp:1737 bool IsControllable(const Generator &rPlantGen, const EventSet &rCAlph, const Generator &rSupCandGen) Test controllability. Definition: syn_supcon.cpp:718 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... Definition: syn_supnorm.cpp:104 void SupConNormClosed(const Generator &rL, const EventSet &rCAlph, const EventSet &rOAlph, const Generator &rK, Generator &rResult) SupConNormClosed: compute supremal controllable, normal and closed sublanguage. Definition: syn_supnorm.cpp:336 void OmegaSupConNormNB(const Generator &rPlantGen, const EventSet &rCAlph, const EventSet &rOAlph, const Generator &rSpecGen, Generator &rResGen) Omega-synthesis for partial observation (experimental!) Definition: syn_wsupcon.cpp:1695 bool IsOmegaControllable(const Generator &rGenPlant, const EventSet &rCAlph, const Generator &rGenCand) Test omega controllability. Definition: syn_wsupcon.cpp:42 bool IsRelativelyOmegaClosed(const Generator &rGenPlant, const Generator &rGenCand) Test for relative closedness, omega languages. Definition: syn_functions.cpp:396 void SupConCmplClosed(const Generator &rPlantGen, const EventSet &rCAlph, const Generator &rSpecGen, Generator &rResGen) Supremal controllable and complete sublanguage. Definition: syn_wsupcon.cpp:124 void OmegaSupConNB(const Generator &rPlantGen, const EventSet &rCAlph, const Generator &rSpecGen, Generator &rResGen) Omega-synthesis. Definition: syn_wsupcon.cpp:1588 void SupConCmplNB(const Generator &rPlantGen, const EventSet &rCAlph, const Generator &rSpecGen, Generator &rResGen) Supremal controllable and complete sublanguage. Definition: syn_wsupcon.cpp:209 void SupConNormCmplNB(const Generator &rL, const EventSet &rCAlph, const EventSet &rOAlph, const Generator &rK, Generator &rResult) Supremal controllable, normal and complete sublanguage. Definition: syn_wsupcon.cpp:295 void OmegaConNB(const Generator &rPlantGen, const EventSet &rCAlph, const Generator &rSpecGen, Generator &rResGen) Omega-synthesis. Definition: syn_wsupcon.cpp:1627 void SetComposedStateNames(const Generator &rGen1, const Generator &rGen2, const std::map< std::pair< Idx, Idx >, Idx > &rCompositionMap, Generator &rGen12) Helper: uses composition map to track state names in a paralell composition. Definition: cfl_parallel.cpp:654 void SupConProduct(const Generator &rPlantGen, const EventSet &rCAlph, const Generator &rSpecGen, std::map< std::pair< Idx, Idx >, Idx > &rCompositionMap, Generator &rResGen) Parallel composition optimized for the purpose of SupCon (internal function) Definition: syn_supcon.cpp:386 void SupConNormClosedUnchecked(const Generator &rPlantGen, const EventSet &rCAlph, const EventSet &rOAlph, Generator &rObserverGen, Generator &rSupCandGen) Supremal Normal Controllable Sublangauge (internal function) Definition: syn_supnorm.cpp:480 void OmegaSupConNBUnchecked(const Generator &rPlantGen, const EventSet &rCAlph, const Generator &rSpecGen, StateSet &rPlantMarking, Generator &rResGen) Definition: syn_wsupcon.cpp:1345 void OmegaSupConNormNBUnchecked(const Generator &rPlantGen, const EventSet &rCAlph, const EventSet &rOAlph, const Generator &rSpecGen, StateSet &rPlantMarking, std::map< Idx, Idx > &rObserverStateMap, std::map< Idx, EventSet > &rFeedbackMap, Generator &rResGen) Definition: syn_wsupcon.cpp:1463 std::string CollapsString(const std::string &rString, unsigned int len) Limit length of string, return head and tail of string. Definition: cfl_helper.cpp:91 void ControlProblemConsistencyCheck(const GeneratorVector &rPlantGenVec, const EventSet &rConAlph, const GeneratorVector &rSpecGenVec) Compositional synthesis. Definition: syn_compsyn.cpp:1301 bool IsRelativelyOmegaClosedUnchecked(const Generator &rGenPlant, const Generator &rGenCand) Test for relative closedness, omega languages. Definition: syn_functions.cpp:452 void SupConClosedUnchecked(const Generator &rPlantGen, const EventSet &rCAlph, Generator &rSupCandGen) Supremal Controllable Sublangauge (internal function) Definition: syn_supcon.cpp:57 bool OmegaControlledLiveness(Generator &rSupCandGen, const EventSet &rCAlph, const StateSet &rPlantMarking) Definition: syn_wsupcon.cpp:544 bool IsControllableUnchecked(const Generator &rPlantGen, const EventSet &rCAlph, const Generator &rSupCandGen, StateSet &rCriticalStates) Controllability (internal function) Definition: syn_supcon.cpp:243 void OmegaSupConProduct(const Generator &rPlantGen, const EventSet &rCAlph, const Generator &rSpecGen, std::map< OPSState, Idx > &rProductCompositionMap, Generator &rResGen) Definition: syn_wsupcon.cpp:1132 Misc functions related to synthesis. Supremal controllable sublanguage. Supremal normal sublanguage. Supremal controllable sublanguage for infinite time behaviours. libFAUDES 2.32b --- 2024.03.01 --- c++ api documentaion by doxygen |