Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
GspnBuilder.h
Go to the documentation of this file.
1#pragma once
2
3#include <map>
4#include <string>
5#include <vector>
6
7#include "GSPN.h"
8
9namespace storm {
10namespace gspn {
12 public:
13 typedef double RateType;
14 typedef double WeightType;
15
19 void setGspnName(std::string const& name);
20
28 uint_fast64_t addPlace(boost::optional<uint64_t> const& capacity = 1, uint_fast64_t const& initialTokens = 0, std::string const& name = "");
29
30 void setPlaceLayoutInfo(uint64_t placeId, LayoutInfo const& layoutInfo);
31
37 uint_fast64_t addImmediateTransition(uint_fast64_t const& priority = 0, WeightType const& weight = 0, std::string const& name = "");
38
45 uint_fast64_t addTimedTransition(uint_fast64_t const& priority, RateType const& rate, std::string const& name = "");
46
53 uint_fast64_t addTimedTransition(uint_fast64_t const& priority, RateType const& rate, boost::optional<uint64_t> const& numServers,
54 std::string const& name = "");
55
56 void setTransitionLayoutInfo(uint64_t transitionId, LayoutInfo const& layoutInfo);
57
64 void addInputArc(uint_fast64_t const& from, uint_fast64_t const& to, uint_fast64_t const& multiplicity = 1);
65
66 void addInputArc(std::string const& from, std::string const& to, uint64_t multiplicity = 1);
73 void addInhibitionArc(uint_fast64_t const& from, uint_fast64_t const& to, uint_fast64_t const& multiplicity = 1);
74
75 void addInhibitionArc(std::string const& from, std::string const& to, uint64_t multiplicity = 1);
76
83 void addOutputArc(uint_fast64_t const& from, uint_fast64_t const& to, uint_fast64_t const& multiplicity = 1);
84
85 void addOutputArc(std::string const& from, std::string const& to, uint64_t multiplicity = 1);
86
96 void addNormalArc(std::string const& from, std::string const& to, uint64_t multiplicity = 1);
97
102 storm::gspn::GSPN* buildGspn(std::shared_ptr<storm::expressions::ExpressionManager> const& exprManager = nullptr,
103 std::map<storm::expressions::Variable, storm::expressions::Expression> const& constantsSubstitution =
104 std::map<storm::expressions::Variable, storm::expressions::Expression>()) const;
105
106 private:
107 bool isImmediateTransitionId(uint64_t) const;
108 bool isTimedTransitionId(uint64_t) const;
109 Transition& getTransition(uint64_t);
110
111 std::map<std::string, uint64_t> placeNames;
112 std::map<std::string, uint64_t> transitionNames;
113
114 std::string gspnName = "_gspn_";
115
116 std::map<uint64_t, std::vector<storm::gspn::TransitionPartition>> partitions;
117
118 // set containing all immediate transitions
119 std::vector<storm::gspn::ImmediateTransition<WeightType>> immediateTransitions;
120
121 // set containing all timed transitions
122 std::vector<storm::gspn::TimedTransition<RateType>> timedTransitions;
123
124 // set containing all places
125 std::vector<storm::gspn::Place> places;
126
127 std::map<uint64_t, LayoutInfo> placeLayout;
128 std::map<uint64_t, LayoutInfo> transitionLayout;
129};
130} // namespace gspn
131} // namespace storm
uint_fast64_t addPlace(boost::optional< uint64_t > const &capacity=1, uint_fast64_t const &initialTokens=0, std::string const &name="")
Add a place to the gspn.
void addOutputArc(uint_fast64_t const &from, uint_fast64_t const &to, uint_fast64_t const &multiplicity=1)
Adds an new input arc from a place to an transition.
void setPlaceLayoutInfo(uint64_t placeId, LayoutInfo const &layoutInfo)
uint_fast64_t addImmediateTransition(uint_fast64_t const &priority=0, WeightType const &weight=0, std::string const &name="")
Adds an immediate transition to the gspn.
void addNormalArc(std::string const &from, std::string const &to, uint64_t multiplicity=1)
Adds an arc from a named element to a named element.
storm::gspn::GSPN * buildGspn(std::shared_ptr< storm::expressions::ExpressionManager > const &exprManager=nullptr, std::map< storm::expressions::Variable, storm::expressions::Expression > const &constantsSubstitution=std::map< storm::expressions::Variable, storm::expressions::Expression >()) const
void addInhibitionArc(uint_fast64_t const &from, uint_fast64_t const &to, uint_fast64_t const &multiplicity=1)
Adds an new input arc from a place to an transition.
void addInputArc(uint_fast64_t const &from, uint_fast64_t const &to, uint_fast64_t const &multiplicity=1)
Adds an new input arc from a place to an transition.
void setGspnName(std::string const &name)
Set GSPN name.
void setTransitionLayoutInfo(uint64_t transitionId, LayoutInfo const &layoutInfo)
uint_fast64_t addTimedTransition(uint_fast64_t const &priority, RateType const &rate, std::string const &name="")
Adds an timed transition to the gspn.
This class represents a transition in a gspn.
Definition Transition.h:14
LabParser.cpp.
Definition cli.cpp:18