From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13391 invoked by alias); 2 Mar 2006 18:43:30 -0000 Received: (qmail 13382 invoked by uid 22791); 2 Mar 2006 18:43:29 -0000 X-Spam-Check-By: sourceware.org Received: from network-theory.com (HELO mail.network-theory.co.uk) (66.199.228.187) by sourceware.org (qpsmtpd/0.31) with ESMTP; Thu, 02 Mar 2006 18:43:26 +0000 Received: from bris.network-theory.co.uk ([84.45.156.78]:35071 helo=hp2.network-theory.co.uk) by mail.network-theory.co.uk with esmtpa (Exim 4.44) id 1FEslo-0006vI-8x; Thu, 02 Mar 2006 18:43:24 +0000 Received: by hp2.network-theory.co.uk (Postfix, from userid 1000) id B7F7F688D9; Thu, 2 Mar 2006 18:43:39 +0000 (GMT) From: Brian Gough MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <17415.15579.465743.795461@hp2.network-theory.co.uk> Date: Thu, 02 Mar 2006 18:43:00 -0000 To: Ivo Alxneit-Kamber Cc: gsl-discuss@sources.redhat.com Subject: Re: new methode to initialize nm_simplex In-Reply-To: <1140770280.3325.53.camel@pc446.psi.ch> References: <1140770280.3325.53.camel@pc446.psi.ch> Mailing-List: contact gsl-discuss-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gsl-discuss-owner@sourceware.org X-SW-Source: 2006-q1/txt/msg00025.txt.bz2 Ivo Alxneit-Kamber writes: > i had sometimes difficulties with this initializer because it results in > a "very regular" initial simplex. the first trial steps often only > change one parameter. (just as an example. i tried to optimize the > contour of a mirror defined by a spline interpolation of several points. > the current minimizer would start by trying to shift only individual > points. this, of course were not successful steps. it then contracted > for a long time until it finally took off correctly sometimes). > > so my proposal (see patch) is to change the call to > gsl_multimin_fminimizer_set() to use a starting vector and a single > value for the initial step size. nm_simplex_set() then contructs a > regular n-pod of size initial_step_size with the starting point at its > center. you can fine-tune the orientation of this initial simplex by > using different values for the environment variable GSL_NM_SIMPLEX_SEED. If you take the existing step_size vector, you could create a n-pod oriented in that direction with size |step_size| -- that would avoid any changes to the API, and allow it to be a new method (reusing most of the existing functions). To randomize the other orthogonal directions I'd suggest putting a simple RNG like 'vax' inside the method itself, so there aren't any dependencies on libgslrng. -- Brian Gough