Los Alamos High School (66)/Interim Report

Interim Report
http://mode.lanl.k12.nm.us/get_interim1112.php?team_id=66

Problem Definition
Ants are ingenious creatures. Using only the pheromones (attractive chemicals produced by the ants) that they lay down, ants can optimize the length of their foraging trails within short periods of time. The ants leave pheromone on the paths that they take, and the pheromone evaporates over time. Longer paths then have less pheromone accumulation than shorter ones, causing ants to be more attracted to the paths of less length. Applying this behavior to real world problems in computer simulations is called Ant Colony Optimization (ACO). Although ant colony optimization seems more suited to foraging, it has proven itself a powerful metaheuristic that can be applied to problems ranging from routing to machine learning.

ACOs are conceptually suited to and commonly applied to the Traveling Salesman Problem (TSP). This is a very well-documented combinatorial optimization problem. In a TSP, nodes in an undirected graph must be connected in the shortest tour possible. A tour is a path that visits each node once and only once. Sometimes, the problem will change as the computer is working to solve it. Having an implementation of ACO that can cope with this is advantageous in a situation where time is of the essence, because in situations where time is not a factor the optimization can simply be run again after the change is implemented. A Dynamically Changing TSP, or DTSP, is a Traveling Salesman Problem instance in which cities may be added or removed as the optimization is running along with route deletions (roadblocks).

A simple implementation of an ACO with a few modifications to make it applicable for dynamic problem sets leaves much to be desired. The optimization takes a long time to converge once changes are introduced, and is not competitive with rerunning the problem in the long run. We plan to create an ACO for DTSP that converges faster and is more adaptable to different sizes of changes.

Problem Solution
Last year, our project involved ACO on DTSP. This is not, however, a continuation project. We solved our problem last year. We will be writing new code in C++, in order to run on GPU. We will do this using CUDA and Thrust (a high level parallel programming library). We will work with the algorithms that showed promise in the dynamic case last year: MIN-MAX Ant System, Rank-Based Ant System, and Ant Colony System. The most straightforward modification we will make is the ability to remember certain stages of the pheromone before the change, when the pheromone levels weren't biased. Another change we will make is to use ants with different parameters. This diversity of ants is something found in nature, with certain “explorer ants” exploring new routes as the rest of the ants optimize known ones. This set of ants with different parameters could be optimized in real time with a genetic algorithm. We will also create a better initial pheromone level metric for brand new routes that appear as cities are added. Another possible addition to our algorithms is the use of anti-pheromone, where the ant(s) that take the worst path(s) will lay down an anti-pheromone to discourage useless exploration. We hope that these changes can create a better ACO for DTSP and perhaps for a static TSP as well.

Progress to Date
Besides formulating the ideas in the above section, we have also conducted research into GPU programming with CUDA and begun prototyping.

Expected results
We expect to see at least an order of magnitude speedup with our GPU implementation over our serial implementation. Because a large amount of the problem space is explored by the time a change is introduced, there is good reason to believe that a well-implemented dynamic ACO can exceed in quality and performance over rerunning the optimization once the change is introduced. We intend to make such an implementation.

Interim Comments Reviews
Hello Team 66,

My name is Teri Roberts and I have been asked to review your Interim Report. My background and training are in Computer Science and Software Engineering. I work at Los Alamos National Laboratory and I have been working with the Challenge for many years in a variety of roles.

First let me commend you on your past progress with this model. You seem to have done a lot of research and have many impressive citations (including your past work). Do you have a mentor helping you? If so, don't forget to acknowledge the guidance in your report.

I must admit that I stumbled a bit while reading the paragraph that mentioned GPU and CUDA. It would help the reader to spell out these acronyms the first time you use them (like you did with ACO and TSP). After defining the acronym you can then use it freely.

I am familiar with graph theory and the traveling salesman problem, but probably not to the degree that you are with the algorithmic research and development you have acquired. A dynamically changing graph must be a daunting problem. Is there some way that you visualize the route establishment and removal? Perhaps that is related to the GPU and CUDA acronyms that were not clear to me.

Overall, you have a strong report that is well-written. Keep going.

Finally, don't forget to run a spell-checker and review the grammar in your report. Check for frequently misspelled words and misused words. Most word processing software contains these utilities and give you hints as you type by underlining words that represent a spelling or grammar mistake.

Thank you for allowing me to review your Interim Report. Good Luck for a strong finish!