# biswajyoti-nath/constraint-interactions-symbolic-regression architecture

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

- Interactive diagram: https://gitdiagram.com/biswajyoti-nath/constraint-interactions-symbolic-regression
- Repository: https://github.com/biswajyoti-nath/constraint-interactions-symbolic-regression

## Overview

The product is a research framework that compares a theoretical constraint-interaction metric with empirical symbolic-regression speedups. The principal workflow runs metric, experiment, then analysis phases. The graph reflects the README and sampled modules; exact internal wiring for unsampled diagnostics and some experiment details is therefore shown only where documented.

Main entry points: [`main.py`](https://github.com/biswajyoti-nath/constraint-interactions-symbolic-regression/blob/master/main.py) (Phase orchestrator), [`src/analysis.py`](https://github.com/biswajyoti-nath/constraint-interactions-symbolic-regression/blob/master/src/analysis.py) (Statistical analysis), [`src/experiments.py`](https://github.com/biswajyoti-nath/constraint-interactions-symbolic-regression/blob/master/src/experiments.py) (Benchmark runner), [`src/metric.py`](https://github.com/biswajyoti-nath/constraint-interactions-symbolic-regression/blob/master/src/metric.py) (Density and interaction)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_control["Pipeline control"]
  node_cli["Phase orchestrator<br/>[main.py]"]
end

subgraph group_theory["Metric estimation"]
  node_constraints["Constraint checks<br/>[constraints.py]"]
  node_generator["Expression generator<br/>[expr_generator.py]"]
  node_metric["Density and interaction<br/>[metric.py]"]
end

subgraph group_empirical["SR experiments"]
  node_experiments["Benchmark runner<br/>[experiments.py]"]
end

subgraph group_analysis["Analysis and diagnostics"]
  node_analysis["Statistical analysis<br/>[analysis.py]"]
  node_ablation["Monte Carlo ablation<br/>[mc_ablation.py]"]
  node_failure["Failure predictor"]
  node_audit["Distribution audit"]
end

node_researcher(("Researcher"))
node_config["Configuration<br/>[config.yaml]"]
node_pysr["PySR engine"]
node_datasets[("Benchmark datasets")]
node_outputs["Analysis outputs"]

node_researcher -->|"selects phase"| node_cli
node_cli -->|"reads settings"| node_config
node_cli -->|"builds checks"| node_constraints
node_cli -->|"generates expressions"| node_generator
node_cli -->|"computes metric"| node_metric
node_cli -->|"runs benchmarks"| node_experiments
node_cli -->|"runs analysis"| node_analysis
node_metric -->|"evaluates expressions"| node_constraints
node_metric -->|"provides interaction matrix"| node_analysis
node_experiments -->|"checks compliance"| node_constraints
node_experiments -->|"loads benchmark data"| node_datasets
node_experiments -->|"runs regression"| node_pysr
node_experiments -->|"provides experiment results"| node_analysis
node_analysis -->|"writes summaries and figures"| node_outputs
node_ablation -.->|"sweeps sample size"| node_metric
node_failure -.->|"predicts failure modes"| node_analysis
node_audit -.->|"audits distributions"| node_analysis

click node_config "https://github.com/biswajyoti-nath/constraint-interactions-symbolic-regression/blob/master/config.yaml"
click node_cli "https://github.com/biswajyoti-nath/constraint-interactions-symbolic-regression/blob/master/main.py"
click node_constraints "https://github.com/biswajyoti-nath/constraint-interactions-symbolic-regression/blob/master/src/constraints.py"
click node_generator "https://github.com/biswajyoti-nath/constraint-interactions-symbolic-regression/blob/master/src/expr_generator.py"
click node_metric "https://github.com/biswajyoti-nath/constraint-interactions-symbolic-regression/blob/master/src/metric.py"
click node_experiments "https://github.com/biswajyoti-nath/constraint-interactions-symbolic-regression/blob/master/src/experiments.py"
click node_analysis "https://github.com/biswajyoti-nath/constraint-interactions-symbolic-regression/blob/master/src/analysis.py"
click node_ablation "https://github.com/biswajyoti-nath/constraint-interactions-symbolic-regression/blob/master/scripts/mc_ablation.py"
click node_failure "https://github.com/biswajyoti-nath/constraint-interactions-symbolic-regression/blob/master/scripts/failure_mode_predictor.py"
click node_audit "https://github.com/biswajyoti-nath/constraint-interactions-symbolic-regression/blob/master/scripts/distribution_audit.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_cli toneBlue
class node_constraints,node_generator,node_metric,node_datasets toneAmber
class node_experiments toneMint
class node_analysis,node_ablation,node_failure,node_audit toneRose
class node_researcher,node_pysr,node_outputs toneIndigo
class node_config toneTeal
```

## Components

### Pipeline control

- [Phase orchestrator](https://github.com/biswajyoti-nath/constraint-interactions-symbolic-regression/blob/master/main.py): `main.py`

### Metric estimation

- [Constraint checks](https://github.com/biswajyoti-nath/constraint-interactions-symbolic-regression/blob/master/src/constraints.py): `src/constraints.py`
- [Expression generator](https://github.com/biswajyoti-nath/constraint-interactions-symbolic-regression/blob/master/src/expr_generator.py): `src/expr_generator.py`
- [Density and interaction](https://github.com/biswajyoti-nath/constraint-interactions-symbolic-regression/blob/master/src/metric.py): `src/metric.py`

### SR experiments

- [Benchmark runner](https://github.com/biswajyoti-nath/constraint-interactions-symbolic-regression/blob/master/src/experiments.py): `src/experiments.py`

### Analysis and diagnostics

- [Statistical analysis](https://github.com/biswajyoti-nath/constraint-interactions-symbolic-regression/blob/master/src/analysis.py): `src/analysis.py`
- [Monte Carlo ablation](https://github.com/biswajyoti-nath/constraint-interactions-symbolic-regression/blob/master/scripts/mc_ablation.py): `scripts/mc_ablation.py`
- [Failure predictor](https://github.com/biswajyoti-nath/constraint-interactions-symbolic-regression/blob/master/scripts/failure_mode_predictor.py): `scripts/failure_mode_predictor.py`
- [Distribution audit](https://github.com/biswajyoti-nath/constraint-interactions-symbolic-regression/blob/master/scripts/distribution_audit.py): `scripts/distribution_audit.py`

### Other components

- **Researcher**
- [Configuration](https://github.com/biswajyoti-nath/constraint-interactions-symbolic-regression/blob/master/config.yaml): `config.yaml`
- **PySR engine**
- **Benchmark datasets**
- **Analysis outputs**

## Connections

- Researcher → Phase orchestrator: selects phase
- Phase orchestrator → Configuration: reads settings
- Phase orchestrator → Constraint checks: builds checks
- Phase orchestrator → Expression generator: generates expressions
- Phase orchestrator → Density and interaction: computes metric
- Phase orchestrator → Benchmark runner: runs benchmarks
- Phase orchestrator → Statistical analysis: runs analysis
- Density and interaction → Constraint checks: evaluates expressions
- Density and interaction → Statistical analysis: provides interaction matrix
- Benchmark runner → Constraint checks: checks compliance
- Benchmark runner → Benchmark datasets: loads benchmark data
- Benchmark runner → PySR engine: runs regression
- Benchmark runner → Statistical analysis: provides experiment results
- Statistical analysis → Analysis outputs: writes summaries and figures
- Monte Carlo ablation → Density and interaction: sweeps sample size
- Failure predictor → Statistical analysis: predicts failure modes
- Distribution audit → Statistical analysis: audits distributions
