Constraint programming was invented, or discovered, in the early 1960s. A main idea in constraint programming is to tell a computer what you want without specifying an exact procedure and/or process to follow.
Constraints are relations that must be satisfied; examples: a line must remain horizontal, a component in an electrical circuit simulation must obey Ohm's Law, one column in a web page table must be at least twice as wide as another. Constraints have been used in many types of languages and systems, especially in user interface toolkits, planning and scheduling, and simulation.
It is often easy to write constraints where the answer is hard to compute. Example: In constraint programming, X * X = 2 will find X even if you don't tell a program exactly how to do it. For this, it solves by iteratively changing X and converging on an answer, without knowing how to do the square root algorithm; this was Isaac Newton's method for finding square roots.
In programming and mathematics, constraints can be algebraic or logical (Boolean): often an equality or inequality relation, between the values of one or more variables, often between two; example: x > 2 is a constraint on x. Constraint satisfaction is the process of assigning values to variables so all constraints are true.
In programming, constraints are relationships that are declared once, and then maintained automatically by a system. Constraints are automatically evaluated when needed, rather than needing programmers to call them when needed. They should have no side effects. Constraints can also serve as a type of inheritance.
Constraint programming uses methods from mathematics, artificial intelligence, and operations research. It allows fast development, economic maintenance, and high performance. Directly representing a problem as constraints results in shorter, simpler programs, easier to understand and adapt to changing needs.
On this page, languages are arranged in three groups and levels: 1) Top group: types or classes of languages. 2) Middle group: languages for which there are more than one instance of a language of this name/type, a language family. 3) Bottom group: specific languages, individual instances; there is only one language of this name/type.
More information
More information
Subcategories 5
Related categories 4
Sites 21
Description of book, Academic Press, release 1993: programs from book.
Java applet that solves non-linear real arithmetic constraints.
Incremental constraint solving toolkit, efficiently solves systems of linear equalities, inequalities. Constraints can be requirements or preferences. Client code specifies constraints to maintain, and the solver updates constrained variables to have values that satisfy the constraints.
Constraints can specify desired layout of web documents, and behavior of embedded applets: 2 system architectures where author and viewer can make layout constraints, needed and optional. Final appearance of page comes from negotiation between author and viewer, via solving all the constraints.
Covering all aspects of computing with constraints; on paper or online; fee required.
For incremental dataflow constraint solver, implemented in varied languages, each in a subdirectory named after the language: C DEC, C SUN4; Common Lisp, Smalltalk.
Efficient, incremental local propagation constraint solver. Like most local propagation algorithms, it cannot accommodate cyclic constraints. University of Washington site.
The ad hoc manner in which direct manipulation interfaces have been designed and implemented restricts the types of interactive controls. This dissertation presents a new approach for a systematic method to implement flexible, combinable interactive controls.
Home of Explanation-based Constraint Programming. Definitions, applications, libraries, links.
Generating an Amalgam of Real-time, Novel Editors and Toolkits; developed by User Interface Software Group, Human Computer Interaction Institute, School of Computer Science, Carnegie Mellon University. Free: public domain.
Frequently Asked Questions about Garnet user interface development environment for Common Lisp and X11 or Macintosh developed by User Interface Software Group, Human-Computer Interaction Institute, Carnegie Mellon University.
Personal page of Garnet inventor and lead researcher. Describes Garnet motives, rationale.
Generic Constraint Development Environment. Constraint solver implemented as C++ library. Main goals: modifiability, extensibility, speed. Features: integer and set variables, large constraint set, copying-based search. [Open Source, BSD]
Online tutorial/textbook for beginners to the area of constraint programming. This area is of the set of less known software technologies, but is evolving rapidly and has a growing, significant commercial interest.
Free constraint software developed by Institute for New Generation Computer Technology (ICOT), Japan: Constraint MGTP (CMGTP) model generation theorem prover (MGTP), MGTP-G, KLIC, some cu-Prologs, and documents. FTP site.
Constraint-programming optimization engine, providing cutting-edge optimization technology and an optimization library for workforce scheduling, league scheduling, sequencing, configuration, dispatching and resource-allocation applications with logical constraints.
Attempt to make a system that is easier to learn and use than anything available to novice programmers today: HANDS: Human-centered Advances for Novice Development of Software. School of Computer Science, Carnegie Mellon University; NSF funded.
Frameworks and algorithms for analyzing and transforming scientific programs; 2 major components: the Omega test system to manipulate sets of affine constraints over integer variables; and developing frameworks to analyze and transform programs.
2001 November 26 - December 1, Paphos, Cyprus.
Free, reusable iterative optimization library for combinatorial problems with fuzzy constraints. GNU LGPL.
Supports exploration of constraint-based user interfaces; consists of a set of classes that define constraints and constrainable objects called things. Incremental constraint satisfier, module compiler, construction-set style user interface, many tools, extensible set of primitive user interface building blocks.
Incremental constraint solving toolkit, efficiently solves systems of linear equalities, inequalities. Constraints can be requirements or preferences. Client code specifies constraints to maintain, and the solver updates constrained variables to have values that satisfy the constraints.
Covering all aspects of computing with constraints; on paper or online; fee required.
Constraint-programming optimization engine, providing cutting-edge optimization technology and an optimization library for workforce scheduling, league scheduling, sequencing, configuration, dispatching and resource-allocation applications with logical constraints.
Description of book, Academic Press, release 1993: programs from book.
Frameworks and algorithms for analyzing and transforming scientific programs; 2 major components: the Omega test system to manipulate sets of affine constraints over integer variables; and developing frameworks to analyze and transform programs.
For incremental dataflow constraint solver, implemented in varied languages, each in a subdirectory named after the language: C DEC, C SUN4; Common Lisp, Smalltalk.
Free constraint software developed by Institute for New Generation Computer Technology (ICOT), Japan: Constraint MGTP (CMGTP) model generation theorem prover (MGTP), MGTP-G, KLIC, some cu-Prologs, and documents. FTP site.
Generic Constraint Development Environment. Constraint solver implemented as C++ library. Main goals: modifiability, extensibility, speed. Features: integer and set variables, large constraint set, copying-based search. [Open Source, BSD]
Home of Explanation-based Constraint Programming. Definitions, applications, libraries, links.
Supports exploration of constraint-based user interfaces; consists of a set of classes that define constraints and constrainable objects called things. Incremental constraint satisfier, module compiler, construction-set style user interface, many tools, extensible set of primitive user interface building blocks.
Personal page of Garnet inventor and lead researcher. Describes Garnet motives, rationale.
Attempt to make a system that is easier to learn and use than anything available to novice programmers today: HANDS: Human-centered Advances for Novice Development of Software. School of Computer Science, Carnegie Mellon University; NSF funded.
Generating an Amalgam of Real-time, Novel Editors and Toolkits; developed by User Interface Software Group, Human Computer Interaction Institute, School of Computer Science, Carnegie Mellon University. Free: public domain.
Constraints can specify desired layout of web documents, and behavior of embedded applets: 2 system architectures where author and viewer can make layout constraints, needed and optional. Final appearance of page comes from negotiation between author and viewer, via solving all the constraints.
The ad hoc manner in which direct manipulation interfaces have been designed and implemented restricts the types of interactive controls. This dissertation presents a new approach for a systematic method to implement flexible, combinable interactive controls.
Online tutorial/textbook for beginners to the area of constraint programming. This area is of the set of less known software technologies, but is evolving rapidly and has a growing, significant commercial interest.
Free, reusable iterative optimization library for combinatorial problems with fuzzy constraints. GNU LGPL.
2001 November 26 - December 1, Paphos, Cyprus.
Efficient, incremental local propagation constraint solver. Like most local propagation algorithms, it cannot accommodate cyclic constraints. University of Washington site.
Java applet that solves non-linear real arithmetic constraints.
Frequently Asked Questions about Garnet user interface development environment for Common Lisp and X11 or Macintosh developed by User Interface Software Group, Human-Computer Interaction Institute, Carnegie Mellon University.
Last update:
December 11, 2022 at 6:25:08 UTC
Check out
Recreation: Outdoors: Wildlife: Plants: Edible
- Recently edited by shedragon
- Recently edited by shedragon