syn_sscon.h
Go to the documentation of this file.
1/** @file syn_sscon.h Standard syntheis consistency test */
2
3/* FAU Discrete Event Systems Library (libfaudes)
4
5 Copyright (C) 2014 Matthias Leinfelder, Thomas Moor
6
7 This library is free software; you can redistribute it and/or
8 modify it under the terms of the GNU Lesser General Public
9 License as published by the Free Software Foundation; either
10 version 2.1 of the License, or (at your option) any later version.
11
12 This library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Lesser General Public License for more details.
16
17 You should have received a copy of the GNU Lesser General Public
18 License along with this library; if not, write to the Free Software
19 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20*/
21
22
23#ifndef FAUDES_SSCON_H
24#define FAUDES_SSCON_H
25
26#include "corefaudes.h"
27#include "syn_supcon.h"
28#include "syn_functions.h"
29
30namespace faudes {
31
32
33/**
34 * Test consistency of an abstractions w.r.t. standard controller synthesis.
35 *
36 * Test whether abstraction-based supervisory controller design is guaranteed to
37 * lead to a non-blocking and controllable closed loop. This function implements
38 * the test proposed in "Moor, T.: Natural projections for the synthesis of
39 * non-conflicting supervisory controllers, Workshop on Discrete Event Systems (WODES), Paris, 2014".
40 *
41 * Parameter restrictions: the generator has to be deterministic and the alphabets must match (see below for exceptions).
42 *
43 *
44 * @param rPlantGen
45 * plant G
46 * @param rCAlph
47 * controllable events
48 * @param rPlant0Gen
49 * plant abstraction G0
50 *
51 * @exception Exception
52 * - the abstraction rPlant0Gen must have been obtained from the plant rPlantGen by natural projection (not tested)
53 * - the abstraction alphabet given by rPlant0Gen fails to be a subset of the overall alphabet given by rPlantGen (id 506)
54 * - alphabet with controllable Events fails be a subset of the abstraction alphabet given by rAbstrGen (id 506)
55 * - generators fail to be deterministic (id 501)
56 *
57 * @return
58 * true / false
59 *
60 * @ingroup SynthesisPlugIn
61 */
62
64 const Generator& rPlantGen,
65 const EventSet& rCAlph,
66 const Generator& rPlant0Gen);
67
68
69/**
70 * Test consistency of an abstraction w.r.t standard synthesis.
71 *
72 * This is a convenience wrapprt for IsStdSynthesisConsistent(const Generator&, const EventSet&, const Generator&).
73 *
74 *
75 *
76 * @param rPlantGen
77 * plant G incl. controllable events
78 * @param rPlant0Gen
79 * plant abstraction G0
80 *
81 * @exception Exception
82 * - the abstraction rPlant0Gen must have been obtained from the plant rPlantGen by natural projection (not tested)
83 * - the abstraction alphabet given by rPlant0Gen fails to be a subset of the overall alphabet given by rPlantGen (id 506)
84 * - alphabet with controllable Events fails be a subset of the abstraction alphabet given by rAbstrGen (id 506)
85 * - generators fail to be deterministic (id 501)
86 *
87 * @return
88 * true / false
89 *
90 * @ingroup SynthesisPlugIn
91 */
93 const System& rPlantGen,
94 const Generator& rPlant0Gen);
95
96}// namespace faudes
97
98#endif
99
100
#define FAUDES_API
NameSet EventSet
vGenerator Generator
TcGenerator< AttributeVoid, AttributeVoid, AttributeCFlags, AttributeVoid > System
bool IsStdSynthesisConsistent(const Generator &rPlantGen, const EventSet &rCAlph, const Generator &rPlant0Gen)

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