Hi all,

I am not sure the best way to describe the question, but here goes:

I am implementing a method that derives transition matrices using quadratic optimization and population data that are input as vectors [1]. For the first implementation, I use Octave's qp() routine to do the optimization, but it isn't able to handle large data inputs or more complex objectives.

I think I want to code my optimizations in IPOPT, but all the examples I found have are written indexing matrices and vectors as if they are simple C arrays. I would like to use IPOPT C++ code, but using BLAS and LAPACK to hide some of the details of matrix multiplication etc. (I want to be able to formulated callback functions for IPOPT that form the objective etc to be optimized, and these rely on a lot of matrix multiplication of large sparse matrices.) I would also like to use sparse matrix libraries to deal with some of the data size issues.

Writing models in AMPL has the same problem -- there is no natural way to express matrix multiplication (or other operations), at least that I know of, especially incorporating sparsity.

Has anyone done this (interfaced IPOPT and BLAS) or something similar? Any examples anywhere?

[1] http://arxiv.org/abs/1203.2313

asked 03 Jan '14, 13:38

forkandwait's gravatar image

forkandwait
46111026
accept rate: 100%

edited 03 Jan '14, 16:15

1

You might want to ask this in the Ipopt making list as well.

(04 Jan '14, 15:29) Paul Rubin ♦♦

...which is to be found here: http://list.coin-or.org/mailman/listinfo/ipopt <ipopt@list.coin-or.org>

(04 Jan '14, 17:22) fbahr ♦

I hate to subscribe to a mailing list for a single one-off question, and was hoping someone here knew. All good. I might be able to use Semidefinite programming might suit my shorter term needs, and be consistent with the matrix formulation of the problem.

(06 Jan '14, 11:03) forkandwait

The following is only applicable if you solve convex QPs.

At MOSEK we have a tool called Fusion that is aimed at building conic optimization problems. It is vector and matrix orientated and not scalar orientated as traditional modelling languages such as AMPL. Fusion is currently available for Java, MATLAB, .NET and Python. See the manuals at http://mosek.com/resources/doc/ for details.

It easy to state state convex quadratic optimization problem as a conic quadratic problem. And many cases it also lead to the best performance compared to solving the problem on the QP form.

PS. Normally you feed data into an optimizer. For that you do not need BLAS but the optimizer such as MOSEK might use BLAS internally. So I am not sure why you mention BLAS/LAPACK. At least in BLAS also matrices a simple arrays.

link

answered 03 Jan '14, 16:09

Erling_MOSEK's gravatar image

Erling_MOSEK
61614
accept rate: 3%

edited 03 Jan '14, 16:12

1

Re needing BLAS: I want to be able to formulated callback functions for IPOPT that form the objective etc to be optimized, and these rely on a lot of matrix multiplication of large sparse matrices. Re MOSEK: I will look at the tool you mentioned -- thanks for the link.

(03 Jan '14, 16:14) forkandwait

Julia has both an IPOPT binding (Ipopt.jl) and has BLAS/LAPLACK baked into the core (so A*B calls BLAS matrix multiply, for example, if A and B are matrices).

link

answered 08 Jan '14, 23:09

Iain%20Dunning's gravatar image

Iain Dunning
9171418
accept rate: 33%

> "Ipopt.jl has testing, and the status of the current build is build status."

(09 Jan '14, 04:28) fbahr ♦
1

Hah embarrassing! That is testing an edge case, used to work though, looking at it now...

(09 Jan '14, 07:39) Iain Dunning
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "Title")
  • image?![alt text](/path/img.jpg "Title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Tags:

×36
×4
×2

Asked: 03 Jan '14, 13:38

Seen: 2,533 times

Last updated: 09 Jan '14, 10:49

OR-Exchange! Your site for questions, answers, and announcements about operations research.