mtc_statemin.h

Go to the documentation of this file.
00001 /** @file mtc_statemin.h
00002 
00003 State space minimization
00004 
00005 */
00006 
00007 /* FAU Discrete Event Systems Library (libfaudes)
00008 
00009    Copyright (C) 2008  Matthias Singer
00010    Copyright (C) 2006  Bernd Opitz
00011    Exclusive copyright is granted to Klaus Schmidt
00012 
00013    This library is free software; you can redistribute it and/or
00014    modify it under the terms of the GNU Lesser General Public
00015    License as published by the Free Software Foundation; either
00016    version 2.1 of the License, or (at your option) any later version.
00017 
00018    This library is distributed in the hope that it will be useful,
00019    but WITHOUT ANY WARRANTY; without even the implied warranty of
00020    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00021    Lesser General Public License for more details.
00022 
00023    You should have received a copy of the GNU Lesser General Public
00024    License along with this library; if not, write to the Free Software
00025    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA */
00026 
00027 
00028 #ifndef FAUDES_MTCSTATEMIN_H
00029 #define FAUDES_MTCSTATEMIN_H
00030 
00031 #include "corefaudes.h"
00032 #include "mtc_generator.h"
00033 #include <vector>
00034 #include <string>
00035 #include <sstream>
00036 
00037 namespace faudes {
00038 
00039 /**
00040  * State Minimization
00041  * This function implements the (n*log n) set partitioning algorithm by
00042  * John E. Hopcroft extended to colored marking. Given generator will be made accessible before computing
00043  * minimized generator.
00044  *
00045  * @param rGen
00046  *   MtcSystem
00047  * @param rResGen
00048  *   Minimized MtcSystem (result)
00049  *
00050  * @exception Exception
00051  *   - Input automaton nondeterministic (id 505)
00052  */
00053 void mtcStateMin(MtcSystem& rGen, MtcSystem& rResGen);
00054 
00055 /**
00056  * State Minimization
00057  * This function implements the (n*log n) set partitioning algorithm by
00058  * John E. Hopcroft extended to colored marking. Given generator will be made accessible before computing
00059  * minimized generator.
00060  *
00061  * @param rGen
00062  *   MtcSystem
00063  * @param rResGen
00064  *   Minimized MtcSystem (result)
00065  * @param rSubsets
00066  *   Vector of subsets that will be constructed during running the algorithm
00067  *   (optional parameter)
00068  * @param rNewIndices
00069  *   Vector of new state indices corresponding to the subsets
00070  *   (optional parameter)
00071  *
00072  * @exception Exception
00073  *   - Input automaton nondeterministic (id 505)
00074  */
00075 void mtcStateMin(MtcSystem& rGen, MtcSystem& rResGen, 
00076     std::vector<StateSet>& rSubsets, std::vector<Idx>& rNewIndices);
00077 
00078 /**
00079  * RTI wrapper. See also mtcStateMin(MtcSystem&, MtcSystem&).
00080  */
00081 void mtcStateMin(const MtcSystem& rGen, MtcSystem& rResGen);
00082 
00083 
00084 } // namespace faudes
00085 
00086 #endif 

libFAUDES 2.23h --- 2014.04.03 --- c++ api documentaion by doxygen