OneCycleAgeReplacementPolicy#

class relife.policies.OneCycleAgeReplacementPolicy(lifetime_model, period_before_discounting=1.0)[source]#

One-cycle age replacement policy.

Asset is replaced at age \(a_r\) with cost \(c_p\), or upon failure with cost \(c_f\). Only one replacement cycle is considered.

Parameters:
lifetime_modelParametricLifetimeModel

Lifetime model representing durations between events.

References

[1]

Coolen-Schrijner, P., & Coolen, F. P. A. (2006). On optimality criteria for age replacement. Proceedings of the Institution of Mechanical Engineers, Part O: Journal of Risk and Reliability, 220(1), 21-29

Methods

asymptotic_expected_equivalent_annual_cost

The asymptotic expected equivalent annual cost.

asymptotic_expected_net_present_value

The asymptotic expected net present value.

compute_optimal_ar

Compute the optimal ages of replacement.

expected_equivalent_annual_cost

The expected equivalent annual cost.

expected_net_present_value

The expected net present value.

asymptotic_expected_equivalent_annual_cost(*, ar, a0=None, discounting_rate=0.0, **costs)[source]#

The asymptotic expected equivalent annual cost.

\[\lim_{t\to\infty} q(t)\]
Parameters:
arfloat or 1d array

Preventive ages of replacement.

a0float or 1d array, optional

Initial ages of the assets.

discounting_ratefloat, default is 0.

The discounting rate used for cost computations.

**costsfloats or 1d arrays

Required costs, such as cp, cf and/or cr.

Returns:
ndarray

The asymptotic expected values.

asymptotic_expected_net_present_value(*, ar, a0=None, discounting_rate=0.0, **costs)[source]#

The asymptotic expected net present value.

\[\lim_{t\to\infty} z(t)\]
Parameters:
arfloat or 1d array

Preventive ages of replacement.

a0float or 1d array, optional

Initial ages of the assets.

discounting_ratefloat, default is 0.

The discounting rate used for cost computations.

**costsfloats or 1d arrays

Required costs, such as cp, cf and/or cr.

Returns:
ndarray

The asymptotic expected values.

compute_optimal_ar(discounting_rate=0.0, **costs)[source]#

Compute the optimal ages of replacement.

Parameters:
discounting_ratefloat, default is 0.

The discounting rate used for cost computations.

**costsfloats or 1d arrays

Required costs, such as cp, cf and/or cr.

Returns:
outfloat or 1d array

Optimal ages of replacement.

expected_equivalent_annual_cost(tf, nb_steps, *, ar, a0=None, discounting_rate=0.0, **costs)[source]#

The expected equivalent annual cost.

\[q(t) = \dfrac{\delta z(t)}{1 - e^{-\delta t}}\]

where :

  • \(t\) is the time.

  • \(z(t)\) is the expected net present value at time \(t\).

  • \(\delta\) is the discounting rate.

Parameters:
tffloat

The final time.

nb_stepsint

The number of steps used to discretize the time.

arfloat or 1d array

Preventive ages of replacement.

a0float or 1d array, optional

Initial ages of the assets.

discounting_ratefloat, default is 0.

The discounting rate used for cost computations.

**costsfloats or 1d arrays

Required costs, such as cp, cf and/or cr.

Returns:
outtuple of np.ndarray

Timeline and corresponding values.

expected_net_present_value(tf, nb_steps, *, ar, a0=None, discounting_rate=0.0, **costs)[source]#

The expected net present value.

\[z(t) = \mathbb{E}(Z_t) = \int_{0}^{\infty}\mathbb{E}(Z_t~|~X_1 = x)dF(x)\]

where :

  • \(t\) is the time

  • \(X_1 \sim F\) is the random lifetime of the first asset

  • \(Z_t\) are the random costs at each time \(t\)

  • \(\delta\) is the discounting rate

It is computed by solving the renewal equation.

Parameters:
tffloat

The final time.

nb_stepsint

The number of steps used to discretize the time.

arfloat or 1d array

Preventive ages of replacement.

a0float or 1d array, optional

Initial ages of the assets.

discounting_ratefloat, default is 0.

The discounting rate used for cost computations.

**costsfloats or 1d arrays

Required costs, such as cp, cf and/or cr.

Returns:
outtuple of np.ndarray

Timeline and corresponding values.