thegolem


Namethegolem JSON
Version 0.4.0 PyPI version JSON
download
home_pagehttps://github.com/aimclub/GOLEM
SummaryFramework for Graph Optimization and Learning by Evolutionary Methods
upload_time2023-10-30 14:26:37
maintainer
docs_urlNone
authorNSS Lab
requires_python>=3.8
licenseBSD 3-Clause
keywords
VCS
bugtrack_url
requirements numpy pandas networkx scipy zss matplotlib pyvis seaborn imageio Pillow func_timeout joblib requests tqdm typing psutil hyperopt iOpt optuna pytest testfixtures mabwiser
Travis-CI No Travis.
coveralls test coverage No coveralls.
            .. image:: /docs/source/img/golem_logo-02.png
   :alt: Logo of GOLEM framework
   :align: center
   :width: 500

.. class:: center

    |sai| |itmo|

    |python| |pypi| |build| |integration| |coverage| |docs| |license| |tg| |rus| |mirror|


Graph Optimization and Learning by Evolutionary Methods
-------------------------------------------------------

GOLEM is an open-source AI framework for optimization and learning of structured graph-based models with meta-heuristic
methods. It is centered around 2 ideas:

1. The potential of meta-heuristic methods in complex problem spaces.

The focus on meta-heuristics allows approaching the kinds of problems where gradient-based learning methods (notably, neural networks)
can't be easily applied, like optimization problems with multiple conflicting objectives or having a combinatorial nature.

2. The importance of structured models in multiple problem domains.

Graph-based learning enables solutions in the form of structured and hybrid probabilistic models, not to mention
that a wide range of domain-specific problems have a natural formulation in the form of graphs.

Together this constitutes an approach to AI that potentially leads to structured, intuitive, interpretable methods and
solutions for a wide range of tasks.


Core Features
=============

- **Structured** models with joint optimization of graph structure and properties (node attributes).
- **Metaheuristic** methods (mainly evolutionary) applicable to any task with a well-defined objective.
- **Multi-objective** optimization that can take into account both quality and complexity.
- **Constrained** optimization with support for arbitrary domain-specific constraints.
- **Extensible** to new domains.
- **Interpretable** thanks to meta-heuristics, structured models, and visualisation tools.
- **Reproducible** thanks to rich optimization history and model serialization.


Applications
============

GOLEM is potentially applicable to any optimization problem structures:

- that can be represented as directed graphs;
- that have some clearly defined fitness function on them.

Graph models can represent fixed structures (e.g. physical models such as truss structures) or functional models that
define a data-flow or inference process (e.g. bayesian networks that can be fitted and queried).

Examples of GOLEM applications:

- Automatic Machine Learning (AutoML) with optimal ML pipelines search in `FEDOT framework <https://github.com/aimclub/FEDOT>`_
- Bayesian network structure search in `BAMT framework <https://github.com/aimclub/BAMT>`_
- Differential equation discovery for physical models in `EPDE framework <https://github.com/ITMO-NSS-team/EPDE>`_
- Geometric design of physical objects in `GEFEST framework <https://github.com/aimclub/GEFEST>`_
- `Neural architecture search <https://github.com/ITMO-NSS-team/nas-fedot>`_

As GOLEM is a general-purpose framework, it's easy to imagine potential applications, for example, finite state automata search
for robotics control or molecular graph learning for drug discovery, and more.


Installation
============

GOLEM can be installed with ``pip``:

.. code-block::

  $ pip install thegolem


Quick Start Example
===================

Following example demonstrates graph search using reference graph & edit distance metric. Optimizer is set up with a minimal set of parameters and simple single-point mutations. For more details see examples `simple_run.py <https://github.com/aimclub/GOLEM/blob/main/examples/synthetic_graph_evolution/simple_run.py>`_, `graph_search.py <https://github.com/aimclub/GOLEM/blob/main/examples/synthetic_graph_evolution/graph_search.py>`_ and `tree_search.py <https://github.com/aimclub/GOLEM/blob/main/examples/synthetic_graph_evolution/tree_search.py>`_ in directory `examples/synthetic_graph_evolution <https://github.com/aimclub/GOLEM/tree/main/examples/synthetic_graph_evolution>`_.

