HIS 2011 Paper Presentation & KL trip

. Sunday, December 11, 2011
0 comments

So, I just got back from presenting my paper at the HIS 2011 conference in Melacca. What a trip!

Arrived at KL and took a shuttle bus to KL Sentral. Took a LRT ride to Tmn Bahagia, where Michael was waiting for me. Thank God for good friends. I had a pleasant stay with him at his place for the week while I was at KL.

Received many opportunities from this trip. Met Samantha Ong and had dinner with her. Mentioned about Junior Chambers International (JCI) and she helped us spoke to Terry about it so we could join. Leong Seng Tat, from JCI E-Metro KL called and met with us. He called a member from JCI Kota Kinabalu, forwarded me to them, and gave them my cell umber to reach me. My uncle has also asked us to build his company's site. Apart from that, Michael and I registered our company, NinetyEight Solutions.

Although at the conference, no one asked me any questions besides the session coordinator. I was hoping for some criticism but received none. What a disappointment. haha.

Another thing, my laptop overheated :(

Stay tuned for some photos.

MSC: HIS2011 Registration Payment Method

. Monday, October 31, 2011
0 comments

Note to self:  Payment method for HIS 2011


METHOD 3: Payment by wire transfer (For Local Participants Only):
Please send the payment instruction to BIMBMYKL by SWIFT with the following details:
Payment amount: Please mention the exact amount. Please pay all costs/bank transfer fees etc, so that the conference account gets the full amount.
Reimbursement instruction: HIS 2011 and paper ID

Beneficiary bank's name: Bank Islam Malaysia Berhad (Cawangan Bandar Melaka)
Beneficiary bank's address
: No. 50, Jalan Cempaka 1, Taman Cempaka, Peringgit, 75400 Melaka, Malaysia.
Benificiary's account number: 04-015-01-004888-6
Benificiary's name: Universiti Teknikal Malaysia Melaka

MSC: TODO: Conference Registration

. Tuesday, October 18, 2011
0 comments

So, the registration fee for the HIS 2011 conference in Melacca is $400 ≈ RM1240

Sign Copyright form

Revise paper:
Add a flow chart the size of Fig.2
Take out unnecessary citations.
Put Fig 3 & 9 can be put together, and smaller.
Comparisons will be done in future work.

MSC: HIS2011 Accepted Paper 1

. Monday, October 17, 2011
0 comments

Below are the comments I received from my reviewers of the paper, which I recently submitted to HIS 2011.

PAPER: 159
TITLE: Evolutionary Spiking Neural Networks as Racing Car Controllers
AUTHORS: Elias Yee and Jason Teo

REVIEW 1

OVERALL RATING: 1 (weak accept)
REVIEWER'S CONFIDENCE: 4 (expert)
How relevant is this manuscript for HIS 2011 attendees? Please explain under Public Comments:: 4 (good)
Is the manuscript technically sound? Please explain your answer under Public Comments:: 4 (good)
How would you rate the organization of the manuscript? Is it focused? Is the length appropriate for the topic?: 3 (fair)
Please rate the readability of the manuscript. Explain your rating under Public Comments below:: 3 (fair)

This paper employs evolutionary programming to improve the control of open racing car simulator. It is interesting.

However, several revisions should be done. First, lots of cited references are lost in reference list, such as Figueira and Roque (2011), Vázquez and Garro (2011), Daun-Gruhn and Büschges (2011), Munoz, Gutierrez, and Sanchis (2010), and Jakobsen (2007).

Secondly, please clearly introduce of your models and provide some necessary figures or flowchart with some essential brief explanation vis-à-vis the text to understand the implementing procedure.

Finally, please provide some necessary comparison among the proposed model and other alternatives.


REVIEW 2

OVERALL RATING: 2 (accept)
REVIEWER'S CONFIDENCE: 2 (medium)
How relevant is this manuscript for HIS 2011 attendees? Please explain under Public Comments:: 4 (good)
Is the manuscript technically sound? Please explain your answer under Public Comments:: 4 (good)
How would you rate the organization of the manuscript? Is it focused? Is the length appropriate for the topic?: 4 (good)
Please rate the readability of the manuscript. Explain your rating under Public Comments below:: 4 (good)

Interesting paper

MSC: Experiment running on all 5 PCs in Lab

. Thursday, October 6, 2011
0 comments

Set up all 5 PCs to run experiments now. Will start Experiment on track 2 tonight or tomorrow morning.

Plan to meet Dr James tomorrow, Oct 7, Friday.

Write Paper 2!!

MSC: Text from - izhikevich and ffnn docx

. Monday, October 3, 2011
0 comments


Below is the copy-pasted text from the document "izhikevich and ffnn.docx"
Reason for pasting it here is so that I could delete that doc file and refer to the text here.

Abstract
The Izhikevich spiking neural network model is investigated as a method to develop controllers for a simple, but not trivial, car racing game, called TORCS. The controllers are evolved using the Evolutionary Strategy, and the performance of the best individuals are compared with the hand-coded controller included with the game.
racing competition is a wat wat wat, and since networks of spiking neurons have been gaining popularity in recent years, a great curiosity emerged to want to find out if a spiking neural network could perform as well or better than the other techniques used to train the driver. This paper investigates the performance of the Izhikevich spiking neural network model applied to the TORCS racing game, and trained using Evolutionary Strategy. The evolved driver is compared with the hand-coded driver included in the TORCS championship platform.

Introduction
Many methods have been used to optimize the TORCS game driver for the cig competition, curious if spiking neural network could also perform well in it. Hence, compared the network with the simple driver provided with the competition client.
Results – the spiking neural network does perform better.
Machine learning methods can be used to solve any simulated control problems. In this paper, an evolutionary optimization technique is used to evolve a controller to drive a simulated racing car. The car control is handled by an artificial neural network, using Evolutionary Strategies for the tuning of the weights. Different experiments are run in order to explore combinations of training parameters.

MSC: Torcs Suprisingly Runs on Vista - Finally

.
0 comments

Tried running the experiment of Sigmoidal ANN on PC2's native OS, Vista, and surprisingly returned no error. Will duplicate it and run the experiment on PC3 and PC5, which also runs Vista.

MSC: Gen2 ANN Experiment

. Thursday, September 29, 2011
0 comments

Today start the experiment with the 2nd generation sigmoidal ANNs.

MSC: Submitted to HIS 2011

. Tuesday, September 20, 2011
0 comments

Dr J finally replied my email. What a relief!
So I continued on and submitted my 1st paper to HIS 2011 top cnference.

Thank You Jesus. Amen.

MSC: Paper ready for submission

. Thursday, September 15, 2011
0 comments

Finish adding in the path driven and SNN spike train. Also revised ES to EP.
Revised some format to reflect the IEEE format for HIS2011


I finished revising it to how Dr J suggested, and sent him another email with the doc for a final review. Then, the paper will be sent to HIS2011.
Should be able to submit soon, before Sept 20.

EDIT: Registered with easychair, to submit paper to HIS2011 in Malacca

MSC: Paper Revised by Dr J

. Wednesday, September 14, 2011
0 comments

Dr J replied my email with an attached and revised document of the paper. He took out a few paragraphs and said to keep them for next paper.

Some things Dr J suggested include adding a chart of the SNN spike train, and revise ES to EP.

MSC: The evolved controllers beat me

. Saturday, September 10, 2011
0 comments

there were some round, the evolved controller  had almost took over the leading car, but bangged on it and both the cars skidded, but the evolved controller could not recover from the crash and stayed there.

lap7: > 10sec behind

the controllers evolved on track 1 usually started slow, most likely due to the unoptimized automatic transmission, but would later overtake its oponents after one or two laps.

controllers evolved on track 2 were able to generalize on track 1, but could only complete one fifth of track 3.

controllers evolved on track 3 were able to generalize on both track 1 and 2.

controllers evolved on track 1 were not able to generalize on both track 2 and 3.



i lost to the evolved controller on both track 1 and 2, butnot track 3 despite the difficulty controlling the car.


the gear change played a very big impact

MSC: Suggested improvements and new discovery

. Tuesday, September 6, 2011
0 comments

Received a reply from Dr J yesterday.
Listed below are the suggested improvements and its state:

  1. Use round figures to label the x-axis of your graphs (done)
  2. Show more in-game screenshots of you SNN-driven car – although it is not of much scientific value here but nice pictures always gets attention
  3. Think of plotting the path driven by the best evolved SNNs as they move across the track over the racing period
  4. Avoid saying that your evolved controllers were so easily beaten by human and some of the included controllers.
  5. Also, your explanation that humans cheat by flooring the accelerator is not convincing since if it is allowed in the game, then it is not cheating. What I meant by cheating is when the game AI controllers break rules such as achieving top speed immediately (as opposed to flooring the accelerator but gradual build-up of speed) or in the case of RTS, being able to see through fog-of-war, then that’s cheating. So I recommend that you amend the way you are currently explaining this point.
  6. Please add in a detailed description of your fitness function including a mathematical formula for it. (done)
Discovered something new. In track 1, the controller is able to start by flooring the gas pedal, but it is still slower than the other car because of the gear change strategy. The evolved controller increased gear earlier than the static controller, hence picked up speed slower than it.

Drew track path, but...

Notice that
championship2011server uses a car1-trb1 and the others bot using the same car are:
  • tita 3
  • berniw 3
  • olethros 3
  • lliaw 3
  • inferno 3
  • bt 3

MSC: Paper 1 Finally Done

. Monday, August 29, 2011
0 comments

I'm finally done with paper 1! 4am in the morning, August 29, 2011. 2 days before the deadline of the IEEE SCOReD 2011 (9th SCOReD).

Sent email to Dr J to schedule meeting, attached with the document file of the paper.

MSC: Discussions are almost done

. Thursday, August 25, 2011
0 comments

Given the fact that track 3 is much more difficult to race in, the fitness scores are considered quite high as compared to the ratio between this track and the other 2 tracks.

Low average speed, low speed = smaller distance raced,

An interesting observation to note, apart from spectating it drive on the track, is...

So.. quite a fruitful day today. but if I made use of the whole day, I could have done more. but it's ok. I'll try to do much more tomorrow.

Aiming to get it done by end of this week, which is on the August 27, latest by August 28.

MSC: Discussions on the way

. Tuesday, August 23, 2011
0 comments

Inserted all charts into paper, and also a table of the best lap times.

MSC: PC3 keeps crashing, another day to completely compile all results

. Friday, August 19, 2011
0 comments

Run on PC2 is done, but run on PC3 was interrupted by a PC crash at 4am, so I continued it at 10.30pm.
Transferred the results of a run from home PC to PC1, to be compiled together with the rest.

Archived a collection of 3 runs on track 1, the latest, "3_snn_1.csv" is guaranteed to run with the latest settings: RS parameters, best lap time, but there's 2 others, which i'm not quite sure. So I'm sending them home to test run it on home PC.

I compiled the results of the 2 latest completed runs, the one from home, and PC2, into "Track1.xlsx".

As of now, PC1 has completed around 650 generations. Will complete tomorrow.

Found out yesterday from the email Dr J sent us that there's gonna be an international conference in Bangkok. Submission due date is on September 10, 2011.

MSC: Fitness of controller on track 1 tells of sophisticated driving skills

. Thursday, August 18, 2011
0 comments

These are just some thoughts and/or style of writing that unnecessarily be in the paper.

After examining the scores and the controller driving in real-time, we can tell that the controller evolved driving strategies. Although track 1 has only four turning corners, does not mean that the fitness of the controller will easily be that high, because there is high possibility that a less sophisticated driving technique would make the controller slow down while turning the corner.

MSC: My laptop is a snail

.
0 comments

The run on laptop is running too slow. It's been a day already and it hasn't even completed 100 generations. Since the run on PC1 was done yesterday, I'm transferring the run on the laptop to continue on PC1.

The run on PC3 on the other hand has stopped, cos the computer crashed, around 2pm, so I continued it around 5pm. Run on PC2 is fine. and finishing today.

UPDATE: So I continued the run from my laptop on PC1, but I discovered that the results don't match, in fact, the results varies so much. One reason 1 observed, is because the settings I had on my laptop for the race is 1 lap! but how come?! Oh I remember, I duplicated the copy I had in my HDD, which probably has a setting of only 1 lap. Hence the flawed results. Hence I had taken to start a new run on PC1. What a waste of time.

Jessica's birthday 2011

. Wednesday, August 17, 2011
0 comments

Does it make sense to take the best controller of all runs: The best controller of all 10 runs, of the best controller of all 10 controllers of 1000 generations..?

Run on PC1 is done. inserted the results into the spreadsheet.
Arranged the best lap times for tracks 2 and 3.
Included chart of track 2 and 3 into doc file.
Going home to continue.

Produce analysis of results at home!

Today's Jessica's birthday!!

MSC: Prepared laptop for demonstration

.
0 comments

Reach school at 7pm, did not accomplish any progress in writeup yet again, but I managed to install VS2010 on laptop, copied the code and simulator over, and started a run on track 1 on it.

PC3 restarted, so continued from where it left off.

Not sure when I edited the source again, but I edited it since last Thursday Aug 11 and ought to note it down just in case I haven't wrote it down yet.
Right now, the client records the best lap time of the controller, the neuron parameter values are set to reflect Regular Spiking (0.02, 0.2, -65, 8).

So.. Progress...
I basically completed the runs on track 2 and 3 for paper 1. For track 1:

  • 5 completed runs
  • 4 in progress (home, PC1, PC2, PC3), and 1 started today on laptop.
  • So all together == 10.
Next task would be to:
  • Organize data in excel and produce charts to be inserted into paper.
  • Show Dr J the controller, and explain the codes.
  • Must work on write up.

Was it a good day?

. Tuesday, August 16, 2011
0 comments

Did almost nothing related to my studies, except starting 3 more runs in lab for track 1. Other than that, I did not accomplish any progress in my write up. I was suppose to prepare my laptop to show Dr J the simulator and code explanation, but failed to do it, or forgot about it, in a sense.

I ended up downloading a remote access program called "team viewer." At least it's free for non-commercial use.

P.S. I almost forgot to key in data for my accounts. Thank God I remembered. I also ought to catch up with my bible reading!

MSC: table to display best lap time

. Monday, August 15, 2011
0 comments

Table structure to display the best lap times of each run for all 3 tracks.

RunTrack 1Track 2Track 3
1...s...s...s
2...s...s...s
3...s...s...s
4...s...s...s
5...s...s...s
6...s...s...s
7...s...s...s
8...s...s...s
9...s...s...s
10...s...s...s
mean +/- sdmean +/- sdmean +/- sd

MSC: Algorithm for best lap time

. Sunday, August 14, 2011
0 comments

if(cs.getLastLapTime() > 0.0)
{
    if(bestLapTime == 0.0)
        bestLapTime = cs.getLastLapTime();
    else if(cs.getLastLapTime() < bestLapTime)
        bestLapTime = cs.getLastLapTime();
}

Wasted 4 days running redundant experiments

.
0 comments

Discovered that I had wasted 4 days running 2 experimental runs on track 2!! Gosh. So I initiated another run, but this time mad sure it started in generation 0 and the track is track 1.

Will go to school today to start more runs on track 1 in lab. Now, I need some sleep!

taking a time off

. Saturday, August 13, 2011
0 comments

I started slacking on Thursday after meeting Dr J, ad finding out that the submission deadline for a conference in UPM is extended to Aug 31. My laptop is still at school and I need to go and get it.

SimpleDriver Best Lap Times

. Thursday, August 11, 2011
0 comments

A-Speedway: lap1: 01:07:13    Best:01:02:68
CG speedway number 1: lap1: 01:32:96    Best:01:28:65
Street 1: Best:03:06:00

Keeping silent is the best way

. Wednesday, August 10, 2011
0 comments

Am I that foolish?

I made a comment this evening, beginning by stating that his definition of stewardship is shallow. Why does this thought of saying it came up? How could I ever begin a conversation beginning like this. Had I spoke the same way with my friends too?

Quite wasted today not writing my paper. approx 3 days left for me to complete it if I want to submit. Otherwise...

Graphs are on the way

. Monday, August 8, 2011
0 comments

Mingled with the data today.
Wrote a VBA macro to organize the fitness (did not organize the lap time yet. the lap time will be displayed in tables).

Extracted out the highest fitness of each generation in all 10 runs for track 2 and 3, and copied the fitness into a separate sheet, where only all the highest fitness of all 10 runs are displayed, along with a graph. In that separate sheet, named "Overall", included the mean and st deviation of the highest fitness for all generations.
Will see what I will do with it later. Putting them in tables or displaying another graph? or using them to display the mean of all 10 runs of the best individual?

That is 1 solution.

MSC: VBA Macro for arranging data in Excel

.
0 comments

Below is the macro to organize the data in the CSV files using excel.
It will remove all the chromosomes and the last lap time, then it'll insert the max and average values for all generations beside the fitness values, and then insert a line chart based on the max and average data.


Sub delete_unwanted_rows()
'
' delete_unwanted_rows Macro
'
    Range("A1").Select
    Selection.ClearContents
    ActiveCell.Offset(1, 0).Select
    Range(ActiveCell, ActiveCell.Offset(0, 9)).Select
    Selection.Cut
    Range("A1").Select
    ActiveSheet.Paste
    Selection.End(xlDown).Select
   
    For i = 1 To 1000
        Range(ActiveCell, ActiveCell.Offset(12, 32)).Select
        Selection.ClearContents
   
        Selection.End(xlDown).Select
        Range(ActiveCell, ActiveCell.Offset(0, 9)).Select
        Selection.Cut
        Selection.End(xlUp).Select
        ActiveCell.Offset(1, 0).Select
        ActiveSheet.Paste
        Selection.End(xlDown).Select
    Next i

End Sub

Sub Data_for_chart()
'
' Data_for_chart Macro
'
    Range("L1").Select
    ActiveCell.FormulaR1C1 = "=MAX(RC[-11]:RC[-2])"
    Range("L1").Select
    Selection.Copy
    For i = 1 To 1000
        ActiveCell.Offset(1, 0).Select
        ActiveSheet.Paste
    Next i
    Application.CutCopyMode = False
   
    Range("M1").Select
    ActiveCell.FormulaR1C1 = "=AVERAGE(RC[-12]:RC[-3])"
    Range("M1").Select
    Selection.Copy
    For i = 1 To 1000
        ActiveCell.Offset(1, 0).Select
        ActiveSheet.Paste
    Next i
    Application.CutCopyMode = False
   
    Range("L1000").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlUp)).Select
    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.SetSourceData Source:=Range(ActiveSheet.Name & "!$L$1:$M$1000")
    ActiveChart.ChartType = xlLine
    ActiveChart.SeriesCollection(1).Name = "=""Max"""
    ActiveChart.SeriesCollection(2).Name = "=""Average"""
