# Tiny descent graph (5 points, 2 features)

This is a fully “capturable” example where we can visualize the entire directed greedy-descent structure.

## Dataset

CSV: `padic_lr_tiny5_dataset.csv`

It has 5 points with columns `x1`, `x2`, `y` (and an `id`).

## Nodes and edges

- Feature dimension is `d=2`, so a hyperplane is determined by `d+1=3` points.
- A **node** is an **ordered** triple of distinct point ids `(i,j,k)`. With 5 points this gives `5P3 = 60` nodes.
- Two nodes are neighbors if you can **change exactly one** of the three ids to a point not already in the triple.
- Loss here is `p`-adic `L∞` with `p=3` (see `code/padic_linear_regression.py`).
- From each node we draw one arrow to the neighbor with the **largest loss drop** (if any).

## Minima highlighting

- **Global minima** (lowest loss in the whole graph) are drawn as **red stars**.
- **Local minima** (no improving neighbor, so no outgoing arrow) are drawn as **orange circles**.
- All other nodes are **blue circles**.

## Figure

![tiny best-drop graph](padic_lr_tiny5_bestdrop_linf.png)

Node table (loss + best-neighbor pointer): `padic_lr_tiny5_bestdrop_linf_nodes.csv`

