blackopsrepl commited on
Commit
c4f2025
·
1 Parent(s): 610cbd2

fix(solver): show progressive sixty second routing solves

Browse files

Run the Bergamo field-service demo for the full 60 second lifecycle and replace the plateau-prone local-search setup with explicit list, swap, sublist, and reverse neighborhoods over TechnicianRoute.visits.

Use hill climbing with first-best-score-improving foraging so the solver reports real score improvements instead of equal-score churn. The verified LARGE run moves from -48hard/0soft through 0hard/696soft, 0hard/1461soft, 0hard/1723soft, and 0hard/1825soft before completing at 60000 ms.

Files changed (1) hide show
  1. solver.toml +37 -6
solver.toml CHANGED
@@ -1,17 +1,48 @@
1
  [[phases]]
2
  type = "construction_heuristic"
3
- construction_heuristic_type = "list_cheapest_insertion"
4
 
5
  [[phases]]
6
  type = "local_search"
7
 
8
  [phases.acceptor]
9
- late_acceptance_size = 400
10
- type = "late_acceptance"
11
 
12
  [phases.forager]
13
- limit = 4
14
- type = "accepted_count"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
 
16
  [termination]
17
- seconds_spent_limit = 45
 
1
  [[phases]]
2
  type = "construction_heuristic"
3
+ construction_heuristic_type = "list_round_robin"
4
 
5
  [[phases]]
6
  type = "local_search"
7
 
8
  [phases.acceptor]
9
+ type = "hill_climbing"
 
10
 
11
  [phases.forager]
12
+ type = "first_best_score_improving"
13
+
14
+ [phases.move_selector]
15
+ type = "union_move_selector"
16
+ selection_order = "round_robin"
17
+
18
+ [[phases.move_selector.selectors]]
19
+ type = "list_change_move_selector"
20
+ entity_class = "TechnicianRoute"
21
+ variable_name = "visits"
22
+
23
+ [[phases.move_selector.selectors]]
24
+ type = "list_swap_move_selector"
25
+ entity_class = "TechnicianRoute"
26
+ variable_name = "visits"
27
+
28
+ [[phases.move_selector.selectors]]
29
+ type = "sublist_change_move_selector"
30
+ min_sublist_size = 1
31
+ max_sublist_size = 3
32
+ entity_class = "TechnicianRoute"
33
+ variable_name = "visits"
34
+
35
+ [[phases.move_selector.selectors]]
36
+ type = "sublist_swap_move_selector"
37
+ min_sublist_size = 1
38
+ max_sublist_size = 3
39
+ entity_class = "TechnicianRoute"
40
+ variable_name = "visits"
41
+
42
+ [[phases.move_selector.selectors]]
43
+ type = "list_reverse_move_selector"
44
+ entity_class = "TechnicianRoute"
45
+ variable_name = "visits"
46
 
47
  [termination]
48
+ seconds_spent_limit = 60