mtc_statemin.h
Go to the documentation of this file.
1 /** @file mtc_statemin.h
2 
3 State space minimization
4 
5 */
6 
7 /* FAU Discrete Event Systems Library (libfaudes)
8 
9  Copyright (C) 2008 Matthias Singer
10  Copyright (C) 2006 Bernd Opitz
11  Exclusive copyright is granted to Klaus Schmidt
12 
13  This library is free software; you can redistribute it and/or
14  modify it under the terms of the GNU Lesser General Public
15  License as published by the Free Software Foundation; either
16  version 2.1 of the License, or (at your option) any later version.
17 
18  This library is distributed in the hope that it will be useful,
19  but WITHOUT ANY WARRANTY; without even the implied warranty of
20  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21  Lesser General Public License for more details.
22 
23  You should have received a copy of the GNU Lesser General Public
24  License along with this library; if not, write to the Free Software
25  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
26 
27 
28 #ifndef FAUDES_MTCSTATEMIN_H
29 #define FAUDES_MTCSTATEMIN_H
30 
31 #include "corefaudes.h"
32 #include "mtc_generator.h"
33 #include <vector>
34 #include <string>
35 #include <sstream>
36 
37 namespace faudes {
38 
39 /**
40  * State Minimization
41  * This function implements the (n*log n) set partitioning algorithm by
42  * John E. Hopcroft extended to colored marking. Given generator will be made accessible before computing
43  * minimized generator.
44  *
45  * @param rGen
46  * MtcSystem
47  * @param rResGen
48  * Minimized MtcSystem (result)
49  *
50  * @exception Exception
51  * - Input automaton nondeterministic (id 505)
52  */
53 extern FAUDES_API void mtcStateMin(MtcSystem& rGen, MtcSystem& rResGen);
54 
55 /**
56  * State Minimization
57  * This function implements the (n*log n) set partitioning algorithm by
58  * John E. Hopcroft extended to colored marking. Given generator will be made accessible before computing
59  * minimized generator.
60  *
61  * @param rGen
62  * MtcSystem
63  * @param rResGen
64  * Minimized MtcSystem (result)
65  * @param rSubsets
66  * Vector of subsets that will be constructed during running the algorithm
67  * (optional parameter)
68  * @param rNewIndices
69  * Vector of new state indices corresponding to the subsets
70  * (optional parameter)
71  *
72  * @exception Exception
73  * - Input automaton nondeterministic (id 505)
74  */
75 extern FAUDES_API void mtcStateMin(MtcSystem& rGen, MtcSystem& rResGen,
76  std::vector<StateSet>& rSubsets, std::vector<Idx>& rNewIndices);
77 
78 /**
79  * RTI wrapper. See also mtcStateMin(MtcSystem&, MtcSystem&).
80  */
81 extern FAUDES_API void mtcStateMin(const MtcSystem& rGen, MtcSystem& rResGen);
82 
83 
84 } // namespace faudes
85 
86 #endif
#define FAUDES_API
Interface export/import symbols: windows.
Definition: cfl_platform.h:81
Includes all libFAUDES headers, no plugins.
Methods for handling multitasking generators.
libFAUDES resides within the namespace faudes.
void mtcStateMin(MtcSystem &rGen, MtcSystem &rResGen)
State Minimization This function implements the (n*log n) set partitioning algorithm by John E.
TmtcGenerator< AttributeVoid, AttributeColoredState, AttributeCFlags, AttributeVoid > MtcSystem

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