Q: I have a question about the dry project. A: Please e-mail Moshe, he checks the dry projects, and he knows what he wants. Q: I have found a bug in the auctionhouse! A: Congradulations. Follow the following steps: 1. Read this FAQ file and make sure your bug isn't listed. 2. Download the auctionhouse again to make sure you have the latest version. 3. Run your code and dump all STDERR to a file using: perl auctionhouse.pl ./youragent >& outfile 4. Send the output file, along with a description of the bug and your ID number to eccourse@8ln.org. 5. Wait for a reply and bonus points. Q: How does the multi-item dutch auction work? A: Prices decline from 1000, when a bid arrives the product is sold at the bid price (if several bids arrive, they are treated in random order). The price continues to decline until all items or sold (or it reaches 0). Q: My agent is in java, how do I run it? I want to test my agent. What do I do? A: Suppose the command line for running the agent is: java -jar Agent.jar Then, create a file called "agent" with the following contents #!/bin/sh java -jar Agent.jar Now, make this file executable by running: chmod u+x agent Try to run it: ./agent If it works, you can run the agent with the AuctionHouse using: perl auctionhouse.pl ./agent If you want to try your agent against user input use: perl auctionhouse.pl ./agent - If you want to run several instances of the agent, you must create two different agents which REGISTER with different IDs (or one that uses a command-line argument) and then create a file "agent1" like the "agent" file above to run the modified agent, and then run perl auctionhouse.pl ./agent ./agent1 If you need additional interactive agents, create copies of the test.pl file from the website and do "chmod +x" for all of them, then add them as parameters to the auctionhouse: perl auctionhouse.pl ./agent ./test1.pl ./test2.pl Q: I'm using STDIN mode (agent "-" in the command line). Do I need to send a REGISTER command? I am using your test agent from the website do I need to send a REGISTER command? A: No. When using interactive agents (whether from ./test.pl or via "-" at the command line) the registration is done for you. You DO need to send REGISTER only when you write your own agent. The agent name for standard input is "STDIN" and for the test program, whatever command you used to start it. Q: test.pl returns an error regarding display. A: To use test.pl you must be running on an X11-enabled UNIX or Linux machine. You cannot use TELNET. If you want to run remotely, use SSH instead. Q: How do I know how many agents are there in the auction? A: This is the first parameter of the START command. Q: Can I count on my agent being restarted after every auction? A: No! Your agent should be able to handle multiple auctions in the same execution. Don't forget it's not allowed to keep information between auction. Q: What happens if several agents have offered the same price over an item? Which one of them wins it? A: When several bids arrive at the same time, they are treated in a random order. Therefore, a random agent will win the item. Q: Can I know during an auction values of other bids that have been made? If so, how? A: No, other bids are not published. You can know the current high bid in the ENGLISH auction from the STATUS message. Q: I am writing my agent in perl and get timeouts, or the auctionhouse does not seem to get any message. A: Add the line '$|=1;' to the begining of your agent code. Q: The net profit displayed is reset per auction A: This is by design, the cumulative profits are listed at the very end of the auctionhouse execution. Q: What happens if I bid for an item more than once in the dutch auction? A: You pay for both items but get the valuation only for one -- Don't do that! Q: Does an agent get multiple STATUS messages during some auctions? I am talking about ENGLISH - do I get a new STATUS message every time the price raises? A: You can get multiple STATUS messages in the same auction - you get a STATUS, START, or QUIT message after each "END" command you agent sends. Q: You wrote that STATUS for ENGLISH auction gives winners id + winning bid. Is this current high bid, or what? A: Winning bid = high bid. Q: What happends it in 3-price auction the first 3 bids are the same - then the high bidder actually pays his own bid and loses? A: If the 3 highest bids are equal, a random bidder of the 3 wins, and pays his own bid. Q: What happends if in 3-price auction only 2 people participate - does the auction run or not? A: If there are only 2 participants in a third-price autction the highest bidder wins and pays 0. Q: Is the QUIT command only sent once, and then the agent should quit? A: In the perspective of your agent, yes. Practically, your agent will be restarted several times. Q: When does the ENGLISH auction end? A: The auction ends where there are no bids. There is no last minute announcement. The auction ends without warning. Q: Is there any meaning for time in the auctions? A: No. Auctions are all ran in rounds, waiting for a command from all agents before passing to the next round. Q: How can I make the ENGLISH auction continue? A: Make a bid! If a bid is sent, the auction will not stop. Q: In the dutch auction, how do I know if I won? A: If you have issued a bid with the value in the STATUS message, you have won the auction, unless the auction has just ended, in which case you don't care. Q: Do I need to keep track of my agent's profit? A: No, you do not and can not. The Auction House does this for you. Q: How are sections 1 and 4 from the dry part represented in the wet part? A: Questions 1 and 4 are a special case of 2 and 7. Be prepareed to see ENGLISH and 1P auctions with zero bid cost. Q: I'm writing my agent in C and it gets stuck in "waiting for reg". A: Add setlinebuf(stdout) to the beginning of your main(). Q: I'm writing my agent in C++ and it gets stuck in "waiting for reg". A: Add cout.flush() after every END or REGISTER command. Q: What does the winner pay in the SMS auction. A: ALL players pay for their bids according to the specified bid price (in cents). In addition, the WINNER pays the lowest price which no other bidder submitted (in cents) and gets the item.