Evolving Large Populations of Controllers for Complex Systems
Wednesday, July 29, 2015
Finalization
I think thats it. I have had fun here at Clemson. I have to add some other little stuff to the presentation and will be working on another paper but I am going home.
Inculcation
So I have been using some cool programs like screen and ... um you know how when some one asked you what you do and then you instantaneously forget everything you do *_*... &.
I'm going to lay out a small description of them and some ways to use them. These are for terminals.
Screen-----
allows for a user to have multiple screens in one terminal, and when terminal is closed no program progression is lost. I all ready did a small description earlier... look for it.
&---
allows for a program to be done in the background. to use just follow the command up with & and your done.
bg---
sends thing to background
fg -------
brings thing from the background
ctrl+z -------
stops program
git -----
git is like svn... kinda. It is a repository management tool.... not to be confused with respiratory.... git has some follow up parameters.
---add
adds file to repository wait list
---help
shows all the stuff git can do
---commit
ensures stuff in wait list is going to go to repository
---clone
copies repository to local machine
---push
pushes all files on wait list to repository
--pull
brings new files into local directory
there are others but I used these the most.
I'm going to lay out a small description of them and some ways to use them. These are for terminals.
Screen-----
allows for a user to have multiple screens in one terminal, and when terminal is closed no program progression is lost. I all ready did a small description earlier... look for it.
&---
allows for a program to be done in the background. to use just follow the command up with & and your done.
bg---
sends thing to background
fg -------
brings thing from the background
ctrl+z -------
stops program
git -----
git is like svn... kinda. It is a repository management tool.... not to be confused with respiratory.... git has some follow up parameters.
---add
adds file to repository wait list
---help
shows all the stuff git can do
---commit
ensures stuff in wait list is going to go to repository
---clone
copies repository to local machine
---push
pushes all files on wait list to repository
--pull
brings new files into local directory
there are others but I used these the most.
Documentation
This is sort of a catch up post. On Monday, the paper was being finalized.. fixing all the pictures and sorting to find mistakes.... I had some trouble with compiling that paper with latex. I used a online editor called overleaf, and I was great until the compiler timed out, then I tried a offline compiler that I downloaded... didn't work... I tried another offline program plug in to eclipse... didn't work. Then I tried a different online editor.... nadda. So Dr Remy did some magic and now it compiles nicely. On Tuesday I asked Peter and another guy who works in the lab...Brandon... to help me clean up my UI. It wasn't too bad. To run it the user needs some sort of background knowledge so I made sure the read-me was up and "nice".
Today is going to be some backlog blog posts and two classes to help get around for the GA. They seem small so no biggy. Then at thing at 12 so Ill go. And after that, that's it. Tomorrow I will do a final presentation and be off to El Paso.
Today is going to be some backlog blog posts and two classes to help get around for the GA. They seem small so no biggy. Then at thing at 12 so Ill go. And after that, that's it. Tomorrow I will do a final presentation and be off to El Paso.
Thursday, July 23, 2015
Teleportation
Well more like really fast transportation but... Last night I was able to run 21 runs from Clemson to actual Utah. It was quite interesting that I was able to run 21 runs back to back.
Anyway I was able to chart the data and got some interesting results. these results wont make sense with out context though. The network runs from last week where also charted... those pics should be a bit lower or a post back... Those depicted the best individuals ran from joey to joey and joey to clemson Utah. The hypothosis was that a good individual will be good... in relation to the others of that population... regardless of the topology that the individual is ran on. these new charts which are the same individuals ran in actual Utah support that .... lookee.
Anyway I was able to chart the data and got some interesting results. these results wont make sense with out context though. The network runs from last week where also charted... those pics should be a bit lower or a post back... Those depicted the best individuals ran from joey to joey and joey to clemson Utah. The hypothosis was that a good individual will be good... in relation to the others of that population... regardless of the topology that the individual is ran on. these new charts which are the same individuals ran in actual Utah support that .... lookee.
I know you can't see anything. All the fitness where really low. The highest fitness was like 730. For comparison, we saw values near 15000. But take into consideration how hard it is to balance an egg on a spoon, it is not that hard, but now make that spoon is a couple to hundred miles long and the story is different. I redid the chart with so that the highest Y-value would be 1000 and got a more informative picture.
these are the same just with different zooms... I guess that is the word... But the picture is quite similar to that of the network run (i.e. Joey to Clemson/Utah) and the local run (Joey to Joey).
Tuesday, July 21, 2015
Accentuation
...lights out... I spent the morning trying to figure out a way to single out the fitnesses of the most fit of the first generation using python. Doing so will answer some questions... like how good can one individual be? Or what effect does the topology that the system is run on have on the same individuals....
Because the way my program is set up, so long as no files have been deleted all runs will start off with the same first generation... in one way or another, if the user chooses different seeded rate then the numbers will shift, but for all the experiment all the parameters where the same except for the mutation rate... Because of this all the runs have the exact same first generation.
Except for the fitnesses, all the logs look like the first generation has been copied and pasted. The program was kinda hard for me. In the end, python was shorter (only like 43 lines of code) and the first half was just imports. Arrays and indices are a little complex for me to use fluidly right now but I'm getting there. Anyway I made charts of 2 different typologies and the results are interesting... to me at least.
The "Joey to Joey" plots show the same trend. the first box... actually both one and two have the same look to them, so does three... There is little difference in either "joey to joey", this make sense because it is the same individuals on the same topology. But in terms of meaning the mean fitness is really close. There are bound to be stragglers but the fitness tends to be the same... or at least in the same area. The trend can be seen when comparing both "Joey to 'Utah'". But when it comes to comparing JTJ... Joey to joey... and JTCU... joey to utah... there is a difference. In JTCU all the boxes are notably smaller then there correspondents in JTJ, meaning that across the internet the fitness of an individual is more likely to be close to the true fitness.
Because the way my program is set up, so long as no files have been deleted all runs will start off with the same first generation... in one way or another, if the user chooses different seeded rate then the numbers will shift, but for all the experiment all the parameters where the same except for the mutation rate... Because of this all the runs have the exact same first generation.
Except for the fitnesses, all the logs look like the first generation has been copied and pasted. The program was kinda hard for me. In the end, python was shorter (only like 43 lines of code) and the first half was just imports. Arrays and indices are a little complex for me to use fluidly right now but I'm getting there. Anyway I made charts of 2 different typologies and the results are interesting... to me at least.
![]() |
Joey to Joey |
![]() |
Joey to Joey |
![]() |
Joey to Clemson/Utah |
![]() |
Joey to Clemson/Utah |
Telecommunication
I've been slacking, so this post will be half friday, the weekend and monday.
Friday---------------------
I was able to make my program speak to me...
Whenever the program has more then 10% defaults... like 0.0 or .1928 etc... my program will send me this txt... it can also send emails...
There are still some problems but those are being fixed, for example the user need to input the phone number in a form of an email, and the system cant send the email until it is finished running, but I have some ideas of how to go around that.
Weekend--------------------------------
During the weekend I finished the run with a mutation rate of .15. I dont think i mentioned this.
backtrack ----
there was a problem with the Utah run so the internet run was moved to a closer network that had the same topology of Utah. I ran a set of simulation but in .15 mutation. Then there was the problem of I didn't have a .15 mutation run from joey to joey or a .1 mutation run from joey to "Utah", so that is what was being done.
----
So that was the weekend. just getting runs done and stuff. One point that I am happy about is that with the net catching all the defaults in place I dont have to go over the log files to make sure the run didn't collapse.... less work .. Laziness Prevails.
Monday---------------------
on Monday I had to finish one last little set of runs and bring the data together. There was an interesting trend.... Looky
![]() |
mutation rate 1 joey to joey |
![]() |
mutation rate .1 joey to "Utah" |
![]() |
mutation rate .15 joey to joey |
![]() |
mutation rate .15 joey to "Utah" |
Both of these charts show that when using the internet as a medium the simulation have a higher amount of good individuals. One of the papers I read written by Zach McNellis and Dr. Remy suggested that not enough noise and the performance was poor, but enough noise and the performance was good. Like the Goldilocks zone... kinda anyway... Over the internet there is noise, point blank so the program works with that. from joey to joey, if someone runs something then the program freaks out and performance drops.
Wednesday, July 15, 2015
Acquisition
Right now as of 2:50, I am both happy and tired. I was able to finish my net for catching defaults. To do so I needed to make my own exception, and a new class to hold all the defaults that the system has. I don't know all the defaults and as time went on I discovered new defaults and learned others where not. So the class that holds the defaults is dynamic. The one thing that I'm really happy about is that I was able to get the system to send a message when something is caught.
If a person where to run using Presentor... is was changed from PresentorSlim around version 2... then if the system gets too many defaults then it stops, that's it. But if a person used GenAlgo... which is getting better... then GenAlgo will not only stop the system, the program will also print out a statement that the program stopped on the terminal but also send out an email or text message. It is not what I wanted exactly, but the job gets done. The one problem is that this makes GenAlgo platform dependent and can only send the message out through a Linux based system or Ubuntu... which is kinda the same but anyway... I'm happy with the results. I used a test directory so I could mess with code and not have to worry so now all i have to do is transfer over the files...
If a person where to run using Presentor... is was changed from PresentorSlim around version 2... then if the system gets too many defaults then it stops, that's it. But if a person used GenAlgo... which is getting better... then GenAlgo will not only stop the system, the program will also print out a statement that the program stopped on the terminal but also send out an email or text message. It is not what I wanted exactly, but the job gets done. The one problem is that this makes GenAlgo platform dependent and can only send the message out through a Linux based system or Ubuntu... which is kinda the same but anyway... I'm happy with the results. I used a test directory so I could mess with code and not have to worry so now all i have to do is transfer over the files...
Subscribe to:
Posts (Atom)