Universal Generating Function

Introduction

An universal generating function (abbr: ugf) approach approach enables the combination of components and sources to evaluate their performance with respect to a network's users.

An universal generator function $ω_x(z)$ of a component/source $x$ combines the probabilities p and associated values v of a specific measure m in one polynomial expression:

\[ ω_{x}(z) = \sum_{o \in \mathcal{O}} p_o \cdot z^{v_o}\]

where $𝓞$ is the reduced state-space which only contains unique values for a specific measure.

MultiStateSystems.UGFType
UGF

An ugf is a struct containing: a measure msr, corresponding values val and associated probabilities prb, with default constructor:

UGF(msr::Symbol, val::Vector, prb::Vector; red::Bool=true)

A UGF constructor for a specific measure msr based on a given value vector val and associated probability vector prb.

This function automatically reduces the state-space to where only unique values and associated probabilites remain. This behavior is circumvented by passing the optional argument rdc=false.

Example

julia> ugfᵍᵉⁿ = UGF(:power, [0.0u"MW",0.0u"MW",2.0u"MW"], [0.1,0.2,0.7])
julia> isequal(ugfᵍᵉⁿ.val, [0.0u"MW",2.0u"MW"])
true
julia> ugfᵍᵉⁿ = UGF(:power, [0.0u"MW",0.0u"MW",2.0u"MW"], [0.1,0.2,0.7], rdc=false)
julia> isequal(ugfᵍᵉⁿ.val, [0.0u"MW",0.0u"MW",2.0u"MW"])
true
source

Alternatively, an ugf may be constructed based on a solved state-transition diagram:

MultiStateSystems.UGFMethod
UGF(msr::Symbol, std::MultiStateSystems.AbstractSTD)

A UGF constructor for a specific measure msr based on a given state-transition diagram std.

This function automatically reduces the state-space to where only unique values and associated probabilites remain.

Example

julia> stdᵍᵉⁿ = solvedSTD(prob  = [0.1,0.2,0.7],
                          power = [0.0u"MW",0.0u"MW",2.0u"MW"])
julia> ugfᵍᵉⁿ = UGF(:power, stdᵍᵉⁿ)
julia> isequal(ugfᵍᵉⁿ.val,[0.0u"MW",2.0u"MW"])
true
source