con_decomposability_extension.h

Go to the documentation of this file.
00001 /** @file con_decomposability_extension.h Conditionaldecomposability */
00002 
00003 /*
00004  *
00005  * Copyright (C) 2012 Tomas Masopust
00006  *
00007  */
00008 
00009 #ifndef FAUDES_CDEx_H
00010 #define FAUDES_CDEx_H
00011 
00012 #include "corefaudes.h"
00013 
00014 namespace faudes {
00015   
00016 /**
00017  * Conditionaldecomposability Extension Algorithm
00018  *
00019  * Given a language K over the union of alphabets, 
00020  * the algorithm extends the alphabet ek so that K is conditionally decomposable.
00021  * This algorithm implements the results obtained in 
00022  *
00023  * J. Komenda, T. Masopust, J. H. van Schuppen.
00024  * On Conditional Decomposability
00025  * Preprint
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  *
00037  * @return
00038  *   True Ek so that K is conditionally decomposible
00039  *
00040  * @exception Exception
00041  *   - alphabets of generators don't match (id 100)
00042  *   - plant nondeterministic (id 201)
00043  *
00044  * @ingroup CoordinationControlPlugIn
00045  */
00046 void ConDecExtension(const Generator& gen, const EventSetVector& rAlphabets, EventSet& ek);
00047 
00048 Generator ComputeTildeG(const EventSet& unionset, const EventSetVector& ee, const EventSet& ek, const Generator& gen);
00049 
00050 bool isExtendedEk(const Generator& tildeGen, const Generator& rGen, EventSet& ek);
00051 
00052 } // namespace faudes
00053 
00054 #endif 

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