MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

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

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

Don wrote:
> On Jan 27, 12:39 am, DrMajorBob <btre... at> 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.

Here are a few ideas to go about this.

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 

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.

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