United States Patent Application20020016759
Kind CodeA1
Macready, William G. ; et al.February 7, 2002

Method and system for discovery of trades between parties
Abstract
A system is described which allows buyers to define their preferences and sellers to define their capabilities, then determines which trading points maximize the utility of the buyer. The system suggests trades by exploiting the flexibilities and tradeoffs encoded by both parties, thus providing win-win trades. A second level of optimization ranks the trades with all suppliers, allowing the buyer to rapidly determine the best alternatives. The system allows for rich negotiation spaces and supports continuous, discrete, and range or interval decision factors.

Inventors:Macready; William G. (Sante Fe, NM), El-Beltagy; Mohammed  (Sante Fe, NM), Roy; Barbeau A.  (San Francisco, CA), Anderson; Mark A.  (Santa Fe, NM)
Correspondence Name and Address:1667 K STREET NW SUITE 1000
PENNIE & EDMONDS LLP
WASHINGTON
DC
20006

Series Code:729692
Filed:December 6, 2000
U.S. Current Class:705/37
U.S. Class at Publication:705/37
Intern'l Class:G06F 017/60

Claims


What is claimed in the present invention is:
1. A method for discovery of trades between one or more buyers and one or more sellers comprising the steps of: (a) expressing one or more terms of an ideal trade and one or more flexibilities by at least one of said buyers; (b) expressing one or more capabilities by at least one of said sellers; and (c) determining at least one optimal trade with respect to said one or more terms and said one or more flexibilities of said at least one buyer and said one or more capabilities of said at least one seller.

2. A method for discovery of trades between one or more buyers and one or more sellers as in 1, wherein said one or more terms comprise one or more members of the group consisting of continuous factors, discrete factors and range factors.

3. (New) A system for determining one or more trades between a buyer and one or more suppliers comprising: (a) one or more variables defining a space of negotiation; (b) a utility function of said one or more variables for expressing a utility of the one or more trades to the buyer over the space of negotiation comprising: i. an ideal trade to the buyer defined by one or more ideal values corresponding to said one or more variables; and ii. at least one flexibility in at least one of said variables expressing how the utility of the trade to the buyer varies in the space of negotiation for said ideal trade; (c) one or more capabilities for defining a subspace of the negotiations space wherein the one or more suppliers have an ability to trade; and (d) an optimizer determining at least one of the trades that is optimal with respect to said utility of the buyer subject to the capabilities of the one or more suppliers.

4. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 3 wherein said one or more variables comprise one or more of the following: (a) one or more continuous variables x.sub.1 one or more discrete variables x and one or more range variables r.

5. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 4 wherein each x.sub.i of said one or more continuous variables x has an allowed range over which said each continuous variable x.sub.i may vary x.sub.i.epsilon.X.sub.i=[x.sub.i, {overscore (x)}.sub.i], wherein x.sub.i is a lower bound of said continuous variable x.sub.i and {overscore (x)}.sub.i is an upper bound of said continuous variable x.sub.i;

6. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 5 wherein each .sub.i of said one or more discrete variables has a value from a domain .sub.i.epsilon.D.sub.i=- [1, . . . , d.sub.i] where d.sub.i.gtoreq.0 is an integer giving the number of possible values that said discrete variable .sub.i may assume.

7. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 6 wherein the space of negotiation comprises a tensor product X.sub.1{circle over (x)} . . . {circle over (x)}X.sub.n.sub..sub.c{circle over (x)}D.sub.1{circle over (x)} . . . {circle over (x)}D.sub.n.sub..sub.d. wherein n.sub.c is the number of said continuous variables; n.sub.d is the number of said discrete variables; X.sub.i is said allowed range of said continuous variable x.sub.i; and D.sub.i is said domain of said discrete variable .sub.i.

8. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 4 wherein said utility function u((x, , r)) comprises an expression of a distance function d(x, , r) that defines a distance from said ideal trade in the space of negotiation.

9. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 8 wherein said distance function comprises at least one of the following: a continuous distance, a discrete distance Z(), and a range distance R.

10. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 9 wherein said range distance depends on the value of at least one of said discrete variables .

11. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 10 wherein said range distance is defined as: R(r;)=.SIGMA..sub.i=1.sup.n.sup..sup.rR.sub.i(r.sub.i;) wherein: r is an n.sub.r vector of tables of preferred values of said one or more range variables, r.sub.i=(r.sub.i, {overscore (r)}.sub.i); n.sub.r is the number of said range variables; and {overscore (r)}.sub.1>r.sub.i.
12. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 10 wherein said range distance is a distance d(r.sub.i, r.sub.j) between said range variable r.sub.i=(r.sub.i, {overscore (r)}.sub.i) of the buyer and said range variable r.sub.j=(r.sub.j, {overscore (r)}.sub.j) of at least one of the suppliers.
13. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 12 wherein said distance between said buyer range variables and said supplier range variable d(r.sub.i, r.sub.j) comprises an overlap between said buyer range variable and said supplier range variables, overlap (r.sub.i, r.sub.j).
14. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 13, wherein said overlap is defined as overlap(r.sub.i,r.sub.j)=.function..sub..mu..sub..sub.j.sub.-.sigma..sub.- .sub.j.sup..mu..sup..sup.j.sup.+.sigma..sup..sup.jdxN(x;r.sub.i)N(x;r.sub.- j)where N(x;r.sub.j) is a Gaussian in x centered at .mu..sub.j=(r.sub.j+{overscore (r)}.sub.j)/2 with standard deviation .sigma..sub.j=.alpha.({overscore (r)}.sub.j-r.sub.j); N(x;r.sub.i) is a Gaussian in x centered at .mu..sub.i=(r.sub.i+r.sub.i)/2 with standard deviation .sigma..sub.i=.alpha.({overscore (r)}.sub.i-r.sub.i); and .alpha. is a tunable parameter.
15. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 14 wherein said range distance is defined as 18 R ( r i , r j ) = - ln [ overlap ( r i , r j ) maxOverlap ] wherein maxOverlap = erf [ 1 2
] 2 ( i 2 + j 2 )
16. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 9 wherein said continuous distance is quadratic and is determined by a positive semi definite n.sub.c.times.n.sub.c matrix C.sup.-1 wherein n.sub.c is the number of said continuous variables.
17. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 16 wherein said continuous distance is defined as (x-.mu.()).sup.tC.sup.-1()(x-.mu.())).wherein .mu. is an n.sub.c-vector of ideal values of said continuous variables that may depend on said discrete variable .
18. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 9 wherein said continuous distance is a convex function.
19. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 9 wherein each of said discrete variables .sub.i has a value from a domain D.sub.i.
20. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 19 wherein said discrete distance Z() maps a discrete space D.sub.1 {circle over (x)} . . . {circle over (x)}D.sub.n.sub..sub.d onto the positive real line [0, .infin.] wherein n.sub.d is the number of said discrete variables.
21. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 20 wherein said discrete distance Z() is defined as 19 d ( C rev , C ) = i = 1 D a i w i d i ( C rev , C ) i = 1 D a i ( 14 ) wherein each Z.sub.i,j is a table comprising d.sub.ij.sub.i entries; and d.sub.id.sub.j is the distance if said ith discrete variable has value Xi, conditional on said jth discrete variable having value x.sub.j.
22. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 21 wherein values in said tables Z.sub.i,j are determined from one or more rankings by the buyer.
23. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 22 wherein said discrete distance Z is defined as Z=-1 n[1-Z']. wherein Z' is normalized to lie between 0 and 1.
24. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 23 wherein said normalized distance Z' is a linear scaling.
25. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 23 wherein said normalized distance Z' is an exponential scaling.
26. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 23 wherein said normalized distance Z' is an algebraic scaling.
27. (New) A system for determining one or more trades between a buyer and one or more supplies as in claim 9 wherein said discrete distance Z() is a function of one or more pairs of said discrete variables x.sub.i, x.sub.j.
28. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 8 wherein said distance is generated from a ranking of preferred values for said one or more variables by the buyer.
29. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 4 wherein said utility function u((x, , r)) expresses one or more tradeoffs among the one or more variables x, , r.
30. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 8 further comprising one or more scaling factors, Q.sub.c, Q.sub.d, Q.sub.r to normalize contributions of said at least one continuous variable x, said at least one discrete variable x, and said at least one range variable r to said utility function u((x, , r)) for defining a baseline wherein the one or more variables contribute equally to said utility.
31. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 30 wherein said distance function with said normalized contribution is defined as: d(x, , r))=d.sub.c+Q.sub.dd.sub.d+Q.sub.rd.sub.r wherein d.sub.c is a contribution to said distance by said continuous variables, Q.sub.dd.sub.d is a contribution to said distance by said discrete variables, and Q.sub.rd.sub.r is a contribution to said distance by said range variables.
32. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 30 wherein values of said scaling factors are set so that average distances of said one or more from variables from said corresponding one or more ideal values are equal.
33. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 32 wherein said average distance comprises utility-weighted average distances over said space of negotiation for placing more weight on better ones of the trades.
34. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 33 wherein said utility-weighted average distances are defined as 20 ( d r ) r V uQ r d r exp [ - Q r d r - Q d d d - d c ] r V u exp [ - Q r d r - Q d d d - d c ] = Q r exp [ - Q d d d ] r d r exp [ - Q r d r ] V u exp [ - d c ] exp [ - Q d d d ] r d r exp [ - Q r d r ] V u exp [ - d c ] ( d d ) r V uQ d d d exp [ - Q r d r - Q d d d - d c ] r V u exp [ - Q r d r - Q d d d - d c ] = Q r d d exp [ - Q d d d ] r exp [ - Q r d r ] V u exp [ - d c ] exp [ - Q d d d ] r exp [ - Q r d r ] V u exp [ - d c ] ( d c ) r V ud c exp [ - Q r d r - Q d d d - d c ] r V u exp [ - Q r d r - Q d d d - d c ] = Q r exp [ - Q d d d ] r exp [ - Q r d r ] V u d c exp [ - d c ] exp [ - Q d d d ] r exp [ - Q r d r ] V u exp [ - d c ] wherein .SIGMA..sub.indicates a repeated sum .SIGMA..sub.x.sub..sub.1 . . . .SIGMA..sub.x.sub..sub.n.sub..sub.d over all possible discrete trades; .SIGMA..sub.r indicates a sum over all of said range variables; and Q.sub.c=1 because Q.sub.r is interpreted as Q.sub.r/Q.sub.c and Q.sub.d is interpreted as Q.sub.d/Q.sub.c.
35. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 34 wherein said scaling factors Q.sub.c, Q.sub.d, Q.sub.r are determined from said utility-weighted average distances.
36. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 30 further comprising one or more weights to enable the buyer to weight said contributions of said one or more variables to said utility.
37. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 36 wherein said distance function comprises at least one of the following: a weighted continuous distance, a weighted discrete distance Z.sub.w() and a weighted range distance.
38. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 37 wherein said weighted continuous distance is defined as: (x-.mu.()).sup.tC.sub.w.sup.-1()(x-.mu.()).wherei- n C.sub.w.sup.-1=W.sub.cC.sup.-1W.sub.c; W.sub.c is a diagonal matrix formed from w.sub.c; w.sub.c is an n.sub.c-vector of weight for said continuous variables; and .mu. is an n.sub.c-vector of ideal values for said continuous variables that may depend on said discrete variables .
39. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 37 wherein said weighted discrete distance Z.sub.w() is defined as: Z.sub.w()=.SIGMA..sub.i=1.sup.n.sup..su- p.dw.sub.d,i{w.sub.d,iZ.sub.i(.sub.i)+.SIGMA..sub.j=1(i).sup.n.sup..sup.dw- .sub.d,jZ.sub.i,j(.sub.i, .sub.j)}wherein Z.sub.ij (.sub.i, .sub.j) is the distance if said ith discrete variable has value .sub.i conditioned on said jth discrete variable having value .sub.j; and w.sub.d;i is the ith component of a n.sub.d vector of weights for said discrete variables.
40. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 37 wherein said weighted range distance is defined as R.sub.w(r)=.SIGMA..sub.i=1.sup.n.sup..sup.rw.sub.r;iR.sub.i- (r.sub.i) wherein n.sub.r is the number of said range variables, r is an n.sub.r-vector of tuples of preferred values of said one or more range variables, r.sub.i=(r.sub.i,{overscore (r)}.sub.1); and {overscore (r)}.sub.i>r.sub.i.
41. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 37 wherein said weighted distance function comprises at least one of the following: an n.sub.c-vector of weights for said continuous variables, w.sub.c, an n.sub.d-vector of weights for said discrete variables, and an n.sub.r-vector of weights for said range variables.
42. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 41 wherein said weights are normalized so that C.sub.w.sup.1=W.sub.cC.sup.-1W.sub.c
43. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 41 wherein values for said weights depend on values of said discrete variables, .sub.i.
44. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 4 further comprising a total cost of ownership function expressing a total cost of membership to the buyer that varies over the negotiation space.
45. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 44 wherein said total cost of ownership function comprises one or more cost contribution.
46. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 45 wherein said one or more cost contributions comprise one or more of the following: piece part costs, freight costs, setup costs, quality assurance costs, repair costs, and revenue generated from the trade.
47. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 44 wherein said total cost of ownership function is defined as C.sub.0(x, , r; .beta.) wherein .beta. represents one or more other factors comprising one or more of the following: forecasted demand and current inventory levels.
48. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 47 wherein said one or more other factors are extracted from at least one of the following: an enterprise resource planning system and a supply chain management system.
49. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 48 wherein said one or more other factors are extracted in real time for enabling continuous, real time optimization.
50. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 47 wherein minimization of said cost of ownership function C.sub.0(x, , r; .beta.) determines said ideal trade to the buyer: x.sub.opt(.beta.), .sub.opt(.beta.), r.sub.opt(.beta.)
51. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 50 wherein said at least one flexibility is determined by a Hessian matrix H=[h.sub.i;j]wherein h.sub.i;j is defined as 21 h i , j = 2 C o ( x , , r ; ) x i x j x = x opt ( ) , = opt ( ) , r = r opt ( )
52. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 3 wherein said one or more capabilities comprise one or more of the following: price discounts on large volume orders, and variation in delivery as a function of price.
53. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 8 wherein said one or more capabilities specify one or more of the following: one or more continuous capabilities, one or more discrete capabilities, and allowed values for said range variables.
54. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 53 wherein said allowed values for said ranges variables contribute to said distance function.
55. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 53 wherein said allowed values for said range variables comprise one or more pairs (r.sub.j, {overscore (r)}.sub.j) wherein r.sub.j is a lower bound for the jth one of said range variable and {overscore (r)}.sub.j is an upper bound for the jth one of said range variable.
56. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 52 wherein said continuous capabilities are one or more responses from said suppliers to a request for the buyer.
57. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 56 further comprising a vector-valued function f(x.sup.(b), x.sup.(s), ) to determine said one or more supplier responses wherein x.sup.(b) is said buyer request and x.sup.(s) is at least a previous one of said supplier responses.
58. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 57 wherein said vector-valued function f(x.sup.(b), x.sup.(s), ) comprises one or more components f.sub.i for corresponding ones of said continuous variables: x.sub.i.sup.(s)=f.sub.i(- x.sup.(b), x.sup.(s)).
59. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 52 wherein said one or more components, f.sub.i are piecewise linear functions.
60. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 59 wherein said one or more components, f.sub.i are specified with one or more breakpoints.
61. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 53 wherein said one or more discrete capabilities of said suppliers comprise one or more constraints from said suppliers on said one or more discrete variables.
62. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 3 wherein said one or more capabilities are represented by one or more piecewise linear functions.
63. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 4 further comprising one or more constraints involving said one or more variables which must be satisfied for the buyer and at least one of the sellers to trade.
64. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 63 wherein said one or more constraints comprise one or more of the following: discrete constraints for expressing one or more allowed and/or disallowed combinations of values for said discrete variables and continuous constraints for setting one or more requirements on said continuous variable x.
65. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 64 wherein said continuous constraints from the buyer are linear.
66. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 64 wherein said continuous constraints comprise at least one of inequality constraints and equality constraints.
67. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 64 wherein said continuous constraints depend on values of said discrete variables, .
68. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 63 wherein said one or more constraints comprise one or more of the following: required delivery time, and an unacceptable color.
69. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 64 wherein at least one of said continuous constraints depend on values of at least one of said discrete variables .
70. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 3 wherein said determining at least one of the trades that is optimal step comprises the steps of: selecting one of said suppliers; determining at least one of the trades that corresponds to a maximum value of said utility of the buyer and that is within the capabilities of said selected supplier.
71. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 70 wherein said determining at least one of the trades that is optimal step further comprises the steps of: selecting another of said suppliers; and repeating said determining at least one of the trades step for said another selected supplier.
72. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 71 wherein said determining at least one of the trades that is optimal step further comprises the steps of: choosing at least of the suppliers having the highest said maximum value of said utility of the buyer.
73. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 72 further comprising a subsystem to perform said determined trade between the buyer and the chosen supplier.
74. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 3 further comprising a subsystem to perform said determined trade.
75. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 3 wherein said utility comprises at least one of the following: quantitative factors and qualitative factors.
76. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 4 wherein said determining at least one of the trades that is optimal step further comprises the step of: minimizing a distance from said ideal trade.
77. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 76 wherein said distance comprises one or more of the following: a continuous component, a discrete component, and a range component.
78. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 77 wherein said minimizing a distance from said ideal trade step comprises the steps of: determining values of said continuous variables that minimize said distance for one or more settings of said discrete variables.
79. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 78 further comprising the steps of: representing said distance by a function of said discrete variables; and determining an optimal one of said settings of said discrete variables by minimizing said function of said discrete variables.
80. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 78 wherein said determining values for said continuous variable step is performed under one or more constraints on said continuous variables.
81. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 79 wherein said representing said determining an optimal one of said settings of said discrete variables step is performed under one or more constraints on said discrete variables.
82. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 4 further comprising means for aggregating at least one of the suppliers to participate in said trade with the buyer.
83. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 82 wherein said aggregating means perform the steps of: determining one or more subsets of said suppliers that satisfy one or more constraints on said discrete variables.
84. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 83 wherein said one or more discrete variable constraints comprise at least one of the following: buyer discrete variable constraints and seller discrete variable constraints.
85. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 83 further comprising the step of optimizing over said continuous variables to determine an optimal one of said subset of buyers.
86. (New) A grammar for a system that determines one or more trades between a buyer and one or more suppliers comprising: (a) one or more capability rules representing one or more capabilities of said suppliers to trade with the buyer; (b) one or more preference rules representing one or more preferences of the buyer; and (c) one or more match rules representing matches between said one or more capabilities and said one or more preferences.
87. (New) A grammar for a system that determines one or more trades as in claim 86 wherein said one or more capabilities of said suppliers are specific to particular ones of said buyers.
88. (New) A grammar for a system that determines one or more trades as in claim 86 wherein said capability rules comprise one or more of the following: (a) a discrete variable rule for representing a description of a discrete variable; (b) a continuous variable rule for representing a description of a continuous variable; and (c) a range variable rule for representing a description of a range variable.
89. (New) A grammar for a system that determines one or more trades as in claim 88 wherein said description of the continuous variable comprises at least one of a minimum value and a maximum value for the continuous variable.
90. (New) A grammar for a system that determines one or more trades as in claim 88 wherein said one or more capability rules comprise one or more constraint rules representing constraints on value of at least one of said discrete variables, and said continuous variables.
91. (New) A grammar for a system that determines one or more trades as in claim 89 wherein said one or more constraint rules comprise at least one matrix for representing said constraints.
92. (New) A grammar for a system that determines one or more trades as in claim 90 wherein said constraints on said values of said discrete variables comprise one or more permitted value continuations for the discrete variables.
93. (New) A grammar for a system that determines one or more trades as in claim 88 wherein said range variable description comprises at least one of a minimum value and a maximum value for the range variable.
94. (New) A grammar for a system that determines one or more trades as in claim 90 wherein said constraints on said values of said continuous variables comprise one or more of the following: an inequality, an equality, a linear constraint, and a non-linear constraint.
95. (New) A grammar for a system that determines one or more trades as in claim 86 wherein said one or more capability rules further comprise an aggregation flag indicating a willingness of the supplier to participate in an aggregation for the buyer.
96. (New) A grammar for a system that determines one or more trades as in claim 86 wherein said preferences of the buyer are specific to at least one of said suppliers.
97. (New) A grammar for a system that determines one or more trades as in claim 86 wherein said preference rules comprise one or more of the following: (a) a continuous variable rule for representing a description of a continuous variable; (b) a discrete variable rule for representing a description of a discrete variable, and (c) a range variable rule for representing a description of a range variable.
98. (New) A grammar for a system that determines one or more trades as in claim 97 wherein said preference rules further comprise one or more weights for representing an importance of at least one of said discrete variable, said continuous variable and said range variable.
99. (New) A grammar for a system that determines one or more trades as in claim 97 wherein said preference rules comprise at least one of the following: (a) a first field representing an ideal value for said range variable; (b) a second field representing an ideal value for said continuous variable; and (c) a matrix representing one or more tradeoffs of said continuous variables.
100. (New) A grammar for a system that determines one or more trades as in claim 97 wherein said preference rules comprise a matrix representing one or more tradeoffs of said discrete variables.
101. (New) A grammar for a system that determines one or more trades as in claim 97 further comprising at least one aggregation rule comprising at least one of the following: (a) a list of one or more of said suppliers that can participate in the one or more trades with the buyer; (b) one or more contribution type fields for specifying contribution types of said or more continuous variables; and (c) one or more constraints around the aggregation.
102. (New) A grammar for a system that determines one or more trades as in claim 101 wherein said contribution types comprise at least of the following: sum, average and zero.
103. (New) A grammar for a system that determines one or more trades as in claim 101 wherein said constraints around the aggregation comprise requiring that all orders arrive on the same day.
104. (New) A grammar for a system that determines one or more trades as in claim 99 wherein said one or more preferences rules further comprise: (a) at least one mask for allowing at least one of said ideal value for said range variable, said continuous variable, and said one or more tradeoffs of said continuous variables to be dependent on values of said discrete variables.
105. (New) A grammar for a system that determines one or more trades as in claim 88 wherein said one or more match rules comprise at least one of the following: (a) a single supplier match rule describing at least one optimal one of said one or more trades with a single one of the suppliers; and (b) an aggregate supplier match rule describing at least one optimal one of said one or more trades with an aggregation of said suppliers;
106. (New) A grammar for a system that determines one or more trades as in claim 105 wherein said single supplier match rule comprises at least one of the following: (a) an identifier for indicating said supplier of said trade; (b) a utility for indicating a utility of said trade; (c) a feasibility flag for indicating whether a feasible one of the trades with said single supplier was found; (d) a continuous variable field indicating a value for said continuous variable; (e) a discrete variable field indicating a value for said discrete variable; (f) a range variable field indicating a value for said range variable; and (g) a cost factors field indicating constituent costs contributing to a total cost of ownership at said trade.
107. (New) A grammar for a system that determines one or more trades as in claim 104 wherein said aggregate supplier match rule comprises at least one of the following: (a) a utility field indicating a utility of said trade; (b) a feasibility field indicating whether a feasible one of said trades with the aggregation of suppliers was found; (c) a cost factors field indicating constituent costs contributing to a total cost of ownership at said trade; and (d) a list of one or more trade parameters for said suppliers in the aggregation.
108. (New) A grammar for a system as in claim 107 wherein said list of trade parameters comprise at least one of the following: (a) an identifier for identifying one of said suppliers in the aggregation; (b) a continuous variable field indicating a value for said continuous variable; (c) a discrete variable field indicating a value for said discrete variable; (d) a range variable field indicating a value for said range variable.
109. (New) A method for determining at least one preference by one or more buyers for one or more goods and/or services from one or more sellers comprising the steps of: (a) specifying one or more initial preferences by said one or more buyers; (b) responding to said one or more initial preferences by said one or more sellers with one or more offers; and (c) revising said one or more initial preferences based on said one or more offers by said one or more buyers to specify one or more revised preferences.
110. (New) A method for determining at least one preference by one or more buyers for one or more goods and/or services from one or more sellers as in claim 109 further comprising the steps of: (a) responding to said one or more revised preferences by said one or more sellers with one or more revised offers; and (b) revising said one or more revised preferences based on said one or more revised offers by said one or more buyers.
111. (New) A method for determining at least one preference by one or more buyers for one or more goods and/or services from one or more sellers as in claim 110 further comprising the steps of iteratively repeating said responding to said one or more revised preferences step and said revising said one or more revised preferences step to implicitly determine said one or more preferences by said one or more buyers.
112. (New) A method for determining at least one preference by one or more buyers for one or more goods and/or services from one or more sellers as in claim 109 wherein said one or more initial preferences and/or said one or more revised preferences comprise one or more dimensions.
113. (New) A method for determining at least one preference by one or more buyers for one or more goods and/or services from one or more sellers as in claim 112 wherein said one or more initial preferences and/or said one or more revised preferences comprise one or more weights corresponding to said one or more dimensions wherein each of said weights specifies an importance of said corresponding dimension to the one or more buyers.
114. (New) A method for determining at least one preference by one or more buyers for one or more goods and/or services from one or more sellers as in claim 109 wherein said one or more initial preferences and/or said one or more revised preferences comprise one or more constraints.
115. (New) A method for determining at least one preference by one or more buyers for one or more goods and/or services from one or more sellers as in claim 114 further comprising the step of: (a) filtering said one or more offers from the one or more sellers to pass only those of said one or more offers that satisfy said one or more constraints
116. (New) A method for determining at least one preference by one or more buyers for one or more goods and/or services from one or more sellers as in claim 112 further comprising the step of: (a) sorting said one or offers at the one or more buyers based on at least one of said dimensions.
117. (New) A method for determining at least one preference by one or more buyers for one or more goods and/or services from one or more sellers as in claim 112 further comprising the steps of: (a) computing a distance between said one or more initial preferences and said one or more offers.
118. (New) A method for determining at least one preference by one or more buyers for one or more goods and/or services from one or more sellers as in claim 117 further comprising the steps of: (a) sorting said one or more offers at the one or more buyers based on said distance.
119. (New) A method for determining at least one preference by one or more buyers for one or more goods and/or services from one or more sellers as in claim 112 further comprising the steps of: (a) computing a distance function between said one or more revised preferences and said one or more offers.
120. (New) A method for determining at least one preference by one or more buyers for one or more goods and/or services from one or more sellers as in claim 119 further comprising the steps of sorting said one or more offers at the one or more buyers based on said distance.
121. (New) A method for determining at least one preference by one or more buyers for one or more goods and/or services from one or more sellers as in claim 117 wherein said distance is defined as 22 Z ( ) = i = 1 n d { Z i ( i ) + j = 1 ( i ) n d Z i , j ( i , j ) } wherein C.sub.rev is said revised preference; C.sub..alpha. is said one or more offers; D is the number of said dimensions; i is an index of said dimensions; .alpha..sub.i is a binary variable indicating which of said dimensions are used; w.sub.i is one of said weights corresponding to said ith dimension; and d(C.sub.rev, C.sub..alpha.) is a component of said distance for said ith dimension.
122. (New) A method for determining at least one preference by one or more buyers for one or more goods and/or services from one or more sellers as in claim 120 wherein said ith component of said distance comprises at least one of a similarity component and a brand name component.
123. (New) A method for determining at least one preference by one or more buyers for one or more goods and/or services from one or more sellers as in claim 122 wherein said similarity component is assymetric.
124. (New) A method for supplying one or more goods and/or services by one or more suppliers in fulfillment of one or more orders comprising the steps of: (a) determining one or more components of the goods and/or services that are needed for the fulfillment of said one or more orders of a first one of said suppliers (b) determining one or more constraints on the fulfillment of said one or more orders; (c) sending one or more requests for said one or more components to at least one other of said one or more suppliers; and (d) determining one or more combinations of one or more responses to said one or more requests for said one or more components, that satisfy one or more contraints.
125. A method for supplying one or more goods and/or services as in claim 124 wherein said determining one or more components of the goods and/or services step comprises the step of determining those of said one or more components that are not present at said first supplier by examining a state of said first supplier.
126. (New) The method of supplying one or more goods and/or services as in claim 125 wherein said state of said first supplier comprises one or more of the following: an inventory of said one or more components of said first supplier and one or more references to unwanted ones of said suppliers.
127. (New) The method of supplying one or more goods and/or services as in claim 124 wherein said constraints comprise one or more of the following: one or more logical constraints and one or more numerical constraints.
128. (New) A method for supplying one or more goods and/or services as in claim 127 wherein said logical constraints are expressed in at least one of linear logic and Boolean logic.
129. (New) A method for supplying one or more goods and/or services as in claim 127 wherein said logical constraints comprise a logical AND of two or more events in two or more markets.
130. (New) A method for supplying one or more goods and/or services as in claim 129 wherein said two or more events comprise an order for at least one of said components and transportation of said at least one component.
131. (New) The method for supplying one or more goods and/or services as in claim 127 wherein said numerical constraints comprise an ordering of two or more events in two or more markets.
132. (New) The method for supplying one or more goods and/or services as in claim 131 wherein said two or more events comprise a completion of at least one of said components and an available pick-up time for transportation of said at least one component.
133. (New) The method for supplying one or more goods and/or services as in claim 127 wherein said numerical constraints comprise at least one requirement that a total expenditure on said components is less than a threshold.
134. (New) The method for supplying one or more goods and/or services as in claim 124 further comprising the step of: (a) ranking said one or more combinations that satisfy said one or more constraints according to one or more criteria.
135. (New) The method for supplying one or more goods and/or services as in claim 134 wherein said criteria comprise a reliability of said one or more suppliers.
136. (New) The method for supplying one or more goods and/or services as in claim 124 wherein said one or more requests for said one or more components comprise a time-out period.
137. (New) The method for supplying one or more goods and/or services as in claim 136 further comprising the step of: (a) filtering those of said responses that arrive after said time-out period.
138. (New) The method for supplying one or more goods and/or services as in claim 124 wherein said suppliers operate in one or more markets.
139. (New) The method for supplying one or more goods and/or services as in claim 138 wherein said one or more requests comprise a first identifier and a second identifier wherein said second identifier identifies said market of said first supplier.
140. (New) The method for supplying one or more goods and/or services as in claim 139 further comprising the step of forecasting demand at said one or more suppliers.
141. (New) The method for supplying one or more goods and/or services as in claim 140 wherein said forecasting demand step comprises the step of: (a) counting those of said requests having different ones of said first identifier and said second identifier for avoiding spurious amplication of the demand.

