{"id":128113,"date":"2026-06-01T13:07:22","date_gmt":"2026-06-01T12:07:22","guid":{"rendered":"https:\/\/antsroute.com\/?p=128113"},"modified":"2026-06-01T13:30:09","modified_gmt":"2026-06-01T12:30:09","slug":"warm-start-local-search-routes","status":"publish","type":"post","link":"https:\/\/antsroute.com\/en\/solutions\/warm-start-local-search-routes\/","title":{"rendered":"Warm Start, Local Search and Neighbourhoods: how our engine continuously re-optimises routes"},"content":{"rendered":"<div class=\"wpb-content-wrapper\">[vc_row css=&#8221;.vc_custom_1735829915094{margin-top: 50px !important;}&#8221;][vc_column width=&#8221;1\/12&#8243; el_class=&#8221;vc_hidden-xs Extra Small Screen vc_hidden-sm Small Screen&#8221;][\/vc_column][vc_column width=&#8221;10\/12&#8243;][vc_row_inner el_class=&#8221;vc_row-2&#8243;][vc_column_inner el_class=&#8221;vc_hidden-xs Extra Small Screen vc_hidden-sm Small Screen&#8221; width=&#8221;1\/12&#8243;][\/vc_column_inner][vc_column_inner width=&#8221;10\/12&#8243;][vc_column_text css=&#8221;.vc_custom_1780305898171{margin-top: 5px !important;}&#8221;]<a style=\"text-decoration: none; color: #1a1a1a; font-size: 18px; font-weight: 500;\" href=\"https:\/\/antsroute.com\/en\/blog\/\">Blog<\/a> &gt; <span style=\"color: #5d75e7; font-size: 18px; font-weight: 500;\">Route optimisation<\/span> &gt; <span style=\"color: #a7a7a7; font-size: 18px;\">Warm Start, Local Search and Neighbourhoods: how our engine continuously re-optimises routes<\/span>[\/vc_column_text][vc_column_text css=&#8221;&#8221;]\n<h1>Warm Start, Local Search and Neighbourhoods: how our engine continuously re-optimises routes<\/h1>\n[\/vc_column_text][vc_column_text]\n<p class=\"text-head\" style=\"color: #424762; font-size: 16px;\">Published on <span style=\"font-weight: 500;\">1 June 2026<\/span> <span class=\"span-reading-time rt-reading-time\"><span class=\"rt-label rt-prefix\"> \u2022 Reading time: <\/span> <span class=\"rt-time\"> 8<\/span> <span class=\"rt-label rt-postfix\">min read<\/span><\/span>\n[\/vc_column_text][vc_column_text css=&#8221;&#8221;]<img decoding=\"async\" class=\"aligncenter wp-image-128124\" style=\"border-radius: 5px;\" src=\"https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-1.webp\" alt=\"Screenshot of the AntsRoute interface showing a route map with multiple routes and an \u201cAdd Delivery\u201d panel. On the left, the heading \u201cHow to re-optimise routes without starting from scratch\u201d is accompanied by three key concepts: Warm Starts, Local Search and Neighbourhoods.\" width=\"1600\" height=\"847\" srcset=\"https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-1.webp 1629w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-1-300x159.webp 300w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-1-1024x542.webp 1024w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-1-768x406.webp 768w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-1-1536x813.webp 1536w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-1-142x75.webp 142w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-1-700x370.webp 700w\" sizes=\"(max-width:767px) 700px, (max-width:1600px) 100vw, 1600px\" \/>[\/vc_column_text][\/vc_column_inner][vc_column_inner el_class=&#8221;vc_hidden-xs Extra Small Screen vc_hidden-sm Small Screen&#8221; width=&#8221;1\/12&#8243;][\/vc_column_inner][\/vc_row_inner][vc_row_inner el_class=&#8221;vc_row-2&#8243;][vc_column_inner el_class=&#8221;vc_hidden-xs Extra Small Screen vc_hidden-sm Small Screen&#8221; width=&#8221;2\/12&#8243;][\/vc_column_inner][vc_column_inner width=&#8221;8\/12&#8243;][vc_column_text css=&#8221;&#8221;]In vehicle routing optimisation problems, producing an initial solution is rarely the main challenge. The real difficulty emerges when a schedule must evolve in response to operational events such as the addition of a new job, a delay, a cancellation, a change in customer requirements, vehicle reassignment, or local route saturation.<\/p>\n<p>In this context, the engine is no longer working on an initial problem. It must adapt a system that has already been built, is already constrained, and is often already partially optimised, while preserving as much of its overall quality as possible. This ability to efficiently evolve an existing schedule is precisely what distinguishes dynamic optimisation problems from more traditional theoretical approaches.<\/p>\n<p>This article deliberately focuses on the re-optimisation mechanisms used in dynamic routing engines: warm start, local search, neighbourhood structures and exploration heuristics. For a broader overview of route optimisation challenges in last-mile logistics, you can also read our <strong><a href=\"https:\/\/antsroute.com\/en\/solutions\/route-optimisation-complexity\/\"><u>comprehensive guide to route optimisation<\/u><\/a><\/strong>.<\/p>\n<p>In real-world operations, a high-performing engine cannot start again from scratch every time an event occurs. Optimisation algorithms must be capable of locally re-optimising a live schedule without unnecessarily disrupting existing routes.<\/p>\n<p>At AntsRoute, this challenge sits at the core of our optimisation engine architecture.<\/p>\n<p><strong>What you&#8217;ll learn in this article<\/strong>:<\/p>\n<ul id=\"imglist-3\">\n<li><a href=\"#why-starting-from-scratch-is-rarely-a-good-strategy\"><u>Why starting from scratch is not viable in real-time operations<\/u><\/a><\/li>\n<li><a href=\"#warm-starts-building-on-an-existing-optimised-solution\"><u>The role of warm starts in dynamic routing<\/u><\/a><\/li>\n<li><a href=\"#an-insertion-should-never-be-evaluated-in-isolation\"><u>Why every insertion must be evaluated globally<\/u><\/a><\/li>\n<li><a href=\"#local-search-exploring-the-neighbourhood-of-a-solution\"><u>How local search works<\/u><\/a><\/li>\n<li><a href=\"#not-all-neighbourhoods-deserve-the-same-computational-cost\"><u>Why not all neighbourhoods deserve the same level of exploration<\/u><\/a><\/li>\n<li><a href=\"#first-improvement-vs-best-improvement\"><u>First-improvement vs Best-improvement: two optimisation strategies<\/u><\/a><\/li>\n<li><a href=\"#why-exact-methods-quickly-reach-their-limits\"><u>Why exact methods quickly reach their limits<\/u><\/a><\/li>\n<\/ul>\n<h2 id=\"why-starting-from-scratch-is-rarely-a-good-strategy\"><span id=\"Why_starting_from_scratch_is_rarely_a_good_strategy\">Why starting from scratch is rarely a good strategy<\/span><\/h2>\n<p>In theory, completely rebuilding a schedule after every change might seem like the best approach. In practice, however, this strategy quickly becomes impractical due to the explosion in the <strong>number of possible solutions<\/strong> to explore, the <strong>computational effort<\/strong> involved, and the operational instability it creates for field teams.<\/p>\n<p>As explained by <a href=\"https:\/\/www.linkedin.com\/in\/ammar-oulamara-5b837177\" target=\"_blank\" rel=\"noopener\"><u>Ammar Oulamara<\/u><\/a>, Head of R&amp;D at AntsRoute:<\/p>\n<p class=\"summary-block\">\u201cA real-time optimisation engine cannot fully rebuild routes every time a new event occurs. The computational cost and the resulting instability would simply be too high.\u201d<\/p>\n<p>This is precisely why modern routing engines rely on warm-start approaches.<\/p>\n<h2 id=\"warm-starts-building-on-an-existing-optimised-solution\"><span id=\"Warm_Starts_building_on_an_existing_optimised_solution\">Warm Starts: building on an existing optimised solution<\/span><\/h2>\n<p>The principle of a warm start is to use the current schedule as the starting point for optimisation. Rather than searching for an entirely new solution, the engine seeks to <strong>improve a solution that is already coherent<\/strong>, making targeted local adjustments while minimising any degradation that could affect the overall balance of the system.<\/p>\n<p>This approach offers several important advantages:<\/p>\n<ul id=\"imglist\">\n<li>A dramatic reduction in the search space;<\/li>\n<li>Greater operational stability;<\/li>\n<li>Response times compatible with real-time operations;<\/li>\n<li>Fewer unnecessary schedule disruptions.<\/li>\n<\/ul>\n<p>As Ammar Oulamara explains:<\/p>\n<p class=\"summary-block\">\u201cWarm starts allow the engine to focus its computational power on the areas that are genuinely affected by a scheduling change.\u201d<\/p>\n<p>This fundamentally changes the way the problem is explored.<\/p>\n<h2 id=\"an-insertion-should-never-be-evaluated-in-isolation\"><span id=\"An_insertion_should_never_be_evaluated_in_isolation\">An insertion should never be evaluated in isolation<\/span><\/h2>\n<p>When a new job, \u03c4, is inserted into a schedule, the engine does not simply evaluate its immediate marginal cost. In reality, that insertion can have consequences across the entire plan by affecting:<\/p>\n<ul id=\"imglist\">\n<li>Time-related constraints;<\/li>\n<li>Operational buffers and slack time;<\/li>\n<li>The balance between routes;<\/li>\n<li>Future re-optimisation opportunities;<\/li>\n<li>The geographical compactness of the schedule.<\/li>\n<\/ul>\n<p>The engine must therefore explore not only the insertion itself, but also the local reorganisations that the insertion may subsequently enable. It is precisely this ability to improve an existing solution that lies at the heart of local search mechanisms.<\/p>\n<p><a href=\"https:\/\/calendly.com\/lea-brice-antsroute\/demonstration\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"aligncenter wp-image-126567 size-full\" style=\"border-radius: 5px;\" src=\"https:\/\/antsroute.com\/wp-content\/uploads\/antsroute-cta-book-demo.webp\" alt=\"Call-to-action banner for AntsRoute featuring route optimisation software, a delivery route map interface, and a \u201cBook a demo\u201d button highlighting reduced mileage and improved customer satisfaction.\" width=\"1600\" height=\"499\" srcset=\"https:\/\/antsroute.com\/wp-content\/uploads\/antsroute-cta-book-demo.webp 1600w, https:\/\/antsroute.com\/wp-content\/uploads\/antsroute-cta-book-demo-300x94.webp 300w, https:\/\/antsroute.com\/wp-content\/uploads\/antsroute-cta-book-demo-1024x319.webp 1024w, https:\/\/antsroute.com\/wp-content\/uploads\/antsroute-cta-book-demo-768x240.webp 768w, https:\/\/antsroute.com\/wp-content\/uploads\/antsroute-cta-book-demo-1536x479.webp 1536w, https:\/\/antsroute.com\/wp-content\/uploads\/antsroute-cta-book-demo-150x47.webp 150w, https:\/\/antsroute.com\/wp-content\/uploads\/antsroute-cta-book-demo-700x218.webp 700w\" sizes=\"(max-width:767px) 700px, (max-width:1600px) 100vw, 1600px\" \/><\/a><\/p>\n<h2 id=\"local-search-exploring-the-neighbourhood-of-a-solution\"><span id=\"Local_Search_exploring_the_neighbourhood_of_a_solution\">Local Search: exploring the neighbourhood of a solution<\/span><\/h2>\n<p>In vehicle routing problems, it is impossible to exhaustively explore every possible solution. Modern optimisation engines therefore rely primarily on neighbourhood search techniques.<\/p>\n<p>The principle is straightforward:<\/p>\n<ul id=\"imglist\">\n<li>Start from an existing solution;<\/li>\n<li>Apply targeted local modifications;<\/li>\n<li>Evaluate whether the resulting solution improves the overall schedule.<\/li>\n<\/ul>\n<p>At AntsRoute, the local search algorithm relies on several operators that efficiently explore these neighbourhoods.<\/p>\n<div id=\"attachment_128136\" style=\"width: 1610px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" aria-describedby=\"caption-attachment-128136\" class=\"wp-image-128136 size-full\" style=\"border-radius: 5px;\" src=\"https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-3.webp\" alt=\"Diagram showing four local search operators used in route optimisation: Relocate, Or-opt, 2-opt\/3-opt, and Cross-Exchange.\" width=\"1600\" height=\"703\" srcset=\"https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-3.webp 1600w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-3-300x132.webp 300w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-3-1024x450.webp 1024w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-3-768x337.webp 768w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-3-1536x675.webp 1536w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-3-150x66.webp 150w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-3-700x308.webp 700w\" sizes=\"(max-width:767px) 700px, (max-width:1600px) 100vw, 1600px\" \/><p id=\"caption-attachment-128136\" class=\"wp-caption-text\">Local Search operators for route optimisation.<\/p><\/div>\n<h3><span id=\"Relocate_moving_a_job_to_a_better_position\">Relocate: moving a job to a better position<\/span><\/h3>\n<p>The <strong>relocate<\/strong> operator is one of the most fundamental mechanisms in local search. It consists of <strong>removing a job from a route<\/strong> and <strong>reinserting it in a different position<\/strong>, either within the same route or in another route.<br \/>\nThis operation can be used to:<\/p>\n<ul id=\"imglist\">\n<li>Restore scheduling flexibility and time buffers;<\/li>\n<li>Rebalance workloads across routes;<\/li>\n<li>Reduce certain cascading effects caused by earlier planning decisions.<\/li>\n<\/ul>\n<p>In dynamic routing systems, relocate often plays a central role in rapid re-optimisation because it enables local improvements to be made with a relatively low computational cost.<\/p>\n<h3><span id=\"Or-opt_moving_sequences_of_jobs\">Or-opt: moving sequences of jobs<\/span><\/h3>\n<p>In some situations, moving a single job is not enough to restore a well-balanced schedule. The engine then uses <strong>Or-opt<\/strong> operators, which involve <strong>moving a sequence of one, two or three consecutive jobs<\/strong> to a different position within a route or elsewhere in the schedule.<\/p>\n<p>This approach is particularly useful when:<\/p>\n<ul id=\"imglist\">\n<li>Several jobs share a strong geographical relationship;<\/li>\n<li>A local reorganisation requires certain route continuities to be preserved.<\/li>\n<\/ul>\n<p>As Ammar Oulamara explains:<\/p>\n<p class=\"summary-block\">\u201cMoving a coherent group of jobs can sometimes restore the balance of a schedule far more effectively than a series of isolated changes.\u201d<\/p>\n<h3><span id=\"2-opt_and_3-opt_reshaping_the_geography_of_routes\">2-opt and 3-opt: reshaping the geography of routes<\/span><\/h3>\n<p>The <strong>2-opt<\/strong> and <strong>3-opt<\/strong> operators serve a different purpose. They involve <strong>reversing specific subsequences within a route<\/strong> in order to improve its geographical structure.<\/p>\n<p>These mechanisms can be used to:<\/p>\n<ul id=\"imglist\">\n<li>Eliminate route crossings;<\/li>\n<li>Improve geographical compactness;<\/li>\n<li>Reduce unnecessary detours.<\/li>\n<\/ul>\n<p>They are particularly effective when:<\/p>\n<ul id=\"imglist\">\n<li>Routes become fragmented over time;<\/li>\n<li>A series of successive insertions gradually degrades their spatial structure.<\/li>\n<\/ul>\n<p>Even in systems heavily constrained by time-related requirements, the geographical quality of routes remains a key factor in operational robustness.<\/p>\n<div id=\"attachment_128142\" style=\"width: 1610px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" aria-describedby=\"caption-attachment-128142\" class=\"wp-image-128142\" style=\"border-radius: 5px;\" src=\"https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-4.webp\" alt=\"Diagram illustrating how the 2-opt operator works in route optimisation. On the left, a route contains a crossing between segments (2\u20135) and (3\u20136). On the right, these connections are replaced with segments (2\u20133) and (5\u20136), eliminating the crossing and improving the route structure.\" width=\"1600\" height=\"695\" srcset=\"https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-4.webp 1650w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-4-300x130.webp 300w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-4-1024x445.webp 1024w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-4-768x334.webp 768w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-4-1536x667.webp 1536w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-4-150x65.webp 150w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-4-700x304.webp 700w\" sizes=\"(max-width:767px) 700px, (max-width:1600px) 100vw, 1600px\" \/><p id=\"caption-attachment-128142\" class=\"wp-caption-text\">Example of the 2-opt operator in action: two route segments are replaced with new connections, eliminating the crossing and reducing the overall travel distance.<\/p><\/div>\n<h3><span id=\"Cross-Exchange_rebalancing_multiple_routes_simultaneously\">Cross-Exchange: rebalancing multiple routes simultaneously<\/span><\/h3>\n<p>In highly constrained systems, some insertions cannot be absorbed through simple local adjustments. The engine must then reorganise multiple routes simultaneously using <strong>cross-exchange<\/strong> operators, which involve <strong>swapping entire route segments between routes<\/strong> in order to restore a better overall balance.<\/p>\n<p>These mechanisms become particularly valuable when:<\/p>\n<ul id=\"imglist\">\n<li>Critical resources are approaching saturation;<\/li>\n<li>Multiple routes are becoming vulnerable from a scheduling perspective;<\/li>\n<li>Opportunities for local reorganisation are becoming increasingly limited.<\/li>\n<\/ul>\n<p>At this stage, the engine no longer reasons solely at the level of an individual route. Instead, it evaluates the schedule as a whole in order to identify the most effective rebalancing opportunities.<\/p>\n<div id=\"attachment_128148\" style=\"width: 1610px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" aria-describedby=\"caption-attachment-128148\" class=\"wp-image-128148\" style=\"border-radius: 5px;\" src=\"https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-5.webp\" alt=\"Before-and-after diagram illustrating the cross-exchange operator. Two task segments belonging to separate routes are selected and then swapped in order to achieve a better distribution of jobs across vehicles. The re-optimised version shows the exchange of segments between routes and the resulting benefits in terms of workload balancing, feasibility and cost reduction.\" width=\"1600\" height=\"789\" srcset=\"https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-5.webp 1650w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-5-300x148.webp 300w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-5-1024x505.webp 1024w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-5-768x379.webp 768w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-5-1536x758.webp 1536w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-5-150x75.webp 150w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-5-700x345.webp 700w\" sizes=\"(max-width:767px) 700px, (max-width:1600px) 100vw, 1600px\" \/><p id=\"caption-attachment-128148\" class=\"wp-caption-text\">Example of a cross-exchange operation: route segments are swapped between two routes to achieve a better distribution of jobs and improve the overall efficiency of the schedule.<\/p><\/div>\n<h2 id=\"not-all-neighbourhoods-deserve-the-same-computational-cost\"><span id=\"Not_all_neighbourhoods_deserve_the_same_computational_cost\">Not all neighbourhoods deserve the same computational cost<\/span><\/h2>\n<p>Exploring every candidate insertion in depth would be far too costly from a computational standpoint. The engine must therefore prioritise its efforts and focus its processing power on the most promising solutions. At AntsRoute, this exploration is based on a hierarchy of neighbourhoods, allowing the depth of the search to be adjusted progressively according to the quality of the insertions being evaluated.<\/p>\n<h3><span id=\"Degree_1_Neighbourhood\">Degree 1 Neighbourhood<\/span><\/h3>\n<p>The first neighbourhood level is based solely on <strong>simple local modifications within a single route<\/strong>. The aim is to quickly filter out clearly unfavourable insertions while keeping computational cost low.<\/p>\n<h3><span id=\"Degree_2_Neighbourhood\">Degree 2 Neighbourhood<\/span><\/h3>\n<p>At this stage, the engine allows <strong>exchanges between routes<\/strong>, as well as broader rebalancing operations. This exploration makes it possible to assess the wider consequences of certain insertions and identify improvements that would not be visible at the level of a single route.<\/p>\n<h3><span id=\"Degree_3_Neighbourhood\">Degree 3 Neighbourhood<\/span><\/h3>\n<p>The third neighbourhood level allows much deeper reorganisations, which may include <strong>multi-day restructuring<\/strong> or <strong>significant changes to the schedule<\/strong>. These more costly explorations are reserved for the most promising insertions or for particularly constrained situations.<\/p>\n<p>This hierarchy of neighbourhoods enables processing power to be allocated intelligently by adapting the depth of the search to the quality of the solutions encountered.<\/p>\n<div id=\"attachment_128154\" style=\"width: 1610px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" aria-describedby=\"caption-attachment-128154\" class=\"wp-image-128154\" style=\"border-radius: 5px;\" src=\"https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-7.webp\" alt=\"Diagram illustrating three neighbourhood levels in route optimisation: local modifications within a single route (Level 1), exchanges between routes (Level 2), and multi-day schedule reorganisations (Level 3). Each level is associated with increasing search depth and computational cost.\" width=\"1600\" height=\"696\" srcset=\"https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-7.webp 1750w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-7-300x130.webp 300w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-7-1024x445.webp 1024w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-7-768x334.webp 768w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-7-1536x668.webp 1536w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-7-150x65.webp 150w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-7-700x304.webp 700w\" sizes=\"(max-width:767px) 700px, (max-width:1600px) 100vw, 1600px\" \/><p id=\"caption-attachment-128154\" class=\"wp-caption-text\">The engine progressively explores increasingly larger neighbourhoods, focusing its computational power on the most promising solutions.<\/p><\/div>\n<h2 id=\"first-improvement-vs-best-improvement\"><span id=\"First-improvement_vs_Best-improvement\">First-improvement vs Best-improvement<\/span><\/h2>\n<p>One of the most important trade-offs in local search concerns the strategy used to explore the neighbourhood of a solution. Two main approaches are commonly employed: <strong>first-improvement<\/strong> and <strong>best-improvement<\/strong>.<\/p>\n<h3><span id=\"First-improvement\">First-improvement<\/span><\/h3>\n<p>With the first-improvement strategy, the engine accepts the <strong>first improvement it encounters<\/strong> during neighbourhood exploration. This approach offers several advantages:<\/p>\n<ul id=\"imglist\">\n<li>Fast convergence;<\/li>\n<li>Low computational cost;<\/li>\n<li>Good efficiency during the early stages of exploration.<\/li>\n<\/ul>\n<h3><span id=\"Best-improvement\">Best-improvement<\/span><\/h3>\n<p>By contrast, the best-improvement strategy <strong>explores the entire neighbourhood<\/strong> before selecting the best available improvement. It generally makes it possible to:<\/p>\n<ul id=\"imglist\">\n<li>Achieve higher-quality solutions;<\/li>\n<li>Explore optimisation opportunities more thoroughly.<\/li>\n<\/ul>\n<p>The trade-off, however, is a significantly higher computational cost.<\/p>\n<p>As Ammar Oulamara explains:<\/p>\n<p class=\"summary-block\">\u201cThe choice between first-improvement and best-improvement depends heavily on schedule density and the available computational budget.\u201d<\/p>\n<p>At AntsRoute, the engine dynamically alternates between these two strategies based on the quality of the solutions observed, the level of convergence reached, and the degree of schedule saturation.<\/p>\n<div id=\"attachment_128160\" style=\"width: 1610px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" aria-describedby=\"caption-attachment-128160\" class=\"wp-image-128160\" style=\"border-radius: 5px;\" src=\"https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-6.webp\" alt=\"AntsRoute interface displaying multiple routes on a map of Barcelona alongside a list of field agents and their operational metrics, used to analyse and rebalance routes.\" width=\"1600\" height=\"945\" srcset=\"https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-6.webp 1946w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-6-300x177.webp 300w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-6-1024x605.webp 1024w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-6-768x453.webp 768w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-6-1536x907.webp 1536w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-6-127x75.webp 127w, https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-6-700x413.webp 700w\" sizes=\"(max-width:767px) 700px, (max-width:1600px) 100vw, 1600px\" \/><p id=\"caption-attachment-128160\" class=\"wp-caption-text\">Overview of routes and resources in AntsRoute, enabling planners to identify workload imbalances and quickly re-optimise schedules at a global level.<\/p><\/div>\n<h2 id=\"why-exact-methods-quickly-reach-their-limits\"><span id=\"Why_exact_methods_quickly_reach_their_limits\">Why exact methods quickly reach their limits<\/span><\/h2>\n<p>Dynamic vehicle routing problems belong to a particularly complex class of combinatorial optimisation problems. As constraints multiply, routes become denser, and real-time events occur more frequently, the size of the search space grows dramatically. At that point, exact methods quickly become incompatible with operational requirements, both in terms of computation time and responsiveness.<\/p>\n<p>As Ammar Oulamara points out:<\/p>\n<p class=\"summary-block\">\u201cThe engine is not looking for the theoretically perfect solution. It is looking for the best solution that can be deployed within a computation time compatible with real-world operations.\u201d<\/p>\n<p>This is precisely why modern optimisation engines rely on a combination of heuristics, warm-start mechanisms, local search operators and adaptive exploration strategies to rapidly produce solutions that are both robust and operationally relevant.<\/p>\n<h2><span id=\"Conclusion\">Conclusion<\/span><\/h2>\n<p>In modern route optimisation systems, the challenge is not simply to build an initial schedule. The real difficulty lies in continuously adapting that schedule without compromising its robustness, stability or operational quality.<\/p>\n<p>Warm starts, local search operators and multi-neighbourhood exploration techniques are specifically designed to address this challenge. In last-mile logistics, a route is never truly fixed. It must constantly adapt to changing field conditions while maintaining a high level of operational performance.[\/vc_column_text][\/vc_column_inner][vc_column_inner el_class=&#8221;vc_hidden-xs Extra Small Screen vc_hidden-sm Small Screen&#8221; width=&#8221;2\/12&#8243;][\/vc_column_inner][\/vc_row_inner][vc_row_inner][vc_column_inner width=&#8221;2\/12&#8243;][\/vc_column_inner][vc_column_inner width=&#8221;8\/12&#8243;][vc_separator color=&#8221;custom&#8221; accent_color=&#8221;#00041f&#8221;][vc_column_text css=&#8221;&#8221;]\n<p class=\"text-head\" style=\"color: #424762;\">WRITTEN BY<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-medium wp-image-85398\" style=\"border-radius: 100%;\" src=\"https:\/\/antsroute.com\/wp-content\/uploads\/marie-henrion-antsroute-300x300.jpg\" alt=\"\" width=\"70\" height=\"70\" srcset=\"https:\/\/antsroute.com\/wp-content\/uploads\/marie-henrion-antsroute-300x300.jpg 300w, https:\/\/antsroute.com\/wp-content\/uploads\/marie-henrion-antsroute-150x150.jpg 150w, https:\/\/antsroute.com\/wp-content\/uploads\/marie-henrion-antsroute-146x146.jpg 146w, https:\/\/antsroute.com\/wp-content\/uploads\/marie-henrion-antsroute-50x50.jpg 50w, https:\/\/antsroute.com\/wp-content\/uploads\/marie-henrion-antsroute-75x75.jpg 75w, https:\/\/antsroute.com\/wp-content\/uploads\/marie-henrion-antsroute-85x85.jpg 85w, https:\/\/antsroute.com\/wp-content\/uploads\/marie-henrion-antsroute-80x80.jpg 80w, https:\/\/antsroute.com\/wp-content\/uploads\/marie-henrion-antsroute.jpg 416w\" sizes=\"(max-width:767px) 70px, 70px\" \/><\/p>\n<p class=\"text-head\"><span style=\"font-size: 25px;\"><strong><a style=\"text-decoration: none;\" href=\"https:\/\/antsroute.com\/en\/blog\/author\/marie-henrion\/\">Marie Henrion<\/a><\/strong><\/span><br \/>\nAt AntsRoute, Marie has been the marketing manager since 2018. With a focus on last-mile logistics, she produces content that simplifies complex topics such as route optimization, the ecological transition, and customer satisfaction.<\/p>\n<div id=\"cta\"><a class=\"button-3\" href=\"https:\/\/www.linkedin.com\/in\/mariehenrion54\/\" target=\"_blank\" rel=\"noopener\">in<\/a><\/div>\n[\/vc_column_text][\/vc_column_inner][vc_column_inner width=&#8221;2\/12&#8243;][\/vc_column_inner][\/vc_row_inner][\/vc_column][vc_column width=&#8221;1\/12&#8243; el_class=&#8221;vc_hidden-xs Extra Small Screen vc_hidden-sm Small Screen&#8221;][\/vc_column][\/vc_row][vc_row el_class=&#8221;padding-block&#8221; css=&#8221;.vc_custom_1705329750413{background-color: #00041f !important;}&#8221;][vc_column][vc_column_text css=&#8221;&#8221;]\n<p class=\"h2-footer\" style=\"text-align: center; color: #ffffff;\">Optimise your Routes with AntsRoute.<\/p>\n<p class=\"text-head\" style=\"text-align: center; color: #bfc0c6;\">Free 7-day trial | No credit card required<\/p>\n[\/vc_column_text][vc_row_inner][vc_column_inner][vc_column_text]\n<div id=\"cta\" style=\"text-align: center;\"><a class=\"btn-grad\" style=\"align-self: center;\" href=\"https:\/\/app.antsroute.com\/subscription\/creation\" target=\"_blank\" rel=\"noopener\"><strong>Get started<\/strong> \u2013 It&#8217;s free<\/a> <a class=\"button-2-white\" style=\"align-self: center;\" href=\"https:\/\/calendly.com\/lea-brice-antsroute\/demonstration\" target=\"_blank\" rel=\"noopener\">Book a demo<\/a><\/div>\n[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][\/vc_column][\/vc_row]\n<\/div><div id=\"toc_container\" class=\"toc_wrap_right no_bullets\"><p class=\"toc_title\">Contenu<\/p><ul class=\"toc_list\"><li><a href=\"#Why_starting_from_scratch_is_rarely_a_good_strategy\">Why starting from scratch is rarely a good strategy<\/a><\/li><li><a href=\"#Warm_Starts_building_on_an_existing_optimised_solution\">Warm Starts: building on an existing optimised solution<\/a><\/li><li><a href=\"#An_insertion_should_never_be_evaluated_in_isolation\">An insertion should never be evaluated in isolation<\/a><\/li><li><a href=\"#Local_Search_exploring_the_neighbourhood_of_a_solution\">Local Search: exploring the neighbourhood of a solution<\/a><\/li><li><a href=\"#Relocate_moving_a_job_to_a_better_position\">Relocate: moving a job to a better position<\/a><\/li><li><a href=\"#Or-opt_moving_sequences_of_jobs\">Or-opt: moving sequences of jobs<\/a><\/li><li><a href=\"#2-opt_and_3-opt_reshaping_the_geography_of_routes\">2-opt and 3-opt: reshaping the geography of routes<\/a><\/li><li><a href=\"#Cross-Exchange_rebalancing_multiple_routes_simultaneously\">Cross-Exchange: rebalancing multiple routes simultaneously<\/a><\/li><li><a href=\"#Not_all_neighbourhoods_deserve_the_same_computational_cost\">Not all neighbourhoods deserve the same computational cost<\/a><\/li><li><a href=\"#Degree_1_Neighbourhood\">Degree 1 Neighbourhood<\/a><\/li><li><a href=\"#Degree_2_Neighbourhood\">Degree 2 Neighbourhood<\/a><\/li><li><a href=\"#Degree_3_Neighbourhood\">Degree 3 Neighbourhood<\/a><\/li><li><a href=\"#First-improvement_vs_Best-improvement\">First-improvement vs Best-improvement<\/a><\/li><li><a href=\"#First-improvement\">First-improvement<\/a><\/li><li><a href=\"#Best-improvement\">Best-improvement<\/a><\/li><li><a href=\"#Why_exact_methods_quickly_reach_their_limits\">Why exact methods quickly reach their limits<\/a><\/li><li><a href=\"#Conclusion\">Conclusion<\/a><\/li><\/ul><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Discover how warm-start algorithms, local search and neighbourhood structures enable routes to be re-optimised in real time without starting from scratch.<\/p>\n","protected":false},"author":9,"featured_media":128130,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[22963,22934,6282],"tags":[],"class_list":["post-128113","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-route-optimisation","category-solutions"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Warm Starts and Local Search: How to re-optimise routes<\/title>\n<meta name=\"description\" content=\"Discover how warm-start algorithms, local search and neighbourhood structures enable routes to be re-optimised in real time without starting from scratch.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/antsroute.com\/en\/solutions\/warm-start-local-search-routes\/\" \/>\n<meta name=\"twitter:card\" content=\"summary\" \/>\n<meta name=\"twitter:title\" content=\"Warm Starts and Local Search: How to re-optimise routes\" \/>\n<meta name=\"twitter:description\" content=\"Discover how warm-start algorithms, local search and neighbourhood structures enable routes to be re-optimised in real time without starting from scratch.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-2.webp\" \/>\n<meta name=\"twitter:creator\" content=\"@AntswayCom\" \/>\n<meta name=\"twitter:site\" content=\"@AntswayCom\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Marie Henrion\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Warm Starts and Local Search: How to re-optimise routes","description":"Discover how warm-start algorithms, local search and neighbourhood structures enable routes to be re-optimised in real time without starting from scratch.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/antsroute.com\/en\/solutions\/warm-start-local-search-routes\/","twitter_card":"summary","twitter_title":"Warm Starts and Local Search: How to re-optimise routes","twitter_description":"Discover how warm-start algorithms, local search and neighbourhood structures enable routes to be re-optimised in real time without starting from scratch.","twitter_image":"https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-2.webp","twitter_creator":"@AntswayCom","twitter_site":"@AntswayCom","twitter_misc":{"Written by":"Marie Henrion","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"https:\/\/antsroute.com\/en\/#website","url":"https:\/\/antsroute.com\/en\/","name":"AntsRoute","description":"ANTSROUTE - Logiciel d&#039;optimisation de tourn\u00e9es | Planifier &amp; Suivre | Route Optimization Software | Plan &amp; Track","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/antsroute.com\/en\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/antsroute.com\/en\/solutions\/warm-start-local-search-routes\/#primaryimage","url":"https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-2.webp","contentUrl":"https:\/\/antsroute.com\/wp-content\/uploads\/warm-start-local-search-routes-2.webp","width":850,"height":535},{"@type":"WebPage","@id":"https:\/\/antsroute.com\/en\/solutions\/warm-start-local-search-routes\/#webpage","url":"https:\/\/antsroute.com\/en\/solutions\/warm-start-local-search-routes\/","name":"Warm Starts and Local Search: How to re-optimise routes","isPartOf":{"@id":"https:\/\/antsroute.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/antsroute.com\/en\/solutions\/warm-start-local-search-routes\/#primaryimage"},"datePublished":"2026-06-01T12:07:22+00:00","dateModified":"2026-06-01T12:30:09+00:00","author":{"@id":"https:\/\/antsroute.com\/en\/#\/schema\/person\/38db92fb0f886fb05dd3dd4453c4d202"},"description":"Discover how warm-start algorithms, local search and neighbourhood structures enable routes to be re-optimised in real time without starting from scratch.","breadcrumb":{"@id":"https:\/\/antsroute.com\/en\/solutions\/warm-start-local-search-routes\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/antsroute.com\/en\/solutions\/warm-start-local-search-routes\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/antsroute.com\/en\/solutions\/warm-start-local-search-routes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"AntsRoute","item":"https:\/\/antsroute.com\/en\/"},{"@type":"ListItem","position":2,"name":"Warm Start, Local Search and Neighbourhoods: how our engine continuously re-optimises routes"}]},{"@type":"Person","@id":"https:\/\/antsroute.com\/en\/#\/schema\/person\/38db92fb0f886fb05dd3dd4453c4d202","name":"Marie Henrion","description":"Chez AntsRoute, Marie est responsable marketing depuis 2018. Sp\u00e9cialis\u00e9e dans la logistique du dernier kilom\u00e8tre, elle con\u00e7oit des contenus qui rendent accessibles les enjeux complexes de l\u2019optimisation de tourn\u00e9es, de la transition \u00e9cologique et de la satisfaction client.","sameAs":["https:\/\/www.linkedin.com\/in\/mariehenrion54\/"],"url":"https:\/\/antsroute.com\/en\/author\/marie\/"}]}},"_links":{"self":[{"href":"https:\/\/antsroute.com\/en\/wp-json\/wp\/v2\/posts\/128113","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/antsroute.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/antsroute.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/antsroute.com\/en\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/antsroute.com\/en\/wp-json\/wp\/v2\/comments?post=128113"}],"version-history":[{"count":0,"href":"https:\/\/antsroute.com\/en\/wp-json\/wp\/v2\/posts\/128113\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/antsroute.com\/en\/wp-json\/wp\/v2\/media\/128130"}],"wp:attachment":[{"href":"https:\/\/antsroute.com\/en\/wp-json\/wp\/v2\/media?parent=128113"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/antsroute.com\/en\/wp-json\/wp\/v2\/categories?post=128113"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/antsroute.com\/en\/wp-json\/wp\/v2\/tags?post=128113"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}