Browse Source
			
			
			Added the class AbstractRewardPathFormula to the PRCTL formula tree.
			
				
		Added the class AbstractRewardPathFormula to the PRCTL formula tree.
	
		
	
			
				- This change splits the path formulas into probabilistic path formulas like Next or Until and reward path formulas like InstantaneousReward or SteadyStateReward.
|- That way it is assured at compile time that no reward path formula can ever be subformula of any probabilistic bound operator and vise versa.
Next up: Adopt changes in the Csl formula tree to the Csl parser.
Former-commit-id: d74c88bbf8
			
			
				main
			
			
		
				 11 changed files with 152 additions and 27 deletions
			
			
		- 
					1src/formula/Prctl.h
- 
					7src/formula/Prctl/AbstractPathFormula.h
- 
					62src/formula/Prctl/AbstractRewardPathFormula.h
- 
					7src/formula/Prctl/CumulativeReward.h
- 
					7src/formula/Prctl/InstantaneousReward.h
- 
					50src/formula/Prctl/PrctlFilter.h
- 
					6src/formula/Prctl/ReachabilityReward.h
- 
					10src/formula/Prctl/RewardBoundOperator.h
- 
					7src/formula/Prctl/SteadyStateReward.h
- 
					20src/modelchecker/prctl/AbstractModelChecker.h
- 
					2src/parser/PrctlParser.cpp
| @ -0,0 +1,62 @@ | |||||
|  | /* | ||||
|  |  * AbstractRewardPathFormula.h | ||||
|  |  * | ||||
|  |  *  Created on: May 15, 2014 | ||||
|  |  *      Author: Manuel S. Weiand | ||||
|  |  */ | ||||
|  | 
 | ||||
|  | #ifndef STORM_FORMULA_PRCTL_ABSTRACTREWARDPATHFORMULA_H_ | ||||
|  | #define STORM_FORMULA_PRCTL_ABSTRACTREWARDPATHFORMULA_H_ | ||||
|  | 
 | ||||
|  | namespace storm { | ||||
|  | namespace property { | ||||
|  | namespace prctl { | ||||
|  | 
 | ||||
|  | /*! Base class for reward path formulas. | ||||
|  |  * | ||||
|  |  *  Reward path formulas are subformulas of reward bound operators. | ||||
|  |  *  They may not be subformulas of a probabilitic bound operator. | ||||
|  |  * | ||||
|  |  */ | ||||
|  | template <class T> | ||||
|  | class AbstractRewardPathFormula : public virtual storm::property::prctl::AbstractPrctlFormula<T> { | ||||
|  | 
 | ||||
|  | public: | ||||
|  | 	/*! | ||||
|  | 	 * Empty virtual destructor. | ||||
|  | 	 */ | ||||
|  | 	virtual ~AbstractRewardPathFormula() { | ||||
|  | 		// Intentionally left empty | ||||
|  | 	} | ||||
|  | 
 | ||||
|  | 	/*! | ||||
|  | 	 * Clones the called object. | ||||
|  | 	 * | ||||
|  | 	 * Performs a "deep copy", i.e. the subtrees of the new object are clones of the original ones | ||||
|  | 	 * | ||||
|  | 	 * @note This function is not implemented in this class. | ||||
|  | 	 * @returns a new AND-object that is identical the called object. | ||||
|  | 	 */ | ||||
|  | 	virtual AbstractRewardPathFormula<T>* clone() const = 0; | ||||
|  | 
 | ||||
|  | 	/*! | ||||
|  | 	 * Calls the model checker to check this formula. | ||||
|  | 	 * Needed to infer the correct type of formula class. | ||||
|  | 	 * | ||||
|  | 	 * @note This function should only be called in a generic check function of a model checker class. For other uses, | ||||
|  | 	 *       the methods of the model checker should be used. | ||||
|  | 	 * | ||||
|  | 	 * @note This function is not implemented in this class. | ||||
|  | 	 * | ||||
|  | 	 * @returns A vector indicating the probability that the formula holds for each state. | ||||
|  | 	 */ | ||||
|  | 	virtual std::vector<T> check(const storm::modelchecker::prctl::AbstractModelChecker<T>& modelChecker, bool qualitative) const = 0; | ||||
|  | }; | ||||
|  | 
 | ||||
|  | } //namespace prctl | ||||
|  | } //namespace property | ||||
|  | } //namespace storm | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | #endif /* STORM_FORMULA_PRCTL_ABSTRACTREWARDPATHFORMULA_H_ */ | ||||
						Write
						Preview
					
					
					Loading…
					
					Cancel
						Save
					
		Reference in new issue