con_decomposability_extension.h
Go to the documentation of this file.
1/** @file con_decomposability_extension.h Conditionaldecomposability */
2
3/*
4 *
5 * Copyright (C) 2012, 2015 Tomas Masopust
6 *
7 */
8
9#ifndef FAUDES_CDEx_H
10#define FAUDES_CDEx_H
11
12#include "corefaudes.h"
13
14namespace faudes {
15
16/**
17 * Conditionaldecomposability Extension Algorithm
18 *
19 * Given a language K over the union of alphabets,
20 * the algorithm extends the alphabet ek so that K is conditionally decomposable.
21 * This algorithm implements the results obtained in
22 *
23 * J. Komenda, T. Masopust, J. H. van Schuppen.
24 * On Conditional Decomposability
25 * Preprint
26 *
27 * The generator gen must be deterministic, and
28 * ek must contain the intersection of all subalphabets and be included in their union.
29 *
30 * @param gen
31 * Generator representing the language K, i.e., Lm(gen)=K
32 * @param rAlphabets
33 * A vector of alphabets (at least two alphabets are required)
34 * @param ek
35 * The alhabet Ek that contains intersection of other alphabets and is included in their union
36 *
37 * @return
38 * True Ek so that K is conditionally decomposible
39 *
40 * @exception Exception
41 * - alphabets of generators don't match (id 100)
42 * - plant nondeterministic (id 201)
43 *
44 * @ingroup CoordinationControlPlugIn
45 */
46extern FAUDES_API void ConDecExtension(const Generator& gen, const EventSetVector& rAlphabets, EventSet& ek);
47
48extern FAUDES_API void CDExt(const Generator& gen, const EventSetVector& ee, const EventSet& unionset, EventSet& ek);
49
50extern FAUDES_API Generator ComputeTildeG(const EventSet& unionset, const EventSetVector& ee, const EventSet& ek, const Generator& gen);
51
52extern FAUDES_API bool isExtendedEk(const Generator& tildeGen, const Generator& rGen, EventSet& ek);
53
54} // namespace faudes
55
56#endif
#define FAUDES_API
NameSet EventSet
TBaseVector< EventSet > EventSetVector
void ConDecExtension(const Generator &gen, const EventSetVector &rAlphabets, EventSet &ek)
vGenerator Generator
Generator ComputeTildeG(const EventSet &unionset, const EventSetVector &ee, const EventSet &ek, const Generator &gen)
void CDExt(const Generator &gen, const EventSetVector &ee, const EventSet &unionset, EventSet &ek)
bool isExtendedEk(const Generator &tildeGen, const Generator &rGen, EventSet &ek)

libFAUDES 2.33k --- 2025.09.16 --- c++ api documentaion by doxygen