AIToolbox
A library that offers tools for AI problem solving.
AIToolbox::Factored::MDP::LinearProgramming Class Reference

This class solves a factored MDP with Linear Programming. More...

#include <AIToolbox/Factored/MDP/Algorithms/LinearProgramming.hpp>

Public Member Functions

std::tuple< Vector, QFunctionoperator() (const CooperativeModel &m, const FactoredVector &h) const
 This function solves the input MDP using linear programming. More...
 

Detailed Description

This class solves a factored MDP with Linear Programming.

This class computes best approximation possible of the optimal ValueFunction with respect to the input basis functions.

The process is very similar to the one performed by AIToolbox::MDP::LinearProgramming. However, since we can't create constraints for every possible state action pair here (for obvious space reasons), we use the mechanism introduced in FactoredLP: we build a series of constraints using VariableElimination that are equivalent to the exponential constraints, while being actually linear in the number of basis functions.

This results in a method that can very approximate very well the optimal ValueFunction for environments with trillion or more states and actions, in a reasonable amount of time.

Member Function Documentation

◆ operator()()

std::tuple<Vector, QFunction> AIToolbox::Factored::MDP::LinearProgramming::operator() ( const CooperativeModel m,
const FactoredVector h 
) const

This function solves the input MDP using linear programming.

Parameters
mThe MDP that needs to be solved.
hThe basis functions to use to approximate V*.
Returns
A tuple containing the weights for the basis functions, and the equivalent QFunction.

The documentation for this class was generated from the following file: