TAC Project Tutorial

This page describes some basic information about developing and running TAC travel agents for CSE 431 at Lehigh University.

Scheduling Test Competitions

In order to test your agent you will need to be able to play competitions against other agents. You can either use the standard TAC server or the one I have created for our competition (see the e-mail I sent to class for connection information).

No matter which server you choose, you will have to first select Register New User and provide a name and password. The name should be the name of your agent, because this will be used to identify it in competitions.

After registering a user and logging in, you can go to Coming Games and schedule a new game by pressing the Create Game button. This game will be scheduled for a few minutes in the future. Note, by default an agent connects to the server and no game is scheduled, a new game will be created for that agent.

If you wish to have multiple agents compete against each other, please make sure that they each have a different agent name. When you register with the server, in addition to your normal agent name, you get eight additional names of the form agent1, agent2, etc. The easiest way to start an agent with a different name is to use the command line parameter agent. For example, java -jar tacagent -agent heflin1 Note, these additional accounts all have the same password as the original account.

Using the Java Agentware

I highly recommend that all teams consider using the Java Agentware from the TAC website as the basis for their agent. Here are some things to consider if you use this software.

agent.conf

This file contains the basic parameters for the agent. You will need to set the following fields:

If you are logging in to the Lehigh server, also uncomment the line that says:
exitAfterGames=1

Choosing a Machine for your Client

For the competition we will have the six Opterons in Packard 122 reserved. However, there is no guarantee that these machines won't be running other jobs until then. When testing your agent, it helps to know how what kind of machine it is running on and how busy this machine is. The following two UNIX commands are useful:

In particular, if you run top on one of the Opterons and find that the CPU state is close 100% idle, then you can feel comfortable that it is in the same state it will be in for the competition.

Interpreting the Game Viewer

You can watch games on the server by pressing Launch Game Viewer. The viewer is organized by agent and day. Different colors and symbols are used to represent each of the types of resources (e.g., flights, hotels, entertainment). Resources that flash have been bid on by the agents. Resources that don't flash are currently owned by the agent. Each agent's total cost is displayed below its name in the leftmost column. If you click on the agent's name, a popup window will show the client preferences for that agent.

Auction prices are displayed in the bottom row. For each resource the ask price is listed followed by the bid price. When a hotel auction closes, C-n will appear next to its prices, where n is the order in which the auction closed.

When the game is over, the server will compute a near-optimal allocation for each agent and then display the final scores and rankings.