Computational Mechanisms for Multi-Attribute Exchange Markets Eugene Fink Part I: Research interests and projects Part II: Automated exchange system Part I: Research Interests and Projects 1992–1998 Ph.D. Student 1999–2003 Assistant Professor Research interests • Artificial intelligence Major • Machine learning • Algorithm theory Minor • Computational geometry Research projects • Artificial intelligence Representation changes Medical expert systems • Machine learning Multi-attribute exchanges Approximate data matching • Algorithm theory Indexing of time series Meshing in three dimensions • Computational geometry Generalized convexity Representation changes Artificial intelligence and learning Automated simplification of search problems. • Integrated library of search and learning algorithms • Top-level module that selects appropriate algorithms for each given problem • Automated problem reformulation, to improve efficiency of the selected algorithms Medical expert systems Artificial intelligence Automated selection of cancer patients for experimental treatment procedures. • Guiding a nurse through the related questions • Identifying the appropriate medical tests • Reducing the cost of the selection process Joint work with the Moffitt Cancer Center. Approximate data matching Artificial intelligence, learning, and algorithms Fast identification of approximate matches in massive structured data. • Indexing of alphanumeric data • Search for approximate matches • Application to homeland security Joint work with Carnegie Mellon University and the DYNAMiX Technologies Corporation. Indexing of time series Artificial intelligence and algorithms Indexing and retrieval of time series by their major minima and maxima. 4 3 • Fast compression of time series 1 1 3 • Hierarchical indexing of compressed series • Search for series similar to a given pattern Meshing in three dimensions Algorithms and computational geometry Representation of spatial objects by triangle and quadrilateral meshes. • Indexing in three dimensions • Search for optimal meshes • Repair of meshes with holes Joint work with the Sandia National Laboratories and USF Civil Engineering Department. Generalized convexity Computational geometry Exploration of mathematical and computational properties of restricted-orientation convexity. • Definition of generalized convex sets in terms of their intersections with lines from some fixed set of orientations • Study of convex sets in higher dimensions Part II: Automated Exchange System for Multi-Attribute Markets Joint work with the DYNAMiX Technologies Corporation. Outline • Motivation • Main concepts • Architecture • Best-price matches • Quality functions • Performance • Conclusions Motivation • Build an automated exchange for trading goods and services • Combine the speed of the stock exchange with the flexibility of eBay + Previous work • Combinatorial auctions • Standardized exchanges Combinatorial auctions • Complex goods • Asymmetry between buyers and sellers • Illiquid Standardized exchanges • Simple goods • Symmetry between buyers and sellers • Liquid Research goals Build an automated exchange for non-standardized goods. • Allow complex constraints in the specification of desirable trades • Support fast-paced trading for markets with millions of orders • Include optimization techniques to maximize traders’ satisfaction Outline • Motivation • Main concepts • Architecture • Best-price matches • Quality functions • Performance • Conclusions Main concepts • Market • Orders • Matches • Fills • Attributes Market All items that can be traded form a market. Example: All conceivable vehicles compose a car market. Orders An order is a subset of the market along with a price function. Example: Any Mustang or Corvette; Mustang for $28,000 or Corvette for $32,000 , –$1 for every ten miles. Orders Price Price Buy order Sell order Matching A buy order matches a sell order if: There is item buy-items sell-items, such that buy-price(item) sell-price(item). Matching Sell order Price Price Buy order Matching Sell order Price Fill Buy order Fills A fill is defined by a specific item and its price , which must match the buy order and the sell order : • fill-item buy-items sell-items • fill-price buy-price(fill-item) • fill-price sell-price(fill-item) Fills Buy order: Sports car $30,000 Sell order: Mustang $28,000 or Corvette $32,000 Fill: Mustang $29,000 Attributes A specific market is defined by a list of attributes. Example: A used-car market is a set of all possible vehicles, defined by model, year, and mileage. Attributes A trader specifies acceptable items by attribute values. An item specification may include lists of values and numeric ranges. Example: Sell order Model: Mustang Year: 2003 Mileage: 0 Buy order Model: Mustang Year: 2001..2003 Mileage: 0..10K Attributes Sell order Model: Mustang Year: 2003 Price Year 03 02 01 00 Camry Mustang Corvette Buy order Model: Mustang Year: 2000..2003 Model Outline • Motivation • Main concepts • Architecture • Best-price matches • Quality functions • Performance • Conclusions Architecture The system consists of a central matcher and user interfaces that run on separate machines. Traders enter orders through the interface machines, which send the orders to the matcher. Matcher fills orders User interface User interface User interface Data structures The matcher includes a central structure for indexing of orders. • Tree of fully specified orders, which are called index orders • Unordered list of the other orders, which are called nonindex orders Indexing tree Model Mustang Corvette Year 1996 Mileage 50K 1996 Mustang, 50K miles, $7,000 1997 Mileage Year 1985 1986 Mileage Mileage 1988 Mileage Indexing tree Model Mustang Year 1996 Mileage 50K 1996 Mustang, 50K miles, $5,000 Camry Corvette Year 1997 Mileage Year 1999 2000 Mileage Mileage 10K 180K 1999 Camry, 10K miles, $18,000 1986 Mileage 2000 Camry, 180K miles, $5,000 1988 Mileage 20K 1988 Corvette, 20K miles, $4,000 Trading cycle The matcher alternates between processing new orders and identifying matches for old nonindex orders. Process all new orders Re-match all old nonindex orders Processing Process Re-match For every new order: Search for matches in the indexing tree. If it is not filled, and it is an index order, then add it to the indexing tree. If it is not filled, and it is a nonindex order, then add it to the unordered list. Re-matching Process Re-match For every old nonindex order: Search for matches in the indexing tree, among new index orders. If it is filled, then remove it from the unordered list. Drawbacks Process Re-match • The system does not find matches between two nonindex orders • The system delays matches between a new index order and an old nonindex order Outline • Motivation • Main concepts • Architecture • Best-price matches • Quality functions • Performance • Conclusions Optimal matches The system searches for the bestprice matches in the indexing tree. • Depth-first search • Best-first search Depth-first search Buy Order: Any car made after 1990 Model Mustang Year Camry Corvette Year Year 1996 1999 2000 1988 Mileage Mileage Mileage Mileage 50K 10K 180K 20K 1996 Mustang, 50K miles, $7,000 1999 Camry, 10K miles, $18,000 2000 Camry, 180K miles, $5,000 Best price 1988 Corvette, 20K miles, $4,000 Depth-first search Drawback: If there are many matching leaves, the search takes a long time. Solution: Limit the number of matches. Depth-first search Buy Order: With limited number of matches Any car made after 1990 Model Mustang Year Limit: 2 matches Camry Corvette Year Year 1996 1999 2000 1988 Mileage Mileage Mileage Mileage 50K 10K 180K 20K 1996 Mustang, 50K miles, $7,000 Best price among found matches 1999 Camry, 10K miles, $18,000 2000 Camry, 180K miles, $5,000 Actual best price 1988 Corvette, 20K miles, $4,000 Depth-first search With limited number of matches Drawback: The system may not find the best-price match. Solution: Apply best-first search: • Store the best price for each subtree • Use these prices to guide the search Best prices for subtrees Model $4,000 Mustang $7,000 Year Mileage 50K 1996 Mustang, 50K miles, $7,000 Corvette Year $5,000 1996 $7,000 Camry $18,000 1999 2000 Mileage Mileage 10K 180K 1999 Camry, 10K miles, $18,000 Year $4,000 1988 $5,000 2000 Camry, 180K miles, $5,000 Mileage $4,000 20K 1988 Corvette, 20K miles, $4,000 Search for the best price Buy Order: Any car made after 1990 Model $4,000 Mustang $7,000 Year Mileage 50K 1996 Mustang, 50K miles, $7,000 Corvette Year $5,000 1996 $7,000 Camry $18,000 1999 2000 Mileage Mileage 10K 180K 1999 Camry, 10K miles, $18,000 Year $4,000 1988 $5,000 2000 Camry, 180K miles, $5,000 Best price Mileage $4,000 20K 1988 Corvette, 20K miles, $4,000 Search for the best price Advantages: • The system finds the best match • It is much faster than DFS without a limit on the number of matches Drawback: • It is usually slower than DFS with a small limit on the number of matches Outline • Motivation • Main concepts • Architecture • Best-price matches • Quality functions • Performance • Conclusions Quality functions A trader can specify a quality function that ranks the acceptable transactions. The transaction quality may depend on an item and its price. Quality Price Buy order Attributes Quality functions A trader can specify a quality function that ranks the acceptable transactions. The transaction quality may depend on an item and its price. Example: Quality of a car purchase +4 for each year after 1970 –5 for each 10K miles –6 for each $1,000 Quality functions A trader can specify a quality function that ranks the acceptable transactions. The transaction quality may depend on an item and its price. The system searches for the matches with the highest quality. Depth-first search Buy Order: Any car made after 1990 Model Mustang Year Camry Corvette Year Year 1996 1999 2000 1988 Mileage Mileage Mileage Mileage 50K 10K 180K 20K 1996 Mustang, 50K miles, $7,000 1999 Camry, 10K miles, $18,000 2000 Camry, 180K miles, $5,000 Highest37 Quality: quality: 37 Quality: 3 Quality: 0 1988 Corvette, 20K miles, $4,000 Monotonic attributes • The quality monotonically changes with the price • Usually, it is also monotonic on several other attributes Example: Car quality • Increases with the year • Decreases with the mileage Best-first search • For every subtree, store the best value of each monotonic attribute • Use these values to estimate the quality of the best match in every subtree Best values for subtrees Model Mustang 1996, 50K, $7,000 Year 1996 50K, $7,000 Mileage 50K 1996 Mustang, 50K miles, $7,000 2000, 10K, $4,000 Camry Year 1999 10K, $18,000 Mileage 10K 1999 Camry, 10K miles, $18,000 Corvette 2000, 10K, $5,000 Year 1988, 20K, $4,000 2000 1988 180K, Mileage $5,000 20K, Mileage $4,000 180K 2000 Camry, 180K miles, $5,000 20K 1988 Corvette, 20K miles, $4,000 Search for the best match Buy Order: Model Mustang 1996, 50K, 37 $7,000 Year 1996 50K, 37 Mileage $7,000 50K 1996 Mustang, 50K miles, $7,000 Highest quality: 37 2000, 10K, 91 $4,000 Camry Year 1999 10K, $18,000 Mileage 10K 1999 Camry, 10K miles, $18,000 Any car made after 1990 Corvette 2000, 10K, 85 $5,000 Year 1988, 38 20K, $4,000 2000 1988 180K, Mileage $5,000 20K, Mileage $4,000 180K 2000 Camry, 180K miles, $5,000 20K 1988 Corvette, 20K miles, $4,000 Outline • Motivation • Main concepts • Architecture • Best-price matches • Quality functions • Performance • Conclusions Performance Experiments using a Pentium computer : • 1.5 GHz CPU • 1 Gbyte memory • 166 MHz bus Variables Control variables: • Search strategy • Number of orders • Number of attributes Measurements: • Processing time • Re-matching time • Throughput Processing time Process Re-match Logarithmic scale Linear scale 1,000 time (sec) 400 10 300 200 0.1 100 0.001 0 1 10 100 1,000 10,000 100,000 number of orders 50K 100K 150K 200K 250K number of orders Best-First Search, Unlimited DFS, and Limited DFS Re-matching time Process Re-match Logarithmic scale Linear scale 1,000 time (sec) 400 10 300 200 0.1 100 0.001 0 1 10 100 1,000 10,000 100,000 number of orders 50K 100K 150K 200K 250K number of orders Best-First Search, Unlimited DFS, and Limited DFS Total time Process Re-match Logarithmic scale Linear scale 1,000 time (sec) 400 10 300 200 0.1 100 0.001 0 1 10 100 1,000 10,000 100,000 number of orders 50K 100K 150K 200K 250K number of orders Best-First Search, Unlimited DFS, and Limited DFS Throughput orders per second 100,000 10,000 1,000 100 10 1 3 30 10 number of attributes 100 Best-First Search, Unlimited DFS, and Limited DFS Outline • Motivation • Main concepts • Architecture • Best-price matches • Quality functions • Performance • Conclusions Summary • General model for trading multi-attribute goods • Hard and soft constrains in the specification of orders • Fast identification of matches between buy and sell orders Other results • Limited support for multi-order matches Buy order: 1 Mustang $28,000 Sell order: 2 Mustangs $30,000 Fill: 1 Mustang $28,000 Buy order: 1 Mustang $32,000 Fill: 1 Mustang $32,000 Other results • Limited support for multi-order matches • Limited support for combinatorial orders and or Buy order: Mustang $28,000 Buy order: Corvette $32,000 Sell order: Camry $18,000 Other results • Limited support for multi-order matches • Limited support for combinatorial orders • Distributed broker modules Matcher Broker module User interface User interface Broker module User interface User interface Current work • Advanced indexing structures • Search for approximate matches • Trading different types of goods in a common exchange • Integration with combinatorial auction algorithms • Use of multiple matchers