Skip to main content

GreyJack Solver is a metaheuristic constraint solver for Python (current version) built on top of Polars. It empowers you to solve a wide range of constraint optimization problems, including continuous, integer, and mixed-integer challenges.

Project description

Preview

In optimum we trust.

GreyJack Solver is a "jack of all trades" constraint metaheuristic solver for Python, built on the robust foundations of Rust and Polars. It empowers you to tackle a wide array of constraint optimization problems, including continuous, integer, and mixed-integer challenges with ease and efficiency.

Editions

There are 2 editions of GreyJack Solver:

Key Features of GreyJack Solver (Rust version)

  • Unmatched Comfort, Expressiveness, Flexibility and speed of developing Designed to express almost any optimization problem with maximum comfortability and clarity.
  • Universality Supports a wide range of constraint problems, including continuous, integer, and mixed-integer challenges. Additionally, thanks to Polars, you can optimize virtually any process that can be represented as table data.
  • Python's Comfort Meets Rust's Speed All computationally intensive parts of the solver are implemented in Rust and seamlessly integrated into Python, offering fast development cycles with production-ready performance for ~95% real-world tasks.
  • Clarity and Simplicity GreyJack provides a clear and straightforward approach to designing, implementing, and improving effective solutions for nearly any constraint problem and scenario.
  • Nearly Linear Horizontal Scaling The multi-threaded solving process is organized as a collective effort of individual agents (using the island computation model for all algorithms), which share results with neighbors during solving. This approach ensures nearly linear horizontal scaling, enhancing both the quality and speed of solutions (depending on agent settings and the problem at hand).
  • Support for Population and Local Search Algorithms GreyJack Solver supports a wide range of metaheuristics, including population-based and local search algorithms, with highly flexible settings. You can easily find, select, and configure the approach that best fits your problem, delivering optimal results.
  • Easy Integration The observer mechanism (see examples) simplifies integration, making it straightforward to incorporate GreyJack Solver into your existing workflows..

Get started with GreyJack Solver in Rust

pip install greyjack
  • Explore examples. Docs and guides will be later. GreyJack is very intuitively understandable solver (even Rust version).
  • Simply solve your tasks simply.

Install GreyJack Solver from source

  • Be sure that you've installed Rust (rustup) and Python on your machine.
- (create venv, activate it, cd greyjack-solver-python/greyjack)
pip install maturin
maturin develop --release
  • maturin will build the Rust part, get all Python dependencies (for solver itself, not examples) and install greyjack to your venv

RoadMap

  • SimulatedAnnealing
  • API for modelling pure math problems (classic solvers like)
  • Modern variations (modifications) of LSHADE (Differential evolution algorithms often appear in articles as sota approaches)
  • CMA, probably its modern variants, adaptations for tasks with integer and categorical variables (often appears in articles as sota approach)
  • Add more examples: Job-Shop, Pickup&Delivery, some continuous and MIP tasks, scheduling, etc
  • Composite termination criterion (for example: solving limit minutes N AND score not improving M seconds)
  • Multi-level score
  • Custom moves support
  • Try to impove incremental (pseudo-incremental) score calculation mechanism (caching, no clonning, etc)
  • Write docs
  • Website
  • Useful text materials, guides, presentations
  • Tests, tests, tests...
  • Score explainer / interpreter

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

