MathGroup Archive 2008

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

Search the Archive

Optimization in Mathmatica

  • To: mathgroup at smc.vnet.net
  • Subject: [mg84966] Optimization in Mathmatica
  • From: "Ludsteck Johannes" <Johannes.Ludsteck at iab.de>
  • Date: Mon, 21 Jan 2008 06:54:12 -0500 (EST)

Dear MathGroup Members,
I want to minimize a function of about 20-30 variables using FindMinimum 
and NMinimize.
The objective is a statistical function, i.e. a sum of several thousand 
data points.
If the number of Data points exceeds 30000, Mathematica shuts down and 
tells me that nout enough memory is available.
My computer has, however, about 2GB available which should suffice for a 
problem of this dimension. After some experimentation
I found that the shut down can be avoided by providing two starting 
values. Then Mathematica uses the Brent algorithm
which works without derivatives. A further working solution is Nminimize 
with option Method->{NelderMead, PostProcess->"KKT"}.
Both strategies are, however, extremely inefficient. I assume that 
Mathematica shuts down with other options since it tries to
compute gradients and hessians symbolically. These objects may be huge.
Question: How can I urge Mathematica to do the minimization without 
symbolic computations. I searched the documentation but
didn't find detailed information on memory usage in FindMinimum and 
Nminimize

Thank you and best regads,
	Johannes Ludsteck

Probably that is not important for you. Nevertheless, here are parts of 
my code:

 chi[u_,v_,d_]:=Which[
   d<=-v,u^2-2 u (v+d),
   -v<d<u,(u-v-d)^2,
   True,v^2+2 v (d-u)];
SetAttributes[chi,Listable];

chiSumPair[y1_,y2_,dx_,b_]:=Total[chi[y1,y2,dx.b]];

chiSumTotal[y1_,y2_,dx_,bx_,bd_]:=
  Total[MapThread[
    chiSumPair[#2,#1,Map[Append[#,-1]&,-#3],Append[bx,#4]]&,
    {y2,y1,dx,bd}]];

...
 sol=Last[FindMinimum[chiSumTotal[y1,y2,dx,bx,bd],
    Evaluate[Sequence@@start],
    MaxIterations->500,Method->"QuasiNewton"]];




  • Prev by Date: About the performance of Union[] and Tally[]
  • Next by Date: Re: Align decmal points
  • Previous by thread: Re: About the performance of Union[] and Tally[]
  • Next by thread: Re: Optimization in Mathmatica