Advertisement

Genetic Programming

Started by February 04, 2003 06:11 PM
14 comments, last by Dwiel 21 years, 7 months ago
I see waht your saying about the complexity it adds. I had never thought of it that way. I should have I guess. I had thought of it in modules so that the complexity could be be slit up into different modules, not so that I could find the best combination of them. A very simple and seemingly obvious idea that I feel stupid at not thinking of.

Also, proccessing power hopefully will not be a problem. I have a network of 3 computer with a possible 4th on a network. If I set up the GP on each computer and had it exchange programs in the form of a file everyonce in a while, I should be able to get very good results. I will also have a much larger gene pool which should result in hopefully more diverse algorithms. I''ve got currently a 950mhz, a 650mhz, a 1.3ghz, and a possible 600mhz. That totals to 3500mhz. And because of the way proccessors work, it would probobly end up working more like a 4ghz.

enough bragging. I''ll check out those sites and see if I can find any good pdfs. I was planning on getting that book from the library. I know that they can get almoast any book by getting it delivered from some other place.. There''s a huge network of librarys that work together, so I might not have to pay for it

Thanx for the quick help!

P.S. Now that I think about it, I might be able to convinse my HS school to let me use the computers at night or something. Maybe set up a whole lab to work together. That would be awesome.

anyway

Thanx!

Tazzel3d ~ Dwiel
*Kirk*
"John Koza popularized genetic programming (as well as inventing scratch off lottery tickets"

Is that true?



*Tazzel*
"I will also have a much larger gene pool which should result in hopefully more diverse algorithms"

There is a common misconception that having a huge population leads to greater diversity. This is absolutely not the case. As you will discover...

" I was planning on getting that book from the library. I know that they can get almoast any book by getting it delivered from some other place.. There's a huge network of librarys that work together, so I might not have to pay for it."

I guess you don't live in the UK then... The budget our libraries get is disgusting. In fact, our entire education system is completely screwed.

Good luck with your project. Please stay in touch with us and let us know how you get on.



ai-junkie.com

[edited by - fup on February 6, 2003 7:33:33 PM]
Advertisement
so if I was able to sya get a whole bunch of computer power, it would be most benificial to have more generations than a larger population?

thanx for the info.

BTW, there''s no way I could ever get a specific programming book from the library, but because of this inter-library loan which allows library''s from accros the country share books, I''m kinda hoping It''ll happen.

Thanx again for the fast replies!

Tazzel3d ~ Dwiel
"so if I was able to sya get a whole bunch of computer power, it would be most benificial to have more generations than a larger population"

no, not necessarily. The most important thing is getting the algorithm setup correctly. Using the correct parameters for the problem, designing good operators, maybe using a niching technique. Every problem is different. You have to experiment.

There is a pretty good paper online somewhere about some bots developed for Unreal using GP. Maybe that will help you

http://www.cs.auc.dk/~gekko/



ai-junkie.com
quote:

*Kirk*
"John Koza popularized genetic programming (as well as inventing scratch off lottery tickets"

Is that true?



Of course it''s true! John Koza is the main force behind popularizing GP. 8^) Oh, and the scratch off lottery ticket thing is, too. I think they even mention it in the new issue of Scientific American. BTW, I should also say that there is an interesting article in Scientific American about GP - I think Koza wrote it. They show a circuit (high pass filter, I think) that was developed via GP which works better than the current best known version - much cleaner output. The interesting part is where they say "...we don''t understand how it works, but it works better..." I like that.


quote:
I see waht your saying about the complexity it adds. I had never thought of it that way. I should have I guess. I had thought of it in modules so that the complexity could be be slit up into different modules, not so that I could find the best combination of them. A very simple and seemingly obvious idea that I feel stupid at not thinking of.


Don''t ever feel stupid for this type of oversight. I''m sure Newton felt stupid, too, once he realized there was no closed solution for a 3 body system. I personally think you have thought this one out very well, and should feel very good about what you''ve suggested.

quote:
"so if I was able to sya get a whole bunch of computer power, it would be most benificial to have more generations than a larger population"

no, not necessarily. The most important thing is getting the algorithm setup correctly. Using the correct parameters for the problem, designing good operators, maybe using a niching technique. Every problem is different. You have to experiment.


fup has a very good point there. It''s a bit like government doing scientific research. They might find the solution if they keep throwing money at it, but if they would just work smarter and more efficiently a lot more answers would be found. Regarding experimentation, I''ve often commented that I need to develop a GA to adjust the parameters of my GA which is adjusting the parameters of my GP!!

quote:
There is a pretty good paper online somewhere about some bots developed for Unreal using GP. Maybe that will help you

http://www.cs.auc.dk/~gekko/


Another very good one. I believe this was a master''s project of a couple of students. A very nice read and opens the flood gates for ideas.

Keep us informed of your progress...

-Kirk





Hey guys!

I got a program ''runner'' completed. Basically I have a class that will run the programs that it has inside of it. Currently the programms are not generated or altered (hardly a GP), but it runs everything smoothly. Basically the setup is as follows. You can give it a pointers to functions which return float and take two floats as arguments. you can pass variables into the program and find the result. Currently the program I have in there is x * (y / 25).... I don''t want to start the code that crosses/mutates/modifies the LISP programms yet cause I wouldn''t sleep untill they were finished and its already pretty late here. I still am doing some thinking about how the programms will be altered. So far I have thought of the following:

-take an n number of programs, split them at node number x, and swap the parts.
-modify any constants by small/large random values.
-replace variable nodes with a function that is passed that variable and some constant or variable.
-replace random function number with a new function.

what other methods are used to create a new generation of programms?

I got John Koza''s Genetic Programming 3 at the university comp sci library. The only one of his books they had. Very good read. A lot of ideas. It has a good into to GP which is a bit basic but helpful. He goes on to give many far more complex thoughts which is also cool.

I''ll post an update tomarrow when I get my GP actually modifying/creating the programms it runs

I''m starting basic by trying to make a GP that will try to find the inverse of some function f(x) on some inteval [a, b]. Very basic, but maybe kinda helpful if I don''t have my TI-89 graphing calculator handy.

tazzel3d ~ Dwiel

This topic is closed to new replies.

Advertisement