syn_supreduce.h
Go to the documentation of this file.
1 /** @file syn_supreduce.h Supervisor Reduction */
2 
3 /* FAU Discrete Event Systems Library (libfaudes)
4 
5  Copyright (C) 2006 Bernd Opitz
6  Copyright (C) 2007 Thomas Moor
7  Exclusive copyright is granted to Klaus Schmidt
8 
9  This library is free software; you can redistribute it and/or
10  modify it under the terms of the GNU Lesser General Public
11  License as published by the Free Software Foundation; either
12  version 2.1 of the License, or (at your option) any later version.
13 
14  This library is distributed in the hope that it will be useful,
15  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17  Lesser General Public License for more details.
18 
19  You should have received a copy of the GNU Lesser General Public
20  License along with this library; if not, write to the Free Software
21  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
22 
23 #ifndef FAUDES_SUPREDUCE_H
24 #define FAUDES_SUPREDUCE_H
25 
26 #include "corefaudes.h"
27 
28 namespace faudes {
29 
30 /**
31  * Supervisor Reduction algorithm
32  *
33  * Computes a reduced supervisor from a given potentially non-reduced supervisor and the plant.
34  * This algorithm implements the results obtained in
35  *
36  * R. Su and W. M. Wonham. Supervisor Reduction for Discrete-Event Systems.
37  * Discrete Event Dynamic Systems vol. 14, no. 1, January 2004.
38  *
39  * Both, plant and supervisor MUST be deterministic and share the same alphabet!!!
40  *
41  * @param rPlantGen
42  * Plant generator
43  * @param rSupGen
44  * Supervisor generator
45  * @param rReducedSup
46  * Reduced supervisor generator
47  *
48  * @return
49  * True if a reduction was achieved
50  *
51  * @exception Exception
52  * - alphabets of generators don't match (id 100)
53  * - plant nondeterministic (id 201)
54  * - supervisor nondeterministic (id 203)
55  * - plant and supervisor nondeterministic (id 204)
56  *
57  * @ingroup SynthesisPlugIn
58  */
59 extern FAUDES_API bool SupReduce(const System& rPlantGen, const System& rSupGen, System& rReducedSup);
60 
61 
62 
63 
64 } // namespace faudes
65 
66 #endif
#define FAUDES_API
Interface export/import symbols: windows.
Definition: cfl_platform.h:81
Includes all libFAUDES headers, no plugins.
TcGenerator< AttributeVoid, AttributeVoid, AttributeCFlags, AttributeVoid > System
Convenience typedef for std System.
bool SupReduce(const System &rPlantGen, const System &rSupGen, System &rReducedSup)
Supervisor Reduction algorithm.
libFAUDES resides within the namespace faudes.

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