
.. DO NOT EDIT.
.. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY.
.. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE:
.. "examples/examples_bbo/plot_notify_failures_hpo.py"
.. LINE NUMBERS ARE GIVEN BELOW.

.. only:: html

    .. note::
        :class: sphx-glr-download-link-note

        :ref:`Go to the end <sphx_glr_download_examples_examples_bbo_plot_notify_failures_hpo.py>`
        to download the full example code.

.. rst-class:: sphx-glr-example-title

.. _sphx_glr_examples_examples_bbo_plot_notify_failures_hpo.py:


Learn to Avoid Failures with Bayesian Optimization 
==================================================

**Author(s)**: Romain Egele.

In this example, you will learn how to handle failures in black-box optimization.
In many application of black-box optimization such as software auto-tuning (where we
minimize the run-time of a software application) some configurations can
create run-time errors and therefore no scalar objective is returned. A
default choice could be to return in this case the worst case objective if
known. Other possibilites are to ignore these configurations or to replace 
them with the running average or minimum objective.

.. GENERATED FROM PYTHON SOURCE LINES 17-30

.. dropdown:: Code (Import statements)

    .. code-block:: Python


        import matplotlib.pyplot as plt
        import numpy as np

        from deephyper.hpo import HpProblem
        from deephyper.hpo import CBO
        from deephyper.evaluator import Evaluator
        from deephyper.evaluator.callback import TqdmCallback

        WIDTH_PLOTS = 8
        HEIGHT_PLOTS = WIDTH_PLOTS / 1.618








.. GENERATED FROM PYTHON SOURCE LINES 31-34

To illustrate such a use-case we define a ``run``-function that will fail when its 
input parameter ``p_failure`` is greater than 0.5.
To notify deephyper about a failure, we return a "string" value with ``"F"`` as prefix such as:

.. GENERATED FROM PYTHON SOURCE LINES 34-46

.. code-block:: Python

    def run(job) -> float:
        if job.parameters["p_failure"] > 0.5:
            try:
                raise ValueError("Some example exception")
            except ValueError:
                # Notify the search about the failure
                return "F_value_error"
        else:
            # Returns a regular objective value that is maximized
            return sum(job.parameters[k] for k in job.parameters if "x" in k)









.. GENERATED FROM PYTHON SOURCE LINES 47-49

Then, we define the corresponding hyperparameter problem where ``x{i}`` are the
value to maximize and ``p_parameter`` is a value that impact the appearance of failures.

.. GENERATED FROM PYTHON SOURCE LINES 49-55

.. code-block:: Python

    problem = HpProblem()
    problem.add_hyperparameter((0.0, 1.0), "p_failure")
    for i in range(10):
        problem.add_hyperparameter((0.0, 1.0), f"x{i}")
    problem





.. rst-class:: sphx-glr-script-out

 .. code-block:: none


    Configuration space object:
      Hyperparameters:
        p_failure, Type: UniformFloat, Range: [0.0, 1.0], Default: 0.5
        x0, Type: UniformFloat, Range: [0.0, 1.0], Default: 0.5
        x1, Type: UniformFloat, Range: [0.0, 1.0], Default: 0.5
        x2, Type: UniformFloat, Range: [0.0, 1.0], Default: 0.5
        x3, Type: UniformFloat, Range: [0.0, 1.0], Default: 0.5
        x4, Type: UniformFloat, Range: [0.0, 1.0], Default: 0.5
        x5, Type: UniformFloat, Range: [0.0, 1.0], Default: 0.5
        x6, Type: UniformFloat, Range: [0.0, 1.0], Default: 0.5
        x7, Type: UniformFloat, Range: [0.0, 1.0], Default: 0.5
        x8, Type: UniformFloat, Range: [0.0, 1.0], Default: 0.5
        x9, Type: UniformFloat, Range: [0.0, 1.0], Default: 0.5




.. GENERATED FROM PYTHON SOURCE LINES 56-63

We use the centralized Bayesian optimization (CBO) for the search.
The :class:`deephyper.hpo.CBO` has a parameter ``filter_failures``.
We will compare:

- ``filter_failures="ignore"``: filters-out failed configurations.
- ``filter_failures="mean"``: replaces failures with the running average of non-failed objectives.
- ``filter_failures="min"``: replaces failures with the running minimum of non-failed objectives.

.. GENERATED FROM PYTHON SOURCE LINES 63-67

.. code-block:: Python


    results = {}
    max_evals = 100








.. GENERATED FROM PYTHON SOURCE LINES 68-90

.. code-block:: Python

    for failure_strategy in ["ignore", "mean", "min"]:

        evaluator = Evaluator.create(
            run,
            method="thread",
            method_kwargs={
                "callbacks": [TqdmCallback(f"Failure Strategy: {failure_strategy}")]}
        )

        search = CBO(
            problem,
            acq_optimizer="ga",
            acq_optimizer_kwargs=dict(
                filter_duplicated=False,
                filter_failures=failure_strategy,
            ),
            log_dir=f"search_{failure_strategy}",
            random_state=42,
        )

        results[failure_strategy] = search.search(evaluator, max_evals)





