WO2009097290A2 - Data processing system for solving np problems without hyper-polynomial cost - Google Patents

Data processing system for solving np problems without hyper-polynomial cost Download PDF

Info

Publication number
WO2009097290A2
WO2009097290A2 PCT/US2009/032153 US2009032153W WO2009097290A2 WO 2009097290 A2 WO2009097290 A2 WO 2009097290A2 US 2009032153 W US2009032153 W US 2009032153W WO 2009097290 A2 WO2009097290 A2 WO 2009097290A2
Authority
WO
WIPO (PCT)
Prior art keywords
inference
terms
phrase
variable
constraints
Prior art date
Application number
PCT/US2009/032153
Other languages
French (fr)
Other versions
WO2009097290A3 (en
Inventor
Clayton Gillespie
Original Assignee
Clayton Gillespie
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Clayton Gillespie filed Critical Clayton Gillespie
Publication of WO2009097290A2 publication Critical patent/WO2009097290A2/en
Publication of WO2009097290A3 publication Critical patent/WO2009097290A3/en
Priority to US12/823,652 priority Critical patent/US8577825B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations

Abstract

Within satisfaction problems or any decision or other problem which is reducible to a satisfaction problem, the invention tracks the sources of implications and identifies proximal parameterizations of conditional contradictions and subsequently avoids those contradictory conditions. The action is completed in less time than is incurred by existing methods and thus provides a performance improvement to the devices, software, or processes which address such problems. Such problems are addressed by devices, software, and processes related to many technical fields, including: image compression; image analysis; cryptanalysis; telecommunications routing; generic control systems for data processing; structural design of data processing systems; design and analysis of circuit or semiconductor mask; artificial intelligence; logistic scheduling and routing; design and analysis of proteins.

Description

Data Processing System for Solving NP Problems without Hyper-Polynomial Cost
Technical Field
The present invention provides a performance improvement that applies to processes, software, and devices in a wide variety of technical fields, including: image compression; image analysis; cryptanalysis; telecommunications routing; generic control systems for data processing; structural design of data processing systems; design and analysis of circuit or semiconductor masks; artificial intelligence; logistic scheduling and routing; design and analysis of proteins.
Background Art
"P" is a class of problems which can be defined as those problems that can be solved by a deterministic Turing (i.e., serial, random-access, or limited parallel- processing) machine in polynomial time. "NP" is a class of problems which can be defined as those problems that can be solved by a non-deterministic Turing (i.e., unlimited parallel-processing) machine in polynomial time. "NP-complete" is a subset of hard problems in NP whose membership in P has been doubted. Examples of NP-complete problems are The Traveling Salesman Problem, and Protein Folding, but there are many formulations of NP-complete problems, including problems pertinent to the technical fields listed above. (See http://www.csc.liv.ac.uk/~ped/teachadmin/COMP202/annotated np.html and
Mpj//wwwΛnada k^ are here included by reference.)
Heretofore, solutions to NP-complete problems and many other problems in NP, such as Integer Factoring, have either required an exhaustive search of possible value assignments for the variables represented in the problem, or otherwise required hyper-polynomial (e.g., N! or 3N) rather than polynomial (e.g., N3) costs. The Satisfaction Problem (SAT) was the first problem proven to be NP-complete. SAT consists of determining whether a given logical expression can be true for some value assignment on the variables of the expression (satisfiable) or whether that is impossible (unsatisfiable). A version of SAT is 3-SAT which represents a logical expression in conjunct-disjunct form where each constraint has exactly three terms.
Conjunct-disjunct form represents an expression as a list of conjunct ("ANDed") constraints where each constraint is composed of one or more disjunct ("ORed") logical terms. A "term" is a particular instance of a value assignment (usually "true" or "false") for a particular named predicate (also known as a "variable"). It is known that the representation of any problem which is in NP has a conversion to a logical expression in conjunct-disjunct form which does not incur a hyper-polynomial cost.
Computationally speaking, space and time are polynomially exchangeable; so we talk generally about polynomial cost rather than specifically about polynomial time. Being able to determine the satisfiability of arbitrary conjunct-disjunct expressions in polynomial time with a deterministic machine is therefore equivalent to being able to solve any NP-complete or simpler problem without hyper-polynomial cost.
In one preferred embodiment of the present invention, a data processing system is provided which solves given NP problems using a deterministic machine in polynomial time. A given problem definition is converted into an expression composed of logical or otherwise deterministic constraints. Next, a process of assuming values for the constraint variables one-at-a-time, tracking the paths of implications resulting from the value assumptions, resolving any over-determination of a variable by identifying a proximal parameterization of the apparent contradiction, treating the parameterization effectively as a constraint, and then de-assuming one or more of the chosen values that caused the over-determination, is iteratively applied to the expression until either each variable obtains a single value and every constraint contains at least one term which is not counter-asserted, or else a necessary contradiction is found. The number of iterations of each portion of this process is bounded by a polynomial of the size attributes of the expression. Existing processes solve many NP problems in hyper-polynomial time. Therefore, the primary effect of the present invention is to greatly improve the performance of existing and future processes. However, the magnitude of the performance improvement is such that some processes which have heretofore been considered infeasible on the basis of cost now become feasible by using the present invention. Thus, the present invention is also an enabler of further innovation.
Relevant publications:
Bovet, Daniel Pierre; Crescenzi, Pierluigi - Introduction to the Theory of Complexity (Prentice Hall International (UK) Ltd.; 1994) Hertfordshire, UK.
Guesgen, H.W.; Hertzberg, J. - A Perspective of Constraint-Based Reasoning (Springer-Verlag; 1992) Berlin, Germany.
Disclosure of Invention
With innovations that are embedded in larger systems, as the present invention may be, the grouping of functional components and subsequent naming of the groups is often arbitrary and varies according to the naming conventions of the system in which the innovation is embedded. The present invention is suitable for embedding in a wide variety of devices, manufacturing systems, and data-processing systems. For those reasons, the provided invention is described using an abstract example conceptualization that characterizes the surrounding system and interactions with and within that system. The given example conceptualization is meant to be illustrative rather than restrictive, and conceptual alternatives that frame productive alternate embodiments are noted.
Even though the wording of the example conceptualization is abstract, the terminology is either well-defined or conventional, and applications are technical. The conventional wording should be recognizable to those of skill in the art of software engineering for technical supercomputing, though the preferred embodiments of the present invention are not all computer programs. Preferred data representation styles and procedural details may depend on the economies inherent in the system in which the invention is embedded. Implementation details that are pertinent only to some applications of the invention are not specifically discussed, although general best-practices for obtaining efficient implementations are mentioned in addition to the following example embodiment which comprises the best mode of the invention currently contemplated by the inventor for implementation as software on a semiconductor computer.
This discussion with respect to preferred embodiments of the invention includes certain aspects that provide a more efficient implementation. As those of skill in the art will understand, other embodiments of the invention may omit those aspects or reorder the sequence of processing without affecting the utility of the invention.
The innovation of the present invention is primarily found in the operation called "Precipitating an Inference", where conditional contradictions are localized and parameterized; but that operation is necessarily supported by the state-keeping activities of the other operations. That state-keeping, particularly with regard to tracking prevailing inferences, is also part of the innovation. The manner of selecting which contradiction to precipitate as an inference is incidental; and the concepts of initialization, asserting terms, and de-asserting terms outside of those aspects which track causes, reasons, common reasons, and prevailing inferences is part of the prior art. The manner of state-keeping is dependent on the arbitrary choice of how states are represented, which might be limited by logical or physical qualities intrinsic to the surrounding system.
Concepts of State
The state-maintaining concepts that are essential to this invention are the inferences, variables, and pools; however, there are a number of supporting and related concepts which we must have in order to explain what composes those constructs. These other concepts will be presented first. Variable
Each "variable" is a locale of variability. In this conceptualization of the invention, each variable is the name of a logical predicate which appears in the given expression; but in application, a variable could be a numeric register, a string, or any data structure that represents one value (or none) at a time and can represent more than one value over time. In this respect, a variable here is similar to a variable in the domain of software engineering.
The values of a variable should be practically enumerable. Problems that contain variable values that are not practically enumerable might not be in NP. By definition, the values of logical variables are practically enumerable.
Variables are represented as being either "free", "determined", or "over- determined". Variables are also either "assumptive" or "non-assumptive". Initially, all variables are free and non-assumptive.
In this conceptualization of the invention, each variable has a unique determinant number which represents the order in which the variables became determined.
Term
A "term" is primarily composed of a reference to, or a reproduction of, a variable in addition to an indication of the value of this term for that variable. (Ae., in two- valued logic, the value of a term is an indication of whether the term indicates or counter-indicates its predicate.)
The given example conceptualization of the invention uses two-valued logical terms. Consequently, here, there are two mutually exclusive kinds of term for every variable. Regardless of whether an embodiment uses two-valued logic, many-valued logic, numeric variables, or any other kind of variable representation, there may be many terms of each value of each variable in the expression. Disagreement and Contradiction
Terms of similar kind are said to "agree". Terms of the same variable which are not of similar kind are said to "disagree".
Within a single variable, the value of one conjunct set of terms is "complementary" to another if there are no disagreeing terms in either set, the first set disagrees with the second set, and every atomic value of the variable is in either one set or the other. In two-valued logic, each variable value is complementary to the only other possible value for that variable.
A term is said to be "negated" when it disagrees with the determined value of the term's variable. (See Inference, below, for an explanation of "determined".)
If, for one term in a constraint, there is a disagreeing term in another constraint, then the variable of those terms is said to be "controversial".
When a term and a disagreeing term are both asserted (see Implication, below), each is said to be "contradicted". Terms may be unconditionally or conditionally contradicted, depending on whether their cause phrases are empty or not. (See Inference, below.) An expression is unsatisfiable when any of its terms are unconditionally contradicted.
Phrase
A "phrase" is an addressable set {e.g., an array) of terms. A phrase contains any number of terms, but for each variable value represented in the phrase, there may be no other similar value represented in the phrase.
In some cases, a phrase may represent a set of terms over which an associative and commutative transformation operates. In particular, in this document we will speak of conjunct phrases and disjunct phrases. In the given example conceptualization of the invention, there can be at most one term representing a variable per conjunct or disjunct phrase.
Constraint
In the given example conceptualization of the invention, a "constraint" is represented by a non-empty disjunct logical phrase. Any disjunct phrase is satisfied when one or more of its terms agrees with the determined value of a variable. (See Inference, below, for an explanation of "determined".)
In other conceptualizations of the invention, a constraint could be any satisfiable- or-mutually-mapped expression (SOMME).
A SOMME is an expression which represents a relationship among variables such that determining the values of all but one of the variables in the expression either satisfies the expression or else implies a value for the one variable which was not previously determined, regardless of which variable is the one not previously determined, and regardless of the specific determined values. For example, if Q is the set of rational numbers, and x,y,z e Q, then "x+y=z" is a SOMME, but
"x*y=z" is not. However, "x=0 OR y=0 OR x*y=z" is a SOMME.
Assumption
If a specific value of a variable is determined without being required by any known implications (see Implication, below), then that variable value is called an "assumptive" value or simply an "assumption".
In the given example conceptualization of the invention, assumptions are represented as inferences (see Inference, below), and one assumption is considered to be the "latest". Orderings
A complete ordering called the "general" ordering is imposed upon the variables.
An ordering of elements allows us to speak of "lesser" or "greater" elements, meaning elements that are respectively closer to or further from the ordering's beginning. The general ordering allows us to speak of lesser or greater variables.
The general ordering also allows us to speak of lesser or greater phrases; however, the manner of making that comparison needs to be explained. One method of making such a comparison includes creating a pair of numeric registers with as many digits as there are variables. For each phrase, the value of each digit in the register is assigned according to whether a term that represents the "first" value of that variable appears in the phrase ("1 ") (maintaining the order of digits according to the order of variables, and arbitrarily assigning "first" and
"other" labels to the values), or a term representing an "other" value of that variable appears ("2" or greater), or no term of that variable appears in the phrase ("0"). Speaking in the context of two-valued logic, we then say that "this" phrase is greater than "that" phrase if the base-three number generated from the digits of "this" phrase is greater than the number generated from "that" phrase.
This method for determining which phrase is greater than the other gives empty phrases the least value. We speak of phrases being the "same" if all their terms represent the same values, even if both phrases are empty. (We speak of phrases in this way, but we do not speak of particular terms being similar if a term of the same variable does not appear in one of the phrases being compared.)
Other methods of determining "lesser" and "greater" are possible. The method described above is believed to be one of the most efficient methods.
We also impose an arbitrary and complete ordering called the "assumptional" ordering upon the set of variables. This ordering designates the "least" variable among free variables which will be next assumed. We also impose arbitrary and complete orderings (the "implicational" and "priority" orderings) on the inferences. The implicational ordering is used to decide which implications are implicated before the others. The priority ordering is used to decide which inference is prevailing among all inferences implicating the same phrase. (See Inference, below, for an explanation of the newly introduced words.)
There are many valid orderings for processing implications, but the most efficient implementations of this invention probably have implicational and priority orderings which are the same and are conservative, such as the ordering used in the given example conceptualization, which prefers inferences with lesser causes and, among inferences with equal causes, prefers inferences with lesser reasons. (See Asserting Terms, below.) In this conceptualization of the invention, the implicational and priority orderings are dependent on the general ordering.
Note that it is not necessary to predetermine these orderings. Because these orderings are arbitrary, they may be constructed on an as-needed basis and may be changed during processing, as those of skill in the art will understand, as long as the then-current ordering is effected systematically.
Implication
A disjunct phrase may be said to be "implied", meaning that asserting a conjunction of values that disagrees with the values of the terms in the phrase would be logically inconsistent with the combination of the expression and the current set of assumptive values. We say that a subset of the terms in a constraint is "implicated" when assuming a conjunction of disagreeing values for those terms would leave the constraint without unnegated terms. Every constraint is both implicated and implied.
We use this general definition of what it means for a phrase to be implicated in order to describe the range of states represented in the inference data structure (see below) of this conceptualization of the invention, but we are especially interested in the case where there is only one term in the implicated phrase of the inference. In this case, we refer to the single unnegated term as being "asserted".
Inference
In this conceptualization of the invention, the representation of an "inference" is primarily composed of five phrases: the implicated phrase, the negated phrase, the cause phrase, the reason phrase, and the common reason phrase.
Initially, every constraint is represented as an inference containing the constraint's terms in its implicated phrase. The "implicated" phrase is disjunct and contains constraint terms that have not been negated. The "negated" phrase is also disjunct and contains a set of constraint terms that has been negated. As variable values become determined, in each inference, terms which disagree are moved from the implicated phrase into the negated phrase of that same inference; and, as value determinations are removed, terms move in the reverse direction.
The "cause" phrase may be empty until the inference asserts a term. The cause phrase may also be empty when all the terms in the negated phrase are negated by unconditional assertions. When the cause phrase is non-empty, it is conjunct and contains terms representing the apparent least set (see Orderings, above) of assumptive values that is sufficient to implicate the implicated phrase.
The "reason" phrase may be empty until the inference asserts a term. In this conceptualization of the invention, the reason is also empty when the inference represents an assumption. In the given conceptualization of the invention, when the reason is non-empty, it is conjunct and contains assertions that represent the apparent path of prevailing assertions that conveys a spirit of implication between the conjunct values of the cause and the disjunct values of the implicated phrase.
In this conceptualization of the invention, the reason of an inference is a superset of the cause, except in the case where the inference represents an assumption. In this conceptualization of the invention, the reason is also a superset of the set of prevailing assertions each of which disagrees with a term in the negated phrase.
The "common reason" phrase may be empty until the inference becomes determined (see below). In the given example conceptualization of the invention, when the common reason is non-empty, it is conjunct and contains the values of asserted terms which form a chain such that: if the latest assumption was not made, but all previous assumptions were made, then assuming one of the terms of the current common reason would force the assertion of all the other terms of the current common reason that have variables which have determinant numbers that are greater than the current determinant number of the variable of the hypothetically assumed term of the common reason; and conversely, if the latest assumption was not made, but all previous assumptions were made, then assuming a value which disagrees with one of the terms of the current common reason would logically imply (but not necessarily force the assertion of) the complement of each of the other terms of the current common reason which have determinant numbers that are less than the current determinant number of the variable of the term for which a disagreeing value is hypothetically assumed.
In the given example conceptualization of the invention, the common reason of an assertion of a newly determined variable always has the latest assumptive value as well as the value of the newly determined variable as terms.
An implicated phrase may be said to be "unconditionally" or "conditionally" implicated. Whether an implication is unconditional or conditional is represented by whether the cause phrase of the inference is empty or not. Similarly, terms may be said to be unconditionally or conditionally asserted.
The representation of each inference should also include an indication of its determination status: either "determined", "enqueued", or else "non-asserting". In this conceptualization of the invention, at the time a term is asserted, its inference is enqueued into the implication queue (see Pools, below), and the determination status of that inference becomes "enqueued". Initially, most inferences are non-asserting, but any inference that initially contains a single term in its implicated phrase is immediately enqueued because it asserts that term.
When an enqueued inference is processed (in the Asserting Terms operation, see below), it changes from being "enqueued" to being "determined", and that inference then may be called a "determination".
Determining variable values could negate terms in an implicated phrase so that all but one of the terms is negated; and consequently, the inference of that implicated phrase would change from being non-asserting to being enqueued.
In addition to the five phrases and the determination status, an inference also represents itself as either a "prevailing" or "non-prevailing" determination, or else as being "non-determined". Initially, all inferences are non-determined.
When an inference becomes determined, it is also marked as either "prevailing" or "non-prevailing". Among multiple determined inferences which assert terms that agree, the priority ordering is used to select one inference to become the prevailing determination for the shared asserted value. All other agreeing assertions are considered non-prevailing after that selection is made, and all these assertions become determined at the same time.
After a prevailing determination is chosen, the variable of the prevailing assertion becomes either over-determined or determined, depending on whether the variable both is already determined and asserts a disagreeing value or not. (Note that a variable becomes determined shortly after an inference that asserts a value of that variable becomes determined.)
The cause phrase of an inference is populated by the union of the cause phrases of the prevailing determinations which assert terms that disagree with the terms in the negated phrase of this inference. The reason phrase of an inference is populated by the union of the reason phrases of the prevailing assertions that disagree with the terms in the negated phrase of this inference, which is then unioned with the values of those assertions themselves.
Strictly speaking, cause, reason, and common reason phrases need not be represented as such; but maintaining a representation of these phrases is probably less computationally expensive than extracting the same information from the prevailing determinations that implicate phrases that disagree with the negated terms of a given inference. Therefore, the given example conceptualization of the invention is worded as if the cause, reason, and common reason phrases are explicitly represented.
Similarly, the implicated phrase and negated phrase need not be separately represented. Instead, for example, a single phrase containing the terms of both could be supplemented with a flag for each term to indicate whether it is negated or not. However, it is convenient for our description of the invention to speak as if the implicated terms and negated terms are in separate phrases, regardless of their actual representation in any specific embodiment of the invention.
If an alternate conceptualization of the invention allows prevailing determinations to be replaced, making a determination prevalent forces the formerly prevalent determination to become non-prevailing. If this happens, the change in the prevailing causes, reasons, and common reasons must be propagated to the inferences which have terms that were negated by the determined implication in question. (Note that prevailing determinations are not replaced in the given example conceptualization of the invention.)
Pools
A "pool" is an addressable set to which elements can be added and subsequently removed. As a pool perse, elements may be added to or removed from the pool in any order. Pools may also incorporate specific rules for the order in which added elements are removed. For example, non-prioritized queues incorporate a "first-in-first-out" (FIFO) rule, and stacks incorporate a "first-in-last-out" (FILO) rule. Stacks and queues are specific kinds of pools.
In the given example conceptualization of the invention, there is an "implication queue" which is a prioritized queue that contains inferences awaiting processing. In this conceptualization of the invention, the implicational ordering determines which enqueued inference is next to be processed. (See Orderings, above.)
In the given example conceptualization of the invention, there is a "de-implication pool" which contains implicated phrases that are to be de-implicated. Despite the fact that it is unnecessary to incorporate a particular rule that determines the order in which phrases are added to and removed from this pool, we will speak of phrases being added to and removed from this pool as being "enqueued" into and "dequeued" from the pool, respectively, in order to avoid coining new words.
Inference Database
An "inference database" is primarily composed of an addressable set of inferences, as well as an addressable set of variables, the pools, and a register containing the master determinant number.
In this conceptualization of the invention, the inference database associates the value of each variable with prevailing cause and prevailing reason phrases; and we may reference these phrases by referring to the cause and reason of the "prevailing assertion" for that value.
The most efficient implementations of this invention probably maintain indexes which, for each kind of term, locate each inference record that contains that kind of term in its cause, reason, negated phrase, or implicated phrase. In this conceptualization of the invention, we call the collection of information needed by the operations an "inference database"; however, it need not be stored as a database per se in any particular embodiment. Instead, the information might be recorded in any accessible physical medium or the information might remain embedded in the structure or behavior of the device, program, or process.
Concepts of Change
In this conceptualization of the invention, there are five major operations: initializing, implicating, de-asserting, precipitating, and assuming.
Note that the step labels in the processing descriptions below never contain the letters T, T, or O' in order to avoid confusion with graphically similar glyphs.
Main Procedure
The following is a list of the specific steps involved in the main procedure of the given example conceptualization of this invention, presented in the recommended order of processing:
[1] Perform the operation of initializing the inference database. [2] Loop 1 :
[2a] Loop 2: [2a1] Perform the operation of asserting terms.
[2a2] If there is at least one over-determined variable:
[2a2a] Perform the operation of precipitating an inference. [2a3] Otherwise:
[2a3a] Exit loop 2. [2b] If the count of free variables is zero:
[2b1] Report that the expression is satisfied. [2b2] Halt all further processing. (Ae., exit loop 1.) [2c] Otherwise: [2c1 ] Perform the operation of assuming a value, passing the assigned value of the free variable which is least in the assumptional ordering as the input value.
Besides the exit point in step 2b2, the operation of precipitating an inference also causes all further processing to halt if it finds an unconditional contradiction.
Initializing the Inference Database
"Initializing" is an operation that consists of setting indicators in the inference database and populating it with constraints. This operation accepts a formal problem representation as input.
The operation of initializing the inference database usually occurs at the beginning of processing and must occur prior to assuming any values.
The following is a list of the specific steps involved in initializing the inference database according to the given example conceptualization of the invention, presented in the recommended order of processing:
[3] Let the pools and the sets of inferences and variables be empty. [4] Convert the input problem representation into a conjunct-disjunct form. [5] For each variable in the conjunct-disjunct expression: [5a] Record an arbitrary value assignment for this variable. More efficient implementations might ensure that the value assignment agrees with this variable's uncontroversial term, if any.
[5b] Record an indication that this variable is free and non-assumptive. [5c] Record a null determinant number for this variable. [6] Sort the terms of each constraint according to the general ordering of variables. As part of the process of sorting, any term of a constraint which constitutes a superset of the value of another term in the constraint is eliminated, and any constraint that contains a complementary set of terms is eliminated (because the constraint is tautological and therefore superfluous). [7] For each post-elimination constraint:
[7a] If zero is the count of inferences which have an implicated phrase which only contains terms that agree with the terms of this constraint:
[7a1] Create a non-determined inference which has the terms of the constraint in its implicated phrase and which has empty cause, reason, common reason, and negated phrases. [7a2] If the new inference (here named X) contains exactly one term in its implicated phrase:
[7a2a] Enqueue X into the implication queue. [7a3] Otherwise:
[7a3a] Record an indication that X is non-asserting. [8] Index the inferences in the inference database. [9] Let the master determinant number be zero.
Step 7a normalizes the set of inferences. Some embodiments of the invention might extend this normalization by, for example, eliminating the single disagreeing term (if any) from one constraint that otherwise contains a superset of the terms of another constraint. Other normalization extensions are possible, but in many cases, the computational cost/benefit ratio exceeds the limits of practicality.
Asserting Terms
"Implicating" is an operation that propagates the effects of assumptions or other sources of new implications. In this conceptualization of the invention, implicating consists of moving terms from implicated phrases into negated phrases and setting the values of indicators in the inference database in a way that is consistent with the introduction of a new assertion. As conceptualized here, this is a purely logical process; but in application, the terms implicated may be derived by performing almost any lossless deterministic function (e.g. a linear algebraic transformation, as described in Constraints above). In any case, the record- keeping exemplified here would still be necessary in order to support the operation of precipitating an inference (see below).
The operation of asserting terms works directly on the inference database without additional input parameters, and this operation is invoked immediately after normalizing the expression, assuming a value, or precipitating an inference. This process uses the implication queue which generally contains implicating inferences but which contains only asserting inferences in the given example conceptualization of the invention.
In the given example embodiment of the invention, the operation of asserting terms halts immediately after encountering an over-determined variable. Other embodiments might allow processing to continue in the hope of finding another contradiction which is a more ideal candidate for immediate resolution. Similarly, other embodiments might tweak the implicational ordering in hope that the first contradiction found is more ideal. Many performance modifications are possible.
The following is a list of the specific steps involved in asserting terms according to the given example conceptualization of the invention, presented in the recommended order of processing:
[10] For each inference (here named X) which has been enqueued into the implication queue (handled in implicational order, regardless of whether the inference was enqueued prior to the beginning of this step or becomes enqueued during the execution of this step):
[10a] Dequeue X.
[1 Ob] Record an indication that X is determined. [1 Oc] If the reason of X does not contain a term that agrees or disagrees with the assertion of X. (In other words, if X is not redundant or otherwise unproductive:)
[1 Od] If the variable for the assertion of X is determined:
[1 Od a] If the value of the variable for the assertion of X disagrees with the assertion of X <
[1 Od a1 ] Record an indication that X is a prevailing determination. [1 Od a2] Record an indication that the variable for the assertion of X is over- determined. [1 Od a3] Let the prevailing cause and prevailing reason for the value of the assertion of X become the same as the cause and reason of X. [1 Od a4] Halt the operation of asserting terms, and exit back to the calling process (step 2a1 in the given example embodiment of the invention). > [10c1 b] Otherwise:
[1 Od b1 ] Record an indication that X is non- prevailing. [10c2] Otherwise:
[10c2a] If the variable (here named V) for the assertion of X is free:
<
[10c2a1 ] Record an indication that Vis determined.
[10c2a2] Let the value of V become the same as the value of the assertion of X. [10c2a3] Increment the master determinant number and assign its value as the determinant number of V.
[10c2a4] Record an indication that X is a prevailing determination. [10c2a5] Let the common reason of X become the assertion of Xunioned with the intersection of the common reasons of the prevailing inferences where each asserts a term that disagrees with a negated terms (if any) of X and has the latest assumptive value (if any) in its cause.
[10c2a6] For each non-asserting inference (here named Z) which has a term in its implicated phrase which disagrees with the term asserted by X. [10c2a6a] Move the term which disagrees with the assertion of X from the implicated phrase of Z into the negated phrase of Z [10c2a6b] If the count of terms in the implicated phrase of Z is one:
«
[10c2a6b1 ] Let the cause of Z become the union of the prevailing causes for the values that disagree with the terms in the negated phrase of Z [10c2a6b2] Let the reason of Z become the subset of values in the negated phrase of Zwhere the prevailing cause of each value does not contain the latest assumption (if any), unioned with the prevailing causes for the subset of values in the negated phrase of Zwhere the prevailing cause of each value does contain the latest assumption.
[10c2a6b3] Enqueue Zinto the implication queue. » >
[10c2b] Otherwise: (In other words, if the variable for the assertion of X is over-determined:)
<
[10c2b1 ] If any determined inference other than X asserts a term that agrees with the assertion of X.
[10c2b1 a] Record an indication that X is non-prevailing. [10c2b2] Otherwise:
[10c2b2a] Record an indication that X is prevailing.
De-asserting Terms
"De-asserting" is an operation that reverses the effects of the operation of asserting terms. In this conceptualization of the invention, de-asserting consists of moving terms from negated phrases into implicated phrases and setting the values of indicators in the inference database in a way that is consistent with the removal of an assumption. The operation of de-asserting terms accepts an input value that represents an assumption which is to be made free. This process uses the de-implication pool which generally contains implicated phrases but which contains only assertions in the given example conceptualization of the invention.
The operation of de-asserting terms occurs when the value of a variable is overturned or when alternate sets of assumptions are being tested. These conditions might be met during the execution of alternate conceptualizations of many of the other operations of this invention; but in the given example conceptualization of the invention, only the operation of precipitating an inference explicitly invokes this operation.
In the given example conceptualization of the invention, the operation of asserting terms halts immediately after encountering an over-determined variable, and all assumptions are de-asserted in reverse assumptional order. Consequently, there are no cases where de-assertion occurs in a context where recently asserted values are affected by an increase in the number (as described in Orderings, above) of the prevailing cause or reason. Other conceptualizations of the invention might be affected by such increases in the prevailing numbers, and the process of de-asserting would have to be restructured accordingly, as those of skill in the art will understand.
The following is a list of the specific steps involved in de-asserting terms according to the given example conceptualization of the invention, presented in the recommended order of processing:
[11 ] Initialize the de-implication pool as empty. [12] Enqueue the value of the input term into the de-implication pool.
[13] For each value (here named VO in the de-implication pool (regardless of whether the value was enqueued at the beginning of this step or becomes enqueued during the execution of this step): [13a] Dequeue V. [13b] For every inference (here named X) with a negated phrase which contains a term that disagrees with V: [13b1 ] If Xis a prevailing determination:
[13b1 a] Enqueue the value of the assertion of X into the de- implication pool. [13b2] Record an indication that X is non-asserting and non- determined.
[13b3] Move the term which disagrees with V from the negated phrase of X into the implicated phrase of X. [13b4] Let the cause of X be replaced with the union of the prevailing causes of the assertions which disagree with the terms (if any) in the negated phrase of X.
[13b5] Let the reason of X be replaced with the union of the prevailing reasons for the assertions which disagree with the terms (if any) in the negated phrase of X as well as those assertions themselves.
[13b6] Let the common reason of X become empty. [13c] If the variable of V\s over-determined: [13c1] Find the prevailing determination (here named Y) that asserts a term which disagrees with the assertion of X. [13c2] Enqueue Vinto the implication queue. [13c3] Record an indication that the variable of V is determined. [13d] Otherwise: [13d1 ] Record an indication that the variable of Vis free.
[13d2] Record a null determinant number for the variable of V. [13e] Let the prevailing cause and reason for V both become empty. [13f] If V agrees with the value asserted by an assumption:
[13f1 ] If the assumption that agrees with V\s the latest assumption: [13f1 a] Find the assumption (here named W) other than V which is greatest in the assumptional ordering. [13f1 b] If W exists:
[13f1 b1 ] Let W become the latest assumption. [13f1 c] Otherwise: [13f1 c1 ] There is no latest assumption.
[13f2] Delete the inference which asserts the same value as V. [13f3] Record an indication that the variable of V\s non-assumptive.
Precipitating an Inference
"Precipitating" is an operation that resolves a conditional contradiction. This operation identifies a proximal parameterization of the contradiction (called a "teardrop"), renders that parameterization as a "precipitated" inference, and returns the system consisting in the set of inferences and the set of assumptions to a consistent state, primarily by de-asserting assumptive values.
The set of disjunct values that comprise the constraint-like quality of the precipitated inference is called the "body" of the teardrop. One term of the body is called the "precipitant". The complements of potential precipitants are such that, if one is assumed in combination with the assumptions prior to the latest assumption, the contradiction is rendered. The chosen actual precipitant is one of the potential precipitants nearer to the over-determined variable. The body of the teardrop derives from a set called the "frame" of the teardrop, which is itself derived from information associated with the precipitant and both the contradicted terms. The frame and body of a teardrop are mutually exclusive sets of values.
The operation of precipitating an inference works directly on the inference database without additional input parameters, and this operation is invoked immediately after asserting terms if one or more contradictions exist.
The following is a list of the specific steps involved in resolving a contradiction according to the given example conceptualization of the invention, presented in the recommended order of processing:
[14] If there is no latest assumption:
[14a] Report that the expression is unsatisfiable. [14b] Halt all further processing.
[15] Otherwise:
[15a] Among the over-determined variables, find the variables where the union of the prevailing causes for the two values of each variable is least, and among those, find any one variable (here named V). [15b] Create a precipitant term and let it have the complementary value of the prevailing assertion with the greatest determinant number among terms which are in the intersection of the common reasons of the prevailing inferences which assert the two values of V. [15c] Create a phrase (here named X, the "frame") which contains the union of the values of V and the prevailing reasons for those values. [15d] Remove values from X that have determinant numbers less than or equal to the determinant number of the precipitant variable. [15e] Create a phrase (here named Y, the "body") which contains the union of the negated phrases of the prevailing inferences which assert the terms in X. [15f] Remove values from Vthat have determinant numbers greater than or equal to the determinant number of the latest assumption, [15g] Add the precipitant term to Y.
[15h] For each assumption (here named T), in reverse assumptional order: [15h1 ] Perform the operation of de-asserting terms, passing 7 as the input value.
[15j] Create a non-determined inference (here named Z) which has the terms of Y in its implicated phrase and has empty cause, reason, common reason, and negated phrases. [15k] Index Z [15m] If the implicated phrase of Zcontains exactly one term:
[15m1 ] Enqueue Zinto the implication queue. [15n] Otherwise:
[15n1 ] Record an indication that Z is non-asserting. [15p] (Optional) Alter the assumptional ordering so that the variable of the precipitant term is least and the ordering is otherwise unchanged.
The optional step 15p is unnecessary for solving simpler problems, like Integer
Factoring, in polynomial time. However, retaining an initially chosen assumptional ordering is probably insufficient for solving an arbitrary NP-complete problem in polynomial time. Step 15p provides an exponential order of improvement relative to bit count for the Integer Factoring problem and probably improves the efficiency of other applications.
If step 15p is not executed, then it might be unnecessary to de-assert all the current assumptions before a consistent state of the system is returned (see step 15h). However, in that case, the proper population of the cause, reason, and common reason phrases of the newly precipitated inference would be different than is represented above, as those of skill in the art will understand.
The given example embodiment of the invention finds a teardrop that is effectively minimized with respect to constraints, but does not find a teardrop that is minimized with respect to term values. This lack of complete minimization is thought to be the best mode of the invention for implementation as software on a semiconductor computer. Applications of the invention which are especially sensitive to the cost of creating new inferences might extend the normalization of the teardrop to minimize the set of body terms or the set of frame terms, thus reducing the number of inferences precipitated by the application at the cost of additional computation during the operation of precipitating.
One such extension of the normalization might include de-asserting all assumptions, determining the prevailing assertions that disagree with the body terms without implicating them, preventing the operation of asserting terms from enqueueing assertions of the precipitant variable, and testing each of the non- contradicted frame terms to determine if assuming that term could render a contradiction which includes neither the current precipitant nor any non-frame terms in the frame of that hypothetical teardrop nor any new terms in the body.
Another possible extension of the normalization might include de-asserting all assumptions, making the complement of the precipitant least in the assumptional ordering, and proceeding with a process of repeatedly assuming and implicating until a contradiction is detected. This might identify variables of the teardrop that could be rendered as frame terms rather than body terms, thus reducing the precipitated inference to a subset of the values it would otherwise have contained.
Yet other normalization extensions are possible, but they are all believed to incur computational costs that are comparable to, if not greater than, the cost of not further minimizing the number of terms in the precipitated inference. Other conceptualizations of the invention might partition the variable space {e.g., as separate integrated circuit chips) and enjoy the same qualitative difference in computational cost {i.e. polynomial rather than hyper-polynomial cost) as long as the partitioning provides a teardrop that contains a number of inferences that is bounded by a polynomial multiplier on the number of inferences contained in the completely minimized teardrop.
Assuming a Value
"Assuming" is an operation that consists of introducing an assertion into the inference database. This operation accepts an input variable value.
In the given example embodiment of the invention, the operation of assuming a value occurs immediately after asserting terms if no contradictions were found during the latest iteration of that operation.
The following is a list of the specific steps involved in assuming a value according to the given example conceptualization of the invention, presented in the recommended order of processing:
[16] Create a non-determined inference in the inference database which: contains the input variable value in its cause, common reason, and implicated phrases, and contains no other terms in those phrases; and has the complement of the input variable value in its negated phrase, and no other terms in that phrase; and has an empty reason. [17] Enqueue this new inference into the implication queue. [18] Record an indication that the input variable value is assumptive. [19] The assumptive value which is considered to be the latest (if any) is no longer considered the latest, and this new assumptive value is the latest. Best Mode for Carrying Out the Invention
The disclosed example embodiment of the invention comprises the best mode of the invention currently contemplated by the inventor for implementation as software on a semiconductor computer. Many other embodiments are possible. The best mode for implementation of a particular embodiment depends on the economies inherent in the physical medium in which the embodiment is implemented. (See the comments about optional step 15p, for example.) Where the inventor has contemplated alternative modes that could result in better performance in some circumstances, these alternatives have been explicitly noted in the disclosure.
Industrial Applicability
The present invention provides a performance improvement to a wide variety of industrial design, routing, scheduling, and decision-making processes. Many of these applications are apparent from the lists of NP-complete problems included in the section for Background Art. Other applications are apparent from an examination of the many existing patents that use the phrase "NP-complete" in their descriptions.
One example of a practical application of the present invention is in the field of analyzing proteins and designing protein-based pharmaceuticals. Interpreting most variables as particular monomers from a DNA sequence, and making the assumptional ordering the same as the sequence ordering, we can interpret the values of the monomer-variables as relative positions in a grid. We then create constraints that reflect the rules which restrict the placement of adjacent monomers in the grid, adding variables as we go along to represent any intermediate states that the constraints might imply. Using such a model, the invention can determine in days what otherwise takes CPU-years to compute: a least-energy physical configuration of a protein; or, with reversal of the roles of variables and values, a monomer sequence that produces a given physical configuration, thus rendering a proto-formula for a bio-engineered pharmaceutical.

Claims

Claimsclaim:
1. In a computer-implemented method for solving a problem in NP, the improvements comprising a process which identifies proximal parameterizations of conditional contradictions.
2. A method for solving a problem in NP, comprising the steps of: converting the given problem definition into an expression composed of one or more constraints, a part of the prior art; selecting assumed values for the variables of the expression, a part of the prior art; tracking the paths of implications resulting from the selected assumptions by recording or extracting any of causes, reasons, or common reasons, as hereinbefore described, and by recording or extracting prevailing implications; resolving conditional contradictions by identifying a proximal parameterization of the contradiction, treating the parameterization effectively as a constraint, and then deselecting one or more assumptions that comprise the condition for contradiction; and iteratively applying the selection, tracking, and resolving steps until either all variables have determined values and no contradictions are apparent or else an unconditional contradiction is found.
3. A computer-implemented method for solving a satisfaction problem, comprising the steps of: converting the given problem definition into an expression composed of one or more logical constraints, a part of the prior art; selecting assumed values for the variables of the expression, a part of the prior art; tracking the paths of implications resulting from the selected assumptions by recording or extracting any of causes, reasons, or common reasons, as hereinbefore described, and by recording or extracting prevailing implications; resolving conditional contradictions by identifying a proximal parameterization of the contradiction, treating the parameterization effectively as a constraint, and then deselecting one or more assumptions that comprise the condition for contradiction; and iteratively applying the selection, tracking, and resolving steps until either all variables have determined values and no contradictions are apparent or else an unconditional contradiction is found.
4. A computer program product comprising: a computer-usable medium having computer readable code embodied therein for solving a problem, the computer readable code comprising: a module for converting an existing problem representation into a computer- readable logical expression; a first data structure for returning a verifiable satisfiability determination and relevant output terms such as flags and phrases; a second data structure for accepting an input expression; a third data structure, known as the implication and de-implication pools, for enqueueing processing requests; a fourth data structure, known as the inference database, for storing inferences and for recording the propagation of interactions between inferences; a module for converting the input expression into one or more inferences and storing them in the inference database; a module for recording assumptions, determining the types of inference interactions, propagating the effects of inference interactions through the inference database; and a module for minimizing a set of inferences involved in the conditional contradiction of a term, and precipitating an inference as a representation of that set.
5. A device which receives a set of signals corresponding to values of a set of variables, and either receives another set of signals corresponding to a set of constraints or operates on a memory bank containing representations of constraints or embeds a set of constraints in its structure, and applies a process of identification, and returns a signal or a set of signals; the device comprising circuits or other mechanisms which identify a proximal parameterization of a contradiction in the set of constraints.
6. In a device which either receives a set of signals corresponding to a set of constraints or operates on a memory bank containing representations of constraints or embeds a set of constraints in its structure, and applies a process of implication, and returns a signal or a set of signals; the improvement comprising circuits or other mechanisms implementing the hereinbefore described tracking of any causes, reasons, or common reasons of implications.
PCT/US2009/032153 2008-01-29 2009-01-27 Data processing system for solving np problems without hyper-polynomial cost WO2009097290A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/823,652 US8577825B2 (en) 2008-01-29 2010-06-25 System, method and device for solving problems in NP without hyper-polynomial cost

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US6264608P 2008-01-29 2008-01-29
US61/062,646 2008-01-29

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/823,652 Continuation-In-Part US8577825B2 (en) 2008-01-29 2010-06-25 System, method and device for solving problems in NP without hyper-polynomial cost

Publications (2)

Publication Number Publication Date
WO2009097290A2 true WO2009097290A2 (en) 2009-08-06
WO2009097290A3 WO2009097290A3 (en) 2010-05-20

Family

ID=40913476

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2009/032153 WO2009097290A2 (en) 2008-01-29 2009-01-27 Data processing system for solving np problems without hyper-polynomial cost

Country Status (1)

Country Link
WO (1) WO2009097290A2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160136270A (en) * 2014-03-25 2016-11-29 클레이톤 길스파이 Solving np-complete problems without hyper-polynomial cost
US10528868B2 (en) 2010-06-25 2020-01-07 Clayton Gillespie Solving NP-complete problems without hyper polynomial cost

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020143754A1 (en) * 2001-01-11 2002-10-03 Glenn Paulley Prime implicates and query optimization in relational databases
US20040103108A1 (en) * 2000-09-05 2004-05-27 Leonid Andreev Method and computer-based sytem for non-probabilistic hypothesis generation and verification

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040103108A1 (en) * 2000-09-05 2004-05-27 Leonid Andreev Method and computer-based sytem for non-probabilistic hypothesis generation and verification
US20020143754A1 (en) * 2001-01-11 2002-10-03 Glenn Paulley Prime implicates and query optimization in relational databases

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10528868B2 (en) 2010-06-25 2020-01-07 Clayton Gillespie Solving NP-complete problems without hyper polynomial cost
KR20160136270A (en) * 2014-03-25 2016-11-29 클레이톤 길스파이 Solving np-complete problems without hyper-polynomial cost
JP2017513076A (en) * 2014-03-25 2017-05-25 クレイトン ジリスピー, Method and computing apparatus for solving NP problem without hyper polynomial cost
EP3123302A4 (en) * 2014-03-25 2017-12-20 Clayton Gillespie Solving np-complete problems without hyper polynomial cost
KR102341689B1 (en) * 2014-03-25 2021-12-20 클레이톤 길스파이 Solving np-complete problems without hyper-polynomial cost

Also Published As

Publication number Publication date
WO2009097290A3 (en) 2010-05-20

Similar Documents

Publication Publication Date Title
Lim et al. Generalizing surrogate-assisted evolutionary computation
US8577825B2 (en) System, method and device for solving problems in NP without hyper-polynomial cost
Alur et al. Optimal paths in weighted timed automata
KR102341689B1 (en) Solving np-complete problems without hyper-polynomial cost
Esparza et al. Verification of population protocols
Ghaffari et al. Distributed house-hunting in ant colonies
Bos et al. Formal specification and analysis of industrial systems
Manea et al. Accepting networks of splicing processors: Complexity results
Khalimov et al. Register-bounded synthesis
Alevizos et al. Complex event forecasting with prediction suffix trees
WO2009097290A2 (en) Data processing system for solving np problems without hyper-polynomial cost
Latella et al. On-the-fly probabilistic model checking
Dror et al. Modeling Uncertainty: an examination of stochastic theory, methods, and applications
Martin et al. Distribution of statistics of hidden state sequences through the sum-product algorithm
Raymond et al. Phase diagram of the 1-in-3 satisfiability problem
Blondin et al. Expressive power of broadcast consensus protocols
Rajasekaran Handbook of randomized computing
de Alfaro From fairness to chance
Sengupta et al. Low‐cost security aware HLS methodology
Zeitlhofer et al. Operation scheduling for parallel functional units using genetic algorithms
Chakroun et al. Guidelines for enhancing data locality in selected machine learning algorithms
Waller et al. Character Reassignment for Hardware Trojan Detection
Kot et al. Bisimulation equivalence of a BPP and a finite-state system can be decided in polynomial time
Bary-Weisberg et al. Distribution free learning with local queries
Karagiannopoulos et al. Local cost sensitive learning for handling imbalanced data sets

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09705334

Country of ref document: EP

Kind code of ref document: A2

WWE Wipo information: entry into national phase

Ref document number: 2010545088

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09705334

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: JP