con_controllability.h

Go to the documentation of this file.
00001 /** @file con_controllability.h Conditional Controllability */
00002 
00003 /*
00004  *
00005  * Copyright (C) 2011 Tomas Masopust
00006  *
00007  */
00008 
00009 #ifndef FAUDES_ISCC_H
00010 #define FAUDES_ISCC_H
00011 
00012 #include "corefaudes.h"
00013 #include "syn_include.h"
00014 
00015 namespace faudes {
00016   
00017 /**
00018  * Conditionalcontrollability Checking Algorithm
00019  *
00020  * Checks whether a given language K over the union of alphabets is conditionally controllable
00021  * with respect to the plant G.
00022  * This algorithm implements the results obtained in 
00023  *
00024  * J. Komenda, T. Masopust, J. H. van Schuppen.
00025  * Synthesis of Safe Sublanguages satisfying Global Specification using Coordination Scheme for Discrete-Event Systems 
00026  * WODES 2010
00027  *
00028  * K must be conditionally decomposable
00029  *
00030  * @param specV
00031  *   Vector of generators representing the specification languages P_{i+k}(K), i=1,2,..,n
00032  * @param pk
00033  *   Generator for the coordinator part P_k(K)
00034  * @param genV
00035  *   Vecotr of generators for the plants G1,G2,..,Gn
00036  * @param gk
00037  *   Generator for the coordinator Gk
00038  * @param ACntrl
00039  *   Event set of all controllable events
00040  * @return
00041  *   True if K is conditionaly controllable
00042  *
00043  * @exception Exception
00044  *   - alphabets of generators don't match (id 100)
00045  *   - plant nondeterministic (id 201)
00046  *
00047  * @ingroup CoordinationControlPlugIn
00048  */
00049 bool IsConditionalControllable(const GeneratorVector& specVect, const Generator& pk, const GeneratorVector& genVect, const Generator& gk, const EventSet& ACntrl);
00050 
00051 } // namespace faudes
00052 
00053 #endif 

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