OneCycleAgeReplacementPolicy#

class relife.policy.OneCycleAgeReplacementPolicy(lifetime_model, cf, cp, discounting_rate=0.0, period_before_discounting=1.0, a0=None, ar=None)[source]#

One-cyle age replacement policy.

The asset is disposed at a fixed age \(a_r\) with costs \(c_p\) or upon failure with costs \(c_f\) if earlier.

Parameters:
lifetime_modelany lifetime distribution or frozen lifetime model

A lifetime model representing the durations between events.

cffloat or 1darray

Costs of failures

cpfloat or 1darray

Costs of preventive replacements

discounting_ratefloat, default is 0.

The discounting rate value used in the exponential discounting function

a0float or 1darray, optional

Current ages of the assets. If it is given, left truncations of a0 will be take into account for the first cycle.

arfloat or 1darray, optional

Ages of preventive replacements, by default None. If not given, one must call optimize to set ar values and access to the rest of the object interface.

Attributes:
a0float or 1darray, optional

Current ages of the assets. If it is given, left truncations of a0 will be take into account for the first cycle.

ar

Ages of the preventive replacements

cf

Cost of failures

cp

Cost of preventive replacements

tr

Time before the replacement

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

Calculate the asymptotic expected equivalent annual cost.

asymptotic_expected_total_cost

Calculate the asymptotic expected total cost.

expected_equivalent_annual_cost

Calculate the expected equivalent annual cost over a given timeline.

expected_total_cost

Calculate the expected total cost over a given timeline.

optimize

Computes the optimal age(s) of replacement and updates the internal ar value(s) and, optionally ar1.

property ar#

Ages of the preventive replacements

Returns:
ndarray
asymptotic_expected_equivalent_annual_cost()[source]#

Calculate the asymptotic expected equivalent annual cost.

It takes into account discounting_rate attribute value.

The asymptotic expected total cost is:

\[\lim_{t\to\infty} \text{EEAC}(t)\]

where \(\text{EEAC}(t)\) is the expected equivalent annual cost at \(t\). See expected_equivalent_annual_cost() for more details.

Returns:
np.ndarray

The asymptotic expected equivalent annual cost.

Warning

This method requires the ar attribute to be set either at initialization or with the optimize method.

asymptotic_expected_total_cost()[source]#

Calculate the asymptotic expected total cost.

It takes into account discounting_rate attribute value.

The asymptotic expected total cost is:

\[\lim_{t\to\infty} z(t)\]

where \(z(t)\) is the expected total cost at \(t\). See expected_total_cost() for more details.

Returns:
np.ndarray

The asymptotic expected total cost.

Warning

This method requires the ar attribute to be set either at initialization or with the optimize method.

property cf#

Cost of failures

Returns:
ndarray
property cp#

Cost of preventive replacements

Returns:
ndarray
expected_equivalent_annual_cost(tf, nb_steps)[source]#

Calculate the expected equivalent annual cost over a given timeline.

It takes into account discounting_rate attribute value.

The expected equivalent annual cost \(\text{EEAC}(t)\) is given by:

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

where :

  • \(t\) is the time

  • \(z(t)\) is the expected_total_cost at \(t\). See expected_total_cost() for more details.`.

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

Parameters:
timeline: np.ndarray

Values of the timeline over which the expected equivalent annual cost is to be calculated.

Returns:
np.ndarray

The expected equivalent annual cost.

Warning

This method requires the ar attribute to be set either at initialization or with the optimize method.

expected_total_cost(tf, nb_steps)[source]#

Calculate the expected total cost over a given timeline.

It takes into account discounting_rate attribute value.

The expected total cost \(z(t)\) is computed by solving the renewal equation and is given by:

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

where :

  • \(t\) is the time

  • \(X_i \sim F\) are \(n\) random variable lifetimes, i.i.d., of cumulative distribution \(F\).

  • \(Z_t\) is the random variable reward at each time \(t\).

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

Parameters:
timeline: np.ndarray

Values of the timeline over which the expected total cost is to be calculated.

Returns:
np.ndarray

The expected total cost.

Warning

This method requires the ar attribute to be set either at initialization or with the optimize method.

optimize()[source]#

Computes the optimal age(s) of replacement and updates the internal ar value(s) and, optionally ar1.

Returns:
Self

Same instance with optimized ar (optionnaly ar1).

property tr#

Time before the replacement

Returns:
ndarray