[ANN] Watchmaker Framework for Evolutionary Algorithms version 0.1 (first public release)

Discussion in 'Java' started by Daniel Dyer, Sep 25, 2006.

  1. Daniel Dyer

    Daniel Dyer Guest

    Version 0.1 of the Watchmaker Framework for Evolutionary Algorithms is
    available for download from the project page
    (https://watchmaker.dev.java.net/). The framework requires Java 5.0 and a
    familiarity with generics.

    I have also uploaded the first draft of the first two parts of a tutorial
    on how to use the framework to implement evolutionary algorithms in Java:

    Part 1 - https://watchmaker.dev.java.net/tutorial1.html
    Part 2 - https://watchmaker.dev.java.net/tutorial2.html

    This all still very much work-in-progress, but feel free to download and
    play, and to make comments and suggestions for improvements to both the
    software and tutorial.

    Dan.

    --
    Daniel Dyer
    http://www.uncommons.org
     
    Daniel Dyer, Sep 25, 2006
    #1
    1. Advertising

  2. Daniel Dyer

    Oliver Wong Guest

    "Daniel Dyer" <"You don't need it"> wrote in message
    news:eek:...
    > Version 0.1 of the Watchmaker Framework for Evolutionary Algorithms is
    > available for download from the project page
    > (https://watchmaker.dev.java.net/). The framework requires Java 5.0 and a
    > familiarity with generics.
    >
    > I have also uploaded the first draft of the first two parts of a tutorial
    > on how to use the framework to implement evolutionary algorithms in Java:
    >
    > Part 1 - https://watchmaker.dev.java.net/tutorial1.html
    > Part 2 - https://watchmaker.dev.java.net/tutorial2.html
    >
    > This all still very much work-in-progress, but feel free to download and
    > play, and to make comments and suggestions for improvements to both the
    > software and tutorial.


    How about a candidate factory which generates a random XML document
    which complies to a provided XSD? Or a subset might be handy (e.g. include
    elements, and perhaps attributes, but no CDATA, processor instructions,
    comments, etc.) Basically, something to generate a tree from a well defined
    grammar (XML's the simplest implementation of this that came to mind).

    - Oliver
     
    Oliver Wong, Sep 25, 2006
    #2
    1. Advertising

  3. Daniel Dyer

    Daniel Dyer Guest

    On Mon, 25 Sep 2006 21:54:42 +0100, Oliver Wong <>
    wrote:

    >> This all still very much work-in-progress, but feel free to download
    >> and play, and to make comments and suggestions for improvements to both
    >> the software and tutorial.

    >
    > How about a candidate factory which generates a random XML document
    > which complies to a provided XSD? Or a subset might be handy (e.g.
    > include elements, and perhaps attributes, but no CDATA, processor
    > instructions, comments, etc.) Basically, something to generate a tree
    > from a well defined grammar (XML's the simplest implementation of this
    > that came to mind).


    It's a possibility. What kind of problems do you envisage applying this
    to?

    There's tree-based stuff in genetic programming, which I haven't really
    given much thought to yet, though I'd like to incorporate it at some
    point. I guess your suggestion would fit in quite nicely with this.

    Dan.

    --
    Daniel Dyer
    http://www.uncommons.org
     
    Daniel Dyer, Sep 25, 2006
    #3
  4. Daniel Dyer

    Oliver Wong Guest

    "Daniel Dyer" <"You don't need it"> wrote in message
    news:eek:...
    > On Mon, 25 Sep 2006 21:54:42 +0100, Oliver Wong <>
    > wrote:
    >
    >>> This all still very much work-in-progress, but feel free to download
    >>> and play, and to make comments and suggestions for improvements to both
    >>> the software and tutorial.

    >>
    >> How about a candidate factory which generates a random XML document
    >> which complies to a provided XSD? Or a subset might be handy (e.g.
    >> include elements, and perhaps attributes, but no CDATA, processor
    >> instructions, comments, etc.) Basically, something to generate a tree
    >> from a well defined grammar (XML's the simplest implementation of this
    >> that came to mind).

    >
    > It's a possibility. What kind of problems do you envisage applying this
    > to?


    Generating random programs/algorithms to solve a given problem.
    Honestly, though, I haven't put much thought into this, so I'm not sure how
    feasible it would be. If I had to undertake this task, I'd probably try to
    generate code for a functional language with zero side effects (so variable
    assignments don't exist, and so variables don't exist, and so I don't have
    to worry about checking that a variable is declared before it's used, for
    example).

    An easy mutation scheme would be to select a random point in the tree,
    discard everything below it, and generate a new subtree branch. The problem
    with that is that the degree of "mutancy" depends on how high up in the tree
    the random point is chosen, and depending on the grammar, there may be zero
    randomness involved in selecting the children below a certain point. I'm not
    sure how one would implement cross-over with trees, however. Did you
    implement cross-over for permutations, and if so, how did you do it?

    - Oliver
     
    Oliver Wong, Sep 25, 2006
    #4
  5. Daniel Dyer

    Daniel Dyer Guest

    On Mon, 25 Sep 2006 22:20:46 +0100, Oliver Wong <>
    wrote:

    >>> How about a candidate factory which generates a random XML
    >>> document which complies to a provided XSD? Or a subset might be handy
    >>> (e.g. include elements, and perhaps attributes, but no CDATA,
    >>> processor instructions, comments, etc.) Basically, something to
    >>> generate a tree from a well defined grammar (XML's the simplest
    >>> implementation of this that came to mind).

    >>
    >> It's a possibility. What kind of problems do you envisage applying
    >> this to?

    >
    > Generating random programs/algorithms to solve a given problem.
    > Honestly, though, I haven't put much thought into this, so I'm not sure
    > how feasible it would be. If I had to undertake this task, I'd probably
    > try to generate code for a functional language with zero side effects
    > (so variable assignments don't exist, and so variables don't exist, and
    > so I don't have to worry about checking that a variable is declared
    > before it's used, for example).


    The functional idea is one that had occurred to me too, though I haven't
    really considered it beyond "hey, maybe I could evolve Haskell
    programs...". http://www.genetic-programming.org/ has a lot of detail
    about evolving programs.

    > An easy mutation scheme would be to select a random point in the
    > tree, discard everything below it, and generate a new subtree branch.
    > The problem with that is that the degree of "mutancy" depends on how
    > high up in the tree the random point is chosen, and depending on the
    > grammar, there may be zero randomness involved in selecting the children
    > below a certain point. I'm not sure how one would implement cross-over
    > with trees, however. Did you implement cross-over for permutations, and
    > if so, how did you do it?


    When implementing an EA for the travelling salesman problem, I used only
    mutation for the permutations. However, ordered cross-over operations are
    possible (see http://www.permutationcity.co.uk/projects/mutants/tsp.html
    for an example).

    Dan.

    --
    Daniel Dyer
    http://www.uncommons.org
     
    Daniel Dyer, Sep 25, 2006
    #5
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Charles A. Lackman
    Replies:
    1
    Views:
    1,423
    smith
    Dec 8, 2004
  2. Daniel Dyer
    Replies:
    2
    Views:
    593
    Daniel Dyer
    Dec 26, 2006
  3. V Green
    Replies:
    0
    Views:
    903
    V Green
    Feb 5, 2008
  4. PA Bear [MS MVP]
    Replies:
    0
    Views:
    1,018
    PA Bear [MS MVP]
    Feb 5, 2008
  5. Mike Owens
    Replies:
    0
    Views:
    109
    Mike Owens
    Sep 9, 2010
Loading...

Share This Page