Genetic Algorithms for Optimal Graph Reduction

Hello all,

I am currently carrying out a project that involves using some genetic algorithms to solve optimal reduction Problems in a graphical term rewriting system. I want the algorithm to find the optimal positions for rewriting or reduction in this case

I need to represent chromosones in tree format to keep consistency with the graphs.

I was wondering if anyone could offer some ideas on the following (I don't want code!!):

1: How to get the input from keyboard as this requires a complex graph language? (Have considered Bison & Lex in C/C++)

2: What are the best mutation and crossover strategies for graphs?

3: Is there a java API that allows b-trees to be directly imported into the GA as it would really save me some time?

Thanks

Prashant

[818 byte] By [PRASHPSG] at [2007-9-30 12:37:45]
# 1

> 1: How to get the input from keyboard as this requires

> a complex graph language? (Have considered Bison &

> Lex in C/C++)

>

Huh? Enter the graph as a list of edges where the endpoints of the edges are integers.

> 2: What are the best mutation and crossover strategies

> for graphs?

I don't think there is such a thing as "best" when you are talking about genetic algorithms.

You may find an algorithm that performs well on graphs that have a certain property, whether

you can determine that property to exploit it is another problem in itself.

>

> 3: Is there a java API that allows b-trees to be

> directly imported into the GA as it would really save

> me some time?

>

Does Java provide a GA API? If it is your own GA API then the question is most likely no. You might want to search source forge for APIs relating to genetic algorithms (GA).

rkippen at 2007-7-4 16:31:17 > top of Java-index,Other Topics,Algorithms...
# 2

Thanks for the reply,

There are several rules for appending nodes and deleting nodes that need to be applied and as such it is more of an abstact language I am trying to define.

There are nodes with special properties that will carry out specific functions for rewriting. I do see your point about using the edges with numbers to link the nodes. However its the nodes that worry me as some special nodes will have a specific functionality for creating the rewriting rules.

I need to use something like Bison or Yacc but a JAVA version to create an application that is capable defining a graph in Lambda Calculus terms for example its almost like I have to program the graph in as a chromosone. I do think it would be easier to generate random graphs though.

I looked at several Genetic APIs and apps for java

http://www.biojava.org

http://sourceforge.net/projects/j-a-g-a/

http://cs.gmu.edu/~eclab/projects/ecj/

http://jgap.sourceforge.net/

Just thought it might help others.

PRASHPSG at 2007-7-4 16:31:17 > top of Java-index,Other Topics,Algorithms...