End Sub

MSC: Procrastination is a sin

. Saturday, August 6, 2011
0 comments

Procrastinated yet again today and wasted it.

MSC:

. Friday, August 5, 2011
0 comments

Formatted paper to mirror IEEE format requirement, for the paper due Aug 15.

Track 2
2 completed runs on my lab PC, and 1 ongoing run.
2 completed runs on the other PC on the far right, and 1 ongoing run.
2 completed runs on the PC on the right.
2 completed runs on home's PC, and 1 ongoing run.

Total: 11 runs

MSC: Spike rate encoding

. Thursday, August 4, 2011
0 comments

Objectives for today:

  1. Mention "spike rate coding" in paper and reference Floreano.
  2. Mention the steps to perform the evolutionary process.
  3. Download IEEE reference style for MS Word.
  4. Refer Kar Bin's paper.
    • Noticed that Kar Bin's paper only has 6 pages including references, with the references taking up the last page, and graphs taking up another page. Hence, he only used 4 pages.

Wasted my Thursday

.
0 comments

I didnt do anything today. Although I did some, but it's not significant enough to justify I did anything.

Humility then honor

.
0 comments

A person needs to be humble before he will be honored.

MSC: Defined constant global initial variable for generation

. Wednesday, August 3, 2011
0 comments

