9template<
typename ValueType,
typename GeometryValueType>
26template<
typename ValueType,
typename GeometryValueType>
28 std::vector<GeometryValueType>
const& point) {
29 std::vector<GeometryValueType> result;
30 result.reserve(point.size());
31 for (uint_fast64_t objIndex = 0; objIndex < objectives.size(); ++objIndex) {
37template<
typename ValueType,
typename GeometryValueType>
40 if (polytope->isEmpty()) {
43 if (polytope->isUniversal()) {
46 uint_fast64_t numObjectives = objectives.size();
47 std::vector<std::vector<GeometryValueType>> transformationMatrix(numObjectives,
49 std::vector<GeometryValueType> transformationVector;
50 transformationVector.reserve(numObjectives);
51 for (uint_fast64_t objIndex = 0; objIndex < numObjectives; ++objIndex) {
52 auto const& obj = objectives[objIndex];
54 if (obj.considersComplementaryEvent) {
62 if (obj.considersComplementaryEvent) {
71 return polytope->affineTransformation(transformationMatrix, transformationVector);
78template<
typename ValueType>
81 for (
auto& currScheduler : schedulers) {
88 std::vector<storm::RationalNumber>
const& point);
94 std::vector<storm::RationalNumber>
const& point);
This class defines which action is chosen in a particular state of a non-deterministic model.
Data to restore memory incorporation applied with SparseModelMemoryProduct.
storm::storage::Scheduler< ValueType > createMemorySchedulerFromProductScheduler(storm::storage::Scheduler< ValueType > const &productScheduler) const
Creates a finite-memory scheduler from a scheduler of the product model.
static std::shared_ptr< Polytope< ValueType > > createUniversalPolytope()
Creates the universal polytope (i.e., the set R^n).
static std::shared_ptr< Polytope< ValueType > > createEmptyPolytope()
Creates the empty polytope (i.e., emptyset).
void transformObjectiveSchedulersToOriginal(storm::storage::SparseModelMemoryProductReverseData const &reverseData, std::vector< storm::storage::Scheduler< ValueType > > &schedulers)
std::shared_ptr< storm::storage::geometry::Polytope< GeometryValueType > > transformObjectivePolytopeToOriginal(std::vector< Objective< ValueType > > const &objectives, std::shared_ptr< storm::storage::geometry::Polytope< GeometryValueType > > const &polytope)
std::vector< GeometryValueType > transformObjectiveValuesToOriginal(std::vector< Objective< ValueType > > const &objectives, std::vector< GeometryValueType > const &point)
GeometryValueType transformObjectiveValueToOriginal(Objective< ValueType > const &objective, GeometryValueType const &value)
bool constexpr maximize(OptimizationDirection d)
bool considersComplementaryEvent
std::shared_ptr< storm::logic::OperatorFormula const > formula