.. rst-class:: sphx-glr-script-out

 .. code-block:: none

      0%|          | 0/100 [00:00<?, ?it/s]    Failure Strategy: ignore:   0%|          | 0/100 [00:00<?, ?it/s]    Failure Strategy: ignore:   1%|          | 1/100 [00:00<00:00, 10407.70it/s, failures=0, objective=6.63]    Failure Strategy: ignore:   2%|▏         | 2/100 [00:00<00:00, 140.66it/s, failures=1, objective=6.63]      Failure Strategy: ignore:   3%|▎         | 3/100 [00:00<00:00, 127.01it/s, failures=2, objective=6.63]    Failure Strategy: ignore:   4%|▍         | 4/100 [00:00<00:00, 112.34it/s, failures=2, objective=6.63]    Failure Strategy: ignore:   5%|▌         | 5/100 [00:00<00:00, 104.20it/s, failures=2, objective=6.63]    Failure Strategy: ignore:   6%|▌         | 6/100 [00:00<00:00, 108.05it/s, failures=3, objective=6.63]    Failure Strategy: ignore:   7%|▋         | 7/100 [00:00<00:00, 98.18it/s, failures=4, objective=6.63]     Failure Strategy: ignore:   8%|▊         | 8/100 [00:00<00:01, 90.76it/s, failures=4, objective=6.63]    Failure Strategy: ignore:   9%|▉         | 9/100 [00:00<00:00, 95.81it/s, failures=5, objective=6.63]    Failure Strategy: ignore:  10%|█         | 10/100 [00:00<00:00, 100.33it/s, failures=5, objective=6.63]    Failure Strategy: ignore:  11%|█         | 11/100 [00:00<00:00, 104.57it/s, failures=5, objective=6.63]    Failure Strategy: ignore:  11%|█         | 11/100 [00:00<00:00, 104.57it/s, failures=5, objective=6.63]    Failure Strategy: ignore:  12%|█▏        | 12/100 [00:00<00:00, 104.57it/s, failures=6, objective=6.63]    Failure Strategy: ignore:  13%|█▎        | 13/100 [00:00<00:00, 104.57it/s, failures=6, objective=6.63]    Failure Strategy: ignore:  14%|█▍        | 14/100 [00:00<00:00, 104.57it/s, failures=7, objective=6.63]    Failure Strategy: ignore:  15%|█▌        | 15/100 [00:00<00:00, 104.57it/s, failures=8, objective=6.63]    Failure Strategy: ignore:  16%|█▌        | 16/100 [00:00<00:00, 104.57it/s, failures=9, objective=6.63]    Failure Strategy: ignore:  17%|█▋        | 17/100 [00:00<00:00, 104.57it/s, failures=10, objective=6.63]    Failure Strategy: ignore:  18%|█▊        | 18/100 [00:00<00:00, 104.57it/s, failures=11, objective=6.63]    Failure Strategy: ignore:  19%|█▉        | 19/100 [00:00<00:00, 104.57it/s, failures=12, objective=6.63]    Failure Strategy: ignore:  20%|██        | 20/100 [00:00<00:00, 104.57it/s, failures=13, objective=6.63]    Failure Strategy: ignore:  21%|██        | 21/100 [00:00<00:00, 104.57it/s, failures=14, objective=6.63]    Failure Strategy: ignore:  22%|██▏       | 22/100 [00:00<00:00, 104.57it/s, failures=15, objective=6.63]    Failure Strategy: ignore:  23%|██▎       | 23/100 [00:00<00:00, 104.57it/s, failures=16, objective=6.63]    Failure Strategy: ignore:  24%|██▍       | 24/100 [00:00<00:00, 104.57it/s, failures=16, objective=6.63]    Failure Strategy: ignore:  25%|██▌       | 25/100 [00:00<00:00, 104.57it/s, failures=16, objective=6.63]    Failure Strategy: ignore:  26%|██▌       | 26/100 [00:00<00:00, 104.57it/s, failures=17, objective=6.63]    Failure Strategy: ignore:  27%|██▋       | 27/100 [00:00<00:00, 104.57it/s, failures=17, objective=6.63]    Failure Strategy: ignore:  28%|██▊       | 28/100 [00:00<00:00, 104.57it/s, failures=18, objective=6.63]    Failure Strategy: ignore:  29%|██▉       | 29/100 [00:00<00:00, 104.57it/s, failures=19, objective=6.63]    Failure Strategy: ignore:  30%|███       | 30/100 [00:00<00:00, 151.89it/s, failures=19, objective=6.63]    Failure Strategy: ignore:  30%|███       | 30/100 [00:00<00:00, 151.89it/s, failures=20, objective=6.63]    Failure Strategy: ignore:  31%|███       | 31/100 [00:00<00:00, 151.89it/s, failures=20, objective=6.63]    Failure Strategy: ignore:  32%|███▏      | 32/100 [00:00<00:00, 151.89it/s, failures=21, objective=6.63]    Failure Strategy: ignore:  33%|███▎      | 33/100 [00:00<00:00, 151.89it/s, failures=21, objective=6.63]    Failure Strategy: ignore:  34%|███▍      | 34/100 [00:00<00:00, 151.89it/s, failures=21, objective=6.63]    Failure Strategy: ignore:  35%|███▌      | 35/100 [00:00<00:00, 151.89it/s, failures=21, objective=6.63]    Failure Strategy: ignore:  36%|███▌      | 36/100 [00:00<00:00, 151.89it/s, failures=21, objective=6.63]    Failure Strategy: ignore:  37%|███▋      | 37/100 [00:00<00:00, 151.89it/s, failures=22, objective=6.63]    Failure Strategy: ignore:  38%|███▊      | 38/100 [00:00<00:00, 151.89it/s, failures=22, objective=6.63]    Failure Strategy: ignore:  39%|███▉      | 39/100 [00:00<00:00, 151.89it/s, failures=22, objective=6.87]    Failure Strategy: ignore:  40%|████      | 40/100 [00:00<00:00, 151.89it/s, failures=22, objective=6.87]    Failure Strategy: ignore:  41%|████      | 41/100 [00:00<00:00, 151.89it/s, failures=22, objective=6.87]    Failure Strategy: ignore:  42%|████▏     | 42/100 [00:00<00:00, 151.89it/s, failures=22, objective=6.87]    Failure Strategy: ignore:  43%|████▎     | 43/100 [00:00<00:00, 151.89it/s, failures=23, objective=6.87]    Failure Strategy: ignore:  44%|████▍     | 44/100 [00:00<00:00, 151.89it/s, failures=23, objective=6.87]    Failure Strategy: ignore:  45%|████▌     | 45/100 [00:00<00:00, 151.89it/s, failures=24, objective=6.87]    Failure Strategy: ignore:  46%|████▌     | 46/100 [00:00<00:00, 151.89it/s, failures=24, objective=6.87]    Failure Strategy: ignore:  47%|████▋     | 47/100 [00:00<00:00, 151.89it/s, failures=25, objective=6.87]    Failure Strategy: ignore:  48%|████▊     | 48/100 [00:00<00:00, 151.89it/s, failures=25, objective=6.87]    Failure Strategy: ignore:  49%|████▉     | 49/100 [00:00<00:00, 111.98it/s, failures=25, objective=6.87]    Failure Strategy: ignore:  49%|████▉     | 49/100 [00:00<00:00, 111.98it/s, failures=26, objective=6.87]    Failure Strategy: ignore:  50%|█████     | 50/100 [00:00<00:00, 111.98it/s, failures=27, objective=6.87]    Failure Strategy: ignore:  51%|█████     | 51/100 [00:00<00:00, 111.98it/s, failures=28, objective=6.87]    Failure Strategy: ignore:  52%|█████▏    | 52/100 [00:00<00:00, 111.98it/s, failures=29, objective=6.87]    Failure Strategy: ignore:  53%|█████▎    | 53/100 [00:00<00:00, 111.98it/s, failures=30, objective=6.87]    Failure Strategy: ignore:  54%|█████▍    | 54/100 [00:00<00:00, 111.98it/s, failures=31, objective=6.87]    Failure Strategy: ignore:  55%|█████▌    | 55/100 [00:00<00:00, 111.98it/s, failures=32, objective=6.87]    Failure Strategy: ignore:  56%|█████▌    | 56/100 [00:00<00:00, 111.98it/s, failures=33, objective=6.87]    Failure Strategy: ignore:  57%|█████▋    | 57/100 [00:00<00:00, 111.98it/s, failures=34, objective=6.87]    Failure Strategy: ignore:  58%|█████▊    | 58/100 [00:00<00:00, 111.98it/s, failures=35, objective=6.87]    Failure Strategy: ignore:  59%|█████▉    | 59/100 [00:00<00:00, 111.98it/s, failures=36, objective=6.87]    Failure Strategy: ignore:  60%|██████    | 60/100 [00:00<00:00, 111.98it/s, failures=37, objective=6.87]    Failure Strategy: ignore:  61%|██████    | 61/100 [00:00<00:00, 111.98it/s, failures=38, objective=6.87]    Failure Strategy: ignore:  62%|██████▏   | 62/100 [00:00<00:00, 111.98it/s, failures=39, objective=6.87]    Failure Strategy: ignore:  63%|██████▎   | 63/100 [00:00<00:00, 111.98it/s, failures=40, objective=6.87]    Failure Strategy: ignore:  64%|██████▍   | 64/100 [00:00<00:00, 111.98it/s, failures=41, objective=6.87]    Failure Strategy: ignore:  65%|██████▌   | 65/100 [00:00<00:00, 111.98it/s, failures=42, objective=6.87]    Failure Strategy: ignore:  66%|██████▌   | 66/100 [00:00<00:00, 111.98it/s, failures=43, objective=6.87]    Failure Strategy: ignore:  67%|██████▋   | 67/100 [00:00<00:00, 111.98it/s, failures=44, objective=6.87]    Failure Strategy: ignore:  68%|██████▊   | 68/100 [00:00<00:00, 111.98it/s, failures=45, objective=6.87]    Failure Strategy: ignore:  69%|██████▉   | 69/100 [00:00<00:00, 111.98it/s, failures=46, objective=6.87]    Failure Strategy: ignore:  70%|███████   | 70/100 [00:00<00:00, 111.98it/s, failures=47, objective=6.87]    Failure Strategy: ignore:  71%|███████   | 71/100 [00:00<00:00, 111.98it/s, failures=48, objective=6.87]    Failure Strategy: ignore:  72%|███████▏  | 72/100 [00:00<00:00, 111.98it/s, failures=49, objective=6.87]    Failure Strategy: ignore:  73%|███████▎  | 73/100 [00:00<00:00, 111.98it/s, failures=50, objective=6.87]    Failure Strategy: ignore:  74%|███████▍  | 74/100 [00:00<00:00, 111.98it/s, failures=51, objective=6.87]    Failure Strategy: ignore:  75%|███████▌  | 75/100 [00:00<00:00, 111.98it/s, failures=52, objective=6.87]    Failure Strategy: ignore:  76%|███████▌  | 76/100 [00:00<00:00, 111.98it/s, failures=53, objective=6.87]    Failure Strategy: ignore:  77%|███████▋  | 77/100 [00:00<00:00, 111.98it/s, failures=54, objective=6.87]    Failure Strategy: ignore:  78%|███████▊  | 78/100 [00:00<00:00, 111.98it/s, failures=55, objective=6.87]    Failure Strategy: ignore:  79%|███████▉  | 79/100 [00:00<00:00, 111.98it/s, failures=56, objective=6.87]    Failure Strategy: ignore:  80%|████████  | 80/100 [00:00<00:00, 111.98it/s, failures=57, objective=6.87]    Failure Strategy: ignore:  81%|████████  | 81/100 [00:00<00:00, 111.98it/s, failures=58, objective=6.87]    Failure Strategy: ignore:  82%|████████▏ | 82/100 [00:00<00:00, 111.98it/s, failures=59, objective=6.87]    Failure Strategy: ignore:  83%|████████▎ | 83/100 [00:00<00:00, 111.98it/s, failures=60, objective=6.87]    Failure Strategy: ignore:  84%|████████▍ | 84/100 [00:00<00:00, 111.98it/s, failures=61, objective=6.87]    Failure Strategy: ignore:  85%|████████▌ | 85/100 [00:00<00:00, 111.98it/s, failures=62, objective=6.87]    Failure Strategy: ignore:  86%|████████▌ | 86/100 [00:00<00:00, 111.98it/s, failures=63, objective=6.87]    Failure Strategy: ignore:  87%|████████▋ | 87/100 [00:00<00:00, 111.98it/s, failures=64, objective=6.87]    Failure Strategy: ignore:  88%|████████▊ | 88/100 [00:00<00:00, 111.98it/s, failures=65, objective=6.87]    Failure Strategy: ignore:  89%|████████▉ | 89/100 [00:00<00:00, 111.98it/s, failures=66, objective=6.87]    Failure Strategy: ignore:  90%|█████████ | 90/100 [00:00<00:00, 111.98it/s, failures=67, objective=6.87]    Failure Strategy: ignore:  91%|█████████ | 91/100 [00:00<00:00, 111.98it/s, failures=68, objective=6.87]    Failure Strategy: ignore:  92%|█████████▏| 92/100 [00:00<00:00, 111.98it/s, failures=69, objective=6.87]    Failure Strategy: ignore:  93%|█████████▎| 93/100 [00:00<00:00, 111.98it/s, failures=70, objective=6.87]    Failure Strategy: ignore:  94%|█████████▍| 94/100 [00:00<00:00, 111.98it/s, failures=71, objective=6.87]    Failure Strategy: ignore:  95%|█████████▌| 95/100 [00:00<00:00, 111.98it/s, failures=72, objective=6.87]    Failure Strategy: ignore:  96%|█████████▌| 96/100 [00:00<00:00, 111.98it/s, failures=73, objective=6.87]    Failure Strategy: ignore:  97%|█████████▋| 97/100 [00:00<00:00, 111.98it/s, failures=74, objective=6.87]    Failure Strategy: ignore:  98%|█████████▊| 98/100 [00:00<00:00, 111.98it/s, failures=75, objective=6.87]    Failure Strategy: ignore:  99%|█████████▉| 99/100 [00:00<00:00, 111.98it/s, failures=76, objective=6.87]    Failure Strategy: ignore: 100%|██████████| 100/100 [00:00<00:00, 111.98it/s, failures=77, objective=6.87]    Failure Strategy: ignore: 100%|██████████| 100/100 [00:00<00:00, 227.48it/s, failures=77, objective=6.87]
      0%|          | 0/100 [00:00<?, ?it/s]    Failure Strategy: mean:   0%|          | 0/100 [00:00<?, ?it/s]    Failure Strategy: mean:   1%|          | 1/100 [00:00<00:00, 22192.08it/s, failures=0, objective=6.63]    Failure Strategy: mean:   2%|▏         | 2/100 [00:00<00:00, 369.41it/s, failures=1, objective=6.63]      Failure Strategy: mean:   3%|▎         | 3/100 [00:00<00:00, 281.27it/s, failures=2, objective=6.63]    Failure Strategy: mean:   4%|▍         | 4/100 [00:00<00:00, 252.32it/s, failures=2, objective=6.63]    Failure Strategy: mean:   5%|▌         | 5/100 [00:00<00:00, 237.63it/s, failures=2, objective=6.63]    Failure Strategy: mean:   6%|▌         | 6/100 [00:00<00:00, 228.40it/s, failures=3, objective=6.63]    Failure Strategy: mean:   7%|▋         | 7/100 [00:00<00:00, 221.31it/s, failures=4, objective=6.63]    Failure Strategy: mean:   8%|▊         | 8/100 [00:00<00:00, 216.97it/s, failures=4, objective=6.63]    Failure Strategy: mean:   9%|▉         | 9/100 [00:00<00:00, 212.93it/s, failures=5, objective=6.63]    Failure Strategy: mean:  10%|█         | 10/100 [00:00<00:00, 210.30it/s, failures=5, objective=6.63]    Failure Strategy: mean:  11%|█         | 11/100 [00:00<00:00, 208.41it/s, failures=5, objective=6.63]    Failure Strategy: mean:  12%|█▏        | 12/100 [00:00<00:00, 206.96it/s, failures=6, objective=6.63]    Failure Strategy: mean:  13%|█▎        | 13/100 [00:00<00:00, 205.85it/s, failures=6, objective=6.63]    Failure Strategy: mean:  14%|█▍        | 14/100 [00:00<00:00, 204.82it/s, failures=7, objective=6.63]    Failure Strategy: mean:  15%|█▌        | 15/100 [00:00<00:00, 203.72it/s, failures=8, objective=6.63]    Failure Strategy: mean:  16%|█▌        | 16/100 [00:00<00:00, 202.81it/s, failures=9, objective=6.63]    Failure Strategy: mean:  17%|█▋        | 17/100 [00:00<00:00, 202.14it/s, failures=10, objective=6.63]    Failure Strategy: mean:  18%|█▊        | 18/100 [00:00<00:00, 201.60it/s, failures=11, objective=6.63]    Failure Strategy: mean:  19%|█▉        | 19/100 [00:00<00:00, 200.98it/s, failures=12, objective=6.63]    Failure Strategy: mean:  20%|██        | 20/100 [00:00<00:00, 200.56it/s, failures=13, objective=6.63]    Failure Strategy: mean:  21%|██        | 21/100 [00:00<00:00, 200.15it/s, failures=13, objective=6.63]    Failure Strategy: mean:  21%|██        | 21/100 [00:00<00:00, 200.15it/s, failures=14, objective=6.63]    Failure Strategy: mean:  22%|██▏       | 22/100 [00:00<00:00, 200.15it/s, failures=15, objective=6.63]    Failure Strategy: mean:  23%|██▎       | 23/100 [00:00<00:00, 200.15it/s, failures=16, objective=6.63]    Failure Strategy: mean:  24%|██▍       | 24/100 [00:00<00:00, 200.15it/s, failures=16, objective=6.63]    Failure Strategy: mean:  25%|██▌       | 25/100 [00:00<00:00, 200.15it/s, failures=16, objective=6.63]    Failure Strategy: mean:  26%|██▌       | 26/100 [00:00<00:00, 200.15it/s, failures=17, objective=6.63]    Failure Strategy: mean:  27%|██▋       | 27/100 [00:00<00:00, 200.15it/s, failures=17, objective=6.63]    Failure Strategy: mean:  28%|██▊       | 28/100 [00:00<00:00, 200.15it/s, failures=18, objective=6.63]    Failure Strategy: mean:  29%|██▉       | 29/100 [00:00<00:00, 200.15it/s, failures=19, objective=6.63]    Failure Strategy: mean:  30%|███       | 30/100 [00:00<00:00, 200.15it/s, failures=20, objective=6.63]    Failure Strategy: mean:  31%|███       | 31/100 [00:00<00:00, 200.15it/s, failures=20, objective=6.63]    Failure Strategy: mean:  32%|███▏      | 32/100 [00:00<00:00, 200.15it/s, failures=21, objective=6.63]    Failure Strategy: mean:  33%|███▎      | 33/100 [00:00<00:00, 200.15it/s, failures=21, objective=6.63]    Failure Strategy: mean:  34%|███▍      | 34/100 [00:00<00:00, 200.15it/s, failures=21, objective=6.63]    Failure Strategy: mean:  35%|███▌      | 35/100 [00:00<00:00, 200.15it/s, failures=21, objective=6.63]    Failure Strategy: mean:  36%|███▌      | 36/100 [00:00<00:00, 200.15it/s, failures=21, objective=6.63]    Failure Strategy: mean:  37%|███▋      | 37/100 [00:00<00:00, 200.15it/s, failures=22, objective=6.63]    Failure Strategy: mean:  38%|███▊      | 38/100 [00:00<00:00, 200.15it/s, failures=22, objective=6.63]    Failure Strategy: mean:  39%|███▉      | 39/100 [00:00<00:00, 200.15it/s, failures=22, objective=6.87]    Failure Strategy: mean:  40%|████      | 40/100 [00:00<00:00, 200.15it/s, failures=22, objective=6.87]    Failure Strategy: mean:  41%|████      | 41/100 [00:00<00:00, 200.15it/s, failures=22, objective=6.87]    Failure Strategy: mean:  42%|████▏     | 42/100 [00:00<00:00, 195.06it/s, failures=22, objective=6.87]    Failure Strategy: mean:  42%|████▏     | 42/100 [00:00<00:00, 195.06it/s, failures=22, objective=6.87]    Failure Strategy: mean:  43%|████▎     | 43/100 [00:00<00:00, 195.06it/s, failures=23, objective=6.87]    Failure Strategy: mean:  44%|████▍     | 44/100 [00:00<00:00, 195.06it/s, failures=23, objective=6.87]    Failure Strategy: mean:  45%|████▌     | 45/100 [00:00<00:00, 195.06it/s, failures=24, objective=6.87]    Failure Strategy: mean:  46%|████▌     | 46/100 [00:00<00:00, 195.06it/s, failures=24, objective=6.87]    Failure Strategy: mean:  47%|████▋     | 47/100 [00:00<00:00, 195.06it/s, failures=25, objective=6.87]    Failure Strategy: mean:  48%|████▊     | 48/100 [00:00<00:00, 195.06it/s, failures=25, objective=6.87]    Failure Strategy: mean:  49%|████▉     | 49/100 [00:00<00:00, 195.06it/s, failures=25, objective=6.87]    Failure Strategy: mean:  50%|█████     | 50/100 [00:00<00:00, 195.06it/s, failures=25, objective=7.36]    Failure Strategy: mean:  51%|█████     | 51/100 [00:00<00:00, 195.06it/s, failures=25, objective=8.13]    Failure Strategy: mean:  52%|█████▏    | 52/100 [00:00<00:00, 195.06it/s, failures=25, objective=8.13]    Failure Strategy: mean:  53%|█████▎    | 53/100 [00:00<00:00, 195.06it/s, failures=26, objective=8.13]    Failure Strategy: mean:  54%|█████▍    | 54/100 [00:01<00:00, 195.06it/s, failures=26, objective=8.13]    Failure Strategy: mean:  55%|█████▌    | 55/100 [00:01<00:00, 195.06it/s, failures=26, objective=8.13]    Failure Strategy: mean:  56%|█████▌    | 56/100 [00:01<00:00, 195.06it/s, failures=26, objective=8.13]    Failure Strategy: mean:  57%|█████▋    | 57/100 [00:01<00:00, 195.06it/s, failures=26, objective=8.13]    Failure Strategy: mean:  58%|█████▊    | 58/100 [00:01<00:00, 195.06it/s, failures=26, objective=8.13]    Failure Strategy: mean:  59%|█████▉    | 59/100 [00:01<00:00, 195.06it/s, failures=26, objective=8.13]    Failure Strategy: mean:  60%|██████    | 60/100 [00:01<00:00, 195.06it/s, failures=26, objective=8.13]    Failure Strategy: mean:  61%|██████    | 61/100 [00:02<00:00, 195.06it/s, failures=26, objective=8.13]    Failure Strategy: mean:  62%|██████▏   | 62/100 [00:02<00:01, 21.20it/s, failures=26, objective=8.13]     Failure Strategy: mean:  62%|██████▏   | 62/100 [00:02<00:01, 21.20it/s, failures=26, objective=8.13]    Failure Strategy: mean:  63%|██████▎   | 63/100 [00:02<00:01, 21.20it/s, failures=26, objective=8.13]    Failure Strategy: mean:  64%|██████▍   | 64/100 [00:02<00:01, 21.20it/s, failures=26, objective=8.68]    Failure Strategy: mean:  65%|██████▌   | 65/100 [00:02<00:01, 21.20it/s, failures=26, objective=8.68]    Failure Strategy: mean:  66%|██████▌   | 66/100 [00:02<00:01, 21.20it/s, failures=26, objective=8.68]    Failure Strategy: mean:  67%|██████▋   | 67/100 [00:02<00:01, 21.20it/s, failures=26, objective=8.94]    Failure Strategy: mean:  68%|██████▊   | 68/100 [00:03<00:01, 21.20it/s, failures=26, objective=8.94]    Failure Strategy: mean:  69%|██████▉   | 69/100 [00:03<00:01, 21.20it/s, failures=26, objective=8.94]    Failure Strategy: mean:  70%|███████   | 70/100 [00:03<00:01, 21.20it/s, failures=26, objective=9.31]    Failure Strategy: mean:  71%|███████   | 71/100 [00:03<00:01, 21.20it/s, failures=26, objective=9.31]    Failure Strategy: mean:  72%|███████▏  | 72/100 [00:03<00:01, 21.20it/s, failures=26, objective=9.31]    Failure Strategy: mean:  73%|███████▎  | 73/100 [00:03<00:01, 21.20it/s, failures=27, objective=9.31]    Failure Strategy: mean:  74%|███████▍  | 74/100 [00:04<00:01, 13.25it/s, failures=27, objective=9.31]    Failure Strategy: mean:  74%|███████▍  | 74/100 [00:04<00:01, 13.25it/s, failures=27, objective=9.31]    Failure Strategy: mean:  75%|███████▌  | 75/100 [00:04<00:01, 13.25it/s, failures=27, objective=9.31]    Failure Strategy: mean:  76%|███████▌  | 76/100 [00:04<00:01, 13.25it/s, failures=28, objective=9.31]    Failure Strategy: mean:  77%|███████▋  | 77/100 [00:04<00:01, 13.25it/s, failures=28, objective=9.31]    Failure Strategy: mean:  78%|███████▊  | 78/100 [00:04<00:01, 13.25it/s, failures=28, objective=9.31]    Failure Strategy: mean:  79%|███████▉  | 79/100 [00:04<00:01, 13.25it/s, failures=28, objective=9.31]    Failure Strategy: mean:  80%|████████  | 80/100 [00:05<00:01, 13.25it/s, failures=28, objective=9.31]    Failure Strategy: mean:  81%|████████  | 81/100 [00:05<00:01, 10.80it/s, failures=28, objective=9.31]    Failure Strategy: mean:  81%|████████  | 81/100 [00:05<00:01, 10.80it/s, failures=28, objective=9.33]    Failure Strategy: mean:  82%|████████▏ | 82/100 [00:05<00:01, 10.80it/s, failures=28, objective=9.49]    Failure Strategy: mean:  83%|████████▎ | 83/100 [00:05<00:01, 10.80it/s, failures=28, objective=9.49]    Failure Strategy: mean:  84%|████████▍ | 84/100 [00:05<00:01, 10.80it/s, failures=28, objective=9.49]    Failure Strategy: mean:  85%|████████▌ | 85/100 [00:05<00:01, 10.80it/s, failures=28, objective=9.49]    Failure Strategy: mean:  86%|████████▌ | 86/100 [00:06<00:01,  9.55it/s, failures=28, objective=9.49]    Failure Strategy: mean:  86%|████████▌ | 86/100 [00:06<00:01,  9.55it/s, failures=28, objective=9.49]    Failure Strategy: mean:  87%|████████▋ | 87/100 [00:06<00:01,  9.55it/s, failures=28, objective=9.49]    Failure Strategy: mean:  88%|████████▊ | 88/100 [00:06<00:01,  9.55it/s, failures=28, objective=9.7]     Failure Strategy: mean:  89%|████████▉ | 89/100 [00:06<00:01,  9.55it/s, failures=28, objective=9.7]    Failure Strategy: mean:  90%|█████████ | 90/100 [00:06<00:01,  8.70it/s, failures=28, objective=9.7]    Failure Strategy: mean:  90%|█████████ | 90/100 [00:06<00:01,  8.70it/s, failures=28, objective=9.7]    Failure Strategy: mean:  91%|█████████ | 91/100 [00:06<00:01,  8.70it/s, failures=28, objective=9.7]    Failure Strategy: mean:  92%|█████████▏| 92/100 [00:07<00:00,  8.70it/s, failures=28, objective=9.7]    Failure Strategy: mean:  93%|█████████▎| 93/100 [00:07<00:00,  8.21it/s, failures=28, objective=9.7]    Failure Strategy: mean:  93%|█████████▎| 93/100 [00:07<00:00,  8.21it/s, failures=28, objective=9.7]    Failure Strategy: mean:  94%|█████████▍| 94/100 [00:07<00:00,  8.21it/s, failures=28, objective=9.7]    Failure Strategy: mean:  95%|█████████▌| 95/100 [00:07<00:00,  7.88it/s, failures=28, objective=9.7]    Failure Strategy: mean:  95%|█████████▌| 95/100 [00:07<00:00,  7.88it/s, failures=28, objective=9.7]    Failure Strategy: mean:  96%|█████████▌| 96/100 [00:07<00:00,  7.88it/s, failures=28, objective=9.7]    Failure Strategy: mean:  97%|█████████▋| 97/100 [00:07<00:00,  7.01it/s, failures=28, objective=9.7]    Failure Strategy: mean:  97%|█████████▋| 97/100 [00:07<00:00,  7.01it/s, failures=28, objective=9.7]    Failure Strategy: mean:  98%|█████████▊| 98/100 [00:08<00:00,  7.01it/s, failures=29, objective=9.7]    Failure Strategy: mean:  99%|█████████▉| 99/100 [00:08<00:00,  6.64it/s, failures=29, objective=9.7]    Failure Strategy: mean:  99%|█████████▉| 99/100 [00:08<00:00,  6.64it/s, failures=29, objective=9.74]    Failure Strategy: mean: 100%|██████████| 100/100 [00:08<00:00,  6.54it/s, failures=29, objective=9.74]    Failure Strategy: mean: 100%|██████████| 100/100 [00:08<00:00,  6.54it/s, failures=29, objective=9.74]    Failure Strategy: mean: 100%|██████████| 100/100 [00:08<00:00, 11.71it/s, failures=29, objective=9.74]
      0%|          | 0/100 [00:00<?, ?it/s]    Failure Strategy: min:   0%|          | 0/100 [00:00<?, ?it/s]    Failure Strategy: min:   1%|          | 1/100 [00:00<00:00, 22192.08it/s, failures=0, objective=6.63]    Failure Strategy: min:   2%|▏         | 2/100 [00:00<00:00, 363.24it/s, failures=1, objective=6.63]      Failure Strategy: min:   3%|▎         | 3/100 [00:00<00:00, 277.30it/s, failures=2, objective=6.63]    Failure Strategy: min:   4%|▍         | 4/100 [00:00<00:00, 246.56it/s, failures=2, objective=6.63]    Failure Strategy: min:   5%|▌         | 5/100 [00:00<00:00, 232.24it/s, failures=2, objective=6.63]    Failure Strategy: min:   6%|▌         | 6/100 [00:00<00:00, 221.58it/s, failures=3, objective=6.63]    Failure Strategy: min:   7%|▋         | 7/100 [00:00<00:00, 215.67it/s, failures=4, objective=6.63]    Failure Strategy: min:   8%|▊         | 8/100 [00:00<00:00, 211.31it/s, failures=4, objective=6.63]    Failure Strategy: min:   9%|▉         | 9/100 [00:00<00:00, 207.81it/s, failures=5, objective=6.63]    Failure Strategy: min:  10%|█         | 10/100 [00:00<00:00, 205.06it/s, failures=5, objective=6.63]    Failure Strategy: min:  11%|█         | 11/100 [00:00<00:00, 202.79it/s, failures=5, objective=6.63]    Failure Strategy: min:  12%|█▏        | 12/100 [00:00<00:00, 200.99it/s, failures=6, objective=6.63]    Failure Strategy: min:  13%|█▎        | 13/100 [00:00<00:00, 199.64it/s, failures=6, objective=6.63]    Failure Strategy: min:  14%|█▍        | 14/100 [00:00<00:00, 198.37it/s, failures=7, objective=6.63]    Failure Strategy: min:  15%|█▌        | 15/100 [00:00<00:00, 197.43it/s, failures=8, objective=6.63]    Failure Strategy: min:  16%|█▌        | 16/100 [00:00<00:00, 196.38it/s, failures=9, objective=6.63]    Failure Strategy: min:  17%|█▋        | 17/100 [00:00<00:00, 195.50it/s, failures=10, objective=6.63]    Failure Strategy: min:  18%|█▊        | 18/100 [00:00<00:00, 194.64it/s, failures=11, objective=6.63]    Failure Strategy: min:  19%|█▉        | 19/100 [00:00<00:00, 194.00it/s, failures=12, objective=6.63]    Failure Strategy: min:  20%|██        | 20/100 [00:00<00:00, 193.45it/s, failures=12, objective=6.63]    Failure Strategy: min:  20%|██        | 20/100 [00:00<00:00, 193.45it/s, failures=13, objective=6.63]    Failure Strategy: min:  21%|██        | 21/100 [00:00<00:00, 193.45it/s, failures=14, objective=6.63]    Failure Strategy: min:  22%|██▏       | 22/100 [00:00<00:00, 193.45it/s, failures=15, objective=6.63]    Failure Strategy: min:  23%|██▎       | 23/100 [00:00<00:00, 193.45it/s, failures=16, objective=6.63]    Failure Strategy: min:  24%|██▍       | 24/100 [00:00<00:00, 193.45it/s, failures=16, objective=6.63]    Failure Strategy: min:  25%|██▌       | 25/100 [00:00<00:00, 193.45it/s, failures=16, objective=6.63]    Failure Strategy: min:  26%|██▌       | 26/100 [00:00<00:00, 193.45it/s, failures=17, objective=6.63]    Failure Strategy: min:  27%|██▋       | 27/100 [00:00<00:00, 193.45it/s, failures=17, objective=6.63]    Failure Strategy: min:  28%|██▊       | 28/100 [00:00<00:00, 193.45it/s, failures=18, objective=6.63]    Failure Strategy: min:  29%|██▉       | 29/100 [00:00<00:00, 193.45it/s, failures=19, objective=6.63]    Failure Strategy: min:  30%|███       | 30/100 [00:00<00:00, 193.45it/s, failures=20, objective=6.63]    Failure Strategy: min:  31%|███       | 31/100 [00:00<00:00, 193.45it/s, failures=20, objective=6.63]    Failure Strategy: min:  32%|███▏      | 32/100 [00:00<00:00, 193.45it/s, failures=21, objective=6.63]    Failure Strategy: min:  33%|███▎      | 33/100 [00:00<00:00, 193.45it/s, failures=21, objective=6.63]    Failure Strategy: min:  34%|███▍      | 34/100 [00:00<00:00, 193.45it/s, failures=21, objective=6.63]    Failure Strategy: min:  35%|███▌      | 35/100 [00:00<00:00, 193.45it/s, failures=21, objective=6.63]    Failure Strategy: min:  36%|███▌      | 36/100 [00:00<00:00, 193.45it/s, failures=21, objective=6.63]    Failure Strategy: min:  37%|███▋      | 37/100 [00:00<00:00, 193.45it/s, failures=22, objective=6.63]    Failure Strategy: min:  38%|███▊      | 38/100 [00:00<00:00, 193.45it/s, failures=22, objective=6.63]    Failure Strategy: min:  39%|███▉      | 39/100 [00:00<00:00, 193.45it/s, failures=22, objective=6.87]    Failure Strategy: min:  40%|████      | 40/100 [00:00<00:00, 188.43it/s, failures=22, objective=6.87]    Failure Strategy: min:  40%|████      | 40/100 [00:00<00:00, 188.43it/s, failures=22, objective=6.87]    Failure Strategy: min:  41%|████      | 41/100 [00:00<00:00, 188.43it/s, failures=22, objective=6.87]    Failure Strategy: min:  42%|████▏     | 42/100 [00:00<00:00, 188.43it/s, failures=22, objective=6.87]    Failure Strategy: min:  43%|████▎     | 43/100 [00:00<00:00, 188.43it/s, failures=23, objective=6.87]    Failure Strategy: min:  44%|████▍     | 44/100 [00:00<00:00, 188.43it/s, failures=23, objective=6.87]    Failure Strategy: min:  45%|████▌     | 45/100 [00:00<00:00, 188.43it/s, failures=24, objective=6.87]    Failure Strategy: min:  46%|████▌     | 46/100 [00:00<00:00, 188.43it/s, failures=24, objective=6.87]    Failure Strategy: min:  47%|████▋     | 47/100 [00:00<00:00, 188.43it/s, failures=25, objective=6.87]    Failure Strategy: min:  48%|████▊     | 48/100 [00:00<00:00, 188.43it/s, failures=25, objective=6.87]    Failure Strategy: min:  49%|████▉     | 49/100 [00:00<00:00, 188.43it/s, failures=25, objective=6.87]    Failure Strategy: min:  50%|█████     | 50/100 [00:00<00:00, 188.43it/s, failures=25, objective=6.87]    Failure Strategy: min:  51%|█████     | 51/100 [00:00<00:00, 188.43it/s, failures=25, objective=6.87]    Failure Strategy: min:  52%|█████▏    | 52/100 [00:00<00:00, 188.43it/s, failures=25, objective=7.85]    Failure Strategy: min:  53%|█████▎    | 53/100 [00:00<00:00, 188.43it/s, failures=25, objective=7.85]    Failure Strategy: min:  54%|█████▍    | 54/100 [00:01<00:00, 188.43it/s, failures=25, objective=7.85]    Failure Strategy: min:  55%|█████▌    | 55/100 [00:01<00:00, 188.43it/s, failures=25, objective=7.85]    Failure Strategy: min:  56%|█████▌    | 56/100 [00:01<00:00, 188.43it/s, failures=25, objective=7.85]    Failure Strategy: min:  57%|█████▋    | 57/100 [00:01<00:00, 188.43it/s, failures=25, objective=8.01]    Failure Strategy: min:  58%|█████▊    | 58/100 [00:01<00:00, 188.43it/s, failures=25, objective=8.01]    Failure Strategy: min:  59%|█████▉    | 59/100 [00:01<00:01, 24.84it/s, failures=25, objective=8.01]     Failure Strategy: min:  59%|█████▉    | 59/100 [00:01<00:01, 24.84it/s, failures=25, objective=8.01]    Failure Strategy: min:  60%|██████    | 60/100 [00:01<00:01, 24.84it/s, failures=25, objective=8.01]    Failure Strategy: min:  61%|██████    | 61/100 [00:02<00:01, 24.84it/s, failures=25, objective=8.01]    Failure Strategy: min:  62%|██████▏   | 62/100 [00:02<00:01, 24.84it/s, failures=25, objective=8.01]    Failure Strategy: min:  63%|██████▎   | 63/100 [00:02<00:01, 24.84it/s, failures=25, objective=8.01]    Failure Strategy: min:  64%|██████▍   | 64/100 [00:02<00:01, 24.84it/s, failures=25, objective=8.01]    Failure Strategy: min:  65%|██████▌   | 65/100 [00:02<00:01, 24.84it/s, failures=26, objective=8.01]    Failure Strategy: min:  66%|██████▌   | 66/100 [00:02<00:01, 24.84it/s, failures=27, objective=8.01]    Failure Strategy: min:  67%|██████▋   | 67/100 [00:02<00:01, 24.84it/s, failures=28, objective=8.01]    Failure Strategy: min:  68%|██████▊   | 68/100 [00:03<00:01, 24.84it/s, failures=28, objective=8.2]     Failure Strategy: min:  69%|██████▉   | 69/100 [00:03<00:01, 24.84it/s, failures=28, objective=8.2]    Failure Strategy: min:  70%|███████   | 70/100 [00:03<00:01, 15.17it/s, failures=28, objective=8.2]    Failure Strategy: min:  70%|███████   | 70/100 [00:03<00:01, 15.17it/s, failures=28, objective=8.65]    Failure Strategy: min:  71%|███████   | 71/100 [00:03<00:01, 15.17it/s, failures=28, objective=8.89]    Failure Strategy: min:  72%|███████▏  | 72/100 [00:03<00:01, 15.17it/s, failures=28, objective=8.89]    Failure Strategy: min:  73%|███████▎  | 73/100 [00:03<00:01, 15.17it/s, failures=28, objective=8.89]    Failure Strategy: min:  74%|███████▍  | 74/100 [00:03<00:01, 15.17it/s, failures=28, objective=8.89]    Failure Strategy: min:  75%|███████▌  | 75/100 [00:04<00:01, 15.17it/s, failures=29, objective=8.89]    Failure Strategy: min:  76%|███████▌  | 76/100 [00:04<00:01, 15.17it/s, failures=29, objective=8.89]    Failure Strategy: min:  77%|███████▋  | 77/100 [00:04<00:01, 12.28it/s, failures=29, objective=8.89]    Failure Strategy: min:  77%|███████▋  | 77/100 [00:04<00:01, 12.28it/s, failures=29, objective=9.07]    Failure Strategy: min:  78%|███████▊  | 78/100 [00:04<00:01, 12.28it/s, failures=30, objective=9.07]    Failure Strategy: min:  79%|███████▉  | 79/100 [00:04<00:01, 12.28it/s, failures=30, objective=9.07]    Failure Strategy: min:  80%|████████  | 80/100 [00:04<00:01, 12.28it/s, failures=30, objective=9.07]    Failure Strategy: min:  81%|████████  | 81/100 [00:05<00:01, 12.28it/s, failures=30, objective=9.07]    Failure Strategy: min:  82%|████████▏ | 82/100 [00:05<00:01, 10.01it/s, failures=30, objective=9.07]    Failure Strategy: min:  82%|████████▏ | 82/100 [00:05<00:01, 10.01it/s, failures=30, objective=9.3]     Failure Strategy: min:  83%|████████▎ | 83/100 [00:05<00:01, 10.01it/s, failures=30, objective=9.3]    Failure Strategy: min:  84%|████████▍ | 84/100 [00:05<00:01, 10.01it/s, failures=30, objective=9.3]    Failure Strategy: min:  85%|████████▌ | 85/100 [00:05<00:01, 10.01it/s, failures=31, objective=9.3]    Failure Strategy: min:  86%|████████▌ | 86/100 [00:05<00:01,  9.20it/s, failures=31, objective=9.3]    Failure Strategy: min:  86%|████████▌ | 86/100 [00:05<00:01,  9.20it/s, failures=31, objective=9.3]    Failure Strategy: min:  87%|████████▋ | 87/100 [00:06<00:01,  9.20it/s, failures=31, objective=9.3]    Failure Strategy: min:  88%|████████▊ | 88/100 [00:06<00:01,  9.20it/s, failures=31, objective=9.3]    Failure Strategy: min:  89%|████████▉ | 89/100 [00:06<00:01,  7.78it/s, failures=31, objective=9.3]    Failure Strategy: min:  89%|████████▉ | 89/100 [00:06<00:01,  7.78it/s, failures=32, objective=9.3]    Failure Strategy: min:  90%|█████████ | 90/100 [00:06<00:01,  7.78it/s, failures=32, objective=9.3]    Failure Strategy: min:  91%|█████████ | 91/100 [00:07<00:01,  7.35it/s, failures=32, objective=9.3]    Failure Strategy: min:  91%|█████████ | 91/100 [00:07<00:01,  7.35it/s, failures=32, objective=9.3]    Failure Strategy: min:  92%|█████████▏| 92/100 [00:07<00:01,  7.35it/s, failures=32, objective=9.3]    Failure Strategy: min:  93%|█████████▎| 93/100 [00:07<00:01,  7.00it/s, failures=32, objective=9.3]    Failure Strategy: min:  93%|█████████▎| 93/100 [00:07<00:01,  7.00it/s, failures=32, objective=9.3]    Failure Strategy: min:  94%|█████████▍| 94/100 [00:07<00:00,  7.00it/s, failures=32, objective=9.3]    Failure Strategy: min:  95%|█████████▌| 95/100 [00:07<00:00,  6.73it/s, failures=32, objective=9.3]    Failure Strategy: min:  95%|█████████▌| 95/100 [00:07<00:00,  6.73it/s, failures=33, objective=9.3]    Failure Strategy: min:  96%|█████████▌| 96/100 [00:07<00:00,  6.44it/s, failures=33, objective=9.3]    Failure Strategy: min:  96%|█████████▌| 96/100 [00:07<00:00,  6.44it/s, failures=33, objective=9.3]    Failure Strategy: min:  97%|█████████▋| 97/100 [00:08<00:00,  6.18it/s, failures=33, objective=9.3]    Failure Strategy: min:  97%|█████████▋| 97/100 [00:08<00:00,  6.18it/s, failures=34, objective=9.3]    Failure Strategy: min:  98%|█████████▊| 98/100 [00:08<00:00,  5.86it/s, failures=34, objective=9.3]    Failure Strategy: min:  98%|█████████▊| 98/100 [00:08<00:00,  5.86it/s, failures=34, objective=9.3]    Failure Strategy: min:  99%|█████████▉| 99/100 [00:08<00:00,  5.69it/s, failures=34, objective=9.3]    Failure Strategy: min:  99%|█████████▉| 99/100 [00:08<00:00,  5.69it/s, failures=34, objective=9.3]    Failure Strategy: min: 100%|██████████| 100/100 [00:08<00:00,  5.63it/s, failures=34, objective=9.3]    Failure Strategy: min: 100%|██████████| 100/100 [00:08<00:00,  5.63it/s, failures=34, objective=9.3]    Failure Strategy: min: 100%|██████████| 100/100 [00:08<00:00, 11.45it/s, failures=34, objective=9.3]