Came to lab. The run on my lab's comp is done. The 2 other comps are not done yet. Home PC is also not done but will be done today.
In the source code:

  • I defined a constant global variable for the initial generation (INITALGEN_)
  • Constructor() => generation = INITIALGEN_
  • Epoch() => if (generation == INITIALGEN_)
CONT' WRITE UP!

Evolutionery Strategy

. Monday, August 1, 2011
0 comments

Evolutionary Strategy is a powerful and common class of Evolutionary Algorithms that directly evolves the phenotypes by representing them as real-valued vectors, which is typically applied to numerical optimization through a stochastic search method.
In the algorithm, the parents are mutated to create offspring so that the more fit among the two survives to the next generation, where new parents are selected from one or both of generations. The parents contributing to the offspring pool are usually selected uniformly at random, while survival is accomplished by truncation, where the new parent population consists of only the best of the competing individuals.

MSC: Fifteen days left

.
0 comments

The run of track 2 on home's PC is completed. Started another 1.
The runs on lab's comps however were interrupted, as most comps are restarted yesterday. So, the runs were continued today afternoon.

15 days left to finish up my 1st paper! In fact, 1 week left! the other week is used for checking. so I better start doing now. BE A DOER!!

Give and Receive More Than Initially Had

. Sunday, July 31, 2011
0 comments