Description



1. RELATED APPLICATIONS

[0001] This application claims priority to provisional application Ser. No. 60/168,754 filed on Dec. 6, 1999, titled, "An E-Commerce Infrastructure for Value Chains", the contents of which are herein incorporated by reference. This application also claims priority to provisional application Ser. No. 60/194,880, titled, "Method and System to Mediate Commerce", filed on Apr. 6, 2000, the contents of which are herein incorporated by reference.

2. FIELD OF THE INVENTION

[0002] The invention relates to a method and system for discovery of trades between parties. In particular, the invention is a system which allows buyers to define their preferences and sellers to define their capabilities, then determines which trading points maximize the utility of the buyer. The system suggests trades by exploiting the flexibilities and tradeoffs encoded by both parties, thus providing win-win trades. A second level of optimization ranks the trades with all suppliers, allowing the buyer to rapidly determine the best alternatives. The system allows for rich negotiation spaces and supports continuous, discrete, and range or interval decision factors.

3. BACKGROUND OF THE INVENTION

[0003] The present invention relates to methods of automatic exploration and exploitation of the flexibilities possessed by negotiating parties to uncover improved win-win agreements. The invention describes computationally efficient mechanisms that are applicable whether there are one or many selling parties. The precise number and types of negotiating dimensions are irrelevant as long as they are numerical. Thus the present invention applies equally to the optimal determination of terms in the purchase of a commodity or an arbitrarily complex artifact.

[0004] The past 5-10 years have seen remarkable growth in software tools to help firms with enterprise-wide planning (ERP software) and supply chain management (SCM software). While these tools do a wonderful job at integrating disparate data sources within and between firms, the opportunity exists for significant further cost reductions.

[0005] The same time period has also seen a tremendous rise in the widespread use of the internet by both consumers and businesses. Forecasters are predicting that within a few years e-commerce between businesses (B2B) and between consumers and businesses (B2C) will grow to in excess of a trillion dollars per year in annual revenues.

[0006] Electronic markets have proliferated over the last few years with the advent of B2C (business-to-consumer) and B2B (business-to-business) electronic commerce. Such market places have yielded significant cost savings by lowering the transaction costs between buyers and sellers. Buyers have also profited through increased competition between suppliers. However, electronic markets have hurt suppliers, since the zero-sum negotiation over price has been at their expense. The present invention describes a tool whereby cost savings for both parties are derived from the discovery of win-win trades. Fundamentally, the system works by allowing trading parties to describe their desired trade across multiple dimensions and to express their flexibility around this ideal trade. Through an algorithmic exploration of their flexibilities, the present invention can discover trades that are near the ideal trades of both parties, enabling both to win.

