AI 24/25 Project Software
Documentation for the AI 24/25 course programming project software
Loading...
Searching...
No Matches
probfd::algorithms::acyclic_vi::AcyclicValueIteration< State, Action > Class Template Referenceabstract

#include "probfd/algorithms/acyclic_value_iteration.h"

Inheritance diagram for probfd::algorithms::acyclic_vi::AcyclicValueIteration< State, Action >:
[legend]

Description

template<typename State, typename Action>
class probfd::algorithms::acyclic_vi::AcyclicValueIteration< State, Action >

Implements acyclic Value Iteration.

Performs value iteration on acyclic MDPs by performing a depth-first search ending at terminal states and applying Bellman updates during backtracking. Exactly one Bellman update is performed per encountered state.

Template Parameters
State- The state type of the underlying MDP model.
Action- The action type of the underlying MDP model.
Remarks
The search algorithm may only be used with acyclic state spaces. The planner aborts if it detects a cycle.

Public Member Functions

virtual std::unique_ptr< PolicyType > compute_policy (MDPType &mdp, EvaluatorType &heuristic, param_type< State > state, ProgressReport progress, double maxtime)=0
 Computes a partial policy for the input state.
 
virtual Interval solve (MDPType &mdp, EvaluatorType &heuristic, param_type< State > state, ProgressReport progress, double max_time)=0
 Runs the MDP algorithm for the initial state state with a maximum time limit.
 
virtual void print_statistics (std::ostream &) const
 Prints algorithm statistics to the specified output stream.
 

Member Function Documentation

◆ compute_policy()

template<typename State , typename Action >
virtual std::unique_ptr< PolicyType > probfd::MDPAlgorithm< State, Action >::compute_policy ( MDPType & mdp,
EvaluatorType & heuristic,
param_type< State > state,
ProgressReport progress,
double maxtime )
pure virtualinherited

Computes a partial policy for the input state.

◆ solve()

template<typename State , typename Action >
virtual Interval probfd::MDPAlgorithm< State, Action >::solve ( MDPType & mdp,
EvaluatorType & heuristic,
param_type< State > state,
ProgressReport progress,
double max_time )
pure virtualinherited

Runs the MDP algorithm for the initial state state with a maximum time limit.

◆ print_statistics()