1460712007-f1e4fc0b-b641-4427-99fd-6abc91226233

1. A computer implemented method of controlling the data rate of a data transmission between an emitter and a receiver, wherein data rate adaptation control commands may be sent using a return path from the receiver to the emitter, the method comprising:
monitoring at least one receiving condition at the receiver;
determining at least one threshold on said at least one receiving condition to trigger data rate adaptation control commands;
estimating the transmission time of the data rate adaptation control commands from the receiver to the emitter; and
adjusting at least one said threshold on at least one said receiving condition to trigger data rate adaptation control commands based on said estimation of the transmission time of the data rate adaptation control commands from the receiver to the emitter.
2. The method according to claim 1 wherein determining at least one threshold on said at least one receiving condition to trigger data rate adaptation control commands comprises determining a set of at least one said threshold, and wherein adjusting at least one said threshold comprises changing the set of at least one said threshold used to trigger data rate adaptation control commands.
3. The method according to claim 1 wherein the receiving condition monitored at the receiver is the filling level of the receiver input buffer.
4. The method according to claim 1 wherein determining at least one threshold on said receiving conditions to trigger data rate adaptation control commands comprises:
determining a first threshold corresponding to an almost empty filling level of the receiver input buffer; and
determining a second threshold corresponding to an almost full filling level of the receiver input buffer.
5. The method according to claim 1 wherein the transmission time of the data rate adaptation control commands from the receiver to the emitter is estimated based on the filling level of the emitting buffer for said data rate control commands at the receiver.
6. The method according to claim 5, wherein the estimation comprises:
determining at least one threshold on the filling level of the emitting buffer for the data rate control commands at the receiver; and
associating the ranges of filling levels defined by at least one said threshold with estimations of the transmission time.
7. The method according to claim 2, wherein said set of at least one threshold on at least one said receiving condition to trigger data rate adaptation control commands is associated with corresponding ranges of filling level of the emitting buffer for the data rate control commands at the receiver.
8. A controlling device for controlling the data rate of a data transmission between an emitter and a receiver, wherein data rate adaptation control commands may be sent using a return path from the receiver to the emitter, the controlling device comprising:
a monitoring module to monitor at least one receiving condition at the receiver;
a determining module to determine at least one threshold on said at least one receiving condition to trigger data rate adaptation control commands;
an estimator to estimate the transmission time of the data rate adaptation control commands from the receiver to the emitter;
an adjusting module to adjust at least one said threshold on at least one said receiving condition to trigger data rate adaptation control commands based on said estimation of the transmission time of the data rate adaptation control commands from the receiver to the emitter.
9. The device according to claim 8 wherein the determining module to determine at least one said threshold on at least one said receiving condition to trigger data rate adaptation control commands comprises:
a determining module to determine a set of at least one said threshold,
and wherein the adjusting module to adjust at least one said threshold comprises a changing module to change the set of at least one said threshold used to trigger data rate adaptation control commands.
10. The device according to claim 8 wherein the receiving condition monitored at the receiver is the filling level of the receiver input buffer.
11. The device according to claim 8 wherein the determining module to determine at least one threshold on said at least one receiving condition to trigger data rate adaptation control commands comprises:
a determining module to determine a first threshold corresponding to an almost empty filling level of the receiver input buffer;
a determining module to determine a second threshold corresponding to an almost full filling level of the receiver input buffer.
12. The device according to claim 8 wherein the transmission time of the data rate adaptation control commands from the receiver to the emitter is estimated based on the filling level of the emitting buffer for said data rate control commands at the receiver.
13. The device according to claim 12, wherein the estimation is performed by:
a determining module to determine at least one threshold on the filling level of the emitting buffer for the data rate control commands at the receiver;
an association module to associate the ranges of filling levels defined by at least one said threshold with estimations of the transmission time.
14. The device according to claim 9, wherein said set of at least one threshold on said receiving conditions to trigger data rate adaptation control commands is associated with corresponding ranges of filling level of the emitting buffer for the data rate control commands at the receiver.
15. A non-transitory computer-readable storage medium on which is stored codes of an executable program causing a computer to execute each of the steps of the method according to claim 1.

