Skip to main content

GL-Coarsener, a graph learning based coarsening method

Project description

GL-Coarsener

A python implementation of GL-Coarsener method, as proposed in GL-Coarsener: A Graph representation learning framework to construct coarse grid hierarchy for AMG solvers, arXiv:2011.09994.

If you find our code or paper useful in your research, please consider citing:

@misc{namazi2020glcoarsener,
      title={GL-Coarsener: A Graph representation learning framework to construct coarse grid hierarchy for AMG solvers}, 
      author={Reza Namazi and Arsham Zolanvari and Mahdi Sani and Seyed Amir Ali Ghafourian Ghahramani},
      year={2020},
      eprint={2011.09994},
      archivePrefix={arXiv},
      primaryClass={math.NA}
}

Installation

pip install gl-coarsener

Usage

Import the package

from glcoarsener import Coarsener

Input

You should construct a Coarsener object with the adjacency matrix that you want to coarsen. The input must be of type scipy sparse CSR matrix.

from scipy import sparse
adjacency_matrix = sparse.random(1000, 1000, format='csr')
coarsener = Coarsener(adjacency_matrix)

Applying the method

prolongation_operator = coarsener.apply(
    dimensions=100,
    walk_length=20,
    num_walks=10,
    p=0.1,
    q=1,
    number_of_clusters=adjacency_matrix.shape[0] // 5,
    clustering_method='kmeans',
    workers=1
)

Getting the coarse (smaller) adjacency matrix

restriction_operator = prolongation_operator.transpose()
coarse_matrix = restriction_operator.dot(adjacency_matrix).dot(prolongation_operator)
print(coarse_matrix)

Contributing

Any contribution is greatly appreciated. If you think you can improve this work, please open a pull request.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/Improvement)
  3. Commit your Changes (git commit -m 'Add some Improvement')
  4. Push to the Branch (git push origin feature/Improvement)
  5. Open a Pull Request

Contact

If you have any questions, please do not hesitate to contact me:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gl-coarsener-2.0.0.tar.gz (4.6 kB view hashes)

Uploaded Source

Built Distribution

gl_coarsener-2.0.0-py3-none-any.whl (6.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page