Parasol Planning Library (PPL)
Data Structures | Typedefs | Functions
CBS.h File Reference
#include <functional>
#include <queue>
#include <unordered_set>
#include <unordered_map>
#include <vector>
Include dependency graph for CBS.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  CBSNode< IndividualTask, ConstraintType, IndividualSolution >
 

Typedefs

template<typename IndividualTask , typename ConstraintType , typename IndividualSolution >
using CBSLowLevelPlanner = std::function< bool(CBSNode< IndividualTask, ConstraintType, IndividualSolution > &_node, IndividualTask *_task)>
 
template<typename IndividualTask , typename ConstraintType , typename IndividualSolution >
using CBSValidationFunction = std::function< std::vector< std::pair< IndividualTask *, ConstraintType > >(CBSNode< IndividualTask, ConstraintType, IndividualSolution > &_node)>
 
template<typename IndividualTask , typename ConstraintType , typename IndividualSolution >
using CBSCostFunction = std::function< double(CBSNode< IndividualTask, ConstraintType, IndividualSolution > &_node)>
 
template<typename IndividualTask , typename ConstraintType , typename IndividualSolution >
using CBSSplitNodeFunction = std::function< std::vector< CBSNode< IndividualTask, ConstraintType, IndividualSolution > >(CBSNode< IndividualTask, ConstraintType, IndividualSolution > &_node, std::vector< std::pair< IndividualTask *, ConstraintType > > _constraints, CBSLowLevelPlanner< IndividualTask, ConstraintType, IndividualSolution > &_lowlevel, CBSCostFunction< IndividualTask, ConstraintType, IndividualSolution > &_cost)>
 
template<typename IndividualTask , typename ConstraintType , typename IndividualSolution >
using CBSInitialFunction = std::function< void(std::vector< CBSNode< IndividualTask, ConstraintType, IndividualSolution > > &_root, std::vector< IndividualTask * > _tasks, CBSLowLevelPlanner< IndividualTask, ConstraintType, IndividualSolution > &_lowlevel, CBSCostFunction< IndividualTask, ConstraintType, IndividualSolution > &_cost)>
 

Functions

template<typename IndividualTask , typename ConstraintType , typename IndividualSolution >
CBSInitialFunction< IndividualTask, ConstraintType, IndividualSolution > CBSDefaultInitialFunction ()
 
template<typename IndividualTask , typename ConstraintType , typename IndividualSolution >
CBSNode< IndividualTask, ConstraintType, IndividualSolution > CBS (std::vector< IndividualTask * > _tasks, CBSValidationFunction< IndividualTask, ConstraintType, IndividualSolution > &_validate, CBSSplitNodeFunction< IndividualTask, ConstraintType, IndividualSolution > &_split, CBSLowLevelPlanner< IndividualTask, ConstraintType, IndividualSolution > &_lowlevel, CBSCostFunction< IndividualTask, ConstraintType, IndividualSolution > &_cost)
 
template<typename IndividualTask , typename ConstraintType , typename IndividualSolution >
CBSNode< IndividualTask, ConstraintType, IndividualSolution > CBS (std::vector< IndividualTask * > _tasks, CBSValidationFunction< IndividualTask, ConstraintType, IndividualSolution > &_validate, CBSSplitNodeFunction< IndividualTask, ConstraintType, IndividualSolution > &_split, CBSLowLevelPlanner< IndividualTask, ConstraintType, IndividualSolution > &_lowlevel, CBSCostFunction< IndividualTask, ConstraintType, IndividualSolution > &_cost, CBSInitialFunction< IndividualTask, ConstraintType, IndividualSolution > &_initial)
 

Typedef Documentation

◆ CBSCostFunction

template<typename IndividualTask , typename ConstraintType , typename IndividualSolution >
using CBSCostFunction = std::function<double(CBSNode<IndividualTask, ConstraintType, IndividualSolution>& _node)>

◆ CBSInitialFunction

template<typename IndividualTask , typename ConstraintType , typename IndividualSolution >
using CBSInitialFunction = std::function<void( std::vector<CBSNode<IndividualTask, ConstraintType, IndividualSolution> >& _root, std::vector<IndividualTask*> _tasks, CBSLowLevelPlanner<IndividualTask, ConstraintType, IndividualSolution>& _lowlevel, CBSCostFunction<IndividualTask, ConstraintType, IndividualSolution>& _cost)>

◆ CBSLowLevelPlanner

template<typename IndividualTask , typename ConstraintType , typename IndividualSolution >
using CBSLowLevelPlanner = std::function<bool(CBSNode<IndividualTask, ConstraintType, IndividualSolution>& _node, IndividualTask* _task)>

◆ CBSSplitNodeFunction

template<typename IndividualTask , typename ConstraintType , typename IndividualSolution >
using CBSSplitNodeFunction = std::function<std::vector<CBSNode<IndividualTask,ConstraintType,IndividualSolution> >( CBSNode<IndividualTask, ConstraintType, IndividualSolution>& _node, std::vector<std::pair<IndividualTask*, ConstraintType> > _constraints, CBSLowLevelPlanner<IndividualTask, ConstraintType, IndividualSolution>& _lowlevel, CBSCostFunction<IndividualTask, ConstraintType, IndividualSolution>& _cost)>

◆ CBSValidationFunction

template<typename IndividualTask , typename ConstraintType , typename IndividualSolution >
using CBSValidationFunction = std::function<std::vector<std::pair<IndividualTask*, ConstraintType> >( CBSNode<IndividualTask, ConstraintType, IndividualSolution>& _node)>

Function Documentation

◆ CBS() [1/2]

template<typename IndividualTask , typename ConstraintType , typename IndividualSolution >
CBSNode<IndividualTask, ConstraintType, IndividualSolution> CBS ( std::vector< IndividualTask * >  _tasks,
CBSValidationFunction< IndividualTask, ConstraintType, IndividualSolution > &  _validate,
CBSSplitNodeFunction< IndividualTask, ConstraintType, IndividualSolution > &  _split,
CBSLowLevelPlanner< IndividualTask, ConstraintType, IndividualSolution > &  _lowlevel,
CBSCostFunction< IndividualTask, ConstraintType, IndividualSolution > &  _cost 
)

◆ CBS() [2/2]

template<typename IndividualTask , typename ConstraintType , typename IndividualSolution >
CBSNode<IndividualTask, ConstraintType, IndividualSolution> CBS ( std::vector< IndividualTask * >  _tasks,
CBSValidationFunction< IndividualTask, ConstraintType, IndividualSolution > &  _validate,
CBSSplitNodeFunction< IndividualTask, ConstraintType, IndividualSolution > &  _split,
CBSLowLevelPlanner< IndividualTask, ConstraintType, IndividualSolution > &  _lowlevel,
CBSCostFunction< IndividualTask, ConstraintType, IndividualSolution > &  _cost,
CBSInitialFunction< IndividualTask, ConstraintType, IndividualSolution > &  _initial 
)

◆ CBSDefaultInitialFunction()

template<typename IndividualTask , typename ConstraintType , typename IndividualSolution >
CBSInitialFunction<IndividualTask, ConstraintType, IndividualSolution> CBSDefaultInitialFunction ( )