1#ifndef GUARD_INCLUDE_PROBFD_ABSTRACTIONS_DISTANCES_H
2#error "This file should only be included from distances.h"
5#include "probfd/algorithms/ta_topological_value_iteration.h"
7#include "probfd/pdbs/projection_operator.h"
8#include "probfd/pdbs/projection_state_space.h"
10#include "probfd/evaluator.h"
12#include "downward/utils/countdown_timer.h"
14#if !defined(NDEBUG) && (defined(HAS_CPLEX) || defined(HAS_SOPLEX))
15#include "downward/lp/lp_solver.h"
16#include "probfd/abstractions/verification.h"
21template <
typename State,
typename Action>
26 std::span<value_t> value_table,
29 using namespace algorithms::ta_topological_vi;
31 utils::CountdownTimer timer(max_time);
33 TATopologicalValueIteration<State, Action> vi(value_table.size());
39 timer.get_remaining_time());
41#if !defined(NDEBUG) && (defined(HAS_CPLEX) || defined(HAS_SOPLEX))
42 lp::LPSolverType lp_solver_type;
44 lp_solver_type = lp::LPSolverType::CPLEX;
48 verify(mdp, value_table, lp_solver_type);
The interface representing heuristic functions.
Definition mdp_algorithm.h:16
Basic interface for MDPs.
Definition mdp_algorithm.h:14
The top-level namespace of probabilistic Fast Downward.
Definition command_line.h:8
void compute_value_table(MDP< State, Action > &mdp, param_type< State > initial_state, const Evaluator< State > &heuristic, std::span< value_t > value_table, double max_time=std::numeric_limits< double >::infinity())
Computes the optimal value function of the abstraction, complete up to forward reachability from the ...
Definition distances_impl.h:22
typename std::conditional_t< is_cheap_to_copy_v< T >, T, const T & > param_type
Alias template defining the best way to pass a parameter of a given type.
Definition type_traits.h:25
void verify(MDP< State, Action > &mdp, std::span< const value_t > value_table, lp::LPSolverType type)
Computes the optimal value function of the abstraction, complete up to forward reachability from the ...
Definition verification_impl.h:18