views:

129

answers:

3

Today I read that there is a software called WinCalibra (scroll a bit down) which can take a text file with properties as input.

This program can then optimize the input properties based on the output values of your algorithm. See this paper or the user documentation for more information (see link above; sadly doc is a zipped exe).

Do you know other software which can do the same which runs under Linux? (preferable Open Source)

EDIT: Since I need this for a java application: should I invest my research in java libraries like gaul or watchmaker? The problem is that I don't want to roll out my own solution nor I have time to do so. Do you have pointers to an out-of-the-box applications like Calibra? (internet searches weren't successfull; I only found libraries)

I decided to give away the bounty (otherwise no one would have a benefit) although I didn't found a satisfactory solution :-( (out-of-the-box application)

+1  A: 

There are a lot of genetic algorithm based software that can do exactly that. Wrote a PHD about it a decade or two ago.

A google for Genetic Algorithms Linux shows a load of starting points.

Andiih
would you please be so kind to give me a link to your PHD or the developed app or a related one? do you mean software like http://jgap.sourceforge.net/ or http://gaul.sourceforge.net/ ?
Karussell
more like gaul than jgap - jgap is seems more about genetic programming (which is using genetic algorithms to write software to solve problems, rather than tweaking parameters for model optimisation).I was working in the electricity industry at the time, and my work was used for optimisation of National Grid distribution networks. It was before we really had the same level of internet publication. The industry paid me too much, and I never finished the PhD, though there are a few of my papers in Power Systems Computation Conferences.
Andiih
:-) .. thanks !
Karussell
And what about http://watchmaker.uncommons.org/ ? Funny: This was in an ad here at stackoverflow ...
Karussell
Yep. That looks about right too. Its not that funny - I'm sure SO uses keywords to bring up relevant adverts... Hope you get on with one of these. I'm sure given the modern computational power compared to what I was playing with, you should be able to solve fairly complex problems.
Andiih
A: 

Intrigued by the question, I did a bit of poking around, trying to get a better understanding of the nature of CALIBRA, its standing in academic circles and the existence of similar software of projects, in the Open Source and Linux world. Please be kind (and, please, edit directly, or suggest editing) for the likely instances where my assertions are incomplete, inexact and even flat-out incorrect. While working in related fields, I'm by no mean an Operational Research (OR) authority!

[Algorithm] Parameter tuning problem is a relatively well defined problem, typically framed as one of a solution search problem whereby, the combination of all possible parameter values constitute a solution space and the parameter tuning logic's aim is to "navigate" [portions of] this space in search of an optimal (or locally optimal) set of parameters.
The optimality of a given solution is measured in various ways and such metrics help direct the search. In the case of the Parameter Tuning problem, the validity of a given solution is measured, directly or through a function, from the output of the algorithm [i.e. the algorithm being tuned not the algorithm of the tuning logic!].

Framed as a search problem, the discipline of Algorithm Parameter Tuning doesn't differ significantly from other other Solution Search problems where the solution space is defined by something else than the parameters to a given algorithm. But because it works on algorithms which are in themselves solutions of sorts, this discipline is sometimes referred as Metaheuristics or Metasearch. (A metaheuristics approach can be applied to various algorihms)
Certainly there are many specific features of the parameter tuning problem as compared to the other optimization applications but with regard to the solution searching per-se, the approaches and problems are generally the same.

Indeed, while well defined, the search problem is generally still broadly unsolved, and is the object of active research in very many different directions, for many different domains. Various approaches offer mixed success depending on the specific conditions and requirements of the domain, and this vibrant and diverse mix of academic research and practical applications is a common trait to Metaheuristics and to Optimization at large.

So... back to CALIBRA... From its own authors' admission, Calibra has several limitations

  • Limit of 5 parameters, maximum
  • Requirement of a range of values for [some of ?] the parameters
  • Works better when the parameters are relatively independent (but... wait, when that is the case, isn't the whole search problem much easier ;-) )

CALIBRA is based on a combination of approaches, which are repeated in a sequence. A mix of guided search and local optimization.

The paper where CALIBRA was presented is dated 2006. Since then, there's been relatively few references to this paper and to CALIBRA at large. Its two authors have since published several other papers in various disciplines related to Operational Research (OR). This may be indicative that CALIBRA hasn't been perceived as a breakthrough.

mjv
thanks for your answer! do you know a good alternative? I have seen the use of calibra in a software but I would like to develop my own software without relying on a windows software. calibra seems to me relativly easy to use (but to be honest I didn't tried it yet): just text input + output...
Karussell
+1  A: 

Some kind of (Metropolis algorithm-like) probability selected random walk is a possibility in this instance. Perhaps with simulated annealing to improve the final selection. Though the timing parameters you've supplied are not optimal for getting a really great result this way.

It works like this:

  1. You start at some point. Use your existing data to pick one that look promising (like the highest value you've got). Set o to the output value at this point.
  2. You propose a randomly selected step in the input space, assign the output value there to n.
  3. Accept the step (that is update the working position) if 1) n>o or 2) the new value is lower, but a random number on [0,1) is less than f(n/o) for some monotonically increasing f() with range and domain on [0,1).
  4. Repeat steps 2 and 3 as long as you can afford, collecting statistics at each step.
  5. Finally compute the result. In your case an average of all points is probably sufficient.

Important frill: This approach has trouble if the space has many local maxima with deep dips between them unless the step size is big enough to get past the dips; but big steps makes the whole thing slow to converge. To fix this you do two things:

  1. Do simulated annealing (start with a large step size and gradually reduce it, thus allowing the walker to move between local maxima early on, but trapping it in one region later to accumulate precision results.
  2. Use several (many if you can afford it) independent walkers so that they can get trapped in different local maxima. The more you use, and the bigger the difference in output values, the more likely you are to get the best maxima.

This is not necessary if you know that you only have one, big, broad, nicely behaved local extreme.

Finally, the selection of f(). You can just use f(x) = x, but you'll get optimal convergence if you use f(x) = exp(-(1/x)).


Again, you don't have enough time for a great many steps (though if you have multiple computers, you can run separate instances to get the multiple walkers effect, which will help), so you might be better off with some kind of deterministic approach. But that is not a subject I know enough about to offer any advice.

dmckee
thanks for your answer! Isn't there already a tool which will do the job for me?
Karussell
None that I know of (and yes I'm surprised too). Well, I wrote a surprisingly functional little Fortran 77 scaffold while I was in grad school, but somehow I don't think that's what you want. Nor am I even sure that I still have it...
dmckee