Many times, it is very hard for us to share with others when we only have a little. Like the disciples in today's (July 31, 2011) Gospel reading, the disciples asked Jesus to send them home, but Jesus told them to share what they have, but they replied how they are going to share with the multitudes with only 5 loafs and 2 fishes, but Jesus still told them to share it. Then, the miracle happened.

What I obtained from today's reading is that when we share, we'll gain back more than when we initially have.
So, I pray that God will help me be ever more generous in giving. Amen

The prayers of a person reflects what the person believes.

MSC: Started another round of runs for track 2 on all PCs

. Saturday, July 30, 2011
0 comments

Today, all runs on all comps are completed. As title, started another round of runs for track 2.
So, 3 runs are completed, 3 more runs started. That makes 6 runs so far. 4 more to go, for track 2.

Quite forgot the 1 at home. dont quite remember if it's completed and I started another. Need to go home and check, Then update this entry.

Update: apparently, the run on home's PC has not finish. At time of writing on July 31 (10.14pm), it's still at generation 956. Although, the run will be done tonight, and a new one can be started.

The run of track 2 on home's PC started on July 29, 2011, 4:26:15 PM, and it's now July 31, 2011, 10:13:51 PM (at time of writing this update). It took 2 days and 6 hours, and it's still not done! Gosh

