NonHomogeneousPoissonAgeReplacementPolicy#

class relife.policy.NonHomogeneousPoissonAgeReplacementPolicy(nhpp, cr, cp, discounting_rate=0.0, ar=None)[source]#

Age replacement policy for non-Homogeneous Poisson process.

Parameters:
nhppnon-homogeneous Poisson process

The underlying non homogeneous poisson process. If the process expects covars, it must be frozen before.

crfloat or 1darray

The cost of repair.

cpfloat or 1darray

The cost of failure.

discounting_ratefloat, default is 0.

The discounting rate value used in the exponential discounting function

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:
cp

Costs of preventive replacement.

cr

Cost of minimal repair.

ar

Preventive ages of replacement.

Methods

asymptotic_expected_equivalent_annual_cost

The asymtotic expected equivalent annual cost.

asymptotic_expected_net_present_value

The asymtotic expected net present value.

expected_equivalent_annual_cost

The expected equivalent annual cost.

expected_net_present_value

The expected net present value.

optimize

Optimize the policy according the costs, the discounting rate and the underlying non-homogeneous Poisson process.

property ar#

Preventive ages of replacement.

Returns:
np.ndarray
asymptotic_expected_equivalent_annual_cost()[source]#

The asymtotic expected equivalent annual cost.

\[\lim_{t\to\infty} q(t)\]
Parameters:
total_sumbool, default False

If True, returns the total sum over the first axis of the result. If the policy data encodes several assets, this option allows to return the sum result on the flit rather than calling np.sum afterwards.

Returns:
ndarray

The asymptotic expected values.

asymptotic_expected_net_present_value(total_sum=False)[source]#

The asymtotic expected net present value.

\[\lim_{t\to\infty} z(t)\]
Parameters:
total_sumbool, default False

If True, returns the total sum over the first axis of the result. If the policy data encodes several assets, this option allows to return the sum result on the flit rather than calling np.sum afterwards.

Returns:
ndarray

The asymptotic expected values.

property cp#

Costs of preventive replacement.

Returns:
np.ndarray
property cr#

Cost of minimal repair.

Returns:
np.ndarray
expected_equivalent_annual_cost(tf, nb_steps, total_sum=False)[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 discretized the time.

total_sumbool, default False

If True, returns the total sum over the first axis of the result. If the policy data encodes several assets, this option allows to return the sum result on the flit rather than calling np.sum afterwards.

Returns:
tuple of two ndarrays

A tuple containing the timeline and the computed values.

expected_net_present_value(tf, nb_steps, total_sum=False)[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 discretized the time.

total_sumbool, default False

If True, returns the total sum over the first axis of the result. If the policy data encodes several assets, this option allows to return the sum result on the flit rather than calling np.sum afterwards.

Returns:
tuple of two ndarrays

A tuple containing the timeline and the computed values.

optimize()[source]#

Optimize the policy according the costs, the discounting rate and the underlying non-homogeneous Poisson process.

Returns:
Self

Optimized policy.