solverforge-solver 0.8.13

Solver engine for SolverForge
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use solverforge_core::domain::PlanningSolution;
use solverforge_scoring::{Director, RecordingDirector};

use crate::heuristic::r#move::Move;

pub(crate) fn evaluate_trial_move<S, D, M>(score_director: &mut D, m: &M) -> S::Score
where
    S: PlanningSolution,
    D: Director<S>,
    M: Move<S>,
{
    let mut recording = RecordingDirector::new(score_director);
    m.do_move(&mut recording);
    let score = recording.calculate_score();
    recording.undo_changes();
    score
}