.. code-block:: python

    def run_graph_search(size=16, timeout=8):
        # Generate target graph sought by optimizer using edit distance objective
        node_types = ('a', 'b')  # Available node types that can appear in graphs
        target_graph = generate_labeled_graph('tree', size, node_types)
        objective = Objective(partial(tree_edit_dist, target_graph))
        initial_population = [generate_labeled_graph('tree', 5, node_types) for _ in range(10)]

        # Setup optimization parameters
        requirements = GraphRequirements(timeout=timedelta(minutes=timeout))
        gen_params = GraphGenerationParams(adapter=BaseNetworkxAdapter(), available_node_types=node_types)
        algo_params = GPAlgorithmParameters(pop_size=30)

        # Build and run the optimizer
        optimiser = EvoGraphOptimizer(objective, initial_population, requirements, gen_params, algo_params)
        found_graphs = optimiser.optimise(objective)

        # Visualize results
        found_graph = gen_params.adapter.restore(found_graphs[0])  # Transform back to NetworkX graph
        draw_graphs_subplots(target_graph, found_graph, titles=['Target Graph', 'Found Graph'])
        optimiser.history.show.fitness_line()
        return found_graph


Project Structure
=================

The repository includes the following packages and directories:

- Package ``core`` contains the main classes and scripts.
- Package ``core.adapter`` is responsible for transformation between domain graphs and internal graph representation used by optimisers.
- Package ``core.dag`` contains classes and algorithms for representation and processing of graphs.
- Package ``core.optimisers`` contains graph optimisers and all related classes (like those representing fitness, individuals, populations, etc.), including optimization history.
- Package ``core.optimisers.genetic`` contains genetic (also called evolutionary) graph optimiser and operators (mutation, selection, and so on).
- Package ``core.utilities`` contains utilities and data structures used by other modules.
- Package ``serializers`` contains class ``Serializer`` with required facilities, and is responsible for serialization of project classes (graphs, optimization history, and everything related).
- Package ``visualisation`` contains classes that allow to visualise optimization history, graphs, and certain plots useful for analysis.
- Package ``examples`` includes several use-cases where you can start to discover how the framework works.
- All unit and integration tests are contained in the ``test`` directory.
- The sources of the documentation are in the ``docs`` directory.


Current R&D and future plans
============================

Any contribution is welcome. Our R&D team is open for cooperation with other scientific teams as well as with industrial partners.

Contribution Guide
==================

- The contribution guide is available in the `repository </docs/source/contribution.rst>`__.

Acknowledgments
===============

We acknowledge the contributors for their important impact and the participants of the numerous scientific conferences and
workshops for their valuable advice and suggestions.

Supported by
============

The study is supported by the Research `Center Strong Artificial Intelligence in Industry <https://sai.itmo.ru/>`_
of `ITMO University <https://itmo.ru/>`_ as part of the plan of the center's program: 
Development and testing of an experimental prototype of the library of strong AI algorithms 
in terms of basic algorithms of automatic ML for structural training of composite AI models, 
including automation of feature selection

Contacts
========
- `Telegram channel <https://t.me/FEDOT_helpdesk>`_ for solving problems and answering questions about FEDOT
- `Natural System Simulation Team <https://itmo-nss-team.github.io/>`_
- `Nikolay Nikitin <https://scholar.google.com/citations?user=eQBTGccAAAAJ&hl=ru>`_, AutoML Lead (nnikitin@itmo.ru)
- `Newsfeed <https://t.me/NSS_group>`_
- `Youtube channel <https://www.youtube.com/channel/UC4K9QWaEUpT_p3R4FeDp5jA>`_

Citation
========

