amichel.com

December 10, 2011

Differential Evolution C++ library

Filed under: C++,Programming — adrian @ 4:11 pm

I have known of the Differential Evolution optimization algorithm (DE) for some time, but it was only recently that I became more interested in it, while doing some work on a trading system optimization (TSO) project. More information about DE can be found at http://www.icsi.berkeley.edu/~storn/code.html.

TSO can be computationally very intensive, and DE seemed like a good way to achieve practical results in useful time, thanks to its efficiency and potential for parallel processing. However, I was not able to find a C++ DE library to satisfy all my requirements, and so I went to work  writing my own, using Dr. Rainer Storn’s C++ implementation as a starting point (posted on the same page listed above).

The DE C++ project then took on a life of its own, and as the library is generic, portable and has several other useful features, I decided to make it available to the general public, in the hope that others will find it useful as well.

For the online documentation go to http://www.amichel.com/de/doc/html. The library can be downloaded from http://www.amichel.com/de/de.zip.

As far as the initial TSO project, which uses the Web API on http://www.tradery.com, unfortunately it has not yielded any breakthroughs so far. But this experiment has provided me with useful insight into what direction to take, and I am currently working on an original optimization algorithm more tailored for this kind of application.

 

 

October 23, 2007

XML Content Model Validator project

Filed under: Uncategorized — adrian @ 11:29 pm

I just made public an older project of mine which I developed while working for a hot Internet company (go here to see the documentation and download the source and binary code). The company went under a few years ago, but this doesn’t mean the code must go under too…

This was a particularly challenging task for several reasons.

Technically, I had to replace a messy chunk of code which simply couldn’t handle the task and wasn’t easily extensible or maintainable. Also, the problem itself wasn’t simple, and I couldn’t find an immediate and intuitive solution, so I had to do some more fundamental research.

At the same time, things were kind of tense in the team back then, and that didn’t help either…

Nevertheless, this project ended successfully and I believe contributed to the robustness of the rest of the code. 

I also learned a great deal about these subjects from a completely different perspective. For example, I was quite familiar with using state machines in hardware or software, but building a state machine from a regular expression was something quite mysterious to me up to then.

All in all, I enjoyed working on it back then, and I enjoyed un-mothballing and publishing it now.

Powered by WordPress