Skip to content

Commit a04add3

Browse files
Aggregate duration statistic
1 parent d6db5d2 commit a04add3

File tree

2 files changed

+17
-25
lines changed

2 files changed

+17
-25
lines changed

experiments/heuristic-research/src/plots/mod.rs

Lines changed: 15 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -291,31 +291,21 @@ fn get_search_config(generation: usize, kind: &str) -> SearchDrawConfig {
291291
},
292292
);
293293

294-
// get average durations
295-
let durations = data
296-
.heuristic_state
297-
.states
298-
.get(kind)
299-
// get a sum of all durations
300-
.map(|best_state_idx| {
301-
get_search_statistics(
302-
&data.heuristic_state.search_states,
303-
&names_rev,
304-
generation,
305-
|SearchResult(_, _, (_, to_state_idx), _)| to_state_idx == best_state_idx,
306-
|acc: &mut Vec<(usize, usize)>, SearchResult(name_idx, _, _, duration)| {
307-
let (total, count) = (acc[*name_idx].0, acc[*name_idx].1);
308-
acc[*name_idx] = (total + *duration, count + 1);
309-
},
310-
)
311-
})
312-
// calculate average
313-
.map(|data| {
314-
data.into_iter()
315-
.map(|(name, (total, count))| (name, total.checked_div(count).unwrap_or_default()))
316-
.collect()
317-
})
318-
.unwrap_or_default();
294+
// get duration averages for all states
295+
let durations = get_search_statistics(
296+
&data.heuristic_state.search_states,
297+
&names_rev,
298+
generation,
299+
|_| true,
300+
|acc: &mut Vec<(usize, usize)>, SearchResult(name_idx, _, _, duration)| {
301+
let (total, count) = (acc[*name_idx].0, acc[*name_idx].1);
302+
acc[*name_idx] = (total + *duration, count + 1);
303+
},
304+
)
305+
// calculate average
306+
.into_iter()
307+
.map(|(name, (total, count))| (name, total.checked_div(count).unwrap_or_default()))
308+
.collect();
319309

320310
SearchDrawConfig { estimations, best, overall, durations }
321311
})

experiments/heuristic-research/www/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ const solutionCanvas = document.getElementById("solutionCanvas");
44
const searchCanvas = document.getElementById("searchCanvas");
55
const overallCanvas = document.getElementById("overallCanvas");
66
const bestCanvas = document.getElementById("bestCanvas");
7+
const durationCanvas = document.getElementById("durationCanvas");
78
const fitnessCanvas = document.getElementById("fitnessCanvas");
89

910
const coordLabel = document.getElementById("coordLabel");
@@ -24,6 +25,7 @@ export function main() {
2425
setupCanvas(searchCanvas, 800);
2526
setupCanvas(overallCanvas, 800);
2627
setupCanvas(bestCanvas, 800);
28+
setupCanvas(durationCanvas, 800);
2729
setupCanvas(fitnessCanvas, 800);
2830

2931
updateDynamicPlots();

0 commit comments

Comments
 (0)