# rick12000/confopt architecture

> Architecture diagram of the GitHub repository rick12000/confopt, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/rick12000/confopt
- Repository: https://github.com/rick12000/confopt

## Overview

ConfOpt is a Python hyperparameter-optimization library. A practitioner defines a search space and objective, runs ConformalTuner to evaluate configurations, then retrieves the best parameters and score. Its main search loop uses conformal acquisition and sampling, backed by quantile estimators and adaptive interval control; tracking and configuration utilities support trial state. The graph preserves README-described capabilities and source-indexed modules. Some implementation details were not sampled, so edges rely on the README or the indexed source references.

Main entry points: [`confopt/tuning.py`](https://github.com/rick12000/confopt/blob/main/confopt/tuning.py) (Conformal tuner), [`confopt/selection/conformalization.py`](https://github.com/rick12000/confopt/blob/main/confopt/selection/conformalization.py) (Conformal intervals), [`confopt/selection/acquisition.py`](https://github.com/rick12000/confopt/blob/main/confopt/selection/acquisition.py) (Acquisition searcher), [`confopt/selection/estimation.py`](https://github.com/rick12000/confopt/blob/main/confopt/selection/estimation.py) (Estimator tuning)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_search["Search workflow"]
  node_tuner["Conformal tuner<br/>[tuning.py]"]
  node_acquisition["Acquisition searcher<br/>[acquisition.py]"]
  node_bound["Bound samplers<br/>[bound_samplers.py]"]
  node_improvement["Improvement sampler"]
  node_thompson["Thompson sampler"]
  node_optimization["Optimization utilities<br/>[optimization.py]"]
end

subgraph group_models["Conformal models"]
  node_conformal["Conformal intervals"]
  node_adaptation["Coverage adaptation<br/>[adaptation.py]"]
  node_estimation["Estimator tuning<br/>[estimation.py]"]
  node_registry["Estimator registry"]
  node_quantile["Quantile estimators"]
  node_ensembles["Estimator ensembles<br/>[ensembling.py]"]
  node_preprocessing["Data preprocessing<br/>[preprocessing.py]"]
end

subgraph group_config["Configuration and sampling"]
  node_ranges["Parameter ranges<br/>[wrapping.py]"]
  node_candidate_sampling["Candidate sampling<br/>[sampling.py]"]
  node_encoding["Configuration encoding<br/>[encoding.py]"]
end

subgraph group_state["Trial state"]
  node_tracking["Trial tracking<br/>[tracking.py]"]
end

node_practitioner(("Practitioner"))
node_objective(("Objective function"))

node_practitioner -->|"configures and runs"| node_tuner
node_practitioner -->|"defines search space"| node_ranges
node_tuner -->|"evaluates configurations"| node_objective
node_tuner -->|"uses searcher"| node_acquisition
node_tuner -->|"uses sampler"| node_bound
node_tuner -->|"uses sampler"| node_thompson
node_tuner -->|"tracks trials"| node_tracking
node_tuner -->|"uses utilities"| node_optimization
node_tuner -->|"accepts ranges"| node_ranges
node_tuner -->|"returns best result"| node_practitioner
node_acquisition -->|"uses intervals"| node_conformal
node_acquisition -->|"dispatches sampling"| node_bound
node_acquisition -->|"dispatches sampling"| node_improvement
node_acquisition -->|"dispatches sampling"| node_thompson
node_acquisition -->|"uses estimators"| node_estimation
node_acquisition -->|"uses configuration"| node_registry
node_conformal -->|"tunes models"| node_estimation
node_conformal -->|"selects architecture"| node_registry
node_conformal -->|"splits data"| node_preprocessing
node_conformal -->|"uses bounds"| node_ranges
node_bound -->|"adapts coverage"| node_adaptation
node_bound -.->|"samples prediction bounds"| node_conformal
node_improvement -.->|"samples predictions"| node_conformal
node_thompson -.->|"samples predictions"| node_conformal
node_estimation -->|"builds estimators"| node_registry
node_estimation -->|"fits quantile models"| node_quantile
node_estimation -->|"fits ensembles"| node_ensembles
node_estimation -->|"samples configurations"| node_candidate_sampling
node_registry -->|"registers estimators"| node_quantile
node_registry -->|"registers ensembles"| node_ensembles
node_ensembles -->|"combines estimators"| node_quantile
node_candidate_sampling -->|"samples ranges"| node_ranges
node_tracking -->|"encodes configurations"| node_encoding
node_tracking -->|"generates candidates"| node_candidate_sampling

click node_ranges "https://github.com/rick12000/confopt/blob/main/confopt/wrapping.py"
click node_tuner "https://github.com/rick12000/confopt/blob/main/confopt/tuning.py"
click node_acquisition "https://github.com/rick12000/confopt/blob/main/confopt/selection/acquisition.py"
click node_bound "https://github.com/rick12000/confopt/blob/main/confopt/selection/sampling/bound_samplers.py"
click node_improvement "https://github.com/rick12000/confopt/blob/main/confopt/selection/sampling/expected_improvement_samplers.py"
click node_thompson "https://github.com/rick12000/confopt/blob/main/confopt/selection/sampling/thompson_samplers.py"
click node_conformal "https://github.com/rick12000/confopt/blob/main/confopt/selection/conformalization.py"
click node_adaptation "https://github.com/rick12000/confopt/blob/main/confopt/selection/adaptation.py"
click node_estimation "https://github.com/rick12000/confopt/blob/main/confopt/selection/estimation.py"
click node_registry "https://github.com/rick12000/confopt/blob/main/confopt/selection/estimator_configuration.py"
click node_quantile "https://github.com/rick12000/confopt/blob/main/confopt/selection/estimators/quantile_estimation.py"
click node_ensembles "https://github.com/rick12000/confopt/blob/main/confopt/selection/estimators/ensembling.py"
click node_candidate_sampling "https://github.com/rick12000/confopt/blob/main/confopt/utils/configurations/sampling.py"
click node_encoding "https://github.com/rick12000/confopt/blob/main/confopt/utils/configurations/encoding.py"
click node_tracking "https://github.com/rick12000/confopt/blob/main/confopt/utils/tracking.py"
click node_optimization "https://github.com/rick12000/confopt/blob/main/confopt/utils/optimization.py"
click node_preprocessing "https://github.com/rick12000/confopt/blob/main/confopt/utils/preprocessing.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_tuner,node_acquisition,node_bound,node_improvement,node_thompson,node_optimization toneBlue
class node_conformal,node_adaptation,node_estimation,node_registry,node_quantile,node_ensembles,node_preprocessing toneAmber
class node_ranges,node_candidate_sampling,node_encoding toneMint
class node_tracking toneRose
class node_practitioner,node_objective toneIndigo
```

## Components

### Search workflow

- [Conformal tuner](https://github.com/rick12000/confopt/blob/main/confopt/tuning.py): `confopt/tuning.py`
- [Acquisition searcher](https://github.com/rick12000/confopt/blob/main/confopt/selection/acquisition.py): `confopt/selection/acquisition.py`
- [Bound samplers](https://github.com/rick12000/confopt/blob/main/confopt/selection/sampling/bound_samplers.py): `confopt/selection/sampling/bound_samplers.py`
- [Improvement sampler](https://github.com/rick12000/confopt/blob/main/confopt/selection/sampling/expected_improvement_samplers.py): `confopt/selection/sampling/expected_improvement_samplers.py`
- [Thompson sampler](https://github.com/rick12000/confopt/blob/main/confopt/selection/sampling/thompson_samplers.py): `confopt/selection/sampling/thompson_samplers.py`
- [Optimization utilities](https://github.com/rick12000/confopt/blob/main/confopt/utils/optimization.py): `confopt/utils/optimization.py`

### Conformal models

- [Conformal intervals](https://github.com/rick12000/confopt/blob/main/confopt/selection/conformalization.py): `confopt/selection/conformalization.py`
- [Coverage adaptation](https://github.com/rick12000/confopt/blob/main/confopt/selection/adaptation.py): `confopt/selection/adaptation.py`
- [Estimator tuning](https://github.com/rick12000/confopt/blob/main/confopt/selection/estimation.py): `confopt/selection/estimation.py`
- [Estimator registry](https://github.com/rick12000/confopt/blob/main/confopt/selection/estimator_configuration.py): `confopt/selection/estimator_configuration.py`
- [Quantile estimators](https://github.com/rick12000/confopt/blob/main/confopt/selection/estimators/quantile_estimation.py): `confopt/selection/estimators/quantile_estimation.py`
- [Estimator ensembles](https://github.com/rick12000/confopt/blob/main/confopt/selection/estimators/ensembling.py): `confopt/selection/estimators/ensembling.py`
- [Data preprocessing](https://github.com/rick12000/confopt/blob/main/confopt/utils/preprocessing.py): `confopt/utils/preprocessing.py`

### Configuration and sampling

- [Parameter ranges](https://github.com/rick12000/confopt/blob/main/confopt/wrapping.py): `confopt/wrapping.py`
- [Candidate sampling](https://github.com/rick12000/confopt/blob/main/confopt/utils/configurations/sampling.py): `confopt/utils/configurations/sampling.py`
- [Configuration encoding](https://github.com/rick12000/confopt/blob/main/confopt/utils/configurations/encoding.py): `confopt/utils/configurations/encoding.py`

### Trial state

- [Trial tracking](https://github.com/rick12000/confopt/blob/main/confopt/utils/tracking.py): `confopt/utils/tracking.py`

### Other components

- **Practitioner**
- **Objective function**

## Connections

- Practitioner → Conformal tuner: configures and runs (evidence: `README.md`)
- Practitioner → Parameter ranges: defines search space (evidence: `README.md`)
- Conformal tuner → Objective function: evaluates configurations (evidence: `README.md`)
- Conformal tuner → Acquisition searcher: uses searcher (evidence: `confopt/tuning.py`)
- Conformal tuner → Bound samplers: uses sampler (evidence: `confopt/tuning.py`)
- Conformal tuner → Thompson sampler: uses sampler (evidence: `confopt/tuning.py`)
- Conformal tuner → Trial tracking: tracks trials (evidence: `confopt/tuning.py`)
- Conformal tuner → Optimization utilities: uses utilities (evidence: `confopt/tuning.py`)
- Conformal tuner → Parameter ranges: accepts ranges (evidence: `confopt/tuning.py`)
- Conformal tuner → Practitioner: returns best result (evidence: `README.md`)
- Acquisition searcher → Conformal intervals: uses intervals (evidence: `confopt/selection/acquisition.py`)
- Acquisition searcher → Bound samplers: dispatches sampling (evidence: `confopt/selection/acquisition.py`)
- Acquisition searcher → Improvement sampler: dispatches sampling (evidence: `confopt/selection/acquisition.py`)
- Acquisition searcher → Thompson sampler: dispatches sampling (evidence: `confopt/selection/acquisition.py`)
- Acquisition searcher → Estimator tuning: uses estimators (evidence: `confopt/selection/acquisition.py`)
- Acquisition searcher → Estimator registry: uses configuration (evidence: `confopt/selection/acquisition.py`)
- Conformal intervals → Estimator tuning: tunes models (evidence: `confopt/selection/conformalization.py`)
- Conformal intervals → Estimator registry: selects architecture (evidence: `confopt/selection/conformalization.py`)
- Conformal intervals → Data preprocessing: splits data (evidence: `confopt/selection/conformalization.py`)
- Conformal intervals → Parameter ranges: uses bounds (evidence: `confopt/selection/conformalization.py`)
- Bound samplers → Coverage adaptation: adapts coverage (evidence: `confopt/selection/sampling/bound_samplers.py`)
- Bound samplers → Conformal intervals: samples prediction bounds
- Improvement sampler → Conformal intervals: samples predictions
- Thompson sampler → Conformal intervals: samples predictions
- Estimator tuning → Estimator registry: builds estimators (evidence: `confopt/selection/estimation.py`)
- Estimator tuning → Quantile estimators: fits quantile models (evidence: `confopt/selection/estimation.py`)
- Estimator tuning → Estimator ensembles: fits ensembles (evidence: `confopt/selection/estimation.py`)
- Estimator tuning → Candidate sampling: samples configurations (evidence: `confopt/selection/estimation.py`)
- Estimator registry → Quantile estimators: registers estimators (evidence: `confopt/selection/estimator_configuration.py`)
- Estimator registry → Estimator ensembles: registers ensembles (evidence: `confopt/selection/estimator_configuration.py`)
- Estimator ensembles → Quantile estimators: combines estimators (evidence: `confopt/selection/estimators/ensembling.py`)
- Candidate sampling → Parameter ranges: samples ranges (evidence: `confopt/utils/configurations/sampling.py`)
- Trial tracking → Configuration encoding: encodes configurations (evidence: `confopt/utils/tracking.py`)
- Trial tracking → Candidate sampling: generates candidates (evidence: `confopt/utils/tracking.py`)
