# ninonarido/presana architecture

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

- Interactive diagram: https://gitdiagram.com/ninonarido/presana
- Repository: https://github.com/ninonarido/presana

## Overview

PRESANA is a collection of independent analysis scripts and notebooks, not a single application. Its user-to-result workflows are initiated by running a particular analysis: examples include simulating an M/M/1 queue, fitting a sales time-series model, solving an optimization problem, or analyzing a network. The graph preserves these distinct topics, including notebook-led capabilities indicated by the file names. Source excerpts establish the queue simulation, time-series, LP, and network workflows; relationships among unsampled notebooks are not inferred.

Main entry points: [`qmm1.py`](https://github.com/ninonarido/presana/blob/main/qmm1.py) (Queue Simulator), [`networkfun.py`](https://github.com/ninonarido/presana/blob/main/networkfun.py) (Network Analysis), [`TS.py`](https://github.com/ninonarido/presana/blob/main/TS.py) (Sales Forecasting), [`LP.py`](https://github.com/ninonarido/presana/blob/main/LP.py) (Linear Program)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_queue["Queue Simulation"]
  node_simulator["Queue Simulator<br/>[qmm1.py]"]
  node_job["Job Timing<br/>[qmm1.py]"]
  node_queue_system["Queue System<br/>[qmm1.py]"]
  node_delay_analysis["Delay Analysis<br/>[qmm1.py]"]
  node_delay_plot["Delay Plots<br/>[qmm1.py]"]
end

subgraph group_analytics["Data Analysis"]
  node_sales_forecast["Sales Forecasting<br/>[TS.py]"]
  node_sales_data["Superstore Data<br/>[Superstore.xls]"]
  node_network_analysis["Network Analysis<br/>[networkfun.py]"]
  node_network_nodes["Network Nodes<br/>[nodes.tsv]"]
  node_network_edges["Network Edges<br/>[edges.tsv]"]
end

subgraph group_optimization["Optimization"]
  node_lp_example["Linear Program<br/>[LP.py]"]
end

subgraph group_notebooks["Notebook Studies"]
  node_decision_theory["Decision Theory"]
  node_integer_programming["Integer Programming<br/>[ILP.ipynb]"]
  node_network_lp["Network LP<br/>[NetworkLP.ipynb]"]
  node_sensitivity["Sensitivity Analysis"]
  node_simplex["Simplex Study<br/>[simplex.ipynb]"]
  node_translation["Attention NMT<br/>[NMT_ATTN_1.ipynb]"]
  node_fruit_model["Fruit Classification"]
end

node_user(("Analyst"))
node_solver["PuLP CBC Solver"]

node_user -->|"runs"| node_simulator
node_simulator -->|"creates"| node_job
node_simulator -->|"dispatches jobs"| node_queue_system
node_simulator -->|"returns jobs"| node_delay_analysis
node_delay_analysis -->|"plots delays"| node_delay_plot
node_user -->|"runs"| node_sales_forecast
node_sales_forecast -->|"reads"| node_sales_data
node_user -->|"runs"| node_network_analysis
node_network_analysis -->|"reads"| node_network_nodes
node_network_analysis -->|"reads"| node_network_edges
node_user -->|"runs"| node_lp_example
node_lp_example -->|"solves with"| node_solver

click node_simulator "https://github.com/ninonarido/presana/blob/main/qmm1.py"
click node_job "https://github.com/ninonarido/presana/blob/main/qmm1.py"
click node_queue_system "https://github.com/ninonarido/presana/blob/main/qmm1.py"
click node_delay_analysis "https://github.com/ninonarido/presana/blob/main/qmm1.py"
click node_delay_plot "https://github.com/ninonarido/presana/blob/main/qmm1.py"
click node_sales_forecast "https://github.com/ninonarido/presana/blob/main/TS.py"
click node_sales_data "https://github.com/ninonarido/presana/blob/main/data/Superstore.xls"
click node_network_analysis "https://github.com/ninonarido/presana/blob/main/networkfun.py"
click node_network_nodes "https://github.com/ninonarido/presana/blob/main/data/nodes.tsv"
click node_network_edges "https://github.com/ninonarido/presana/blob/main/data/edges.tsv"
click node_lp_example "https://github.com/ninonarido/presana/blob/main/LP.py"
click node_decision_theory "https://github.com/ninonarido/presana/blob/main/DecisionTheory.ipynb"
click node_integer_programming "https://github.com/ninonarido/presana/blob/main/ILP.ipynb"
click node_network_lp "https://github.com/ninonarido/presana/blob/main/NetworkLP.ipynb"
click node_sensitivity "https://github.com/ninonarido/presana/blob/main/Sensitivity%20Analysis%20in%20Python.ipynb"
click node_simplex "https://github.com/ninonarido/presana/blob/main/simplex.ipynb"
click node_translation "https://github.com/ninonarido/presana/blob/main/NMT_ATTN_1.ipynb"
click node_fruit_model "https://github.com/ninonarido/presana/blob/main/Fruit_Classification_TensorFlow_Model_for_Android_App.ipynb"

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_simulator,node_job,node_queue_system,node_delay_analysis,node_delay_plot toneBlue
class node_sales_forecast,node_sales_data,node_network_analysis,node_network_nodes,node_network_edges toneAmber
class node_lp_example toneMint
class node_decision_theory,node_integer_programming,node_network_lp,node_sensitivity,node_simplex,node_translation,node_fruit_model toneRose
class node_user,node_solver toneIndigo
```

## Components

### Queue Simulation

- [Queue Simulator](https://github.com/ninonarido/presana/blob/main/qmm1.py): `qmm1.py`
- [Job Timing](https://github.com/ninonarido/presana/blob/main/qmm1.py): `qmm1.py`
- [Queue System](https://github.com/ninonarido/presana/blob/main/qmm1.py): `qmm1.py`
- [Delay Analysis](https://github.com/ninonarido/presana/blob/main/qmm1.py): `qmm1.py`
- [Delay Plots](https://github.com/ninonarido/presana/blob/main/qmm1.py): `qmm1.py`

### Data Analysis

- [Sales Forecasting](https://github.com/ninonarido/presana/blob/main/TS.py): `TS.py`
- [Superstore Data](https://github.com/ninonarido/presana/blob/main/data/Superstore.xls): `data/Superstore.xls`
- [Network Analysis](https://github.com/ninonarido/presana/blob/main/networkfun.py): `networkfun.py`
- [Network Nodes](https://github.com/ninonarido/presana/blob/main/data/nodes.tsv): `data/nodes.tsv`
- [Network Edges](https://github.com/ninonarido/presana/blob/main/data/edges.tsv): `data/edges.tsv`

### Optimization

- [Linear Program](https://github.com/ninonarido/presana/blob/main/LP.py): `LP.py`

### Notebook Studies

- [Decision Theory](https://github.com/ninonarido/presana/blob/main/DecisionTheory.ipynb): `DecisionTheory.ipynb`
- [Integer Programming](https://github.com/ninonarido/presana/blob/main/ILP.ipynb): `ILP.ipynb`
- [Network LP](https://github.com/ninonarido/presana/blob/main/NetworkLP.ipynb): `NetworkLP.ipynb`
- [Sensitivity Analysis](https://github.com/ninonarido/presana/blob/main/Sensitivity%20Analysis%20in%20Python.ipynb): `Sensitivity Analysis in Python.ipynb`
- [Simplex Study](https://github.com/ninonarido/presana/blob/main/simplex.ipynb): `simplex.ipynb`
- [Attention NMT](https://github.com/ninonarido/presana/blob/main/NMT_ATTN_1.ipynb): `NMT_ATTN_1.ipynb`
- [Fruit Classification](https://github.com/ninonarido/presana/blob/main/Fruit_Classification_TensorFlow_Model_for_Android_App.ipynb): `Fruit_Classification_TensorFlow_Model_for_Android_App.ipynb`

### Other components

- **Analyst**
- **PuLP CBC Solver**

## Connections

- Analyst → Queue Simulator: runs (evidence: `qmm1.py`)
- Queue Simulator → Job Timing: creates (evidence: `qmm1.py`)
- Queue Simulator → Queue System: dispatches jobs (evidence: `qmm1.py`)
- Queue Simulator → Delay Analysis: returns jobs (evidence: `qmm1.py`)
- Delay Analysis → Delay Plots: plots delays (evidence: `qmm1.py`)
- Analyst → Sales Forecasting: runs (evidence: `TS.py`)
- Sales Forecasting → Superstore Data: reads (evidence: `TS.py`)
- Analyst → Network Analysis: runs (evidence: `networkfun.py`)
- Network Analysis → Network Nodes: reads (evidence: `networkfun.py`)
- Network Analysis → Network Edges: reads (evidence: `networkfun.py`)
- Analyst → Linear Program: runs (evidence: `LP.py`)
- Linear Program → PuLP CBC Solver: solves with (evidence: `LP.py`)
