Trait sparse_linear_assignment::solver::AuctionSolver [−][src]
pub trait AuctionSolver<I: UnsignedInt, T: AuctionSolver<I, T>> {}Show methods
fn new(
row_capacity: usize,
column_capacity: usize,
arcs_capacity: usize
) -> (T, AuctionSolution<I>); fn solve(
&mut self,
solution: &mut AuctionSolution<I>,
maximize: bool,
eps: Option<f64>
) -> Result<(), Error>; fn num_rows(&self) -> I; fn num_cols(&self) -> I; fn num_rows_mut(&mut self) -> &mut I; fn num_cols_mut(&mut self) -> &mut I; fn prices(&self) -> &Vec<f64>; fn i_starts_stops(&self) -> &Vec<I>; fn j_counts(&self) -> &Vec<I>; fn column_indices(&self) -> &Vec<I>; fn values(&self) -> &Vec<f64>; fn prices_mut(&mut self) -> &mut Vec<f64>; fn i_starts_stops_mut(&mut self) -> &mut Vec<I>; fn j_counts_mut(&mut self) -> &mut Vec<I>; fn column_indices_mut(&mut self) -> &mut Vec<I>; fn values_mut(&mut self) -> &mut Vec<f64>; fn add_value(&mut self, row: I, column: I, value: f64) -> Result<(), Error> { ... } fn extend_from_values(
&mut self,
row: I,
columns: &[I],
values: &[f64]
) -> Result<(), Error> { ... } fn num_of_arcs(&self) -> usize { ... } fn get_objective(&self, solution: &AuctionSolution<I>) -> f64 { ... } fn get_toleration(&self, max_abs_cost: f64) -> f64 { ... } fn ecs_satisfied(
&self,
person_to_object: &[I],
eps: f64,
toleration: f64
) -> bool { ... } fn init(&mut self, num_rows: I, num_cols: I) -> Result<(), Error> { ... } fn init_solve(&mut self, solution: &mut AuctionSolution<I>, maximize: bool) { ... } fn validate_input(&self) -> Result<(), Error> { ... }
Required methods
fn new(
row_capacity: usize,
column_capacity: usize,
arcs_capacity: usize
) -> (T, AuctionSolution<I>)
[src]
fn new(
row_capacity: usize,
column_capacity: usize,
arcs_capacity: usize
) -> (T, AuctionSolution<I>)
[src]fn solve(
&mut self,
solution: &mut AuctionSolution<I>,
maximize: bool,
eps: Option<f64>
) -> Result<(), Error>
[src]
fn solve(
&mut self,
solution: &mut AuctionSolution<I>,
maximize: bool,
eps: Option<f64>
) -> Result<(), Error>
[src]fn num_rows(&self) -> I
[src]
fn num_rows(&self) -> I
[src]fn num_cols(&self) -> I
[src]
fn num_cols(&self) -> I
[src]fn num_rows_mut(&mut self) -> &mut I
[src]
fn num_rows_mut(&mut self) -> &mut I
[src]fn num_cols_mut(&mut self) -> &mut I
[src]
fn num_cols_mut(&mut self) -> &mut I
[src]fn prices(&self) -> &Vec<f64>
[src]
fn prices(&self) -> &Vec<f64>
[src]fn i_starts_stops(&self) -> &Vec<I>
[src]
fn i_starts_stops(&self) -> &Vec<I>
[src]fn j_counts(&self) -> &Vec<I>
[src]
fn j_counts(&self) -> &Vec<I>
[src]fn column_indices(&self) -> &Vec<I>
[src]
fn column_indices(&self) -> &Vec<I>
[src]fn values(&self) -> &Vec<f64>
[src]
fn values(&self) -> &Vec<f64>
[src]fn prices_mut(&mut self) -> &mut Vec<f64>
[src]
fn prices_mut(&mut self) -> &mut Vec<f64>
[src]fn i_starts_stops_mut(&mut self) -> &mut Vec<I>
[src]
fn i_starts_stops_mut(&mut self) -> &mut Vec<I>
[src]fn j_counts_mut(&mut self) -> &mut Vec<I>
[src]
fn j_counts_mut(&mut self) -> &mut Vec<I>
[src]fn column_indices_mut(&mut self) -> &mut Vec<I>
[src]
fn column_indices_mut(&mut self) -> &mut Vec<I>
[src]fn values_mut(&mut self) -> &mut Vec<f64>
[src]
fn values_mut(&mut self) -> &mut Vec<f64>
[src]Provided methods
fn add_value(&mut self, row: I, column: I, value: f64) -> Result<(), Error>
[src]
fn add_value(&mut self, row: I, column: I, value: f64) -> Result<(), Error>
[src]fn extend_from_values(
&mut self,
row: I,
columns: &[I],
values: &[f64]
) -> Result<(), Error>
[src]
fn extend_from_values(
&mut self,
row: I,
columns: &[I],
values: &[f64]
) -> Result<(), Error>
[src]fn num_of_arcs(&self) -> usize
[src]
fn num_of_arcs(&self) -> usize
[src]fn get_objective(&self, solution: &AuctionSolution<I>) -> f64
[src]
fn get_objective(&self, solution: &AuctionSolution<I>) -> f64
[src]Returns current objective value of assignments. Checks for the sign of the first element to return positive objective.
fn get_toleration(&self, max_abs_cost: f64) -> f64
[src]
fn get_toleration(&self, max_abs_cost: f64) -> f64
[src]fn ecs_satisfied(
&self,
person_to_object: &[I],
eps: f64,
toleration: f64
) -> bool
[src]
fn ecs_satisfied(
&self,
person_to_object: &[I],
eps: f64,
toleration: f64
) -> bool
[src]Checks if current solution is a complete solution that satisfies eps-complementary slackness.
As eps-complementary slackness is preserved through each iteration, and we start with an empty set, it is true that any solution satisfies eps-complementary slackness. Will add a check to be sure Returns True if eps-complementary slackness condition is satisfied e-CS: for k (all valid j for a given i), max (a_ik - p_k) - eps <= a_ij - p_j
fn init(&mut self, num_rows: I, num_cols: I) -> Result<(), Error>
[src]
fn init(&mut self, num_rows: I, num_cols: I) -> Result<(), Error>
[src]fn init_solve(&mut self, solution: &mut AuctionSolution<I>, maximize: bool)
[src]
fn init_solve(&mut self, solution: &mut AuctionSolution<I>, maximize: bool)
[src]fn validate_input(&self) -> Result<(), Error>
[src]
fn validate_input(&self) -> Result<(), Error>
[src]Implementors
impl<I: UnsignedInt + Integer> AuctionSolver<I, KhoslaSolver<I>> for KhoslaSolver<I>
[src]
impl<I: UnsignedInt + Integer> AuctionSolver<I, KhoslaSolver<I>> for KhoslaSolver<I>
[src]fn new(
row_capacity: usize,
column_capacity: usize,
arcs_capacity: usize
) -> (Self, AuctionSolution<I>)
[src]
row_capacity: usize,
column_capacity: usize,
arcs_capacity: usize
) -> (Self, AuctionSolution<I>)
fn num_rows(&self) -> I
[src]
fn num_cols(&self) -> I
[src]
fn num_rows_mut(&mut self) -> &mut I
[src]
fn num_cols_mut(&mut self) -> &mut I
[src]
fn prices(&self) -> &Vec<f64>
[src]
fn i_starts_stops(&self) -> &Vec<I>
[src]
fn j_counts(&self) -> &Vec<I>
[src]
fn column_indices(&self) -> &Vec<I>
[src]
fn values(&self) -> &Vec<f64>
[src]
fn prices_mut(&mut self) -> &mut Vec<f64>
[src]
fn i_starts_stops_mut(&mut self) -> &mut Vec<I>
[src]
fn j_counts_mut(&mut self) -> &mut Vec<I>
[src]
fn column_indices_mut(&mut self) -> &mut Vec<I>
[src]
fn values_mut(&mut self) -> &mut Vec<f64>
[src]
fn solve(
&mut self,
solution: &mut AuctionSolution<I>,
maximize: bool,
eps: Option<f64>
) -> Result<(), Error>
[src]
&mut self,
solution: &mut AuctionSolution<I>,
maximize: bool,
eps: Option<f64>
) -> Result<(), Error>
impl<I: UnsignedInt> AuctionSolver<I, ForwardAuctionSolver<I>> for ForwardAuctionSolver<I>
[src]
impl<I: UnsignedInt> AuctionSolver<I, ForwardAuctionSolver<I>> for ForwardAuctionSolver<I>
[src]fn new(
row_capacity: usize,
column_capacity: usize,
arcs_capacity: usize
) -> (Self, AuctionSolution<I>)
[src]
row_capacity: usize,
column_capacity: usize,
arcs_capacity: usize
) -> (Self, AuctionSolution<I>)
fn num_rows(&self) -> I
[src]
fn num_cols(&self) -> I
[src]
fn num_rows_mut(&mut self) -> &mut I
[src]
fn num_cols_mut(&mut self) -> &mut I
[src]
fn prices(&self) -> &Vec<f64>
[src]
fn i_starts_stops(&self) -> &Vec<I>
[src]
fn j_counts(&self) -> &Vec<I>
[src]
fn column_indices(&self) -> &Vec<I>
[src]
fn values(&self) -> &Vec<f64>
[src]
fn prices_mut(&mut self) -> &mut Vec<f64>
[src]
fn i_starts_stops_mut(&mut self) -> &mut Vec<I>
[src]
fn j_counts_mut(&mut self) -> &mut Vec<I>
[src]
fn column_indices_mut(&mut self) -> &mut Vec<I>
[src]
fn values_mut(&mut self) -> &mut Vec<f64>
[src]
fn solve(
&mut self,
solution: &mut AuctionSolution<I>,
maximize: bool,
eps: Option<f64>
) -> Result<(), Error>
[src]
&mut self,
solution: &mut AuctionSolution<I>,
maximize: bool,
eps: Option<f64>
) -> Result<(), Error>