syn_tsupcon.h

Go to the documentation of this file.
00001 /** @file tp_supcon.h Supremal tdes-controllable sublanguage */
00002 
00003 /* FAU Discrete Event Systems Library (libfaudes)
00004 
00005    Copyright (C) 2013 Thomas Moor
00006    Exclusive copyright is granted to Klaus Schmidt
00007 
00008    This library is free software; you can redistribute it and/or
00009    modify it under the terms of the GNU Lesser General Public
00010    License as published by the Free Software Foundation; either
00011    version 2.1 of the License, or (at your option) any later version.
00012 
00013    This library is distributed in the hope that it will be useful,
00014    but WITHOUT ANY WARRANTY; without even the implied warranty of
00015    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00016    Lesser General Public License for more details.
00017 
00018    You should have received a copy of the GNU Lesser General Public
00019    License along with this library; if not, write to the Free Software
00020    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA */
00021 
00022  
00023 #ifndef FAUDES_TSUPCON_H
00024 #define FAUDES_TSUPCON_H
00025 
00026 #include "corefaudes.h"
00027 #include "syn_supcon.h"
00028 
00029 namespace faudes {
00030     
00031 
00032 
00033 /**
00034  * Nonblocking Supremal TDES-Controllable Sublanguage
00035  *
00036  * Controllable sublanguage w.r.t. specified forcible and preemptable
00037  * events. When the set of preemptable events consist exclusively of the <tt>tick</tt> event, 
00038  * this corresponds to TDES-controllability.
00039  *
00040  * (!) Interface most likely to change --- needs more testing/proper design (!)
00041  *
00042  * @param rPlantGen
00043  *   Plant G
00044  * @param rCAlph
00045  *   Controllable events
00046  * @param rFAlph
00047  *   Forcible events
00048  * @param rPAlph
00049  *   Premptable events
00050  * @param rSpecGen
00051  *   Specification Generator E
00052  * @param rResGen
00053  *   Reference to resulting Generator
00054  *
00055  * @exception Exception
00056  *   - alphabets of generators don't match (id 100)
00057  *   - plant nondeterministic (id 201)
00058  *   - spec nondeterministic (id 203)
00059  *   - plant and spec nondeterministic (id 204)
00060  *
00061  * @ingroup SynthesisPlugIn
00062  *
00063  */
00064 void SupTconNB(
00065   const Generator& rPlantGen, 
00066   const EventSet&  rCAlph,
00067   const EventSet&  rFAlph,
00068   const EventSet&  rPAlph,
00069   const Generator& rSpecGen, 
00070   Generator& rResGen);
00071 
00072 
00073 
00074 /**
00075  * Nonblocking Supremal TDES-Controllable Sublanguage 
00076  *
00077  * This is the RTI wrapper for   
00078  * SupTconNB(const Generator&, const EventSet&, const Generator&, Generator&).
00079  * Controllability attributes are taken from the plant argument and
00080  * tick is the only preemptable event.
00081  * If the result is specified as a System, attributes will be copied
00082  * from the plant argument.
00083  *
00084  * (!) Interface most likely to change --- needs more testing/ proper design (!)
00085  *
00086  *
00087  * @param rPlantGen
00088  *   Plant System
00089  * @param rSpecGen
00090  *   Specification Generator
00091  * @param rResGen
00092  *   Reference to resulting Generator, the
00093  *   minimal restrictive nonblocking supervisor
00094  *
00095  * @exception Exception
00096  *   Alphabets of generators don't match (id 100)
00097  *   plant nondeterministic (id 201)
00098  *   spec nondeterministic (id 203)
00099  *   plant and spec nondeterministic (id 204)
00100  *
00101  * @ingroup SynthesisPlugIn
00102  */
00103 void SupTconNB(
00104   const System& rPlantGen, 
00105   const Generator& rSpecGen, 
00106   Generator& rResGen);
00107 
00108 
00109 } // namespace faudes
00110 
00111 #endif 
00112 
00113 

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