The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.

1. A method performed by a network processor, comprising executing a first process thread using data in a first register set;
while executing the first process thread, in response to an event having an event tag and an event flag, loading a second register set with data associated with a second process thread, wherein the second register set has a similar number of registers as the first register set, wherein the event tag indicates a location of a first memory from which the data is loaded and the event flag indicates which portion of the data stored at the location of the first memory should be loaded; and
after said executing of the first process thread is completed, executing the second process thread using the data in the second register set.
2. The method of claim 1, further comprising:
while executing the second process thread using the data in the second register set, loading the first register set with data associated with a third process thread.
3. The method of claim 1, wherein the second register set is a duplicate of the first register set.
4. The method of claim 1, wherein an amount of the data associated with the second process thread based on a number of registers in the second register set.
5. The method of claim 1, wherein the event tag is used to access a control word from the first memory, wherein the control word is used to indicate an amount of valid data stored in the first memory when the amount of valid data is less than the data associated with the second process thread.
6. The method of claim 5, wherein a location of the control word in the first memory referenced by the event tag is immediately prior to a location of the data associated with the second process thread.
7. The method of claim 1, wherein the event flag is used to conditionally load the data associated with the second process thread into the registers in the second register set.
8. The method of claim 1, wherein using the event tag to access the data associated with the second process thread from the first memory comprises:
using the event tag as an index to a second memory to access an address to index to the first memory, the address to index to the first memory used to access the data associated with the second process thread in the first memory.
9. The method of claim 8, wherein the address to index to the first memory points to a control word used to indicate an amount of valid data stored in the first memory when the amount of valid data is less than the data associated with the second process thread.
10. The method of claim 8, wherein the address to index to the first memory points to the data associated with the second process thread.
11. A computer readable medium having stored thereon sequences of instructions which are executable by a system, and which, when executed by the system, cause the system to:
execute a first process thread using data in a first register set;
while executing the first process thread, in response to an event having an event tag and an event flag, load a second register set with data associated with a second process thread, wherein the second register set has a similar number of registers as the first register set, wherein the event tag indicates a location of a first memory from which the data is loaded and the event flag indicates which portion of the data stored at the location of the first memory should be loaded; and
after said executing of the first process thread is completed, execute the second process thread using the data in the second register set.
12. The computer readable medium of claim 11, further comprising instructions to cause the system to:
while executing the second process thread using the data in the second register set, load the first register set with data associated with a third process thread.
13. The computer readable medium of claim 11, wherein the second register set is a duplicate of the first register set.
14. The computer readable medium of claim 11, wherein an amount of the data associated with the second process thread based on a number of registers in the second register set.
15. The computer readable medium of claim 11, wherein the event tag is used to access a control word from the first memory, wherein the control word is used to indicate an amount of valid data stored in the first memory when the amount of valid data is less than the data associated with the second process thread.
16. The computer readable medium of claim 15, wherein a location of the control word in the first memory referenced by the event tag is immediately prior to a location of the data associated with the second process thread.
17. The computer readable medium of claim 11, wherein the event flag is used to conditionally load the data associated with the second process thread into the registers in the second register set.
18. The computer readable medium of claim 11, wherein the instructions to cause the system to use the event tag to access the data associated with the second process thread from the first memory comprises instructions to:
use the event tag as an index to a second memory to access an address to index to the first memory, the address to index to the first memory used to access the data associated with the second process thread in the first memory.
19. The computer readable medium of claim 18, wherein the address to index to the first memory points to a control word used to indicate an amount of valid data stored in the first memory when the amount of valid data is less than the data associated with the second process thread.
20. The computer readable medium of claim 18, wherein the address to index to the first memory points to the data associated with the second process thread.
21. A system, comprising:
a reduced instruction set computer (RISC) processor, the RISC processor including a first register set and a second register set, the second register set being a duplicate of the first register set; and
a memory coupled to the RISC processor, wherein the first register set is initialized to a first state using a first data from the memory to enable the RISC processor to process a first thread, wherein the second register set is initialized to a second state using a second data from the memory in response to an event while the RISC processor is processing the first thread, and wherein the event includes an event tag and an event flag, the event tag indicating a location of the memory from which the second data is loaded and the event flag indicating which portion of the data stored in the location of the memory referenced by the event tag should be loaded.
22. The system of claim 21, further comprising a process state loader (PSL) coupled to the RISC processor and the memory, wherein the PSL loads the first data to the first register set and the PSL loads the second data to the second register set while the RISC processor is processing the first thread using the data from the first register set.
23. The system of claim 22, further comprising an event generator coupled to the PSL and the memory to generate the event, wherein the PSL loads in response to receiving the event from the event generator.
24. The system of claim 23, wherein the event tag is used to access one of the first data and the second data from the memory.
25. The system of claim 24, wherein the event tag is used as an index to the memory.
26. The system of claim 25, wherein the event tag is used to access a control word in the memory.
27. The system of claim 26, wherein the control word is used to direct how much of the first data is to be loaded into the first register set and how much of the second data is to be loaded into the second register set.
28. The system of claim 24, wherein the event tag is used as an index to an indirect memory to access an address to the memory.
29. The system of claim 28, wherein the address to the memory is used to access a control word in the memory.
30. The system of claim 28, wherein the address to the memory is used to access one of the first data and the second data in the memory.
31. The system of claim 24, wherein the event further includes one or more event flags, and wherein the one or more event flags are used to conditionally load the first data to the first register set and the second data to the second register set.
32. A system, comprising:
means for executing a first process thread using data in a first register set;
means for loading a second register set with data associated with a second process thread, while executing the first process thread, in response to an event having an event tag and an event flag, wherein the second resister set has a similar number of registers as the first register set, wherein the event tag indicates a location of a first memory from which the data is loaded and the event flag indicates which portion of the data stored at the location of the first memory should be loaded; and
means for executing, after said executing of the first process thread is completed, the second process thread using the data in the second register set.

