{'fraction_non_alphanumeric': 0.0352, 'fraction_numerical': 0.0032, 'mean_word_length': 5.102439024390244, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Bidding Algorithms for Simultaneous Auctions: A Case Study

This paper describes RoxyBot, one of the top-scoring agents in the First International Trading Agent Competition, TAC-2000. A TAC agent simulates one vision of future travel agents: it represents a set of clients in simultaneous auctions, trading complementary (e.g., airline tickets and hotel reservations) and substitutable (e.g., symphony and theater tickets) goods. RoxyBot faced two key technical challenges in TAC: (i) allocation --- assigning purchased goods to clients at the end of a game instance so as to maximize total client utility, and (ii) completion --- determining the optimal quantity of each resource to buy and sell given client preferences, current holdings, and market prices. For the dimensions of TAC, an optimal solution to the allocation problem is tractable, and RoxyBot uses a search algorithm based on A* to produce optimal allocations. An optimal solution to the completion problem is also tractable, but in the interest of minimizing bidding cycle time, RoxyBot solves the completion problem using beam search with a greedy heuristic, producing approximately optimal completions. RoxyBot's completer relies on an innovative data structure called a priceline.