MSC: Paper 1 presents preliminary results

. Friday, July 29, 2011
0 comments

Started a new run on track 2 at home.

Checked the other 2 comps on the progress of the run. Approximately, both will be completed tomorrow. So it'd be a good choice to come tomorrow also. To start another round.

Kar Bin told me that paper 1 describes the preliminary results.
write method, experiment setup, etc then in results, present the results, and conclude by saying that this can work on car tracks. (something like that)

NB: Need to start putting the data together and discuss.

Random Thoughts
Normalizing environmental inputs to [0,1] then multiply by 10, will give the number of spikes for the input to the SNN.
Similarly, dividing the number of output spikes from SNN will give the normalized output, [0,1], for the environment.

MSC: Update - July 8, 2011

.
0 comments

for the 3rd track, listed below are the modifications i made:

update 30/6/11
changed the way v and u is stored

  • initial idea was flawed, as in, v and u are reset at every update loop.
  • hence corrected it by giving every neuron their own v and u values, which could lasts throughout the whole run, which would only be reset at every generation.
added a reset function for the neural network (brain) to reset the values of v and u.
added lastlaptime and a brain.reset in the drivers' reset function.
added initialization for lastlaptime in genetic algorithm

update 1/7/11
  • modified the fitness function to (distraced + steps inside track - damage). Took out the average speed as score.
  • changed the way v and u is stored
    • initial idea was flawed, as in, v and u are reset at every update loop.
    • hence corrected it by giving every neuron their own v and u values.
  • added a reset function for the neural network (brain) to reset the values of v and u.
  • added lastlaptime and the brain.reset() function call in the drivers' reset function.
  • added initialization for lastlaptime in the evolutionary algorithm

