This past week I attended IEEE Canadian Conference on Electrical and Computer Engineering (CCECE2014) in Toronto, Canada. I was there because of two papers I was a co-author on. The work was part of a side project I was involved in on cognitive agent simulation. The idea was inspired by the observation that in the spring time, many newborn animals are struck as they cross the street. Later in the year, it seems that fewer animals meet this fate. So have the animals which survived observed the doomed creates being struck, learned something about the environment, and managed to become more intelligent? We aimed to model this type of environment, and then re-create the most basic intelligence to try to replicate this behaviour with a cognitive agent.
I was responsible for implementing the simulation tool and the naiive learning algorithm which we also presented at the conference. The simulator was created in c/c++ and was designed in such a way that later on the intelligence algorithms could be swapped out, so that we could also experiment with more sophisticated learning algorithms.
The highway is made up of cells, each of which represents a discrete distance on the highway. A car moves across these cells with rules according to the Nagel-Shreckenberg traffic model, which is quite well studied. You can search for the details on how this works, but it simply governs rules regarding cars accelerating and decelerating to avoid colliding with each other. The highway may have multiple lanes and run in multiple directions, so the traffic model is fairly sophisticated and built based off similar models used in vehicular traffic research.
<a href="/uploads/2014/05/netvis-jam-out-of-nowhere.avi">Example of Nagel-Shreckenberg Traffic</a>
The creatures themselves line up at various places along the highway called crosspoints and attempt to cross the road. They have a limited perception window, and can classify distance and velocity of cars in a fuzzy manner. For instance, the car can be close, medium or far, and be travelling fast, medium or slow. Based on these perceptions the creatures can observe the conditions under which another creature is struck and try to avoid these conditions in the future.
There are more details in the paper, and in the slides which you can view on Google Docs: https://drive.google.com/file/d/0B_xIo3TMU3wtOXdSWGNTRFpTeVE/