syn_compsyn.h
Go to the documentation of this file.
1 /** @file syn_compsyn.h Compositional synthesis */
2 
3 /* FAU Discrete Event Systems Library (libfaudes)
4 
5  Copyright (C) 2015 Hao Zhou, Thomas Moor
6  Exclusive copyright is granted to Klaus Schmidt
7 
8  This library is free software; you can redistribute it and/or
9  modify it under the terms of the GNU Lesser General Public
10  License as published by the Free Software Foundation; either
11  version 2.1 of the License, or (at your option) any later version.
12 
13  This library is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  Lesser General Public License for more details.
17 
18  You should have received a copy of the GNU Lesser General Public
19  License along with this library; if not, write to the Free Software
20  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
21 
22 
23 #ifndef FAUDES_COMPSYN_H
24 #define FAUDES_COMPSYN_H
25 
26 #include "corefaudes.h"
27 
28 namespace faudes {
29 
30 /**
31  * Compositional synthesis
32  *
33  * This function implements controller synthesis for composed
34  * plants and composed specifications as discussed in
35  * "On Compostional Approaches for Discrete Event Systems
36  * Verification and Synthesis" Sahar Mohajerani, PhD, Sweden, 2015.
37  *
38  * The present implementation was developed by Hao Zhou in course
39  * of his Master Thesis "Abstraktion und Komposition fuer den Entwurf
40  * ereignisdiskreter Regler", Erlangen, 2015. This particular variant
41  * throughs an exception on invalid input data; see also
42  * CompositionalSynthesisUnchecked(const GeneratorVector&,const EventSet&,const GeneratorVector&,std::map<Idx,Idx>&,GeneratorVector&,GeneratorVector&);
43  *
44  *
45  * @param rPlantGenVec
46  * Plant components (must be deterministic)
47  * @param rConAlph
48  * Overall set of controllable events
49  * @param rSpecGenVec
50  * Specification components (must be deterministic)
51  * @param rMapEventsToPlant
52  * Resulting event map
53  * @param rDisGenVec
54  * Resulting distinuisher automata
55  * @param rSupGenVec
56  * Resulting supervisor automata
57  *
58  * @ingroup SynthesisPlugIn
59  */
60 extern FAUDES_API void CompositionalSynthesis(const GeneratorVector& rPlantGenVec,
61  const EventSet& rConAlph,
62  const GeneratorVector& rSpecGenVec,
63  std::map<Idx,Idx>& rMapEventsToPlant,
64  GeneratorVector& rDisGenVec,
65  GeneratorVector& rSupGenVec);
66 
67 /**
68  * Compositional synthesis
69  *
70  * Variant of
71  * CompositionalSynthesis(const GeneratorVector&,const EventSet&,const GeneratorVector&,std::map<Idx,Idx>&,GeneratorVector&,GeneratorVector&);
72  * without parameter-consistency test.
73  *
74  * @param rPlantGenVec
75  * Plant components (must be deterministic)
76  * @param rConAlph
77  * Overall set of controllable events
78  * @param rSpecGenVec
79  * Specification components (must be deterministic)
80  * @param rMapEventsToPlant
81  * Resulting event map
82  * @param rDisGenVec
83  * Resulting distinuisher automata
84  * @param rSupGenVec
85  * Resulting supervisor automata
86  *
87  */
88 extern FAUDES_API void CompositionalSynthesisUnchecked(const GeneratorVector& rPlantGenVec,
89  const EventSet& rConAlph,
90  const GeneratorVector& rSpecGenVec,
91  std::map<Idx,Idx>& rMapEventsToPlant,
92  GeneratorVector& rDisGenVec,
93  GeneratorVector& rSupGenVec);
94 
95 
96 
97 /**
98  * Compositional synthesis
99  *
100  * Text consistency of input-data fro compositional synthesis; through exception on error.
101  *
102  * @param rPlantGenVec
103  * Plant components (must be deterministic)
104  * @param rConAlph
105  * Overall set of controllable events
106  * @param rSpecGenVec
107  * Specification components (must be deterministic)
108  *
109  */
110 extern FAUDES_API void ControlProblemConsistencyCheck(const GeneratorVector& rPlantGenVec,
111  const EventSet& rConAlph,
112  const GeneratorVector& rSpecGenVec);
113 
114 
115 } // namespace faudes
116 
117 #endif
118 
119 
#define FAUDES_API
Interface export/import symbols: windows.
Definition: cfl_platform.h:81
Includes all libFAUDES headers, no plugins.
NameSet EventSet
Convenience typedef for plain event sets.
Definition: cfl_nameset.h:531
TBaseVector< Generator > GeneratorVector
Convenience typedef for vectors og generators.
void CompositionalSynthesis(const GeneratorVector &rPlantGenVec, const EventSet &rConAlph, const GeneratorVector &rSpecGenVec, std::map< Idx, Idx > &rMapEventsToPlant, GeneratorVector &rDisGenVec, GeneratorVector &rSupGenVec)
Compositional synthesis.
libFAUDES resides within the namespace faudes.
void CompositionalSynthesisUnchecked(const GeneratorVector &rPlantGenVec, const EventSet &rConAlph, const GeneratorVector &rSpecGenVec, std::map< Idx, Idx > &rMapEventsToPlant, GeneratorVector &rDisGenVec, GeneratorVector &rSupGenVec)
Compositional synthesis.
void ControlProblemConsistencyCheck(const GeneratorVector &rPlantGenVec, const EventSet &rConAlph, const GeneratorVector &rSpecGenVec)
Compositional synthesis.

libFAUDES 2.32b --- 2024.03.01 --- c++ api documentaion by doxygen