Thread overview
Swiss Ephemeris / Nelder-Mead simplex
Dec 22, 2014
Laeeth Isharc
Dec 22, 2014
bachmeier
Dec 22, 2014
Marc Schütz
Dec 22, 2014
Laeeth Isharc
Apr 13, 2016
alstonamos
December 22, 2014
Last one for a while, I think.  I wish you all a very peaceful Christmas and New Year, and let's hope 2015 brings some more positive energy to the world.

Links here:
https://github.com/Laeeth/d_simplex
https://github.com/Laeeth/d_swisseph



1. D bindings/wrappers for the swiss ephemeris

http://www.astro.com/swisseph/swephinfo_e.htm
"The SWISS EPHEMERIS is the high precision ephemeris developed by Astrodienst, largely based upon the DExxx ephemerides from NASA's JPL . The original release in 1997 was based on the DE405/406 ephemeris. Since release 2.00 in February 2014, it is based on the DE431 ephemeris released by JPL in September 2013".

NB - Swiss Ephemeris is not free for commercial use.
====
2. D port of simple Nelder-Mead simplex minimisation (written by Michael F. Hutt in original C version) here.  With constraints.  From Wiki:

https://en.wikipedia.org/wiki/Nelder-Mead_method
"The Nelder–Mead method or downhill simplex method or amoeba method is a commonly used nonlinear optimization technique, which is a well-defined numerical method for problems for which derivatives may not be known. However, the Nelder–Mead technique is a heuristic search method that can converge to non-stationary points[1] on problems that can be solved by alternative methods".
====

Links here:
https://github.com/Laeeth/d_simplex
https://github.com/Laeeth/d_swisseph
December 22, 2014
On Monday, 22 December 2014 at 08:43:56 UTC, Laeeth Isharc wrote:
> Last one for a while, I think.  I wish you all a very peaceful Christmas and New Year, and let's hope 2015 brings some more positive energy to the world.
>
> Links here:
> https://github.com/Laeeth/d_simplex
> https://github.com/Laeeth/d_swisseph
>
>
>
> 1. D bindings/wrappers for the swiss ephemeris
>
> http://www.astro.com/swisseph/swephinfo_e.htm
> "The SWISS EPHEMERIS is the high precision ephemeris developed by Astrodienst, largely based upon the DExxx ephemerides from NASA's JPL . The original release in 1997 was based on the DE405/406 ephemeris. Since release 2.00 in February 2014, it is based on the DE431 ephemeris released by JPL in September 2013".
>
> NB - Swiss Ephemeris is not free for commercial use.
> ====
> 2. D port of simple Nelder-Mead simplex minimisation (written by Michael F. Hutt in original C version) here.  With constraints.  From Wiki:
>
> https://en.wikipedia.org/wiki/Nelder-Mead_method
> "The Nelder–Mead method or downhill simplex method or amoeba method is a commonly used nonlinear optimization technique, which is a well-defined numerical method for problems for which derivatives may not be known. However, the Nelder–Mead technique is a heuristic search method that can converge to non-stationary points[1] on problems that can be solved by alternative methods".
> ====
>
> Links here:
> https://github.com/Laeeth/d_simplex
> https://github.com/Laeeth/d_swisseph

It's been ages since I read the paper, but there is a parallel version of Nelder-Mead that is supposed to give very large performance improvements, even when used on a single processor:

http://www.cs.ucsb.edu/~kyleklein/publications/neldermead.pdf

It is not difficult to implement. I may look into modifying your code to implement it when I get some time.
December 22, 2014
On Monday, 22 December 2014 at 20:46:23 UTC, bachmeier wrote:
> It's been ages since I read the paper, but there is a parallel version of Nelder-Mead that is supposed to give very large performance improvements, even when used on a single processor:
>
> http://www.cs.ucsb.edu/~kyleklein/publications/neldermead.pdf
>
> It is not difficult to implement. I may look into modifying your code to implement it when I get some time.

It will certainly also be advantageous to pass the functions as aliases, so that they can get inlined.
December 22, 2014
On Monday, 22 December 2014 at 21:39:08 UTC, Marc Schütz wrote:
> On Monday, 22 December 2014 at 20:46:23 UTC, bachmeier wrote:
>> It's been ages since I read the paper, but there is a parallel version of Nelder-Mead that is supposed to give very large performance improvements, even when used on a single processor:
>>
>> http://www.cs.ucsb.edu/~kyleklein/publications/neldermead.pdf
>>
>> It is not difficult to implement. I may look into modifying your code to implement it when I get some time.
>
> It will certainly also be advantageous to pass the functions as aliases, so that they can get inlined.

Thanks, Marc.  I appreciate the pointer, and if you do have time to look at the code.  I confess that it can't really be called my own implementation as I simply ported it to D.  There is some more clever stuff within quantlib (c++ project), but I quite liked the idea of starting with this one as it is simple, and speed is not yet vital at this stage.


Laeeth.

April 13, 2016
very nice post..



waleeed