mtc_statemin.h
Go to the documentation of this file.
1/** @file mtc_statemin.h
2
3State 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
37namespace 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 */
53extern 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 */
75extern 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 */
81extern FAUDES_API void mtcStateMin(const MtcSystem& rGen, MtcSystem& rResGen);
82
83
84} // namespace faudes
85
86#endif
#define FAUDES_API
void mtcStateMin(MtcSystem &rGen, MtcSystem &rResGen)
TmtcGenerator< AttributeVoid, AttributeColoredState, AttributeCFlags, AttributeVoid > MtcSystem

libFAUDES 2.33k --- 2025.09.16 --- c++ api documentaion by doxygen