graph-bandit
Science Score: 54.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: arxiv.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.4%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: CoNG-harvard
- Language: Jupyter Notebook
- Default Branch: main
- Size: 34.4 MB
Statistics
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
Graph-Bandit
This repository contains the implementation of graph bandit algorithms and the corresponding numerical experiments. The code are written in Python.
The link to our paper: Multi-armed Bandit Learning on a Graph
Python packages required for running the experiments:
- For running the Python notebooks: jupyter notebook or jupyter lab.
- Parallel Programming: joblib.
- Graph-related utilities: networkx.
- Plotting utilities: matplotlib, seaborn.
- For showing the progress bar in non-parallel experiments: tqdm.
- For saving and loading experiment data: pickle.
Quick Start: Directly run the 'Robotic Application.ipynb' notebook to see the network used in our robotic application and the regret for our proposed algorithm.
Contents of the Python files
graph_bandit.py: the class definition of graph bandit environment. Implements the step() method.
agents.py: contains the agent implementing our propose algorithm(under the name GUCB_agent), as well as the local Thompson Sampling, local UCB, QL $\epsilon$-greedy, QL-UCB-H, and UCRL2 agents.
core.py: contains a function that visits all nodes at least once(used in initialization), and the train_agent() function.
planning.py: Contains two offline planning algorithm. The shortest path algorithm for off-line planning in G-UCB and the value iteration planning in UCRL2.
utils.py: contains a graph generator and a graph drawing utility.
Contents of the Python notebooks
Main.ipynb: contains the experiments comparing our proposed algorithm with various benchmarks on various graphs.
Main Plotting.ipynb: plotting utilities for the results obtained from Main.ipynb
Sensitivity Analysis.ipynb: experiments showing how the performance of our algorithm depends on graph parameters $|S|,D,$ and $\Delta$.
Robotic Application.ipynb: contains the synthetic robotic application of providing Internet access to rural/suburban areas using an UAV.
Direct SP.ipynb: comparing the learning regret between following the path with the shortest weighted distance and with the shortest length to the source.
Direct SP Plotting.ipynb: the plotting notebook for the above.
Our Algorithm vs UCRL2.ipynb: detailed experiments investigating the effect of UCB and doubling scheme on learning performance.
Our Algorithm vs UCRL2-plotting.ipynb: the plotting notebook for the above.
Simulation Efficiency: experiments comparing the simulation efficiency of G-UCB and UCRL2.
Owner
- Name: CoNG at Harvard
- Login: CoNG-harvard
- Kind: organization
- Repositories: 1
- Profile: https://github.com/CoNG-harvard
Citation (CITATION.CFF)
cff-version: 1.2.0 message: "If you use this software, please cite it as below." authors: - family-names: "Zhang" given-names: "Tianpeng" orcid: "https://orcid.org/0000-0001-8700-8715" title: "Graph-Bandit" version: 1.0.0 date-released: 2022-12-08 url: "https://github.com/lina-robotics-lab/Graph-Bandit"
GitHub Events
Total
- Watch event: 1
Last Year
- Watch event: 1