docs: add readme

This commit is contained in:
Kristofers Solo 2025-05-08 11:12:33 +03:00
parent eafab73c6a
commit 18899dc163
Signed by: kristoferssolo
GPG Key ID: 74FF8144483D82C8

View File

@ -0,0 +1,87 @@
# Grovers Search Visualizer
A tiny Python package that steps through Grovers Search algorithm and shows you, after each iteration:
- A barchart of amplitudes (or probabilities)
- A sinecurve of successprobability vs. iteration
- A geometric "rotation" on the unit circle
Choose between a Matplotlib-based CLI or an optional DearPyGui GUI (WIP).
---
![Demo of Grovers Visualizer](media/demo.gif)
---
## Installation
### Via [pipx](https://pipx.pypa.io/stable/installation/)
Basic (CLI only):
```bash
pipx install grovers-visualizer
grovers-visualizer 1111
```
With the optional DearPyGui UI (WIP):
```bash
pipx "grovers-visualizer[ui]"
grovers-visualizer --ui
```
### Via [uvx](https://docs.astral.sh/uv/guides/tools/)
Basic (CLI only):
```bash
uvx grovers-visualizer 1111
```
With the optional UI extra:
```bash
uvx "grovers-visualizer[ui]" --ui
```
---
## Usage
### CLI Mode
Flags:
`-t, --target`
Target bitstring (e.g. `010`). Length determines number of qubits.
`-s, --speed`
Delay between iterations (seconds). Default `0.5`.
`-i, --iterations`
Max iterations; `0` means use the optimal $\lfloor\frac\pi4\sqrt{2^n}\rfloor$.
`--ui`
Launch the optional DearPyGui GUI (requires the `[ui]` extra) (WIP).
### GUI Mode (WIP)
If you installed with `"[ui]"`, launch the DearPyGui window:
```
grovers-visualizer --ui
```
In the UI you can:
- Set number of qubits
- Enter the target bitstring
- Choose max iterations or leave at 0 for optimal
- Control the animation speed
Hit **Start** to watch the bar chart, sine plot, and rotationcircle update in real time.
---
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.