U.S. patent application number 11/038717 was filed with the patent office on 2006-07-20 for negotiation system and processor-based method.
Invention is credited to Alan H. Karp.
Application Number | 20060160593 11/038717 |
Document ID | / |
Family ID | 36684633 |
Filed Date | 2006-07-20 |
United States Patent
Application |
20060160593 |
Kind Code |
A1 |
Karp; Alan H. |
July 20, 2006 |
Negotiation system and processor-based method
Abstract
A processor-based method for automated negotiation with
continuous game moves. A game tree is constructed with a root node
that represents a current state of the negotiation. The game tree
is evaluated, and a next offer selected. A range-term is defined
based on the continuous game moves and the range-term is treated as
a single continuous variable in the game tree. Expansion of a
branch of the game tree is halted at a range-term node for which
only the range-term was changed in a previous move leading to that
range-term node. An optimum payoff value for each range-term node
is then determined and output to a computer peripheral.
Inventors: |
Karp; Alan H.; (Palo Alto,
CA) |
Correspondence
Address: |
HEWLETT PACKARD COMPANY
P O BOX 272400, 3404 E. HARMONY ROAD
INTELLECTUAL PROPERTY ADMINISTRATION
FORT COLLINS
CO
80527-2400
US
|
Family ID: |
36684633 |
Appl. No.: |
11/038717 |
Filed: |
January 20, 2005 |
Current U.S.
Class: |
463/9 |
Current CPC
Class: |
G06Q 30/06 20130101 |
Class at
Publication: |
463/009 |
International
Class: |
A63F 9/24 20060101
A63F009/24 |
Claims
1. A processor-based method for automated negotiation with
continuous game moves, comprising: constructing a game tree with a
root node that represents a current state of a negotiation;
defining a range-term based on continuous game moves; treating a
range-term as a single continuous variable in said game tree;
halting expansion of a branch of said game tree at a range-term
node for which only a range-term was changed in a move leading to
said range-term node; and evaluating said game tree to select a
next offer with an optimization process routine to determine an
optimum payoff value for each range-term node.
2. The method of 1, wherein said optimization process routine
comprises the recursive steps of: selecting a probe discretization
for the range-term; expanding the game tree underneath the
range-term node based on said probe discretization; computing the
payoff for the range-term node based on the expanded game tree; and
selecting a new probe discretization.
3. The method of 2, wherein selecting said probe discretization is
based on constraints in the continuous game moves.
4. A system for automated negotiation with continuous game moves,
the system including: at least one processor and at least one
associated memory device storing instructions for causing the at
least one processor to construct a game tree with a root node that
represents a current state of a negotiation; evaluate the game
tree; select a next offer based on an output of the evaluating the
game tree; define a range-term based on the continuous game moves
and for treating the range-term as a single continuous variable in
the game tree; and halt expansion of a branch of the game tree at a
range-term node for which only the range-term was changed in the
move leading to said range-term node, wherein the instructions
include an optimization process routine for causing the at least
one processor to determine an optimum payoff value for each
range-term node.
5. The system of claim 4, wherein the optimization process routine
further causes the at least one processor to: select a probe
discretization for a range-term; expand a game tree underneath a
range-term node based on said probe discretization; compute a
payoff for a range-term node based on a expanded game tree, and;
select a new probe discretization.
6. The system of claim 5, wherein selecting the probe
discretization depends on the selection of constraints in the
continuous game moves.
7. A computer program comprising program code instructing a
computer to execute a procedure to perform a method for automated
negotiation with continuous game moves, the method including the
steps of: a) constructing a game tree, wherein a root node of the
game tree represents a current state of the negotiation; b)
evaluating the game tree; and c) selecting a next offer based on
step b), wherein step a) includes; defining a range-term based on
the continuous game moves and treating the range-term as a single
continuous variable in the game tree; halting expansion of a branch
of the game tree at a range-term node for which only the range-term
was changed in the move leading to said range-term node, and
wherein step b) includes; applying an optimization process routine
to determine an optimum payoff value for each range-term node.
8. The program of claim 7, wherein the optimization process routine
causes the computer to recursively: select a probe discretization
for the range-term; expand the game tree underneath the range-term
node based on said probe discretization; compute the payoff for the
range-term node based on the expanded game tree, and; select a new
probe discretization.
9. The program of claim 8, wherein the new probe discretization
selection is based on constraints in the continuous game moves.
Description
FIELD OF THE PRESENT INVENTION
[0001] The present invention relates broadly to a processor-based
negotiation methods, and more specifically to computer readable
media and systems for automated negotiation.
BACKGROUND OF THE PRESENT INVENTION
[0002] Market transactions typically include negotiations between
buyers and sellers. Such negotiation may involve reiterative offers
and counteroffers relating to the terms of the sale, e.g., price,
delivery, warranty, payment options, and product features. Given
the relative complexity of such negotiations, trying to automate
such a negotiation process presents a significant challenge.
[0003] In the gaming world, many contests between parties have been
successfully automated. In fact, an entire industry of automated
games has been developed. Even traditional games have been
successfully automated, e.g., chess, checkers, tic-tac-toe, etc.
One technique for automating games is to use computer gaming
strategy.
[0004] Computer gaming strategy often involves building a "game
tree" that allows a computer to process the options presented as
the game progresses in order to select options at each stage that
will most likely result in a win. Other attempts to automate games
have included heuristic approaches that attempt to emulate human
behaviour. The game tree strategy, however, uses available
computing power to produce comparable or better results than the
heuristic models.
[0005] A game tree generally includes nodes representing the
various states, stages or positions, that may occur during the
game. A root node represents the current state. Under each root
node, a child node represents an option or move that is available
from the root node. When there are no further options available,
the node becomes a "terminal node". Expanding the game tree to all
its terminal nodes allows all possible options to be represented
and considered.
[0006] Negotiations can present several complexities not normally
found in a standard game or contest. For example, several variables
or terms can be all negotiated at once, such as price, payment
systems, delivery date, product specifications, etc. Some such
variables may not present finite, discrete options or moves, e.g.,
as in price, volume, time of delivery, etc. Considering all such
continuously variable options would require an infinite number of
branches on a game tree.
[0007] Such complexities make using computers difficult in
automating business negotiations or other contests having similar
continuously variable attributes. For example, discretization to
too fine a granularity makes the game trees too bushy because there
are too many leaves. It can become impractical to evaluate each
leaf. Discretization to too coarse a level can result in an optimum
being missed.
SUMMARY OF THE PRESENT INVENTION
[0008] Briefly, a processor-based method for automated negotiation
with continuous games moves includes constructing a game tree with
a root node that represents a current state of a negotiation;
defining a range-term based on continuous game moves; treating a
range-term as a single continuous variable in said game tree;
halting expansion of a branch of said game tree at a range-term
node for which only a range-term was changed in a move leading to
said range-term node; and evaluating said game tree to select a
next offer with an optimization process routine to determine an
optimum payoff value for each range-term node.
BRIEF DESCRIPTION OF THE DRAWINGS
[0009] FIG. 1 is a flow-chart illustrating a processor-based method
in accordance with an embodiment of the present invention;
[0010] FIG. 2 is a schematic drawing illustrating the creation of a
game tree in accordance with an embodiment of the present
invention;
[0011] FIG. 3 is a schematic drawing illustrating the evaluation of
the game tree of FIG. 2 in accordance with an embodiment of the
present invention; and
[0012] FIG. 4 is a schematic drawing illustrating an automated
negotiation system in accordance with an embodiment of the present
invention.
DETAILED DESCRIPTION OF THE EMBODIMENTS
[0013] FIG. 1 represents a game-tree negotiation method embodiment
of the present invention, and is referred to herein by the general
reference numeral 100. Method 100 starts at a step 102. In a step
104, an offer is received. Since a negotiation may be viewed as a
type of contest, the opposite party in such negotiation may be
referred to as the "opponent". Thus, such offer is received from
the opponent and may include numerous terms or "variables" related
to the deal being negotiated.
[0014] In typical negotiations, the goal is to negotiate favorable
variables, and correspondingly, not to enter into a bad deal. A
negotiation may be viewed conceptually as a filling in of the
blanks of a contract. Each blank corresponds to a variable of the
deal. As each such variable is agreed upon, the corresponding
blanks in the contract are filled. When all variables have been
collected, the contract is complete and a deal has been made. If an
automated process of negotiation is to proceed efficiently,
variables cannot be re-negotiated once agreed to. Thus, certain
constraints on the negotiation may be imposed in order to make the
automated process efficient.
[0015] In a step 106, the offer validation begins and may include a
determination of how the offer should be categorized and ultimately
how to respond appropriately. For example, such validation may
include identifying the opponent making the offer, and the subject
matter of the offer, to ensure the offer relates to the current
deal being negotiated. The process may further determine whether
the offer constitutes a legal offer, as defined by the specific
automated negotiation process. For example, step 108 determines
whether the offer is a legal offer or if the offer violates some
constraint. For purposes of automating the negotiation process,
certain constraints may be placed on the negotiation process.
[0016] If the offer does not violate any of the constraints and
thus qualifies as a legal offer, method 100 continues to step 110.
In step 110, a game tree is constructed based on the offer
received. Such constitutes the root node, from which the game tree
is expanded via different levels of parent/child nodes. The game
tree generally includes nodes representing the various states of
the negotiation. The construction of a game tree is discussed in
more detail in reference to FIG. 2. Once the game tree has been
constructed, the game tree is evaluated in step 112. The evaluation
of the game tree includes assigning a payoff value to each node,
which represents the node's desirability in terms of offering the
best payoff to the party from the negotiation that has the option
to move to that node. The evaluation of the game tree is discussed
in more detail in reference to FIG. 3.
[0017] In step 114, a counteroffer is selected. Generally, the
counteroffer will be based on a new state of the negotiation
represented by the child node under the current root node which has
the highest payoff of the available child nodes, having the highest
payoff is chosen from the available counteroffers. The selected
counteroffer can then be presented as a response to the opponent in
step 116. Once the counteroffer has been presented to the opponent,
method 100 may loop back to step 104 to await the receipt of
another offer from the opponent in response to the counteroffer.
Otherwise, the process may end at step 120. The negotiation process
continues reiteratively until all variables of the deal have been
completed, e.g., there are no more counteroffers available.
[0018] In method 100, a legal counteroffer is one that narrows the
range of potential deals by eliminating or narrowing a variable of
the deal. Such guards against getting trapped in a never-ending
loop during the automated negotiation process. If an offer does not
narrow or eliminate a variable, the overall negotiation is not
advanced to a conclusion. There can be no valid counteroffer, and
so the offer is rejected in a step 118. When an offer has been
rejected, a response is presented to the opponent in the
negotiation in step 116. In this case, the response would be a
rejection of the illegal offer. Once a response has been presented
to the opponent, method 100 may continue to step 104 to await the
receipt of another offer, or the process may end at step 120.
[0019] FIG. 2 represents construction of a game tree 200 that could
be used in the processor-based method of FIG. 1. Such accommodates
continuous variables in the negotiations, e.g., a price within a
range. Continuous variables in the context of the described
embodiments are terms of the deal whose values may vary within a
given range or continuum. In the example embodiment, a range-term
based on the continuous variables is defined, and the range-term is
treated as a single continuous variable in the game tree. Many
analysis algorithms cannot use numeric attribute values, so the
numeric attributes must be discretized. "Discretization" divides
numeric data into intervals, creating "string" values for the
attribute that then can be used for analysis. Dividing the data
into intervals can make the data analysis more robust and easier to
understand. In reality, prices in the United States are not truly
continuous, but discrete to the penny.
[0020] In the example embodiment, nodes that involve changing only
range terms are marked and the process of constructing that portion
of the game tree omitted. In particular, as the creation of the
child and sibling nodes progresses in the game tree construction
200, nodes will develop in which only the range term is being
modified in all subsequent nodes or moves. When this occurs, the
pattern of nodes from the child is essentially identical to the
pattern from the parent node. It has been recognized that since
there is no way to predict how many rounds of offers may occur
after that point, there is no benefit or need to construct an
unknown quantity of repetitive nodes under the child node. Rather,
the child node is marked as a range-term node and the game tree
construction progresses with the creation of nodes in other
branches. An optimization process routine is then used during the
later evaluation process to determine the payoff value to be
assigned to such range-term nodes.
[0021] The negotiation for which the game tree 200 is constructed
and shown in FIG. 2 is directed to the sale of a pair of shoes in
which there are two variables in the deal. The variables for the
negation of FIG. 2, are the type of shoes and the price of the
shoes. The type of shoes is limited to two states, wingtip (W) and
loafer (L). The price variable (P) is considered to be a continuous
variable in that the variable can have a virtually infinite number
of values.
[0022] The construction of game tree 200 in FIG. 2 begins by
determining legal counteroffers available from a current node, node
201. There are five legal counteroffers and child nodes. In
general, legal counteroffers must narrow the number of unsettled
variables of the deal, e.g., selecting a state for one of the
variables. For example, the shoe type variable is addressed in
nodes 202-206. The shoe type may be wingtips (W) or loafers (L). A
node 202 is created to represent a counteroffer where wingtips are
selected, a flag "W" represents this move. A node 203 represents a
further negotiation of the price for the wingtips. From such point,
the range term "P" can continue to be modified by the parties
indefinitely. Accordingly, an indefinite number of nodes could be
created beneath nodes 203 and 205, and these would essentially
repeat the same states.
[0023] To illustrate this point, a further node branch labelled "P"
and a node 206 are shown in an area 207. Node 206 represents a
price offer from the other party to the negotiation further
modifying the range term "P" on the branch from node 204.
[0024] In varying embodiments, any repeating branches are
truncated, e.g., nodes 203 and 205 are simply marked as range-term
nodes. So area 207 and node 206 would not exist. A further
branch-expansion attempt however may be needed that produces node
206 in order to see that it should not have been expanded.
[0025] A node 216 can be identified and created as a child node to
the root node, node 201. Child node 216 represents the combined
moves of selecting wingtips and modification of the range term,
e.g., the price in the example embodiment. Such combined move is
represented on the branch to node 210 as a flag "W,P". A node 211
is created as a child beneath Node 210 since the price can continue
to be changed. Accordingly, a flag "P" is shown on the branch
between nodes 210 and 211. From this point, the range-term can
continue to be modified by the parties indefinitely.
Conventionally, an indefinite number of nodes could be created
beneath node 211 which would all essentially represent the same
state as node 211. So, rather than repeating nodes beneath node
211, the construction of this branch of the game tree 200 is
halted. Node 211 is simply marked as a range-term node.
[0026] From root node 201, only the price counteroffer could be
responsible for a move, as to a node 212. Such represents a
counteroffer where only the price term has been modified, as
indicated by the "P" flag. Price is a range-term in this example
embodiment, so multiple paths can be taken from node 212. These
options are illustrated in an area 213 in FIG. 2. The possible
child nodes are nodes 214-218 and essentially repeat nodes 202,
204, 208, 210, and 212. Therefore, the expansion of the game tree
200 under node 212 is not needed in the initial creation of game
tree 200.
[0027] Game tree 200 is expanded during an evaluation process for
optimization process routines to assign payoff values to each of
the nodes. Further construction in each branch of the tree 200 is
abbreviated whenever range-term nodes result in identical child
patterns. Such pruning strategy can be formulated by stopping
expansion of the tree once a node is reached for which in the prior
move leading to that particular node only the range-term was
changed.
[0028] Importantly, game tree 200 does not include any terminal
nodes. Moreover, the game tree 200 has only range-term nodes as its
leaves. In prior art approaches, such game tree construction is
only finished when all of the terminal nodes have been completed.
But such is open-ended because there is an infinite number of
possible increments for the continuous variables.
[0029] An optimization process routine is used in the evaluation of
game tree 200. The range-term nodes are extended for different
assumed changes of the range-term in the next and subsequent moves
until terminal nodes are reached and the payoff at the terminal
nodes can be computed. Such payoffs are propagated back to the
range-term node where the result is used to determine a new assumed
change in the range-term as part of the optimization process.
[0030] FIG. 3 illustrates a game tree 300, e.g., for use in the
processor-based negotiation method of FIG. 1. There is a branch
taken when loafers "L" is decided that includes nodes 302 and 303.
There is a branch taken when wingtips "W" is decided that includes
nodes 304 and 305. There is a third branch taken when both "L,P" is
decided that includes nodes 308 and 309. There is a branch taken
when "W,P" are both decided that includes nodes 310 and 311. There
is a branch taken when only price "P" is decided that includes
nodes 312 and area 313.
[0031] For each of the range-term nodes 302, 304, 306, 308 and 309,
the evaluation process involves the logical extension of the game
tree under the respective range term nodes, assuming an initial
change in the range-term. The logical extension proceeds until
terminal nodes have been reached, and the payoff value is computed
for each terminal node, where all variables, including the
range-term, are now fixed. The payoff value is determined in the
example embodiment using utility functions of the parties involved.
Once the payoff value for each terminal node has been calculated,
the value for each non-terminal node can be determined. The value
for each non-terminal node is that of the child with the largest
value for the party that can move to it. In that way, the values of
the terminal nodes are propagated to the range-term nodes. At the
range-term nodes, the payoff is used to calculate a new value to
try for the change in the range-term, as part of the optimization
process.
[0032] Once optimum payoffs have been determined for each of the
range-term nodes, their respective payoff values are then
propagated up the game tree 300 to the root node 301. The value for
each non-terminal node during the propagation is that of the child
with the largest value for the party that can move to it. It is
noted that, therefore, if a particular party is not making the next
move from a particular non-terminal node, the value of that
non-terminal node is not the child with the largest value for that
party, but rather the value of the child which has the largest
value for the other party, which is the one that can move to
it.
[0033] Once all the payoff values have been so propagated, and the
child nodes beneath the root node 301 are all assigned a payoff
value, the child node of the root node 301 with the highest
available payoff is usually selected as the best option to move,
e.g., to make a counteroffer in the context of the example
embodiment. It is noted that the move from the root node 301 is, in
the context of the example embodiment, always a move made by the
party evaluating the game tree at that particular time.
[0034] For example, in FIG. 3 the logical extensions of the game
tree 300 during an evaluation process are shown for one of the
range-term nodes, node 312, in area 313. In FIG. 3, the two numbers
shown in some of the flags represent the range boundaries of the
range-term leading up to a particular node. When the range is zero,
e.g., both numbers are the same, the range-term has been agreed
upon by the parties at the node to which the associated move
leads.
[0035] In the evaluation in relation to range-term node 312, its
payoff value to the party assessing the game tree, in the example
embodiment the seller, is that of its child, one of nodes 314 to
318, which has the highest payoff for the buyer, since it is the
buyer that makes the next move from node 312. Adversely, the payoff
value to the seller of node 318, for example, is its child, nodes
321 to 322, with the highest payoff value to the seller, who is
making the next move from node 318.
[0036] In the example embodiment, the evaluation involving a
logical extension of the game tree under node 312 (dotted area 313)
is repeated for different assumed initial changes in the range-term
from node 312, until an optimum payoff for range-term node 312 has
been identified using a chosen optimization process routine.
[0037] Various conventional optimization process routines can be
used to calculate a payoff for a limited number of range term
values. An optimal range term value may be estimated using linear
or non-linear mathematical techniques. The payoff value for the
optimal value of the range term can then be computed and that
payoff value may be used for the marked range-term node. Thus, the
assignment of a payoff value can occur in the evaluation process
even though that portion of the tree has not been full expanded in
the initial creation of the game tree 300. Rather, the evaluation
involves a logical extension of the game tree under each range-term
node for selected changes in the range-term, e.g., a finite
extension, as part of the optimization process of the example
embodiment.
[0038] One simple example optimization process routine involves
each of the parties having specified minimum and maximum
concessions for each continuous variable contributing to the
range-term, in the example embodiment only one, the price. The
optimization involves computing the payoff of a range-term node for
each of the specified minimum and maximum concessions, and their
mean value, then fitting a parabola through these three points. The
fourth try is the concession corresponding to the maximum of the
parabola if it lies on this interval.
[0039] FIG. 4 illustrates a general-purpose computer system
embodiment of the present invention for automated negotiation. The
computer system 400 includes a processor (CPU) 402 that is coupled
to read only memory (ROM) 406 and random access memory (RAM)
404.
[0040] Generally, ROM transfers data and instructions
unidirectional to CPU 402, while RAM typically transfers data and
instructions in a bi-directional manner. Both storage devices 404,
406 may comprise any suitable computer-readable media. A secondary
storage medium 408, which is typically a mass memory device, is
also coupled bi-directionally to CPU 402 and provides additional
data storage capacity. The mass memory device 408 is a
computer-readable medium that may be used to store programs
including computer code, data, and the like. Mass memory device 408
is typically a storage medium utilizing a non-volatile memory such
as a hard disk or a tape that is generally slower than primary
storage devices 404, 406. Mass memory storage device 408 may take
the form of a magnetic or paper tape reader or other known devices.
The information retained within the mass memory device 408 may, in
appropriate cases, be incorporated as part of RAM 406 as virtual
memory.
[0041] CPU 402 also couples to input/output devices 410 that may
include devices such as video monitors, track balls, mice,
keyboards, microphones, touch-sensitive displays, transducer card
readers, magnetic or paper tape readers, tablets, styluses, voice
or handwriting recognizers, or other known input/output devices
including other computers. Finally, CPU 402 optionally may be
coupled to a computer or telecommunications network, e.g., an
Internet network, or an intranet network, using a network
connection as shown generally at 412. With such a network
connection, CPU 402 may receive information from the network, or
may output information to the network in the course of performing
the processes and methods in accordance with the disclosure herein.
Such information is often represented as a sequence of instructions
to be executed using CPU 402. The information may be received from
and sent to the network, for example, in the form of a computer
data signal embodied in a carrier wave.
[0042] In one embodiment, sequences of instructions may be executed
substantially simultaneously on multiple CPUs, as for example a CPU
in communication across network connections. Specifically, the
above-described method may be performed across a computer network.
Additionally, one of skill in the art will recognize that the
method may be recognized as sets of computer codes and that such
computer codes can be stored in computer readable media such as
RAM, ROM, hard discs, floppy discs, carrier waves or other storage
devices or media.
[0043] In accordance with a embodiment, there is provided a system
for automated negotiation with continuous game moves. The system
includes at least one processor and at least one associated memory
device storing instructions for causing the at least one processor
to construct a game tree with a root node that represents a current
state of a negotiation; evaluate the game tree; select a next offer
based on an output of the evaluating the game tree; define a
range-term based on the continuous game moves and for treating the
range-term as a single continuous variable in the game tree; and
halt expansion of a branch of the game tree at a range-term node
for which only the range-term was changed in the move leading to
said range-term node. The instructions include an optimization
process routine for causing the processor to determine an optimum
payoff value for each range-term node.he optimization process
routine may further causes the at least one processor to select a
probe discretization for a range-term; expand a game tree
underneath a range-term node based on said probe discretization;
compute a payoff for a range-term node based on a expanded game
tree, and select a new probe discretization.
[0044] Selecting the probe discretization may depend on the
selection of constraints in the continuous game moves.
[0045] In another embodiment, there is provides a computer program
comprising program code instructing a computer to execute a
procedure to perform a method for automated negotiation with
continuous game moves. The method includes the steps of: a)
constructing a game tree, wherein a root node of the game tree
represents a current state of the negotiation; b) evaluating the
game tree; and c) selecting a next offer based on step b). Step a)
includes defining a range-term based on the continuous game moves
and treating the range-term as a single continuous variable in the
game tree; and halting expansion of a branch of the game tree at a
range-term node for which only the range-term was changed in the
move leading to said range-term node. Step b) includes applying an
optimization process routine to determine an optimum payoff value
for each range-term node.
[0046] It will be appreciated by the person skilled in the art that
numerous modifications and/or variations may be made to the present
invention as shown in the specific embodiments without departing
from the spirit or scope of the present invention as broadly
described. The present embodiments are, therefore, to be considered
in all respects to be illustrative and not restrictive.
* * * * *