Metadata-Version: 2.1
Name: bayesian_safety_validation
Version: 0.0.1
Summary: Estimate failure probability for  binary-valued black-box system
Home-page: https://github.com/loriskong/BayesianSafetyValidation
Author: Loris Kong
Author-email: imloriskong@gmail.com
License: MIT License
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: matplotlib>=3.8.4
Requires-Dist: numpy>=1.26.1
Requires-Dist: pytest>=7.4.4
Requires-Dist: typing_extensions>=4.10.0
Requires-Dist: bayesian-optimization>=1.4.3
Requires-Dist: scikit-learn>=1.4.0
Requires-Dist: scipy>=1.13.0


# Bayesian Safety Validation
A Python implementation of bayesian safety validation.

## Usage
```pyhton
from bayesian_safety_validation import BayesianSafetyValidation

# Define a black box function
def black_box_func(params) -> float:
    return float(
        (
            (params["x1"] + 2 * params["x2"] - 7) ** 2
            + (2 * params["x1"] + params["x2"] - 5) ** 2
        )
        <= 200
    )

# Create BSV with a parameter space
bsv = BayesianSafetyValidation(param_space={"x1": (-10, 5), "x2": (-10, 5)})

# Run BSV loop.
for i in range(10):
    suggestions = bsv.suggest()
    evaluations = [black_box_func(suggestion) for suggestion in suggestions]
    print(f"suggestions: {suggestions}, evaluations: {evaluations}")
    bsv.refit(suggestions, evaluations)

# Display results
bsv.falsification()
```
You will get this graph after running forementioned code
![](./statics/bsv_example.png)
