Simplex Algorithm

Jerome PICARD jerome.picard at scilab.org
Wed Oct 14 09:42:59 CEST 2009


Hi,

Here are some explainations about simplex algorithm.

At each iteration, the simplex algorithm evaluates the cost function at 
every vertex of a simplex. A simplex is the smallest convex set created 
with
n + 1 points in a space of dimension n. At each iteration of the 
algorithm, a new simplex is created with the obtained simplex at the 
previous iteration.

So, if you funcion is defined in a n-dimensional space, the algorithm 
needs at each iteration n + 1 points, which are the vertices given by 
the previous iteration. In your exemple, the cost function has 2 real 
variables, then the algorithm need at every iteration 3 points.


Your second question is how the new simplex is calcutated?

At every iteration, the cost function is calculated at every vertex of 
the simplex. Let's imagine we want to minimize the cost funtion. At 
every iteration, the algorithm eliminates the worst value of the cost 
function, i.e. in this case the greatest value of the n + 1 values 
calculated at every vertex. This eliminated point is now to replace with 
an other. The simplext way to create a new point is to take the 
simmetric point of the eliminated point by the affine space generated 
with the n other points.

Therefore, the simplex algorithm is a quite simple algorithm, so it is a 
robust algorithm. We just have to compare n + 1 values at each 
iteration. Any derivative of the cost function (like for example in 
fmincon) need to be calculated. The simplex algorithm will just explore 
the definition space of the cost function  with simplexes.


Best regards

Jérôme


Sébastien Bihorel wrote:
> Hi Yann,
>
> The installation worked just fine. I thank you again for your 
> explanations.
>
> Now, I would like to ask you a couple of more theoretical questions on 
> the algorithm implemented in the nm_init, step_nelder_mead or 
> optim_nelder_mead. I am not a mathematician and don't know much about 
> the theories, and the nuts and bolts of the Nelder-Mead algorithm 
> (this is probably a mistake!). My only concern, until recently, was 
> only to know how to use it in Matlab using the fminsearch function... 
> This function is nice for lay users because one doesn't have to care 
> about dealing with simplex objects.
> The simplex toolbox seem to require such objects to be created and 
> passed from one iteration to the other. From your documentation and 
> examples, it is my understanding that the simplex contain realizations 
> of the objective function at different places of the search space. Am 
> I correct here?
>
> Another thing I am not clear about is whether or not the dimensions of 
> the simplex should be adapted to a specific problem. In the examples 
> you provide, the simplex f_init and f_current have a 3x1 dimension for 
> optimizing 2 parameters. Is that 3x1 dimension independent of the 
> number of parameters to optimize? Let's say my objective function is a 
> 'maximum likelihood function' of observations (n states observed at t 
> times) given a model dependent on m parameters and a residual 
> variability dependent on v parameters, what should be the size of the 
> simplex and how should it be calculated?
>
> Thanks in advance for your time and help.
>
> Sebastien
>
>
>
> On Tue, Oct 13, 2009 at 10:11 AM, Yann Collette 
> <yann.collette at scilab.org <mailto:yann.collette at scilab.org>> wrote:
>
>     I will try to update the licence of simplex. I forgot to fill this
>     one. The licence will be GPL.
>
>
>     YC
>
>     Sébastien Bihorel a écrit :
>
>         Thank a lot for all this info... I will try that tonight when
>         I go back home.
>
>
>         One last question though about re-distribution of simplex-2.0.
>         I had look at the license.txt file but it did not seem to
>         contain any licensing terms related to simplex-2.0. In case I
>         would like to include this toolbox in the distribution of one
>         of my code/application, what would be the requirements in
>         terms of licensing? I intend to distribute my piece of
>         software under a GPL license... would this be compatible with
>         your license terms?
>
>         Sebastien
>
>
>
>
>     -- 
>     -----------------------------
>     Yann COLLETTE
>     Software Development Engineer
>     -----------------------------
>     The Scilab Consortium
>     Digiteo Foundation
>     Domaine de Voluceau
>     Rocquencourt - B.P. 105
>     78153 Le Chesnay France
>     Phone: +33.1.39.63.57.82
>
>


-- 
Jérôme Picard
Ingénieur de développement
-------------------------
Consortium Scilab
Digiteo
Domaine de Voluceau
Rocquencourt - B.P. 105 
78153 Le Chesnay Cedex
Tél. : 01.39.63.55.91

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/users/attachments/20091014/ff066d0c/attachment.htm>


More information about the users mailing list