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

  • Add more examples: Job-Shop, Pickup&Delivery, some continuous and MIP tasks, scheduling, etc
  • 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.5.tar.gz (89.5 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.5-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.5-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.5-cp313-cp313-win_amd64.whl (9.3 MB view details)

Uploaded CPython 3.13Windows x86-64

greyjack-0.2.5-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.5-cp313-cp313-macosx_11_0_arm64.whl (8.3 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.12+ x86-64

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

Uploaded CPython 3.12Windows x86-64

greyjack-0.2.5-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.5-cp312-cp312-macosx_11_0_arm64.whl (8.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.12+ x86-64

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

Uploaded CPython 3.11Windows x86-64

greyjack-0.2.5-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.5-cp311-cp311-macosx_11_0_arm64.whl (8.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.12+ x86-64

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

Uploaded CPython 3.10Windows x86-64

greyjack-0.2.5-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.5-cp39-cp39-win_amd64.whl (9.3 MB view details)

Uploaded CPython 3.9Windows x86-64

greyjack-0.2.5-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.5.tar.gz.

File metadata

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

File hashes

Hashes for greyjack-0.2.5.tar.gz
Algorithm Hash digest
SHA256 2de430a7c4b7a47c884c5773873bfad1d65ab032fc35f8b4c4e3a8e2ca762afa
MD5 fd7efe3ce2347dd20ee55aeb70d9b845
BLAKE2b-256 cd2771b0083187701380deade169fc28591d5d77814873f3f54f72fa3c95d3e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.5-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 41b1ba723de5912b370a44cf88b56d0d4abb6684d1c0855617910856ec37fc92
MD5 231b621beb2ae437618cc4658d7a590d
BLAKE2b-256 9a1690f4a0cf9a7f200765fc7e9b5a73739bf575611933adc78d2929eebc2c85

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.5-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 51094f4ba0a633df76482a41c3f3abab3241e750a88d27eaf70f86c98838d3e2
MD5 a179610d21b8795f1912c66d5fb20a6f
BLAKE2b-256 22dd586ee315836547f95dd4522be21685193393824e22ce676e4a40411bd979

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 9406e65fc2aff511bc713a6d9b6f974391fa11eedcfd38f8318c0555fa8ccde1
MD5 f02d7a781bc6e861945a20de5308e1ee
BLAKE2b-256 04c47afe077e8f1b915d9259e350bfdad0f037b999985e50a0606ff4f7b756a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 64114eff353850db1132f04c9c24f0a641645f50f3376462d2056056b5fa9e7b
MD5 b6c5e3ac97d0938a678481332eb6bfe4
BLAKE2b-256 41e763f640d6dfc521047e80c5bc2d0627ec525e1a66bd35de54f0e55b0ea41b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.5-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e7a105bb3b7b4a35f27fc3b175fe3ca6ba4f5bafe866ed7ca249d0c3a969dafc
MD5 b9603c52935a7229be7643fd0fda0bfe
BLAKE2b-256 ebb1fb7815b540389e84ec8a076f3ec0a21324a2f7943eba9fc8d8a77ed214eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.5-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f9ea24807d7a7b88c04afa6dab86a97d8f4f3b3ef5ce0c2905b44a6199f17418
MD5 afae7bb11de66bd36546633f7428c9b8
BLAKE2b-256 2fa87a42a38775f8b5371e3501c75d5fe843082a260469f208504a66a2279cf8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 286947298dee98467afd70cb4e1bdc91569ba9e741a0c60a84114286f7a02b3b
MD5 9684296b90fcf899f903888d9672088a
BLAKE2b-256 b7ec9e394cf29614f9da228e6b25d5369b1da11c5ea9415b445a904b4569746e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dbaf1426bd10115d3f8becd97016e4f4f475d5fc73f881205a488786f5c5a317
MD5 fbdcddf60c8a1b385d595ae84a6cb3f7
BLAKE2b-256 37cedd46c5f569f7b910bdc86b1c710b1c7ee4177c52ea85c68c6ccbe44db98b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8fbcc77072290f66a9a59a0d64b0440c391b944e3d43a6a4c20a59201e688504
MD5 e0bb39d305b61e07cad40a61537511c4
BLAKE2b-256 cd6e1a73ebd9f2455153894262eb7a7c3e8325b458f68d3634a1f87d674a0254

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.5-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4b40d7d847c149172a05e19d0552263d61e60776bbaf4d18c10ce56b08589dfd
MD5 8cc8a8e3b1fe86fd2a61413f9ab59cd4
BLAKE2b-256 b07ccd98711cd1dc04124a376ee01ae1947b530d298ed1c00128aa17daeef0ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ffec222dcfb5833516a37f4c4773060b02e7d6e1e32ac2b4505c6ee9c79ba1a5
MD5 6bcf21a68460741f886a2e18491ddcd0
BLAKE2b-256 c98f5e712e87e2528fe7223a32166070ef8982d9093e7badc5910baac7ff73bc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8fad06d2a9478c1b04c99996bd7fd67ee4b59b4d9977d3d96b874d83f9a4d893
MD5 9d9032f3a957b4e8584323ce6173bfb6
BLAKE2b-256 8fe48abac86e573d4494901815331436e66cdae79c629b826565df09fc901782

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c1858e266b8d83f34cf51768f21cc832729af473215f0b651e187971043e458f
MD5 87964e117c736d54832b50edaa41570a
BLAKE2b-256 760abf10c5566d12657b305d9cedea8a99253d7c986bc8c80a1bf3e7fbfae62c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.5-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e5431f4d83217c61ecb362e412e46eea5b61c0da92f874682f0667d8ff8bbdd8
MD5 de6e3cb9570ce4f963641037a4be27e9
BLAKE2b-256 8cc04f82047bd651092e10097af7e0795b92ee805c7e2aede5298ec03f77cb6d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 481813d8c5ffe4a080d19fe587059a5f6aa83469e9a277ed4fba3bd8a3040036
MD5 21d0ef010048dbdaa172c1867a3efd97
BLAKE2b-256 e2da57f52e2d976be13de1a8ffae7d9ddcb12999a4644db0fc82c3aad8ab0001

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e71865a873291043e470ccd2ee21d1bc4654b441f721f202bdb9d830bfe910eb
MD5 7662d5e1db82e4d823d6ea78c73bf36b
BLAKE2b-256 4a1af2bd95b82e830d48b8b89290da524a522f5e74a44707e995fe3968301889

See more details on using hashes here.

File details

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

File metadata

  • Download URL: greyjack-0.2.5-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.5-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 1d9908aed12c486ec51e963f7b4ec434a75001a26fcfc08503146a03d30027bf
MD5 8003d089440beb310dbfd1158234a87d
BLAKE2b-256 663cc25da7fe24064b00037676683c842bafbcea388056fb69051a48cd7f2389

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c1f5696b8fcad0cc243941633b76f5400d3b0d7953532b127660f7ed4d53810b
MD5 51e7750c325c55ccb600bb943a3a71a6
BLAKE2b-256 8b7485f08f524fcaf9c49487a8dcad677778aba1eba79f44fe2586cb3b9ff8c0

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