pqx123-lgtm/moonbit-vrp-solver/operators does not have a README file

    ImprovementReport

    pub struct ImprovementReport {
    solution :
    Solution

    rounds : Int
    moves : Int
    start_objective : Double
    final_objective : Double
    } derive(ToJson,
    Debug
    )

    ImprovementReport::final_objective

    fn ImprovementReport::final_objective(self : ImprovementReport) -> Double

    ImprovementReport::moves

    fn ImprovementReport::moves(self : ImprovementReport) -> Int

    ImprovementReport::new

    fn ImprovementReport::new(solution :
    Solution
    , rounds : Int, moves : Int, start_objective : Double, final_objective : Double) -> ImprovementReport

    ImprovementReport::rounds

    fn ImprovementReport::rounds(self : ImprovementReport) -> Int

    ImprovementReport::start_objective

    fn ImprovementReport::start_objective(self : ImprovementReport) -> Double

    NeighborhoodKind

    pub(all) enum NeighborhoodKind {
    TwoOpt
    Relocate
    Swap
    Reverse
    } derive(Eq, ToJson,
    Debug
    )

    Neighborhoods implemented by the local improvement layer.

    RelatednessWeights

    pub struct RelatednessWeights {
    distance : Double
    demand : Double
    time_window : Double
    service : Double
    } derive(ToJson,
    Debug
    )

    Weights used when ranking related customers for destroy operators.

    RelatednessWeights::default

    RelatednessWeights::demand

    fn RelatednessWeights::demand(self : RelatednessWeights) -> Double

    RelatednessWeights::distance

    fn RelatednessWeights::distance(self : RelatednessWeights) -> Double

    RelatednessWeights::service

    fn RelatednessWeights::service(self : RelatednessWeights) -> Double

    RelatednessWeights::time_window

    fn RelatednessWeights::time_window(self : RelatednessWeights) -> Double

    RelatednessWeights::tune

    fn RelatednessWeights::tune(self : RelatednessWeights, distance? : Double, demand? : Double, time_window? : Double, service? : Double) -> RelatednessWeights

    destroy_fraction

    Removes a bounded fraction of assigned stops with a selected strategy.

    operator_candidate_score

    fn operator_candidate_score(instance :
    VrpInstance
    , solution :
    Solution
    , balance_weight : Double) -> Double

    Scores a candidate with a quality/constraint trade-off for dashboards.
    fn rank_related_customers(instance :
    VrpInstance
    , seed : Int, candidates : Array[Int], weights : RelatednessWeights) -> Array[Int]

    Returns customer indices ordered from most to least related to a seed.

    relatedness_score

    fn relatedness_score(instance :
    VrpInstance
    , left : Int, right : Int, weights : RelatednessWeights) -> Double

    Scores two customers by spatial, demand, and temporal similarity.

    repair_until_stable

    Repeatedly applies greedy repair until no unassigned count changes.

    route_balance_score

    Measures how evenly a solution uses its vehicle capacities.

    select_operator

    fn select_operator(scores : Array[Double]) -> Int

    Selects a destroy operator from a score vector with deterministic tie breaks.

    variable_neighborhood_descent

    Runs a bounded variable-neighborhood descent over the core move operators.

    variable_neighborhood_report

    Same search as variable_neighborhood_descent, with useful run statistics.