AI 24/25 Project Software
Documentation for the AI 24/25 course programming project software
Loading...
Searching...
No Matches
probfd::algorithms::fret::FRET< typename, typename, typename, typename > Class Template Referenceabstract

#include "probfd/algorithms/fret.h"

Inheritance diagram for probfd::algorithms::fret::FRET< typename, typename, typename, typename >:
[legend]

Description

template<typename, typename, typename, typename>
class probfd::algorithms::fret::FRET< typename, typename, typename, typename >

Implemetation of the Find-Revise-Eliminate-Traps (FRET) framework [9] .

The FRET framework is a framework designed for Generalized Stochastic Shortest-Path Problems (GSSPs, [9]). In this scenario, traditional heuristic search algorithms do not converge against an optimal policy due to the existence of traps. FRET interleaves heuristic searches with a trap elimination procedure until no more traps are found. This guarantees that an optimal policy is returned.

The two common trap elimination strategies find traps in

  • The greedy value graph of the MDP, or
  • The greedy policy graph of the optimal policy returned by the last heuristic search
Template Parameters
State- The state type of the underlying MDP.
Action- The action type of the underlying MDP.
StateInfoT- The state info type of the heuristic search algorithm.
GreedyGraphGenerator- The type of the generator used to construct the search graph in which traps are found and eliminated between heuristic searches.

Public Member Functions

void print_statistics (std::ostream &out) const override
 Prints algorithm statistics to the specified output stream.
 
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.
 

Member Function Documentation

◆ print_statistics()

template<typename State , typename Action , typename StateInfoT , typename GreedyGraphGenerator >
void probfd::algorithms::fret::FRET< State, Action, StateInfoT, GreedyGraphGenerator >::print_statistics ( std::ostream & ) const
overridevirtual

Prints algorithm statistics to the specified output stream.

Reimplemented from probfd::MDPAlgorithm< State, Action >.

◆ 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.