stan-dev / stan-dev/math

Quadratic optimizer with linear constraints

Open
#888 3 comments 0 reactions 1 assignee View on GitHub

@charlesm93 is already working on this.

Since Jun 6, 2018.

Dominant language
C++
Stars
839
Forks
220
Avg merge
2d 4h
Merged PRs (30d)
14

Description

Summary:

Create a new function to perform quadratic optimization.

Description:

The goal is to maximize a function subject to a set of equality and inequality constraints. This is a generalization of the Lagrange optimization problem, sometimes termed the Karush–Kuhn–Tucker problem. The proposed feature solves this problem when the function we wish to optimize is quadratic. See http://discourse.mc-stan.org/t/quadratic-optimizier/4405 for more details.

The target function has the form: f(x) = x' H x + v x, where H is a matrix and v a vector. For starters, I want to implement the case where there is a linear constraint on x of the form Ax = b, and x > 0. We can then think of generalizations.

The call to the solver has the form a = quadratic_optimizer(H, v, A, b, theta, delta), where H, v, A, and b are all functions of parameters theta and data delta. Are there features in C++11 to make this easier to implement? Right now, my plan is to mimic what was done for the algebraic and the ODE solver.

Additional Information:

I can think of a few applications for this optimizer; the current motivating problem is in econometrics, brought forth Shosh Vasserman.

Current Version:

v2.17.0

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.