Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction. IC-Parc2 ECLiPSe Components Constraint Logic Programming system, consisting of  A runtime core Data-driven computation, backtracking, garbage.

Similar presentations


Presentation on theme: "Introduction. IC-Parc2 ECLiPSe Components Constraint Logic Programming system, consisting of  A runtime core Data-driven computation, backtracking, garbage."— Presentation transcript:

1 Introduction

2 IC-Parc2 ECLiPSe Components Constraint Logic Programming system, consisting of  A runtime core Data-driven computation, backtracking, garbage collection  A collection of libraries Constraint propagators, search support, application support, development support  A modelling and control language Logic programming  A development environment Tkeclipse  Interfaces for embedding into host environments Java, Tcl/Tk, C/C++  Interfaces to third-party solvers Xpress-MP, Cplex, COIN-OR Constraint Logic Programming system, consisting of  A runtime core Data-driven computation, backtracking, garbage collection  A collection of libraries Constraint propagators, search support, application support, development support  A modelling and control language Logic programming  A development environment Tkeclipse  Interfaces for embedding into host environments Java, Tcl/Tk, C/C++  Interfaces to third-party solvers Xpress-MP, Cplex, COIN-OR

3 IC-Parc3 ECLiPSe Uses ECLiPSe is intended for  General programming tasks especially rapid prototyping  Problem solving using the CLP paradigm using the available solver libraries  Development of new constraint solvers employing ECLiPSe's lower-level language features possibly based on the existing solvers ECLiPSe is intended for  General programming tasks especially rapid prototyping  Problem solving using the CLP paradigm using the available solver libraries  Development of new constraint solvers employing ECLiPSe's lower-level language features possibly based on the existing solvers

4 IC-Parc4 How Does It Work - The C(L)P Paradigm Model Heuristics Search Efficient Algorithms Efficient Algorithms Xi Cj

5 IC-Parc5 Constraint (Logic) Programming Program = Logic + Control Control = Reasoning + Search Declarative Problem model Constraint propagation Clever algorithms Heuristics Problem specific knowledge

6 IC-Parc6 Why use Logic Programming and Prolog?  Predicates over logical variables Constraints over mathematical variables (unlike ‘variable’ = storage location as in imperative languages!)  Program = Logic + Control Solution = Model + Solver  Symbolic manipulation and metaprogramming Program/data interchangeability is good for implementing solvers, programming search, preprocessing constraints, etc  Built-in backtracking A general default mechanism for handling disjunctions A convenient primitive for programming more complex search

7 IC-Parc7 Constraint Program Template :- lib(...). solve(Variables) :- setup_constraints(Variables), search(Variables). :- lib(...). solve(Variables) :- setup_constraints(Variables), search(Variables). Model deterministic correctness Search nondeterministic choices & heuristics efficiency Algorithms deterministic efficiency

8 IC-Parc8 Logic Programming for Modelling  Variables can have attributes e.g. domain, type  Constraints = predicates, involving 1 or more variables  Model = setup program X1{1..9} alldifferent([ _, _, _ ]) X3{5..9} X2{3..9} X4{1..7} _ #> _ _ #\= _ [X1,X2,X3,X4]::1..9, X1 #> X2, alldifferent([X2,X3,X4]), X1 #\= X4.

9 IC-Parc9 Logic Programming for Search  Binary choice ( X=0 ; X=1 )  Enumerate ( X=1 ; X=2 ; X=3 ; X=4 ) X :: 1..4, indomain(X)  Split ( X #= 5 )  Heuristic choice ( X = Guess ; X #\= Guess )

10 IC-Parc10 Related Languages  Formal specification languages (e.g. B, Z, VDM) More expressive power than ECLiPSe, but not executable  Mathematical modelling languages (e.g. OPL, AMPL) Similar to ECLiPSe, but usually limited expressive power (e.g. fixed set of constraints) and limited control  Search languages (Salsa, ToOls) For expressing search strategies, special-purpose  Mainstream programming languages (e.g. C++ with ILOG) Variables and constraints are “aliens” in the language Specification mixed up with procedural control  Other CLP/high-level languages (e.g. CHIP, SICStus, Oz) Most similar to ECLiPSe. Less support for hybrid problem solving. Harder to define new constraints  Formal specification languages (e.g. B, Z, VDM) More expressive power than ECLiPSe, but not executable  Mathematical modelling languages (e.g. OPL, AMPL) Similar to ECLiPSe, but usually limited expressive power (e.g. fixed set of constraints) and limited control  Search languages (Salsa, ToOls) For expressing search strategies, special-purpose  Mainstream programming languages (e.g. C++ with ILOG) Variables and constraints are “aliens” in the language Specification mixed up with procedural control  Other CLP/high-level languages (e.g. CHIP, SICStus, Oz) Most similar to ECLiPSe. Less support for hybrid problem solving. Harder to define new constraints

11 IC-Parc11 Components Covered in this Course  ECLiPSe Programming language  Constraint Solver Libraries e.g. ic, eplex, ic_global, ic_sets, ic_symbolic, suspend  Search & Optimization Support Libraries e.g. ic_search, branch_and_bound, repair  Constraint Building Support Libraries e.g. propia, chr/ech  General Programming Support Libraries e.g. lists, hash, …  Development Tools e.g. tkeclipse, visualisation, coverage, profile, document

12 IC-Parc12 Constraint Solver Libraries Solver library Variable domains Constraints classBehaviour suspend numericArbitrary arithmetic in/dis/equalitiesPassive test fd integer, symbol Linear in/dis/equalities and some others Domain propagation ic real, integerArbitrary arithmetic in/dis/equalities Bounds/domain propagation ic_global integer N-ary constraints over lists of integers Bounds/domain propagation ic_sets set of integer Set operations (subset, cardinality, union, …) Set-bounds propagation ic_symbolic ordered symbolsDis/equality, ordering, element, … Bounds/domain propagation propia inheritedanyvarious eplex real, integerLinear in/equalitiesGlobal, optimising


Download ppt "Introduction. IC-Parc2 ECLiPSe Components Constraint Logic Programming system, consisting of  A runtime core Data-driven computation, backtracking, garbage."

Similar presentations


Ads by Google