Bounceback detection in online product configuration
The present invention provides techniques for effecting improved guidance to the user of a configuration system by detecting and eliminating bounceback behavior that unnecessarily eliminates otherwise valid domain members from the selection provided to the user. Generally, domain members that would have been eliminated (e.g., grayed out) solely because of bounceback behavior are identified and prevented from being displayed as grayed out or otherwise eliminated on the user display.
1 - 26 . (canceled)
27 . A method for performing a product configuration, the product configuration associated with a configuration problem defining a number of constraints, one or more variables, and domain members associated with each variable, the method comprising:
(a) receiving user input specifying at least one selected domain member;
(b) propagating the constraints over the received user input thereby producing a result that identifies incompatibilities between the domain members caused by the at least one selected domain member; and
(c) modifying the result by detecting and eliminating incompatibilities caused solely by bounceback behavior.
28 . The method of claim 27 , further comprising:
generating a configuration page based on the modified result so that domain members identified as being incompatible due to bounceback behavior are not marked as conflicted choices on the configuration page; and providing the configuration page to the user.
29 . The method of claim 27 , further comprising:
repeating (a), (b), and (c) included in the method until the product configuration is complete.
30 . The method of claim 27 , wherein the method is implemented by a set of software instructions running on a computer.
31 . A system for performing a product configuration, the product configuration associated with a configuration problem defining a number of constraints, one or more variables, and domain members associated with each variable, the system comprising:
a configuration engine adapted to receive user input specifying at least one selected domain member and to propagate the constraints over the received user input thereby producing a result that identifies incompatibilities between the domain members caused by the at least one selected domain member; and
a bounceback detection module operatively coupled to the configuration engine, the bounceback detection module adapted to modify the result by detecting and eliminating incompatibilities caused solely by bounceback behavior.
32 . The system of claim 31 , further comprising:
a page generation module operatively coupled to the configuration engine, the page generation module adapted to generate a configuration page based on the modified result so that domain members identified as being incompatible due to bounceback behavior are not marked as conflicted choices on the configuration page, and to provide the configuration page to the user.
33 . The system of claim 31 , wherein the configuration engine and the bounceback detection module are implemented by a set of software instructions running on a computer.
34 . A method for performing a product configuration, the product configuration associated with a configuration problem defining a number of constraints, one or more variables, and domain members associated with each variable, the method comprising:
receiving user input specifying at least one selected domain member;
propagating the constraints over the received user input thereby producing a result that identifies incompatibilities between the domain members caused by the at least one selected domain member;
modifying the result by detecting and eliminating incompatibilities caused solely by bounceback behavior;
generating a configuration page based on the modified result so that domain members identified as being incompatible due to bounceback behavior are not marked as conflicted choices on the configuration page; providing the configuration page to the user; and
repeating the receiving, propagating, modifying, generating, and providing steps until the product configuration is complete.
35 . A method for detecting bounceback behavior associated with a configuration problem, the configuration problem defining a number of constraints, one or more variables, and domain members associated with each variable, the method comprising:
(a) receiving a domain member selection for a particular variable;
(b) setting a bounceback detection bit vector associated with each non-selected domain member of the particular variable so that each of those bounceback detection bit vectors indicates bounceback behavior;
(c) setting an elimination flag associated with each non-selected domain member of the particular variable so that each of those elimination flags indicates that its associated domain member is tentatively eliminated;
(d) propagating the constraints to identify eliminated domain members of the variables;
(e) setting the bounceback detection bit vector of the eliminated domain members to indicate which variable caused their elimination; and
(f) setting the elimination flag of each of the other eliminated domain members.
36 . The method of claim 35 , further comprising preliminary steps of:
initializing the bounceback detection bit vector for each domain member of each variable; and
initializing the elimination flag for each domain member of each variable.
37 . The method of claim 35 , wherein receiving the domain member selection includes receiving a plurality of domain member selections associated with a corresponding number of particular variables, and the setting and propagation steps of the method are performed for each of the domain member selections.
38 . The method of claim 35 , wherein bounceback detection bit vectors that indicate bounceback behavior indicate that the particular variable associated with the selected domain member is responsible for elimination of the non-selected, domain members.
39 . The method of claim 35 , further comprising:
confirming the tentative elimination of a non-selected domain member in response to the bounceback detection bit vector associated with that non-selected domain member not indicating bounceback behavior as a result of subsequent constraint propagation.
40 . The method of claim 35 , further comprising:
overriding the tentative elimination of a non-selected domain member in response to the bounceback detection bit vector associated with that non-selected domain member indicating bounceback behavior despite subsequent constraint propagation.
41 . The method of claim 35 , wherein the step for setting the bounceback detection bit vector of an eliminated domain member to indicate which variable caused that domain member's elimination includes:
based on the constraints, identifying a domain member causing the eliminated domain member to be eliminated; and
copying the bounceback detection bit vector associated with the identified domain member to the bounceback detection bit vector associated with the eliminated domain member.
42 . The method of claim 35 , wherein the step for setting the bounceback detection bit vector of an eliminated domain member to indicate which variable caused that domain member's elimination includes:
based on the constraints, identifying a join corresponding to a disjunction;
logically ANDing the bounceback detection bit vectors associated with the domain members included in the join thereby producing a resulting bounceback detection bit vector; and
copying the resulting bounceback detection bit vector to the bounceback detection bit vector associated with the eliminated domain member.
43 . The method of claim 35 , wherein the step for setting the bounceback detection bit vector of an eliminated domain member to indicate which variable caused that domain member's elimination includes:
based on the constraints, identifying a join corresponding to a conjunction;
logically ORing the bounceback detection bit vectors associated with the domain members included in the join thereby producing a resulting bounceback detection bit vector; and
copying the resulting bounceback detection bit vector to the bounceback detection bit vector associated with the eliminated domain member.
44 . The method of claim 35 , further comprising:
generating a configuration page based on the constraints so that domain members identified as being eliminated due to bounceback behavior are not marked as conflicted choices on the configuration page; and
providing the configuration page to a user.
45 . The method of claim 35 , wherein (a)-(f) of the method are repeated each time a user submits one or more new domain member selections.
46 . The method of claim 35 , wherein the method is implemented by a set of software instructions running on a computer.
47 . A method for detecting and eliminating bounceback behavior associated with a configuration problem, the configuration problem defining a number of constraints, one or more variables, and domain members associated with each variable, the method comprising:
initializing a bounceback detection bit vector for each domain member of each variable;
initializing a elimination flag for each domain member of each variable;
receiving a domain member selection for a particular variable;
setting the bounceback detection bit vector associated with each non-selected domain member of the particular variable so that each of those bounceback detection bit vectors indicates bounceback behavior;
setting the elimination flag associated with each non-selected domain member of the particular variable so that each of those elimination flags indicates that its associated domain member is tentatively eliminated;
propagating the constraints to identify eliminated domain members of the variables;
setting the bounceback detection bit vector of the eliminated domain members to indicate which variable caused their elimination; and setting the elimination flag of each of the other eliminated domain members.
48 . The method of claim 47 , wherein the step for setting the bounceback detection bit vector of an eliminated domain member to indicate which variable caused that domain member's elimination includes:
based on the constraints, identifying a domain member causing the eliminated domain member to be eliminated; and
copying the bounceback detection bit vector associated with the identified domain member to the bounceback detection bit vector associated with the eliminated domain member.
49 . The method of claim 47 , wherein the step for setting the bounceback detection bit vector of an eliminated domain member to indicate which variable caused that domain member's elimination includes:
based on the constraints, identifying ajoin corresponding to a disjunction; logically ANDing the bounceback detection bit vectors associated with the domain members included in the join thereby producing a resulting bounceback detection bit vector; and
copying the resulting bounceback detection bit vector to the bounceback detection bit vector associated with the eliminated domain member.
50 . The method of claim 47 , wherein the step for setting the bounceback detection bit vector of an eliminated domain member to indicate which variable caused that domain member's elimination includes:
based on the constraints, identifying a join corresponding to a conjunction; logically ORing the bounceback detection bit vectors associated with the domain members included in the join thereby producing a resulting bounceback detection bit vector; and
copying the resulting bounceback detection bit vector to the bounceback detection bit vector associated with the eliminated domain member.
51 . The method of claim 47 , wherein the method is implemented by a set of software instructions running on a computer.
52 . A method for performing a product configuration, the method comprising:
receiving user input specifying at least a first domain member of a plurality of domain members, the plurality of domain members being associated with a variable of the product configuration;
propagating one or more constraints associated with the received user input to produce a result that identifies a potential incompatibility of a second domain member of the plurality of domain members, the one or more constraints characterizing limits on the product configuration, wherein the potential incompatibility is caused solely by the specification of the first domain member and constraint propagation resulting from the specification of the first domain member; and
modifying the result by eliminating the potential incompatibility.
53 . The method of claim 52 , wherein the constraint propagation involves at least one other variable of the product configuration.
54 . A system for performing a product configuration, the system comprising:
means for receiving user input specifying at least a first domain member of a plurality of domain members, the plurality of domain members being associated with a first variable of the product configuration;
means for identifying an incompatibility in the product configuration, the incompatibility being based on the user input and propagation of constraints of the product configuration, the identification excluding any incompatibilities caused solely by bounceback behavior; and
producing a result including the identified incompatibility.
55 . A computer readable medium including computer code stored thereupon, the computer code comprising:
a code segment configured for receiving user input specifying at least a first domain member of a plurality of domain members, the plurality of domain members being associated with a variable of the product configuration;
a code segment configured for propagating one or more constraints associated with the received user input to produce a result that identifies an potential incompatibility of a second domain member of the plurality of domain members, the constraints characterizing limits on the product configuration; and
a code segment configured for modifying the result by eliminating the potential incompatibility, if the potential incompatibility is caused solely by the specification of the first domain member and constraint propagation resulting from the specification of the first domain member.