.. GENERATED FROM PYTHON SOURCE LINES 91-94

Finally we plot the collected results.
We can see that the ``"mean"`` and ``min`` strategy have much less failures than ``"ignore"``.
In addition, we observe that they return significantly better objectives.

.. GENERATED FROM PYTHON SOURCE LINES 94-114

.. dropdown:: Code (Plot results with failures)

    .. code-block:: Python


        fig, axes = plt.subplots(nrows=3, ncols=1, figsize=(WIDTH_PLOTS, HEIGHT_PLOTS), tight_layout=True, sharex=True, sharey=True)
        for i, (failure_strategy, df) in enumerate(results.items()):
    
            if df.objective.dtype != np.float64:
                x = np.arange(len(df))
                mask_failed = np.where(df.objective.astype(str).str.startswith("F"))[0]
                mask_success = np.where(~df.objective.astype(str).str.startswith("F"))[0]
                x_success, x_failed = x[mask_success], x[mask_failed]
                y_success = df["objective"][mask_success].astype(float)

            axes[i].scatter(x_success, y_success, label="success")
            axes[i].scatter(x_failed, np.zeros(x_failed.shape), marker="v", color="red", label="failure")

            axes[i].set_ylabel("Objective")
            axes[i].legend(title=f"Strategy: {failure_strategy}")
            axes[i].grid()
        axes[i].set_xlabel("Evaluations")




