6 changed files with 119 additions and 38 deletions
			
			
		- 
					2src/storm-pomdp-cli/settings/PomdpSettings.cpp
 - 
					24src/storm-pomdp-cli/settings/modules/POMDPSettings.cpp
 - 
					4src/storm-pomdp-cli/settings/modules/POMDPSettings.h
 - 
					56src/storm-pomdp-cli/settings/modules/ToParametricSettings.cpp
 - 
					49src/storm-pomdp-cli/settings/modules/ToParametricSettings.h
 - 
					16src/storm-pomdp-cli/storm-pomdp.cpp
 
@ -0,0 +1,56 @@ | 
			
		|||||
 | 
				#include "storm-pomdp-cli/settings/modules/ToParametricSettings.h"
 | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				#include "storm/settings/SettingsManager.h"
 | 
			
		||||
 | 
				#include "storm/settings/SettingMemento.h"
 | 
			
		||||
 | 
				#include "storm/settings/Option.h"
 | 
			
		||||
 | 
				#include "storm/settings/OptionBuilder.h"
 | 
			
		||||
 | 
				#include "storm/settings/ArgumentBuilder.h"
 | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				#include "storm/exceptions/InvalidArgumentException.h"
 | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				namespace storm { | 
			
		||||
 | 
				    namespace settings { | 
			
		||||
 | 
				        namespace modules { | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				            const std::string ToParametricSettings::moduleName = "toparametric"; | 
			
		||||
 | 
				            const std::string mecReductionOption = "mecreduction"; | 
			
		||||
 | 
				            const std::string selfloopReductionOption = "selfloopreduction"; | 
			
		||||
 | 
				            const std::string fscmode = "fscmode"; | 
			
		||||
 | 
				            std::vector<std::string> fscModes = {"standard", "simple-linear", "simple-linear-inverse"}; | 
			
		||||
 | 
				            const std::string transformBinaryOption = "transformbinary"; | 
			
		||||
 | 
				            const std::string transformSimpleOption = "transformsimple"; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				            ToParametricSettings::ToParametricSettings() : ModuleSettings(moduleName) { | 
			
		||||
 | 
				                this->addOption(storm::settings::OptionBuilder(moduleName, mecReductionOption, false, "Reduces the model size by analyzing maximal end components").build()); | 
			
		||||
 | 
				                this->addOption(storm::settings::OptionBuilder(moduleName, fscmode, false, "Sets the way the pMC is obtained").addArgument(storm::settings::ArgumentBuilder::createStringArgument("type", "type name").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(fscModes)).setDefaultValueString("standard").build()).build()); | 
			
		||||
 | 
				                this->addOption(storm::settings::OptionBuilder(moduleName, transformBinaryOption, false, "Transforms the pomdp to a binary pomdp.").build()); | 
			
		||||
 | 
				                this->addOption(storm::settings::OptionBuilder(moduleName, transformSimpleOption, false, "Transforms the pomdp to a binary and simple pomdp.").build()); | 
			
		||||
 | 
				            } | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				            bool ToParametricSettings::isMecReductionSet() const { | 
			
		||||
 | 
				                return this->getOption(mecReductionOption).getHasOptionBeenSet(); | 
			
		||||
 | 
				            } | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				            std::string ToParametricSettings::getFscApplicationTypeString() const { | 
			
		||||
 | 
				                return this->getOption(fscmode).getArgumentByName("type").getValueAsString(); | 
			
		||||
 | 
				            } | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				            bool ToParametricSettings::isTransformBinarySet() const { | 
			
		||||
 | 
				                return this->getOption(transformBinaryOption).getHasOptionBeenSet(); | 
			
		||||
 | 
				            } | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				            bool ToParametricSettings::isTransformSimpleSet() const { | 
			
		||||
 | 
				                return this->getOption(transformSimpleOption).getHasOptionBeenSet(); | 
			
		||||
 | 
				            } | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				            void ToParametricSettings::finalize() { | 
			
		||||
 | 
				            } | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				            bool ToParametricSettings::check() const { | 
			
		||||
 | 
				                return true; | 
			
		||||
 | 
				            } | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				        } // namespace modules
 | 
			
		||||
 | 
				    } // namespace settings
 | 
			
		||||
 | 
				} // namespace storm
 | 
			
		||||
@ -0,0 +1,49 @@ | 
			
		|||||
 | 
				#pragma once | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				#pragma once | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				#include "storm-config.h" | 
			
		||||
 | 
				#include "storm/settings/modules/ModuleSettings.h" | 
			
		||||
 | 
				#include "storm-pomdp/storage/PomdpMemory.h" | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				namespace storm { | 
			
		||||
 | 
				    namespace settings { | 
			
		||||
 | 
				        namespace modules { | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				            /*! | 
			
		||||
 | 
				             * This class represents the settings for POMDP model checking. | 
			
		||||
 | 
				             */ | 
			
		||||
 | 
				            class ToParametricSettings : public ModuleSettings { | 
			
		||||
 | 
				            public: | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				                /*! | 
			
		||||
 | 
				                 * Creates a new set of POMDP settings. | 
			
		||||
 | 
				                 */ | 
			
		||||
 | 
				                ToParametricSettings(); | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				                virtual ~ToParametricSettings() = default; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				                bool isExportToParametricSet() const; | 
			
		||||
 | 
				                std::string getExportToParametricFilename() const; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				                bool isQualitativeReductionSet() const; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				                bool isMecReductionSet() const; | 
			
		||||
 | 
				                bool isTransformSimpleSet() const; | 
			
		||||
 | 
				                bool isTransformBinarySet() const; | 
			
		||||
 | 
				                std::string getFscApplicationTypeString() const; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				                bool check() const override; | 
			
		||||
 | 
				                void finalize() override; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				                // The name of the module. | 
			
		||||
 | 
				                static const std::string moduleName; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				            private: | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				            }; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				        } // namespace modules | 
			
		||||
 | 
				    } // namespace settings | 
			
		||||
 | 
				} // namespace storm | 
			
		||||
						Write
						Preview
					
					
					Loading…
					
					Cancel
						Save
					
		Reference in new issue