Skip to main content

Neural networks powered research of semigroups

Project description

Open In Colab PyPI version CircleCI Documentation Status codecov

Neural Semigroups

The project is abandoned.

If you want to reproduce results from the paper, please use this notebook.

Here we try to model Cayley tables of semigroups using neural networks.

This work was inspired by a sudoku solver. A solved Sudoku puzzle is nothing more than a Cayley table of a quasigroup from 9 items with some well-known additional properties. So, one can imagine a puzzle made from a Cayley table of any other magma, e.g. a semigroup, by hiding part of its cells.

There are two major differences between sudoku and puzzles based on semigroups:

  1. it’s easy to take a glance on a table to understand whether it is a sudoku or not. That’s why it was possible to encode numbers in a table cells as colour intensities. Sudoku is a picture, and a semigroup is not. It’s difficult to check a Cayley table’s associativity with a naked eye;

  2. Sudoku puzzles are solved by humans for fun and thus catalogued. When solving a sudoku one knows for sure that there is a unique solution. On the contrary, nobody guesses values in a partially filled Cayley table of a semigroup as a form of amusement. As a result, one can create a puzzle from a full Cayley table of a semigroup but there may be many distinct solutions.

How to Install

The best way to install this package is to use pip:

pip install neural-semigroups

How to use

The simplest way to get started is to use Google Colaboratory.

To look at more experimental results for different semigroups cardinalities, you can use Kaggle:

There is also an experimental notebook contributed by Žarko Bulić.

How to Contribute

Pull requests are welcome. To start:

git clone https://github.com/inpefess/neural-semigroups
cd neural-semigroups
# activate python virtual environment with Python 3.6+
pip install -U pip
pip install -U setuptools wheel poetry
poetry install
# recommended but not necessary
pre-commit install

To check the code quality before creating a pull request, one might run the script show_report.sh. It locally does nearly the same as the CI pipeline after the PR is created.

Reporting issues or problems with the software

Questions and bug reports are welcome on the tracker.

More documentation

More documentation can be found here.

Project details


Download files

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

Source Distribution

neural-semigroups-0.6.3.tar.gz (24.3 kB view details)

Uploaded Source

Built Distribution

neural_semigroups-0.6.3-py3-none-any.whl (33.8 kB view details)

Uploaded Python 3

File details

Details for the file neural-semigroups-0.6.3.tar.gz.

File metadata

  • Download URL: neural-semigroups-0.6.3.tar.gz
  • Upload date:
  • Size: 24.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.12 CPython/3.9.9 Linux/5.13.0-27-generic

File hashes

Hashes for neural-semigroups-0.6.3.tar.gz
Algorithm Hash digest
SHA256 c00d364bc2f520be680ac9eccd972799b87ba52973050328f78c717cb5241772
MD5 27a72bfcfd87f9f1a77fb662036cd31d
BLAKE2b-256 f4a11e9a7d27e62f24b735e459375c51978fc084c1056d3cab0b5f0ee4c3cf09

See more details on using hashes here.

File details

Details for the file neural_semigroups-0.6.3-py3-none-any.whl.

File metadata

  • Download URL: neural_semigroups-0.6.3-py3-none-any.whl
  • Upload date:
  • Size: 33.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.12 CPython/3.9.9 Linux/5.13.0-27-generic

File hashes

Hashes for neural_semigroups-0.6.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b2f2c7d9d8040928c3dd31fdd4326d845c82e73577580c31dac9c52ddda71407
MD5 73597eb6308b205827071f1a573aac32
BLAKE2b-256 d9efd3a710c54c5a23166c905408c946e5d6f2270b632840befa362222ca7605

See more details on using hashes here.

Supported by

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