[0007] The adoption of B2B and B2C electronic commerce was facilitated by the migration of catalogues online. This familiar method of presentation ameliorated the significant cultural change to electronic trade. For the foreseeable future, electronic commerce will be dominated by online catalogs. At present, online catalogues are direct translations of their hardcopy counterparts where the attributes of a product are described and a price quoted. Inevitably however, online catalogs will become more expressive. Catalog entries will be able to represent price breaks for large quantity orders, lot sizes, etc. Thus it is important that any software (like the present invention) that uncovers mutually beneficial trading scenarios is able to operate with such catalogs. Consequently, in the present invention there is an asymmetry between buyer (usually a human) and seller (usually an online catalog).

[0008] One of the reasons catalogs have come to dominate electronic commerce is that the types of goods that can be represented in catalogs are simple. Whether the product is pens or paper clips, different vendor's offers differ little from each other (a pen is a pen is a pen), and a quick scan of a catalog gives a buyer enough information to make an informed purchase. These types of goods are low margin and inexpensive. In contrast, the vast amount of purchasing between businesses involves materials which are directly connected with business operations--car parts, turbines, etc. Such direct goods are the future of electronic commerce. Unlike present-day engines, any truly useful procurement tool must be able to support direct materials with complex attributes and complex inter-relationships between its components.

[0009] Electronic commerce offers unprecedented opportunities for more informed decision-making for both buyers and sellers. The past few decades have seen the widespread adoption of enterprise resource planning (ERP) systems, to the point that now almost every major company has some form of ERP software. ERP functions as the digital nervous system of a company, transmitting and logging information between the company's many different business functions. ERP software keeps track of inventory, monitors the state of purchase orders, signals when a company should reorder direct and indirect materials, and a myriad of other functions. Consequently, ERP databases are a rich source of information to optimize a company's operations. Yet today this information is rarely used to make more informed buying and selling decisions. The present invention can utilize such information sources to optimize a company's interactions with suppliers and customers.

[0010] One important manner in which this optimization can occur is through an analysis of all cost factors. Current buying and selling practices often focus on limited goals, e.g., minimize the total purchase price. Myopic purchasing strategies often result in higher total cost of ownership when all cost factors relevant to a product in its lifetime of use are included. These other cost factors can be significant. Why save the money in taking delivery two days late if the receiving docks will be full at that time and an additional shift needs to be hired to clear the docks? Why order the cheaper drill bit if it is much more expensive to replace when it breaks? The present invention improves trades by minimizing the total cost of ownership of a product, yielding significant savings to its users. Many total cost factors are difficult to quantify--e.g. what is the cost of dealing with a unionized versus a non-unionized supplier? Consequently, the present invention supports qualitative (best guesses and intuition) as well quantitative factors.

[0011] All companies are situated in a supply or value chain. At each step in the chain, a company purchases from its suppliers, transforms these inputs, and sells the output to its customers. The termination of the supply chain is the sale of the final product to the end consumer. Since the only influx of external capital comes from the end consumer, companies have realized that they compete not only as individuals but also as entire supply chains. As result, software products have recently become available which attempt to streamline the operations of links within the entire supply chain. This software, variously called supply chain optimization (SCO) or advanced planning and optimization (APO), operates on the basis of forecasted demand at various points within the supply chain. Based on these predictions, plans are generated telling companies how much to produce and how to schedule their operations. SCO systems are a valuable source of intra-company information - data the present invention capitalizes on. Because SCO software relies on forecasted demand, it is only as helpful as the forecast is accurate, and, unfortunately, in many cases demand is very difficult to predict. How can the software know that laundry detergent will go on special at grocery stores in the Northeast in 7 weeks? As a result of the volatility in demand and the many other unpredictable perturbations that plague supply chains, companies keep significant buffers in the form of inventories. In addition to planning, businesses must also be able to adapt to unplanned effects. Such adaptation requires flexibility and a means to exploit that flexibility. The present invention exploits the flexibility of trading parties to streamline the operations of supply chains by smoothing the boundaries between trading parties.

[0012] The present invention is therefore a system to allow trading parties to express trading desires and constraints across many and varied different factors. These trading preferences are informed by many different data sources to optimize for a company's internal operations and its connections to it's supply chain through an analysis including total cost factors. The flexibility expressed by all trading parties is exploited to locate win-win opportunities for all parties if they exist.

4 SUMMARY OF THE INVENTION

[0013] We describe the present invention in its application to facilitating trade between buyers and sellers, but note that the mechanisms described are much more general. We can easily imagine, for example, using the present invention to match individuals (with the desires and skills) to projects.

[0014] The inspiration for the present invention comes from utility theory developed by economists since the 1960's. Since we are interested in multiple dimensions of negotiation, we draw from the multi-attribute utility theory literature..sup.1 Utility is an abstract concept which has been formalized in various ways. For the present purposes utility, u, is a number between 0 and 1 representing a party's willingness to trade. Larger values indicate a greater willingness. .sup.1For a good introduction to multi-attribute utility theory see [1].

[0015] 4.1 The Negotiation Space

[0016] In any negotiation the parties must come to agreement on the factors requiring negotiation. We call these factors dimensions or variables. As an example, when purchasing a car, the buyer may be concerned with price, time of delivery, and color. Each factor price, time, and color is a dimension. Most dimensions can be classed as one of three types: continuous, discrete, or range/interval. A continuous dimension is one like price for which the buyer's utility varies smoothly across that dimension. The buyer's utility at $23 001.00 is almost the same as the utility at $23 000. Color is a discrete dimension. Since the car may only be available in black, white, and silver, the domain of this dimension is the finite set of values {black, white, silver}. Moreover, the buyer's utility may be quite different for the three colors. The third class of dimensions is called interval dimensions. An interval dimension arises often in B2B negotiations. If a machined part is built to some tolerance (e.g., the inner diameter of a screw is between 24.5
and 25.5 mm), the range of variability in the dimension is specified as an interval. In the language of statistical quality control, a certain percentage of the machined parts will fall in this range. These three broad classes of variables capture almost all the types of attributes relevant to B2B negotiation.

[0017] The present invention operates over any number of continuous, discrete, and range or interval variables. We call the negotiation space X and any point in the negotiation space (x, , r) .epsilon. X. It is important to recognize that the single trading point (x, , r) may have multiple components, e.g., price=$23 000, time of delivery=3 weeks, color =black.

[0018] In the present invention, the space of negotiation is agreed upon by all parties involved prior to the commencement of any negotiation. We can, however, imagine more dynamic situations in which dimensions are introduced and discarded over time.

[0019] 4.2 The Buyer's Utility Function

[0020] A party defines it's utility function over this space so that every (x, , r) is assigned a utility number indicating the party's willingness to trade. We indicate the utility function as u((x, , r)). A great deal of work has been done on the appropriate form for utility functions. In the present invention, we take a simple form for the utility function for two reasons. First, we would like the form of the utility to be conducive to rapid computation. Second we would like the utility to be simple enough to be easily understood by and elicited from users of the invention. With no loss in generality, we write the utility function as u((x, , r))=exp(-d((x, , r))) where d(x) is interpreted as the distance of trading point (x, , r) from the most preferred trade.

[0021] So that we can operate against seller catalogs, only the buyer needs to define a utility function. Across the continuous dimensions, the buyer's utility is defined by specifying the most preferred (or ideal) continuous dimensions and the manner in which utility drops off as we move away from this ideal. For the discrete dimensions, the utility is specified in tabular form since there are a finite number of alternatives. Again, the buyer must specify it's ideal discrete values and how utility decays away from those values. In section 6.1 we describe how this is accomplished. The range dimensions contribute to utility similarly; the buyer specifies an ideal range and the utility decays for ranges other than the ideal according to their distance from the ideal.

[0022] The utility function can also express tradeoffs between variables, e.g., I may take delivery in 5 weeks if the price drops to $20 000, or I may accept the white car if I can take delivery in 2 weeks. The tradeoffs may be between pairs of continuous dimensions (as in the first case), between pairs of discrete variables, or between continuous and discrete variables (as in the second case).

[0023] 4.2.1 Normalization and Weighting

[0024] When utility is defined over different types of variables, it is important to normalize the contributions of each variable so that the buyer can weight the importance of the various contributions to utility. This is a difficult problem. How should a buyer's color preferences be normalized so that they can be traded off against time of delivery? The present invention solves this problem by requiring that the average distance of any negotiation variable from its ideal value is the same for all dimensions. Since the buyer is more interested in those regions of the negotiation space where the utility is high, the average is weighted by utility. This procedure defines a manner in which to define a baseline where all dimensions contribute equally. Given this baseline, the buyer can then weight the various contributions and obtain useful results.

[0025] 4.2.2 Utility Elicitation

[0026] Since utility is fundamental to the present invention, its elicitation from the buyer is important. Utility may be defined using any of a number of sources:

[0027] 1. graphical user interfaces associated with the invention

[0028] 2. standard benchmark criteria applicable to the domain

[0029] 3. formal methodologies like the analytical hierarchical process [2], or discrete choice analysis [3]

[0030] 4. inferred through models

[0031] We expand briefly upon method 4. As discussed in the background section, it is important to buyers to minimize their total cost of ownership. If we have a function representing these costs as a function of the negotiation variables, and perhaps other factors, this function can be used to infer a utility function which will act to minimize the total costs. Later we describe how this can be accomplished.

[0032] 4.3 A Supplier's Capabilities

[0033] As noted previously, suppliers are treated differently from buyers so that the tool can operate against catalog information with no human intervention required on the part of the seller. In fact, we do not require sellers to define a utility at all.

[0034] A supplier cannot offer deals at all points within the negotiation space X, e.g., he certainly can't offer the black car tomorrow for free! A capability then represents the ability of a supplier to deliver and defines a subspace of X. It can include such things as price discounts on large volume orders, variation in delivery time as a function of price, etc. Since these relationships are already specified by businesses in terms of simple rules like "the price per unit is $10.00 if 1 to 999
units are ordered and $9.50 per unit if 1000 or more units are ordered", suppliers' capabilities are represented in the present invention by piecewise linear functions.

[0035] 4.4 Negotiation Constraints

[0036] Both parties may have constraints which must be satisfied in order for them to trade. For example, the buyer may not buy the car unless he gets it within 6 weeks, or he may not purchase the car if it is available only in white. These are examples of continuous and discrete constraints, respectively. A continuous constraint sets a requirement on the continuous variables. In the present invention, continuous constraints must be either linear or quadratic. Discrete constraints involve discrete variables. A discrete constraint can be expressed as a list of the allowed (or disallowed) combinations of the discrete variables for which the trade will be acceptable. For example, if the buyer would accept either the black or the silver car, the constraint would list both these colors as viable. It is important to note that both continuous and discrete constraints may involve one or more variables. We can also express constraints involving both types of variables by allowing the continuous constraints to differ depending on the discrete variables.

[0037] 4.5 Utility Optimization

[0038] With the major components of the invention in place, we describe how the overall system works. As a procurement tool for the buyer, there are two levels of optimization. First, for any given supplier we maximize the buyer's utility, subject to the supplier's capabilities to find that trade which makes the buyer as happy as possible. Since we are optimizing within a supplier's capabilities, the supplier has expressed a willingness to complete the trade at whatever point is determined to be optimal. The tool then optimizes across suppliers to rank them according to utility at the optimal point. A graphical user interface allows a buyer to investigate the trades suggested by the tool by sorting according to any dimension or by the overall utility.

