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  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 
24 #ifndef FAUDES_SSCON_H
25 #define FAUDES_SSCON_H
26 
27 #include "corefaudes.h"
28 #include "syn_supcon.h"
29 #include "syn_functions.h"
30 
31 namespace faudes {
32 
33 
34 /**
35  * Test consistency of an abstractions w.r.t. standard controller synthesis.
36  *
37  * Test whether abstraction-based supervisory controller design is guaranteed to
38  * lead to a non-blocking and controllable closed loop. This function implements
39  * the test proposed in "Moor, T.: Natural projections for the synthesis of
40  * non-conflicting supervisory controllers, Workshop on Discrete Event Systems (WODES), Paris, 2014".
41  *
42  * Parameter restrictions: the generator has to be deterministic and the alphabets must match (see below for exceptions).
43  *
44  *
45  * @param rPlantGen
46  * plant G
47  * @param rCAlph
48  * controllable events
49  * @param rPlant0Gen
50  * plant abstraction G0
51  *
52  * @exception Exception
53  * - the abstraction rPlant0Gen must have been obtained from the plant rPlantGen by natural projection (not tested)
54  * - the abstraction alphabet given by rPlant0Gen fails to be a subset of the overall alphabet given by rPlantGen (id 506)
55  * - alphabet with controllable Events fails be a subset of the abstraction alphabet given by rAbstrGen (id 506)
56  * - generators fail to be deterministic (id 501)
57  *
58  * @return
59  * true / false
60  *
61  * @ingroup SynthesisPlugIn
62  */
63 
65  const Generator& rPlantGen,
66  const EventSet& rCAlph,
67  const Generator& rPlant0Gen);
68 
69 
70 /**
71  * Test consistency of an abstraction w.r.t standard synthesis.
72  *
73  * This is a convenience wrapprt for IsStdSynthesisConsistent(const Generator&, const EventSet&, const Generator&).
74  *
75  *
76  *
77  * @param rPlantGen
78  * plant G incl. controllable events
79  * @param rPlant0Gen
80  * plant abstraction G0
81  *
82  * @exception Exception
83  * - the abstraction rPlant0Gen must have been obtained from the plant rPlantGen by natural projection (not tested)
84  * - the abstraction alphabet given by rPlant0Gen fails to be a subset of the overall alphabet given by rPlantGen (id 506)
85  * - alphabet with controllable Events fails be a subset of the abstraction alphabet given by rAbstrGen (id 506)
86  * - generators fail to be deterministic (id 501)
87  *
88  * @return
89  * true / false
90  *
91  * @ingroup SynthesisPlugIn
92  */
94  const System& rPlantGen,
95  const Generator& rPlant0Gen);
96 
97 }// namespace faudes
98 
99 #endif
100 
101 

libFAUDES 2.24g --- 2014.09.15 --- c++ api documentaion by doxygen