Storm
1.14.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
PermissiveSchedulerPenalty.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <cstdint>
4
#include <unordered_map>
5
#include <utility>
6
7
#include "
storm/storage/StateActionPair.h
"
8
#include "
storm/utility/macros.h
"
9
10
namespace
storm
{
11
namespace
ps
{
12
13
class
PermissiveSchedulerPenalties
{
14
std::unordered_map<storage::StateActionPair, double> mPenalties;
15
16
public
:
17
double
get
(uint_fast64_t state, uint_fast64_t action)
const
{
18
return
get
(
storage::StateActionPair
(state, action));
19
}
20
21
double
get
(
storage::StateActionPair
const
& sap)
const
{
22
auto
it = mPenalties.find(sap);
23
if
(it == mPenalties.end()) {
24
return
1.0;
25
}
else
{
26
return
it->second;
27
}
28
}
29
30
void
set
(uint64_t state, uint64_t action,
double
penalty) {
31
STORM_LOG_ASSERT
(penalty >= 1.0,
"Penalty too low."
);
32
if
(penalty == 1.0) {
33
auto
it = mPenalties.find(std::make_pair(state, action));
34
if
(it != mPenalties.end()) {
35
mPenalties.erase(it);
36
}
37
}
else
{
38
mPenalties.emplace(std::make_pair(state, action), penalty);
39
}
40
}
41
42
void
clear
() {
43
mPenalties.clear();
44
}
45
};
46
}
// namespace ps
47
}
// namespace storm
StateActionPair.h
storm::ps::PermissiveSchedulerPenalties
Definition
PermissiveSchedulerPenalty.h:13
storm::ps::PermissiveSchedulerPenalties::get
double get(storage::StateActionPair const &sap) const
Definition
PermissiveSchedulerPenalty.h:21
storm::ps::PermissiveSchedulerPenalties::clear
void clear()
Definition
PermissiveSchedulerPenalty.h:42
storm::ps::PermissiveSchedulerPenalties::set
void set(uint64_t state, uint64_t action, double penalty)
Definition
PermissiveSchedulerPenalty.h:30
storm::ps::PermissiveSchedulerPenalties::get
double get(uint_fast64_t state, uint_fast64_t action) const
Definition
PermissiveSchedulerPenalty.h:17
storm::storage::StateActionPair
Definition
StateActionPair.h:8
macros.h
STORM_LOG_ASSERT
#define STORM_LOG_ASSERT(cond, message)
Definition
macros.h:9
storm::ps
Definition
MILPPermissiveSchedulers.h:18
storm
Definition
AutomaticSettings.cpp:13
src
storm-permissive
analysis
PermissiveSchedulerPenalty.h
Generated by
1.15.0