update 4/7/11 7.16pm
  • normalized the input to the neuron to [0,10]
  • discovered after the 1st attempt, the values of v overflowed and produced -1.#IND as its value.
  • printed the values of v again, with this time, having values of v & u reset at every time-step. Found out that v has very large values (to the thousands).
  • big values of v added confirmation that it went infinity, and that the inputs could be too big.
  • put back the average speed as score.
  • discovered a probable reason why the drivers could not gain back it's fitness as printed in the results, reason could be that the inputs are too big.
NB: damage of the car might shutdown the client. have to take note if this would happen. hopefully not. otherwise, how to implement damage into fitness calc?
NB: after this attempt with 3001 and 3002, test it in display and note the fitness. make sure it is the same as the last generation results when evolving.

update 5/7/11
 - made the client restart the race with the next driver if the current driver's damage is more than 1000 (dmg > 1000).
 - this method stopped the server from shutting down when the car reached max damage. This method also made it possible to save time by skipping drunk drivers.

update 6/7/11
 - opted to try using back the previously flawed method of reseting v and u at every timestep to test/try it on track 3.
 - just as a preliminary experiment.

update 8/7/11
moved the reset to the onRestart function of the driver class.
set the server to have a time out of 100,000 microsecond = 100 millisecond.
  • discovered another reason why the drivers dont get the same fitness scores. it's because of the timeout problem.the server's timeout was too short for the client to answer, so the behavior of the car changed, to reuse the outputs from the previous timestep.
  • this caused the drivers to drive differently each time there is a timeout for the client to answer. Hence the varying fitness.