[0039] Utility, while a useful concept in assessing an overall score, may be of limited use to a buyer due to its abstract meaning. Consequently, we can also apply the total cost of ownership function to the results to rank order the suggested trades according to their various cost components. Recall that for any trade x .epsilon. X, the total cost of ownership function returns the various cost contributions. This additional information aids the buyer in his purchasing decision. The utility number for each trade is still useful because the total cost of purchase function includes only those cost factors which can be quantified, whereas the utility also includes "softer" qualitative factors.

[0040] 4.5.1 Aggregation

[0041] In addition to optimizing against one supplier at a time, the present invention can also be used to optimize against an arbitrary aggregation of suppliers. This is important if, for example, no single seller can supply the large volume requested by a buyer. In this mode of operation, the buyer specifies sets of suppliers participating in the aggregation and the dimensions over which aggregation can occur, and the tool finds the optimal combination in which to distribute the volume dimension over the allowed suppliers.

[0042] 4.6 An e-Commerce Infrastructure for Value Chains

[0043] This patent application also describes an integrated solution for B2C and B2B e-commerce that would be built on top of ERP and SCM software and which would provide a number of compelling benefits to companies. Amongst the benefits are:

[0044] multidimensional markets which allow consumers to implicitly define their preferences over many criteria. This allows both consumers to express what it is they really value, allows companies to position themselves clearly in the space of value, and allows for efficient matches between trading partners

[0045] optional anonymity of market participants and their trading desires when that is appropriate.sup.2 .sup.2Anonymity is not, however, a pre-requisite of the proposed invention.

[0046] explicit pricing of the flexibility possessed by the consumer and all businesses in the supply chain which allows for more robust operation of the entire supply chain. This concept is very different from other types of markets (e.g. auctions, reverse auctions, exchanges) where transactions are specified exactly. The flexibility introduced by any party, whether consumer or supplier, is propagated and exploited through the entire supply chain.

[0047] capture and quantification of true consumer demand leading to improved forecasting and product development by suppliers

[0048] automated markets that integrate supply chain networks through coordination across and within company boundaries. Coupling of the automated markets with local (i.e. at the company level) optimization tools fed by real-time company data allows for optimization and cost savings across the entire supply chain.

[0049] It should be recognized that supply chains may be very different in the near future. Current supply chains are based on physical objects made valuable through a sequence of transformations resulting in a product purchased by an end consumer. With the move to an information economy the supply chain of the near future may not involve physical goods at all. In particular the entire supply chain may consist of value adding operations converting raw data to consumer-desired information. Such supply chains will have the same coordination problems current ones do. Our proposed solution applies equally well to these future supply chains and by supply chain we mean this more general notion.

5 BRIEF DESCRIPTION OF THE FIGURES

[0050] FIG. 1 shows an architecture for the invention.

[0051] FIG. 2 shows a schematic of a buyer-specific capability with examples indicating potential input.

[0052] FIG. 3 shows a schematic of a supplier-specific preference with examples indicating potential input.

6 DETAILED DESCRIPTION

[0053] 6.1 Theory

[0054] In this section we outline the mathematical foundations of the optimization process in sufficient detail to allow for computer implementation.

[0055] 6.1.1 The Negotiation Space

[0056] In Table 1 we define the parameters which collectively define the space of negotiation X. For each of the n.sub.c continuous variables, we specify an allowed range over which that continuous dimension may vary as x.sub.i .epsilon. X.sub.i=[x.sub.i, {overscore (x)}.sub.i], where x is the n.sub.c-vector of lower continuous bounds

1TABLE 1
Definition of the negotiation search space. n.sub.c number of continuous dimensions n.sub.d number of discrete dimensions n.sub.r number of range dimensions x n.sub.c-vector of values for continuous dimensions .kappa. n.sub.d-vector of values for continuous dimensions .chi..sub.i value of ith continuous variable .kappa..sub.i value of ith discrete variable

[0057] and {overscore (x)} is the n.sub.c-vector of upper continuous bounds. Each discrete variable assumes a value from within its domain n.sub.i .epsilon. D.sub.i. Without loss of generality, we label the domain of discrete variable i by D.sub.i=[1, . . . , d.sub.i] where d.sub.i.gtoreq.0 is an integer giving the number of possible values discrete variable .sub.i may assume.

[0058] With these definitions, we define the space of negotiation by the tensor product X=X.sub.1 {circle over (x)} . . . {circle over (x)} X.sub.n.sub..sub.c {circle over (x)} D.sub.1 {circle over (x)} . . . {circle over (x)} D.sub.n.sub..sub.d. Range variables are treated separately and not negotiated over.

[0059] 6.1.2 The Utility Function

[0060] The utility function is a mapping from X into the interval [0, 1]. As indicated earlier we assume the utility to have the form u(x, )=exp[-d(x, )] where d(x, ) is interpreted as a distance. In what follows we will assume that in its simplest form the distance function has the form

d(x,,r)=(x-.mu.)).sup.tC.sup.-1(n)(x-.mu.(x))+Z(n)+R(r; x).

[0061] Each contribution to the distance function is positive. We consider each contribution to the distance in turn, beginning with the range variable contribution R(r; ).

[0062] First, we note that the range distance depends on the setting of the discrete variables. This allows the buyer to express different preferences for the range variables depending on discrete factors. The total range distance is summed up over all possible range variables so that R(r; )=.SIGMA..sub.i=1.sup.n.sub..sub.r R.sub.i(r.sub.i; n). The vector r indicates the preferred values for all range variables. If range variable i is specified as the interval r.sub.i.ident.(r.sub.i, {overscore (r)}.sub.i) (where {overscore (r)}.sub.i>r.sub.i) then r is an n.sub.r-vector of such tuples. The distance contribution, R.sub.i, from one range variable will depend on the application. If the range variables are meant to represent the tolerances on machined parts where issues of statistical quality control are important, then the distance between two ranges might be related to the overlap between Gaussian distributions. If r.sub.i is interpreted as a Gaussian having mean (r.sub.i+{overscore (r)}.sub.i)/2 and standard deviation proportional to {overscore (r)}.sub.i-r.sub.i then an appropriate range distance is given in Appendix A. Other choices for the range distance function are certainly possible.

[0063] The continuous distance is quadratic and determined by the positive semidefinite n.sub.c.times.n.sub.c matrix C.sup.-1. We have allowed this matrix to vary with the setting of the discrete variables and indicated this explicitly through C.sup.-1 ()..sup.3 The n.sub.c-vector .mu. may also depend on and indicates the point at which the utility is maximal -.mu. is thus identified with the ideal value for the continuous variables. The precise quadratic form is convenient, but, using recent developments in interior point methods, other convex functions are also computationally tractable [4]. .sup.3Where no confusion will arise we eliminate the dependence of C.sup.-1 on for notational simplicity.

[0064] The discrete distance is determined through the function Z() which maps the discrete space D.sub.1 {circle over (x)} . . . {circle over (x)} D.sub.n.sub..sub.d onto the positive real line [0, .infin.]. In keeping with the assumption that distance is a function of only pairs of components x.sub.i, x.sub.j, we assume the discrete distance has the form.sup.4 1 Z ( ) = i = 1 n d { Z i ( i ) + j = 1 ( i ) n d Z i , j ( i , j ) } .

[0065] Each contribution Z.sub.i,j is a table consisting of d.sub.id.sub.j entries, where Z.sub.i,j(.sub.i, .sub.j) can be interpreted as the distance if discrete dimension i has value .sub.i conditioned on discrete dimension j having value .sub.j. The diagonal terms Z.sub.i offer an unconditional distance. The most preferred value for the ith discrete dimension is that for which Z.sub.i(.sub.i)=0. .sup.4Later we shall generalize this distance to include weighting of dimensions.

[0066] Rather than require the user to enter the distances explicitly, there are numerous ways in which the distances can be generated automatically based upon a buyer's ranking of preferred values. Further details can be found in Appendix B.

[0067] Weighting of Dimensions

[0068] In many cases it is important for simple modifications of the distance function to re-weight the contributions to the total distance. If w.sub.c is an n.sub.c-vector of weights for the continuous dimensions, we can accomplish this by letting C.sub.w.sup.-1=W.sub.cC.sup.-1W.sub.c where W.sub.c is the diagonal matrix W.sub.c=diag(w.sub.c)..sup.5 In a similar way we modify the discrete distance to Z.sub.w,i,j(.sub.i, .sub.j)=W.sub.d;iW.sub.d;jZ.sub.i,j(.sub.i, .sub.j) where w.sub.d is the n.sub.d-vector of weights for the discrete variables and W.sub.d;i is its ith component. The range contribution is also modified so that R.sub.w;i(r.sub.i)=w.sub.r;iR.sub.i(r.sub.i) where w.sub.r is the n.sub.r-vector of weights for the range variables and w.sub.r;i is its ith component. For convenience the weights are normalized so that (1.sup.tw.sub.c).sup.2+(1.sup.tw.sub.d).sup.2+1.sup.tw.sub.r=1. With little additional complexity the dimension weights can be made dependent on the setting of the discrete variables but we will assume throughout that the weights are constant. .sup.5M=[m.sub.i,j]=diag(.nu.) is the diagonal matrix formed by setting m.sub.i,i=.theta..sub.i and m.sub.i,j=0
for ji.

[0069] With these modifications, the total distance function becomes

d(x,)=(x-.mu.()).sup.tC.sup.-1.sub.w()(x-.mu.())+Z.sub.w())+Z.sub.w()+R.su- b.w(r) (1)

[0070] where Z.sub.w()=.SIGMA..sub.i=1.sup.n.sub..sub.d w.sub.d;i{w.sub.d;iZ.sub.i(.sub.i)=.SIGMA..sub.j=1(i).sup.n.sub..sub.d w.sub.d;jZ.sub.i;j(.sub.i,.sub.j)} and R.sub.w(r)=.SIGMA..sub.i=1.sup.n.s- ub..sub.r w.sub.r;iR.sub.i(r.sub.i)

[0071] Assigning weighting factors is useful only if the relevant contributions have been previously normalized so that they are all roughly the same magnitude. This serves as the baseline for which all weights are equal. The question immediately arises as to what criteria to use to weight the distance contributions.

[0072] We shall determine scaling factors, Q.sub.d>0 and Q.sub.r>0, so that the average distances per dimension of the discrete, range, and continuous contributions are equal, where by average we mean a utility-weighted average over the entire space of possible trades. This weighting places more emphasis on the better trades

[0073] If d.sub.c, d.sub.d, and d.sub.r are the continuous, discrete, and range contributions to the total distance, then after multiplication by the scaling factors d=d.sub.c+Q.sub.dd.sub.d+Q.sub.rd.sub.r. The scaling factors are determined through the utility weighted average distances defined by 2 ( d r ) r V uQ r d r exp [ - Q r d r - Q d d d - d c ] r V u exp [ - Q r d r - Q d d d - d c ] = Q r exp [ - Q d d d ] r d r exp [ - Q r d r ] V u exp [ - d c ] exp [ - Q d d d ] r d r exp [ - Q r d r ] V u exp [ - d c ] ( d d ) r V uQ d d d exp [ - Q r d r - Q d d d - d c ] r V u exp [ - Q r d r - Q d d d - d c ] = Q r d d exp [ - Q d d d ] r exp [ - Q r d r ] V u exp [ - d c ] exp [ - Q d d d ] r exp [ - Q r d r ] V u exp [ - d c ] ( d c ) r V ud c exp [ - Q r d r - Q d d d - d c ] r V u exp [ - Q r d r - Q d d d - d c ] = Q r exp [ - Q d d d ] r exp [ - Q r d r ] V u d c exp [ - d c ] exp [ - Q d d d ] r exp [ - Q r d r ] V u exp [ - d c ]

