Welcome to Qaekwy

πŸ‘‹ Welcome to Qaekwy: A Friendly Python Problem Solver!

The resolution of computationally difficult problems, particularly in the domains of logical puzzles, operational scheduling, and resource management, presents a significant challenge. Qaekwy is a Python framework designed to address these challenges through declarative modeling. It allows you to articulate a problem’s structure and constraints formally, after which its constraint-solving engine can be utilized to compute a viable or optimal solution.

What’s Inside the Documentation ? πŸ—ΊοΈ

Here’s a map to help you find your way around:

  • πŸš€ Getting Started: Your first adventure with Qaekwy!
  • 🧭 Guide: Learn how to describe your problems to Qaekwy.
  • πŸ› οΈ Examples: See how to solve interesting problems.
  • πŸ“š API Reference: The grown-up section with all the details.
  • ❔ About: Everything else you need to know.

What’s Qaekwy ?

Qaekwy is a powerful and expressive constraint programming library for Python, designed to make solving complex optimization problems simple and intuitive. Here are some of the features that make Qaekwy stand out:

Declarative and Fluent Modeling

Qaekwy provides a clean, fluent API that allows you to build complex models in a highly readable and declarative way. By chaining methods together, you can express your problem’s variables, constraints, and objectives in a way that is both elegant and easy to understand.

Rich Constraint Library

It offers a wide range of arithmetic, trigonometric, logical, and collection-based constraints right out of the box. This versatility allows to accurately model intricate, real-world scenarios across various domains, from logistics and scheduling to finance and engineering.

The Qaekwy library has explicit support for if-then-else logic. This is a feature that allows for conditional constraints, enabling you to model complex rules and logical branching directly without resorting to complicated mathematical workarounds.

Advanced Search Configuration

Take control of the solving process with advanced search configuration. Qaekwy allows you to fine-tune the solver’s behavior by specifying search strategies, branchings, setting custom stopping criteria (cutoffs), and defining solution limits. This level of control is essential for tackling computationally difficult problems.

Strong Typing and Modern Python

The codebase consistently uses Python’s type hints. This eases the commitment to code quality, robustness, and maintainability. For developers, this means better editor support (autocompletion, static analysis) and a lower chance of runtime errors, making the library easier and safer to integrate in your code.