Radioisotope thermoelectric generator: Difference between revisions

From formulasearchengine
Jump to navigation Jump to search
en>Smalljim
m Reverted edits by 67.158.36.125 (talk): not adhering to neutral point of view (HG)
 
en>Yobot
m Efficiency: WP:CHECKWIKI error fixes + other fixes using AWB (9930)
Line 1: Line 1:
'''Constraint satisfaction problems''' (CSPs) are mathematical problems defined as a set of objects whose state must satisfy a number of constraints or limitations. CSPs represent the entities in a problem as a homogeneous collection of finite constraints over [[Variable (mathematics)|variable]]s, which is solved by [[constraint satisfaction]] methods. CSPs are the subject of intense research in both [[artificial intelligence]] and [[operations research]], since the regularity in their formulation provides a common basis to analyze and solve problems of many unrelated families. [[Complexity of constraint satisfaction|CSPs often exhibit high complexity]], requiring a combination of [[heuristics]] and [[combinatorial search]] methods to be solved in a reasonable time. The [[boolean satisfiability problem]] (SAT), the [[Satisfiability Modulo Theories]] (SMT) and [[answer set programming]] (ASP) can be roughly thought of as certain forms of the constraint satisfaction problem.
My name is Louann Colechin. I life in Ambania (Australia).<br><br>Feel free to surf to my site ... [http://perbiz.co.kr/xe/?document_srl=2017024 Hostgator Discount Voucher]
 
Examples of simple problems that can be modeled as a constraint satisfaction problem
 
* [[Eight queens puzzle]]
* [[Four color theorem|Map coloring problem]]
* [[Sudoku]], [[Futoshiki]], [[Kakuro]] (Cross Sums), [[Numbrix]], [[Hidato]] and many other [[logic puzzle]]s.
 
Examples demonstrating the above are often provided with tutorials of ASP, boolean SAT and SMT solvers. In the general case, constraint problems can be much harder, and may not be expressible in some of these simpler systems.
 
"Real life" examples include [[planning]] and [[resource allocation]].
 
==Formal definition==
Formally, a constraint satisfaction problem is defined as a triple <math>\langle X,D,C \rangle</math>, where <math>X</math> is a set of variables, <math>D</math> is a domain of values, and <math>C</math> is a set of constraints. Every constraint <math>c \in C</math> is in turn a pair <math>\langle t,R \rangle</math> (usually represented as a matrix), where <math>t</math> is an <math>n</math>-[[tuple]] of variables and <math>R</math> is an <math>n</math>-ary [[relation (mathematics)|relation]] on <math>D</math>. An evaluation of the variables is a function from the set of variables to the domain of values, <math>v:X \rightarrow D</math>. An evaluation <math>v</math> satisfies a constraint <math>\langle (x_1,\ldots,x_n),R \rangle</math> if <math>(v(x_1),\ldots,v(x_n)) \in R</math>. A solution is an evaluation that satisfies all constraints.
 
==Resolution of CSPs==
Constraint satisfaction problems on finite domains are typically solved using a form of [[Search algorithm|search]]. The most used techniques are variants of backtracking, constraint propagation, and local search.
 
[[Backtracking]] is a recursive algorithm. It maintains a partial assignment of the variables. Initially, all variables are unassigned. At each step, a variable is chosen, and all possible values are assigned to it in turn. For each value, the consistency of the partial assignment with the constraints is checked; in case of consistency, a [[Recursion|recursive]] call is performed. When all values have been tried, the algorithm backtracks. In this basic backtracking algorithm, consistency is defined as the satisfaction of all constraints whose variables are all assigned. Several variants of backtracking exists. [[Backmarking]] improves the efficiency of checking consistency. [[Backjumping]] allows saving part of the search by backtracking "more than one variable" in some cases. [[Constraint learning]] infers and saves new constraints that can be later used to avoid part of the search. [[Look-ahead (backtracking)|Look-ahead]] is also often used in backtracking to attempt to foresee the effects of choosing a variable or a value, thus sometimes determining in advance when a subproblem is satisfiable or unsatisfiable.
 
[[Constraint propagation]] techniques are methods used to modify a constraint satisfaction problem. More precisely, they are methods that enforce a form of [[local consistency]], which are conditions related to the consistency of a group of variables and/or constraints. Constraint propagation has various uses. First, it turns a problem into one that is equivalent but is usually simpler to solve. Second, it may prove satisfiability or unsatisfiability of problems. This is not guaranteed to happen in general; however, it always happens for some forms of constraint propagation and/or for some certain kinds of problems. The most known and used form of local consistency are [[arc consistency]], [[hyper-arc consistency]], and [[path consistency]]. The most popular constraint propagation method is the [[AC-3 algorithm]], which enforces arc consistency.
 
[[Local search (optimization)|Local search]] methods are incomplete satisfiability algorithms. They may find a solution of a problem, but they may fail even if the problem is satisfiable. They work by iteratively improving a complete assignment over the variables. At each step, a small number of variables are changed value, with the overall aim of increasing the number of constraints satisfied by this assignment.  The [[min-conflicts algorithm]] is a local search algorithm specific for CSPs and based in that principle. In practice, local search appears to work well when these changes are also affected by random choices. Integration of search with local search have been developed, leading to [[Hybrid algorithm (constraint satisfaction)|hybrid algorithms]].
 
==Theoretical aspects of CSPs==
===Decision problems===
CSPs are also studied in [[computational complexity theory]] and [[finite model theory]]. An important question is whether for each set of relations, the set of all CSPs that can be represented using only relations chosen from that set is either in [[P (complexity)|P]] or [[NP-complete]].  If such a [[dichotomy]] theorem is true, then CSPs provide one of the largest known subsets of [[NP (complexity)|NP]] which avoids [[NP-intermediate]] problems, whose existence was demonstrated by [[Ladner's theorem]] under the assumption that [[P versus NP problem|P ≠ NP]]. [[Schaefer's dichotomy theorem]] handles the case when all the available relations are [[boolean operators]], that is, for domain size 2. Schaefer's dichotomy theorem was recently generalized to a larger class of relations.<ref>{{cite doi|10.1145/1993636.1993724}}</ref>
 
Most classes of CSPs that are known to be tractable are those where the [[hypergraph]] of constraints has bounded [[treewidth]] (and there are no restrictions on the set of constraint relations), or where the constraints have arbitrary form but there exist essentially non-unary polymorphisms{{Clarify|date=February 2009}} of the set of constraint relations.
 
Every CSP can also be considered as a [[conjunctive query]] containment problem.<ref>{{Cite journal
| last = Kolaitis
| first = Phokion G.
| last2 = Vardi
| first2 = Moshe Y.
| title = Conjunctive-Query Containment and Constraint Satisfaction
| journal = [[Journal of Computer and System Sciences]]
| volume = 61
| issue = 2
| pages = 302–332
| year = 2000
| doi = 10.1006/jcss.2000.1713}}</ref>
 
===Function problems===
A similar situation exists between the functional classes [[FP (complexity)|FP]] and [[Sharp-P|#P]]. By a generalization of [[Ladner's theorem]], there are also problems in neither FP nor [[Sharp-P-complete|#P-complete]] as long as FP ≠ #P. As in the decision case, a problem in the #CSP is defined by a set of relations. Each problem takes as input a [[Boolean logic|Boolean]] formula as input and the task is to compute the number of satisfying assignments. This can be further generalized by using larger domain sizes and attaching a weight to each satisfying assignment and computing the sum of these weights. It is known that any complex weighted #CSP problem is either in FP or #P-hard.<ref>{{cite doi|10.1145/2213977.2214059}}</ref>
 
== Variants of CSPs ==
The classic model of Constraint Satisfaction Problem defines a model of static, inflexible constraints. This rigid model is a shortcoming that makes it difficult to represent problems easily.<ref>{{cite hdl|1842/326}}</ref> Several modifications of the basic CSP definition have been proposed to adapt the model to a wide variety of problems.
 
=== Dynamic CSPs ===
'''Dynamic CSPs'''<ref>Dechter, R. and Dechter, A., Belief Maintenance in Dynamic Constraint Networks In Proc. of AAAI-88, 37-42. [http://www.ics.uci.edu/%7Ecsp/r5.pdf]</ref> (''[[DCSP]]''s) are useful when the original formulation of a problem is altered in some way, typically because the set of constraints to consider evolves because of the environment.<ref>[http://www.aaai.org/Papers/AAAI/1994/AAAI94-302.pdf Solution reuse in dynamic constraint satisfaction problems], Thomas Schiex</ref> DCSPs are viewed as a sequence of static CSPs, each one a transformation of the previous one in which variables and constraints can be added (restriction) or removed (relaxation). Information found in the initial formulations of the problem can be used to refine the next ones. The solving method can be classified according to the way in which information is transferred:
* Oracles: the solution found to previous CSPs in the sequence are used as heuristics to guide the resolution of the current CSP from scratch.
* Local repair: each CSP is calculated starting from the partial solution of the previous one and repairing the inconsistent constraints with [[Local search (optimization)|local search]].
* Constraint recording: new constraints are defined in each stage of the search to represent the learning of inconsistent group of decisions. Those constraints are carried over the new CSP problems.
 
=== Flexible CSPs ===
Classic CSPs treat constraints as hard, meaning that they are ''imperative'' (each solution must satisfy all them) and ''inflexible'' (in the sense that they must be completely satisfied or else they are completely violated). '''Flexible CSP'''s relax those assumptions, partially ''relaxing'' the constraints and allowing the solution to not comply with all them. This is similar to preferences in [[preference-based planning]]. Some types of flexible CSPs include:
* MAX-CSP, where a number of constraints are allowed to be violated, and the quality of a solution is measured by the number of satisfied constraints.
* Weighted CSP, a MAX-CSP in which each violation of a constraint is weighted according to a predefined preference. Thus satisfying constraint with more weight is preferred.
* Fuzzy CSP model constraints as [[fuzzy logic|fuzzy]] relations in which the satisfaction of a constraint is a continuous function of its variables' values, going from fully satisfied to fully violated.
 
==See also==
* [[Constraint satisfaction]]
* [[Declarative programming]]
* [[Constraint programming]]
* [[DisCSP|Distributed Constraint Satisfaction Problem]] (DisCSP)
* [[Unique games conjecture]]
* [[Weighted constraint satisfaction problem]] (WCSP)
 
== References ==
<references/>
 
== Further reading ==
* {{cite journal|author=Steven Minton, Andy Philips, Mark D. Johnston, Philip Laird|title=Minimizing Conflicts: A Heuristic Repair Method for Constraint-Satisfaction and Scheduling Problems|journal=Journal of Artificial Intelligence Research|year=1993|volume=58|pages=161&ndash;205|url=https://eprints.kfupm.edu.sa/50799/1/50799.pdf|format=PDF}}
 
==External links==
*[http://4c.ucc.ie/web/outreach/tutorial.html CSP Tutorial]
 
*{{cite book
| first=Edward
| last=Tsang
| title=Foundations of Constraint Satisfaction
| year=1993
| publisher=Academic Press
| url=http://www.bracil.net/edward/FCS.html
}} ISBN 0-12-701610-4
*{{cite journal|first1=Hubie|last1=Chen|date=December 2009|title=A Rendezvous of Logic, Complexity, and Algebra|journal=ACM Computing Surveys|publisher=ACM|doi=10.1145/1592451.1592453|pages=1–32 |volume=42|issue=1}} [http://arxiv.org/pdf/cs/0611018v1 Open-access 2006 Version]
*{{cite book
| first=Rina
| last=Dechter
| title=Constraint processing
| publisher=Morgan Kaufmann
| year=2003
| url=http://www.ics.uci.edu/~dechter/books/index.html
}} ISBN 1-55860-890-7
*{{cite book
| first=Krzysztof
| last=Apt
| title=Principles of constraint programming
| publisher=Cambridge University Press
| year=2003
}} ISBN 0-521-82583-0
*{{cite book
| first=Christophe
| last=Lecoutre
| title=Constraint Networks: Techniques and Algorithms
| publisher=ISTE/Wiley
| year=2009
| url=http://www.iste.co.uk/index.php?f=a&ACTION=View&id=250
}} ISBN 978-1-84821-106-3
* Tomás Feder, [http://theory.stanford.edu/~tomas/consmod.pdf  ''Constraint satisfaction: a personal perspective''], manuscript.
* [http://4c.ucc.ie/web/archive/index.jsp Constraints archive]
* [http://www.nlsde.buaa.edu.cn/~kexu/benchmarks/benchmarks.htm Forced Satisfiable CSP Benchmarks of Model RB]
* [http://www.cril.univ-artois.fr/~lecoutre/research/benchmarks/benchmarks.html Benchmarks -- XML representation of CSP instances]
* [http://www.cs.st-andrews.ac.uk/~ianm/docs/Thesis.ppt Dynamic Flexible Constraint Satisfaction and Its Application to AI Planning], Ian Miguel - slides.
*[http://www.ps.uni-sb.de/Papers/abstracts/tackDiss.html Constraint Propagation] - Dissertation by Guido Tack giving a good survey of theory and implementation issues
 
{{DEFAULTSORT:Constraint Satisfaction Problem}}
[[Category:Constraint programming]]

Revision as of 12:45, 10 February 2014

My name is Louann Colechin. I life in Ambania (Australia).

Feel free to surf to my site ... Hostgator Discount Voucher