in reply to Re: A Beginning Guide To Evolutionary Algorithms
in thread A Beginning Guide To Evolutionary Algorithms

The fitness landscape is a 3-dimensional surface only if the genes of the individuals have exactly 2 degrees of freedom. Even in the ONE-MAX problem above, the fitness landscape is a 21-dimensional surface. Your indpendent variable is any tuple in {0,1}^20, and you've got the dependent variable, fitness. Granted, the 20 independent dimensions are not big (just 0 and 1), but it's still more than I know how to visualize effectively.

Using terms like "hills" to help visualize the problem space is helpful, but only because we usually omit the fact that the hills are almost never 3-dimensional. ;)

It's worse if you're evolving structures other than strings and arrays. An n-character string is easily analogous to a tuple in some n-dimensional space. But what if we are evolving neural net structures, or state machines, or parse trees? How do we "plot" the fitnesses of these things? How do you even measure the distance between two state machines so that you can build the "grid" that the fitness will be plotted on?

Strict mathematical analysis on these problems is tough. Even trying to look at the spaces involved is often next to impossible. There can't be any single plug-n-play way of dumping a plot of your fitness landscape. Doing such a plot requires a large understanding of the independent variables, and probably lots of trial and error. You're probably better off analyzing the EA results using statistical analysis, as opposed to inspecting the actual fitness landscape.


  • Comment on Re: Re: A Beginning Guide To Evolutionary Algorithms

Replies are listed 'Best First'.
Re: Re: Re: A Beginning Guide To Evolutionary Algorithms
by AssFace (Pilgrim) on Oct 14, 2003 at 17:43 UTC
    I suspected that sort of thing.
    That said, I think for the things that I do, I could still argue that a 3D map of the space completed would be feasible... perhaps not terribly useful - but for what I do, eye-candy actually does have merit when presenting to non-tech heads.

    If it is plotting in one direction the time that you are testing over (say +/- X), then another direction (say +/- Y) the performance score of your code, and then in say the Z +/- direction perhaps the series of evolutions that you do.

    That way I could show them with pretty charts that as the cycles of the code went on, I moved away from certain points and towards others.

    I see your point at the level of usefulness of this - but I still raise my question of if there is a way to in Perl to make 3D plots - I haven't seen it, but then I honestly haven't looked all that hard in the past bit (I looked over a year ago I can recall).

    There are some odd things afoot now, in the Villa Straylight.
Re: Re: Re: A Beginning Guide To Evolutionary Algorithms
by Anonymous Monk on Oct 14, 2003 at 19:36 UTC
    In fact, one major problem in evolutionary biology and phylogenetics is the near-impossibility of defining the distance between two different phylogenetic trees mathematically. For instance, you may wish to have some quantitative metric to indicate how much a tree is perturbed by the addition/removal of an additional element, but as best as I know that's virtually impossible.