From 1ff12bb90ea8c805e706f6ba077292799b1746b7 Mon Sep 17 00:00:00 2001
From: Kilian Verhetsel <kilian.verhetsel@student.uclouvain.be>
Date: Sat, 10 Dec 2016 13:40:18 +0000
Subject: [PATCH] Switch LNS stopping condition to a time limit

---
 Mesh/search.hpp | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/Mesh/search.hpp b/Mesh/search.hpp
index 4a954c583f..275ad47148 100644
--- a/Mesh/search.hpp
+++ b/Mesh/search.hpp
@@ -174,8 +174,11 @@ template<typename State,
          typename Fragment = typename selector_traits<Selector>::fragment_type,
          typename Assigment = typename search_traits<Search>::assignment_type>
 void large_neighborhood_search(State &state, Selector &selector,
-                               Search &search, size_t fragment_count = 100) {
-  for (size_t i = 0; i < fragment_count; i++) {
+                               Search &search,
+                               std::size_t time_limit = 100) {
+  using namespace std::chrono;
+  auto start = steady_clock::now();
+  while (steady_clock::now() - start < time_limit * 1s) {
     Fragment fragment(selector(state));
     Assigment assignment(search(state, fragment));
     assignment(state, fragment);
-- 
GitLab