Exploring the relationship between network topology and computational capacity in constrained environments.
Before installing this project, make sure you have uv installed. If you don't want to use uv
, you can likely install via pip
, although it was not tested.
Run these steps when creating the project for the first time. Users who find this repository can skip this step, and go to the "Installing the project" section.
Initialize environment:
uv init
Creates pyproject.toml
, uv.lock
, and main.py
files.
Add dependencies:
uv add numpy matplotlib seaborn torch
uv add ipykernel --optional dev
Run this step to install the project after git clone
ing the repo.
uv sync --extra dev # add `--extra dev` to include ipykernel
- Build out the basic framework for the optimization problem.
- Test optimization on simple problems.
- Implement large-scale optimization.
The framework should consist of at least 3 modules:
- A representation module: this handles the storage and manipulation of the network topology.
- An optimization module: this handles optimizing topology. Examples: evolutionary algorithms, gradient-based approaches, etc.
- A simulation module: this handles running tasks used in the optimization module. Examples: classification, pattern completion, memory.