[1]:
# docs-warning-suppress
import logging
import warnings
warnings.filterwarnings('ignore', category=DeprecationWarning, module=r'torch\.jit\._script')
warnings.filterwarnings('ignore', category=DeprecationWarning, module=r'matplotlib\._fontconfig_pattern')
warnings.filterwarnings('ignore', message=r".*oneOf.*deprecated.*one_of.*", module=r'matplotlib\._fontconfig_pattern')
warnings.filterwarnings('ignore', message=r".*parseString.*deprecated.*parse_string.*", module=r'matplotlib\._fontconfig_pattern')
warnings.filterwarnings('ignore', message=r".*resetCache.*deprecated.*reset_cache.*", module=r'matplotlib\._fontconfig_pattern')
try:
from ax.exceptions.core import AxParameterWarning
warnings.filterwarnings('ignore', category=AxParameterWarning)
except Exception:
pass
try:
from pyparsing import PyparsingDeprecationWarning
warnings.filterwarnings('ignore', category=PyparsingDeprecationWarning)
except Exception:
pass
logging.getLogger('ax').setLevel(logging.WARNING)
logging.getLogger('ax.service.utils.instantiation').setLevel(logging.ERROR)
logging.getLogger('ax.generation_strategy.dispatch_utils').setLevel(logging.WARNING)
try:
import plotly.graph_objects as go
_orig_show = go.Figure.show
def _responsive_show(fig, *args, **kwargs):
fig.update_layout(autosize=True)
config = kwargs.get('config') or {}
config.setdefault('responsive', True)
kwargs['config'] = config
return _orig_show(fig, *args, **kwargs)
go.Figure.show = _responsive_show
except Exception:
pass
Design of Experiment#
Installation#
Create a virtual environment named .venv, activate it, then install the package:
python -m venv .venv
source .venv/bin/activate # Linux / macOS
python -m pip install --upgrade pip
python -m pip install optimeo
After that, launch the app with:
optimeo
If you are using the repo directly, you can also install from GitHub:
python -m pip install "git+https://github.com/colinbousige/OPTIMEO.git"
This notebook shows how to create a design of experiments once the package is installed.
[2]:
# For Google Colab
!pip install git+https://github.com/colinbousige/OPTIMEO.git
# For local development, prefer:
# uv venv .venv --python 3.10 && source .venv/bin/activate && uv sync
Collecting git+https://github.com/colinbousige/OPTIMEO.git
Cloning https://github.com/colinbousige/OPTIMEO.git to /tmp/pip-req-build-_vnyun_v
Running command git clone --filter=blob:none --quiet https://github.com/colinbousige/OPTIMEO.git /tmp/pip-req-build-_vnyun_v
Resolved https://github.com/colinbousige/OPTIMEO.git to commit 38523070779e9880582878feff5db525d26c3726
Installing build dependencies ... - \ done
Getting requirements to build wheel ... - done
Preparing metadata (pyproject.toml) ... - done
Requirement already satisfied: ax-platform==1.2.1 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from optimeo==1.3.2) (1.2.1)
Requirement already satisfied: definitive_screening_design==0.5.0 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from optimeo==1.3.2) (0.5.0)
Requirement already satisfied: dexpy==0.12 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from optimeo==1.3.2) (0.12)
Requirement already satisfied: doepy==0.0.1 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from optimeo==1.3.2) (0.0.1)
Requirement already satisfied: matplotlib==3.10.1 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from optimeo==1.3.2) (3.10.1)
Requirement already satisfied: numpy==2.2.0 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from optimeo==1.3.2) (2.2.0)
Requirement already satisfied: openpyxl==3.1.5 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from optimeo==1.3.2) (3.1.5)
Requirement already satisfied: pandas==2.2.3 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from optimeo==1.3.2) (2.2.3)
Requirement already satisfied: plotly==5.24.0 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from optimeo==1.3.2) (5.24.0)
Requirement already satisfied: pyDOE3==1.0.4 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from optimeo==1.3.2) (1.0.4)
Requirement already satisfied: pyjanitor==0.31.0 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from optimeo==1.3.2) (0.31.0)
Requirement already satisfied: scikit_learn==1.6.1 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from optimeo==1.3.2) (1.6.1)
Requirement already satisfied: scipy==1.15.1 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from optimeo==1.3.2) (1.15.1)
Requirement already satisfied: seaborn==0.13.2 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from optimeo==1.3.2) (0.13.2)
Requirement already satisfied: statsmodels>=0.14.4 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from optimeo==1.3.2) (0.14.6)
Requirement already satisfied: streamlit==1.44.1 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from optimeo==1.3.2) (1.44.1)
Requirement already satisfied: watchdog==6.0.0 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from optimeo==1.3.2) (6.0.0)
Requirement already satisfied: xlrd==2.0.1 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from optimeo==1.3.2) (2.0.1)
Requirement already satisfied: xlsxwriter==3.2.9 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from optimeo==1.3.2) (3.2.9)
Requirement already satisfied: botorch<0.16.2dev9999,>=0.16.1 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (0.16.1)
Requirement already satisfied: jinja2 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from ax-platform==1.2.1->optimeo==1.3.2) (3.1.6)
Requirement already satisfied: ipywidgets in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from ax-platform==1.2.1->optimeo==1.3.2) (8.1.8)
Requirement already satisfied: pyre-extensions in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from ax-platform==1.2.1->optimeo==1.3.2) (0.0.32)
Requirement already satisfied: sympy in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from ax-platform==1.2.1->optimeo==1.3.2) (1.14.0)
Requirement already satisfied: markdown in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from ax-platform==1.2.1->optimeo==1.3.2) (3.10.2)
Requirement already satisfied: patsy in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from dexpy==0.12->optimeo==1.3.2) (1.0.2)
Requirement already satisfied: pyDOE in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from doepy==0.0.1->optimeo==1.3.2) (0.9.3)
Requirement already satisfied: diversipy in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from doepy==0.0.1->optimeo==1.3.2) (0.9)
Requirement already satisfied: contourpy>=1.0.1 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from matplotlib==3.10.1->optimeo==1.3.2) (1.3.3)
Requirement already satisfied: cycler>=0.10 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from matplotlib==3.10.1->optimeo==1.3.2) (0.12.1)
Requirement already satisfied: fonttools>=4.22.0 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from matplotlib==3.10.1->optimeo==1.3.2) (4.63.0)
Requirement already satisfied: kiwisolver>=1.3.1 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from matplotlib==3.10.1->optimeo==1.3.2) (1.5.0)
Requirement already satisfied: packaging>=20.0 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from matplotlib==3.10.1->optimeo==1.3.2) (24.2)
Requirement already satisfied: pillow>=8 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from matplotlib==3.10.1->optimeo==1.3.2) (11.3.0)
Requirement already satisfied: pyparsing>=2.3.1 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from matplotlib==3.10.1->optimeo==1.3.2) (3.3.2)
Requirement already satisfied: python-dateutil>=2.7 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from matplotlib==3.10.1->optimeo==1.3.2) (2.9.0.post0)
Requirement already satisfied: et-xmlfile in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from openpyxl==3.1.5->optimeo==1.3.2) (2.0.0)
Requirement already satisfied: pytz>=2020.1 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from pandas==2.2.3->optimeo==1.3.2) (2026.2)
Requirement already satisfied: tzdata>=2022.7 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from pandas==2.2.3->optimeo==1.3.2) (2026.2)
Requirement already satisfied: tenacity>=6.2.0 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from plotly==5.24.0->optimeo==1.3.2) (9.1.4)
Requirement already satisfied: natsort in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from pyjanitor==0.31.0->optimeo==1.3.2) (8.4.0)
Requirement already satisfied: pandas_flavor in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from pyjanitor==0.31.0->optimeo==1.3.2) (0.8.1)
Requirement already satisfied: multipledispatch in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from pyjanitor==0.31.0->optimeo==1.3.2) (1.0.0)
Requirement already satisfied: joblib>=1.2.0 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from scikit_learn==1.6.1->optimeo==1.3.2) (1.5.3)
Requirement already satisfied: threadpoolctl>=3.1.0 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from scikit_learn==1.6.1->optimeo==1.3.2) (3.6.0)
Requirement already satisfied: altair<6,>=4.0 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from streamlit==1.44.1->optimeo==1.3.2) (5.5.0)
Requirement already satisfied: blinker<2,>=1.0.0 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from streamlit==1.44.1->optimeo==1.3.2) (1.9.0)
Requirement already satisfied: cachetools<6,>=4.0 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from streamlit==1.44.1->optimeo==1.3.2) (5.5.2)
Requirement already satisfied: click<9,>=7.0 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from streamlit==1.44.1->optimeo==1.3.2) (8.4.1)
Requirement already satisfied: protobuf<6,>=3.20 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from streamlit==1.44.1->optimeo==1.3.2) (5.29.6)
Requirement already satisfied: pyarrow>=7.0 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from streamlit==1.44.1->optimeo==1.3.2) (24.0.0)
Requirement already satisfied: requests<3,>=2.27 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from streamlit==1.44.1->optimeo==1.3.2) (2.34.2)
Requirement already satisfied: toml<2,>=0.10.1 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from streamlit==1.44.1->optimeo==1.3.2) (0.10.2)
Requirement already satisfied: typing-extensions<5,>=4.4.0 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from streamlit==1.44.1->optimeo==1.3.2) (4.15.0)
Requirement already satisfied: gitpython!=3.1.19,<4,>=3.0.7 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from streamlit==1.44.1->optimeo==1.3.2) (3.1.50)
Requirement already satisfied: pydeck<1,>=0.8.0b4 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from streamlit==1.44.1->optimeo==1.3.2) (0.9.2)
Requirement already satisfied: tornado<7,>=6.0.3 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from streamlit==1.44.1->optimeo==1.3.2) (6.5.6)
Requirement already satisfied: jsonschema>=3.0 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from altair<6,>=4.0->streamlit==1.44.1->optimeo==1.3.2) (4.26.0)
Requirement already satisfied: narwhals>=1.14.2 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from altair<6,>=4.0->streamlit==1.44.1->optimeo==1.3.2) (2.22.0)
Requirement already satisfied: gpytorch>=1.14.2 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from botorch<0.16.2dev9999,>=0.16.1->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (1.15.2)
Requirement already satisfied: linear_operator>=0.6 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from botorch<0.16.2dev9999,>=0.16.1->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (0.6.1)
Requirement already satisfied: torch>=2.0.1 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from botorch<0.16.2dev9999,>=0.16.1->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (2.12.0)
Requirement already satisfied: pyro-ppl>=1.8.4 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from botorch<0.16.2dev9999,>=0.16.1->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (1.9.1)
Requirement already satisfied: pymoo in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (0.6.1.6)
Requirement already satisfied: gitdb<5,>=4.0.1 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from gitpython!=3.1.19,<4,>=3.0.7->streamlit==1.44.1->optimeo==1.3.2) (4.0.12)
Requirement already satisfied: smmap<6,>=3.0.1 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from gitdb<5,>=4.0.1->gitpython!=3.1.19,<4,>=3.0.7->streamlit==1.44.1->optimeo==1.3.2) (5.0.3)
Requirement already satisfied: charset_normalizer<4,>=2 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from requests<3,>=2.27->streamlit==1.44.1->optimeo==1.3.2) (3.4.7)
Requirement already satisfied: idna<4,>=2.5 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from requests<3,>=2.27->streamlit==1.44.1->optimeo==1.3.2) (3.17)
Requirement already satisfied: urllib3<3,>=1.26 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from requests<3,>=2.27->streamlit==1.44.1->optimeo==1.3.2) (2.7.0)
Requirement already satisfied: certifi>=2023.5.7 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from requests<3,>=2.27->streamlit==1.44.1->optimeo==1.3.2) (2026.5.20)
Requirement already satisfied: mpmath<=1.3,>=0.19 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from gpytorch>=1.14.2->botorch<0.16.2dev9999,>=0.16.1->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (1.3.0)
Requirement already satisfied: MarkupSafe>=2.0 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from jinja2->ax-platform==1.2.1->optimeo==1.3.2) (3.0.3)
Requirement already satisfied: attrs>=22.2.0 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from jsonschema>=3.0->altair<6,>=4.0->streamlit==1.44.1->optimeo==1.3.2) (26.1.0)
Requirement already satisfied: jsonschema-specifications>=2023.03.6 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from jsonschema>=3.0->altair<6,>=4.0->streamlit==1.44.1->optimeo==1.3.2) (2025.9.1)
Requirement already satisfied: referencing>=0.28.4 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from jsonschema>=3.0->altair<6,>=4.0->streamlit==1.44.1->optimeo==1.3.2) (0.37.0)
Requirement already satisfied: rpds-py>=0.25.0 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from jsonschema>=3.0->altair<6,>=4.0->streamlit==1.44.1->optimeo==1.3.2) (2026.5.1)
Requirement already satisfied: opt-einsum>=2.3.2 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from pyro-ppl>=1.8.4->botorch<0.16.2dev9999,>=0.16.1->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (3.4.0)
Requirement already satisfied: pyro-api>=0.1.1 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from pyro-ppl>=1.8.4->botorch<0.16.2dev9999,>=0.16.1->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (0.1.2)
Requirement already satisfied: tqdm>=4.36 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from pyro-ppl>=1.8.4->botorch<0.16.2dev9999,>=0.16.1->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (4.67.3)
Requirement already satisfied: six>=1.5 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from python-dateutil>=2.7->matplotlib==3.10.1->optimeo==1.3.2) (1.17.0)
Requirement already satisfied: filelock in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from torch>=2.0.1->botorch<0.16.2dev9999,>=0.16.1->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (3.29.0)
Requirement already satisfied: setuptools<82 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from torch>=2.0.1->botorch<0.16.2dev9999,>=0.16.1->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (79.0.1)
Requirement already satisfied: networkx>=2.5.1 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from torch>=2.0.1->botorch<0.16.2dev9999,>=0.16.1->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (3.6.1)
Requirement already satisfied: fsspec>=0.8.5 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from torch>=2.0.1->botorch<0.16.2dev9999,>=0.16.1->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (2026.4.0)
Requirement already satisfied: cuda-toolkit==13.0.2 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from cuda-toolkit[cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch>=2.0.1->botorch<0.16.2dev9999,>=0.16.1->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (13.0.2)
Requirement already satisfied: nvidia-cublas<=13.1.1.3,>=13.1.0.3 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from torch>=2.0.1->botorch<0.16.2dev9999,>=0.16.1->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (13.1.1.3)
Requirement already satisfied: cuda-bindings<14,>=13.0.3 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from torch>=2.0.1->botorch<0.16.2dev9999,>=0.16.1->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (13.3.1)
Requirement already satisfied: nvidia-cudnn-cu13==9.20.0.48 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from torch>=2.0.1->botorch<0.16.2dev9999,>=0.16.1->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (9.20.0.48)
Requirement already satisfied: nvidia-cusparselt-cu13==0.8.1 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from torch>=2.0.1->botorch<0.16.2dev9999,>=0.16.1->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (0.8.1)
Requirement already satisfied: nvidia-nccl-cu13==2.29.7 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from torch>=2.0.1->botorch<0.16.2dev9999,>=0.16.1->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (2.29.7)
Requirement already satisfied: nvidia-nvshmem-cu13==3.4.5 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from torch>=2.0.1->botorch<0.16.2dev9999,>=0.16.1->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (3.4.5)
Requirement already satisfied: triton==3.7.0 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from torch>=2.0.1->botorch<0.16.2dev9999,>=0.16.1->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (3.7.0)
Requirement already satisfied: nvidia-cuda-runtime==13.0.96.* in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from cuda-toolkit[cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch>=2.0.1->botorch<0.16.2dev9999,>=0.16.1->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (13.0.96)
Requirement already satisfied: nvidia-cufft==12.0.0.61.* in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from cuda-toolkit[cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch>=2.0.1->botorch<0.16.2dev9999,>=0.16.1->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (12.0.0.61)
Requirement already satisfied: nvidia-cufile==1.15.1.6.* in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from cuda-toolkit[cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch>=2.0.1->botorch<0.16.2dev9999,>=0.16.1->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (1.15.1.6)
Requirement already satisfied: nvidia-cuda-cupti==13.0.85.* in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from cuda-toolkit[cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch>=2.0.1->botorch<0.16.2dev9999,>=0.16.1->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (13.0.85)
Requirement already satisfied: nvidia-curand==10.4.0.35.* in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from cuda-toolkit[cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch>=2.0.1->botorch<0.16.2dev9999,>=0.16.1->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (10.4.0.35)
Requirement already satisfied: nvidia-cusolver==12.0.4.66.* in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from cuda-toolkit[cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch>=2.0.1->botorch<0.16.2dev9999,>=0.16.1->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (12.0.4.66)
Requirement already satisfied: nvidia-cusparse==12.6.3.3.* in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from cuda-toolkit[cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch>=2.0.1->botorch<0.16.2dev9999,>=0.16.1->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (12.6.3.3)
Requirement already satisfied: nvidia-nvjitlink==13.0.88.* in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from cuda-toolkit[cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch>=2.0.1->botorch<0.16.2dev9999,>=0.16.1->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (13.0.88)
Requirement already satisfied: nvidia-cuda-nvrtc==13.0.88.* in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from cuda-toolkit[cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch>=2.0.1->botorch<0.16.2dev9999,>=0.16.1->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (13.0.88)
Requirement already satisfied: nvidia-nvtx==13.0.85.* in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from cuda-toolkit[cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch>=2.0.1->botorch<0.16.2dev9999,>=0.16.1->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (13.0.85)
Requirement already satisfied: cuda-pathfinder>=1.4.2 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from cuda-bindings<14,>=13.0.3->torch>=2.0.1->botorch<0.16.2dev9999,>=0.16.1->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (1.5.5)
Requirement already satisfied: comm>=0.1.3 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from ipywidgets->ax-platform==1.2.1->optimeo==1.3.2) (0.2.3)
Requirement already satisfied: ipython>=6.1.0 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from ipywidgets->ax-platform==1.2.1->optimeo==1.3.2) (9.14.0)
Requirement already satisfied: traitlets>=4.3.1 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from ipywidgets->ax-platform==1.2.1->optimeo==1.3.2) (5.15.0)
Requirement already satisfied: widgetsnbextension~=4.0.14 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from ipywidgets->ax-platform==1.2.1->optimeo==1.3.2) (4.0.15)
Requirement already satisfied: jupyterlab_widgets~=3.0.15 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from ipywidgets->ax-platform==1.2.1->optimeo==1.3.2) (3.0.16)
Requirement already satisfied: decorator>=5.1.0 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from ipython>=6.1.0->ipywidgets->ax-platform==1.2.1->optimeo==1.3.2) (5.3.1)
Requirement already satisfied: ipython-pygments-lexers>=1.0.0 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from ipython>=6.1.0->ipywidgets->ax-platform==1.2.1->optimeo==1.3.2) (1.1.1)
Requirement already satisfied: jedi>=0.18.2 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from ipython>=6.1.0->ipywidgets->ax-platform==1.2.1->optimeo==1.3.2) (0.20.0)
Requirement already satisfied: matplotlib-inline>=0.1.6 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from ipython>=6.1.0->ipywidgets->ax-platform==1.2.1->optimeo==1.3.2) (0.2.2)
Requirement already satisfied: pexpect>4.6 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from ipython>=6.1.0->ipywidgets->ax-platform==1.2.1->optimeo==1.3.2) (4.9.0)
Requirement already satisfied: prompt_toolkit<3.1.0,>=3.0.41 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from ipython>=6.1.0->ipywidgets->ax-platform==1.2.1->optimeo==1.3.2) (3.0.52)
Requirement already satisfied: psutil>=7 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from ipython>=6.1.0->ipywidgets->ax-platform==1.2.1->optimeo==1.3.2) (7.2.2)
Requirement already satisfied: pygments>=2.14.0 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from ipython>=6.1.0->ipywidgets->ax-platform==1.2.1->optimeo==1.3.2) (2.20.0)
Requirement already satisfied: stack_data>=0.6.0 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from ipython>=6.1.0->ipywidgets->ax-platform==1.2.1->optimeo==1.3.2) (0.6.3)
Requirement already satisfied: wcwidth in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from prompt_toolkit<3.1.0,>=3.0.41->ipython>=6.1.0->ipywidgets->ax-platform==1.2.1->optimeo==1.3.2) (0.7.0)
Requirement already satisfied: parso<0.9.0,>=0.8.6 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from jedi>=0.18.2->ipython>=6.1.0->ipywidgets->ax-platform==1.2.1->optimeo==1.3.2) (0.8.7)
Requirement already satisfied: ptyprocess>=0.5 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from pexpect>4.6->ipython>=6.1.0->ipywidgets->ax-platform==1.2.1->optimeo==1.3.2) (0.7.0)
Requirement already satisfied: executing>=1.2.0 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from stack_data>=0.6.0->ipython>=6.1.0->ipywidgets->ax-platform==1.2.1->optimeo==1.3.2) (2.2.1)
Requirement already satisfied: asttokens>=2.1.0 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from stack_data>=0.6.0->ipython>=6.1.0->ipywidgets->ax-platform==1.2.1->optimeo==1.3.2) (3.0.1)
Requirement already satisfied: pure-eval in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from stack_data>=0.6.0->ipython>=6.1.0->ipywidgets->ax-platform==1.2.1->optimeo==1.3.2) (0.2.3)
Requirement already satisfied: xarray in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from pandas_flavor->pyjanitor==0.31.0->optimeo==1.3.2) (2026.4.0)
Requirement already satisfied: moocore>=0.1.7 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from pymoo->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (0.3.1)
Requirement already satisfied: autograd>=1.4 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from pymoo->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (1.8.0)
Requirement already satisfied: cma>=3.2.2 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from pymoo->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (4.4.4)
Requirement already satisfied: alive_progress in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from pymoo->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (3.3.0)
Requirement already satisfied: Deprecated in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from pymoo->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (1.3.1)
Requirement already satisfied: cffi>=1.17.1 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from moocore>=0.1.7->pymoo->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (2.0.0)
Requirement already satisfied: platformdirs in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from moocore>=0.1.7->pymoo->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (4.10.0)
Requirement already satisfied: pycparser in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from cffi>=1.17.1->moocore>=0.1.7->pymoo->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (3.0)
Requirement already satisfied: about-time==4.2.1 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from alive_progress->pymoo->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (4.2.1)
Requirement already satisfied: graphemeu==0.7.2 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from alive_progress->pymoo->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (0.7.2)
Requirement already satisfied: wrapt<3,>=1.10 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from Deprecated->pymoo->botorch[pymoo]<0.16.2dev9999,>=0.16.1->ax-platform==1.2.1->optimeo==1.3.2) (2.2.1)
Requirement already satisfied: typing-inspect in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from pyre-extensions->ax-platform==1.2.1->optimeo==1.3.2) (0.9.0)
Requirement already satisfied: mypy-extensions>=0.3.0 in /opt/hostedtoolcache/Python/3.11.15/x64/lib/python3.11/site-packages (from typing-inspect->pyre-extensions->ax-platform==1.2.1->optimeo==1.3.2) (1.1.0)
[notice] A new release of pip is available: 26.1.1 -> 26.1.2
[notice] To update, run: pip install --upgrade pip
Here, we will define a Design of Experiment (DoE) to sample the search space before launching Bayesian Optimization.
Let’s create a parameters list, with their names, values and types
[3]:
from optimeo.doe import DesignOfExperiments
import plotly.io as pio
# pio.renderers.default = "notebook"
pio.renderers.default = "notebook_connected"
parameters = [
{'name': 'Temperature', 'type': 'integer', 'values': [0, 50]},
{'name': 'Pressure', 'type': 'float', 'values': [0, 50]},
{'name': 'Catalyst', 'type': 'categorical', 'values': ['A', 'B', 'C']}
]
doe = DesignOfExperiments(
# one of the following:
# 'Full Factorial', 'Sobol sequence', 'Fractional Factorial',
# 'Definitive Screening Design', 'Space Filling Latin Hypercube',
# 'Randomized Latin Hypercube', 'Optimal', 'Plackett-Burman',
# 'Box-Behnken' or 'Central Composite'
type='Sobol sequence',
parameters=parameters,
Nexp=20,
# 'Sobol sequence' supports **linear** constraints on the parameters
# meaning that "Temperature**2 + Pressure**2 <= 250" won't work
feature_constraints=["Temperature + 2*Pressure <= 250"]
)
pio.renderers['notebook_connected'].config = {'responsive': True}
Show a resume of the class:
[4]:
doe
[4]:
- Design of Experiments type: Sobol sequence
- Parameters:
{'name': 'Temperature', 'type': 'integer', 'values': [0, 50]}
{'name': 'Pressure', 'type': 'float', 'values': [0, 50]}
{'name': 'Catalyst', 'type': 'categorical', 'values': ['A', 'B', 'C'], 'encoder': None}
- Lows: {'Temperature': np.int64(0), 'Pressure': np.int64(0)}
- Highs: {'Temperature': np.int64(50), 'Pressure': np.int64(50)}
- If applicable:
- Randomize: True
- Number of Experiments: 20
- Order: 2
- Reduction: 2
- Design:
run_order Temperature Pressure Catalyst
0 16 50 5.218320 A
1 17 20 25.548852 B
2 5 9 18.072594 A
3 10 36 38.464908 B
4 9 28 20.323102 B
5 20 3 46.964456 A
6 11 18 9.022690 B
7 6 39 35.603802 A
8 19 43 14.247455 C
9 13 13 40.730886 B
10 18 2 2.891307 C
11 2 28 29.435028 A
12 4 34 11.383273 B
13 1 10 31.677955 C
14 14 24 24.309986 B
15 3 45 44.542839 A
16 15 47 23.411318 C
17 8 23 46.805607 B
18 12 11 9.743082 A
19 7 33 33.125945 C
Just the design:
[5]:
doe.design
[5]:
| run_order | Temperature | Pressure | Catalyst | |
|---|---|---|---|---|
| 0 | 16 | 50 | 5.218320 | A |
| 1 | 17 | 20 | 25.548852 | B |
| 2 | 5 | 9 | 18.072594 | A |
| 3 | 10 | 36 | 38.464908 | B |
| 4 | 9 | 28 | 20.323102 | B |
| 5 | 20 | 3 | 46.964456 | A |
| 6 | 11 | 18 | 9.022690 | B |
| 7 | 6 | 39 | 35.603802 | A |
| 8 | 19 | 43 | 14.247455 | C |
| 9 | 13 | 13 | 40.730886 | B |
| 10 | 18 | 2 | 2.891307 | C |
| 11 | 2 | 28 | 29.435028 | A |
| 12 | 4 | 34 | 11.383273 | B |
| 13 | 1 | 10 | 31.677955 | C |
| 14 | 14 | 24 | 24.309986 | B |
| 15 | 3 | 45 | 44.542839 | A |
| 16 | 15 | 47 | 23.411318 | C |
| 17 | 8 | 23 | 46.805607 | B |
| 18 | 12 | 11 | 9.743082 | A |
| 19 | 7 | 33 | 33.125945 | C |
Make a plot of the design:
[6]:
figs = doe.plot()
for fig in figs:
fig.show(config={'responsive': True})