[0074] A few comments on the above equations are in order. First, .SIGMA..sub. indicates the repeated sum .SIGMA..sub.x.sub..sub.1 . . . .SIGMA..sub.x.sub..sub.n.sub..sub.d over all possible discrete trades. .SIGMA..sub.r indicates a sum over all the range variables and the integral over volume V indicates integration over the continuous trading volume of interest. Finally, we have not included a scaling factor Q.sub.c on the continuous distance, since this can be made equal to 1 if we reinterpret Q.sub.r as Q.sub.r/Q.sub.c and Q.sub.d as Q.sub.d/Q.sub.c..sup.6 Each of the averages is an explicit function Q.sub.d and Q.sub.r. .sup.6We singled the continuous variables out, since there will always be continuous variables in any trading scenario.

[0075] The requirement on equal average contributions determines the two unknowns Q.sub.r and Q.sub.d through the equations: (d.sub.r)/n.sub.r=(d.sub.c)/n.sub.c and (d.sub.d)/n.sub.d=(d.sub.c)/n.sub- .c. These two nonlinear equations are coupled in terms of Q.sub.r and Q.sub.d and must be solved simultaneously for Q.sub.r and Q.sub.d. Further details are found in Appendix C.

[0076] 6.1.3 Constraint Specification

[0077] Buyers and sellers may express constraints over both continuous and discrete variables.

[0078] Continuous Constraints

[0079] For simplicity (and because additional expressiveness is rarely required) we assume that the buyer's constraints over the continuous variables are linear..sup.7 This allows a buyer to express a constraint, e.g., the time of delivery must be within 10 days or I will not trade, i.e., t.ltoreq.10. We allow for both inequality and equality constraints which can be expressed as G.sub.1.sup.(b)x=g.sub.1.sup.(b) and G.sub.2.sup.(b)x.ltoreq.g.sub.2.sup.(b). If there are c.sub.1.sup.(b) equality constraints then G.sub.1.sup.(b) has c.sub.1.sup.(b) rows. Similarly, G.sub.2.sup.(b) has c.sub.2.sup.(b) rows if there are c.sub.2.sup.(b) inequality constraints. We allow the constraints to depend on the setting of the discrete variables, and to be explicit we often write G.sub.1.sup.(b) (), g.sub.1.sup.(b) (), G.sub.2.sup.(b) (), and g.sub.2.sup.(b) (x). .sup.7With little additional complexity we can also handle quadratic constraints, see [4].

[0080] Discrete Constraints

[0081] We use a standard methodology to represent and process constraints over discrete variables [5]. Abstractly, a constraint over a (perhaps proper).sup.8 subset of the discrete variables is represented as a list of all the allowed combinations the variables may assume. An example representation of a pair of discrete constraints is given in Table 2. There are two solutions to this set of constraints: of .sub.11, .sub.2=2, .sub.3=3 and .sub.1=3, .sub.2=2, .sub.3=1. We indicate these solutions as {(.sub.1; 1), (.sub.2,2)}, (.sub.3,3)}} and {(.sub.1, 3), (.sub.2,2)}, (.sub.3,1)}} respectively. Each solution where

2TABLE 2
An example set of constraints involving 3
variables where the domains of all variables are D.sub.1 = D.sub.2
= D.sub.3 = {1, 2, 3}. Constraint (a) requires that the values assumed by .kappa..sub.1, .kappa..sub.2, and .kappa..sub.3 are all different from each other, and constraint (b) requires that the value assumed by .kappa..sub.2 is even. See text for the solution to both constraints. .kappa..sub.1 .kappa..sub.2
.kappa..sub.3
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
(a) .kappa..sub.2
2
(b)

[0082] all the variables have been identified with specific values from their domains is called a labelling. 8A proper subset of a set is the set itself.

[0083] Computationally efficient representations are used to ensure that only feasible combinations of variables are ever processed. Numerous third-party libraries offer constraint programming functionality..sup.9
.sup.9See for example www.mozart-oz.org or www.ilog.com.

[0084] 6.1.4 Utility and Total Cost of Ownership

[0085] The buyer's utility function and associated constraints may be difficult for many users to define. In this section we show how models of the buyer's business can be used to define utility in a natural manner.

[0086] We imagine a function which provides an estimate of the total cost of ownership for any given purchase. Cost contributions to this function might include piece part costs, freight costs, setup costs, quality assurance costs, repair costs, etc. It is important to include all quantifiable costs associated with the lifetime of use of the purchased product because it is this function we will be minimizing. Significant savings may be obtained by taking a longer-term view of the purchase. Revenues (negative costs) generated from the purchase are also included in the function so that the function represents some measure of profitability associated with the purchase. We write the total cost of ownership function as C.sub.o(x, , r; .beta.). We explicitly indicate the dependence on the negotiated trade parameters x, , and r, as well as other factors .beta.. The other factors might include forecasted demand, current inventory levels, etc. These factors will vary over time, and they can be extracted from the buyer's ERP and supply chain management systems (SCM) in real-time just before the purchase to ensure continuous real-time optimization. See section 6.2.1 for further details.

