# Optimization plus BLAS/LAPACK?

 1 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? asked 03 Jan '14, 13:38 forkandwait 461●1●10●26 accept rate: 100% 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 (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

 1 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. answered 03 Jan '14, 16:09 Erling_MOSEK 616●1●4 accept rate: 3% 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
 0 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). answered 08 Jan '14, 23:09 Iain Dunning 917●1●4●18 accept rate: 33% > "Ipopt.jl has testing, and the status of the current build is ." (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
 toggle preview community wiki

By Email:

Markdown Basics

• *italic* or _italic_
• **bold** or __bold__
• 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:

Seen: 2,533 times

Last updated: 09 Jan '14, 10:49