ProportionalSplitFactors

Convert a vector of weights to a vector of fractions adding to one

Information

This information is part of the Business Simulation Library (BSL). Please support this work and ► donate.

Given a vector u of weights, the converter will give an output vector y of fractions so that:

y_i = u_i/sum(u_i)

If the weights do add up to zero equal proportions are assumed:

y_i = 1/nin

Notes

  • The weights are shifted (shiftInputs = true) or clipped (shiftInputs = false), so that no weight will be less than zero.

  • The sum of the output vector components will always add up to one, i.e., the L1 Norm of y is one.

  • A typical usecase is the allocation of some resource to a demand where we have to guarantee, that no more than is available will be allocated.

Parameters (2)

nin

Value: 2

Type: Integer

Description: Number of input and output signals

shiftInputs

Value: true

Type: Boolean

Description: = true, if all values are to be shifted to prevent negative inputs, otherwise negative inputs are simply set to zero

Connectors (2)

u

Type: RealMultiInput[nin]

Description: Input

y

Type: RealMultiOutput[nin]

Description: Output signal

Used in Components (2)

SplitProportionally

BusinessSimulation.MoleculesOfStructure.Policy

Allocate an available amount according to priorities

SplitFlow

BusinessSimulation.MoleculesOfStructure.Transceivers

Splitting an arbitrary flow into n subflows