[0087] Minimization of C.sub.o(x, , r; .beta.) defines an ideal trade dependent on current conditions: x.sub.opt(.beta.), .sub.opt(.beta.), r.sub.opt(.beta.). If desired, these can be used to define .mu.=x.sub.opt(.beta., r=r.sub.opt(.beta.) and the desired ideal discrete configuration .sub.opt(.beta.) (having distance contribution Z=0). Moreover, the tradeoffs between continuous dimensions around this minimum can be obtained through calculation of the Hessian matrix H=[h.sub.i,j] where the i, j matrix element is given by 3 h i , j = 2 C o ( x , , r ; ) x i x j x = x opt ( ) , = opt ( ) , r = r opt ( )

[0088] We then identify C.sup.-1 with H. In this way, little trading flexibility is obtained in directions where total cost of ownership rises rapidly, while significant flexibility is obtained in directions where total cost of ownership increases slowly.

[0089] In summary, a total cost of ownership model defines both the most preferred trade parameters and the flexibility possessed around the preferred trade. The model pulls dynamically from real-time data sources to provide the most up-to-date optimization based on total costs of ownership and other important qualitative factors the buyer may wish to describe in the utility function. The same function and its constituent costs may also be used to help analyze proposed trades from suppliers.

[0090] 6.1.5 Supplier Capabilities

[0091] As discussed in the introduction, suppliers represent their capabilities through a specification of the subspace of X in which they will trade. A supplier's capabilities must specify the allowed continuous, discrete, and range variables. The allowed range variables are expressed as the pairs (r.sub.j, {overscore (r)}.sub.j), one for each range variable. For example, if a supplier produces 25 mm inner diameter screws to within a tolerance of 0.5 mm, then the range variable is simply (24.5, 25.5). These are compared with the buyer's ideal range and contribute to the distance function through the R.sub.w() function.

[0092] Capabilities over continuous and discrete variables are more complex. Continuous Capabilities

[0093] Continuous capabilities are viewed naturally as responses to a buyer's request. Thus we distinguish between a buyer's requested continuous vector x.sup.(b) and a seller's response x.sup.(s). A vector-valued function, f(x.sup.(b), x.sup.(s)) returns the response based on the buyer's request and also, perhaps, other previously defined supplier responses. Component f.sub.i of f defines the ith continuous variable, i.e. x.sub.i.sup.(s)=f.sub.i(x.sup.(b), x.sup.(s)).

[0094] Currently, suppliers are used to quoting price discounts for large volume orders and these price discounts are expressed as piecewise linear functions. Consequently, we restrict f.sub.i to have the following form (where we distinguish between the functions depending on the buyer and seller variables): 4 x i ( s ) = k f i , k ( s ) ( x k ( s ) , ( s ) ) + f i , j ( b ) ( x k ( b ) , ( s ) ) . ( 2 )

[0095] An example of how this may be used to define a supplier response is the following: We assume three continuous dimensions--price, volume, and time of delivery and indicate these as [x.sub.1, x.sub.2, x.sub.3]=[p, .theta., t]. Then a response may be formed as

v.sup.(s)=f.sub.v,v(v.sup.(b))

t.sup.(s)=f.sub.t(v.sup.(s),t.sup.(b)=f.sub.t,v(v.sup.(s))

p.sup.(s)=f.sub.p(v.sup.(s),t.sup.(s)=f.sub.p,v(v.sup.(s))+f.sub.p,t(t.sup- .(s)).

[0096] The f.sub.v,v function returns the volume a supplier will fulfill as a function of what the buyer asked for. If the supplier can deliver any volume, this will be the identity function. If the supplier delivers only in certain lot sizes, this function may have a staircase shape, etc. The f.sub.t,v function indicates the time it will take a supplier to deliver a certain volume. So, for example, if larger shipments require longer transportation, then this dependence is given by this function. Finally, we turn to the price determination. In this example the price depends on the quantity v.sup.(s) being shipped and the f.sub.p,v might represent price discounts for large volume orders. There is also an incremental price contribution based on the time of delivery. If faster delivery is more expensive, this is reflected in f.sub.p,t.

[0097] For a given setting of the discrete variables, each f.sub.i,k.sup.(s)(x.sub.k.sup.(s),.sup.(s) and f.sub.i,k.sup.(b)(x.sub.k.- sup.(b),.sup.(s)) is a one-dimensional piecewise linear function. Consequently, the functions can be specified by listing the breakpoints. If f.sub.i,k.sup.(s)(x.sub.k.sup.(s),.sup.(s)) has k.sub.i,k.sup.(s) breakpoints, then we list these as {x.sub.k.sup.(s)(b.sub.i,k.sup.(s)=1), x.sub.k.sup.(s)(b.sub.i,k.sup.(s)=2), . . . , x.sub.k.sup.(s)(b.sub.i,k.s- up.(s)=k.sub.i,k.sup.(s))}.sup.10 and function values at these breakpoints are {f.sub.i,k.sup.(s)(x.sub.k.sup.(s)(b.sub.i,k.sup.(s)=1)), f.sub.i,k.sup.(s)(x.sub.k.sup.(s)(b.sub.i,k.sup.(s)=2)), . . . , f.sub.i,k.sup.(s)(x.sub.k.sup.(s)(b.sub.i,k.sup.(s)=k.sub.i,k.sup.(s)))}. Similarly, f.sub.i,k.sup.(b), is a piecewise linear function defined by the k.sub.i,k.sup.(b) breakpoints {x.sub.k.sup.(b)(b.sub.i,k.sup.(b)=1), x.sub.k.sup.(b)(b.sub.i,k.sup.(b)=2), . . . , x.sub.k.sup.(b)(b.sub.i,k.s- up.(b)=k.sub.i,k.sup.(b))} and function values at these breakpoints {f.sub.i,k.sup.(b)(x.sub.k.sup.(b)(b.sub.i,k.sup.(b)=1)), f.sub.i,k.sup.(b)(x.sub.k.sup.(b)(b.sub.i,k.sup.(b)=2)), . . . , f.sub.i,k.sup.(b)(x.sub.k.sup.(b)(b.sub.i,k.sup.(b)=k.sub.i,k.sup.(b)))}. The breakpoints are indexed by the integers b.sub.i,k.sup.(s) and b.sub.i,k.sup.(b). .sup.10The breakpoints are assumed to be in increasing order.

[0098] An interval is specified by assigning a value b.sub.i,k.sup.(s).epsilon.[1,k.sub.i,k.sup.(s)-1] and b.sub.i,k.sup.(b).epsilon.[1,k.sub.i,k.sup.(b)=1] so that.sup.11

x.sub.k.sup.(s)(b.sub.i,k.sup.(s)).ltoreq.x.sub.k.sup.(s).ltoreq.x.sub.k.s- up.(s)(b.sub.i,k.sup.(s)+1).A-inverted.i and x.sub.k.sup.(b)(b.sub.i,k.sup- .(b)).ltoreq.x.sub.k.sup.(b).ltoreq.x.sub.k.sup.(b)(b.sub.i,k.sup.(b)+1).A- -inverted.i. (3)

[0099] Within each interval the functions are linear, so we have 5 x i ( s ) = c i ( ( s ) , { b i , k ( s ) } , { b i , k ( b ) } ) + k m i , k ( s ) ( ( s ) , b i , k ( s ) ) x k ( s ) + m i , k ( b ) ( b i , k ( b ) ) x k ( b )

[0100] where c.sub.i(v.sup.(s), {b.sub.i,k.sup.(s)}, {b.sub.i,k.sup.(b)})=.SIGMA..sub.kc.sub.i,k.sup.(s)(.sup.(s),b.sub.i,k.su- p.(s))+c.sub.i,k.sup.(b)(b.sub.i,k.sup.(b)). In the above equations, the intercepts and slopes are given explicitly by 6 c i , k ( s ) ( b i , k ( s ) ) = x k ( s ) ( b i , k ( s ) + 1 ) f i , k ( s ) ( x k ( s ) ( b i , k ) ) - x k ( s ) ( b i , k ) f i , k ( s ) ( x k ( s ) ( b i , k + 1 ) ) x k ( s ) ( b i , k ( s ) + 1 ) - x k ( s ) ( b i , k ) and m i , k ( s ) ( b i , k ( s ) ) = f i , k ( s ) ( x k ( s ) ( b i , k ( s ) + 1 ) ) - f i , k ( s ) ( x k ( s ) ( b i , k ) ) x k ( s ) ( b i , k ( s ) + 1 ) - x k ( s ) ( b i , k ( s ) ) .sup.10Note that many choices for {b.sub.i,k.sup.(s)} or {b.sub.i,k.sup.(b)} would be inconsistent with these constraints. A simple way to fix this is to define a union of all breakpoints (s) and (b), and have all f.sub.i,k have the same breakpoints.

[0101] respectively. An analogous result holds for the c.sub.i,k.sup.(b)(b.sub.i,k.sup.(b) and m.sub.i,k.sup.(b)(b.sub.i,k.sup.(- b)).

[0102] To eliminate any cyclic dependence on x.sub.i.sup.(s) we must impose an ordering on x.sub.i.sup.(s) so that x.sub.i.sup.(s) can only depend on x.sub.j.sup.(s) where j<i. Consequently, we can write 7
x i ( s ) = c i ( ( s ) , { b i , 1 ( s ) , , b i , i - 1 ( s ) } , { b i , k ( b ) } ) + k < i m i , k ( s ) ( ( s ) , b i , k ( s ) ) x k ( s ) + k m i , k ( b ) ( b i , k ( b ) ) x k ( b ) .

[0103] Written as a matrix equation, the above becomes

(I-M.sup.(s)(.sup.(s),{b.sub.i,k.sup.(s)}))x.sup.(s)=c(x.sup.(s),{b.sub.i,- k.sup.(s)},{b.sub.i,k.sup.(b)})+M.sup.(b)({b.sub.i,k.sup.(b)})x.sup.(b)

[0104] where c(x.sup.(s), {b.sub.i,k.sup.(s)}, {b.sub.i,k.sup.(b)})=[c.sub- .1(x.sup.(s), {b.sub.i,k.sup.(s)}, {b.sub.i,k.sup.(b)}) . . . c.sub.n(x.sup.(s), {b.sub.i,k.sup.(s), }b.sub.i,k.sup.(b)})].sup.6, x.sup.(s)=[x.sub.1.sup.(s) . . . x.sub.n.sub..sub.c.sup.(s)].sup.t, x.sup.(b)=[x.sub.1.sup.(b) . . . x.sub.n.sub..sub.c.sup.(b)].sup.t, and 8 M ( s ) ( ( s ) , { b i , k ( s ) } ) = [ 0 0 0 0 m 2 , 1 ( s ) ( ( s ) , b 2 , 1 ( s ) ) 0 0 0 m 3 , 1 ( s ) ( ( s ) , b 3 , 1 ( s ) ) m 3 , 2 ( s ) ( ( s ) , b 3 , 2 ( s ) ) 0 0 m n , 1 ( s ) ( ( s ) , b n , 1 ( s ) ) m n , 2 ( s ) ( ( s ) , b n , 2 ( s ) ) m n , n - 1 ( s ) ( ( s ) , b n , n - 1 ( s ) ) 0 ] and M ( b ) ( { b i , k ( b ) } ) = [ m 1 , 1 ( b ) ( b 1 , 1 ( b ) ) m 1 , 2 ( b ) ( b 1 , 2 ( b ) ) m 1 , n ( b ) ( b 1 , n ( b ) ) m 2 , 1 ( b ) ( b 2 , 1 ( b ) ) m 2 , 2 ( b ) ( b 2 , 2 ( b ) ) m 2 , n ( b ) ( b 2 , n ( b ) ) m n , 1 ( b ) ( b n , 1 ( b ) ) m n , 2 ( b ) ( b n , 2 ( b ) ) m m , n ( b ) ( b n , n ( b ) ) ] .

[0105] In most cases x.sup.(s) will depend only on a subset of the variables in x.sup.(b). If x.sup.(s) depends on n'<n of the x.sup.(b) variables, then M.sup.(b) is an n.times.n' matrix. In the example given everything depending only upon the volume the buyer requested.

[0106] Since M.sup.(s)(.sup.(s)) is lower triangular and can be inverted in time .theta.(n), we can rapidly express x.sup.(s) as

x.sup.(s)=(I-M.sup.(s)(.sup.(s),{b.sub.i,k.sup.(s)})).sup.-1c(.sup.(s),{b.- sub.i,k.sup.(s)},{b.sub.i,k.sup.(b)})+(I-M.sup.(s)(.sup.(s),{b.sub.i,k.sup- .(s)})).sup.-1M.sup.(b)({b.sub.i,k.sup.(b)})x.sup.(b) (4)

[0107] as long as the b.sub.i,k.sup.(s) are chosen to also satisfy x.sub.k.sup.(s)(b.sub.i,k.sup.(s)).ltoreq.x.sub.k.sup.(s).ltoreq.x.sub.k.- sup.(s)(b.sub.i,k.sup.(a)-1). These constraints will be used in section 6.1.6 which formulates the optimization problem.

[0108] We also allow a supplier to express additional linear constraints so that, for example, he may represent that he does not deliver on Sunday. Thus the supplier may define the matrices G.sub.a.sup.(s) (), G.sub.2.sup.(s) (), and the vectors g.sub.1.sup.(s) (), g.sub.2.sup.(s) () such that G.sub.1.sup.(s)x.sup.(s)=g.sub.1.sup.(s) and G.sub.2.sup.(s)x.sup.(s)x.ltoreq.g.sub.2.sup.(s). G.sub.1.sup.(s) () and G.sub.2.sup.(s) (x) have c.sub.1.sup.(s) and c.sub.2.sup.(s) rows respectively.

[0109] Discrete Capabilities

[0110] It is easy to imagine that a supplier's response on a discrete dimension is highly constrained by the values of the response on other dimensions, e.g., certain product characteristics come only in certain colors and package sizes. Consequently, it is not suitable to explicitly define a response but only to make available a supplier's constraints amongst the discrete variables. Consider 3 discrete dimensions where .sub.1 .epsilon. D.sub.1=[a, b, c], .sub.2 .epsilon. D.sub.2=[A, B, C, D], and .sub.3 .epsilon. D.sub.3=[.alpha., .beta., .gamma., .delta.], and assume the supplier has the following 3 constraints

C.sub.1(.sub.1,.sub.3)={(a,.alpha.),(a,.beta.),(b,.beta.),(c,.beta.)},C.su- b.2(.sub.2,.sub.3)={(A,.beta.),(B,.gamma.),(D,.beta.)},C.sub.3(.sub.1)={b,- c}.

[0111] We first note that there are 4 feasible solutions (or product configurations the supplier can meet): [.sub.1, .sub.2, .sub.3]=[b, A, .beta.], [b, D, .beta.], [c, A, .beta.], or [c, D, .beta.]. Feasible solutions to the constraints define the response .sup.(s) for the discrete variables.

[0112] We indicate a supplier's or buyer's collective set of discrete constraints by C.sup.(s) () and C.sup.(b) () respectively.

[0113] 6.1.6 The Optimization Problem

[0114] Having defined the necessary components, we now define the optimization task which determines the continuous x* and discrete x* parameters of the trade.

[0115] Since the trade must be acceptable to the supplier, we maximize the buyer's utility over a supplier's capabilities. Equivalently, we minimize the distance from the buyer's ideal values as 9 [ x * , * ] = arg min x ( x ) , ( s ) { ( x ( s ) - ( ( s ) ) ) t C w - 1 ( ( s ) ) ( x ( s ) - ( ( s ) ) ) + Q d Z w ( ( s ) ) + Q r R w ( w ) }

[0116] where

x.sup.(s)=(I-M.sup.(s)(.sup.(s))).sup.-1c(.sup.(s))+(I-M.sup.(s)(x.sup.(s)- )).sup.-1M.sup.(b)x.sup.(b)

[0117] subject to the constraints over continuous variables

G.sub.1(.sup.(s))x.sup.(s)=g.sub.1(.sup.(s)),G.sub.2(x.sup.(s))x.sup.(s).l- toreq.g.sub.2(x.sup.(s))

[0118] and the constraints over the discrete variables C.sup.(b) (v.sup.(s)), C.sup.(s)(v.sup.(s)). In the above, we have defined the (c.sub.1.sup.(s)+c.sub.1.sup.(b)).times.n.sub.c and (c.sub.2.sup.(s)+c.sub.2.sup.(b)).times.n.sub.c matrices G.sub.1(.sup.(s) and G.sub.2(.sup.(s)) by 10 G 1 ( ( s ) ) = [ G 1 ( s ) ( ( s ) ) G 1 ( b ) ( ( s ) ) ] , and G 2 [ ( s ) ) = [ G 2 ( s ) ( ( s ) ) G 2 ( b ) ( ( s ) ) ] .

[0119] The (c.sub.1.sup.(s)+c.sub.1.sup.(b))- and (c.sub.1.sup.(s)+c.sub.1- .sup.(b))-vectors g.sub.1(.sup.(s)) and g.sub.2(.sup.(s)) are defined by 11 g 1 ( ( s ) ) = [ g 1 ( s ) ( ( s ) ) g 1 ( b ) ( ( s ) ) ] , and g 2 ( ( s ) ) = [ g 2 ( s ) ( ( s ) ) g 2 ( b ) ( ( s ) ) ] .

[0120] The optimization is accomplished by iterating two distinct phases. Phase one sets the continuous parameters optimally for a given setting of the discrete variables. We define the functions

d.sub.1(x,)=(x-.mu.()).sup.tC.sub.w.sup.-1())(x-.mu.())+R(r;) and d.sub.2()=Z.sub.dZ.sub.w(.sup.(s),

[0121] The first phase of the optimization is the continuous problem:.sup.12 12 x * ( ) = arg min x ( s ) d 1 ( x ( s ) , ) subject to G 1 ( ) x = g 1 ( ) and G 2 ( ) x g 2 ( ) . ( 5 )

[0122] A detailed discussion on the solution of the phase 1 optimization problem is found in appendix D. The second phase determines the best value of the discrete variables by minimizing over a function of alone 13 * = arg min d 1 ( x ( ) , ) + d 2 ( ) subject to ( 6 ) C ( b ) ( ) C ( s ) ( ) .

[0123] Further details on the phase 2 optimization are given in Appendix E. Once * has been determined, we find x* as x*=x(*). .sup.12No optimization is required over range variables, since these are specified up front by both buyer and seller and merely add to the total distance.

[0124] 6.1.7 Aggregation

[0125] Often a buyer may be willing to divide an order between multiple suppliers in order to aggregate the required demand or to obtain better deals. In this section, we detail how the present invention supports this aggregate optimization.

[0126] Aggregation can only occur over the continuous variables where values may be subdivided. Each continuous variable x.sub.i must be parcelled out amongst a set of suppliers. Consequently, we extend our notation to x.sub.i.fwdarw.{overscore (x)}.sub.i,k giving the contribution of the kth supplier to continuous dimension i. The kth supplier may come from a (perhaps proper) subset of all suppliers. We indicate the set of potentially contributing suppliers as IC and the number of potentially contributing suppliers as .vertline..kappa..ident..- .sup.13 .sup.13All work to this point is thus seen as the special case .vertline..kappa..vertline.=1.

[0127] We restrict the discrete variables to be the same across all potentially aggregated suppliers, i.e., we do not generalize .sub.i.fwdarw..sub.i,k. This simplifying assumption is made for two reasons. First, the size of the discrete optimization problem is smaller and so optimization be performed faster. Second, it may be difficult to elicit from the buyer the allowed discrete alternatives for each supplier. Nevertheless, this generalization is straightforward should the need arise. This simplifying assumption requires that the union of discrete supplier constraints C.sub..kappa.().ident..LAMBDA..sub.k.epsilo- n..kappa.C.sub.k.sup.(s) () yields a feasible solution when combined with the buyer's discrete constraints C.sup.(b) (). A necessary (but not sufficient) condition for satisfaction is then that each constraint satisfaction problem k having constraints C.sup.(b) () .LAMBDA. C.sub.k.sup.(s) () has a feasible solution..sup.14 Henceforth, we will assume that the set of suppliers, .kappa., satisfies this condition. If not, those suppliers .sup.14It is easily seen this requirement is not sufficient by having C.sup.(b)={(.sub.1, 1), (.sub.1, 2)}, C.sub.1.sup.(s)={(.sub.1, 1)}, and C.sub.2.sup.(s)={(.sub.1, 2)}. violating the constraints C.sup.(b) () .LAMBDA. C.sub.k.sup.(s) () are eliminated from consideration in .kappa..

[0128] Discrete Search

[0129] We must search over the subsets of .kappa. for feasible solutions, which is a combinatorial problem. Fortunately, given a complete labelling of variables, determining the largest subset is easy. For any given labelling of all discrete variables, if each C.sup.(b) .LAMBDA. C.sub.k.sup.(s) .A-inverted. k .SIGMA. .kappa. is satisfiable, then the union C.sup.(b) .LAMBDA. C.sup.(s) where C.sub.k.sup.(s)=.LAMBDA..sub.k.e- psilon.k C.sub.k.sup.(s) is also satisfiable under the same labelling. The largest subset of variables is found by adding all k which have feasible solutions with the buyer. We needn't worry about smaller subsets because the continuous optimization will assign zero values to those if appropriate. Consequently, for any given labelling we let .kappa.() represent the maximal subset of suppliers for which C.sup.(b) () .LAMBDA. C.sub..kappa.() is satisfiable. It is this set of suppliers which enter into the continuous optimization. The number of participating suppliers is denoted by .vertline..kappa.().vertline..

[0130] Continuous Optimization

[0131] Optimization over the continuous variables is carried for each labelling . Generally speaking, the buyer's utility will not be an explicit function of x.sub.i,k but only of x.sub.i. We assume a linear relationship between these two quantities so that.sup.15

x={overscore (x)}.

[0132] The n.sub.c.vertline..kappa.().vertline. vector {tilde over (x)} is defined as {tilde over (x)}.sup.t=[{tilde over (x)}.sub.1, . . . , {tilde over (x)}.sub.n.sub..sub.c] where {tilde over (x)}.sub.i.sup.t=[{tilde over (x)}.sub.i,1, . . . , {tilde over (x)}.sub.i;.vertline..kappa.().ver- tline.]. The n.sub.c.times.n.sub.c.vertline..kappa.().vertline. matrix .xi..sub.i,k is assumed known and typically has the form.sup.16 14 = [ 1 t 0 t 0 t 0 t 2 t 0 t 0 t 0 t n c t ]

[0133] where 0 is the K-vector of all zeros and .xi..sub.i is the linear combination relating x.sub.i to the {tilde over (x)}.sub.i,k. Under our assumptions for , x.sub.i=.xi..sub.i.sup.t{tilde over (x)}.sub.i. In cases where the buyer wants to accumulate the results from suppliers (e.g., aggregating quantities) .xi.=1 is the .vertline..kappa.().vertline- .-vector of all 1 s. In other cases the buyer may take .xi.=1/51
.kappa.().vertline. so that the time of delivery becomes the average .sup.15We can also relate x and {tilde over (x)} by x={tilde over (x)}+.nu. for some constant vector .nu., which will not cause any complications. However, there seems to be little practical reason to do so. .sup.16With no additional computational complexity, we can allow depend on . time of delivery across the suppliers. Constraints on x become constraints on {tilde over (x)} via

{tilde over (G)}.sub.1(){tilde over (x)}=g.sub.1() and {tilde over (G)}.sub.2(){tilde over (x)}.ltoreq.g.sub.2() (7)

[0134] where {tilde over (G)}.sub.1()={tilde over (G)}.sub.1() and {tilde over (G)}.sub.1()={tilde over (G)}.sub.1. We might also expect the buyer to add additional linear constraints, such as requiring the latest shipment from any supplier to arrive earlier than a certain date, or requiring all deliveries to arrive the same day. There can also be constraints specific to particular suppliers, e.g., the buyer doesn't want any more than 100 units from supplier 5. These can be handled simply as constraints on the individual {tilde over (x)}.sub.i;k and added as extra rows to {tilde over (G)}.sub.1(), {tilde over (G)}.sub.2(), {tilde over (g)}.sub.1(), and {tilde over (g)}.sub.2(). With aggregation, the quadratic form to be minimized is ({tilde over (x)}-.mu.()).sup.tC.sub.w.- sup.-1()({tilde over (x)}-.mu.()) subject to the constraints given in Eq. (7). This minimization can be carried out through a straightforward generalization of the method given in Appendix D.

[0135] 6.2 Implementation

[0136] In this section we outline an implementation of the entire e-procurement invention. We begin with a high-level description of the architecture, then fill in the details by describing a complete object model.

[0137] 6.2.1 High-level Architecture of the Invention

[0138] There are at least two modes in which the invention may be used. First, the invention may reside at the site of large buyers, and suppliers who wish to sell to the buyer may be required to submit their capabilities via a web interface to the buyer. The invention may also be used within a marketplace hosted by a third party. Buyers/sellers log onto the market, submit their preference/capabilities, and act on the results. The architecture is modular enough to support both modes of operation.

[0139] In FIG. 1 we present an architecture for the invention. We describe the architecture, starting from the optimization algorithm which finds matches between buyers and sellers and work our way outwards.

[0140] A controller surrounds the optimization engine, feeding it buyer preferences and seller capabilities. If multiple optimization processes are running (perhaps on different machines), the controller can also do load balancing, forwarding the request to the least busy process. The controller decomposes preferences and capabilities into their constituent buyer- and seller-specific versions (see below), selects the most specific matching preference/capability pairs, and sends them to the matching engine for optimization. The controller then collects responses from the matching engine and returns them to the buyer. Additionally, the controller logs all results into a database for recording purposes.

[0141] Another layer, called the Connector in FIG. 1, separates the graphical user interface (GUI) through which users communicate with the tool from the controller. This layer serves a number of functions. The connector transforms the description of preferences and capabilities from the GUI into a form suitable for the implementation of the matching engine. Part of this transformation involves validation of appropriate input from the GUI layer so that no malformed input is ever sent to the controller. The Connector layer can also pull data from ERP or SCM systems and automatically infer preferences (using the total cost of ownership function) for the buyer. The enterprise abstraction layer insulates the Connector from the precise details of the manner in which the ERP and SCM data needs to be gathered. Total cost of ownership is evaluated in the simulation modules, which may either be running locally at the client's site or running centrally at the main server. These simulation modules pull operational data (the vector .beta.)from the enterprise abstraction layer. A preference optimization module (TCO) minimizes the total cost of ownership to determine the ideal trade and the flexibilities around the ideal trade.

[0142] At the outmost level, a layer provides integration with the GUI and/or host system. A number of administrative systems are expected at this layer. Market administration services allow easy definition of trading spaces, the dimensions of negotiation, limits on continuous variables, allowed settings of the discrete variables, etc. User administration services allow an administrator to define buyers, passwords, spending limits, etc. Supplier services accomplish similar tasks on the supply side. Managers for preferences, capabilities, and match results ensure that these objects are properly stored in a database. This layer layer also dynamically generates the html necessary for presentation of the data via a web interface to buyers and sellers.

[0143] For maximal portability, communications between the View and Connector are via XML documents. For maximal efficiency, communications between the Connector and matching controller are as serialized Java objects.

[0144] 6.2.2 An Object Model for the Invention

[0145] The fundamental objects required for the invention are preferences from buyers, capabilities from sellers, and match results returned to all parties. The components of such objects have already been considered from a mathematical point of view, and we now describe one possible computer representation.

[0146] In this section we describe a complete grammar for the object model. The following syntactic conventions are used:

[0147] (nt) denotes a non-terminal symbol nt

[0148] [obj] denotes an optional grammar segment obj

[0149] {obj} denotes 1, or many times the grammar segment obj

[0150] .fwdarw. denotes a production rule for non-terminal symbol. If there are multiple rules, say (a), (b), and (c), then these are denoted as

(nt).fwdarw.(a).vertline.(b).vertline.(c).

[0151] In contrast, a production rule of the form

(nt).fwdarw.(a),(b),(c)

[0152] indicates that the non-terminal (nt) is composed of three grammar segments, (a), (b), and (c)

[0153] terminal keywords are in serif font

[0154] Obvious non-terminal grammar elements like (string) an