Download presentation

Presentation is loading. Please wait.

Published byMalachi Aspinwall Modified over 2 years ago

1
Modeling with Constraint Logic Programming Ulf Nilsson Dept of Computer and Information Science Linköping University

2
Representing DC Circuits r(R) R C1C2 ser(C1, C2) par(C1, C2) C1 C2 c(V) V

3
Example 10 5 9V ser(c(9), par(r(10), r(5))) circuit(c(N)) :- {N>=0}. circuit(r(N)) :- {N>=0}. circuit(ser(C1, C2)) :- circuit(C1), circuit(C2). circuit(par(C1, C2)) :- circuit(C1), circuit(C2).

4
Resistance % res(C, R) % Circuit C has resistance R res(c(V), 0) :- {V>=0}. res(r(R), R) :- {R>=0}. res(ser(C1, C2), R1+R2) :- res(C1, R1), res(C2, R2). res(par(C1, C2), R1*R2/(R1+R2)) :- res(C1, R1), res(C2, R2).

5
Derivation =0, res(r(X),R2) | 10=R1+R2 > =0 > X=5

6
Typical CLP program solve(Term) :- setup_constraints(Term), redundant_constraints(Term), solve_constraints.

7
Language of CLP(B) zBoolean constants: 0 and 1 zParameters: X, Y,... zNegation: ~ zBinary connectives: *, +, #, =<, =:=,... zCardinality: card(Is, Es)

8
CLP built-ins zsat(BOOLEXPR) The boolean expression is added to the constraint store if the store is still satisfiable ztaut(BOOLEXPR, TRUTHVAL) Succeeds if TRUTHVAL=1 and BOOLEXPR is entailed by the constraint store or if TRUTHVAL=0 and ~BOOLEXPR is entailed by the constraint store. zlabeling(VARLIST) Enumerates all bindings of the variables in VARLIST that satisfy the constraint store.

9
Examples ?- sat(A+B), sat(~A). A=0, B=1 ?- sat(A*B), sat(~A). no ?- sat(A+B), sat(~A), taut(B, 1). A=0, B=1 ?- sat(A=:=B), labeling([A,B]). A=0, B=0 A=1, B=1

10
Examples: Cardinality ?- sat(A+B), sat(card ([1], [A, B])). sat(A=\= B) ?- sat(A=**
{
"@context": "http://schema.org",
"@type": "ImageObject",
"contentUrl": "http://images.slideplayer.com/12/3377108/slides/slide_10.jpg",
"name": "Examples: Cardinality - sat(A+B), sat(card ([1], [A, B])).",
"description": "sat(A=\= B) - sat(A=
**

11
Circuit Verfication p-switch MOSn-switch MOS Source Drain Gate Drain Source nswitch(S, D, G) :- sat(D*G =:= G*S). pswitch(S, D, G) :- sat(D* ~G =:= ~G*S).

12
Example ?- nswitch(S, D, G), labeling([S, D, G]). D = 0, G = 0, S = 0 D = 1, G = 0, S = 0 D = 0, G = 1, S = 0 D = 0, G = 0, S = 1 D = 1, G = 0, S = 1 D = 1, G = 1, S = 1

13
Circuit verification (cont’d) 0 1 yx z tmp xor(X, Y, Z) :- pswitch(Tmp,1,X), nswitch(0, Tmp, X), pswitch(Z, X, Y), nswitch(Z, Tmp, Y), nswitch(Z, Y, Tmp), pswitch(Z, Y, X). 11 0

14
Is It Really an XOR? ?- xor(X, Y, Z). sat(X=:=Y#Z) ?- xor(X,Y,Z), labeling([X, Y, Z]). X = 0, Y = 0, Z = 0 X = 1, Y = 0, Z = 1 X = 1, Y = 1, Z = 0 X = 0, Y = 1, Z = 1

15
Testing vs Verification ?- xor(X, Y, Z), taut(Z=:=X#Y, 1). sat(X=:=Y#Z) Can we verify the circuit without testing it? Yes! Schematically: ?- sat(System), taut(Property, 1).

16
Very Useful Theorem Property is entailed by System iff (System * ~Property) is unsatisfiable ?- xor(X, Y, Z), sat(~(Z=:=X#Y)). no

Similar presentations

OK

ECE 2300 Circuit Analysis Dr. Dave Shattuck Associate Professor, ECE Dept. Lecture Set #13 Step Response 713 743-4422 W326-D3.

ECE 2300 Circuit Analysis Dr. Dave Shattuck Associate Professor, ECE Dept. Lecture Set #13 Step Response 713 743-4422 W326-D3.

© 2018 SlidePlayer.com Inc.

All rights reserved.

Ads by Google

Ppt on modern science and technology Download ppt on community planning for disaster management Ppt on social media free download Ppt on media revolution tv Ppt on regular expression reference Ppt on ip address classes ranges Best ppt on project tiger Ppt on nutrition in animals class 7 Doc convert to ppt online student Ppt on mesoamerica and south america