Explore chapters and articles related to this topic
Design Optimization with Uncertain Application Knowledge
Published in Don Potter, Manton Matthews, Moonis Ali, Industrial and Engineering Applications of Artificial Intelligence and Expert Systems, 2020
Ravi Kapadia, Markus P.J. Fromherz
Model-based computing makes use of constraint logic programming as the language for specifying models and implementing reasoning algorithms. The models are veridical and declarative. A veridical model (i.e., one that is true to “first-principles”) captures the physics of the underlying components and the construction of systems from these components. A declarative model is a conjunction of logical formulas that can be described in the vocabulary of the domain, and can be produced by engineers familiar with the domain. Since models are independent of task-specific algorithms, they can be re-used in multiple applications.
Introduction
Published in Joseph Y.-T. Leung, Handbook of SCHEDULING, 2004
Constraint satisfaction together with constraint logic programming has been applied to a wide range of timetabling problems starting with research in the nineties[18-21]. Constraint logic programming is particularly well suited for timetabling problems because it allows for the formulation of the problem in a more direct way than other approaches [22,23]. Suitable representation of the problem by the variables and their domains can greatly influence the way constraints can be formulated and the overall computational effectiveness of the program. Basically, search within the solution space is performed using some type of heuristic or other nonsystematic method. Within the constraint satisfaction programming approach, preferences for selecting feasible solutions are implemented with the help of some heuristics [7,19]. For example, the authors in [7] use constraint logic programming to attack the timetabling problem for universities. They state, “An essential component is an automatic heuristic solution search with an interactive user-intervention facility. The user will, however, only be able to alter a timetable or schedule in such a way that no hard constraints are violated.” This approach is similar to what is used in GATES and suggested in this chapter. The automatic heuristic solution portion of the GATES’ search is implemented by considering the priority of the various assignments under consideration and then ordering the goal predicates using priority information. Soft constraints are automatically retracted or modified, but the user may intervene and retract or modify their own set of the constraints.
Constraint Programming
Published in Jay Liebowitz, The Handbook of Applied Expert Systems, 2019
Constraint logic programming (CLP) combines logic, which is used to specify a set of possibilities explored via a very simple inbuilt search method, with constraints, which are used to minimize the search by eliminating impossible alternatives in advance. The programmer can state the factors that must be taken into account in any solution—the constraints, state the possibilities — the logic program, and use the system to combine reasoning and search. The constraints are used to restrict and guide search.
A Prolog application for reasoning on maths puzzles with diagrams
Published in Journal of Experimental & Theoretical Artificial Intelligence, 2022
Riccardo Buscaroli, Federico Chesani, Giulia Giuliani, Daniela Loreti, Paola Mello
As most puzzles can be interpreted as a CSP, orthogonally to the three layers, the library makes use of Constraint Logic Programming over Finite Domains (CLP(FD)),9 which extends SWI-Prolog with reasoning over finite domains of integers. Constraint Logic Programming over a theory (CLP(); Jaffar and Maher (1994)) is an extension of Logic Programming that provides the capability of expressing constraints over variables, which are then treated not as ‘normal’ logic variables, but rather subjected to the constraint theory specified for the type . CLP(FD) allows to consider variables whose range is over a finite domain, and that can be subjected to arithmetic constraints (such as equalities, disequalities and inequalities), but also global constraints such as all_different.
Towards transformational creation of novel songs
Published in Connection Science, 2019
Jukka M. Toivanen, Matti Järvisalo, Olli Alm, Dan Ventura, Martti Vainio, Hannu Toivonen
Constraint logic programming is an efficient declarative programming paradigm for solving computational problems with many interacting components. The goal of the computation is described declaratively and the intermediary steps for reaching that goal are left unspecified. Finding the optimal solution can then be performed with a general-purpose constraint solver. In our work, we utilise Answer Set Programming (ASP), a programming paradigm rooted in logic programming and non-monotonic reasoning (Gelfond & Lifschitz, 1988; Niemelä, 1999; Simons, Niemelä, & Soininen, 2002).