Interactive constraint solver
Abstract
Constraint programming is used to solve problems that have many variables and that have many possible solutions. An interactive constraint solver application provides additional information to a user if a conflict arises between two choice-constraints so that the additional information can be used to resolve the conflict according to a model-constraint set up by an application developer. The additional information identifies a priority group, or queue, to which the constraint was added. Depending on the particulars included in the additional information, and the model-constraints, the conflict is resolved by the interactive constraint solver application.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method, comprising:
adding a plurality of constraints to a plurality of queues having different priorities, each constraint of the plurality of constraints associated with a respective priority of a queue to which that constraint is added, the plurality of queues comprising a first queue and a second queue that has a lower priority than said first queue; adding a choice-constraint to either the first queue or the second queue based on a role of a user who submitted the particular choice; determining a conflict between the choice-constraint and a particular constraint in either said first queue or said second queue; and returning information about said conflict, said information identifying the particular constraint and a priority of the queue that holds said particular constraint, wherein the method is performed by one or more computers.
2 . The method of claim 1 , wherein returning said information about said conflict comprises returning a resolution of said conflict based on a further constraint that indicates said higher priority of said first queue relative to said second queue.
3 . The method of claim 1 , wherein returning said information comprises providing a prompt requesting a further constraint that, when applied, resolves said conflict.
4 . The method of claim 1 , further comprising moving said choice-constraint from said second queue to said first queue in compliance with a further constraint.
5 . The method of claim 1 , wherein returning said information about said conflict comprises returning a resolution of said conflict, said resolution being rejecting said choice-constraint and retaining said particular constraint.
6 . The method of claim 1 , wherein returning said information about said conflict comprises returning a resolution of said conflict, said resolution being retaining said choice-constraint and removing the particular constraint.
7 . The method of claim 1 , wherein each queue is associated with a different role, and further comprising:
selecting either the first queue or the second queue according to the role of the user who submitted the particular choice-constraint, and adding the particular choice-constraint to the selected queue.
8 . A non-transitory computer-readable medium having instructions embodied thereon that when executed by one or more computing devices, cause the one or more computing devices to perform:
adding a plurality of constraints to a plurality of queues having different priorities, each constraint of the plurality of constraints associated with a respective priority of a queue to which that constraint is added, the plurality of queues comprising a first queue and a second queue that has a lower priority than said first queue; adding a choice-constraint to either the first queue or the second queue based on a role of a user who submitted the particular choice; determining a conflict between the choice-constraint and a particular constraint in either said first queue or said second queue; and returning information about said conflict, said information identifying the particular constraint and a priority of the queue that holds said particular constraint.
9 . The non-transitory computer-readable medium of claim 8 , wherein returning said information about said conflict comprises returning a resolution of said conflict based on a further constraint that indicates said higher priority of said first queue relative to said second queue.
10 . The non-transitory computer-readable medium of claim 8 , wherein returning said information comprises providing a prompt requesting a further constraint that, when applied, resolves said conflict.
11 . The non-transitory computer-readable medium of claim 8 , wherein the instructions, when executed by the one or more computing devices, further cause: moving said choice-constraint from said second queue to said first queue in compliance with a further constraint.
12 . The non-transitory computer-readable medium of claim 8 , wherein returning said information about said conflict comprises returning a resolution of said conflict, said resolution being rejecting said choice-constraint and retaining said particular constraint.
13 . The non-transitory computer-readable medium of claim 8 , wherein returning said information about said conflict comprises returning a resolution of said conflict, said resolution being retaining said choice-constraint and removing the particular constraint.
14 . The non-transitory computer-readable medium of claim 8 , wherein each queue is associated with a different role, and wherein the instructions, when executed by the one or more computing devices, further cause:
selecting either the first queue or the second queue according to the role of the user who submitted the particular choice-constraint, and adding the particular choice-constraint to the selected queue.Join the waitlist — get patent alerts
Track US2018032872A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.