syn_sscon.h
Go to the documentation of this file.
1 /** @file syn_sscon.h Standard syntheis consistency test */
2 
3 /* FAU Discrete Event Systems Library (libfaudes)
4 
5  Copyright (C) 2014 Matthias Leinfelder, Thomas Moor
6 
7  This library is free software; you can redistribute it and/or
8  modify it under the terms of the GNU Lesser General Public
9  License as published by the Free Software Foundation; either
10  version 2.1 of the License, or (at your option) any later version.
11 
12  This library is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  Lesser General Public License for more details.
16 
17  You should have received a copy of the GNU Lesser General Public
18  License along with this library; if not, write to the Free Software
19  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20 */
21 
22 
23 #ifndef FAUDES_SSCON_H
24 #define FAUDES_SSCON_H
25 
26 #include "corefaudes.h"
27 #include "syn_supcon.h"
28 #include "syn_functions.h"
29 
30 namespace faudes {
31 
32 
33 /**
34  * Test consistency of an abstractions w.r.t. standard controller synthesis.
35  *
36  * Test whether abstraction-based supervisory controller design is guaranteed to
37  * lead to a non-blocking and controllable closed loop. This function implements
38  * the test proposed in "Moor, T.: Natural projections for the synthesis of
39  * non-conflicting supervisory controllers, Workshop on Discrete Event Systems (WODES), Paris, 2014".
40  *
41  * Parameter restrictions: the generator has to be deterministic and the alphabets must match (see below for exceptions).
42  *
43  *
44  * @param rPlantGen
45  * plant G
46  * @param rCAlph
47  * controllable events
48  * @param rPlant0Gen
49  * plant abstraction G0
50  *
51  * @exception Exception
52  * - the abstraction rPlant0Gen must have been obtained from the plant rPlantGen by natural projection (not tested)
53  * - the abstraction alphabet given by rPlant0Gen fails to be a subset of the overall alphabet given by rPlantGen (id 506)
54  * - alphabet with controllable Events fails be a subset of the abstraction alphabet given by rAbstrGen (id 506)
55  * - generators fail to be deterministic (id 501)
56  *
57  * @return
58  * true / false
59  *
60  * @ingroup SynthesisPlugIn
61  */
62 
64  const Generator& rPlantGen,
65  const EventSet& rCAlph,
66  const Generator& rPlant0Gen);
67 
68 
69 /**
70  * Test consistency of an abstraction w.r.t standard synthesis.
71  *
72  * This is a convenience wrapprt for IsStdSynthesisConsistent(const Generator&, const EventSet&, const Generator&).
73  *
74  *
75  *
76  * @param rPlantGen
77  * plant G incl. controllable events
78  * @param rPlant0Gen
79  * plant abstraction G0
80  *
81  * @exception Exception
82  * - the abstraction rPlant0Gen must have been obtained from the plant rPlantGen by natural projection (not tested)
83  * - the abstraction alphabet given by rPlant0Gen fails to be a subset of the overall alphabet given by rPlantGen (id 506)
84  * - alphabet with controllable Events fails be a subset of the abstraction alphabet given by rAbstrGen (id 506)
85  * - generators fail to be deterministic (id 501)
86  *
87  * @return
88  * true / false
89  *
90  * @ingroup SynthesisPlugIn
91  */
93  const System& rPlantGen,
94  const Generator& rPlant0Gen);
95 
96 }// namespace faudes
97 
98 #endif
99 
100 
#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
vGenerator Generator
Plain generator, api typedef for generator with no attributes.
TcGenerator< AttributeVoid, AttributeVoid, AttributeCFlags, AttributeVoid > System
Convenience typedef for std System.
bool IsStdSynthesisConsistent(const Generator &rPlantGen, const EventSet &rCAlph, const Generator &rPlant0Gen)
Test consistency of an abstractions w.r.t.
Definition: syn_sscon.cpp:388
libFAUDES resides within the namespace faudes.
Misc functions related to synthesis.
Supremal controllable sublanguage.

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