con_decomposability.h

Go to the documentation of this file.
00001 /** @file con_decomposability.h Conditional Decomposability */
00002 
00003 /*
00004  *
00005  * Copyright (C) 2011 Tomas Masopust
00006  *
00007  */
00008 
00009 #ifndef FAUDES_ISCD_H
00010 #define FAUDES_ISCD_H
00011 
00012 #include "corefaudes.h"
00013 
00014 namespace faudes {
00015   
00016 /**
00017  * Conditionaldecomposability Checking Algorithm
00018  *
00019  * Checks whether a given language K over the union of alphabets is conditionally decomposable
00020  * with respect to these alphabets and ek.
00021  * This algorithm implements the results obtained in 
00022  *
00023  * J. Komenda, T. Masopust, J. H. van Schuppen.
00024  * On Nonblockingness and Conditional Decomposability
00025  * Manuscript
00026  *
00027  * The generator gen must be deterministic, and
00028  * ek must contain the intersection of all subalphabets and be included in their union.
00029  *
00030  * @param gen
00031  *   Generator representing the language K, i.e., Lm(gen)=K
00032  * @param rAlphabets
00033  *   A vector of alphabets (at least two alphabets are required)
00034  * @param ek
00035  *   The alhabet Ek that contains intersection of other alphabets and is included in their union
00036  * @param proof
00037  *   A generator which gives the proof that the language K is NOT conditionally decomposable
00038  *
00039  * @return
00040  *   True if K is conditionaly decomposible
00041  *
00042  * @exception Exception
00043  *   - alphabets of generators don't match (id 100)
00044  *   - plant nondeterministic (id 201)
00045  *
00046  * @ingroup CoordinationControlPlugIn
00047  */
00048 bool IsConditionalDecomposable(const Generator& gen, const EventSetVector& rAlphabets, const EventSet& ek, Generator& proof);
00049 
00050 } // namespace faudes
00051 
00052 #endif 

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