Skip to main content

Crate converge_optimization

Crate converge_optimization 

Source
Expand description

§converge-optimization

Optimization algorithms for converge.zone - a Rust reimplementation of key OR-Tools algorithms optimized for the converge platform.

§Modules

  • assignment - Linear assignment problem (Hungarian, Goldberg-Kennedy)
  • graph - Graph algorithms (shortest path, max flow, min cost flow)
  • knapsack - Knapsack problems (0-1, bounded, multidimensional)
  • scheduling - Scheduling constraints and solvers
  • setcover - Set cover heuristics
  • provider - Converge platform integration

§Quick Start

use converge_optimization::assignment::{hungarian, AssignmentProblem};

// Cost matrix: agent i to task j
let costs = vec![
    vec![10, 5, 13],
    vec![3, 9, 18],
    vec![14, 8, 7],
];

let problem = AssignmentProblem::from_costs(costs);
let solution = hungarian::solve(&problem).unwrap();
println!("Total cost: {}", solution.total_cost);

§Feature Flags

  • ffi - Enable C++ OR-Tools bindings for complex algorithms
  • full - Enable all features

Modules§

assignment
Linear Assignment Problem solvers
gate
Solver Gate Architecture
graph
Graph algorithms
knapsack
Knapsack problem solvers
packs
Domain Packs for Solver Gate
prelude
Prelude for common imports
provider
Converge platform integration
scheduling
Scheduling algorithms and constraints
setcover
Set Cover problem solvers

Structs§

SolverParams
Common solver parameters
SolverStats
Statistics from a solver run

Enums§

Error
Errors that can occur during optimization
SolverStatus
Solver status after optimization

Type Aliases§

Cost
Cost type for optimization problems (signed to allow negative costs)
Index
Index type for nodes/variables
Result
Result type alias using our Error type
Value
Value type for objective functions
Weight
Weight type for capacity constraints