syn_tsupcon.h
Go to the documentation of this file.
1 /** @file syn_supcon.h Supremal tdes-controllable sublanguage */
2 
3 /* FAU Discrete Event Systems Library (libfaudes)
4 
5  Copyright (C) 2013 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_TSUPCON_H
24 #define FAUDES_TSUPCON_H
25 
26 #include "corefaudes.h"
27 #include "syn_supcon.h"
28 
29 namespace faudes {
30 
31 
32 
33 /**
34  * Nonblocking Supremal TDES-Controllable Sublanguage
35  *
36  * Controllable sublanguage w.r.t. specified forcible and preemptable
37  * events. When the set of preemptable events consist exclusively of the <tt>tick</tt> event,
38  * this corresponds to TDES-controllability.
39  *
40  * (!) Interface most likely to change --- needs more testing/proper design (!)
41  *
42  * @param rPlantGen
43  * Plant G
44  * @param rCAlph
45  * Controllable events
46  * @param rFAlph
47  * Forcible events
48  * @param rPAlph
49  * Premptable events
50  * @param rSpecGen
51  * Specification Generator E
52  * @param rResGen
53  * Reference to resulting Generator
54  *
55  * @exception Exception
56  * - alphabets of generators don't match (id 100)
57  * - plant nondeterministic (id 201)
58  * - spec nondeterministic (id 203)
59  * - plant and spec nondeterministic (id 204)
60  *
61  * @ingroup SynthesisPlugIn
62  *
63  */
64 extern FAUDES_API void SupTconNB(
65  const Generator& rPlantGen,
66  const EventSet& rCAlph,
67  const EventSet& rFAlph,
68  const EventSet& rPAlph,
69  const Generator& rSpecGen,
70  Generator& rResGen);
71 
72 
73 
74 /**
75  * Nonblocking Supremal TDES-Controllable Sublanguage
76  *
77  * This is the RTI wrapper for
78  * SupTconNB(const Generator&, const EventSet&, const Generator&, Generator&).
79  * Controllability attributes are taken from the plant argument and
80  * tick is the only preemptable event.
81  * If the result is specified as a System, attributes will be copied
82  * from the plant argument.
83  *
84  * (!) Interface most likely to change --- needs more testing/ proper design (!)
85  *
86  *
87  * @param rPlantGen
88  * Plant System
89  * @param rSpecGen
90  * Specification Generator
91  * @param rResGen
92  * Reference to resulting Generator, the
93  * minimal restrictive nonblocking supervisor
94  *
95  * @exception Exception
96  * Alphabets of generators don't match (id 100)
97  * plant nondeterministic (id 201)
98  * spec nondeterministic (id 203)
99  * plant and spec nondeterministic (id 204)
100  *
101  * @ingroup SynthesisPlugIn
102  */
103 extern FAUDES_API void SupTconNB(
104  const System& rPlantGen,
105  const Generator& rSpecGen,
106  Generator& rResGen);
107 
108 
109 } // namespace faudes
110 
111 #endif
112 
113 
#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.
void SupTconNB(const Generator &rPlantGen, const EventSet &rCAlph, const EventSet &rFAlph, const EventSet &rPAlph, const Generator &rSpecGen, Generator &rResGen)
Nonblocking Supremal TDES-Controllable Sublanguage.
libFAUDES resides within the namespace faudes.
Supremal controllable sublanguage.

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