mutable
A Database System for Research and Fast Prototyping
Loading...
Searching...
No Matches
Data Structures | Namespaces | Macros | Typedefs | Functions
HeuristicSearchPlanEnumerator.hpp File Reference
#include <algorithm>
#include <array>
#include <boost/container/allocator.hpp>
#include <boost/container/node_allocator.hpp>
#include <boost/heap/binomial_heap.hpp>
#include <boost/heap/fibonacci_heap.hpp>
#include <boost/heap/pairing_heap.hpp>
#include <cmath>
#include <cstdint>
#include <iostream>
#include <iterator>
#include <limits>
#include <mutable/catalog/CostFunction.hpp>
#include <mutable/IR/PlanEnumerator.hpp>
#include <mutable/IR/PlanTable.hpp>
#include <mutable/IR/QueryGraph.hpp>
#include <mutable/util/ADT.hpp>
#include <mutable/util/crtp.hpp>
#include <mutable/util/HeuristicSearch.hpp>
#include <mutable/util/macro.hpp>
#include <mutable/util/MinCutAGaT.hpp>
#include <numeric>
#include <ratio>
#include <type_traits>
#include <utility>
#include <vector>
Include dependency graph for HeuristicSearchPlanEnumerator.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  m::pe::hs::search_states::Base< Actual >
 A state in the search space. More...
 
struct  m::pe::hs::search_states::Base< Actual >::state_counters_t
 
struct  m::pe::hs::search_states::SubproblemsArray
 
struct  m::pe::hs::search_states::SubproblemTableBottomUp
 
struct  m::pe::hs::search_states::SubproblemTableBottomUp::the_iterator< IsConst >
 
struct  m::pe::hs::search_states::EdgesBottomUp
 
struct  m::pe::hs::search_states::EdgePtrBottomUp
 
struct  m::pe::hs::search_states::EdgePtrBottomUp::the_iterator< IsConst >
 
struct  m::pe::hs::search_states::EdgePtrBottomUp::Scratchpad
 
struct  std::hash< m::pe::hs::search_states::SubproblemsArray >
 
struct  std::hash< m::pe::hs::search_states::SubproblemTableBottomUp >
 
struct  std::hash< m::pe::hs::search_states::EdgesBottomUp >
 
struct  std::hash< m::pe::hs::search_states::EdgePtrBottomUp >
 
struct  m::pe::hs::expansions::BottomUp
 
struct  m::pe::hs::expansions::BottomUpComplete
 
struct  m::pe::hs::expansions::TopDown
 
struct  m::pe::hs::expansions::TopDownComplete
 
struct  m::pe::hs::heuristics::zero< PlanTable, State, Expand >
 
struct  m::pe::hs::heuristics::sum< PlanTable, State, BottomUp >
 
struct  m::pe::hs::heuristics::sum< PlanTable, State, TopDown >
 
struct  m::pe::hs::heuristics::sum< PlanTable, State, Expand >
 This heuristic estimates the distance from a state to the nearest goal state as the sum of the sizes of all Subproblems yet to be joined. More...
 
struct  m::pe::hs::heuristics::sqrt_sum< PlanTable, State, TopDown >
 
struct  m::pe::hs::heuristics::sqrt_sum< PlanTable, State, Expand >
 
struct  m::pe::hs::heuristics::scaled_sum< PlanTable, State, BottomUp >
 
struct  m::pe::hs::heuristics::scaled_sum< PlanTable, State, Expand >
 
struct  m::pe::hs::heuristics::product< PlanTable, State, BottomUp >
 
struct  m::pe::hs::heuristics::product< PlanTable, State, Expand >
 This heuristic estimates the distance from a state to the nearest goal state as the product of the sizes of all Subproblems yet to be joined. More...
 
struct  m::pe::hs::heuristics::bottomup_lookahead_cheapest< PlanTable, State >
 
struct  m::pe::hs::heuristics::GOO< PlanTable, State, BottomUp >
 
struct  m::pe::hs::heuristics::GOO< PlanTable, State, TopDown >
 Inspired by GOO: Greedy Operator Ordering. More...
 
struct  m::pe::hs::heuristics::GOO< PlanTable, State, Expand >
 Inspired by GOO: Greedy Operator Ordering. More...
 
struct  m::pe::hs::heuristics::avg_sel< PlanTable, State, BottomUp >
 
struct  m::pe::hs::heuristics::avg_sel< PlanTable, State, Expand >
 
struct  m::pe::hs::config::Fibonacci_heap
 
struct  m::pe::hs::config::weighted_search< B >
 
struct  m::pe::hs::config::beam< Num, Denom >
 
struct  m::pe::hs::config::lazy< B >
 
struct  m::pe::hs::config::monotone< B >
 
struct  m::pe::hs::config::cost_based_pruning< B >
 