If you use our project in your work or research, we would appreciate citations.

@article{nikitin2021automated,
  title = {Automated evolutionary approach for the design of composite machine learning pipelines},
  author = {Nikolay O. Nikitin and Pavel Vychuzhanin and Mikhail Sarafanov and Iana S. Polonskaia and Ilia Revin and Irina V. Barabanova and Gleb Maximov and Anna V. Kalyuzhnaya and Alexander Boukhanovsky},
  journal = {Future Generation Computer Systems},
  year = {2021},
  issn = {0167-739X},
  doi = {https://doi.org/10.1016/j.future.2021.08.022}}

Papers that describe applications of GOLEM:
===========================================

There are various cases solved with GOLEM's algorithms:

- Algorithms for time series forecasting pipeline design: Sarafanov M., Pokrovskii V., Nikitin N. O. Evolutionary Automated Machine Learning for Multi-Scale Decomposition and Forecasting of Sensor Time Series //2022 IEEE Congress on Evolutionary Computation (CEC). – IEEE, 2022. – С. 01-08.

- Algorithms for acoustic equation discovery: Hvatov A. Data-Driven Approach for the Floquet Propagator Inverse Problem Solution //ICASSP 2022-2022 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). – IEEE, 2022. – С. 3813-3817.

- Algorithms for PDE discovery: Maslyaev M., Hvatov A. Solver-Based Fitness Function for the Data-Driven Evolutionary Discovery of Partial Differential Equations //2022 IEEE Congress on Evolutionary Computation (CEC). – IEEE, 2022. – С. 1-8.

- Algorithms for structural learning of Bayesian Networks: Deeva I., Kalyuzhnaya A. V., Alexander V. Boukhanovsky Adaptive Learning Algorithm for Bayesian Networks Based on Kernel Mixtures Distributions//International Journal of Artificial Intelligence. – 2023. - Т.21. - №. 1. - С. 90.


.. |docs| image:: https://readthedocs.org/projects/thegolem/badge/?version=latest
    :target: https://thegolem.readthedocs.io/en/latest/?badge=latest
    :alt: Documentation Status

.. |build| image:: https://github.com/aimclub/GOLEM/actions/workflows/unit-build.yml/badge.svg?branch=main
   :alt: Build Status
   :target: https://github.com/aimclub/GOLEM/actions/workflows/unit-build.yml

.. |integration| image:: https://github.com/aimclub/GOLEM/actions/workflows/integration-build.yml/badge.svg?branch=main
   :alt: Integration Build Status
   :target: https://github.com/aimclub/GOLEM/actions/workflows/integration-build.yml

.. |coverage| image:: https://codecov.io/gh/aimclub/GOLEM/branch/main/graph/badge.svg
   :alt: Coverage Status
   :target: https://codecov.io/gh/aimclub/GOLEM

.. |pypi| image:: https://img.shields.io/pypi/v/thegolem.svg
   :alt: PyPI Package Version
   :target: https://img.shields.io/pypi/v/thegolem

.. |python| image:: https://img.shields.io/pypi/pyversions/thegolem.svg
   :alt: Supported Python Versions
   :target: https://img.shields.io/pypi/pyversions/thegolem

.. |license| image:: https://img.shields.io/github/license/aimclub/GOLEM
   :alt: Supported Python Versions
   :target: https://github.com/aimclub/GOLEM/blob/main/LICENSE.md

.. |downloads_stats| image:: https://static.pepy.tech/personalized-badge/thegolem?period=total&units=international_system&left_color=grey&right_color=brightgreen&left_text=Downloads
   :target: https://pepy.tech/project/thegolem

.. |tg| image:: https://img.shields.io/badge/Telegram-Group-blue.svg
   :alt: Telegram Chat
   :target: https://t.me/FEDOT_helpdesk

.. |by-golem| image:: http://img.shields.io/badge/powered%20by-GOLEM-orange.svg?style=flat
   :target: http://github.com/aimclub/GOLEM
   :alt: Powered by GOLEM

.. |rus| image:: https://img.shields.io/badge/lang-ru-yellow.svg
            :target: /README.rst

.. |ITMO| image:: https://github.com/aimclub/open-source-ops/blob/add_badge/badges/ITMO_badge.svg
   :alt: Acknowledgement to ITMO
   :target: https://en.itmo.ru/en/

.. |SAI| image:: https://github.com/aimclub/open-source-ops/blob/add_badge/badges/SAI_badge.svg
   :alt: Acknowledgement to SAI
   :target: https://sai.itmo.ru/

.. |mirror| image:: https://camo.githubusercontent.com/9bd7b8c5b418f1364e72110a83629772729b29e8f3393b6c86bff237a6b784f6/68747470733a2f2f62616467656e2e6e65742f62616467652f6769746c61622f6d6972726f722f6f72616e67653f69636f6e3d6769746c6162
   :alt: GitLab mirror for this repository
   :target: https://gitlab.actcognitive.org/itmo-nss-team/GOLEM

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/aimclub/GOLEM",
    "name": "thegolem",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "",
    "author": "NSS Lab",
    "author_email": "itmo.nss.team@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/68/b7/247348aadbf2dcda8332f0e6e1b260d9349a1bb05f28d61102e101bcdd22/thegolem-0.4.0.tar.gz",
    "platform": null,
    "description": ".. image:: /docs/source/img/golem_logo-02.png\n   :alt: Logo of GOLEM framework\n   :align: center\n   :width: 500\n\n.. class:: center\n\n    |sai| |itmo|\n\n    |python| |pypi| |build| |integration| |coverage| |docs| |license| |tg| |rus| |mirror|\n\n\nGraph Optimization and Learning by Evolutionary Methods\n-------------------------------------------------------\n\nGOLEM is an open-source AI framework for optimization and learning of structured graph-based models with meta-heuristic\nmethods. It is centered around 2 ideas:\n\n1. The potential of meta-heuristic methods in complex problem spaces.\n\nThe focus on meta-heuristics allows approaching the kinds of problems where gradient-based learning methods (notably, neural networks)\ncan't be easily applied, like optimization problems with multiple conflicting objectives or having a combinatorial nature.\n\n2. The importance of structured models in multiple problem domains.\n\nGraph-based learning enables solutions in the form of structured and hybrid probabilistic models, not to mention\nthat a wide range of domain-specific problems have a natural formulation in the form of graphs.\n\nTogether this constitutes an approach to AI that potentially leads to structured, intuitive, interpretable methods and\nsolutions for a wide range of tasks.\n\n\nCore Features\n=============\n\n- **Structured** models with joint optimization of graph structure and properties (node attributes).\n- **Metaheuristic** methods (mainly evolutionary) applicable to any task with a well-defined objective.\n- **Multi-objective** optimization that can take into account both quality and complexity.\n- **Constrained** optimization with support for arbitrary domain-specific constraints.\n- **Extensible** to new domains.\n- **Interpretable** thanks to meta-heuristics, structured models, and visualisation tools.\n- **Reproducible** thanks to rich optimization history and model serialization.\n\n\nApplications\n============\n\nGOLEM is potentially applicable to any optimization problem structures:\n\n- that can be represented as directed graphs;\n- that have some clearly defined fitness function on them.\n\nGraph models can represent fixed structures (e.g. physical models such as truss structures) or functional models that\ndefine a data-flow or inference process (e.g. bayesian networks that can be fitted and queried).\n\nExamples of GOLEM applications:\n\n- Automatic Machine Learning (AutoML) with optimal ML pipelines search in `FEDOT framework <https://github.com/aimclub/FEDOT>`_\n- Bayesian network structure search in `BAMT framework <https://github.com/aimclub/BAMT>`_\n- Differential equation discovery for physical models in `EPDE framework <https://github.com/ITMO-NSS-team/EPDE>`_\n- Geometric design of physical objects in `GEFEST framework <https://github.com/aimclub/GEFEST>`_\n- `Neural architecture search <https://github.com/ITMO-NSS-team/nas-fedot>`_\n\nAs GOLEM is a general-purpose framework, it's easy to imagine potential applications, for example, finite state automata search\nfor robotics control or molecular graph learning for drug discovery, and more.\n\n\nInstallation\n============\n\nGOLEM can be installed with ``pip``:\n\n.. code-block::\n\n  $ pip install thegolem\n\n\nQuick Start Example\n===================\n\nFollowing example demonstrates graph search using reference graph & edit distance metric. Optimizer is set up with a minimal set of parameters and simple single-point mutations. For more details see examples `simple_run.py <https://github.com/aimclub/GOLEM/blob/main/examples/synthetic_graph_evolution/simple_run.py>`_, `graph_search.py <https://github.com/aimclub/GOLEM/blob/main/examples/synthetic_graph_evolution/graph_search.py>`_ and `tree_search.py <https://github.com/aimclub/GOLEM/blob/main/examples/synthetic_graph_evolution/tree_search.py>`_ in directory `examples/synthetic_graph_evolution <https://github.com/aimclub/GOLEM/tree/main/examples/synthetic_graph_evolution>`_.\n\n.. code-block:: python\n\n    def run_graph_search(size=16, timeout=8):\n        # Generate target graph sought by optimizer using edit distance objective\n        node_types = ('a', 'b')  # Available node types that can appear in graphs\n        target_graph = generate_labeled_graph('tree', size, node_types)\n        objective = Objective(partial(tree_edit_dist, target_graph))\n        initial_population = [generate_labeled_graph('tree', 5, node_types) for _ in range(10)]\n\n        # Setup optimization parameters\n        requirements = GraphRequirements(timeout=timedelta(minutes=timeout))\n        gen_params = GraphGenerationParams(adapter=BaseNetworkxAdapter(), available_node_types=node_types)\n        algo_params = GPAlgorithmParameters(pop_size=30)\n\n        # Build and run the optimizer\n        optimiser = EvoGraphOptimizer(objective, initial_population, requirements, gen_params, algo_params)\n        found_graphs = optimiser.optimise(objective)\n\n        # Visualize results\n        found_graph = gen_params.adapter.restore(found_graphs[0])  # Transform back to NetworkX graph\n        draw_graphs_subplots(target_graph, found_graph, titles=['Target Graph', 'Found Graph'])\n        optimiser.history.show.fitness_line()\n        return found_graph\n\n\nProject Structure\n=================\n\nThe repository includes the following packages and directories:\n\n- Package ``core`` contains the main classes and scripts.\n- Package ``core.adapter`` is responsible for transformation between domain graphs and internal graph representation used by optimisers.\n- Package ``core.dag`` contains classes and algorithms for representation and processing of graphs.\n- Package ``core.optimisers`` contains graph optimisers and all related classes (like those representing fitness, individuals, populations, etc.), including optimization history.\n- Package ``core.optimisers.genetic`` contains genetic (also called evolutionary) graph optimiser and operators (mutation, selection, and so on).\n- Package ``core.utilities`` contains utilities and data structures used by other modules.\n- Package ``serializers`` contains class ``Serializer`` with required facilities, and is responsible for serialization of project classes (graphs, optimization history, and everything related).\n- Package ``visualisation`` contains classes that allow to visualise optimization history, graphs, and certain plots useful for analysis.\n- Package ``examples`` includes several use-cases where you can start to discover how the framework works.\n- All unit and integration tests are contained in the ``test`` directory.\n- The sources of the documentation are in the ``docs`` directory.\n\n\nCurrent R&D and future plans\n============================\n\nAny contribution is welcome. Our R&D team is open for cooperation with other scientific teams as well as with industrial partners.\n\nContribution Guide\n==================\n\n- The contribution guide is available in the `repository </docs/source/contribution.rst>`__.\n\nAcknowledgments\n===============\n\nWe acknowledge the contributors for their important impact and the participants of the numerous scientific conferences and\nworkshops for their valuable advice and suggestions.\n\nSupported by\n============\n\nThe study is supported by the Research `Center Strong Artificial Intelligence in Industry <https://sai.itmo.ru/>`_\nof `ITMO University <https://itmo.ru/>`_ as part of the plan of the center's program: \nDevelopment and testing of an experimental prototype of the library of strong AI algorithms \nin terms of basic algorithms of automatic ML for structural training of composite AI models, \nincluding automation of feature selection\n\nContacts\n========\n- `Telegram channel <https://t.me/FEDOT_helpdesk>`_ for solving problems and answering questions about FEDOT\n- `Natural System Simulation Team <https://itmo-nss-team.github.io/>`_\n- `Nikolay Nikitin <https://scholar.google.com/citations?user=eQBTGccAAAAJ&hl=ru>`_, AutoML Lead (nnikitin@itmo.ru)\n- `Newsfeed <https://t.me/NSS_group>`_\n- `Youtube channel <https://www.youtube.com/channel/UC4K9QWaEUpT_p3R4FeDp5jA>`_\n\nCitation\n========\n\nIf you use our project in your work or research, we would appreciate citations.\n\n@article{nikitin2021automated,\n  title = {Automated evolutionary approach for the design of composite machine learning pipelines},\n  author = {Nikolay O. Nikitin and Pavel Vychuzhanin and Mikhail Sarafanov and Iana S. Polonskaia and Ilia Revin and Irina V. Barabanova and Gleb Maximov and Anna V. Kalyuzhnaya and Alexander Boukhanovsky},\n  journal = {Future Generation Computer Systems},\n  year = {2021},\n  issn = {0167-739X},\n  doi = {https://doi.org/10.1016/j.future.2021.08.022}}\n\nPapers that describe applications of GOLEM:\n===========================================\n\nThere are various cases solved with GOLEM's algorithms:\n\n- Algorithms for time series forecasting pipeline design: Sarafanov M., Pokrovskii V., Nikitin N. O. Evolutionary Automated Machine Learning for Multi-Scale Decomposition and Forecasting of Sensor Time Series //2022 IEEE Congress on Evolutionary Computation (CEC). \u2013 IEEE, 2022. \u2013 \u0421. 01-08.\n\n- Algorithms for acoustic equation discovery: Hvatov A. Data-Driven Approach for the Floquet Propagator Inverse Problem Solution //ICASSP 2022-2022 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). \u2013 IEEE, 2022. \u2013 \u0421. 3813-3817.\n\n- Algorithms for PDE discovery: Maslyaev M., Hvatov A. Solver-Based Fitness Function for the Data-Driven Evolutionary Discovery of Partial Differential Equations //2022 IEEE Congress on Evolutionary Computation (CEC). \u2013 IEEE, 2022. \u2013 \u0421. 1-8.\n\n- Algorithms for structural learning of Bayesian Networks: Deeva I., Kalyuzhnaya A. V., Alexander V. Boukhanovsky Adaptive Learning Algorithm for Bayesian Networks Based on Kernel Mixtures Distributions//International Journal of Artificial Intelligence. \u2013 2023. - \u0422.21. - \u2116. 1. - \u0421. 90.\n\n\n.. |docs| image:: https://readthedocs.org/projects/thegolem/badge/?version=latest\n    :target: https://thegolem.readthedocs.io/en/latest/?badge=latest\n    :alt: Documentation Status\n\n.. |build| image:: https://github.com/aimclub/GOLEM/actions/workflows/unit-build.yml/badge.svg?branch=main\n   :alt: Build Status\n   :target: https://github.com/aimclub/GOLEM/actions/workflows/unit-build.yml\n\n.. |integration| image:: https://github.com/aimclub/GOLEM/actions/workflows/integration-build.yml/badge.svg?branch=main\n   :alt: Integration Build Status\n   :target: https://github.com/aimclub/GOLEM/actions/workflows/integration-build.yml\n\n.. |coverage| image:: https://codecov.io/gh/aimclub/GOLEM/branch/main/graph/badge.svg\n   :alt: Coverage Status\n   :target: https://codecov.io/gh/aimclub/GOLEM\n\n.. |pypi| image:: https://img.shields.io/pypi/v/thegolem.svg\n   :alt: PyPI Package Version\n   :target: https://img.shields.io/pypi/v/thegolem\n\n.. |python| image:: https://img.shields.io/pypi/pyversions/thegolem.svg\n   :alt: Supported Python Versions\n   :target: https://img.shields.io/pypi/pyversions/thegolem\n\n.. |license| image:: https://img.shields.io/github/license/aimclub/GOLEM\n   :alt: Supported Python Versions\n   :target: https://github.com/aimclub/GOLEM/blob/main/LICENSE.md\n\n.. |downloads_stats| image:: https://static.pepy.tech/personalized-badge/thegolem?period=total&units=international_system&left_color=grey&right_color=brightgreen&left_text=Downloads\n   :target: https://pepy.tech/project/thegolem\n\n.. |tg| image:: https://img.shields.io/badge/Telegram-Group-blue.svg\n   :alt: Telegram Chat\n   :target: https://t.me/FEDOT_helpdesk\n\n.. |by-golem| image:: http://img.shields.io/badge/powered%20by-GOLEM-orange.svg?style=flat\n   :target: http://github.com/aimclub/GOLEM\n   :alt: Powered by GOLEM\n\n.. |rus| image:: https://img.shields.io/badge/lang-ru-yellow.svg\n            :target: /README.rst\n\n.. |ITMO| image:: https://github.com/aimclub/open-source-ops/blob/add_badge/badges/ITMO_badge.svg\n   :alt: Acknowledgement to ITMO\n   :target: https://en.itmo.ru/en/\n\n.. |SAI| image:: https://github.com/aimclub/open-source-ops/blob/add_badge/badges/SAI_badge.svg\n   :alt: Acknowledgement to SAI\n   :target: https://sai.itmo.ru/\n\n.. |mirror| image:: https://camo.githubusercontent.com/9bd7b8c5b418f1364e72110a83629772729b29e8f3393b6c86bff237a6b784f6/68747470733a2f2f62616467656e2e6e65742f62616467652f6769746c61622f6d6972726f722f6f72616e67653f69636f6e3d6769746c6162\n   :alt: GitLab mirror for this repository\n   :target: https://gitlab.actcognitive.org/itmo-nss-team/GOLEM\n",
    "bugtrack_url": null,
    "license": "BSD 3-Clause",
    "summary": "Framework for Graph Optimization and Learning by Evolutionary Methods",
    "version": "0.4.0",
    "project_urls": {
        "Homepage": "https://github.com/aimclub/GOLEM"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3f622636c60e64c8bc4c0e69324f69b243e05a25b2066b683e30104942275d73",
                "md5": "fa95c016768814ddde92ae865b7cd395",
                "sha256": "e25575d0794744a93a1771869a2d111395e8cb6ae6e1e6c22828cd2c93e325e6"
            },
            "downloads": -1,
            "filename": "thegolem-0.4.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "fa95c016768814ddde92ae865b7cd395",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 282324,
            "upload_time": "2023-10-30T14:26:36",
            "upload_time_iso_8601": "2023-10-30T14:26:36.056900Z",
            "url": "https://files.pythonhosted.org/packages/3f/62/2636c60e64c8bc4c0e69324f69b243e05a25b2066b683e30104942275d73/thegolem-0.4.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "68b7247348aadbf2dcda8332f0e6e1b260d9349a1bb05f28d61102e101bcdd22",
                "md5": "a26ee6b7932f26b4833bc634fc67dd76",
                "sha256": "e5103dcbe69d7bff51898e6aa6a5ac0480fd2abe6c78673dcc2ba29c9966fe63"
            },
            "downloads": -1,
            "filename": "thegolem-0.4.0.tar.gz",
            "has_sig": false,
            "md5_digest": "a26ee6b7932f26b4833bc634fc67dd76",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 208740,
            "upload_time": "2023-10-30T14:26:37",
            "upload_time_iso_8601": "2023-10-30T14:26:37.961320Z",
            "url": "https://files.pythonhosted.org/packages/68/b7/247348aadbf2dcda8332f0e6e1b260d9349a1bb05f28d61102e101bcdd22/thegolem-0.4.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-10-30 14:26:37",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "aimclub",
    "github_project": "GOLEM",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "numpy",
            "specs": [
                [
                    "!=",
                    "1.24.0"
                ],
                [
                    ">=",
                    "1.16.0"
                ]
            ]
        },
        {
            "name": "pandas",
            "specs": [
                [
                    ">=",
                    "1.3.0"
                ]
            ]
        },
        {
            "name": "networkx",
            "specs": [
                [
                    "!=",
                    "2.8.1"
                ],
                [
                    ">=",
                    "2.4"
                ],
                [
                    "!=",
                    "2.8.2"
                ],
                [
                    "!=",
                    "2.8.3"
                ],
                [
                    "!=",
                    "2.7.*"
                ]
            ]
        },
        {
            "name": "scipy",
            "specs": [
                [
                    ">=",
                    "1.7.3"
                ]
            ]
        },
        {
            "name": "zss",
            "specs": [
                [
                    ">=",
                    "1.2.0"
                ]
            ]
        },
        {
            "name": "matplotlib",
            "specs": [
                [
                    ">=",
                    "3.3.1"
                ]
            ]
        },
        {
            "name": "pyvis",
            "specs": [
                [
                    "==",
                    "0.2.1"
                ]
            ]
        },
        {
            "name": "seaborn",
            "specs": [
                [
                    ">=",
                    "0.9.0"
                ]
            ]
        },
        {
            "name": "imageio",
            "specs": [
                [
                    ">=",
                    "2.28.1"
                ]
            ]
        },
        {
            "name": "Pillow",
            "specs": [
                [
                    ">=",
                    "9.5.0"
                ]
            ]
        },
        {
            "name": "func_timeout",
            "specs": [
                [
                    "==",
                    "4.3.5"
                ]
            ]
        },
        {
            "name": "joblib",
            "specs": [
                [
                    ">=",
                    "0.17.0"
                ]
            ]
        },
        {
            "name": "requests",
            "specs": [
                [
                    ">=",
                    "2.0"
                ]
            ]
        },
        {
            "name": "tqdm",
            "specs": [
                [
                    "~=",
                    "4.65.0"
                ]
            ]
        },
        {
            "name": "typing",
            "specs": [
                [
                    ">=",
                    "3.7.0"
                ]
            ]
        },
        {
            "name": "psutil",
            "specs": [
                [
                    ">=",
                    "5.9.2"
                ]
            ]
        },
        {
            "name": "hyperopt",
            "specs": [
                [
                    ">=",
                    "0.2.7"
                ]
            ]
        },
        {
            "name": "iOpt",
            "specs": [
                [
                    "==",
                    "0.1.6"
                ]
            ]
        },
        {
            "name": "optuna",
            "specs": [
                [
                    ">=",
                    "3.2.0"
                ]
            ]
        },
        {
            "name": "pytest",
            "specs": [
                [
                    ">=",
                    "6.2.0"
                ]
            ]
        },
        {
            "name": "testfixtures",
            "specs": [
                [
                    ">=",
                    "6.18.0"
                ]
            ]
        },
        {
            "name": "mabwiser",
            "specs": [
                [
                    ">=",
                    "2.7.0"
                ]
            ]
        }
    ],
    "lcname": "thegolem"
}
        
Elapsed time: 0.81729s