EasyLocalAPI reference iolab-uniud/easylocal

easylocal::has_tabu_attribute_member

An explorer with a tabu_attribute(move) member, the attribute of a move that frequency-based memory counts: a value with std::hash and ==.

Synopsis

Declared in <easylocal/helpers/neighborhood_explorer.hpp>

template<class NHE>
concept has_tabu_attribute_member = requires(const NHE& neighborhood, const typename NHE::move_type& move) {
        requires std_hashable<
            std::remove_cvref_t<decltype(neighborhood.tabu_attribute(move))>>;
        requires std::equality_comparable<
            std::remove_cvref_t<decltype(neighborhood.tabu_attribute(move))>>;
    };

Description

The member chooses it (the pair of jobs of a swap, ignoring their positions); without one, the move itself is the attribute when it has std::hash and ==.