pub trait Problem<T, C, D>: BaseProblem + Sync where
C: ModelOutputSuccess,
D: ModelOutputFailure, {
fn hit_cost(&self, t: i32, x: Config<T>) -> Cost<C, D>;
fn movement(&self, prev_x: Config<T>, x: Config<T>, inverted: bool) -> N64;
fn objective_function<'a>(&self, xs: &Schedule<T>) -> Result<Cost<C, D>>
where
T: Value<'a>,
{ ... }
fn inverted_objective_function<'a>(
&self,
xs: &Schedule<T>
) -> Result<Cost<C, D>>
where
T: Value<'a>,
{ ... }
fn alpha_unfair_objective_function<'a>(
&self,
xs: &Schedule<T>,
alpha: f64
) -> Result<Cost<C, D>>
where
T: Value<'a>,
{ ... }
fn objective_function_with_default<'a>(
&self,
xs: &Schedule<T>,
default: &Config<T>
) -> Result<Cost<C, D>>
where
T: Value<'a>,
{ ... }
fn _objective_function_with_default<'a>(
&self,
xs: &Schedule<T>,
default: &Config<T>,
alpha: f64,
inverted: bool,
t_end: i32
) -> Result<Cost<C, D>>
where
T: Value<'a>,
{ ... }
fn total_movement<'a>(
&self,
xs: &Schedule<T>,
inverted: bool
) -> Result<N64>
where
T: Value<'a>,
{ ... }
fn _default_config<'a>(&self) -> Config<T>
where
T: Value<'a>,
{ ... }
}
Expand description
Trait providing objective function, hitting cost, and movement cost.
Required methods
Provided methods
fn objective_function<'a>(&self, xs: &Schedule<T>) -> Result<Cost<C, D>> where
T: Value<'a>,
fn objective_function<'a>(&self, xs: &Schedule<T>) -> Result<Cost<C, D>> where
T: Value<'a>,
Objective function. Calculates the cost of a schedule.
fn inverted_objective_function<'a>(
&self,
xs: &Schedule<T>
) -> Result<Cost<C, D>> where
T: Value<'a>,
fn inverted_objective_function<'a>(
&self,
xs: &Schedule<T>
) -> Result<Cost<C, D>> where
T: Value<'a>,
Inverted Objective function. Calculates the cost of a schedule. Pays the switching cost for powering down rather than powering up.
$\alpha$-unfair Objective function. Calculates the cost of a schedule.
Objective function starting from an initial configuration other than $\mathbf{0}$.
fn _objective_function_with_default<'a>(
&self,
xs: &Schedule<T>,
default: &Config<T>,
alpha: f64,
inverted: bool,
t_end: i32
) -> Result<Cost<C, D>> where
T: Value<'a>,
Movement in the decision space.