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
  • 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

  • Types, arguments validation
  • Write docs
  • Tests, tests, tests...
  • 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)
  • Website
  • Useful text materials, guides, presentations
  • Score explainer / interpreter for OOP API

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.2.6.tar.gz (89.4 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.2.6-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (63.8 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

greyjack-0.2.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (63.8 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

greyjack-0.2.6-cp313-cp313-win_amd64.whl (9.3 MB view details)

Uploaded CPython 3.13Windows x86-64

greyjack-0.2.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (63.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

greyjack-0.2.6-cp313-cp313-macosx_11_0_arm64.whl (8.3 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

greyjack-0.2.6-cp313-cp313-macosx_10_12_x86_64.whl (9.2 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

greyjack-0.2.6-cp312-cp312-win_amd64.whl (9.3 MB view details)

Uploaded CPython 3.12Windows x86-64

greyjack-0.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (63.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

greyjack-0.2.6-cp312-cp312-macosx_11_0_arm64.whl (8.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

greyjack-0.2.6-cp312-cp312-macosx_10_12_x86_64.whl (9.2 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

greyjack-0.2.6-cp311-cp311-win_amd64.whl (9.3 MB view details)

Uploaded CPython 3.11Windows x86-64

greyjack-0.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (63.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

greyjack-0.2.6-cp311-cp311-macosx_11_0_arm64.whl (8.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

greyjack-0.2.6-cp311-cp311-macosx_10_12_x86_64.whl (9.2 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

greyjack-0.2.6-cp310-cp310-win_amd64.whl (9.3 MB view details)

Uploaded CPython 3.10Windows x86-64

greyjack-0.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (63.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

greyjack-0.2.6-cp39-cp39-win_amd64.whl (9.3 MB view details)

Uploaded CPython 3.9Windows x86-64

greyjack-0.2.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (63.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

File details

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

File metadata

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

File hashes

Hashes for greyjack-0.2.6.tar.gz
Algorithm Hash digest
SHA256 38b640dfbf34b2c9cb4230bebcb997a7cb1afd0a5e7fa0627622aef3cf494aa0
MD5 6aa0ee50a1552f3ca5db22d24781544c
BLAKE2b-256 f18f65ad32b2261a3862834772e62f67ae4b2d8d2ded89fe8a228c8bf37dfd63

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.6-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3ff305609f50af7846ceb2d18fbf358f78532f38961fc731066e9ba1803a1dda
MD5 7e36ef5090cd8f9a3780f7b5444eded9
BLAKE2b-256 2fd4d11daa830850f387c9a0ec10651073338764e99d028daa7ab9eb756a71c8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c1f23e26e50de8cc647e1318697f934b40a112b44676c513bdac72780ce5d141
MD5 657b39d1e80dde87ad371bde121de018
BLAKE2b-256 ee7ae68d85171d497108da36ec1985d810ee8cc660adea328754106e55b5802e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.6-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c4c8464fe9c6e85e5a65e7032481f26c840a090f61cbfa8d949060c1394a42bc
MD5 ca30cdf8fa6d5fdd67f63758499e0b72
BLAKE2b-256 dacf2247289740688fe0c72d69b0bf8acfa317d69ac533c88a35e5900a2ebc10

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9caeb2d96e2c1576891c355ac24a3c80bbbf7957b15a670bcb8bb984b2d1ea7f
MD5 23cd40087590be3566f316f938aebc53
BLAKE2b-256 09a87711a4b345bec3951764649724b9cb40b1ef6cb797683f0aca226eb5c63c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.6-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 29bf6eb659e98566fd2855c51f07da3d1277bb5a284d37337ba32dd0c9ad41db
MD5 204a87db4c37667f74a3bb157f25896d
BLAKE2b-256 ee10162984d48b29a34e6e5e55de66379dca634fded9ec6a23ac1a920ada0be0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.6-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 82742141813b27e81e0236e58f23fce0f5edb9ef2b027f47f74ce402a476c3e3
MD5 036258fc0efaa283326fdbbdad8f21d4
BLAKE2b-256 306a37e15603c216d5973df2ca0ae37d5d6909bf18f9f92dd5c6799c1579f9a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e40c39d00302ca7d367578274f2d0c91a3850e920f64ac132ce071f796c7e02a
MD5 018f6955fdd77eefbcf7d3ba6ac036e5
BLAKE2b-256 325dfc600bb9e9469ea46ca99d2222f05fabfbce52db64d74caf320c0669b089

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e5929bb6da255335dcd31d8d369f94d0a58461e6e7f169dcaf4b806e588426d4
MD5 127326dd3ba552ed76b2d7ee4194808c
BLAKE2b-256 62c12fff553c07467c22b86fb06dd4381a015f4cdbde8518c7e8377f7d0e14f5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ea4d67fd56206c3c68153fdf669b7b957c9b3953ebc9c8371d90b0f5c9c0cc52
MD5 29191e28591f8d809466c6d48d463660
BLAKE2b-256 463dc815b2ca51f6f96114c60a8dcb565ec9771477a8b9a5ef08719490bf27f5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.6-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 bc1a69aee0a4ccd7de0728552ebd9b7e7184428736958292d7394a712aaa34f8
MD5 2488d28a6dccd42fda8871bae70c8443
BLAKE2b-256 d900f42f2721a4e95e12c96954f3e4dba46ec8b2e6e35a2e6798959f08bb9871

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 22a28d73287031349a1355f50eeb1f250e9718ec8367f123eaf48e22408d7774
MD5 9d3fa2be05c32399e61164781623c73d
BLAKE2b-256 053a1d502678a69397d6d8ad6c4d19ee842480fd2258235b6e44af9e94c0b6b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5f9e38a6879a041bc79500b4be8824a233078086730bb23ac0cd3724a9289d78
MD5 90136991644430d669e235ccaebb423a
BLAKE2b-256 07c6741ae3763344363e243faec598bc7810ed04961e71b7935d3ede5e055dc3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 49dc08d72c3607f5911ad4d01544fb0a217110b81883d93a98b941e431fe7afc
MD5 36451fc05b36dff796081e729fecf185
BLAKE2b-256 2ba8ccfbaf8ec2f0a7c060893ef8d4528befda7c80be3ff8f9b23eae1ab75fc6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.6-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 baede0401696718465c0bf4886472c20e5dd9e90707a31d11c47db49ace2a743
MD5 428f3af4f03a264622205ca3bb8f9701
BLAKE2b-256 e2a58856b2c581a121047d5ab62f6e8207801a1f8a74578643eb50e4e102dba0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 19fcbb3ce72d33aec2a17931ff76f580127ac05538ae0718f9a131c33405b98e
MD5 c7bdb08119c00d0e19727a8266a4031b
BLAKE2b-256 0927b4811042cb2844a1ee4ca821ee59049429cc8ec95f4bad45dc40cea8e2d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0729007a411ce5f83646a1c8f406db806790caca67d2a1f62113eb04e527d498
MD5 032515aa783f1cfaf864d3812d24c789
BLAKE2b-256 b05e046779fa279430d47bba65db407b8821bcb5d66a0147b16785a458f0cd2e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: greyjack-0.2.6-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 9.3 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.2.6-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 b6082bf91c15143ae325d9ae2c4e2b2ee1bc4508c5caeffcff4033ad3c1494df
MD5 3a4033db902bb5b830774342f9a081ac
BLAKE2b-256 206b7d2c149f216ec72381908dca03118c0ad3c56d3e18ca1cc6b298eacd6226

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5631ffc31f174246c2e036a8ae6f38bba8c2c9dbb522ed7efec7c06a0e1ff693
MD5 391c05e7883f7ba046739d0eecca7f70
BLAKE2b-256 8190207aa71caf39721fef7b23c9feadfc31b0d671fee4bd62e3eded709c8882

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