ASSIGNMENT EXCHANGE AND AUCTION
An assignment exchange and auction system comprises a server, a network, a plurality of trader systems and a data store unit. The server performs the auction or exchange, creates and receives assignment messages, and retrieves and stores data sets to and from the data storage unit. The server processes bids and bid groups cooperates with the allocation system to determine an allocation of lots that maximizes a total money value for a plurality of bid groups subject to one or more constraints. The server also cooperates with the plurality of trader systems to present user interfaces for entering bids and bid groups, entering constraints for the bids and bid groups, and show the results of an auction or exchange. The present invention also includes a method for assigning, pricing or exchanging multiple types of lots comprising the steps of: receiving a first bid group from a first bidder; receiving a constraint for the first bid group; receiving a second bid group from a second bidder, determining an allocation of lots that awards bids to the first bidder and the second bidder, wherein the allocation maximizes, subject to the received constraint, a first total money value of awarded bids to the first bidder and a second total money value of awarded bids the second bidder; and notifying the first bidder and the second bidder of the allocation.
The present application claims the benefit of priority under 35 U.S.C. § 119(e) of (1) U.S. Provisional Application No. 61/009,829 entitled “Method And System For Assignment Auctions,” filed on Jan. 2, 2008 by Paul R. Milgrom; (2) U.S. Provisional Application No. 61/054,429 entitled “Online And Offline System And Method For Assignment Auctions And Exchanges,” filed on May 19, 2008 by Paul R. Milgrom; (3) U.S. Provisional Application No. 61/074,576 entitled “Assignment Auctions And Exchanges,” filed on Jun. 20, 2008 by Paul R. Milgrom; and (4) U.S. Provisional Application No. 61/095,496 entitled “Assignment Exchanges,” filed on Sep. 9, 2008 by Paul R. Milgrom. The entire contents of all of the foregoing are incorporated by reference herein.
BACKGROUND OF THE INVENTION1. Field of the Invention
The present invention relates to on-line systems and methods for the exchange of goods or services. More particularly, the present invention relates to on-line systems and methods for assignment exchanges or auctions.
2. Description of the Related Art
The problem of communication complexity is endemic to trade and resource allocation: any mechanism that promotes gains from trade must elicit sufficient information from participants in order to identify who wants what. Reducing the complexity of the information that must be elicited for efficient exchange is among the most important practical problems facing mechanism designers. For example, in the National Resident Matching Program (NRMP), which places doctors into hospital residency programs (Roth and Peranson (1999)), for a hospital that interviews fifty candidates in the hopes of employing ten to report its preferences fully, it must rank, from most-to-least-preferred, not simply all fifty candidates, but rather all possible subsets of ten or fewer doctors from among the fifty. Such a rank-order list would have approximately 1.3×1010 entries! In the recently completed FCC auction 73, which sold 1090 radio spectrum licenses, a value report for all non-empty collections of licenses is a vector of dimension 21090−1≈1.3×10328. These examples illustrate the lengthy report problem which, for moderate sized applications, renders useless any mechanism that demands full, unstructured reporting of preferences.
There are two approaches to mitigating the lengthy report problem, each of which is represented in some of the prior art. The first approach is to simplify the set of reports to reduce the reporting burden on participants. For example, hospitals in the NRMP do report rank order lists of individual candidates together with a number of available positions, rather than lists of sets of candidates. In our example from the preceding paragraph, a list of candidates has a length of only fifty, which is practically manageable, and the NRMP algorithm imputes preferences over sets of candidates to make use of the limited reports. This simplification has performed well enough to be continued for a long period of years. Nevertheless, Internet discussion groups detailing annoying limitations of the NRMP system remind us that its restrictions on preference reporting are quite real.
In mechanism design theory, the term “simplification” refers to a mechanism that is obtained from some original “extended” mechanism by restricting the reports available to participants. In a simplification, it is possible that for some preferences, some profiles of reports that were not Nash equilibria of the original unrestricted mechanism can be Nash equilibria of the simplified mechanism. These additional equilibria may have very different properties from the equilibria of the original mechanism, fundamentally changing the character of the mechanism. A simplification is tight if, for a wide set of specifications of preferences of the mechanism participants, all the pure Nash equilibria of the new mechanism are Nash equilibria of the original mechanism. Tightness is an important property of a simplified mechanism because it guarantees that the simplification preserves some key properties of the original mechanism.
The second pure approach to the lengthy report problem is to employ a dynamic mechanism with staged reporting of information. Such mechanisms economize reporting by asking only for partial information, which may depend on what has been learned in earlier stages of reporting. Ascending and descending multi-product auctions are dynamic mechanisms of this sort which have been popular for commercial applications. These are typically applied when there are similar but distinct goods being sold, such as radio spectrum licenses to use different but nearby frequencies or commodities available at different locations or times, in different grades or with different amounts of processing, or subject to different delivery guarantees or contract terms. When goods are substitutes, modern simultaneous ascending or descending auctions—in which various goods are sold in auctions that take place simultaneously and are linked by so-called “activity rules”—are theoretically well-suited to finding stable allocations or competitive prices. During such auctions, bidders learn about market conditions before making their final bids, and that can improve the final allocation compared to the simplest sealed-bid mechanisms.
Dynamic auctions, however, have important drawbacks. The dynamic auctions that perform well according to economic theory require bidders to make very many bids as prices gradually change, leading to long, slow-running auctions that take many hours or sometimes days, weeks or months to reach a conclusion. Such slow auctions are costly for participants and unworkable for spot markets, such as the hour-ahead markets for electricity, where only minutes are available to find clearing prices. For export applications, finding a convenient hour for real-time bidding by participants living in different time zones can be almost impossible. Moreover, because real auctions cannot use the infinitesimal price increments analyzed in theoretical models, actual dynamic auctions are essentially always inexact in finding market-clearing prices.
According to a theoretical result known as the revelation principle, it is possible to duplicate the outcome of any dynamic mechanism using a sealed-bid mechanism in which participants report preferences just once. The development of such an equivalent sealed-bid mechanism equivalent to the ascending or descending multi-product auction, however, has been blocked because suitably compact means of communicating preferences have not been developed. There are several problems with existing exchange communication structures.
One of the current problems with existing sealed-bid trading mechanisms, including exchanges and auctions, is that in their efforts to simplify the bidding process, only very simple bids may be entered and only simple rules applied, drastically limiting the ability of bids to communicate complex preferences. For certain types of transactions, more complex bids or rules may be valuable. A buyer who can meet its need in multiple ways and regards alternative lots as substitutes benefits from an ability to link bids so that it can make multiple bids and have only an adequate set of its bids filled.
A trader, who wishes to execute a “swap” transaction by buying one item and selling another, may find the transaction too risky unless it can link its bid-to-buy with its offer-to-sell, so that one is executed only if the other is executed as well. Prior art deals with this so-called “leg risk” by executing transactions in quick succession based on posted quotes, but this solution is limited by market liquidity and is not completely reliable.
Another problem with some current systems is that those that do allow complex bids—systems known as combinatorial auctions—determine only “package prices” and not market-clearing prices for individual items to clear markets. This is done because, in some exchange problems, market-clearing item prices do not exist. Still, individual item prices are required for many applications, for example to provide a basis for allocating sales revenue to multiple suppliers or where uniform prices are required by government regulations.
Yet another problem is that existing systems, especially for combinatorial bidding, rely on Boolean expressions to connect bids. Boolean expressions are not easily tailored to represent values of goods that are substitutes, and it can be difficult to determine whether a general Boolean expression represents substitution or is consistent with the existence of market clearing prices, as many applications require.
What is wanted is a method and system for auctioning that provides a compact means to express preferences for lots that are substitutes and that ensures solutions that are always supportable by individual lot prices.
SUMMARY OF THE INVENTIONThe present invention overcomes the deficiencies of the prior art with a new, tight assignment exchange and auction system that allows fast and precise auctions or exchanges to buy or sell goods that are substitutes, with the capability to find exact market-clearing prices and the ability to clear markets while still respecting integer constraints. The assignment exchange and auction system comprises a server, a network, a plurality of trader systems and a data store unit. The trader systems are coupled by the network to the server. The server performs the auction or exchange, receives assignment messages, creates report messages, and retrieves and stores data sets to and from the data storage unit. The server comprises an interface module, an auction module, an exchange module and an allocation system. The allocation system determines an allocation of lots that maximizes a total money value for a plurality of bid groups subject to one or more constraints. The server also cooperates with the plurality of trader systems to present user interfaces for entering bids and bid groups, entering constraints for the bids and bid groups, and show the results of an auction or exchange. The present invention also includes a method for assigning, pricing or exchanging multiple types of lots comprising the steps of: receiving a first bid group from a first bidder; receiving a total effective quantity constraint for the first bid group; receiving a second bid group from a second bidder, determining an allocation of lots that awards bids to the first bidder and the second bidder, wherein the allocation maximizes, subject to the received constraint, a first total money value of awarded bids to the first bidder and a second total money value of awarded bids the second bidder; and notifying the first bidder and the second bidder of the allocation.
The features and advantages described herein are not all-inclusive and many additional features and advantages will be apparent to one of ordinary skill in the art in view of the figures and description. Moreover, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes, and not to limit the scope of the inventive subject matter.
The invention is illustrated by way of example, and not by way of limitation in the figures of the accompanying drawings in which like reference numerals are used to refer to similar elements.
A system for assignment exchange and auction is described. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the invention. It will be apparent, however, to one skilled in the art that the invention can be practiced without these specific details. In other instances, structures and devices are shown in block diagram form in order to avoid obscuring the invention. For example, the present invention is described in one embodiment below with reference to specific auctions. However, the present invention applies to any type of computing system and data processing for implementing an exchange or auction.
Reference in the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment. In particular the present invention is described below in the context of two distinct architectures and some of the components are operable in both architectures while others are not.
Some portions of the detailed descriptions that follow are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
The present invention also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, each coupled to a computer system bus.
Finally, the algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatuses to perform the required method steps. The required structure for a variety of these systems will appear from the description below. In addition, the present invention is described without reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein.
System OverviewThe present invention operates as a direct mechanism that is compact, easy to implement, optionally respects integer constraints and is a “tight” simplification of a standard direct competitive mechanism. In one embodiment, the present invention also operates in two or more stages to allow final reports to be informed by earlier reported information or by summary reports based on that information. The system and method of the present invention establish connections between the assignment auction and exchange and the Vickrey auction and exchange, the uniform price auction and exchange for a single type of product, and an ascending or descending multi-product clock auction.
The present invention, called an “assignment exchange and auction” system, is a mechanism for use in assigning and pricing multiple goods or varieties of a good. While the present invention is described below in the context of goods, those skilled in the art will recognize that the system and method of the present invention can be used for services or any other exchangeable item. Simplification is at the core of much of practical market design. In many real applications, the direct mechanisms studied in much of economic theory are far too complex to be useful. The “assignment exchange and auction” system applies to settings in which there are a certain number of varieties of a good (for example, including but not limited to electric power) that are offered for sale.
The assignment exchange and auction system of the present invention is particularly advantageous because it provides a mechanism that accommodates substitution of and among goods or lots. When different versions of a good are substitutable at all for a particular user, the rate of substitution is frequently one-for-one, or nearly so. For example, a cement purchaser may wish to buy some quantity of cement and may be prepared to pay more to a supplier located closer to the point of use, but the number of tons needed may still be fixed independently of the source: substitution is one-for-one. A northern California electric utility may purchase power at the Oregon border or from southern California, subject to transmission constraints on each. Or, a cereal maker may be able to substitute bushels of grain today for bushels tomorrow by storing the grain in a suitable facility or one type of grain for another up to limits imposed by product specifications. These are all examples of substitution by buyers, but a similar structure is found among sellers, as when a manufacturer can deliver several versions of the same processed good. In each case, substitution possibilities are typically limited, but when substitution is possible at all, it involves at least approximately one-for-one substitution among various versions of a good. This property of one-for-one substitution, combined with integer demands and/or supplies, ensures that there exists an efficient solution with integer allocations. The assignment exchange and auction system of the present invention takes advantage of the one-for-one substitution possibility whenever that is available and outputs integer allocations. This is an important property. Many commodities are most efficiently shipped by the truckload or container-load, and even divisible resources such as electrical power may be sold in whole numbers of megawatts. Even when integer constraints are not logically necessary, common practice may make them useful: a practical resource allocation mechanism must be able to respect such integer constraints.
A first embodiment of a bid group 102A shows the simplest configuration for a bid group 102A-102F. The first embodiment of the bid group 102A has a single bid 104. The single bid 104 has the structure described above and includes the first through fourth fields 106, 108, 110 and 112. For example, the bid 104 is a bid to sell six lots of commodity C1 at price P1. The first embodiment of the bid group 102A illustrates that a bid group can include only a single bid to sell.
A second embodiment of a bid group 102B shows another simple configuration for a bid group 102A-102F. A second embodiment of the bid group 102B again has a single bid 104. The single bid 104 has the structure described above and includes the first through fourth fields 106, 108, 110 and 112. For example, the bid 104 is a bid to buy four lots of commodity C2 at price P1. The second embodiment of the bid group 102B illustrates that a big group can include only a single bid to buy.
A third embodiment of a bid group 102C shows another configuration for a bid group in which there are a plurality of bids 104A, 104B that are subject to a total effective quantity constraint 114. Again, each of the plurality of bids 104A, 104B has the structure described above and includes the first through fourth fields 106, 108, 110 and 112. For example, a first bid 104A of the bid group 102C is a bid to buy five lots of commodity C1 at price P1 and the second in 104B of the bid group 102C is a bid to buy five lots of commodity C3 at price P2. Both of these bids 104A, 104B are subject to constraint 114 that specifies that the total number of units may not exceed eight. In other words, the constraint 114 implements a mutually exclusive such that the maximum number of lots of C2 and C3 is at most eight (8=5+5−2). Those skilled in the art will recognize that while only two bids to buy 104A, 104B are shown in bid group 102C, other configurations of bid groups could apply a mutually exclusive or constraint to bids to sell, or a combination of bids to buy and sell including any number of bids to sell and buy. In some cases, the first field could be eliminated and the bids 104 expressed as a vector, essentially in the same format as a bid, but with negative quantities expressing an offer for sale rather than an offer to buy. In some cases, the same commodity may appear in multiple bids in a single group, thereby to describe a single-product supply function or a single-product demand function.
A fourth embodiment a bid group 102D shows that the bid group 102D can include a plurality of bids 104A, 104B and 104C that implement a swap. In other words, the plurality of bids 104A, 104B and 104C need not be of the same type (all bids to buy or all bids to sell), and in fact, at least one of the bids in a swap bid group must be a bid to sell and a second of the bids must be a bid to buy. Again, each of the plurality of bids 104A, 104B and 104C has the structure described above and includes the first through fourth fields 106, 108, 110 and 112. For example, a first bid 104A of the bid group 102D is a bid to buy six lots of commodity C1 at price P1; the second bid 104B of the bid group 102D is a bid to sell three lots of commodity C3 at price P2; and the third bid 104C of the bid group 102D is a bid to sell four lots of commodity C4 at price P3. While the example bid group 102D only shows a single bid 104A to buy, those skilled in the art will recognize that bid group 102D is swap and can include a plurality of bids to sell and a plurality of bids to buy.
Referring now to
A sixth embodiment a bid group 102F shows that the bid group 102F as including a plurality of bids 104A-104M, 104N-104Z. Each of the plurality of bids 104A-104M, 104N-104Z has the structure described above and includes the first through fourth fields 106, 108, 110 and 112. In this embodiment, however, the bid group 102F includes both a plurality of bids 104A-104M to buy and a plurality of bids 104A-104M to sell. It should be noted that each of the bids 104A-104M, 104N-104Z can also specify a different commodity, a different number of lots, and a different price.
The server 202 is a conventional computer including a processor, memory, non-volatile storage and a network connection. The server 202 may optionally include one or more input devices and one or more output devices. The server 202 is an apparatus for performing the auction or exchange, for receiving assignment messages, creating and sending reporting messages, for retrieving and storing data sets to and from the data storage unit 208. The server 202 is coupled for communication and interaction with the plurality of trader systems 206A-206N via the network 204. The server 202 is also coupled for communication and interaction with the data storage unit 208. The server 202 is hardware capable of executing and performing routines to achieve the functionality described below with reference to
The interface module 232 is software and routines executable on the server 202 to create the user interfaces depicted below in
The auction module 234 is software and routines executable on the server 202 to operate and run an auction. In one embodiment, the auction module 234 is adapted for interaction and communication with the interface module 232 and the allocation system 238 during the operation of the auction. The auction module 234 controls the receipt of bid groups and cooperates with the allocation system 238 to determine a winning bid group and send out notification messages. The auction module 234 also cooperates with the interface module 232 to receive and store data sets relating to the auction to and from the data storage unit 208.
The exchange module 236 is software and routines executable on the server 202 to operate and run an exchange. In one embodiment, the exchange module 236 is adapted for communication and interaction with the interface module 232 and the allocation system 238 for operation of the exchange. The exchange module 236 controls the receipt of bid groups and cooperates with the allocation system 238 to determine a list of winning bid groups and send notification messages to the trader systems 26A-206N. The exchange module 236 also cooperates with the interface module 232 to receive and store data sets relating to the exchange to and from the data storage unit 208.
The allocation system 238 is software and routines executable on the server 202 to determine an allocation of lots that maximizes a total money value for a plurality of bid groups subject to one or more constraints. As noted above, the allocation system 238 cooperates with the auction module 234 and/or the exchange model to create an auction or exchange, respectively. The operation and components of the allocation system 238 are described below in more detail with reference to
The network 204 is of a conventional type such as the internet for interconnecting computing devices. The network 204 can be any one of a conventional type such as a local area network (LAN), a wide area network (WAN) or any other interconnected data path across which multiple computing devices may communicate.
Each of the trader systems 206A-206 is a computing system such as a personal computer and includes a graphical user interface module 222, a bid group collection module 224 and a bid group transmission module 224. In one embodiment, the graphical user interface module 222, the bid group collection module 224 and the bid group transmission module 224 are software operable on a general purpose computer. In another embodiment, the graphical user interface module 222, the bid group collection module 224 and the bid group transmission module 224 are specialized hardware for providing functionality described below and with reference to the user interfaces of
In one embodiment, the graphical user interface module 222 is software and routines executable by the trader system 206A to provide the graphical user interfaces shown in
The bid group collection module 224 is software and routines executable by the trader system 206A to collect information related to bid groups. The information collected by the bid group collection module 224 include the actual information used to formulate bids and bid groups, control and administrative information for the presentation of data, user accounts, auctions, exchanges, etc. The bid group collection module 224 is adapted for communication with the graphical user interface module 222 and the bid group transmission module 226.
The bid group transmission module 226 is software and routines executable by the trader system 206A to send bids and bid group information to the server 202. In one embodiment, the bids and bid group information are sent to the server 202 as assignment messages. The bid group transmission module 226 take the information generated by the bid group collection module 224 and transmits it to the server 202. In one embodiment, the bid group transmission module 226 is responsible for establishing a secure communication link with the server 202. The bid group transmission module 226 also receives report messages from the server 202. The report messages include data that is presented to the user in some of the interfaces such as those shown in
The data storage unit 208 is a device such as a hard disk drive or other storage media. The data storage unit 208 is shown as being coupled to the server 202. The data storage unit 208 is used to store data sets including bid groups, bids and other information necessary for the execution of an auction or an exchange.
Allocation SystemThe allocation system 238 then uses rules and constraints engine 308 to process the bids from the sellers bid queue 302 and buyers bid queue 304 to determine rules and constraints to determine the allocation of lots and the market-clearing prices in an auction or exchange. These rules and constraints are output from the rules and constraints engine 308 to the bid processor 306. The bid processor 306 then processes the rules and constraints, the bids in the sellers bid queue 302 and the buyers bid queue 302 to generate a list of winning bids, if any, clearing prices and analytical data. The bid processor 306 stores those bids, the clearing prices and other analytical data in storage 310. Part of the resolution is substitution of similar commodities (C1, C2 and C3 in this example) matching the bid vectors and, if any, external rules and constraints (for example, limits on the quantities assigned to groups of bids). That allows for allocation of resources at a market-clearing price, hence an efficient allocation of resources.
The rules and constraints engine 308 processes the bids from the data storage unit 208 to determine rules and constraints. These rules and constraints are output from the rules and constraints engine 308 to the bid processor 306. The bid processor 306 processes the rules and constraints, and the bids from the data storage unit 208 to determine the allocation of lots and the market-clearing prices in an auction or exchange. The bid processor 306 then generates a list of winning bids, if any, clearing prices and analytical data. The bid processor 306 stores those bids, the clearing prices and the analytical data in storage 310. This information can also be stored in the data storage unit 208 for use by the auction module 234, the exchange module 236 or the interface module 232. While the above description presents the allocation process as sequential, those skilled in the art with recognize that in other embodiments, the allocation can be determined all at once where the bids are transmitted to the allocation system 238 which then runs a solver on the bid processor 306 that computes the allocation and prices.
Prior to an auction, in some cases, the auctioneer may publish guidelines, results of prior auction or exchange events, and some bids for informational purposes. Depending on the published information, traders may have multiple bids. For example, a buyer may have multiple bids with each representing the needs of a particular factory. The exchange module 236 awards quantities as the solution of a particular linear program, which maximizes the difference between the total money values of the awarded bids to buy minus the total money value of the awarded offers to sell. The linear program is described in the attached Appendix A. If there are multiple allocations that achieve the maximum in the linear program, the exchange module 236 resolves among those using a quantity-tie-breaking rule. The exchange module 236 also determines prices for each product by solving the dual linear program, also described in Appendix A. The resulting prices are market-clearing prices. If there are multiple solutions to the dual linear program, then the exchange resolves among those using a price-tie-breaking-rule. For example, if the exchange operates as an auction with a single seller and multiple buyers, according to a preferred mode of the present invention discussed in detail in Appendix A, the lowest market-clearing price for each commodity may be determined. The various items sold may have different prices to reflect various differences. For example the difference may be the product grade, such as coffee beans that differ in origin, size and color, or it may be the location of delivery, which affects the costs of transporting the product to its place of use, or it may reflect the time of availability or contract terms or degree of processing, etc.
It is clear that many modifications and variations of this embodiment may be made by one skilled in the art without departing from the spirit of the novel art of this disclosure. For example, depending on the auction, who holds the auction, and who takes the bids to buy and sell, different rules may be published and hence used in a rules-and-constraints engine to resolve those bids. These modifications and variations do not depart from the broader spirit and scope of the invention, and the examples cited here are to be regarded in an illustrative rather than a restrictive sense. The approach described here can be used both online and, in simple cases, offline. Also, sellers might be limited to a single offer, or, in more commoditized situations, many bids, sometimes in regular time intervals, sometimes as a one time or occasional auction.
The advantages of the current invention are that maximum value relative to the bids is always achieved, market-clearing item prices are determined, prices properly reflect relevant differences in cost and value to the traders (including buyers, sellers, and swappers), integer solutions supported by market-clearing prices can be guaranteed, and bidding is quick and easy.
User InterfacesIn the assignment exchange and auction system 100 as described earlier in
The decision of which types of items to offer and which traders to invite are determined by custom or by the auctioneer based on consultation with important traders. In some cases, traders may run their own auction, to buy, sell or swap products.
Referring now to
Referring now to
In some cases, the auction may be operated in two stages, with bidders 1409 permitted to change their bids and groups based on information reported after the first stage. In these cases, the rules and constraints engine 308 determines which bids can be changed and what new bids are allowed.
The foregoing description of the embodiments of the present invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the present invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the present invention be limited not by this detailed description, but rather by the claims of this application. As will be understood by those familiar with the art, the present invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. Likewise, the particular naming and division of the modules, routines, features, attributes, methodologies and other aspects are not mandatory or significant, and the mechanisms that implement the present invention or its features may have different names, divisions and/or formats. Furthermore, as will be apparent to one of ordinary skill in the relevant art, the modules, routines, features, attributes, methodologies and other aspects of the present invention can be implemented as software, hardware, firmware or any combination of the three. Also, wherever a component, an example of which is a module, of the present invention is implemented as software, the component can be implemented as a standalone program, as part of a larger program, as a plurality of separate programs, as a statically or dynamically linked library, as a kernel loadable module, as a device driver, and/or in every and any other way known now or in the future to those of ordinary skill in the art of computer programming. Additionally, the present invention is in no way limited to implementation in any specific programming language, or for any specific operating system or environment. Accordingly, the disclosure of the present invention is intended to be illustrative, but not limiting, of the scope of the present invention, which is set forth in the following claims.
APPENDIX A I. Assignment MessagesConsider a resource allocation problem with goods indexed by k=1, . . . , K and participants are indexed by n=1, . . . , N. If participants' preferences are quasi-linear, then the utility for a trade is expressed as the value Vn(qn) of bundle qnε acquired plus any net cash transfer. The set of demanded bundles at price vector p is arg maxq
An assignment message describes Vn using a collection of bids and a set of constraints. Each bid by bidder n is indexed by a serial number jεJ(n) and consists of a 5-tuple (kj,νj,ρj,lj,uj) where kj identifies the type of product, νj identifies the “value” of the bid, ρj>0 identifies the “effectiveness” and the remaining two terms are lower and upper bounds on quantities: lj≦0≦uj. The role of the effectiveness coefficient, which is to allow arbitrary marginal rates of substitution within certain constraints, will be formalized shortly.
In addition to the bids, participant n's assignment message expresses constraints of two kinds. First are the single-product bid group constraints:
where Tnk includes all singletons S={j} for which kj=k and may include other subsets of Rnk={jεJ(n)|kj=k}. For the singletons, lk
Unlike the sets used in the single product group constraints, the sets SεTn0 may include bids on multiple products. Also, unlike the sums in (1), those in (2) are weighted sums, with weights equal to the effectiveness coefficients.
To simplify notation, we suppress the subscript n while we are analyzing the reports and preferences of a single bidder; the subscript will reappear later when we analyze allocations for multiple participants. Using the bids and constraints, bidder n's message is interpreted to report a value for any feasible bundle of products q=(q1, . . . , qK) as follows:
Because the vector (q,x)≡0 satisfies all the constraints in (3), the zero bundle q=0 is feasible. By a theorem of linear programming, the set of vectors q for which the problem is feasible is a closed, bounded, convex set Q and V is a continuous, concave function on that set. The next step is to define assignment messages and certain related concepts.
DEFINITIONS
-
- 1. The demand correspondence for V is D(p)=arg maxqεQ V(q)−p·q.
- 2. The indirect profit function for V is π(p)≡maxqεQ V(q)−p·q.
- 3. The valuation V is substitutable if for all prices p,p′ε+K and all k=1, . . . , K, if D(p)={x} and D(p−k,pk′)={x′} are singletons and pk′>pk, then x−k′≧x−k.
- 4. A collection of sets T is a tree if (1) for any two non-disjoint sets S, S′εT, either S⊂S′ or S′⊂S and (2) T contains a largest set—the union of all its elements. That largest set is the root of T.
- 5. Given a tree of sets T, its extended predecessor function (P) maps each element of T, excluding the root R, into its unique predecessor and maps each jεR into the smallest set S satisfying jεSεT .
- 6. A bound forest is a collection of trees and associated bounds {T0, . . . , TK,{(lkS,ukS)|SεTk,k=0, . . . , K}} with all lkS≦0≦ukS. The trees satisfy:
- a. The root of T0 is R0=J(n) and, for k=1, . . . , K, the root of Tk is Rk={jεJ(n)|kj=k}.
- b. For k=1, . . . , K, the terminal nodes of tree Tk are the singleton sets {j} with jεJ(n) and kj=k.
- c. All bounds except the root bounds are finite, 0≧lS>−∞ and 0≦uS<+∞, but the bounds on the roots may be infinite, 0≧lR
k ≧−∞ and 0≧uRk ≧+∞. - d. For any singleton set {j}ετk
j , lkj {j}=lj.
- 7. An assignment message consists of a collection of bids (kj,νj,ρj,lj,uj) and a bound forest {T0, . . . , TK,{(lkS,ukS)|SεTk,k=0, . . . , K}}.
- 8. A basic assignment message is an assignment message with each ρj=1 and with all bounds lkS and ukS integers.
- 9. An assignment exchange is a mechanism mapping profiles of assignment messages for each bidder n to an outcome pair (q1*, . . . , qN*, p*) where
subject to
and p* is a supporting price vector, that is, for n=1, . . . , N, qn*εarg maxqεQ
-
- 10. A basic assignment exchange is an assignment exchange in which the messages are restricted to be basic assignment messages.
The basic assignment messages form an extension of the set of messages allowed by the Shapley-Shubik mechanism. In the Shapley-Shubik mechanism, each participant occupies just one role, as a buyer or a seller. Each seller message includes just one bid (|J(n)|=1) and each buyer message includes just one bid for each product. If participant n is a seller, then the constraints on its one bid are l1=−1 and u1=0. If participant n is a buyer, then its constraint bounds for each bid are lj=0 and uj=1 and its one group constraint has bounds lR
The three main results of this section can now be stated. Proofs follow just below.
Theorem 1. If participant n reports an assignment message, then its valuation V: q→ as given by (3) is continuous, concave and substitutable and its indirect profit function is submodular.
Theorem 2. If every participant n reports a continuous, concave substitutable valuation on a convex, compact set Qn, then the set of market-clearing prices for the report profile is
This set is a non-empty, closed, convex sublattice.
Theorem 3. If every participant reports a basic assignment message, then there is an integer vector
subject to
The proof of theorem 1 makes use of the following results, which are also of independent interest.
Lemma 1. Suppose that the valuation function V is such that the corresponding indirect profit function π is well defined. Then V is substitutable if and only if its indirect profit function π is submodular.
Lemma 2. Suppose π(p)=minz g(z) subject to (z,p)εS, where g is submodular, S is a sublattice in the product order, and p is a parameter. Then, π is submodular.
Proof of Lemma 1. Since π is convex on K, it is locally Lipschitz and differentiable almost everywhere. By Hotelling's lemma, the demand set is a singleton D(p)={x(p)} at exactly those points of differentiability and πk(p)≡∂π(p)/∂pk=−xk(p). Substitutability is equivalent to the condition that for k=1, . . . , K, x−k(p) non-decreasing in pk. Submodularity is equivalent to the condition that on the same domain, πk(p) is non-increasing in pk′ for k′≠k. QED
Proof of Lemma 2. Let p and p′ be two price vectors and let z and z′ be corresponding optimal solutions, so that π(p)=g(z), π(p′)=g(z′), and (z,p),(z′,p′)εS. Since S is a sublattice, (zz′,pp′), (zz′,pp′)εS. By the definition of π, π(pp′)≦g(zz′) and π(pp′)≦g(zz′). Since g is submodular, g(zz′)+g(zz′)≦g(z)+g(z′). Hence, π(pp′)+π(pp′)≦π(p)+π(p′). QED
Proof of Theorem 1. Let Pk denote the extended predecessor function associated with tree Tk. Let ρ{j}=ρj and ρs=1 if |S|≠1. We adopt the convention that if a set is empty, the sum it indexes is zero. Using the tree structures, for k=0, . . . , K and SεTk, one can define variables as follows:
Using this augmented vector x, and with the notational convention that x0j≡xk
The indirect profit function is:
Applying the duality theorem of linear programming, with λSu and λSl the shadow prices on the upper and lower bound constraints and μkS the shadow prices on equality constraints:
For k=0, . . . , K and SεTk, define functions fkS(z)≡ukS max(0,z)+lkS min(0,z). Notice that these functions fkS are convex and that, because either λkSu=0 or λkSl=0 (the upper and lower bound constraints on xkS cannot both be binding), fkS(λkSu−λkSl)=ukSλkSu−lkSλkSl. Define θkS=μkS−(λkSu−λkSl) for k=1, . . . , K and θ0S=μ0S+(λ0Su−λ0Sl). Substituting into (6) results in the following:
Let
be the total number of constraints included in bidder n's assignment message. Let (θ,μ,p)ε be a vector listing the dual variables and prices. Using the usual product order, treat as a lattice. Since the fkS functions are convex, the objective in problem (7) consists of a sum of submodular functions of (θ,μ). Since the objective is a sum of submodular functions of (θ,μ), it, too, is a submodular function of (θ,μ). Also, by inspection, each constraint in (7) defines a sublattice of for some one or two variables among (θ,μ,p) and hence of the higher dimensional space of vectors (θ,μ,p). Since an intersection of sublattices is a sublattice, the constraints in (7) define a sublattice.
Thus, (7) takes the form minz g(z) subject to (z,p)εS where g is submodular and S is a sublattice. Lemma 2 applies, so π is submodular. Lemma 1 then applies, so V is substitutable. QED
Proof of Theorem 2. Since the corresponding primal problem can be represented as a continuous concave maximization on a compact set, the maximum exists and coincides with the minimum of the dual. Since the valuations are concave, the set of market-clearing prices is the set of solutions to the dual problem:
Since each πn is continuous and convex, the set of minimizers of the dual problem is closed and convex. Since each πn is submodular, by a theorem of Topkis (1978), the set of minimizers of the dual problem is a sublattice. QED
Proof of Theorem 3. We show something stronger than claimed by the theorem, namely, that there is an integer solution x* to the problem that determines the goods assignments:
The sign restrictions lnkS≦0 and unkS≧0 ensure that x≡0 satisfies the constraints of the problem, so the problem is feasible. The individual bounds on each xj imply that the constraint simplex is bounded. For a feasible, bounded linear program, there is always an optimal solution at a vertex of the constraint simplex. Hence, to prove the theorem, it is sufficient to show that every vertex of the simplex defined by the constraints in (8) is an integer vector.
Each vertex of the constraint simplex is determined by a set of binding upper and lower bound constraints of the form xS=uS or xS=lS and the equation Ax=0, which describes the equality constraints in (8). Fix any vertex and denote the right-hand sides of the binding upper and lower bound constraints by ū and
According to a theorem of Hoffman (see Heller and Tomkins (1956)), a matrix is totally unimodular if all the entries of A are elements of the set {0,+1,−1}, if each column of A has at most two non-zero entries, and if no two non-zero entries in any column have the same sign. To verify the Hoffman conditions, examine the columns of (8) corresponding to the different variables xnkS. For the root S=Rn0 of a Tn0 tree for some participant n, xn0S appears in only one equality constraint in (8) and so has a single entry in its column. For k≠0, the variables xnkR
The structure of assignment messages allows bidders to report values and effectiveness coefficients without limitations but restricts the form of constraints to be a bound forest. The tree constraints can be imposed in software to implement the exchange. This section shows that if one fails to impose the constraint that Tn0 is a tree, then theorems 1 and 2 become invalid.
The main idea can be illustrated with the example of a buyer for whom the lower bounds lj and lkS are all zero. Suppose that there are three goods and that this buyer has three bids, j=1, 2, 3, each with νj=1 and kj=j, all constrained so that 0≦xj≦2. Suppose that the multi-product groups constraints in the problem are x1+x2≦3 and x2+x3≦3, violating the tree structure. Then, for the price vector (0,1,2), the corresponding demand is (2,1,2) and for the price vector (3,1,2), the corresponding demand is (0,2,1): raising the price of good 1 reduces the demand for good 3, violating the substitutes condition.
It is a short step from this example to the following theorem, the proof of which is omitted.
Theorem 4. If the set Tn0 is not a tree, then there exist bids and integer bounds for each SεTn0 such that the valuation Vn is not a substitutes valuation, the indirect profit function πn is not submodular, and the set of market-clearing prices (for this one bidder problem) is not a sub lattice.
III. TightnessA simplified direct mechanism is a one with a restricted message space. A mechanism is a triple (N,M,ω), where N is the set of participants, M is the product space of message profiles, ω: M→Ω, and Ω is the set of possible outcomes. For tightness analysis, it is assumed that Ω=×nεNΩn, where each Ωn is a topological space, and that each player n's payoff is by un(ωn), where the payoff function un is continuous. A simplified mechanism is tight if for all utility profiles u=(un)nεN and every ε≧0, every pure-strategy profile that is an ε-Nash equilibrium of the simplified mechanism is also an ε-Nash equilibrium of the original, extended mechanism.
For this application, we take ωn=(qn,p), which means that each participant may care about his goods assignment and about the prices, but not the goods assigned to others. In standard equilibrium theory, preferences for a participant n depend only on (qn,p)—his goods assignment and payment. By including the price vector in a more general way, we allow that a participant may prefer, for example, that its competitor's product commands a low price or that its partner's product commands a high price. In particular, we allow that a participant's actual preferences may not be describable using assignment messages.
The next theorem applies not just to the general assignment exchange, but also to mechanisms that limit the messages participants can use to a subset of the assignment messages. To describe the permissible limitations on messages, let us say that an assignment message mn is minimally constrained if its only finite constraint bounds (lS,uS) correspond to the singleton sets S={j}. An assignment message is simple if it is minimally constrained and if for every product k, it includes at most two bids j: |{jεJ(n):kj=k}|≦2.
Theorem 5. Any Walrasian exchange in which each bidder n's message space contains only assignment messages and contains all simple assignment messages is a tight simplification of the full Walrasian exchange.
Proof. Let {circumflex over (M)}n be bidder n's simplified message space and let Mn be the full Walrasian message space. According to the Simplification Theorem of Milgrom (2008), it is sufficient to establish that the simplified message space has the outcome-closure property, which is the following: For every message profile {circumflex over (m)}−nε{circumflex over (M)}−n, every mnεMn, and every open neighborhood O of ωn({circumflex over (m)}−n,mn),there exists {circumflex over (m)}nε{circumflex over (M)}n such that ωn({circumflex over (m)})εO .We now establish that the proposed simplification has this property.
Fix a participant n and messages {circumflex over (m)}−nε{circumflex over (M)}−n and mnεMn. Let (p,q)≡ω({circumflex over (m)}−n,mn). Let σnk=sign(qnk)ε{−1,0,1} and fix ε>0. Under the hypothesis of the theorem, n's message space includes the following simple assignment message {circumflex over (m)}n with bids j=1, . . . , 2K as follows. For k−1, . . . , K, k2k−1=k , ν2k−1=pk+σnkε, ν2k=pk−σnkε, u2k−1=u2k=max(0,qnk) and l2k−1=l2k=min(0,qnk). The message {circumflex over (m)}n specifies no other finite bounds. Let ({circumflex over (p)},{circumflex over (q)}) be the competitive equilibrium outcome selected by the mechanism when the message profile is {circumflex over (m)}.
Since (p,q) is a competitive equilibrium for the report profile ({circumflex over (m)}−n,mn) qn solves
And since n demands qn at prices p, (p,q) is also a competitive equilibrium for report profile {circumflex over (m)}. From that and the fact that ε>0, qn uniquely solves
Hence, even though there may be multiple competitive equilibria for the message profile {circumflex over (m)}, all assign the bundle qn to participant n: {circumflex over (q)}n=qn. Moreover, since every market-clearing price vector support this choice by n, the price vector {circumflex over (p)} must satisfy pk−ε≦{circumflex over (p)}k≦pk+ε for every product k. Since ε can be arbitrarily small, the outcome closure property is proved. QED
IV. Additional ConnectionsOne connection is between the assignment exchange and single product exchanges. If K=1, the assignment exchange reduces to what the literature calls a double-auction. Each participant's report describes a step-function supply or demand curve and these are intersected to determine market-clearing prices and quantities. In case the market-clearing prices or quantities are not unique, any selection rule is consistent with the assignment exchange. In one-sided cases (with just bids to buy and a fixed supply, or bids to sell and a fixed demand), the kinds of problems found in share auctions (Wilson (1979)) can present themselves. Typical solutions to these problems, such as proposed in McAdams (2002) and Kremer and Nyborg (2004), can be adapted to the assignment exchange.
Another connection is to the Vickrey auction. In such an auction, if a participant n acquires a single good k, it pays the opportunity cost of that good, which is equal to the incremental value of one additional unit of good k to the coalition of other participants. In the linear program for the basic assignment exchange, the lowest market-clearing price pk for good k is its shadow price—the amount by which the optimal value would increase if an additional unit of good k were made available to the coalition of all players. If participant n has demand for just one unit in total and acquires a unit of good k, then the additional unit for the coalition of all participants is actually assigned to someone besides n, so pk is the increased optimal value of that unit to the other participants—n's Vickrey price.
Theorem 6. Suppose that some participant n bids to acquire at most one unit in a basic assignment exchange and that the exchange selects the price vector p that is the minimum market-clearing price vector. Then, if n acquires a unit of good k, the price pk is equal to n's Vickrey price for k.
A symmetric statement can be made about participants who sell one unit and exchanges that select the maximum market-clearing price vector.
V. From Theory to PracticeAs described in the introduction, the implementation of multi-product clock auctions can be handicapped by finite bid increments, scheduling issues, and short market periods. These are typical among the many issues that arise in any applied market design.
The two main practical limitations of assignment exchanges are associated with their enforced simplification of preference reports and the paucity of information they reveal to bidders during the auction. The latter may be significant when there is some common value element in the environment or when a bidder's payoff depends on the trades made by other bidders.
Before discussing the limitations of the assignment message space, however, it is appropriate to recognize cases in which even the simplest basic assignment messages can be effective. Suppose, for example, that an electricity buyer n can purchase power from any of three sources, 1, 2 or 3, subject to transmission costs (t1, t2, t3) and transmission capacity limits (U1, U2, U3). If n needs to buy P units of power and the value per unit is α, then bids j=1, 2, 3 with kj=j, νj=α−tj, uj=Uj, lj=0 and one constraint for S={1, 2, 3} with uS=P and lS=0 accurately expresses the bidder's demand. If there are also transmission losses to account for, the bidder can handle those by setting ρj<1; otherwise, ρ1=ρ2=ρ3=1.
In the same setting, it might happen that the buyer has already acquired all of its power need for some time period but would be willing to sell up to β units power at A in exchange for β units at B or C, provided the price is right. This swap can be encoded with three bids and the constraints: 0≧xA≧−β, xB,xC≧0, xA+xB+xC=0 (which is encompassed by the theory because it can be expressed using upper and lower bounds: 0≦xA+xB+xC≧0).
Swap bids have the potential to add liquidity to an exchange hindered by lack of volume. Investigating this fully is beyond the scope of this paper: it requires a theory of why owners do not constantly participate in and provide liquidity to markets. Nevertheless, it is clear that in a market with modest liquidity, swaps encourage participation by limiting the risk that one part of an intended transaction might be executed without the other parts. For example, with separate markets, a swapper with a budget limit might have to sell one commodity before buying the other in order to raise funds to transact, leaving the swapper exposed to the risk of not finding a seller for the other part of the planned transaction. By eliminating such risks, swaps make participation safer, increasing liquidity.
The power of simple assignment messages in the examples given above is important because simplicity is often a design goal. One might simplify the general assignment exchange by limiting the number of bids, constraints, or levels in the constraint trees. Theorems 1, 2, 3 and 5 have been constructed to apply even to exchanges that incorporate additional simplifications.
One kind of common constraint that is not fully reflected in theorem 5 arises when the exchange limits a participant's role. For example, only certain parties may be qualified sellers of particular goods, as implemented by a restriction limiting when lj<0 is permitted. This can be significant for conclusions about tightness, and it is natural to investigate extensions of theorem 5 by imposing similar restrictions on the related Walrasian exchange. I leave that task for others.
Another common limitation imposed by operators is a credit limit on buyers. Whether this is implemented as a limit on the maximum acceptable bid from a bidder or as a limit on the maximum quantities that can be demanded, the result is simply to restrict the bidder to a subset of the assignment message space, so the theorems continue to apply.
When bidder market power in an auction is alleged, it may be good policy to limit the total quantity of all goods or only of certain goods k purchased by some set of bidders. Such a policy leads to constraints that are complex because they combine bids across bidders. One approach is by product redefinition. For example, if the operator wants to limit bidders 1 and 2 to purchase no more than half of the available units of good 1, it can accomplish that by splitting good 1 into types 1A and 1B and restricting bidders 1 and 2 from bidding on type 1B. This procedure has precedent: it is similar to the set-asides used by the US Federal Communications Commission to restrict purchases by incumbents in some auctions.
Whether the assignment messages are sufficiently encompassing is likely to vary by application. Certainly, scale economies and complements among lots are sometimes important and cannot generally be solved merely by redefining lots. For example, in electricity, generating plants typically have large fixed costs that require all or nothing decisions about whether to use their power capacity. While such limits are not directly expressed using assignment messages, it is often possible to use the assignment exchange as part of a solution. One ad hoc procedure is to operate the exchange in two or more rounds to allow preliminary price discovery to guide bids at the final round. This does not entirely eliminate the fixed cost problem, but it may sometimes mitigate it. Staged dynamics of this sort may also be helpful when there are important common value elements or when bidders can invest in information gathering during the process, as in Compte and Jehiel (2000) or Rezende (2005).
A more exact procedure incorporates the assignment exchange as an element within a general combinatorial auction or exchange. For example, participants might be allowed to report fixed costs of transacting in addition to their assignment messages. Doing that would lead to a two-stage problem, in which finding the right set of participants is a combinatorial optimization problem, but finding the allocation for a given set of participants is an assignment exchange problem. Similarly, in the airline slot problem, if there is no single time T that is covered by all the relevant intervals, it may still be possible to organize the optimization around a limited number of such times—the combinatorial part of the problem—and to allow the assignment exchange to solve the remaining part.
Three key properties of assignment and basic assignment messages—that they are simple to use and express only substitutable preferences and that basic assignment messages lead to efficient integer solutions—make them potentially valuable for simplifications of other mechanisms in addition to the Walrasian exchange. For example, two principal disadvantages of Vickrey auctions—complexity of the message space and “low” seller revenues (less than in any core allocation)—hinge on either the complexity of the message space and the availability of messages that report non-substitutable values, respectively. A simplified Vickrey auction in which bidders are limited to reporting assignment messages escapes these disadvantages. As another example, consider assignment problems with discrete goods and rules against cash transfers, such as the problems of assigning students to courses or flight attendants to routes. In such cases and assuming that basic assignment messages describe ordinal preferences, by maximizing welfare-weighted sums of assignment values using linear programming, one identifies all and only integer efficient solutions. And, if budget constraints are imposed to find competitive equilibrium solutions, the resulting fractional allocations can be shown to correspond to a randomization over integer solutions.
As described in the introduction, direct, sealed-bid mechanisms enjoy important advantages compared to ascending or descending auctions, particularly for time-sensitive applications. Assignment exchanges, in particular, are tight, simple to use, fast to execute, and precise in determining both equilibrium prices and goods assignments. Assignment messages provide a compact expression of a useful set of substitutable preferences for a range of applications and the basic assignment messages ensure that equilibrium assignments entail only integer quantities. The assignment exchange design is robust, in the sense that its key properties remain even when the assignment message space is further restricted in any way that does not eliminate any simple assignment messages, and maximal in the sense no extension of the bid tree constraint architecture is possible without destroying the key substitutes property of the message space. In combination, these attributes make the assignment exchange an attractive candidate for the many practical applications in which the goods or items to be assigned are substitutes.
Claims
1. A computer implemented method for assigning, pricing or exchanging multiple types of lots, the method comprising:
- receiving a first bid group from a first bidder, the first bid group including a first bid specifying whether the first bid is to sell or buy, a maximum number of a type of lot and a money value per lot;
- receiving a constraint for the first bid group, the constraint limiting the total number of lots assigned to the first bid group;
- receiving a second bid group from a second bidder, the second bid group will including a second bid specifying whether the second bid is to sell or buy, a maximum number of a type of lot and a money value per lot;
- determining an allocation of lots that awards bids to the first bidder and the second bidder, wherein the allocation maximizes, subject to the received constraint, a first total money value of awarded bids to the first bidder and a second total money value of awarded bids the second bidder;
- sending a first message to the first bidder including the allocation; and
- sending a second message to the second bidder including the allocation.
2. The computer implemented method of claim 1 wherein the lot is one from the group of a good, a service, a good and a service, a product, a collection of goods, a collection of services and a collection of goods and a collection of services.
3. The computer implemented method of claim 1 wherein the first bid group includes an additional bid, the additional bid specifying whether the additional bid is to sell or buy, a maximum number of a type of lot and a money value per lot.
4. The computer implemented method of claim 3 wherein the first bid group is a swap and the first bid is a bid to buy and the additional bid is a bid to sell.
5. The computer implemented method of claim 3 wherein the type of lot of the first bid is different than the type of lot of the additional bid.
6. The computer implemented method of claim 3 further comprising displaying the first bid group, the first bid and additional bid to the user.
7. The computer implemented method of claim 6 wherein the first bid group, the first bid and additional bid are displayed in a tree structure that shows their relationship to each other.
8. The computer implemented method of claim 1 wherein the first bid group includes a plurality of additional bids, the plurality of additional bid each specifying whether the additional bid is to sell or buy, a maximum number of a type of lot and a money value per lot, and wherein at least one of the plurality of additional bids has a type of lot different from the first bid.
9. The computer implemented method of claim 1 comprising receiving a second constraint for the second bid group, the second constraint specifying a total number of lots assigned to the second bid group.
10. The computer implemented method of claim 1 comprising:
- receiving a plurality of additional bid groups from a plurality of additional bidders, each additional bid group including at least one bid, the at least one bid specifying whether the at least one bid is to sell or buy, a maximum number of a type of lot and a money value per lot; and
- receiving a plurality of additional constraints, each additional constraint corresponding to one of the plurality of additional bid groups, each additional constraint specifying a total number of lots assigned to the corresponding one of the plurality of additional bid groups.
11. The computer implemented method of claim 1 wherein the first bid and the second bid each also specify an effectiveness coefficient.
12. The computer implemented method of claim 1 wherein:
- the first bid is a bid to sell and the first bid group includes a third bid that is a bid to buy;
- the second bid is a bid to sell and the second bid group includes a fourth bid that is a bid to buy;
- the first total money value of awarded bids to the first bidder is a total price of first bidder's awarded bid to sell minus a total price of first bidder's awarded bid to buy; and
- the second total money value of awarded bids to the second bidder is a total price of second bidder's awarded bid to sell minus a total price of second bidder's awarded bid to buy.
13. The computer implemented method of claim 1 comprising determining money values per lot that clear a market at the determined allocation of lots.
14. The computer implemented method of claim 1, comprising presenting a graphic user interface for the first bid group or the second bid group that includes for each bid a first field for receiving whether the first bid is a bid to buy, a bid to sell or a swap, a second field for receiving for the money value per lot, a third field for receiving the maximum number of the type of lot.
15. A system for assigning, pricing exchanging multiple goods, the system comprising:
- a first bid queue for receiving and storing bids to sell, the first bid queue having input and outputs, the input of the first bid queue adapted to receive bids to sell;
- a second bid queue for receiving and storing bids to buy, the second bid queue having input and outputs, the input of the second bid queue adapted to receive bids to buy;
- a constraints engine having inputs and an output for retrieving bids from the first queue and the second queue to determine constraints for controlling an allocation of lots, the inputs of the constraints engine coupled to an output of the first bid queue and an output of the second bid queue;
- a bid processor for processing constraints, bids to buy and bids to sell to generate a list of awarded bids, the bid processor coupled to the output of the constraints engine to receive constraints, the bid processor coupled to the output of the second bid queue to receive bids to buy and the bid processor coupled to the output of the first bid queue to receive bids to sell
16. The system of claim 15 comprising a bid storage for storing awarded bids, the bid storage coupled to bid processor.
17. The system of claim 15 comprising interface module adapted for communication with the bid processor for receiving the list of awarded bids and generating notification messages to the participants corresponding to the awarded bids.
18. The system of claim 15 where in the bid processor generates the list of awarded bids by determining an allocation of lots that awards bids to sellers and buyers such that the allocation maximizes, subject to constraints received from the constraint engine, a total money value of awarded bids to the sellers and buyers.
19. The system of claim 15 further comprising a trader system for entering bids, the trader system adapted to present user interfaces and receive data, the trader system coupled to provide bids to the first bid queue and the second bid queue.
20. The system of claim 15 where in the bid processor implements an assignment exchange.
21. The system of claim 15 where in the bid processor implements an auction.
22. The system of claim 15 where in the bids include an indication specifying whether the bid is to sell or to buy, a type of lot, a maximum number of lots and a money value per lot.
Type: Application
Filed: Dec 22, 2008
Publication Date: Jul 9, 2009
Inventor: Paul R. Milgrom (Stanford, CA)
Application Number: 12/340,999
International Classification: G06Q 30/00 (20060101);