|  |  | @ -46,10 +46,11 @@ namespace storm { | 
			
		
	
		
			
				
					|  |  |  |              | 
			
		
	
		
			
				
					|  |  |  |             template <class SparseMdpModelType> | 
			
		
	
		
			
				
					|  |  |  |             void SparseMdpRewardBoundedPcaaWeightVectorChecker<SparseMdpModelType>::computeEpochSolution(typename MultiDimensionalRewardUnfolding<ValueType, false>::Epoch const& epoch, std::vector<ValueType> const& weightVector) { | 
			
		
	
		
			
				
					|  |  |  |                 auto const& epochModel = rewardUnfolding.setCurrentEpoch(epoch); | 
			
		
	
		
			
				
					|  |  |  |                 auto& epochModel = rewardUnfolding.setCurrentEpoch(epoch); | 
			
		
	
		
			
				
					|  |  |  |                 swEqBuilding.start(); | 
			
		
	
		
			
				
					|  |  |  |                 std::vector<typename MultiDimensionalRewardUnfolding<ValueType, false>::SolutionType> result(epochModel.inStates.getNumberOfSetBits()); | 
			
		
	
		
			
				
					|  |  |  |                  | 
			
		
	
		
			
				
					|  |  |  |                 uint64_t stateSolutionSize = this->objectives.size() + 1; | 
			
		
	
		
			
				
					|  |  |  |                 auto& result = epochModel.inStateSolutions; | 
			
		
	
		
			
				
					|  |  |  |                 result.resize(epochModel.epochInStates.getNumberOfSetBits(), typename MultiDimensionalRewardUnfolding<ValueType, false>::SolutionType(stateSolutionSize)); | 
			
		
	
		
			
				
					|  |  |  |                  | 
			
		
	
		
			
				
					|  |  |  |                 // Formulate a min-max equation system max(A*x+b)=x for the weighted sum of the objectives
 | 
			
		
	
		
			
				
					|  |  |  |                 std::vector<ValueType> b(epochModel.epochMatrix.getRowCount(), storm::utility::zero<ValueType>()); | 
			
		
	
	
		
			
				
					|  |  | @ -81,10 +82,8 @@ namespace storm { | 
			
		
	
		
			
				
					|  |  |  |                 swMinMaxSolving.stop(); | 
			
		
	
		
			
				
					|  |  |  |                 swEqBuilding.start(); | 
			
		
	
		
			
				
					|  |  |  |                 auto resultIt = result.begin(); | 
			
		
	
		
			
				
					|  |  |  |                 uint64_t solSize = this->objectives.size() + 1; | 
			
		
	
		
			
				
					|  |  |  |                 for (auto const& state : epochModel.inStates) { | 
			
		
	
		
			
				
					|  |  |  |                     resultIt->reserve(solSize); | 
			
		
	
		
			
				
					|  |  |  |                     resultIt->push_back(x[state]); | 
			
		
	
		
			
				
					|  |  |  |                 for (auto const& state : epochModel.epochInStates) { | 
			
		
	
		
			
				
					|  |  |  |                     resultIt->front() = x[state]; | 
			
		
	
		
			
				
					|  |  |  |                     ++resultIt; | 
			
		
	
		
			
				
					|  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |                  | 
			
		
	
	
		
			
				
					|  |  | @ -115,14 +114,15 @@ namespace storm { | 
			
		
	
		
			
				
					|  |  |  |                     linEqSolver->solveEquations(x, b); | 
			
		
	
		
			
				
					|  |  |  |                     swLinEqSolving.stop(); | 
			
		
	
		
			
				
					|  |  |  |                     swEqBuilding.start(); | 
			
		
	
		
			
				
					|  |  |  |                     auto resultIt = result.begin(); | 
			
		
	
		
			
				
					|  |  |  |                     for (auto const& state : epochModel.inStates) { | 
			
		
	
		
			
				
					|  |  |  |                         resultIt->push_back(x[state]); | 
			
		
	
		
			
				
					|  |  |  |                     resultIt = result.begin(); | 
			
		
	
		
			
				
					|  |  |  |                     for (auto const& state : epochModel.epochInStates) { | 
			
		
	
		
			
				
					|  |  |  |                         (*resultIt)[objIndex + 1] = x[state]; | 
			
		
	
		
			
				
					|  |  |  |                         ++resultIt; | 
			
		
	
		
			
				
					|  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |                 swEqBuilding.stop(); | 
			
		
	
		
			
				
					|  |  |  |                 rewardUnfolding.setSolutionForCurrentEpoch(result); | 
			
		
	
		
			
				
					|  |  |  |                  | 
			
		
	
		
			
				
					|  |  |  |                 rewardUnfolding.setSolutionForCurrentEpoch(); | 
			
		
	
		
			
				
					|  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             template <class SparseMdpModelType> | 
			
		
	
	
		
			
				
					|  |  | 
 |