IEEEE CCECE 2014 and Cognitive Agent Simulation

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.


Technical Reviewing as Grad Student?

As I’ve published more and more, I’ve been invited to become a reviewer for many conferences and journals. Some are by people I’ve met while presenting at conferences, but others come randomly in my inbox from people who have read my papers. There’s something that seems weird about being an “expert reviewer” while still not completed my studies myself – but I’ve always accepted when I’ve had time to do them because I feel like it’s good to volunteer back some time after other people have done the same work to review my papers.

Generally, I stick to accepting review requests for papers which are very closely related to my area of study. In the cases where I’m not sure of something, I ask for advice from other grad students in the areas I am lacking in expertise. I also usually give a comment to the editor letting them know I am just a PhD student, and to take my opinion with less weight than more qualified reviewers. That being said, I think I usually am thorough and give useful feedback to the authors’ of papers I review.

Getting invited to review so often has also made me question the whole review and acceptance process. It would be nice if journals and conferences disclosed how many of the reviewers have PhDs – although I guess it wouldn’t really tell much because I’ve also been handed papers by professors I work with and been told to review them and give them a report which I assume they use to submit the review themselves. In some respects it makes sense to have grad students review papers since they are often very connected to the current research, but I am still not confident about the process if it is possible for papers to be accepted without even being looked at by a real PhD. Maybe I just don’t know enough about how it all works yet to know for sure. After all, there’s always layers of editors and committees and everything else.

In any event, here’s a couple of links about how to review a paper for any other grad students who find themselves in the same boat:

Notes on NS3 – IEEE 802.11 Wi-Fi Association

For some of my research I have been delving into the details on how exactly station devices in an IEEE 802.11 network associate with an access point. As far as I understand from the standard station nodes have two possibilities.

1. Active
In this case the station nodes send out probe requests to see if any access points respond during a timeout period

2. Passive
In this case the station nodes just sit and listen over a timeout period to see if any aps send out beacons.

In either case, according to the standard, the station node is supposed to rank the APs according to received signal strength (RSS). While this is recognized as a bad method for various reasons – it is a simple and quick way to select an AP.

In NS3 (3.16), as far as I can tell, there is no measure of RSS. The station node simply associates with the first AP that it receives either a probe response or beacon from (depending on active or passive). Usually this ends up being the closest AP to the user station because it has the lowest propagation delay due to the lower distance. However, depending on when the stations start up, a farther station is sometimes selected – at least initially until enough beacons are missed that an AP disassociation occurs, and the process starts over with the closer AP being selected.

In NS 3.16, the code which controls AP association is located in src/wifi/model/

Looking at the code details, and confirming with some extra logging I added – a Wi-Fi station when starting, broadcasts a probe request (in active probing mode). It then waits for a probe response.

If you look in the “StaWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr)” function, you can see that immediately when it receives one of these responses, it sends an association request to the AP. This is one place where changes must occur if one wishes to make a smarter decision for selecting an AP. In my case, instead of immediately sending an association request, I record the probe response and continue to wait for more until the probe timeout occurs.

If you look at “StaWifiMac::ProbeRequestTimeout (void)” you can see this is where you can now implement the association decision. After the timeout has occured, we now have a list of all of the received probe packets and can make the decision and associate like before.

IEEE ICC 2012 – Ottawa

Last week I presented a paper at IEEE ICC, and since its been a while since I have posted I thought I put up a bit of a summary about my work. For people who have looked at my site a bit, you might know my research is on Heterogeneous Wireless Networking (making wireless technologies work together seamlessly). The goal of my work is to enable devices with Bluetooth, Wi-Fi, 3G, 4G, LTE and future radios to be able to switch easily between connections or use more than one at a time. There are still many problems which make this impossible right now. For instance, if you are using Skype on a Wi-Fi connection on your phone and you leave a building and switch to the 4G network outside, chance are you will be disconnected from Skype (Seamless Handover is not supported).

Another problem may be a lack of co-ordination between radio access technologies (RATs). For instance, while Bluetooth supports adaptive frequency hopping (AFH) to try to avoid the same channels Wi-Fi is being used on, this may not be enough to ensure interference between the technologies is avoided. What happens when you are in a dense area where Wi-Fi is being used across all channels, or there are many devices? (Apartment buildings, dense cities etc.)

As you may know, lots of wireless research is done using simulation because in many cases it is faster and cheaper. Many simulation tools support interference within a particular technology (ie Wi-Fi nodes interfering with other Wi-Fi nodes) but not many support interference between technologies (ie Wi-Fi nodes interfering with Bluetooth nodes). The paper I presented at ICC tries to understand how much of an impact this makes.

I’ll spare most of the details since they are in the paper, but essentially the findings are that Wi-Fi -> Bluetooth interference causes a drop in around 10-15kbps of the total 50kpbs Bluetooth was able to achieve in our lab setup (About 30% drop).

In the other direction, the interference was mostly insignificant. However, this was expected since the setup used close ranges (Wi-Fi power is much greater than that of Bluetooth).

The future work includes looking at varying distances (It seems like it will be interesting when we use a range that makes the Wi-Fi and Bluetooth powers similar). Eventually the goal is to create an interference model that can be used in simulation. If you want more details – see the attached paper and slides.

icc2012 (slides pptx)
icc20122 (paper pdf)

Ubuntu 13.04 – Latex

Update: This also continues to work on Ubuntu 13.04

Just a quick note to myself really about how to get Latex working the way I want on Ubuntu 11.04 (Texmaker GUI, and some fixes for some errors I was getting). The error that was most troublesome was ‘kpathsea: Running mktexmf ptmr7t! I can’t find file `ptmr7t’.’ This was fixed with the recommended fonts package. I also got an error about an equation style that it didn’t know. This was fixed with the texlive-science package.

If you also get an error about `uct12.clo` you need to add the “texlive-publishers” package. See below for all the usual packages you need for ubuntu.

sudo apt-get install texlive-latex-base texmaker texlive-fonts-recommended texlive-science texlive-publishers texlive-fonts-extra texlive-math-extra

Update: I’ve discovered a tex plugin for gedit, which is kind of cool, if you are interested check out this blog post: