Constraint solver execution service and infrastructure therefor

US10977111B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10977111-B2
Application numberUS-201816115408-A
CountryUS
Kind codeB2
Filing dateAug 28, 2018
Priority dateAug 28, 2018
Publication dateApr 13, 2021
Grant dateApr 13, 2021

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A constraint solver service of a computing resource service provider performs evaluations of logic problems provided by the service provider's users and/or services by deploying a plurality of constraint solvers to concurrently evaluate the logic problem. Each deployed solver has, or is configured with, different characteristics and/or capabilities than the other solvers; thus, the solvers can have varying execution times and ways of finding a solution. The service may control execution of the solvers using virtual computing resources, such as by installing and configuring a solver to execute in a software container instance. The service receives solver results and delivers them according to a solution strategy such as “first received” to reduce latency or “check for agreement” to validate the solution. An interface allows the provider of the logic problem to select and configure solvers, issue commands and modifications during solver execution, select the solution strategy, and receive the solution.

First claim

Opening claim text (preview).

What is claimed is: 1. A system, comprising one or more processors and memory storing computer-executable instructions that, when executed by the one or more processors, cause the system to: receive a first request to evaluate a logic problem associated with a problem source, wherein the problem source is one of a user of a computing resource service provider, and a service of the computing resource service provider; determine that the first request includes a first set of problem statements describing at least a first portion of the logic problem; select, based at least in part on the first request, one or more solvers from a plurality of available constraint solvers configured to be installed by the system; communicate with a container management system of the computing resource service provider to cause the container management system to: obtain one or more container images each associated with a corresponding solver of the one or more solvers, the one or more container images each comprising software and data needed to install the corresponding solver; provision available virtual computing resources of the computing resource service provider as a plurality of container instances; install one of the one or more container images into each of the plurality of container instances to produce a plurality of solver instances each configured to operate one of the one or more solvers as an executable program, such that each of the one or more solvers corresponds to at least one of the plurality of solver instances; and deploy the plurality of solver instances into a virtual computing environment of the computing resource service provider; send the first set of problem statements to each of the plurality of solver instances; send to each of the plurality of solver instances a solve command that causes the corresponding solver operated by the solver instance to evaluate the logic problem and produce a corresponding result; obtain a first result produced by a first solver of the one or more solvers, the first solver operated by a first solver instance of the plurality of solver instances; and perform an action associated with obtaining the first result. 2. The system of claim 1 , wherein to perform the action, the instructions, when executed, cause the system to: determine that the first result is produced before the corresponding result of any other solver instance of the plurality of solver instances; send a notification to the problem source indicating that the first result is available; and send, to each of the plurality of solver instances other than the first solver instance, a terminate command that causes the corresponding solver operated by the solver instance to stop evaluating the logic problem. 3. The system of claim 1 , wherein operation of the first solver is configurable by setting values of a set of configuration parameters, and prior to sending the solve command to the plurality of solver instances, the instructions, when executed, further cause the system to: determine, based at least in part on the first request, a first configuration of the set of configuration parameters and a second configuration of the set of configuration parameters; determine that a second solver instance of the plurality of solver instances is configured to operate the first solver; cause the first solver instance to operate the first solver using the first configuration; and cause the second solver instance to operate the first solver using the second configuration. 4. The system of claim 1 , wherein the user is the problem source and the instructions, when executed, further cause the system to: provide, to a computing device associated with the user and in communication with the system via the internet, a web interface that enables the user to transmit, to the system as a first user input, the first set of problem statements and settings identifying the one or more solvers; receive the first user input as the first request; and select the one or more solvers using the settings. 5. The system of claim 1 , wherein: the web interface further enables the user to transmit to the system: as a second user input, a second set of problem statements describing a second portion of the logic problem; and the solve command as a third user input; and the instructions, when executed, further cause the system to: receive the second user input; determine, based on the second user input, that the second set of problem statements is associated with the logic problem; send, to each of the plurality of solver instances: the second set of problem statements; and an append command that causes the solver instance to combine the first and second sets of problems statements as the logic problem to be evaluated; and receive the third user input, wherein the system sends the solve command to the plurality of solver instances in response to receiving the third user input. 6. A system, comprising one or more processors and memory storing, for each of a plurality of available constraint solvers configured to be installed by the system, corresponding software resources needed to install the available constraint solver as an executable program, the memory further storing computer-executable instructions that, when executed by the one or more processors, cause the system to: obtain a logic problem; determine a number N of solver instances to be used to evaluate the logic problem; determine, based on requirements associated with at least one of the plurality of available constraint solvers, one or more encodings of the logic problem; select one or more solvers from the plurality of available constraint solvers; using the corresponding software resources of the one or more solvers, instantiate N solver instances in a virtual computing environment, each solver instance of the N solver instances comprising virtual computing resources configured to execute a corresponding solver of the one or more solvers and storing a corresponding encoding, of the one or more encodings, that is readable by the corresponding solver; send to each of the N solver instances a solve command that causes the corresponding solver executing on the solver instance to evaluate the corresponding encoding and produce a corresponding result describing one of a plurality of solutions to the logic problem; obtain a first result produced by a first solver of the one or more solvers from a first encoding of the one or more encodings; and perform an action associated with obtaining the first result. 7. The system of claim 6 , wherein executing the instructions further causes the system to: generate the first encoding as a first set of problem statements representing the logic problem and formatted in a first format readable by the first solver; and generate a second encoding of the one or more encodings, the second encoding comprising a second set of problem statements representing the logic problem and formatted in a second format readable by a second solver of the one or more solvers, the second solver executing on a second solver instance of the N solver instances, the second solver instance storing the second encoding. 8. The system of claim 6 , wherein executing the instructions further causes the system to: generate the first encoding as a first set of problem statements representing the logic problem and formatted in a first format readable by the first solver; and generate a second encoding of the one or more encodings, the second encoding comprising a second set of problem statements representing the logic problem and formatted in the first format, the second set of problem statements being different from the first set of problem statements, the second encoding being eval

Assignees

Inventors

Classifications

  • Software deployment · CPC title

  • Test management · CPC title

  • Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455) · CPC title

  • Hypervisor-specific management and integration aspects · CPC title

  • Creating, deleting, cloning virtual machine instances · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10977111B2 cover?
A constraint solver service of a computing resource service provider performs evaluations of logic problems provided by the service provider's users and/or services by deploying a plurality of constraint solvers to concurrently evaluate the logic problem. Each deployed solver has, or is configured with, different characteristics and/or capabilities than the other solvers; thus, the solvers can …
Who is the assignee on this patent?
Amazon Tech Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/45558. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 13 2021 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 6 related publications on this page (citations in our corpus or others sharing the same primary CPC).