greyjack-0.1.0.tar.gz (78.9 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

greyjack-0.1.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.9 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

greyjack-0.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.9 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

greyjack-0.1.0-cp313-cp313-win_amd64.whl (9.7 MB view details)

Uploaded CPython 3.13Windows x86-64

greyjack-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

greyjack-0.1.0-cp313-cp313-macosx_10_12_x86_64.whl (10.0 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

greyjack-0.1.0-cp312-cp312-win_amd64.whl (9.7 MB view details)

Uploaded CPython 3.12Windows x86-64

greyjack-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

greyjack-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl (10.0 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

greyjack-0.1.0-cp311-cp311-win_amd64.whl (9.7 MB view details)

Uploaded CPython 3.11Windows x86-64

greyjack-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

greyjack-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl (10.0 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

greyjack-0.1.0-cp310-cp310-win_amd64.whl (9.7 MB view details)

Uploaded CPython 3.10Windows x86-64

greyjack-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

greyjack-0.1.0-cp39-cp39-win_amd64.whl (9.7 MB view details)

Uploaded CPython 3.9Windows x86-64

greyjack-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.9 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

File details

Details for the file greyjack-0.1.0.tar.gz.

File metadata

  • Download URL: greyjack-0.1.0.tar.gz
  • Upload date:
  • Size: 78.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.8.3

File hashes

Hashes for greyjack-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8e0ced47661ef4abe27f90bfc020a3f13fbae2d53bff3dae2d4acd3665a8154a
MD5 4db82fbc28b3afdbc1b644d5e0cfd44b
BLAKE2b-256 8250c3400941fb1643ac75cd781666fbcfb2d2127b7812a539779f5f5512987e

See more details on using hashes here.

File details

Details for the file greyjack-0.1.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for greyjack-0.1.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 be572a683c330e847a31bdbda2e34421f5301b633c38e74c27fb8f8fc1857767
MD5 b36e4ea375eabc4d0f479886ea673e21
BLAKE2b-256 3f7b97c977290ae58c7c2a6dcbb4f9e60926c56be659f6e8aa6fea5d1743ea7a

See more details on using hashes here.

File details

Details for the file greyjack-0.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for greyjack-0.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3089de15f2afa280df0d70f1a40e9a3e5744374a8a7ee91d519d29abda01c62c
MD5 99f1db77b393a329bc6c715dac369e4f
BLAKE2b-256 8a2cd75dfe851f9958e35847615533617b7902a7347d69ea241496ea1f7f934a

See more details on using hashes here.

File details

Details for the file greyjack-0.1.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for greyjack-0.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 cdec1a89a6635a9e2601d712865414511ff1f1f0705b1cb2dd9d6027c32b3f09
MD5 1079069e47fc295a9362583f42e9cd9c
BLAKE2b-256 3d978b8d862cfe8c7138868f9ce37689c4a95274747582fc371e33854c9574fc

See more details on using hashes here.

File details

Details for the file greyjack-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for greyjack-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 952740aa0f71315e1fefd7421b08dad4fc334105a946b08f1180b9f8fbec9113
MD5 de0d6867340b79f777d65b5d58081d4c
BLAKE2b-256 d60099b5a58aeb2e6b69254e472d22bf59244165ccdf8ec16f9905d33384db7e

See more details on using hashes here.

File details

Details for the file greyjack-0.1.0-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for greyjack-0.1.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 12470b60a50b7e828b4db0c2c281e4a26b795d2ff56323a4e582a69a0c82bd6c
MD5 d74f444cce2e642b818ee65490fab7b2
BLAKE2b-256 094eddb59e930593dbb6f9a0f18808c3e7a8b270b84c09567882e8c9f7dbe580

See more details on using hashes here.

File details

Details for the file greyjack-0.1.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for greyjack-0.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a7da234edd15fbc3f757653836116ff3049b5ac8b3cb890e340f199470779447
MD5 2ab18fd69be8393544659f5a329317fc
BLAKE2b-256 640961184056cf3c8e3fdbb6e0ac0cb146f9ed1a383a35e4afee28bfda83f46d

See more details on using hashes here.

File details

Details for the file greyjack-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for greyjack-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1c8e1870c3b3a1b2e6fee491f14324d9466d0854a4e4144441cc175b4db27717
MD5 9abfb4cd8620e3f9219b46409aada3e9
BLAKE2b-256 a31f868e4bcd86586f66316b13a7c062515986511dd8cb03ba7376abdc26b3fe

See more details on using hashes here.

File details

Details for the file greyjack-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for greyjack-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d00c126cc2fc3c6ecb14cacd3ff649403493c4b41ff997b4880e76c128c276b9
MD5 36d77d07c760177ae40674c8b30741e3
BLAKE2b-256 619e4f655434899c5c6f62a1e4d41a1c5249929b25658e43a097d2cfb2c4b9ad

See more details on using hashes here.

File details

Details for the file greyjack-0.1.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for greyjack-0.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 544374e998abd63d33348e4db62978517b421ceccaa646fd99e90f906daafd57
MD5 971995d02c25dadc3013997cb91b9e61
BLAKE2b-256 d4734fffb7cb130810b32ebd506d849af5ccde5921d21a9c6b7bed8846f606be

See more details on using hashes here.

File details

Details for the file greyjack-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for greyjack-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 df9c243b0e27124f59d72d48ce80ccf8129887997495e9439d125c9280d68e5b
MD5 a3d1853a6a26fcc8adb9aaa6019dfdc9
BLAKE2b-256 331e77cf82824e0eb7bdade3c280dd4ea3198fb92b154c0f37d6d5dd66b9fc2d

See more details on using hashes here.

File details

Details for the file greyjack-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for greyjack-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e570b45640d7bc3252c40a894641ac6b37b0a3ae8773d24d95a1a94f9e1181fe
MD5 5e28a90d553ba6871062117f152701de
BLAKE2b-256 17d34d29eb18ceec94634c5f2d207c79c964e396ca446f3456187d0f9a2e71d9

See more details on using hashes here.

File details

Details for the file greyjack-0.1.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for greyjack-0.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a125a4a967d9414cc8ae3ddfecbe61d935015402a8ddc3a25f0e63a3b0c7cd71
MD5 0777f9e7b2fe12ce4cf54e47434c95bc
BLAKE2b-256 49ef58d886d7e5f4fdff295899c009f18eb3b55da3435602174d20ab5cf1c657

See more details on using hashes here.

File details

Details for the file greyjack-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for greyjack-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 16c27a4e7046c892d18a2e438170e76a88b8c6055026dd4ecbdebfe040064918
MD5 6d81ca8678a1e7bfbdc5a0d8fd53dc40
BLAKE2b-256 19f906bdd0cbb86d04a58d84a7cc8e2dc9f40952569e89a925940929ffbbf9bb

See more details on using hashes here.

File details

Details for the file greyjack-0.1.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: greyjack-0.1.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 9.7 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.8.3

File hashes

Hashes for greyjack-0.1.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 1cf0df4d5815fdba4aea92f016bb63e0585cb684d3ab179f7df9c8740652bb01
MD5 eba15bf6010b6a8c4860f6e1e250a6b2
BLAKE2b-256 f6c2bd6e68d390526095d0cf3f900609122e31ee848de27f2272bf51602fa925

See more details on using hashes here.

File details

Details for the file greyjack-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for greyjack-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2e3838158b6d7f3f30a26518a52b3683c13d74751e1e89d6d453ed98a324d931
MD5 32b94ef72e6623b97c0345aeeaababfb
BLAKE2b-256 a5afb080cfe7f43bb530318c26a2e9a0503772b3fa7b56f4bea9ab5d35605286

See more details on using hashes here.

Supported by

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