1460711999-2763237d-fe19-4b9b-bfce-544b377cc7b6

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 x1 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 xi of said one or more continuous variables x has an allowed range over which said each continuous variable xi may vary xiXixi, {overscore (x)}i, wherein xi is a lower bound of said continuous variable xi and {overscore (x)}i is an upper bound of said continuous variable xi;
6. (New) A system for determining one or more trades between a buyer and one or more suppliers as in claim 5 wherein each i of said one or more discrete variables has a value from a domain
iDi1, . . . , di where di0 is an integer giving the number of possible values that said discrete variable 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
X1{circle over (x)} . . . {circle over (x)}Xnc{circle over (x)}D1{circle over (x)} . . . {circle over (x)}Dnd.
wherein
nc is the number of said continuous variables;
nd is the number of said discrete variables;
Xi is said allowed range of said continuous variable xi; and
Di is said domain of said discrete variable 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;)i1nrRi(ri;)
wherein:
r is an nr vector of tables of preferred values of said one or more range variables, ri(ri, {overscore (r)}i);
nr is the number of said range variables; and
{overscore (r)}1>ri.
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(ri, rj) between said range variable ri(ri, {overscore (r)}i) of the buyer and said range variable rj(rj, {overscore (r)}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(ri, rj) comprises an overlap between said buyer range variable and said supplier range variables, overlap (ri, rj).
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(ri,rj)jjjjdxN(x;ri)N(x;rj)
where
N(x;rj) is a Gaussian in x centered at j(rj{overscore (r)}j)2 with standard deviation j({overscore (r)}jrj);
N(x;ri) is a Gaussian in x centered at i(riri)2 with standard deviation i({overscore (r)}iri); and
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 ncnc matrix C1 wherein nc 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())tC1()(x())).
wherein
is an nc-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 i has a value from a domain Di.
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 D1 {circle over (x)} . . . {circle over (x)}Dnd onto the positive real line 0, wherein nd 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 Zi,j is a table comprising diji entries; and
didj is the distance if said ith discrete variable has value Xi, conditional on said jth discrete variable having value xj.
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 Zi,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 Z1 n1Z.
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 xi, xj.
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, Qc, Qd, Qr 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))dcQdddQrdr
wherein
dc is a contribution to said distance by said continuous variables,
Qddd is a contribution to said distance by said discrete variables, and
Qrdr 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
indicates a repeated sum x1 . . . xnd over all possible discrete trades;
r indicates a sum over all of said range variables; and
Qc1 because Qr is interpreted as QrQc and Qd is interpreted as QdQc.
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 Qc, Qd, Qr 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 Zw() 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())tCw1()(x()).
wherein
Cw1WcC1Wc;
Wc is a diagonal matrix formed from wc;
wc is an nc-vector of weight for said continuous variables; and
is an nc-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 Zw() is defined as:
Zw()i1ndwd,iwd,iZi(i)j1(i)ndwd,jZi,j(i, j)
wherein
Zij (i, j) is the distance if said ith discrete variable has value i conditioned on said jth discrete variable having value j; and
wd;i is the ith component of a nd 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
Rw(r)i1nrwr;iRi(ri)
wherein nr is the number of said range variables,
r is an nr-vector of tuples of preferred values of said one or more range variables,
ri(ri,{overscore (r)}1); and
{overscore (r)}i>ri.
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 nc-vector of weights for said continuous variables, wc, an nd-vector of weights for said discrete variables, and an nr-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
Cw1WcC1Wc
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, 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 C0(x, , r; )
wherein
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 C0(x, , r; ) determines said ideal trade to the buyer: xopt(), opt(), ropt()
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 Hhi;j
wherein hi;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 (rj, {overscore (r)}j) wherein rj is a lower bound for the jth one of said range variable and {overscore (r)}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(b), x(s), ) to determine said one or more supplier responses wherein
x(b) is said buyer request and
x(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(b), x(s), ) comprises one or more components fi for corresponding ones of said continuous variables:
xi(s)fi(x(b), x(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, fi 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, fi 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 andor 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 andor 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 andor 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 andor 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 andor services from one or more sellers as in claim 109 wherein said one or more initial preferences andor 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 andor services from one or more sellers as in claim 112 wherein said one or more initial preferences andor 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 andor services from one or more sellers as in claim 109 wherein said one or more initial preferences andor 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 andor 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 andor 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 andor 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 andor 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 andor 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 andor 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 andor 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
Crev is said revised preference;
C is said one or more offers;
D is the number of said dimensions;
i is an index of said dimensions;
i is a binary variable indicating which of said dimensions are used;
wi is one of said weights corresponding to said ith dimension; and
d(Crev, C) 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 andor 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 andor 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 andor 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 andor 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 andor services as in claim 124 wherein said determining one or more components of the goods andor 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 andor 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 andor 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 andor 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 andor 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 andor 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 andor 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 andor 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 andor 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 andor 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 andor 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 andor 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 andor 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 andor services as in claim 124 wherein said suppliers operate in one or more markets.
139. (New) The method for supplying one or more goods andor 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 andor 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 andor 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.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.

1. A tool for downhole use, comprising:
at least one housing defining opposed travel stops for a movable member therein;
a shifting tool selectively secured only to said movable member to move said movable member to at least one position between said stops and resettably release from the same location on the movable member when the movable member is between said stops;
said shifting tool adapted to retain said movable member after it is shifted to said position between stops and to resist release to a predetermined overpull force so as to provide feedback that said movable member has been moved.
2. The tool of claim 1, wherein:
said shifting tool is selectively prevented by said housing from moving said movable member when said overpull force is applied.
3. The tool of claim 2, wherein:
said shifting tool is prevented from re-engaging said movable member after shifting and releasing from said movable member.
4. The tool of claim 2, wherein:
said shifting tool is releasable from said movable member by removal of said overpull force and movement of said shifting tool in a direction opposed to said overpull force.
5. The tool of claim 4, wherein:
said shifting tool is also releasable from said movable member by increasing an applied force to a predetermined value above said overpull force and in the same direction.
6. The tool of claim 1, wherein:
said at least one housing comprises multiple housings each with a movable member movable between opposed travel stops;
said shifting tool resets after release from a first movable member so that it can shift a second movable member in another housing to a position between opposed travel stops without removal from downhole.
7. The tool of claim 1, wherein:
said shifting tool comprises at least one shifting key and said movable member comprises a sliding sleeve having at least one neck, said shifting key adapted to grab said neck on insertion of said shifting tool into said sliding sleeve.
8. The tool of claim 7, wherein:
said shifting key is biased into contract with said sliding sleeve and to move in tandem with it as said shifting tool is moved until said shifting key contacts one of said travel stops for said sleeve.
9. The tool of claim 8, wherein:
contact of said travel stop by said shifting key overcomes said bias on it as said shifting key moves away from said neck of said sliding sleeve;
said neck remains retained by at least one overpull key mounted on said shifting tool as said shifting key is forced out of said neck.
10. The tool of claim 9, wherein:
said overpull key moves in tandem with said sliding sleeve until said overpull key hits one of said travel stops for said sliding sleeve at which time said sliding sleeve has moved to the point where said shifting key cannot re-engage said neck.
11. The tool of claim 10, wherein:
said overpull key is initially retained by a retainer against an outward bias toward said neck, whereupon engagement of said shifting key with said neck and a force delivered to said shifting tool, said retainer is moved away from said overpull key to allow said bias to push it into said neck.
12. The tool of claim 11, wherein:
pulling in a first direction on said shifting tool with said overpull key against said travel stop comprises a signal that said sliding sleeve has shifted to a position between said stops;
said at least one housing comprises multiple housings each with a sliding sleeve movable between opposed travel stops;
moving said shifting tool in a second direction opposite said first direction repositions said retainer over said overpull key so that the shifting tool can be redeployed downhole to shift another sliding sleeve in another housing while remaining downhole or removed from downhole.
13. The tool of claim 12, wherein:
pulling in said first direction on said shifting tool with said overpull key against said travel stop beyond a predetermined force allows at least a portion of said shifting tool to move with respect to another portion retained by engagement of at least one key to said neck to bring a second retainer over all said keys to force them away from said neck for an alternative release of said shifting tool.
14. The tool of claim 13, wherein:
said portions of said shifting tool are biased away from each other by a first spring so as to force said second retainer away from said keys after said keys are forced out of said neck.
15. The tool of claim 14, wherein:
said second retainer engages said keys on an opposite end from where said first retainer engages said overpull key.
16. The tool of claim 15, wherein:
said first retainer is biased by a second spring to retain said overpull key; and
application of force to said shifting tool with said shifting key engaged to said neck overcomes said bias of said second spring on said first retainer.
17. The tool of claim 16, wherein:
relative movement of portions of said shifting tool in response to said predetermined force is made possible by collapse of a split sleeve that allows applied force to create said relative movement while compressing said first spring.
18. The tool of claim 17, wherein:
said housing comprises a groove and said sliding sleeve comprises a tab which is engages to said groove to retain a sliding sleeve position between its travel stops.
19. The tool of claim 18, wherein:
said housing comprises a first array of ports;
said sliding sleeve comprises a second array of unobstructed ports and a third array of ports with a sand control medium in them;
said first array of ports are aligned with said second array of ports when said sliding sleeve is against one of its travel stops and with said third array of ports when said sliding sleeve is away from said stops.
20. The tool of claim 1, wherein:
said housing comprises a first array of ports;
said movable member comprises a second array of unobstructed ports and a third array of ports with a sand control medium in them;
said first array of ports are aligned with said second array of ports when said movable member is against one of its travel stops and with said third array of ports when said movable member is away from said stops.