BDM.PerturbationAnalysis (BDM v0.5.0)
View SourceTools for analyzing how perturbations affect BDM complexity estimates in order to identify complexity-driving elements, sensitivity, critical points and stability.
Summary
Functions
Calculates BDM for original and all perturbed versions.
Identifies positions where perturbation sensitivity exceeds threshold.
Creates a landscape showing cumulative effects of multi-bit perturbations.
Generates random perturbations with specified noise level. noise_level: fraction of bits to flip (0.0 to 1.0)
Creates a sensitivity profile showing which positions are most sensitive to perturbation.
Generates all possible single-bit flip perturbations of the data.
Calculates stability coefficient: ratio of consistent complexity estimates.
Functions
@spec calculate_perturbation_effects( BDM.t(), BDM.binary_string() | BDM.binary_matrix(), list() ) :: {float(), [map()]}
Calculates BDM for original and all perturbed versions.
Identifies positions where perturbation sensitivity exceeds threshold.
@spec perturbation_landscape( BDM.t(), BDM.binary_string() | BDM.binary_matrix(), integer() ) :: [map()]
Creates a landscape showing cumulative effects of multi-bit perturbations.
Returns max_effect, min_effect, and avg_effect for each flip count, providing more insight into the perturbation behavior.
@spec random_perturbations( BDM.t(), BDM.binary_string() | BDM.binary_matrix(), pos_integer(), number() ) :: BDM.binary_string() | BDM.binary_matrix()
Generates random perturbations with specified noise level. noise_level: fraction of bits to flip (0.0 to 1.0)
@spec sensitivity_profile(BDM.t(), BDM.binary_string() | BDM.binary_matrix()) :: [ map() ]
Creates a sensitivity profile showing which positions are most sensitive to perturbation.
@spec single_bit_perturbations(BDM.t(), BDM.binary_string() | BDM.binary_matrix()) :: BDM.binary_string() | BDM.binary_matrix()
Generates all possible single-bit flip perturbations of the data.
@spec stability_coefficient( BDM.t(), BDM.binary_string() | BDM.binary_matrix(), pos_integer(), number() ) :: map()
Calculates stability coefficient: ratio of consistent complexity estimates.