The Fourth Week: June 5 - June 9

Toward the beginning of the fourth week, Amy and I started another big part of the project. We decided to design a new market structure in which agents had the ability to both buy AND sell, as opposed to being restricted to one or the other. We used the IBM structure as a template, and spent some time on designing the new aspects of the market that we wanted to add.

Some other interesting algorithm issues surfaced while we were working on the new market structure. I had gone back to some of the IBM code to make sure that all of the algorithms were in good shape, and that I could put them into the new structure. We resolved the issue of the bug that had appeared during the second week - it was really just the way that the random numbers that the program was using had been generated. But our original algorithm still wasn't performing well. I spent a good deal of time investigating why that might be the case. Through the course of that investigation, I found numerous subtleties in the code that also required explanation. One of these curiosities, for example, was in IBM's ZIP algorithm. I found that switching the resultant action of certain conditions from increasing to decreasing the agent's internal price - what seemed to be a large change - did not significantly affect the efficiency of the system overall. By the end of the week, I had found several ways to improve the performance of our original algorithm, and it appeared that it might be just as good, if not better than the ZIPs. However, we still had some new assumptions to consider, and some questions to look into about the roles played by several of the components of the algorithms in general.