pystra.systems.ditlevsen_bounds#

ditlevsen_bounds(probabilities, intersections, ordering=None, optimize_order=False)[source]#

Return Ditlevsen bounds for the probability of a union of events.

Parameters:
  • probabilities (ArrayLike) – Event probabilities \(P(E_i)\).

  • intersections (ArrayLike | dict[tuple[int, int], float]) – Pairwise intersection probabilities \(P(E_i \cap E_j)\). This may be an n x n array, or a mapping keyed by (i, j) pairs.

  • ordering (Sequence[int] | ndarray | None) – Event ordering used by Ditlevsen’s sequential bounds.

  • optimize_order (bool) – If True, all event orderings are checked and the tightest lower and upper bounds are returned. This is factorial in the number of events and is limited to eight events.

Returns:

Lower and upper bounds for \(P(\cup_i E_i)\).

Return type:

tuple[float, float]