Sunday, May 31, 2015

recreation

I looked at my program and saw a bit of a memory issue. The way its set up, there is a data structure that holds a E number of evolution. The evolution have a G number of generations. The generation have I number of individuals, and these individuals have 6 floating point parameters. Meaning that for a given run my program has to hold E*G*I*6. assuming a 32 bit floating point that would be 192*E*I*G.... whaaaaaa(6-6)... so I'm trying to change my interface so that it only holds at most one evolution at a time, or if I can, I will get it to hold only one generation at a time. This will save on a lot of run time data.

verification

Sorry for that latenessness... On Thursday and most of Friday I had a fun-ish time. On Wednesday I ran my program with some large parameters using a cloud ide, and my guess is that just the activation, or calling the program made my poor little computer spazzed and freeze, but no problem. As stated, I could really read the data, so Dr.Remy help me see a pattern, but the data wasn't so clear on the max fitness but se la vie. I made a presentation about it and presented it to Dr.Remy. It was said that more data was needed, so I ran my simulations again with some tweaks to make it easier for me to compile the data... that took a hour (O_U), glad it wasn't my computer... and made a chart for it. That data didn't say much either. But It turns out that the file that i made to hold all the zero population... used for making sure that the test are more equal... had one particular individual that had a fitness that was really high, so the max couldn't really go any higher. But it was cool to run. Heres the presentation.

Wednesday, May 27, 2015

observation

On today's agenda, I made some more minor modification. Now once ran, my program will store the results of the simulation into a directory. This might not sound like much, but once I completed the task of storing a file into a directory... or making the directory if it doesn't exist, then storing it... I reveled in my nerdy accomplishment. Other then that I ran my simulation with very degrees of mutation rates. I made a chart of the outcome, but I dont know how to present the averages and the maxes.
if I average the outcomes...ie maxes and average fitness... then that would show the growth along the generation, and that would erase the value of the different mutation rates.
If I show the averages in a line/scatter graph, and the same for the maxes then this will show a trend, but I don't know if it would get the point across, being the effects of different mutation rates on the evolution of the system.
So as of now, I have data....yup, that it (c.c)

formalization

Yesterday was fun, I showed my code to my mentor and there were some adjustments to be made. It was just small details that I didn`t catch. It wasn`t hard at all, in fact,  the way my program was set up a few new methods and functions finished it.  
 The only problem that I had was when I was trying to print out the final product... some back ground, as my program runs every generation is stored... The final product was a log file that contained all the information of all the generations in all the iterations and evaluations. My problem was that I wasn't getting the correct output. Instead of seven columns of data going down the screen, I would get 10 rows of data going across the screen. I didn`t know what was going on. After about half an hour of changing and checking... the checking part took the longest. I learned that one of the string I was using to hold all the data wasn't being set to "", so I added a whole seven characters, 1 whole line of code, and everything work perfectly. (& . &) . I still have to run my program on a cloud ide and Im having a bit of trouble, but I`ll work it out.

Monday, May 25, 2015

evaluations

Over the weekend I finished up the Genetic Algorithm implementation, and fine tuned it. On the first runs I was getting really low output, so I tweaked the population generator. At the time I thought it was cheating, but my reasoning was: if I need to build a bridge and I start out with random materials, I know that clouds will not be good, and I know that keeping bricks together with gum will be no good either. Turns out this is called seeding the population, and its a task for this week. ( ^ . ^)  I change the method to now spit out random numbers between plus and minus 20 for now.
I made a new class that would automatically run a simulation of N parameters, X amount of time and would present the outcome in Excel friendly format, so all I have to do is copy the file content into a excel doc and output a graph. I ran the program for 20 simulations with 15 generations and I got some cool results. After the about three generations every generation after that just hovers around some number. I think its interesting that all the simulations showed this effect. I only did 20 simulations of 15 generations of 15 individuals  because I wanted to get all the bugs out of the code and my computer is.. lets just say it is not top of the line, its good, just not intel good.

Saturday, May 23, 2015

alterations

As of now I'm finishing up my first genetic algorithm implementation. The actual structure was not hard, it was the small details that drove me up the wall. I had a problem that when I would run the program with vectors and individuals being tested , I would get vectors that were superior to the others in the generation. The problem that I had, well one of them, was that after say three iterations the clones would start to appear. After so many iterations ,I would have nothing but clones.
Part of the Generation Creation in the Iteration process... say that three times... all the individuals in the generation go through a process in which some are mutated. i.e some random variable in the vector is altered in some way.
The other problem that I was running into was that when the program would mutate a vector, every clone of that vector would also change. So these two problems really put a wrench in the cogs for my program. With a generation of clones and every change to one would effect them all, my program didn't have a chance.
Today I altered the structure of the data so that instead of ...ps i`m using java... my a class to hold the vector, its fitness, the time it took to run , bla bla bla, I have a class that just hold arrays of floats and doubles.
As far as the clones, I think when I fixed the problem with the references I fixed the problem with the clones. I have run the program and now I have a different problem, but one that can easily be fixed.
later ( 0 c 0 ) \m/

Wednesday, May 20, 2015

inclinations

I now have some inclination of what I will be doing this summer, or at least part of. The last two days I have done some reading, one of the papers was Evolving Networked Controllers at Scale in the Presence of Noise (ENC), done by another student, Zachary McNellis, and Dr. Sekou Remy, the other three where : Genetic Algorithms in Noisy Environments (GAN) by J.Micheal Fitzpatrick and John J. Grefenstette, Cloud Network Robotics by a whole lot of people (CNR), one being Koji Kamei, and The Effects of Static Fitness Function Upon the Performance of Genetic Algorithms (ESF) by Alexander Grushin.  P.S. I'm using three capital notation just to be lazy, as I like to call it locution conservation.  With these three papers I have been able to get a much better understanding of what I suspect to be my work this summer. I will be extending the ENC paper which is about the presence of noise in Genetic Algorithms.  Let me break down the last sentence.
 Genetic Algorithms are algorithms that when presented a set of information,  say steps to solve a puzzle, try to give a better set of steps.  This I learned with GAN and ENC.

Noise can be seen as..., well the best way I can describe it is with the illustration of a virus. As the genetic algorithm goes along, noise causes the outcome to have unwanted effects, much like a cold.if you have a cold, you cough, have aches, sneeze and go through a whole heap of tissues. Noise in genetic algorithms kinda works in the same way. I pieced this together with all the papers.

The work that I will be doing this summer, I believe, can be summed up in this: "how does the real time control  effect the evolution for  a genetic algorithm, for better or worst across different types of communication ".  As is, the paper I will be extending, the ENC, suggest that if a system has some noise, this is good, but to much noise and this is bad. This is also supported with the articles GAN and ESF.

Sunday, May 17, 2015

initialization

Hello to all.
My name is Lee Curry. I am currently a undergraduate at the University of Texas at El Paso in the field of computer science. This summer, or a good two-thirds of it, will be spent doing research at Clemson University. This blog will be my journal about my time here at Clemson.