This page describes some basic information about developing and running TAC travel agents for CSE 431 at Lehigh University. Click on a topic below:
The 2011 Lehigh TAC Agent Tournament will be held in Packard 122 on Wednesday, Dec. 21 from 9-11am. The lab should be open at 8am, and I encourage you to arrive early to do a last minute test of your agent. In order to ensure that your agents are not adversely affected by other jobs, we'll reserve three Xenon machines for the competition. The game server will be the one that I sent to you by e-mail and announced in class.
TAC games are 9 minutes long, and we'll play somewhere between 5 and 8 games. After each game, any team can request up to a 10 minute "timeout" before the next game is commenced. This can be used to adjust parameters in your agent, but probably is not enough time to make any coding changes.
Each team will run two agents during each game. This will leave two open positions, and I will choose additional agents to take these slots. Your score for a game will be the average of your two agents. The final score of your team will be the sum of your scores across all games.
The default Java on the Suns in version 1.5.0_24. The lastest Java installed on the Suns is version 1.6.0_21. You can always access the latest Java by including /usr/jdk/latest/bin/ in your PATH envivornment variable or by modifying your batch files to include absolute paths to java and javac. To test what version of java you are accessing, type:
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) (cse431tac.cse.lehigh.edu:8080). Note, the latter server is only accessible from with the campus network. If you want to test your agents from off-campus, you need to login to the VPN first. For both servers, agents should contact port 6500 to participate in games.
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 if 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.jar -agent heflin1Note, these additional accounts all have the same password as the original account.
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 and which would be won if the auction closed instantly. 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. Note, the ask price is how much the good is currently selling for, while the bid price is the highest bid not able to win the good. Thus, there is no bid price for the flight auctions, while the bid price for the hotel auctions is the 17th highest 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. To get detailed information about a completed game, select Game History from the main TAC menu, and then click on the number of the game of interest. This will display the utility, cost and score for each agent. If you click on view allocation for an agent, then you can review details on how the goods were allocated to the clients, the original client preferences and tickets endowed to the agent, and details of all transactions the agent participated in.
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.
This file contains the basic parameters for the agent. You will need to set the following fields:
exitAfterGames=1Make sure that you have this line uncommented for the tournament!
As mentioned, above will reserve some of the Xenons in Packard 122 for the competition. The Xenons are: ariel, callisto, dactyl, enceladus, eris, ganymede, iapetus, io, jupiter, kiviuq, mars, mercury, nereid, puck, saturn, sycorax, tethys, titania, and triton. 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 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.
Last update: Nov. 14, 2011 10:30am