How to get started?

8c72dcc39b44052d5500c2264b2e4771
0
Ethanbot 101 Apr 27, 2006 at 17:35

I just recently started reading about advanced AI (genetic algorithms, neural pathways, etc) and I must say, I’m very interested. I’ve already got a couple of ideas to utilize the various ideas, but I don’t really know how to get started. I’ve read a couple of articles, but they’re not really enough to get me going. Any help would be greatly appreciated.

4 Replies

Please log in or register to post a reply.

A8433b04cb41dd57113740b779f61acb
0
Reedbeta 167 Apr 27, 2006 at 18:15

For GA, you might try writing an “ant simulator”. Basically, you get a 2D map with a bunch of ants and food on it, allow the ants to lay down pheremone trails, and use a genetic algorithm to ‘tune’ the ants to those who are best at surviving by e.g. exploring to find new food and following other ants’ pheremone trails. You can have also combine techniques, like using a neural network to control each ant and using GA to find the weights for the neurons (instead of back-propogation or whatever). Basically you can play around and make whatever you want :)

8c72dcc39b44052d5500c2264b2e4771
0
Ethanbot 101 Apr 28, 2006 at 03:11

@Reedbeta

For GA, you might try writing an “ant simulator”. Basically, you get a 2D map with a bunch of ants and food on it, allow the ants to lay down pheremone trails, and use a genetic algorithm to ‘tune’ the ants to those who are best at surviving by e.g. exploring to find new food and following other ants’ pheremone trails. You can have also combine techniques, like using a neural network to control each ant and using GA to find the weights for the neurons (instead of back-propogation or whatever). Basically you can play around and make whatever you want :)

Thank you for your reply. You gave me a great start for my first project. Basically it’s the same idea as the ant simulator, minus the chemical trails for now. It slightly works, I’m having some trouble getting the creatures to eat the food they see, but I’m sure I can work it out. I’m mostly just proud to have gotten the “mating” to work properly.

One thing I’m really just befuddled on is the whole ideas of neural networks. I loved your suggestion of giving each creature its own “brain”, so to speak. The problem is, the few articles and tutorials out there really don’t make it clear enough how to utilize the idea. How do you make the creatures “think”? What exactly are you programming them to do? Remember where food commonly appears? Evaluate past paths and create new ones to follow? I’m just completely confused on that whole idea, so some clarification would be greatly appreciated.

One last question which was pointed out to me by my friend. I never questioned the idea of representing the genetical data using binary. What’s the purpose? The only possibility I could think of was it makes it easier in the whole crossover/mutation process. Am I correct?

Other than that, thank you again for your reply.

A8433b04cb41dd57113740b779f61acb
0
Reedbeta 167 Apr 28, 2006 at 04:34

The genetic data can be represented in any format you choose. All you need is for the data to be separated in some kind of chunks (“chromosomes”), so you can create offspring by taking one parent’s chunk 1, the other parent’s chunk 2, etc (randomly). For instance, in the neural network case the data would be the weights for each edge (floating point values). You can (and should) also add mutation, e.g. a random deviation in the weights.

Regarding neural networks for controlling the behavior of the creature, you can again choose to do most anything you’d like, as long as you can reduce it to numerical inputs and outputs. For instance, you could have three input nodes, one which would be set to 1 if there is food in front of the ant, and one each for left and right. (You get to decide how close the food has to be before the ant can “see” it.) Then you could have a hidden layer and a couple output nodes to indicate movement - e.g. if both nodes are high (above their threshold) move forward, if they’re both low stay where you are, if one is high and the other is low then turn either left or right depending. Again though this is just one way to approach it, and you could give the neural networks more complicated inputs and outputs if you wanted.

8c72dcc39b44052d5500c2264b2e4771
0
Ethanbot 101 Apr 28, 2006 at 14:26

@Reedbeta

The genetic data can be represented in any format you choose. All you need is for the data to be separated in some kind of chunks (“chromosomes”), so you can create offspring by taking one parent’s chunk 1, the other parent’s chunk 2, etc (randomly). For instance, in the neural network case the data would be the weights for each edge (floating point values). You can (and should) also add mutation, e.g. a random deviation in the weights. Regarding neural networks for controlling the behavior of the creature, you can again choose to do most anything you’d like, as long as you can reduce it to numerical inputs and outputs. For instance, you could have three input nodes, one which would be set to 1 if there is food in front of the ant, and one each for left and right. (You get to decide how close the food has to be before the ant can “see” it.) Then you could have a hidden layer and a couple output nodes to indicate movement - e.g. if both nodes are high (above their threshold) move forward, if they’re both low stay where you are, if one is high and the other is low then turn either left or right depending. Again though this is just one way to approach it, and you could give the neural networks more complicated inputs and outputs if you wanted.

Thanks again, that pretty much sums it up very well =) I think I have a better understanding of it now.