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.1.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.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (63.2 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

greyjack-0.1.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (63.2 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

greyjack-0.1.1-cp313-cp313-win_amd64.whl (9.2 MB view details)

Uploaded CPython 3.13Windows x86-64

greyjack-0.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (63.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

greyjack-0.1.1-cp313-cp313-macosx_11_0_arm64.whl (8.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

greyjack-0.1.1-cp313-cp313-macosx_10_12_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

greyjack-0.1.1-cp312-cp312-win_amd64.whl (9.2 MB view details)

Uploaded CPython 3.12Windows x86-64

greyjack-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (63.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

greyjack-0.1.1-cp312-cp312-macosx_11_0_arm64.whl (8.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

greyjack-0.1.1-cp312-cp312-macosx_10_12_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

greyjack-0.1.1-cp311-cp311-win_amd64.whl (9.2 MB view details)

Uploaded CPython 3.11Windows x86-64

greyjack-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (63.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

greyjack-0.1.1-cp311-cp311-macosx_11_0_arm64.whl (8.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

greyjack-0.1.1-cp311-cp311-macosx_10_12_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

greyjack-0.1.1-cp310-cp310-win_amd64.whl (9.2 MB view details)

Uploaded CPython 3.10Windows x86-64

greyjack-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (63.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

greyjack-0.1.1-cp39-cp39-win_amd64.whl (9.2 MB view details)

Uploaded CPython 3.9Windows x86-64

greyjack-0.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (63.2 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

File details

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

File metadata

  • Download URL: greyjack-0.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 648f526120b256c321ca6d77f5b51c2e783d29ac6faa8b22b1181c397cb1d9ed
MD5 a134d7d91a05a523ec0d2c120dbc4c45
BLAKE2b-256 ac656b2586905ebb7a9f4bdda44d53555b04fa73d21c4fa72b636e74d022763a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.1.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e2136e390d84767e91e6a4e1d5bf8041defa75dd62934589cf64f5fd7ac6a236
MD5 07b1a07e1df22a1e62b405988bb4c0ce
BLAKE2b-256 5e0779d8421220a964696665a47ba3f8045f219a0526856061441767c8af772f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.1.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6ab7b22690a1eab47d53ede75fdf18f0135931a84003507067684afca889f410
MD5 332b0a1b643b9e72504bfafdd0bd419c
BLAKE2b-256 afa77dea43d28f5238f9555e8ed7efe41b33be1b8e2b01c3a722fb4db8c6d9cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.1.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 5ea9c57e8ca7ec732196a0778f74fec4d0a7094d964c552e6473d0a68edd0448
MD5 26630a561f8e4ff1114fffbdea6412b3
BLAKE2b-256 cdaa8f320f8ff428a349b484f89ba9817d32cceb6d3155558752e065323dd4d8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0218b1788ab339f75e15f385e68fca48b5e0bc8af034bc46e5aa308ff83db8bd
MD5 0a8d6192588e80efaf71f7becc4723aa
BLAKE2b-256 df917a3f3f7ad7169fca431ca7a7fb684f7bdd09669332eb43247aa2e247a058

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.1.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 77836b41320d0ec837d7d370015948778f84b3e719baf3a1eb82c7b9f37c5b02
MD5 344ac00156e148ebe8ed47996e9204ee
BLAKE2b-256 88d79f3590af31a9926847b698b4f68518baebb0d7c74d94d620b5bc110d10b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.1.1-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6c537b4832c26bf689e71f1d57d41b67675fcc5c70b9f4755b5c620dd7cc5142
MD5 e394a0ca92e33dee7545a7afbbfae21a
BLAKE2b-256 e86c91566da1d919b724d68dcbcb83aee5e9cded82b62f3431d3d723b90a6a81

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.1.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 4b9b37ac81870ad640c8abbe40138c700123152a2010c905b6431d551af399a8
MD5 00f1148eace8c3aa322daad0bfad6446
BLAKE2b-256 d64c85d776a1b39cadb90f059cfdf53f1aaac0acc378e5a5b80b3527d74f7435

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6c4b746ad402d05876d38077ed6904beb7a79a4828b132f010eb2a1e604c2021
MD5 ae3f4f7db63e00e8a823b753aa1847ea
BLAKE2b-256 4134b02672c783a8199f18fc0abdfd5427d15b84a4740d28f1383ab9421b3ffa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.1.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 93c21e6a910118eeb83293690a0df33fefc048c7a3705eadc660f6db7b79f889
MD5 d9c136501626a1cebf7c5893738b6e86
BLAKE2b-256 853b256319ada2b546f626b55116b40ec10b98269d342cc2f8452778160f037b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.1.1-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e72dab4912f503125454fc56085214d1f50c5b571f94758de8acff33126d7cf3
MD5 651d1fbc44eb5944a81cf2734d168974
BLAKE2b-256 6167d886fa102dbb8b8ca42724ef6eef0a0d4a59ba68f16e8c767fa802dfa4d8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.1.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 25b7dab0fb6fe0207c2573f4dd98c848dc012e0cd62774ad7fcb5f67abfceb83
MD5 b880d1e149d98c25e1d29a60ecbb4e6b
BLAKE2b-256 02fa05aff227c205d8e8d8f2121e96e469eb081f6af4a5f381fc430ae16ecdd7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d2cdc4ea91ce879ad1fb73a2d1299ae8de6f83984f6f0da3c3d552c476b194c9
MD5 2647113b84f150a623d806f11689abfe
BLAKE2b-256 0fcad8e3dfeaa1c88e371d854e3671384c6013f64637ee0ba6583b933d183277

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.1.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 919d92a82d3eb107b4001fb576b69a2179b8f3527c7a8fbfb5777fdcc959c1e6
MD5 ab0556298f18c618c92f669b52fb20dd
BLAKE2b-256 b8a4d31fcd8d6baef04b1351d9c338a492812cad0a26de724ba3c44392a94a0c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.1.1-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 03044b947bb692faafc637d100e2fe74633f24ea05d9f924d67c3f845801404f
MD5 68d7e4e111c6be0c08e763b48592f97b
BLAKE2b-256 6410429691aae244dac02b5b99d2cf7d0c7c5fe262620ccab627910d98ad2f21

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.1.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 10a39acc525cea701794fccb8fb907ed4abe15327aecbc942f7180151c24c2d5
MD5 9fc52340288cab57b3f47434a6c42658
BLAKE2b-256 fefd4c676e7a09b0deb660a2ac186a11f7ee27a4448de2500231035258e863a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f30858074f5ab9e5cfbb62fa9d46b1a01a2e85fd6cc39cc718041d89c1e77bc3
MD5 689220d7011442bc124f493362f18eb6
BLAKE2b-256 efff4727080154e507c31b0bc336fbfac12c2d63764838084e4b5377400c10f8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: greyjack-0.1.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 9.2 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.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 db607f32531841dd4ade41125a236526dbf747ae1de318abc28923e264a79a3a
MD5 d856ca2daadb8eb14080aa5484dcac73
BLAKE2b-256 0bd13d869948a541163cafb1fb98f91c989bc16e538d156388d73c6697e60abc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f1af8f360861999ccdd13090ab667e3a8626a38d8e3cb32885fa34c1f286cad8
MD5 bd8a1c2229aaae2020e387d0892d456d
BLAKE2b-256 07f3f2f3f93a01dd35b7d43f348c351b7dc559ddcdfd4c702f09cde755862843

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