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

Hitting cost.

Movement cost.

Provided methods

Objective function. Calculates the cost of a schedule.

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}$.

Movement in the decision space.

Implementors