Tuesday, June 9, 2015

education

I've been using a nifty little program the past week  and I must say, its very useful. When using a ssh terminal, any program that is running is stopped when the ssh terminal closes. screen allows you to leave the terminal and come back to it later. To use screen,,, type screen... yup, that's it. there's some other commands to get through it like ctrl+a d detaches from the port, ctrl+a c makes a new screen, a screen -ls shows you the name of all the screens and screen -r <name> attaches back to the screen. I'm also using top. It allows me to see who is using what of the computer. Its all little tricks and stuff. Top is useful, because if someone is using that computer with a cpu intensive task then the program to be run might become slow.

Sunday, June 7, 2015

actualization

This is just a short fyi post... I was able to make box and whisker plots with the data given from the last run. now all I need to do is call the program, the text file with the data and the name I want to save the chart as. this is taco.png mark two
I dont quite yet know how to change add words and stuff but this is the max values of the run, the x axis is the mutation rate, instead of 1 think of .1 mutation. 

Friday, June 5, 2015

continuation

This morning, I tried my hand with python... i think i like it (n.n). I have made a plot off a run I made yesterday. lookie
I know its not much, but I was able to make a script to do this... Im ecstatic... The script takes in two parameters, for now, the file to be saved and the name of the file. Right now you are looking at taco.png.  I'm now going to tackle making the chart more useful, the file i gave it only had one column and the larger runs have more, so this is going to be the focus of the rest of the day.

Ps, turns out that one of the runs I started last night was still chugging along so this morning I saw and I now have more data for the effects of mutation on the ga evolution.  

assimilation

yesterday wasn't so grand, just some house keeping. The simulation ran and the data was collected just fine. As of now Im trying to learn python so that a script will make a chart of the data instead of using excel. As I was reading up on python I ran some other simulations, I used 2 sets of computers and I think I found a bug of sorts. One of the ball and plate stopped running, so I look ate the computer that was handling the evaluations and found that that computer stopped as well. The problem wasn't with the two so I can assume that it is a problem with the actual code. I think that I know where it is. Like I said...or it think i said it... the when the program is evaluating a generation different threads go and do the computations, then report to one method that reports when all the threads have returned, if one thread is stuck then the whole thing waits. But I don't see how this would happen because the Thread is has a time limit, and if it is met then the thread returns a default value. unless I commented it out hunting down another bug. I`ll check but It seems that is not it. Other then that there is not many while loops in the system, most are for so there would be no reason for a looping system.
I don't know if this is an actual problem, I tried it with the first set and didn't have this problem, It only happened when I tried to run both simulation at the same time. I made sure that there wasn't any overlap in machines so I don't know what could have caused the problem.

Wednesday, June 3, 2015

vexation

Ug, (-_-)... So this morning I went back to my computer and saw that there was an error, a Java.net.SocketException: connection reset. So I tried again, and got the same thing. It turned out that I was calling computers that were not listening , lesson learned. The bulk of today was just hunting down bugs that seemed to magically appear... more like they just began to be a problem. It went from no floats being stored to no evolutionary growth, to this, and that. I also noticed that the initial population was really bad, like 1.00E-5 bad, this meant that my program wasn't good for really low numbers. the problem was showing up when the elite and fit were being seen, only maybe 2 where classified as good, two a generation does not make. To fix this problem  I made the crossover of the fit come back again after the mutation, just to fill the population up to the population size, after the 3 or fourth this is not even used. Once that problem was finished and bow-Tied I was able to run all three programs... the one that evaluates the fitness, the one that draws out the eval, and the genetic algor... and its running as I type. I hope that I will go well. I read generation log file right now and im seeing some 500+ to 4000+.  here's what the test look like... there's 20 threads running but i only show four, assuming if the first two and last two run then the rest should be okay
I did find something that might be a problem, if only one for a single generation. Some of the test results are like 7000+, in a population who is mostly 1.blaE-4. I ran these manually and the fitness was .0001bla. So if this proves to be a problem, then I guess i could make a little screen that if a number that is really high passes along, a method will rerun the individual and if another number, say plus or minus 25% is a result then the second will be used, or maybe that average of the two...idk right now.

Compulations


Ps. Yesterday was a bit full closer to the end of the day, I wrote down the blog forgot to publish it

Today was...(U_U) ... I found that my program is fickle, sometimes it runs like a dream, and other times it rises high just to crash an burn. But other then the little bugs and such the program works fine...ish. One problem that I had was that the class that has many threads uses one method to check back with...im using indexes and arrays so i dont have to worry about data contamination... This one method will not let the class be finished until all the threads have finished with there computations. Well one thread would get stuck, leaving my program frozen. I added a request Time out and set the gave the result variable a default value of 0.123456789. also  I unknowing suited the program to the first url, and now that i have a second, I have to add some methods that would suit this url. But this one is that actual ball and plate... looky  ( ^.^)
Its cool.  Right now im running the program and hope it went well.

Monday, June 1, 2015

annexation

I was able to successfully alter my program so that only one generation of individuals is stored in run time and the rest are dynamically added to files. So instead of having at least I *N*G floats being stored all that is being stored is I by float. I also found some bugs in my code that made everything serial instead of concurrent. That was fixed but there was a bit of a bug that came with it, but it was nicely squashed. As of now I'm trying to log into the Clemson computers through a ssh terminal. The problem that im having is that i don't know if there's a deadlock in my code or if the terminal is just slow, but its taking along time for a small data call. Ill just wait. (- .-)

Ps. I went to get some water and the terminal is spitting out data, line by line, so ya the terminal is just slow (~...~)