Skip to main content

GreyJack Solver is a 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.

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

  • 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

pip install greyjack
  • Clone data for examples from this repo
  • Explore, try examples. Docs and guides will be later. GreyJack is very intuitively understandable solver (even Rust version).
  • Use examples as reference for solving your tasks.

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

  • Types, arguments validation
  • Write docs
  • Tests, tests, tests... + integration wtih CI/CD
  • Composite termination criterion (for example: solving limit minutes N AND score not improving M seconds)
  • Multi-level score
  • Custom moves support
  • Website
  • Useful text materials, guides, presentations
  • Score explainer / interpreter for OOP API
  • Reimplement GreyNet in Rust

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.3.8.tar.gz (207.0 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.3.8-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (64.3 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

greyjack-0.3.8-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (64.3 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

greyjack-0.3.8-cp313-cp313-win_amd64.whl (9.5 MB view details)

Uploaded CPython 3.13Windows x86-64

greyjack-0.3.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (64.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

greyjack-0.3.8-cp313-cp313-macosx_11_0_arm64.whl (8.5 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

greyjack-0.3.8-cp313-cp313-macosx_10_12_x86_64.whl (9.4 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

greyjack-0.3.8-cp312-cp312-win_amd64.whl (9.5 MB view details)

Uploaded CPython 3.12Windows x86-64

greyjack-0.3.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (64.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

greyjack-0.3.8-cp312-cp312-macosx_11_0_arm64.whl (8.5 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

greyjack-0.3.8-cp312-cp312-macosx_10_12_x86_64.whl (9.4 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

greyjack-0.3.8-cp311-cp311-win_amd64.whl (9.5 MB view details)

Uploaded CPython 3.11Windows x86-64

greyjack-0.3.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (64.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

greyjack-0.3.8-cp311-cp311-macosx_11_0_arm64.whl (8.5 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

greyjack-0.3.8-cp311-cp311-macosx_10_12_x86_64.whl (9.4 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

greyjack-0.3.8-cp310-cp310-win_amd64.whl (9.5 MB view details)

Uploaded CPython 3.10Windows x86-64

greyjack-0.3.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (64.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

greyjack-0.3.8-cp39-cp39-win_amd64.whl (9.5 MB view details)

Uploaded CPython 3.9Windows x86-64

greyjack-0.3.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (64.3 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

File details

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

File metadata

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

File hashes

Hashes for greyjack-0.3.8.tar.gz
Algorithm Hash digest
SHA256 3606c14edf31d995393c3107496f2a598bebb6c0f553370479e88a7f43d92731
MD5 e22d6e3d04bd2eb04d99dae30e9a45fe
BLAKE2b-256 ae852b86abb55decf0029f2ec22fdb3200b836979eddf4192ec564013d4afd84

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.3.8-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0361014e4e353c942fb412e9f3ef869e899a2fcbf97a9b6cb0ae62f91fb6337f
MD5 e0af9d1c07def1e571482cb49fd5f492
BLAKE2b-256 cbf20b7a4a7760f169f9c5753dc6731ed8ede81eea66889d5c7727c00bfed9f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.3.8-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 74327c93ae264c955d9aeb633702e73f7808942087cfb9165ed40ca0eb153dc5
MD5 4a6d17bcaee5645623a0e4b7c26ec72f
BLAKE2b-256 69780db5f39360a3bb08078183059ab978cf28425afe810178d0acdfcecf361d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.3.8-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 df584dcdf6f11d77c15cb0e670885212cb9b07227e764b596a429c4b2d34233f
MD5 2f543118d5da425cab805d81ec56d3f9
BLAKE2b-256 9432681552930de3728883cbb4111ae84e5266dca56c40f4e2252a21001111dd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.3.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e952b1247aafb8eb2fcff4075cde829b03b5dac22d6b4f2328231395331d739d
MD5 20398b22d61c163b50234ca8edd3d0da
BLAKE2b-256 e82b8c8141a07f3545c0197ac8e254420336ad4a69bce6400458b6b88ead3de8

See more details on using hashes here.

File details

Details for the file greyjack-0.3.8-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for greyjack-0.3.8-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a8c6cbd1e2fa373fc3dd98f5b93e88c2392de39ba2af1dbef004801bd23244cc
MD5 1c16c1fda3b43e19861c1ab2ddda8567
BLAKE2b-256 b7e994c2f14934dbe792d67c8939976a3d4c9c97337f69cc5c2578cbe6e98237

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.3.8-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 075b8a56dbcd922a4a749c7ff7534b4be1277a5ddace8b2ae9d120671c871943
MD5 c5d6200ca5a77eb4967e61cbe80f0b20
BLAKE2b-256 7486ae9d82b1eb15771ad6b05547cb8f4a5b7090feaef400558479b4fa292c7d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.3.8-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f563442479828ef6e52ddfa922594962ed20c9b077642491308c6a95e79e84c2
MD5 de9551f6c845b93757ad8467747cb76e
BLAKE2b-256 bb30dd182a5d2d5cf229d2a2efd433b460590dc3a40f54ebcf1795ac634c9417

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.3.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1dcaeaf6dd6386af112f4bd4fef751ec2684d8779a27d09f45e6f9fd60686c7e
MD5 ff0af534eccea5d624d5603639607cef
BLAKE2b-256 8c99dcab4022ad46ae09fa1bcc0f683331028407103b031b373ff870747c12e8

See more details on using hashes here.

File details

Details for the file greyjack-0.3.8-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for greyjack-0.3.8-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 45512e4152bd358da29d81a67960027601776c37c5fe1c7e34e24dba6acb5bea
MD5 d975830dc4cd4a5f3eb2919d2853f7ce
BLAKE2b-256 c44532740660f7343af461eda3798e300dcf66ec171ce106020522dc70863188

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.3.8-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 97a5ac818042f93b7bc489c08a7e0d8f22f51044fc8c04b6d7efc98060409433
MD5 18ea09b26bae02e03388c8dc96e6840b
BLAKE2b-256 db3efd1cd2706693c12fb65523c2ba53138f5bcbb873fef3ac5bdca2b3d3db84

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.3.8-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 dcb3c1055a17c3bda57fa39a29a3a6ed8ba6802c026a29b259967ab105faf848
MD5 40aadacb35d9793e5b8bfbb268e74cbb
BLAKE2b-256 b047c22b43465c7ebd8efbfef6d11d43a85d5620a32787abba042a5f2b9941f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.3.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c7d2c9ea6edb00bef6eb1e380c3a3c634ef5e1d4b038b5c9d2ecfe2789e34a47
MD5 e03be31d219c28839697371dbfb6713a
BLAKE2b-256 ed327ce351169afba16680f96aa21c5b9b7ff2ac791be5f4cc292a1166b30fd1

See more details on using hashes here.

File details

Details for the file greyjack-0.3.8-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for greyjack-0.3.8-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 aa1c69921c58e1d3d7cde525086b28f29101314ba045d907f6a835ba5c5a436c
MD5 aeb7dbaea3747189bc26be72d49072cf
BLAKE2b-256 5bc28451c02997ac269cb9528f642ad4f73bf3ddcfcdb5c248ceaa2022c020f2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.3.8-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5edffc1fb18abf6fdd23c4687664680be15316277d45fc5ae198b89ad4a31d61
MD5 59d66b448f6f2e867f53f56f89166d98
BLAKE2b-256 cb649fb40644010fd60a180c8609373b455a4e59a5bc15a088d8e3269d5de6b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.3.8-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2919f5967d0a865b6832ef7dff61d8d41bc65a35eb3e103969a3176a7a9487c2
MD5 4f8ba2fd88c0b80d5cf1079ab2af45de
BLAKE2b-256 f13d90fd66d5fa0ed15645c203ed179a14f9bc25b322685589a25c5b5f97a739

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.3.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 09db1f9c46f9600f265f61c2ab87c166958cfed67b5d8ef8260ece40608c7a0d
MD5 28af388ab0eb8485fa1ceb26e27d78a1
BLAKE2b-256 2bbec3c57ad76c88d2b864bcbc5c39620c963c63f2df48baf422a9e1c3fa8ae5

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for greyjack-0.3.8-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 24f6e073dc2b19c4cfe7e41c37280fdc5dcd28d627cfdc5410c7cc159beff41c
MD5 02f7f48557a797d2ccef3d7cb1df995f
BLAKE2b-256 99414be7be690c550e0f40bb2d5da552414597dd0831f4a77facd7e616f4780b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.3.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 28ce08ed07407ebee0193e06afe7b97bc0f04878e8117b3e63979a9e3b5c2391
MD5 8d64cc8b188aa8d73f55182e1fc95e47
BLAKE2b-256 24ecb7a9f036cdf5b5d8d2bbc189751c1b692f7f2921a59f3a076d91db46e483

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