# twricks/yquantum-2026-vaoa-vs-dqi architecture

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

- Interactive diagram: https://gitdiagram.com/twricks/yquantum-2026-vaoa-vs-dqi
- Repository: https://github.com/twricks/yquantum-2026-vaoa-vs-dqi

## Overview

This repository compares classical ILP, DQI, and QAOA methods for P&C insurance package optimization. The main workflow loads insurance instance data, solves a classical baseline, runs quantum approaches package by package, and records results for comparison. The README documents the DQI parity-check and decoding stages and the QAOA variational loop; sampled excerpts confirm key model, execution, and evaluation responsibilities. Some internal wiring is documented rather than fully visible in the partial source excerpts, so uncertain links are omitted.

Main entry points: [`Challenge/Classical/classical.py`](https://github.com/twricks/yquantum-2026-vaoa-vs-dqi/blob/main/Challenge/Classical/classical.py) (ILP Solver), [`code_examples/src/insurance_model.py`](https://github.com/twricks/yquantum-2026-vaoa-vs-dqi/blob/main/code_examples/src/insurance_model.py) (Bundling Model), [`Challenge/DQI/dqi.py`](https://github.com/twricks/yquantum-2026-vaoa-vs-dqi/blob/main/Challenge/DQI/dqi.py) (Circuit Execution), [`Challenge/QAOA/qaoa.py`](https://github.com/twricks/yquantum-2026-vaoa-vs-dqi/blob/main/Challenge/QAOA/qaoa.py) (QAOA Optimization)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_model["Insurance Model"]
  node_instance_data["Instance CSV Data"]
  node_insurance_model["Bundling Model<br/>[insurance_model.py]"]
end

subgraph group_classical["Classical Baseline"]
  node_classical_solver["ILP Solver<br/>[classical.py]"]
  node_baseline_results["Baseline Results"]
end

subgraph group_dqi["DQI Approach"]
  node_dqi_pipeline["Parity Checks<br/>[dqi.py]"]
  node_dqi_circuit["DQI Circuit<br/>[dqi.py]"]
  node_dqi_execution["Circuit Execution<br/>[dqi.py]"]
  node_dqi_decode["Post-select and BP1<br/>[dqi.py]"]
  node_dqi_metrics["Run Metrics<br/>[dqi.py]"]
  node_dqi_results["DQI Results"]
end

subgraph group_qaoa["QAOA Approach"]
  node_qaoa_qubo["Package QUBO<br/>[qaoa.py]"]
  node_qaoa_loop["QAOA Optimization<br/>[qaoa.py]"]
  node_qaoa_execution["Circuit Execution<br/>[qaoa.py]"]
  node_qaoa_results["QAOA Results"]
end

node_analyst(("Experiment Runner"))
node_classical_backend["PuLP / CBC"]
node_nexus["Quantinuum Nexus"]
node_selene["Selene Emulator"]

node_analyst -->|"runs baseline"| node_classical_solver
node_analyst -->|"runs DQI"| node_dqi_pipeline
node_analyst -->|"runs QAOA"| node_qaoa_qubo
node_instance_data -->|"loads instance"| node_insurance_model
node_classical_solver -->|"loads and solves"| node_insurance_model
node_classical_solver -->|"solves ILP"| node_classical_backend
node_classical_solver -->|"writes baseline"| node_baseline_results
node_insurance_model -->|"provides problem"| node_dqi_pipeline
node_dqi_pipeline -->|"builds checks"| node_dqi_circuit
node_dqi_circuit -->|"provides circuits"| node_dqi_execution
node_dqi_execution -->|"submits circuits"| node_nexus
node_dqi_execution -->|"returns measurements"| node_dqi_decode
node_dqi_decode -->|"evaluates solutions"| node_dqi_metrics
node_dqi_metrics -->|"writes results"| node_dqi_results
node_insurance_model -->|"provides problem"| node_qaoa_qubo
node_qaoa_qubo -->|"provides QUBO"| node_qaoa_loop
node_qaoa_loop -->|"evaluates parameters"| node_qaoa_execution
node_qaoa_execution -->|"runs circuits"| node_selene
node_qaoa_loop -->|"writes results"| node_qaoa_results
node_baseline_results -->|"adds comparison"| node_qaoa_results

click node_instance_data "https://github.com/twricks/yquantum-2026-vaoa-vs-dqi/tree/main/docs/data/YQH26_data"
click node_insurance_model "https://github.com/twricks/yquantum-2026-vaoa-vs-dqi/blob/main/code_examples/src/insurance_model.py"
click node_classical_solver "https://github.com/twricks/yquantum-2026-vaoa-vs-dqi/blob/main/Challenge/Classical/classical.py"
click node_baseline_results "https://github.com/twricks/yquantum-2026-vaoa-vs-dqi/blob/main/Challenge/Classical/output/classical_baseline.json"
click node_dqi_pipeline "https://github.com/twricks/yquantum-2026-vaoa-vs-dqi/blob/main/Challenge/DQI/dqi.py"
click node_dqi_circuit "https://github.com/twricks/yquantum-2026-vaoa-vs-dqi/blob/main/Challenge/DQI/dqi.py"
click node_dqi_execution "https://github.com/twricks/yquantum-2026-vaoa-vs-dqi/blob/main/Challenge/DQI/dqi.py"
click node_dqi_decode "https://github.com/twricks/yquantum-2026-vaoa-vs-dqi/blob/main/Challenge/DQI/dqi.py"
click node_dqi_metrics "https://github.com/twricks/yquantum-2026-vaoa-vs-dqi/blob/main/Challenge/DQI/dqi.py"
click node_dqi_results "https://github.com/twricks/yquantum-2026-vaoa-vs-dqi/tree/main/Challenge/DQI/output"
click node_qaoa_qubo "https://github.com/twricks/yquantum-2026-vaoa-vs-dqi/blob/main/Challenge/QAOA/qaoa.py"
click node_qaoa_loop "https://github.com/twricks/yquantum-2026-vaoa-vs-dqi/blob/main/Challenge/QAOA/qaoa.py"
click node_qaoa_execution "https://github.com/twricks/yquantum-2026-vaoa-vs-dqi/blob/main/Challenge/QAOA/qaoa.py"
click node_qaoa_results "https://github.com/twricks/yquantum-2026-vaoa-vs-dqi/tree/main/Challenge/QAOA/output"

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_instance_data,node_insurance_model toneBlue
class node_classical_solver,node_baseline_results toneAmber
class node_dqi_pipeline,node_dqi_circuit,node_dqi_execution,node_dqi_decode,node_dqi_metrics,node_dqi_results toneMint
class node_qaoa_qubo,node_qaoa_loop,node_qaoa_execution,node_qaoa_results toneRose
class node_analyst,node_classical_backend,node_nexus,node_selene toneIndigo
```

## Components

### Insurance Model

- [Instance CSV Data](https://github.com/twricks/yquantum-2026-vaoa-vs-dqi/tree/main/docs/data/YQH26_data): `docs/data/YQH26_data`
- [Bundling Model](https://github.com/twricks/yquantum-2026-vaoa-vs-dqi/blob/main/code_examples/src/insurance_model.py): `code_examples/src/insurance_model.py`

### Classical Baseline

- [ILP Solver](https://github.com/twricks/yquantum-2026-vaoa-vs-dqi/blob/main/Challenge/Classical/classical.py): `Challenge/Classical/classical.py`
- [Baseline Results](https://github.com/twricks/yquantum-2026-vaoa-vs-dqi/blob/main/Challenge/Classical/output/classical_baseline.json): `Challenge/Classical/output/classical_baseline.json`

### DQI Approach

- [Parity Checks](https://github.com/twricks/yquantum-2026-vaoa-vs-dqi/blob/main/Challenge/DQI/dqi.py): `Challenge/DQI/dqi.py`
- [DQI Circuit](https://github.com/twricks/yquantum-2026-vaoa-vs-dqi/blob/main/Challenge/DQI/dqi.py): `Challenge/DQI/dqi.py`
- [Circuit Execution](https://github.com/twricks/yquantum-2026-vaoa-vs-dqi/blob/main/Challenge/DQI/dqi.py): `Challenge/DQI/dqi.py`
- [Post-select and BP1](https://github.com/twricks/yquantum-2026-vaoa-vs-dqi/blob/main/Challenge/DQI/dqi.py): `Challenge/DQI/dqi.py`
- [Run Metrics](https://github.com/twricks/yquantum-2026-vaoa-vs-dqi/blob/main/Challenge/DQI/dqi.py): `Challenge/DQI/dqi.py`
- [DQI Results](https://github.com/twricks/yquantum-2026-vaoa-vs-dqi/tree/main/Challenge/DQI/output): `Challenge/DQI/output`

### QAOA Approach

- [Package QUBO](https://github.com/twricks/yquantum-2026-vaoa-vs-dqi/blob/main/Challenge/QAOA/qaoa.py): `Challenge/QAOA/qaoa.py`
- [QAOA Optimization](https://github.com/twricks/yquantum-2026-vaoa-vs-dqi/blob/main/Challenge/QAOA/qaoa.py): `Challenge/QAOA/qaoa.py`
- [Circuit Execution](https://github.com/twricks/yquantum-2026-vaoa-vs-dqi/blob/main/Challenge/QAOA/qaoa.py): `Challenge/QAOA/qaoa.py`
- [QAOA Results](https://github.com/twricks/yquantum-2026-vaoa-vs-dqi/tree/main/Challenge/QAOA/output): `Challenge/QAOA/output`

### Other components

- **Experiment Runner**
- **PuLP / CBC**
- **Quantinuum Nexus**
- **Selene Emulator**

## Connections

- Experiment Runner → ILP Solver: runs baseline
- Experiment Runner → Parity Checks: runs DQI
- Experiment Runner → Package QUBO: runs QAOA
- Instance CSV Data → Bundling Model: loads instance
- ILP Solver → Bundling Model: loads and solves
- ILP Solver → PuLP / CBC: solves ILP
- ILP Solver → Baseline Results: writes baseline
- Bundling Model → Parity Checks: provides problem
- Parity Checks → DQI Circuit: builds checks
- DQI Circuit → Circuit Execution: provides circuits
- Circuit Execution → Quantinuum Nexus: submits circuits
- Circuit Execution → Post-select and BP1: returns measurements
- Post-select and BP1 → Run Metrics: evaluates solutions
- Run Metrics → DQI Results: writes results
- Bundling Model → Package QUBO: provides problem
- Package QUBO → QAOA Optimization: provides QUBO
- QAOA Optimization → Circuit Execution: evaluates parameters
- Circuit Execution → Selene Emulator: runs circuits
- QAOA Optimization → QAOA Results: writes results
- Baseline Results → QAOA Results: adds comparison
