- Ubuntu 22.04/Windows
- Python>=3.10
- Networkx
- Pyvis
python3 main.py
- circle node represents server
- diamond node represents client
- yellow node means the best mapping
- yellow path means the edge being used
Physical Network Generated. Clients: [86, 18, 26, 20]
Processing Client 1/4 (Node 86)
[Success] Cost: 168.40
Path: a1@N51 -> a2@N54 -> a3@N63 -> a1@N51
Processing Client 2/4 (Node 18)
[Success] Cost: 175.90
Path: a1@N51 -> a2@N54 -> a3@N63 -> a1@N51
Processing Client 3/4 (Node 26)
[Success] Cost: 168.40
Path: a1@N51 -> a2@N54 -> a3@N63 -> a1@N51
Processing Client 4/4 (Node 20)
[Success] Cost: 158.40
Path: a1@N51 -> a2@N54 -> a3@N63 -> a1@N51
TOTAL GLOBAL COST: 671.10
Visualization saved to viz.html
Open 'viz.html' to see the highlighted paths (Yellow).
This project implements a simulation framework for optimizing the deployment of multi agent workflows which contains the stateful agents. For now, it features a cost-minimizing Depth-First Search (DFS) solver that maps agent workflow to physical nodes while enforcing strict constraints for stateful agent reuse.
.
└── src
├── lib
│ ├── bindings
│ │ └── utils.js
│ ├── tom-select
│ │ ├── tom-select.complete.min.js
│ │ └── tom-select.css
│ └── vis-9.1.2
│ ├── vis-network.css
│ └── vis-network.min.js
├── main.py
├── net.py
├── network.gml
├── network_updated.gml
├── __pycache__
│ ├── net.cpython-310.pyc
│ ├── solver.cpython-310.pyc
│ └── viz.cpython-310.pyc
├── solver.py
├── viz.html
└── viz.py