Infomap is a network clustering algorithm based on the Map equation.

Overview

Infomap

Infomap is a network clustering algorithm based on the Map equation.

For detailed documentation, see mapequation.org/infomap.

For a list of recent changes, see CHANGELOG.md in the source directory.

Getting started

Infomap can be installed either from PyPI using pip or by compiling from source.

An experimental Javascript version for browsers is available on NPM.

Using pip

A pre-compiled version is available for macOS users.

Installing on other operating systems requires a working gcc or clang compiler.

To install, run:

pip install infomap

To upgrade, run:

pip install --upgrade infomap

When the Python package is installed, an executable called infomap (with lowercase i) is available from any directory.

To get started, read Infomap Python API.

Using Docker

There are currently two Docker images available on Docker Hub.

  • mapequation/infomap
  • mapequation/infomap:notebook based on jupyter/scipy-notebook

The image mapequation/infomap can be started with

docker run -it --rm \
    -v `pwd`:/data \
    mapequation/infomap
    [infomap arguments]

You can also use the supplied docker-compose.yml:

docker-compose run --rm infomap

The image mapequation/infomap:notebook can be started with

docker run \
    -v `pwd`:/home/jovyan/work \
    -p 8888:8888 \
    mapequation/infomap:notebook \
    start.sh jupyter lab

Or similarly, using docker-compose:

docker-compose up notebook

Compiling from source

Installing Infomap from source requires a working gcc or clang compiler.

To download and compile the newest version from Github, clone the repository by running

git clone [email protected]:mapequation/infomap.git
cd infomap
make

This creates the binary Infomap, run it using:

./Infomap [options] network_data destination

For a list of options, run:

./Infomap --help

Read the documentation to learn more about the different options.

Npm package

An experimental Javascript web worker is available on NPM.

To install it, run

npm install @mapequation/infomap

Feedback

If you have any questions, suggestions or issues regarding the software, please add them to GitHub issues.

Authors

Daniel Edler, Anton Eriksson, Martin Rosvall

For contact information, see mapequation.org/about.html.

Terms of use

Infomap is released under a dual licence.

To give everyone maximum freedom to make use of Infomap and derivative works, we make the code open source under the GNU Affero General Public License version 3 or any later version (see LICENSE_AGPLv3.txt).

For a non-copyleft license, please contact us.

