pd_alg_opt.h

Go to the documentation of this file.
00001 /** @file pd_alg_opt.h  functions for optimizations*/
00002 
00003 
00004 /* Pushdown plugin for FAU Discrete Event Systems Library (libfaudes)
00005 
00006    Copyright (C) 2013  Stefan Jacobi, Sven Schneider, Anne-Kathrin Hess
00007 
00008 */
00009 
00010 
00011 #ifndef FAUDES_PD_ALG_OPT_H
00012 #define FAUDES_PD_ALG_OPT_H
00013 
00014 #include "corefaudes.h"
00015 #include "pd_pdgenerator.h"
00016 
00017 namespace faudes {
00018   
00019    /**
00020    * Delete stack symbols from the generator that are not used in any of the transitions
00021    * 
00022    * @param pd
00023    *    pushdown generator to trim
00024    * @return
00025    *    trimmed pushdown generator
00026    */
00027   PushdownGenerator TrimStackSymbols(const PushdownGenerator& pd);
00028   
00029    /**
00030    * Remove certain transitions that can never be used because their pop symbol can never
00031    * be the stack top.
00032    * 
00033    * @param pd
00034    *    the generator from which to remove transitions
00035    * @return
00036    *    generator with removed transitions
00037    */
00038   PushdownGenerator RemoveUselessTransitions(const PushdownGenerator& pd);
00039   
00040   /**
00041    * Get all possible stack top symbols for a state.
00042    * 
00043    * @param pd
00044    *    the pushdown generator containing the state
00045    * @param examinedStates
00046    *    the already examined states
00047    * @param q
00048    *    the state
00049    * @return
00050    *    set of all possible stack top symbols
00051    */
00052   StackSymbolSet GetPossibleStackTops(const PushdownGenerator& pd, const StateSet& examinedStates, Idx q);
00053 
00054 
00055 
00056 } // namespace faudes
00057 
00058 #endif

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