truncated_normal#

eclypse.policies.distribution.truncated_normal(*, node_assets=None, edge_assets=None, node_distribution=(1.0, 0.05), edge_distribution=None, node_asset_distributions=None, edge_asset_distributions=None, lower=0.0, upper=None, max_attempts=100, minimum=0.0, node_ids=None, node_filter=None, edge_ids=None, edge_filter=None)[source]#

Apply multiplicative truncated-normal noise to selected assets.

Parameters:
  • node_assets (str | list[str] | None) – Node assets to perturb.

  • edge_assets (str | list[str] | None) – Edge assets to perturb.

  • node_distribution (tuple[float, float]) – Default (mean, std) pair used for node multipliers.

  • edge_distribution (tuple[float, float] | None) – Default (mean, std) pair used for edge multipliers. Defaults to node_distribution.

  • node_asset_distributions (dict[str, tuple[float, float]] | None) – Optional per-node-asset overrides for node_distribution.

  • edge_asset_distributions (dict[str, tuple[float, float]] | None) – Optional per-edge-asset overrides for edge_distribution.

  • lower (float) – Lower bound for sampled multipliers.

  • upper (float | None) – Optional upper bound for sampled multipliers.

  • max_attempts (int) – Maximum rejection-sampling attempts before clamping.

  • minimum (float) – Lower clamp applied after perturbation.

  • node_ids (list[str] | None) – Optional explicit list of node ids to target.

  • node_filter (NodeFilter | None) – Optional predicate to filter target nodes.

  • edge_ids (list[tuple[str, str]] | None) – Optional explicit list of target edges.

  • edge_filter (EdgeFilter | None) – Optional predicate to filter target edges.

Returns:

A graph update policy applying truncated-normal

multiplicative noise.

Return type:

UpdatePolicy