Skip to content

A novel hybrid contraction tree optimizer that combines (hyper) graph partitioning with a random greedy algorithm to find good contraction trees quickly.

License

Notifications You must be signed in to change notification settings

ti2-group/hybrid_contraction_tree_optimizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Setup

You will need mamba (or conda, same cli interface). Afterwards you can create a fresh environment with all dependencies as described below

mamba create -n hybrid_contraction_tree_optimizer cotengra quimb autoray cytoolz loky networkx opt_einsum optuna tqdm pandas rich pygraphviz networkx cython matplotlib quimb nevergrad
mamba activate hybrid_contraction_tree_optimizer
pip install cotengrust
pip install kahypar
pip install julia

Alternatively you can try install the exact versions into an existing environment:

pip install -r requirements.txt

Afterwards you can run the different experiments like this

python experiments/hybrid_experiments.py

Our algorithm is stored in hybrid_hypercut_greedy.py.

About

A novel hybrid contraction tree optimizer that combines (hyper) graph partitioning with a random greedy algorithm to find good contraction trees quickly.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages