Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
JaniLocationExpander.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
storm/storage/jani/Automaton.h
"
4
#include "
storm/storage/jani/Model.h
"
5
6
namespace
storm
{
7
namespace
jani {
8
class
JaniLocationExpander
{
9
public
:
10
explicit
JaniLocationExpander
(
Model
const
& original);
11
12
struct
NewIndices
{
13
// Maps each old location index to a map that maps every variable value to the index of the (new) location that corresponds to the old location and
14
// variable value
15
std::map<uint64_t, std::map<int64_t, uint64_t>>
locationVariableValueMap
;
16
// Contains all variable values of the expanded variable
17
std::vector<storm::expressions::Expression>
variableDomain
;
18
// Maps each excluded location index (cf. excludeLocation(...)) to its new index.
19
std::map<uint64_t, uint64_t>
excludedLocationsToNewIndices
;
20
};
21
22
struct
ReturnType
{
23
Model
newModel
;
24
NewIndices
newIndices
;
25
};
26
ReturnType
transform
(std::string
const
& automatonName, std::string
const
& variableName);
27
28
// Excludes a location from the expansion process -- it will not be duplicated for every value in the variable domain. This only works if the
29
// location has no outgoing edges. It may be useful to exclude sink locations using this method to reduce the number of locations in the resulting
30
// model.
31
void
excludeLocation
(uint64_t index);
32
33
private
:
34
Model
const
& original;
35
Model
newModel;
36
37
std::set<uint64_t> excludedLocations;
38
39
struct
AutomatonAndIndices {
40
Automaton
newAutomaton;
41
NewIndices
newIndices;
42
};
43
AutomatonAndIndices transformAutomaton(
Automaton
const
& automaton, std::string
const
& variableName,
bool
useTransientVariables =
true
);
44
};
45
}
// namespace jani
46
47
}
// namespace storm
Automaton.h
storm::jani::Automaton
Definition
Automaton.h:24
storm::jani::JaniLocationExpander
Definition
JaniLocationExpander.h:8
storm::jani::JaniLocationExpander::excludeLocation
void excludeLocation(uint64_t index)
Definition
JaniLocationExpander.cpp:214
storm::jani::JaniLocationExpander::transform
ReturnType transform(std::string const &automatonName, std::string const &variableName)
Definition
JaniLocationExpander.cpp:16
storm::jani::Model
Definition
Model.h:35
storm
LabParser.cpp.
Definition
cli.cpp:18
Model.h
storm::jani::JaniLocationExpander::NewIndices
Definition
JaniLocationExpander.h:12
storm::jani::JaniLocationExpander::NewIndices::variableDomain
std::vector< storm::expressions::Expression > variableDomain
Definition
JaniLocationExpander.h:17
storm::jani::JaniLocationExpander::NewIndices::excludedLocationsToNewIndices
std::map< uint64_t, uint64_t > excludedLocationsToNewIndices
Definition
JaniLocationExpander.h:19
storm::jani::JaniLocationExpander::NewIndices::locationVariableValueMap
std::map< uint64_t, std::map< int64_t, uint64_t > > locationVariableValueMap
Definition
JaniLocationExpander.h:15
storm::jani::JaniLocationExpander::ReturnType
Definition
JaniLocationExpander.h:22
storm::jani::JaniLocationExpander::ReturnType::newIndices
NewIndices newIndices
Definition
JaniLocationExpander.h:24
storm::jani::JaniLocationExpander::ReturnType::newModel
Model newModel
Definition
JaniLocationExpander.h:23
src
storm
storage
jani
JaniLocationExpander.h
Generated by
1.9.8