Re: Simple n-tuple problem - with no simple solution

• To: mathgroup at smc.vnet.net
• Subject: [mg116034] Re: Simple n-tuple problem - with no simple solution
• From: Daniel Lichtblau <danl at wolfram.com>
• Date: Sat, 29 Jan 2011 19:42:27 -0500 (EST)

Don wrote:
> On Jan 27, 12:39 am, DrMajorBob <btre... at austin.rr.com> wrote:
>> "Therefore, the time it takes to generate all possible states
>> is prohibitive for large n (n > 10) and searches through
>> such a voluminous state space is not feasible."
>>
>> Not true. The number of distinct solutions never exceeds 627. Those
>> millions of others are only rearrangements.
>>
>> Unless there's some reason the order matters? You haven't mentioned a
>> reason.
>>
>> Bobby
> [...]
> I didn't want to burden people with the details of the application ...
> but to answer
> the rearrangements question ... Rearrangements are very important.
> The values of the n-tuples (which always sum to one)
> are percentages.    The first element of the n-tuple is the percentage
> of asset #1 that goes to make up a portfolio of financial assets.
> The second element of the n-tuple is the percentage for asset
> #2 as part of the portfolio, etc.  How those percentages
> are distributed across assets is crucially important
> in determining properties of the portfolio like Total Return
> and the degree of Risk (represented by multiple
> risk functions)  of the portfolio.   In fact, the optimization
> problem is to determine just which arrangement
> maximizes an objective function while minimizing other
> functions such as overall portfolio risk.   And the functions
> have no nice properties that can be exploited
> to find the solution like convexity, continuity etc.

Use NMinimize. Get rid of the discrete requirement. Then you still have
the constraint that your 20 variables sum to 1, but now you regain
continuity of the objective and other constraints.

If you really require increments of 5% for all holdings, you can almost
certainly get a good result at the end by suitable rounding of the
result you obtain from the solution to the relaxed problem. That is to
say, you should not make this into an integer programming problem unless
absolutely necessary. Nothing shown in your description argues for that
necessity.

You have (as I'm sure you realize) a multi-objective function. Those are
tricky. Often best thing is just to weight them and sum. The alternative
is to treat some items as hard constraints, and thus put them into the
constraints section. Often people will do both, e.g. risk constrainted
so that it cannot be greater than xxx, but it is desired that it be less
so we also put risk into the weighted objective.

I doubt you will get a global optimum, even if you manage to codify the
problem in a way that would allow for that. But I would expect NMinimize
to give at least a reasonable result.

Finally I will mention that there are third party applications for doing
various sorts of optimization.

http://www.wolfram.com/products/fields/

Some of these specifically mention applicability to computational finance.

Daniel Lichtblau
Wolfram Research

• Prev by Date: Re: some demonstrations no longer work right in version 8
• Next by Date: Re: Help with While Loop Function
• Previous by thread: Re: Simple n-tuple problem - with no simple solution
• Next by thread: Re: Simple n-tuple problem - with no simple solution