Metadata-Version: 2.4
Name: optquest
Version: 10.2.0.0
Summary: Python interface to OptQuest optimization engine
Author-email: "OptTek Systems, Inc" <python@opttek.com>
Project-URL: Homepage, https://www.opttek.com/products/optquest/
Project-URL: Documentation, https://www.opttek.com/documentation/
Keywords: optimization,engine,solver,black-box optimization,simulation optimization,metaheuristic,scatter search,local search,kriging,mixed-integer programming,multi-objective optimization,hyperparameter optimization,optuna
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: License :: Other/Proprietary License
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

## OptQuest

OptQuest is a black-box optimization engine from OptTek Systems, Inc., which has developed it since 1998. You declare the decision variables, the constraints and one or more objectives. The engine proposes values for the variables, your code evaluates them and returns the results, and the engine uses those results to propose the next values. The engine does not need gradients or a formula for the objective, and it does not assume that the objective is convex or smooth. For a simulation that gives a different result each time it runs, the engine can evaluate each trial solution several times and combine the results.

A model can combine continuous, integer, discrete, binary and categorical variables with structured variables such as orderings, selections, assignments, mixtures and graphs. Constraints can use the inputs and the outputs. With one objective, the engine reports the best solution that it found. With several objectives, the engine builds a Pareto frontier: the set of solutions that represent the best trade-offs among the objectives.

## How the Engine Searches

The engine combines several techniques:

- **Linear and mixed-integer programming**: when the objective and the constraints are linear, the engine can solve the problem exactly.
- **Design of experiments**: the engine spreads the first trial solutions over the ranges of the variables.
- **Scatter search**: the engine keeps a reference set of the best trial solutions and makes new trial solutions by combining members of the set.
- **Local search**: a Nelder-Mead search for continuous variables, and moves of one step for discrete variables.
- **Enumeration**: when the variables have few enough combinations, the engine evaluates all of them.
- **A Kriging metamodel**: with two or more variables, the engine fits an approximation to the trial solutions evaluated so far and uses it to propose new ones.

## Requirements

Python 3.8 or later, on 64-bit Windows or 64-bit Linux on x86-64 processors.

## Commercial License

The OptQuest library can be used in demo/evaluation mode without requiring a commercial license key. In this mode, a run stops after 50 iterations. This mode is provided solely for testing, evaluation, and demonstration purposes. Any use in production environments, commercial deployments, or for generating results intended for business decision-making requires a valid commercial license key.

For licensing inquiries, purchasing a commercial license, obtaining a license key,  or requesting additional information, please contact:

OptTek Systems, Inc.

Email: info@opttek.com

Website: https://www.opttek.com/optquest/

## API Documentation

A current copy of the API Documentation is on our website at https://www.opttek.com/documentation/.  
