Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re: A Beginning Guide To Evolutionary Algorithms

by AssFace (Pilgrim)
on Oct 14, 2003 at 16:12 UTC ( #299166=note: print w/ replies, xml ) Need Help??


in reply to A Beginning Guide To Evolutionary Algorithms

Does Perl have any modules that would allow plotting the 3D problem/solution space? I do a lot of work with genetic algorithms and neural nets and it would be interesting to be able to easily output your results on a 3D contour map of the problem space...

Although I guess in most cases you can't map the solution space or problem space, just the parts of it that you have discovered and then have to look at the graph and guess the rest.



-------------------------------------------------------------------
There are some odd things afoot now, in the Villa Straylight.


Comment on Re: A Beginning Guide To Evolutionary Algorithms
Re: Re: A Beginning Guide To Evolutionary Algorithms
by blokhead (Monsignor) on Oct 14, 2003 at 16:59 UTC
    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.

    blokhead

      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.
      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.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://299166]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (15)
As of 2014-07-14 11:27 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    When choosing user names for websites, I prefer to use:








    Results (257 votes), past polls