MSC: Update - July 4, 2011

.
0 comments

Track 3: Street1

  • modifications made include normalizing inputs to [0, 10]
  • reasons for tweaking: after taking out the reset of v & u at every timestep, the driver became weird. it cant simulate d same score as when it is still evolving. So i print the values of v & u, and found out that v became -1.#IND ... negative infinity. When i put the reset at every timestep back in, i found out that the values of v are in the housands. Could it be that the input currents are too large? Hence the normalization of the input currents to [0, 10]
  • changing the fitness function to:
    • population[x].fitness = drivers[x].distRaced + (100 * (drivers[x].ttlSpd / maxSteps)) + (maxSteps - drivers[x].Tout) - drivers[x].damage;
  • included the substraction of damage.

MSC: Experiments with track 2 and 3

. Thursday, July 28, 2011
0 comments

Started the last 2 runs of experiments on track 3 on my PC in lab and at home.
Started 2 runs of the experiment on track 2, with the settings used for the runs on track 3, on the other 2 computers that I use to run experiments.

The run on my lab PC and at home is finished. So i'm done with my experiment on track 3, with reset at every time-step.

The runs on track 2, conducted on the other 2 PCs will be done tomorrow. Well, at least 1 of the runs. The comp beside my PC is slower, so will take longer.

*track 2 - CG Speedway1, track 3 - Street1

Coming back after long negligence

.
0 comments

The purpose for creating this blog site is long gone. This site used to be an assignment for one of my courses during my Bachelor's degree studies. I had few purpose for it since then, especially after I started renting my own web server earlier this year, where I could host as many Wordpress blogs as I want. Hence I neglected this blog until now.

Recently, I had been pondering to start a blog to note down the updates I made on my MSc research, and was pondering which to use, Blogger or Wordpress. I finally decided on Blogger today. Reason being it associated with all my google apps, gmail, gvoice etc, so it's easier for me to log onto blogger by signing into one of them.

Shortly after my last post in October last year, my family lost $15k in Forex. Mostly because of a scam, where the account managers purposefully bought large lots of usd/jpy, while the market is declining rapidly, making it as if everyone had lost their money. As a matter of fact, the ate all the money.

Jessica came home to Malaysia in January. I got to see her in late January. I went to Tawau for the first time and met her relatives. I stayed at her house. Funny thing is, I planned the trip for 5 days! That was a big mistake. Should had just bought a one way ticket and buy the return when i want to return. I ended up forfeiting the return ticket and bought another, scheduled 2 days after the forfeited ticket.

Spent many pleasant times there. ate Jessica's cooking. Especially her stew of vegetables:

  • Carrot
  • Potato
  • Celery
  • Tomato
  • and chicken
seasoned with fish sauce and salt. Fill the pot with water, cut up the vegetables, and throw everything in. That simple. It's healthy too.

My cousin was born, but had heart defect, who died in late May due to kidney/liver failure, irregular pulse, and lung failure.

then April came. My family bought a rottweiler pup. It was so adorable. but she contracted parvo virus. She died a week later. That was one of the toughest week.
During that time, I was successful in using my live gomarkets account to trade silver. but this lasted only 1 week. at the end of that week, in the morning of the second week, I saw $1.3k in my account. but I lost all the same day. I further lost another $100 in the next couple of days, from buying silver.

This is all due to my greed. I just naively believed that silver will never drop, and even if it dropped, it would not fall more than $5, but I was so wrong. I know that now. During that Monday, I thought it's just going through a small retrace, but soon found out that it actually hit a strong resistance on the upper-limit of the channel that it's in.