.. image-sg:: /examples/examples_bbo/images/sphx_glr_plot_notify_failures_hpo_001.png
   :alt: plot notify failures hpo
   :srcset: /examples/examples_bbo/images/sphx_glr_plot_notify_failures_hpo_001.png
   :class: sphx-glr-single-img


.. rst-class:: sphx-glr-script-out

 .. code-block:: none


    Text(0.5, 29.00000000000002, 'Evaluations')




.. rst-class:: sphx-glr-timing

   **Total running time of the script:** (0 minutes 18.197 seconds)


.. _sphx_glr_download_examples_examples_bbo_plot_notify_failures_hpo.py:

.. only:: html

  .. container:: sphx-glr-footer sphx-glr-footer-example

    .. container:: sphx-glr-download sphx-glr-download-jupyter

      :download:`Download Jupyter notebook: plot_notify_failures_hpo.ipynb <plot_notify_failures_hpo.ipynb>`

    .. container:: sphx-glr-download sphx-glr-download-python

      :download:`Download Python source code: plot_notify_failures_hpo.py <plot_notify_failures_hpo.py>`

    .. container:: sphx-glr-download sphx-glr-download-zip

      :download:`Download zipped: plot_notify_failures_hpo.zip <plot_notify_failures_hpo.zip>`


.. only:: html

 .. rst-class:: sphx-glr-signature

    `Gallery generated by Sphinx-Gallery <https://sphinx-gallery.github.io>`_
