Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
7014 Discussions

optimization solver routines objective function dimensionality query

Beginner
639 Views
I'm using the MKL Optimization Solver Routines (i.e. dtrnlsp_solve), calling from C++ on Linux, using the MKL version 10.1.1.019

[EDIT] I have an objective function which calculates a "dollar cost" for the current model parameters, rather than a per-observation residual, so in my case m=1 and n is usually >1000. Can someone please advise as to whether this type of problem can be reformulated in a suitable fashion for use with the nonlinear least squares solver, or should I be using a different solver type, and if so, does the MKL provide it?
Thanks for any help

2 Replies
Employee
639 Views
Hello tdoris!

As I understood, you should use a nonlinear functional minimization solver (min F: R(n) -> R(1)) for solving your problem. In general, it's possible to reformulate some problems of nonlinear functional minimization in nonlinear least square problems. Could you pls provide more detail statement of your problem?

Unfortunately, Intel MKL doesn't provide solvers for nonlinear functional minimization now. But you can submit a feature request.

Thank you!
--Nikita

Beginner
639 Views
Hello tdoris!

As I understood, you should use a nonlinear functional minimization solver (min F: R(n) -> R(1)) for solving your problem. In general, it's possible to reformulate some problems of nonlinear functional minimization in nonlinear least square problems. Could you pls provide more detail statement of your problem?

Unfortunately, Intel MKL doesn't provide solvers for nonlinear functional minimization now. But you can submit a feature request.

Thank you!
--Nikita

Nikita,

The following problem statement is roughly equivalent to the actual problem I'm tackling, which has some additional constraints that can be ignored for now:

You have N piles of blocks. Each pile may have a different number of blocks. Blocks have weight and grayscale (0-100) colour. All the blocks in a given pile weigh the same, and are the same colour. At each turn of the "game" you destroy as many blocks from each pile as you choose. There is a cost associated with destroying a block, that varies from pile to pile, and is nonlinear (i.e. the fewer blocks you destroy in a pile, the lower the average cost per block, otherwise you could just destroy all blocks in the first turn).

At each turn you are penalised for the disbalance in the weight of the piles (e.g. where std deviation of pile weight is >0) and penalised for the overall difference between the total average colour of all blocks and 50, and penalised for the total number of blocks remaining in each pile, times a coefficient for that pile. The object then, is to find a destruction schedule, which tells you how many blocks to destroy from each pile at each turn of the game, and which minimizes the total cost over the destruction schedule.

The solver would need to be able to handle the case where N is in the order of 1000s and the destruction schedule is in the order of 100s of turns.

I'd appreciate any thoughts you have.

T