I later bought 5 troy ounces of physical silver bullion bars at $38/oz. At the time of writing, it is now $40.23/oz. Thank God for that. Tho I think I made some mistakes here. I was so urged to buy when it reached $34/oz but I did not, and only decided to buy when it reached $36ish, but with the $1.xx spread, I ended up buying at $38/oz. It's okay still though.

On May 29, Jessica and I separated, with the reason that she couldn't tolerate me being far from her, but we got back together on July 15. That one and a half month is one of the most painful period in my life.
Day after day, I made sure I spoke with her, everyday praying feverishly for my family and my relationship with her. Was seeking God's comfort everyday, and I think, I lived through it by God's grace. I was so depressed during that moment.

So many things happened during the 3 months of April, May and June. So many undesirable things, but there are good things too, but why does these things happen? Did my family failed to be good stewards of the resources God provided to us, and so He took them back? I dont know. Maybe. or was it something else? or was it just random. Hm. Only God can reveal the answer. I hope I can learn from it and keep it in mind all the days of my life so things like these won't happen anymore.

Found out that Jessica had not finish reading the whole bible yet, which I thought she already has.

She's quick to get jealous, she thinks only for herself. I just dont understand. I loved her until i'm willing to give up my family and inheritance just to be with her. Why cant she do it.
Does she love with her emotions? cos before we separated for that period, I seem to found out that she loved with her emotions but not her decision. I mean, she did not choose to love me, but let her emotions play the part. Then she claimed that sometimes she loves me, but sometimes she doesnt. This is not love! This is emotions! Even Wini Heron blogged about this some time ago where she claimed that sometimes she feels lovey dovey, yet some times she needed to force herself to love her husband.

Then I learned from Wini about doubts from her recorded sermon.

So we're back together now, and I told her I'll go over to join her, which I dont really know if that's what I want, but still I'm willing to make that sacrifice. I kinda am confused if she's gonna be a great person to be with. Considering the way she thinks and all. Anyways, the Holy Spirit will guide me, but I could be blind towards the Holy Spirit's prompting, or perhaps I received his instructions, but chose to ignore them. Well, that's my loss. Hope this would not be the case. Lord, please help me, please help Jessica, and bless my family.

I was so jealous, so furious, when she tries to get AC to court her. She evidently had a crush on him, but no more. It's strange also that she only allowed him 1+ month. I personally might not be able to get a girl in such a short time, but it's a benefit to me for getting her back though.

All in all, I still hope God will bless my relationship with her, and thank God for this relationship. I hope and pray that this relationship will forever be grounded and rooted in Jesus Christ my God.

I'm thankful for Jessica actually, with her, she can provide my family with her nursing care, she is determined to be healthy, so no doubt I'll benefit from it, especially from the frequent biking and jogs. She's also a bubbly person, which makes it fun to be around her.

Well, that's all for now on the latest update. Consecutive updates will be mostly on my research work, but i'll also add in updates on personal life.

MSC: Update - July 16, 2011

. Saturday, July 16, 2011
0 comments

Update 11/7/11
checked again. fitness score still differ.
- another observation is that - all the fitness scores are the same in generation 0,
- but after allowing it to evolve 1 or 2 times, and checked the fitness score of the eg. 2nd generation,
- the fitness score varied again.
started testing the inputs and then will test the number of spikes throughout the run. printing them into a file

Observations:
found out that the inputs of the 3rd/5th generation differ from the new run with the chromo from the run before. It was the same when the cars are still in "get-set" period, but differed after starting to move, which is most likely caused by differing outputs.
saved the source into pendrive to bring home to investigate, while setup the comps in lab to run experiments with v & u being reset every timestep.
no efforts in write up. cannot be like this! must write!!!

Update 14/7/11
tested more vigorously. this time tested for the outputs. found out that the outputs are not the same. causing the spikes to be different.
hence there are only 2 causes.. it's either the inputs or the weights being different.
but the inputs are the same... hence it should be the weight.. then realized that the weights may have longer trailing floating points.
unlike those that are printed into file which only has 6 trailing max. hence i concluded that the printed weights have less precision compared to the weights stored in the variables.
finally found out why the scores are different.
went home running the experiment with the values of v & u being reset at every timestep.

Update 16/7/11
still running experiments with v & u being reset at every timestep. Spent last night here in lab. it's 8pm now. going home to write!
Lord bless and inspire me. hehe. thanks!!!

me me