The previous all different neighbourhood had too tight constraints. This PR loosens those, at the cost of moves being perhaps incorrect. It does also implement a maximum matching method to initialise the neighbourhood, which is guaranteed to assign values from correct domains and all values are distinct.
The previous all different neighbourhood had too tight constraints. This PR loosens those, at the cost of moves being perhaps incorrect. It does also implement a maximum matching method to initialise the neighbourhood, which is guaranteed to assign values from correct domains and all values are distinct.