About
User Reference
C++ API
luafaudes
Developer
Links
libFAUDES online
libFAUDES
C++ API
Sections
Sets
Generators
Functions
PlugIns
Tutorials
Index
Classes
Files
syn_compsyn.h
Go to the documentation of this file.
1
/** @file syn_compsynth.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 rPlantSpecVec
50
* Specification components (must be deterministic)
51
* @param rMapEventsToPlant
52
* Resulting event map
53
* @param rPlantDisVec
54
* Resulting distinuisher automata
55
* @param rPlantDisVec
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 rPlantSpecVec
79
* Specification components (must be deterministic)
80
* @param rMapEventsToPlant
81
* Resulting event map
82
* @param rPlantDisVec
83
* Resulting distinuisher automata
84
* @param rPlantDisVec
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 rPlantSpecVec
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
libFAUDES 2.28c
--- 2016.09.30 --- c++ api documentaion by
doxygen
>>
C++ API
Introduction
Sets
Generators
Functions
PlugIns
Tutorials
Classes
Files
Top of Page