Metadata-Version: 2.1
Name: aisa
Version: 1.0.0
Summary: AISA: Auto-Information State Aggregation
Home-page: https://maurofaccin.github.io/aisa
Author: Mauro Faccin,
Author-email: mauro.fccn@gmail.com
License: GNU GPL v3+
Keywords: network,partition,state,aggregation,graph,community,detection,dynamics
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Information Technology
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: numpy
Requires-Dist: scipy
Requires-Dist: networkx

## Auto-Information State Aggregation

This is a python module aimed at partitioning networks through the maximization of Auto-Information.
If you use this code, please cite the following paper:

> **State aggregations in Markov chains and block models of networks**, <br>
> *Faccin, Schaub and Delvenne*,
> [ArXiv 2005.00337](https://arxiv.org/abs/2005.00337)

The module provides also a function to compute the Entrogram of a network with a suitable partition.
The Entrogram provides a concise, visual characterization of the Markovianity of the dynamics projected to the partition space.
In case you use this, please cite the following paper:

> **Entrograms and coarse graining of dynamics on complex networks**, <br>
> *Faccin, Schaub and Delvenne*,
> [Journal of Complex Networks, 6(5) p. 661-678 (2018)](https://academic.oup.com/comnet/article-abstract/6/5/661/4587985), <br>
> [ArXiv 1711.01987](https://arxiv.org/abs/1711.01987)

## Getting the code

### Requirements

The following modules are required to `aisa` to work properly:

- `numpy` and `scipy`
- `networkx`
- `tqdm` (optional)

### Install

Download the code [here](https://github.com/maurofaccin/aisa/archive/master.zip) and unzip locally or clone the `git` repository from [Github](https://github.com/maurofaccin/aisa).

On the terminl run:
```
pip install --user path/to/module
```

### Uninstall

On the terminl run:
```
$ pip uninstall aisa
```

## Usage

Read the [online documentation](https://maurofaccin.github.io/aisa) that describes all classes and functions of the module.

Some simple notebook examples on module usage are provided in the `examples` subfolder:

- a simple example of computing and drawing the `entrogram` and detecting the partition that maximize the auto-information in a well know small social network, see in [nbviewer](https://nbviewer.jupyter.org/github/maurofaccin/aisa/blob/master/examples/Karate_Club.ipynb)
- an example on how to build a *range dependent network* and find the partition that maximize auto-nformation, see in [nbviewer](https://nbviewer.jupyter.org/github/maurofaccin/aisa/blob/master/examples/Range_Dependent_Network.ipynb)

## License

Copyright: Mauro Faccin (2020)

AISA is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

AISA is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Check LICENSE.txt for details.


