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)
Genetic Algorithm for Robby Robot based on Complexity a Guided Tour by Melanie Mitchell

Robby Robot Genetic Algorithm A Genetic Algorithm based Robby the Robot in Chapter 9 of Melanie Mitchell's book Complexity: A Guided Tour Description

Matthew 2 Dec 1, 2022
Pathfinding algorithm based on A*

Pathfinding V1 What is pathfindingV1 ? This program is my very first path finding program, using python and turtle for graphic rendering. How is it wo

Yan'D 6 May 26, 2022
A fast python implementation of the SimHash algorithm.

This Python package provides hashing algorithms for computing cohort ids of users based on their browsing history. As such, it may be used to compute cohort ids of users following Google's Federated Learning of Cohorts (FLoC) proposal.

Hybrid Theory 19 Dec 15, 2022
A genetic algorithm written in Python for educational purposes.

Genea: A Genetic Algorithm in Python Genea is a Genetic Algorithm written in Python, for educational purposes. I started writing it for fun, while lea

Dom De Felice 20 Jul 6, 2022
TikTok X-Gorgon & X-Khronos Generation Algorithm

TikTok X-Gorgon & X-Khronos Generation Algorithm X-Gorgon and X-Khronos headers are required to call tiktok api. I will provide you API as rental or s

TikTokMate 31 Dec 1, 2022
A minimal implementation of the IQRM interference flagging algorithm for radio pulsar and transient searches

A minimal implementation of the IQRM interference flagging algorithm for radio pulsar and transient searches. This module only provides the algorithm that infers a channel mask from some spectral statistic that measures the level of RFI contamination in a time-frequency data block. It should be useful as a reference implementation to developers who wish to integrate IQRM into an existing pipeline / search code.

Vincent Morello 6 Nov 29, 2022
Greedy Algorithm-Problem Solving

MAX-MIN-Hackrrank-Python-Solution Greedy Algorithm-Problem Solving You will be given a list of integers, , and a single integer . You must create an a

Mahesh Nagargoje 3 Jul 13, 2021
An implementation of ordered dithering algorithm in python as multimedia course project

One way of minimizing the size of an image is to simply reduce the number of bits you use to represent each pixel.

null 7 Dec 2, 2022
Fedlearn algorithm toolkit for researchers

Fedlearn algorithm toolkit for researchers

null 89 Nov 14, 2022
A custom prime algorithm, implementation, and performance code & review

Colander A custom prime algorithm, implementation, and performance code & review Pseudocode Algorithm 1. given a number of primes to find, the followi

Finn Lancaster 3 Dec 17, 2021
Sorting Algorithm Visualiser using pygame

SortingVisualiser Sorting Algorithm Visualiser using pygame Features Visualisation of some traditional sorting algorithms like quicksort and bubblesor

null 4 Sep 5, 2021
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 9, 2022
Search algorithm implementations meant for teaching

Search-py A collection of search algorithms for teaching and experimenting. Non-adversarial Search There’s a heavy separation of concerns which leads

Dietrich Daroch 5 Mar 7, 2022
8-puzzle-solver with UCS, ILS, IDA* algorithm

Eight Puzzle 8-puzzle-solver with UCS, ILS, IDA* algorithm pre-usage requirements python3 python3-pip virtualenv prepare enviroment virtualenv -p pyth

Mohsen Arzani 4 Sep 22, 2021
A Python Package for Portfolio Optimization using the Critical Line Algorithm

A Python Package for Portfolio Optimization using the Critical Line Algorithm

null 19 Oct 11, 2022
🧬 Training the car to do self-parking using a genetic algorithm

?? Training the car to do self-parking using a genetic algorithm

Oleksii Trekhleb 652 Jan 3, 2023
A raw implementation of the nearest insertion algorithm to resolve TSP problems in a TXT format.

TSP-Nearest-Insertion A raw implementation of the nearest insertion algorithm to resolve TSP problems in a TXT format. Instructions Load a txt file wi

sjas_Phantom 1 Dec 2, 2021
A GUI visualization of QuickSort algorithm

QQuickSort A simple GUI visualization of QuickSort algorithm. It only uses PySide6, it does not have any other external dependency. How to run Install

Jaime R. 2 Dec 24, 2021
My own Unicode compression algorithm

Zee Code ZCode is a custom compression algorithm I originally developed for a competition held for the Spring 2019 Datastructures and Algorithms cours

Vahid Zehtab 2 Oct 20, 2021