struct  m::pe::hs::config::anytime_search< B >
 
struct  m::pe::hs::config::combine< T, Ts >
 Combines multiple configuration parameters into a single configuration type. More...
 
struct  m::pe::hs::config::combine< T >
 Combines multiple configuration parameters into a single configuration type. More...
 
struct  m::pe::hs::HeuristicSearch
 Computes the join order using heuristic search. More...
 

Namespaces

namespace  m
 

‍mutable namespace


 
namespace  m::pe
 

‍plan enumerator namespace


 
namespace  m::pe::hs
 

‍heuristic search namespace


 
namespace  m::pe::hs::search_states
 

‍heuristic search states namespace


 
namespace  std
 STL namespace.
 
namespace  m::pe::hs::expansions
 

‍heuristic search state expansions namespace


 
namespace  m::pe::hs::heuristics
 
namespace  m::pe::hs::config
 

Macros

#define COUNTERS
 
#define DEFINE_SEARCH(NAME, ...)    using NAME = combine<monotone<true>, Fibonacci_heap, __VA_ARGS__>
 

Typedefs

using m::pe::hs::Subproblem = SmallBitset
 
using m::pe::hs::binary_plan_type = std::vector< std::pair< Subproblem, Subproblem > >
 

Functions

 m::pe::hs::config::DEFINE_SEARCH (AStar, weighted_search< false >, lazy< false >, cost_based_pruning< false >, beam< 0 >, anytime_search< false >)
 
 m::pe::hs::config::DEFINE_SEARCH (lazyAStar, weighted_search< false >, lazy< true >, cost_based_pruning< false >, beam< 0 >, anytime_search< false >)
 
 m::pe::hs::config::DEFINE_SEARCH (beam_search, weighted_search< false >, lazy< false >, cost_based_pruning< false >, beam< 2 >, anytime_search< false >)
 
 m::pe::hs::config::DEFINE_SEARCH (dynamic_beam_search, weighted_search< false >, lazy< false >, cost_based_pruning< false >, beam< 1, 5 >, anytime_search< false >)
 
 m::pe::hs::config::DEFINE_SEARCH (AStar_with_cbp, weighted_search< false >, lazy< false >, cost_based_pruning< true >, beam< 0 >, anytime_search< false >)
 
 m::pe::hs::config::DEFINE_SEARCH (beam_search_with_cbp, weighted_search< false >, lazy< false >, cost_based_pruning< true >, beam< 2 >, anytime_search< false >)
 
 m::pe::hs::config::DEFINE_SEARCH (anytimeAStar, weighted_search< false >, lazy< false >, cost_based_pruning< false >, beam< 0 >, anytime_search< true >)
 
 m::pe::hs::config::DEFINE_SEARCH (anytimeAStar_with_cbp, weighted_search< false >, lazy< false >, cost_based_pruning< true >, beam< 0 >, anytime_search< true >)
 
 m::pe::hs::config::DEFINE_SEARCH (weighted_AStar, weighted_search< true >, lazy< false >, cost_based_pruning< false >, beam< 0 >, anytime_search< false >)
 
 m::pe::hs::config::DEFINE_SEARCH (weighted_AStar_with_cbp, weighted_search< true >, lazy< false >, cost_based_pruning< true >, beam< 0 >, anytime_search< false >)
 
 m::pe::hs::config::DEFINE_SEARCH (weighted_anytimeAStar, weighted_search< true >, lazy< false >, cost_based_pruning< false >, beam< 0 >, anytime_search< true >)
 
 m::pe::hs::config::DEFINE_SEARCH (weighted_anytimeAStar_with_cbp, weighted_search< true >, lazy< false >, cost_based_pruning< true >, beam< 0 >, anytime_search< true >)
 
template<typename PlanTable , typename State >
double m::pe::hs::goo_path_completion (const State &state, PlanTable &PT, const QueryGraph &G, const AdjacencyMatrix &M, const CardinalityEstimator &CE, const CostFunction &CF, binary_plan_type &plan)
 
template<typename PlanTable , typename State , typename Expand , typename Search , template< typename, typename, typename > typename Heuristic, ai::SearchConfigConcept StaticConfig>
bool m::pe::hs::heuristic_search (PlanTable &PT, const QueryGraph &G, const AdjacencyMatrix &M, const CostFunction &CF, const CardinalityEstimator &CE, Search &S, const ai::SearchConfiguration< StaticConfig > &config)
 

Macro Definition Documentation

◆ COUNTERS

#define COUNTERS

Definition at line 70 of file HeuristicSearchPlanEnumerator.hpp.

◆ DEFINE_SEARCH

#define DEFINE_SEARCH (   NAME,
  ... 
)     using NAME = combine<monotone<true>, Fibonacci_heap, __VA_ARGS__>

Definition at line 2155 of file HeuristicSearchPlanEnumerator.hpp.