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

  • 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.3.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.3-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (63.7 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

greyjack-0.2.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (63.7 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.13Windows x86-64

greyjack-0.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (63.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.12+ x86-64

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

Uploaded CPython 3.12Windows x86-64

greyjack-0.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (63.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.12+ x86-64

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

Uploaded CPython 3.11Windows x86-64

greyjack-0.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (63.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.12+ x86-64

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

Uploaded CPython 3.10Windows x86-64

greyjack-0.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (63.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.9Windows x86-64

greyjack-0.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (63.7 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

File details

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

File metadata

  • Download URL: greyjack-0.2.3.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.3.tar.gz
Algorithm Hash digest
SHA256 1ed6731b4d0c953c5c312bc58fd6ac59f9402916ff731a5326065f4ecb5e4ebf
MD5 c7ddec73f865c801eab8dd8c2c928108
BLAKE2b-256 c0bd7021e4c753e753af4fc34ec2a651a28bf6fb8ab9462114a7b0fedaa3c361

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.3-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ed17e36f45f50112ec7eab82d0a9550d18c16f22c5a3555314111c03c2a4e5ce
MD5 b07d64ef909e1b21725e7707fbab0a90
BLAKE2b-256 8453ee2262f394c0a19649091b6b604c334bed198f0f4b8556a7281b62ea44a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 caff7da55a571fa827e85bb39f08d38ecc4d2becac758900adfa33a501df9100
MD5 f04a575dae4c4083b34b3ccace154826
BLAKE2b-256 1aa1e95a414d79a688ffecc72ebdac30af0a0d83258f490a4618330658282192

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 225f63069f64554028c57c3dbc36d58587b1ca3a420554c490f336d36a3bc42b
MD5 ce6da5a75036feab87d08f6231304be7
BLAKE2b-256 90c23a4d1dac3354a8d6f5adc1e0dec9a4231406280eba62afd40cbecfe002a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 80c198ea0301732245635c465adf479f5529094dd35250de7a7ea77ff38e4ee8
MD5 4fed24b4de053f066443b3328e55fb22
BLAKE2b-256 0ce55d717e9b1b60a1e077641a170e660ebcded89477c6143e26202d84827d87

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fc14fbbdb7baa9e4bf301e037427a4145825e8dedab18c455649f517e61d632c
MD5 a4e1837947ef3e9731fcc7d210ba8779
BLAKE2b-256 6bd783a6b40a4eeac502b0081d3c372b67715fe0b9ed5e4e810929f8f93014c9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.3-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ff12c5e3592fee938f36d19e3dbd03d97f1775b8f49ad3a6091b0de0287dba00
MD5 2bd1e42adff2c05fb367202d3d207a97
BLAKE2b-256 56c982a1fbdc57c127428f5e30bb86f2ad31c11525d5f55be64e5df44da1fde0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 6ef42173ee20f69bdd8cd49353a513b57bf55f9b4ac94dd8e8acbb0c9b48b9b5
MD5 fd03378e353eb0ef1ed3373c0cf8c58b
BLAKE2b-256 d0e3d5b9bf86ec1682e317841806647767b22d9232ee3904ff6e5a5305ff12f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 468056c309ba1e43b88952e55cc411e254ab729623ef567134a66e2e4ba18921
MD5 804d507fa364f3d4224a128acf8e9aa4
BLAKE2b-256 c14438d8818a9b38fd2aa651f10b042ceeff7b89ca6ffb992093c4ce511bed46

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 23f01ea77bf58fd8fc7b1303e57fa0e79b3feb71aa4cf0a7638f2b54d6808ae9
MD5 58e7a54a79415b2de1ec19baf32ddf4e
BLAKE2b-256 c14b1b73cbe50106d80dd6173bb5ab25dfe190422c7bbdafa180614cb5ecf655

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.3-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 153d6c43a82da222f31122fce1b97cd18d526c3a1449f37c50ad471bd23af295
MD5 df70cd08059265168b4925443ef6edc2
BLAKE2b-256 2fd120e85452d24ad10ac67f35217c09e70278392968d40b4d0fd9f70f0f0d8e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 78a39a6c942939faa01b704ef5facda07d4898887616cb69696dc02fcbe1646f
MD5 a1525aef88bcade04535ca574bfaf94c
BLAKE2b-256 54a00bdd337eaed258c6fea0d583b15112d1efd29d84fd1c01d11ea716580ebf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a22cea9dacb9f66c96b2db19281e3470bf9ad577b8fef92b78bf08e37ea299c7
MD5 efe363fbcb11d34a9658a5f07cdece53
BLAKE2b-256 7a5a57987da93824c056ed873727f9efaff976f406337cc9d8cac8fe4804a2ee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0b3433cc5e2a7a98418eaa6803e88211c6cd6c5eba591e7ef4d31334ab050792
MD5 fa8d8e8b0e93c6faff5704edfadeac06
BLAKE2b-256 766b5c63cb9ad7d2f7badac98d3162bf339fa2b4ce132c4e8dd30c0c6a2acc2b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.3-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 af385f076019da133c25e586dc5ae1c82fb19fcb0ad93d5e9b39879fcf2f7e09
MD5 17fb35fd60c1d78cda796d1121eae9a9
BLAKE2b-256 2ca3cc6d344e23d3bc5f0a9c99e19b22740db2df1949d55518725d4954f87891

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0f86f3ee55c355462c37086c588ca4acd09ff0dcaba909301a51fc9bc3e5eae6
MD5 e0a648529d4e14a1265b3ebf58670697
BLAKE2b-256 401f237b20ef62650b7d1c8250eb63d4e28dc61f46da5f95f70bc09d076a652e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 80bae48521c9fb6d5f9a7552c1f60d659e55fee51633f3ec0f2462bdbcfc6468
MD5 39b1607af5c12f5d14120e2cc80608ce
BLAKE2b-256 a2025b91c7eada7aee195fb3936d2401d64df76a65b1d08f9e15ae6766fbd55e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: greyjack-0.2.3-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.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 7eb14708fd3f13332d024b79ab77902db4b2283cb4a493d9a5a06836647012fa
MD5 59aa146c1636a9ff9158514b089232a4
BLAKE2b-256 afb0cec65f4c4aae3dcc07d9d348c18dfb24692766779ee77683391e99e719a9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for greyjack-0.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 943c4e22f16aabd5745bf25e3af78c4160b6cdf47fe4e93aafd3345ed4be6dd3
MD5 716608ab7785e14278a4b7023e9a45d2
BLAKE2b-256 c913bf43a1214dad4e78ac31a430c3066fd903315303a5701bd535e7b05cfc3d

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