15 #ifndef PAAL_N_QUEENS_LOCAL_SEARCH_HPP
16 #define PAAL_N_QUEENS_LOCAL_SEARCH_HPP
18 #define BOOST_RESULT_OF_USE_DECLTYPE
33 template <
typename... Args>
35 data_structures::NameWithDefault<GetMoves, n_queensget_moves>,
36 data_structures::NameWithDefault<Gain, n_queens_gain>,
55 template <
typename SearchStrategy,
typename ContinueOnSuccess,
56 typename ContinueOnFail,
typename NQueensPositionsVector,
59 SearchStrategy searchStrategy,
60 ContinueOnSuccess on_success,
61 ContinueOnFail on_fail,
65 std::move(on_success), std::move(on_fail),
66 std::move(nQueenscomponents)...);
77 template <
typename NQueensPositionsVector,
typename...
components>
82 std::move(nQueenscomponents)...);
88 #endif // PAAL_N_QUEENS_LOCAL_SEARCH_HPP
data_structures::components< GetMoves, Gain, Commit > components
Definition for the components class for local search usually this class is not directly used...
Adapts vector representing n queen problem to class able to efficiently compute gain of given move...
bool n_queens_solution_local_search(NQueensPositionsVector &pos, SearchStrategy searchStrategy, ContinueOnSuccess on_success, ContinueOnFail on_fail, components...nQueenscomponents)
n queen local search
This structure can be passed on Names list and represents Name and the default type value...
void n_queens_solution_first_improving(NQueensPositionsVector &pos, components...nQueenscomponents)
n queen local search (simple version)
data_structures::components< data_structures::NameWithDefault< GetMoves, n_queensget_moves >, data_structures::NameWithDefault< Gain, n_queens_gain >, data_structures::NameWithDefault< Commit, n_queens_commit >>::type< Args...> n_queens_local_search_components
NQueen Compoenents.
bool local_search(Solution &solution, SearchStrategy searchStrategy, ContinueOnSuccess succ, ContinueOnFail fail, components...comps)
detail
This strategy uses find_positive_predicate as stop condition.