supcon.h

Go to the documentation of this file.
00001 
00003 /* FAU Discrete Event Systems Library (libfaudes)
00004 
00005    Copyright (C) 2006  Bernd Opitz
00006    Copyright (C) 2007  Thomas Moor
00007    Exclusive copyright is granted to Klaus Schmidt
00008 
00009    This library is free software; you can redistribute it and/or
00010    modify it under the terms of the GNU Lesser General Public
00011    License as published by the Free Software Foundation; either
00012    version 2.1 of the License, or (at your option) any later version.
00013 
00014    This library is distributed in the hope that it will be useful,
00015    but WITHOUT ANY WARRANTY; without even the implied warranty of
00016    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00017    Lesser General Public License for more details.
00018 
00019    You should have received a copy of the GNU Lesser General Public
00020    License along with this library; if not, write to the Free Software
00021    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA */
00022 
00023  
00024 #ifndef SUBCON_H
00025 
00026 #include "definitions.h"
00027 #include "project.h"
00028 #include "parallel.h"
00029 #include <stack>
00030 
00031 namespace faudes {
00032     
00033 
00034 
00064 bool IsControllable(
00065   const vGenerator& rPlantGen, 
00066   const EventSet&  rCAlph,
00067   const vGenerator& rSupCandGen);
00068 
00069 
00106 bool IsControllable(
00107   const vGenerator& rPlantGen, 
00108   const EventSet&  rCAlph,
00109   const vGenerator& rSupCandGen, 
00110   StateSet& rCriticalStates);
00111 
00112 
00113 
00148 void SupConNB(
00149   const vGenerator& rPlantGen, 
00150   const EventSet&  rCAlph,
00151   const vGenerator& rSpecGen, 
00152   vGenerator& rResGen);
00153 
00154 
00179 void SupCon(
00180   const vGenerator& rPlantGen, 
00181   const EventSet&  rCAlph,
00182   const vGenerator& rSpecGen, 
00183   vGenerator& rResGen);
00184 
00185 
00223 void SupCon(
00224   const vGenerator& rPlantGen, 
00225   const EventSet&  rCAlph,
00226   const vGenerator& rSpecGen, 
00227   std::map< std::pair<Idx,Idx>,Idx >& rReverseCompositionMap, 
00228   vGenerator& rResGen);
00229 
00289 void SupConNBNonDet(
00290   const vGenerator& rPlantGen, 
00291   const EventSet&  rCAlph,
00292   const vGenerator& rSpecGen,
00293   std::map< std::pair<Idx,Idx>, Idx>& rReverseCompositionMap,
00294   Generator rDetPlantGen, 
00295   Generator rDetSpecGen, 
00296   std::map<Idx,StateSet>& rPowerStatesPlant, 
00297   std::map<Idx,StateSet>& rPowerStatesSpec,
00298   bool& rDetPlantBool, 
00299   bool& rDetSpecBool, 
00300   vGenerator& rResGen);
00301 
00327 void SupConNBUnchecked(
00328   const vGenerator& rPlantGen, 
00329   const EventSet&  rCAlph,
00330   const vGenerator& rSpecGen, 
00331   std::map< std::pair<Idx,Idx>,Idx >& rReverseCompositionMap, 
00332   vGenerator& rResGen);
00333 
00334 
00335 
00357 bool SupConUnchecked(
00358    const vGenerator& rPlantGen, 
00359    const EventSet&  rCAlph,
00360    vGenerator& rSupCandGen);
00361 
00362 
00381 void SupconParallel(
00382   const vGenerator& rPlantGen, 
00383   const EventSet& rCAlph, 
00384   const vGenerator& rSpecGen,
00385   std::map< std::pair<Idx,Idx>, Idx>& rReverseCompositionMap, 
00386   vGenerator& rResGen);
00387 
00416 bool IsControllableUnchecked(
00417   const vGenerator& rPlantGen, 
00418   const EventSet& rCAlph, 
00419   const vGenerator& rSpecGen, 
00420   StateSet& rCriticalStates);
00421 
00422 
00437 void TraverseUncontrollableBackwards(
00438   const EventSet& rCAlph, 
00439   TransSetX2EvX1& rtransrel, 
00440   StateSet& rCriticalStates, 
00441   Idx current);
00442 
00443 
00444 
00462 void ControlProblemConsistencyCheck(
00463   const vGenerator& rPlantGen, 
00464   const EventSet&  rCAlph,
00465   const vGenerator& rSpecGen);
00466 
00467 
00468 
00469 
00470 
00471 } // namespace faudes
00472 
00473 #define SUBCON_H
00474 #endif 
00475 
00476 

Generated on Fri May 9 11:26:47 2008 for libFAUDES 2.09b by  doxygen 1.4.4