Comments
  • A question about 'initial_partition' property.

    A question about 'initial_partition' property.

    Hi, I'm a little confused about the effect of initial_partition of infomap.

    I set the initial_partition for partial nodes folloing the example does in this link and it indeed improves the clustering performance.

    There is a note in that link, i.e. 'The initial partition is saved between runs. If you want to use an initial partition for one run only, use run(initial_partition=partition)'. In my understanding, if I set initial partition with im.initial_partition = {1: 0, 2:0}, the final module ID of node1 and node2 will be kept same, right?

    However, in my experiment, I found some module ID of nodes, which belongs to the same initial partition, are not same in the final results. For example, providing the initial partitions 1: 0, 2: 0, 3: 0, 4: 0, 5: 1, 6: 1, 7: 1 to im.initial_partition, the final module ID of 1, 2, 3 is 123, while the one of 4, 5 is 78 (different from 123). Of course, the frequency of such changing is not high.

    Did I take a wrong way to provide the initial partitions, which results in the inconsistency? Or, maybe the initial_partition property cannot guarantee that the partition does not change?

    opened by xiangyh9988 18
  • windows python pip install infomap error: failed building the wheel

    windows python pip install infomap error: failed building the wheel

    Hello! I am using a windows 10 machine and I am trying to build infomap for python. I used both anaconda and the windows sub machine for Ubuntu and I used the command "pip install infomap" and "pip install --upgrade infomap", both give me the exact same error : failed to build the wheel. I am not sure the reason why, I have gcc installed and made sure that it is in the system variable. Would you mind explaining why this happened? Thank you!!

    opened by hexie1995 9
  • Doesn't give communities with a weighted network.

    Doesn't give communities with a weighted network.

    Hi, I have a undirected, fully-connected, weighted network with 264 nodes. The edge weights represent weights (importance of links) and not the distance between nodes. I ran the algorithm, but it gives me 264 clusters even after 100 trials. I am attaching the adjacency matrix for your consideration. Can you pinpoint what the issue might be?

    averaged_matrix_weighted.csv.zip

    opened by isukrit 8
  • cpp example compiling error : ‘Infomap’ is not a member of ‘infomap’

    cpp example compiling error : ‘Infomap’ is not a member of ‘infomap’

    My OS is Ubuntu 18.04 The g++ and make version as below

    make --version
    GNU Make 4.1
    Built for x86_64-pc-linux-gnu
    
    g++ --version
    g++ (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
    

    I was trying to make cpp examples to work

    unzip infomap-1.9.0.zip
    cd infomap-1.9.0/examples/cpp/minimal
    make
    

    Make the static library

    make -C ../../.. lib
    make[1]: Entering directory '/home/jeff/Downloads/infomap-1.9.0'
    g++ -Wall -Wextra -Wno-unused-parameter -std=c++14 -O4 -fopenmp -DNS_INFOMAP -DAS_LIB -c src/io/version.cpp -o build/lib/io/version.o
    g++ -Wall -Wextra -Wno-unused-parameter -std=c++14 -O4 -fopenmp -DNS_INFOMAP -DAS_LIB -c src/io/ProgramInterface.cpp -o build/lib/io/ProgramInterface.o
    g++ -Wall -Wextra -Wno-unused-parameter -std=c++14 -O4 -fopenmp -DNS_INFOMAP -DAS_LIB -c src/io/Config.cpp -o build/lib/io/Config.o
    g++ -Wall -Wextra -Wno-unused-parameter -std=c++14 -O4 -fopenmp -DNS_INFOMAP -DAS_LIB -c src/io/Network.cpp -o build/lib/io/Network.o
    g++ -Wall -Wextra -Wno-unused-parameter -std=c++14 -O4 -fopenmp -DNS_INFOMAP -DAS_LIB -c src/Infomap.cpp -o build/lib/Infomap.o
    g++ -Wall -Wextra -Wno-unused-parameter -std=c++14 -O4 -fopenmp -DNS_INFOMAP -DAS_LIB -c src/core/InfomapIterator.cpp -o build/lib/core/InfomapIterator.o
    g++ -Wall -Wextra -Wno-unused-parameter -std=c++14 -O4 -fopenmp -DNS_INFOMAP -DAS_LIB -c src/core/ClusterMap.cpp -o build/lib/core/ClusterMap.o
    g++ -Wall -Wextra -Wno-unused-parameter -std=c++14 -O4 -fopenmp -DNS_INFOMAP -DAS_LIB -c src/core/MapEquation.cpp -o build/lib/core/MapEquation.o
    g++ -Wall -Wextra -Wno-unused-parameter -std=c++14 -O4 -fopenmp -DNS_INFOMAP -DAS_LIB -c src/core/InfomapBase.cpp -o build/lib/core/InfomapBase.o
    g++ -Wall -Wextra -Wno-unused-parameter -std=c++14 -O4 -fopenmp -DNS_INFOMAP -DAS_LIB -c src/core/MetaMapEquation.cpp -o build/lib/core/MetaMapEquation.o
    g++ -Wall -Wextra -Wno-unused-parameter -std=c++14 -O4 -fopenmp -DNS_INFOMAP -DAS_LIB -c src/core/BiasedMapEquation.cpp -o build/lib/core/BiasedMapEquation.o
    g++ -Wall -Wextra -Wno-unused-parameter -std=c++14 -O4 -fopenmp -DNS_INFOMAP -DAS_LIB -c src/core/MemMapEquation.cpp -o build/lib/core/MemMapEquation.o
    g++ -Wall -Wextra -Wno-unused-parameter -std=c++14 -O4 -fopenmp -DNS_INFOMAP -DAS_LIB -c src/core/StateNetwork.cpp -o build/lib/core/StateNetwork.o
    g++ -Wall -Wextra -Wno-unused-parameter -std=c++14 -O4 -fopenmp -DNS_INFOMAP -DAS_LIB -c src/core/InfoNode.cpp -o build/lib/core/InfoNode.o
    g++ -Wall -Wextra -Wno-unused-parameter -std=c++14 -O4 -fopenmp -DNS_INFOMAP -DAS_LIB -c src/utils/Log.cpp -o build/lib/utils/Log.o
    g++ -Wall -Wextra -Wno-unused-parameter -std=c++14 -O4 -fopenmp -DNS_INFOMAP -DAS_LIB -c src/utils/FileURI.cpp -o build/lib/utils/FileURI.o
    g++ -Wall -Wextra -Wno-unused-parameter -std=c++14 -O4 -fopenmp -DNS_INFOMAP -DAS_LIB -c src/utils/FlowCalculator.cpp -o build/lib/utils/FlowCalculator.o
    Creating static library...
    ar rcs lib/libInfomap.a build/lib/io/version.o build/lib/io/ProgramInterface.o build/lib/io/Config.o build/lib/io/Network.o build/lib/Infomap.o build/lib/core/InfomapIterator.o build/lib/core/ClusterMap.o build/lib/core/MapEquation.o build/lib/core/InfomapBase.o build/lib/core/MetaMapEquation.o build/lib/core/BiasedMapEquation.o build/lib/core/MemMapEquation.o build/lib/core/StateNetwork.o build/lib/core/InfoNode.o build/lib/utils/Log.o build/lib/utils/FileURI.o build/lib/utils/FlowCalculator.o Makefile
    Wrote static library to lib/ and headers to include/
    make[1]: Leaving directory '/home/jeff/Downloads/infomap-1.9.0'
    

    The building and error message as below

    g++ -Wall -O3 -std=c++14 -DNS_INFOMAP example.cpp -o example -I../../../include -L../../../lib -lInfomap
    In file included from ../../../include/core/InfomapCore.h:17:0,
                     from ../../../include/Infomap.h:13,
                     from example.cpp:28:
    ../../../include/core/InfomapOptimizer.h:749:0: warning: ignoring #pragma omp parallel [-Wunknown-pragmas]
     #pragma omp parallel for schedule(dynamic) // Use dynamic scheduling as some threads could end early
     
    ../../../include/core/InfomapOptimizer.h:899:0: warning: ignoring #pragma omp critical [-Wunknown-pragmas]
     #pragma omp critical(moveUpdate)
     
    example.cpp:30:29: error: variable or field ‘printClusters’ declared void
     void printClusters(infomap::Infomap& infomap)
                                 ^~~~~~~
    example.cpp:30:29: error: ‘Infomap’ is not a member of ‘infomap’
    example.cpp:30:29: note: suggested alternative: ‘InfomapRun’
     void printClusters(infomap::Infomap& infomap)
                                 ^~~~~~~
                                 InfomapRun
    example.cpp:30:45: error: expected primary-expression before ‘)’ token
     void printClusters(infomap::Infomap& infomap)
                                                 ^
    example.cpp: In function ‘int main(int, char**)’:
    example.cpp:45:11: error: ‘Infomap’ is not a member of ‘infomap’
      infomap::Infomap infomapWrapper("--two-level -N2");
               ^~~~~~~
    example.cpp:45:11: note: suggested alternative: ‘InfomapRun’
      infomap::Infomap infomapWrapper("--two-level -N2");
               ^~~~~~~
               InfomapRun
    example.cpp:47:18: error: ‘infomapWrapper’ was not declared in this scope
      auto& network = infomapWrapper.network();
                      ^~~~~~~~~~~~~~
    example.cpp:66:2: error: ‘printClusters’ was not declared in this scope
      printClusters(infomapWrapper);
      ^~~~~~~~~~~~~
    Makefile:10: recipe for target 'example' failed
    make: *** [example] Error 1
    
    build 
    opened by mikethreeacer 6
  • 'pip install infomap';  No module named 'package_meta'

    'pip install infomap'; No module named 'package_meta'

    Is the infomap package on PyPi built properly?

    Complete output (5 lines): Traceback (most recent call last): File "", line 1, in File "C:\Users\alexc\AppData\Local\Temp\pip-install-bw0bw2ol\infomap\setup.py", line 10, in import package_meta ModuleNotFoundError: No module named 'package_meta'

    opened by AlexChaloner 6
  • Conda release

    Conda release

    Hi,

    I'm using this package as a dependency to another one I have forked. I'm trying to build a conda release for it and being able to install infomap through conda would help me.

    I'll be attempting one myself but if others are keen, it would be extremely helpful.

    Thank you for any assistance you can provide,

    V

    python 
    opened by vinisalazar 6
  • Time complexity of v1/grassberger-jelena

    Time complexity of v1/grassberger-jelena

    Describe the bug I am curious to know if the time complexity of the v1/grassberger branches is to blame for the extremely long projected run times for larger graphs (>100k nodes, millions of edges).

    Using the master branch the graph in question is successfully clustered in around 30 minutes using 10 trials. However, for v1/grassberger-jelena, I aborted the clustering run after accruing 8 hours without the first trial being completed.

    This was for a undirected, weighted graph defined in link-list format. The graph is highly modular, with perhaps 300 communities which become increasing sparse as subject become less frequently observed. (microbial community data)

    I did not employ inner loop parallelization in either case.

    To Reproduce

    ./Infomap edges.in -v -u -z -i link-list out_dir

    Desktop (please complete the following information):

    • OS: Linux, kernel > 5.2 (Fedora or Ubuntu)
    • Version v1/grassberger-jelena
    • Compiler: Gcc >7
    opened by cerebis 6
  • addLink function missing from Infomap

    addLink function missing from Infomap

    hi - I am trying to use the pip installed version of the python package, but the code from the jupyter notebook doesn't seem to work. First, the initial import fails:

    In [6]: from infomap import infomap
       ...:
    ---------------------------------------------------------------------------
    ImportError                               Traceback (most recent call last)
    <ipython-input-6-0c8597e1552c> in <module>()
    ----> 1 from infomap import infomap
    
    ImportError: cannot import name 'infomap'
    
    

    However, it works with from infomap import Infomap

    The bigger problem is that the addLink function seems to be missing from Infomap:

    In [7]: infomapWrapper = infomap.Infomap("--two-level")
       ...:
       ...: # Add link weight as an optional third argument
       ...: infomapWrapper.addLink(0, 1)
       ...:
       ...:
    ---------------------------------------------------------------------------
    AttributeError                            Traceback (most recent call last)
    <ipython-input-7-3febb79f95d2> in <module>()
          2
          3 # Add link weight as an optional third argument
    ----> 4 infomapWrapper.addLink(0, 1)
    
    ~/anaconda3/envs/py3/lib/python3.6/site-packages/infomap.py in <lambda>(self, name)
       2834     for _s in [InfomapBase]:
       2835         __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    -> 2836     __getattr__ = lambda self, name: _swig_getattr(self, Infomap, name)
       2837     __repr__ = _swig_repr
       2838
    
    ~/anaconda3/envs/py3/lib/python3.6/site-packages/infomap.py in _swig_getattr(self, class_type, name)
         78     if method:
         79         return method(self)
    ---> 80     raise AttributeError("'%s' object has no attribute '%s'" % (class_type.__name__, name))
         81
         82
    
    AttributeError: 'Infomap' object has no attribute 'addLink'
    

    This is also evident from a listing of the object attributes. Has the API changed for the wrapper?

    opened by poldrack 6
  • python3 can't install and return some error

    python3 can't install and return some error

    Hi, I download this tools and can make successful, But when I enter examples/python, and make some error come out,Here is the error: ./infomap_wrap.cpp:2452: error: ‘PyCObject_Import’ was not declared in this scope ./infomap_wrap.cpp: In function ‘void SWIG_Python_SetModule(swig_module_info*)’: ./infomap_wrap.cpp:2521: error: ‘PyCObject_FromVoidPtr’ was not declared in this scope ./infomap_wrap.cpp:2512: warning: unused variable ‘swig_empty_runtime_method_table’ ./infomap_wrap.cpp: In function ‘swig_type_info* SWIG_Python_TypeQuery(const char*)’: ./infomap_wrap.cpp:2544: error: ‘PyCObject_AsVoidPtr’ was not declared in this scope ./infomap_wrap.cpp:2549: error: ‘PyCObject_FromVoidPtr’ was not declared in this scope ./infomap_wrap.cpp: In function ‘std::vector<std::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::basic_string<char, std::char_traits, std::allocator > > >* std_vector_Sl_std_string_Sg____getitem____SWIG_0(std::vector<std::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::basic_string<char, std::char_traits, std::allocator > > >, PySliceObject)’: ./infomap_wrap.cpp:4462: error: cannot convert ‘PySliceObject*’ to ‘PyObject*’ for argument ‘1’ to ‘int PySlice_GetIndices(PyObject*, Py_ssize_t, Py_ssize_t*, Py_ssize_t*, Py_ssize_t*)’ ./infomap_wrap.cpp: In function ‘void std_vector_Sl_std_string_Sg____setitem____SWIG_0(std::vector<std::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::basic_string<char, std::char_traits, std::allocator > > >, PySliceObject, const std::vector<std::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::basic_string<char, std::char_traits, std::allocator > > >&)’: ./infomap_wrap.cpp:4471: error: cannot convert ‘PySliceObject*’ to ‘PyObject*’ for argument ‘1’ to ‘int PySlice_GetIndices(PyObject*, Py_ssize_t, Py_ssize_t*, Py_ssize_t*, Py_ssize_t*)’ ./infomap_wrap.cpp: In function ‘void std_vector_Sl_std_string_Sg____delitem____SWIG_1(std::vector<std::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::basic_string<char, std::char_traits, std::allocator > > >, PySliceObject)’: ./infomap_wrap.cpp:4480: error: cannot convert ‘PySliceObject*’ to ‘PyObject*’ for argument ‘1’ to ‘int PySlice_GetIndices(PyObject*, Py_ssize_t, Py_ssize_t*, Py_ssize_t*, Py_ssize_t*)’ ./infomap_wrap.cpp: In function ‘std::deque<unsigned int, std::allocator >* std_deque_Sl_unsigned_SS_int_Sg____getitem____SWIG_0(std::deque<unsigned int, std::allocator >, PySliceObject)’: ./infomap_wrap.cpp:5026: error: cannot convert ‘PySliceObject*’ to ‘PyObject*’ for argument ‘1’ to ‘int PySlice_GetIndices(PyObject*, Py_ssize_t, Py_ssize_t*, Py_ssize_t*, Py_ssize_t*)’ ./infomap_wrap.cpp: In function ‘void std_deque_Sl_unsigned_SS_int_Sg____setitem____SWIG_0(std::deque<unsigned int, std::allocator >, PySliceObject, const std::deque<unsigned int, std::allocator >&)’: ./infomap_wrap.cpp:5035: error: cannot convert ‘PySliceObject*’ to ‘PyObject*’ for argument ‘1’ to ‘int PySlice_GetIndices(PyObject*, Py_ssize_t, Py_ssize_t*, Py_ssize_t*, Py_ssize_t*)’ ./infomap_wrap.cpp: In function ‘void std_deque_Sl_unsigned_SS_int_Sg____delitem____SWIG_1(std::deque<unsigned int, std::allocator >, PySliceObject)’: ./infomap_wrap.cpp:5044: error: cannot convert ‘PySliceObject*’ to ‘PyObject*’ for argument ‘1’ to ‘int PySlice_GetIndices(PyObject*, Py_ssize_t, Py_ssize_t*, Py_ssize_t*, Py_ssize_t*)’ error: command 'gcc' failed with exit status 1 make[1]: *** [python] Error 1 make[1]: Leaving directory `/usr/local/infomap' My computer is centos, python version is 3.5.1, gcc 4.4.6, how to solve this problem?Thanks very much

    opened by XiaoXiao2015 6
  • Segmentation fault when running (Python examples) with overlapping option.

    Segmentation fault when running (Python examples) with overlapping option.

    Hi,

    I've been messing around with examples in Python and managed to cause seg-fault. When running default example for NetworkX (example-networkx.py) but with --overlapping option this happens:

    =======================================================
      Infomap v0.19.0 starts at [2017-06-10 16:00:52]
      -> Configuration: overlapping
                        two-level
      -> Use undirected flow and 2nd order Markov dynamics
    =======================================================
    Building Infomap network from a NetworkX graph...
    Find communities with Infomap...
    Finalizing network...
    Segmentation fault (core dumped)
    

    My GCC version: gcc (Ubuntu 6.2.0-5ubuntu12) 6.2.0 20161005

    Cheers!

    opened by IwoHerka 6
  • Poor performance using the Southern women bipartite network

    Poor performance using the Southern women bipartite network

    Good morning. I'm trying to run infomap on the online version. Since I didn't know how to get results with my work data, I have started with the well known and documented example of the "southern women".I intend to find clusters in this example and then move it into my own data, but I haven't managed to do so yet. I have created the example data of the sw.txt file to copy it to https://www.mapequation.org/infomap/ and I run it with all kind of parameters, for example -i bipartite --ftree --clu , but I have not achieved the expected result, which according to several consulted papers should be something similar to the attached sw.jgp file. I'm sure that something is wrong with the infomap execution process, but I can't find it, if you would be so kind to give me some clue of what is wrong I would be very grateful. Thank you very much in advance for your answers.

    sw

    sw.txt

    opened by nicnaorgarcia 5
  • Wrong codelength calculation with recorded teleportation if no optimization

    Wrong codelength calculation with recorded teleportation if no optimization

    Replicate in python:

    edges = [
        [1,2],
        [2,3],
        [3,1],
        [3,4],
        [4,5],
        [5,6],
        [6,4],
    ]
    G = nx.DiGraph()
    G.add_edges_from(edges)
    py.find_communities(G, recorded_teleportation=True, num_trials=1) # gives index codelength 0.102
    py.find_communities(G, recorded_teleportation=True, num_trials=2) # gives index codelength 0.251
    
    bug algorithm 
    opened by danieledler 0
  • Macos M1 OpenMP installation problem

    Macos M1 OpenMP installation problem

    My aim is to run the following command from Matlab. [failed, message] = system([infomapfolder '/Infomap-2.6.0/Infomap --clu -2 -s' num2str(randnum) ' -N' num2str(reps) ' ' pajekfilename ' ' pathstr]);

    I am working on MacOS (M1 processor...) and I have been able to successfully install infomap with pip install infomap as signalled by the messages on the terminalInstallling collected packages: infomap and Successfully installed infomap-2.6.0

    However, I am unable to import the package and I get this message:

    ---------------------------------------------------------------------------
    ImportError                               Traceback (most recent call last)
    Input In [1], in <cell line: 1>()
    ----> 1 import infomap
    
    File ~/opt/anaconda3/lib/python3.9/site-packages/infomap.py:38, in <module>
         36     from . import _infomap
         37 else:
    ---> 38     import _infomap
         40 try:
         41     import builtins as __builtin__
    
    ImportError: dlopen(/Users/matilde/opt/anaconda3/lib/python3.9/site-packages/_infomap.cpython-39-darwin.so, 0x0002): Library not loaded: /usr/local/opt/libomp/lib/libomp.dylib
      Referenced from: /Users/matilde/opt/anaconda3/lib/python3.9/site-packages/_infomap.cpython-39-darwin.so
      Reason: tried: '/usr/local/opt/libomp/lib/libomp.dylib' (no such file), '/usr/local/lib/libomp.dylib' (no such file), '/usr/lib/libomp.dylib' (no such file)
    

    If the infomap was correctly installed, I could use pyrunfile from Matlab in order to run infomap.

    I am able to import infomap when working on an old Mac. Hence, I strongly suspect the problem is related to M1 and I would welcome any advice on possible ways forward.

    I tried as an alternative to compile from source with the following (always considering that I am on macOS Monterey, version 12.2.1)

    git clone [email protected]:mapequation/infomap.git
    cd infomap
    make
    

    However, I get an error here as well as

    c++ -Wall -Wextra -pedantic -Wnon-virtual-dtor -std=c++14 -Wshadow -O3 -Xpreprocessor -fopenmp -c src/core/MetaMapEquation.cpp -o build/Infomap/core/MetaMapEquation.o
    c++ -Wall -Wextra -pedantic -Wnon-virtual-dtor -std=c++14 -Wshadow -O3 -Xpreprocessor -fopenmp -c src/core/MemMapEquation.cpp -o build/Infomap/core/MemMapEquation.o
    c++ -Wall -Wextra -pedantic -Wnon-virtual-dtor -std=c++14 -Wshadow -O3 -Xpreprocessor -fopenmp -c src/core/InfoEdge.cpp -o build/Infomap/core/InfoEdge.o
    c++ -Wall -Wextra -pedantic -Wnon-virtual-dtor -std=c++14 -Wshadow -O3 -Xpreprocessor -fopenmp -c src/core/BiasedMapEquation.cpp -o build/Infomap/core/BiasedMapEquation.o
    c++ -Wall -Wextra -pedantic -Wnon-virtual-dtor -std=c++14 -Wshadow -O3 -Xpreprocessor -fopenmp -c src/core/StateNetwork.cpp -o build/Infomap/core/StateNetwork.o
    c++ -Wall -Wextra -pedantic -Wnon-virtual-dtor -std=c++14 -Wshadow -O3 -Xpreprocessor -fopenmp -c src/core/iterators/InfomapIterator.cpp -o build/Infomap/core/iterators/InfomapIterator.o
    c++ -Wall -Wextra -pedantic -Wnon-virtual-dtor -std=c++14 -Wshadow -O3 -Xpreprocessor -fopenmp -c src/core/InfomapBase.cpp -o build/Infomap/core/InfomapBase.o
    src/core/InfomapBase.cpp:35:10: fatal error: 'omp.h' file not found
    #include <omp.h>
             ^~~~~~~
    1 error generated.
    make: *** [build/Infomap/core/InfomapBase.o] Error 1
    

    Thank you, Matilde

    python build macos 
    opened by MatildeVaghi 13
  • Initial partition is consolidated without optimization on first level

    Initial partition is consolidated without optimization on first level

    Running -T1 -L 1 with --cluster-data doesn't run any optimization.

    Unless --no-infomap, continue with optimization after initial partition before consolidation of first level.

    bug algorithm 
    opened by danieledler 0
Releases(v2.6.1)
Distributed algorithms, reimplemented for fun and practice

Distributed Algorithms Playground for reimplementing and experimenting with algorithms for distributed computing. Usage Running the code for Ring-AllR

Mahan Tourkaman 1 Oct 16, 2022
A lightweight, object-oriented finite state machine implementation in Python with many extensions

transitions A lightweight, object-oriented state machine implementation in Python with many extensions. Compatible with Python 2.7+ and 3.0+. Installa

4.7k Jan 01, 2023
Programming Foundations Algorithms With Python

Programming-Foundations-Algorithms Algorithms purpose to solve a specific proplem with a sequential sets of steps for instance : if you need to add di

omar nafea 1 Nov 01, 2021
Provide player's names and mmr and generate mathematically balanced teams

Lollo's matchmaking algorithm Provide player's names and mmr and generate mathematically balanced teams How to use Fill the input.json file with your

4 Aug 04, 2022
A priority of preferences for teacher assignment problem

Genetic-Algorithm-for-Assignment-Problem A priority of preferences for teacher assignment problem Keywords k-partition; clustering; education 4.0 Abst

hades 2 Oct 31, 2022
Optimal skincare partition finder using graph theory

Pigment The problem of partitioning up a skincare regime into parts such that each part does not interfere with itself is equivalent to the minimal cl

Jason Nguyen 1 Nov 22, 2021
A calculator to test numbers against the collatz conjecture

The Collatz Calculator This is an algorithm custom built by Kyle Dickey, used to test numbers against the simple rules of the Collatz Conjecture. Get

Kyle Dickey 2 Jun 14, 2022
A* (with 2 heuristic functions), BFS , DFS and DFS iterativeA* (with 2 heuristic functions), BFS , DFS and DFS iterative

Descpritpion This project solves the Taquin game (jeu de taquin) problem using different algorithms : A* (with 2 heuristic functions), BFS , DFS and D

Ayari Ahmed 3 May 09, 2022
A pure Python implementation of a mixed effects random forest (MERF) algorithm

Mixed Effects Random Forest This repository contains a pure Python implementation of a mixed effects random forest (MERF) algorithm. It can be used, o

Manifold 199 Dec 06, 2022
This project is an implementation of a simple K-means algorithm

Simple-Kmeans-Clustering-Algorithm Abstract K-means is a centroid-based algorithm, or a distance-based algorithm, where we calculate the distances to

Saman Khamesian 7 Aug 09, 2022
Using Bayesian, KNN, Logistic Regression to classify spam and non-spam.

Make Sure the dataset file "spamData.mat" is in the folder spam\src Environment: Python --version = 3.7 Third Party: numpy, matplotlib, math, scipy

0 Dec 26, 2021
All algorithms implemented in Python for education

The Algorithms - Python All algorithms implemented in Python - for education Implementations are for learning purposes only. As they may be less effic

1 Oct 20, 2021
Nature-inspired algorithms are a very popular tool for solving optimization problems.

Nature-inspired algorithms are a very popular tool for solving optimization problems. Numerous variants of nature-inspired algorithms have been develo

NiaOrg 215 Dec 28, 2022
A tictactoe where you never win, implemented using minimax algorithm

Unbeatable_TicTacToe A tictactoe where you never win, implemented using minimax algorithm Requirements Make sure you have the pygame module along with

Jessica Jolly 3 Jul 28, 2022
A Python description of the Kinematic Bicycle Model with an animated example.

Kinematic Bicycle Model Abstract A python library for the Kinematic Bicycle model. The Kinematic Bicycle is a compromise between the non-linear and li

Winston H. 36 Dec 23, 2022
causal-learn: Causal Discovery for Python

causal-learn: Causal Discovery for Python Causal-learn is a python package for causal discovery that implements both classical and state-of-the-art ca

589 Dec 29, 2022
Algorithmic virtual trading using the neostox platform

Documentation Neostox doesnt have an API Support, so this is a little selenium code to automate strategies How to use Clone this repository and then m

Abhishek Mittal 3 Jul 20, 2022
Dynamic Programming-Join Optimization Algorithm

DP-JOA Join optimization is the process of optimizing the joining, or combining, of two or more tables in a database. Here is a simple join optimizati

Haoze Zhou 3 Feb 03, 2022
Parameterising Simulated Annealing for the Travelling Salesman Problem

Parameterising Simulated Annealing for the Travelling Salesman Problem Abstract The Travelling Salesman Problem is a well known NP-Hard problem. Given

Gary Sun 55 Jun 15, 2022
Minimal pure Python library for working with little-endian list representation of bit strings.

bitlist Minimal Python library for working with bit vectors natively. Purpose This library allows programmers to work with a native representation of

Andrei Lapets 0 Jul 25, 2022