Skip to content

quant-sci/optymus

Repository files navigation

PyPI GitHub Documentation Status jax_badge

optymus is a Python library designed to address optimization problems in science and engineering. Built on JAX, allowing automatic differentiation for efficient computation of gradients and Hessians. The library emphasizes ease of use and flexibility, enabling users to solve optimization problems with minimal setup. optymus also provides robust capabilities for visualization and benchmarking, allowing users to gain insights into method behavior and compare performance effectively.

Getting Started

To begin using optymus, follow these steps:

  1. Install optymus:

    pip install optymus --upgrade # update version
    pip install optymus[all] # all dependencies
    pip install optymus[methods] # without plot dependencies
  2. Get Started:

    from optymus import Optimizer
    from optymus.benchmark import MccormickFunction
    
    import jax.numpy as jnp
    
    f = MccormickFunction()
    initial_point = jnp.array([2, 2])
    
    opt = Optimizer(f_obj=f,
                    x0=initial_point,
                    method='bfgs')
    
    opt.report()
  3. Explore the Documentation: Visit the official documentation to understand the available optimization methods and how to use them effectively.

Refer to the documentation for detailed information on each method and its application.

Contributions

Contributions to Optymus are highly appreciated. If you have additional optimization methods, improvements, or bug fixes, please submit a pull request following the contribution guidelines.

How to cite

If you use optymus in your research, please consider citing the library using the following BibTeX entry:

@misc{optymus2024,
  author = {da Costa, Kleyton and Menezes, Ivan and Lopes, Helio},
  title = {Optymus: Optimization Methods in Python},
  year = {2024},
  note = {GitHub Repository},
  url = {https://github.com/quant-sci/optymus}
}

optymus is part of quantsci project.