1 / 20

Constraint Logic Programming

Constraint Logic Programming. t.k.prasad@wright.edu http://www.knoesis.org/tkprasad/. Ordinary Logic Programming. ?- p(a,X) = p(Y,b). Y=a X=b ?- p(X,X) = p(a,b). *fails* Unification solves equality constraints (under unique name hypothesis). Constraint Logic Programming.

chione
Télécharger la présentation

Constraint Logic Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Constraint Logic Programming t.k.prasad@wright.edu http://www.knoesis.org/tkprasad/ L12CLP

  2. Ordinary Logic Programming ?- p(a,X) = p(Y,b). Y=a X=b ?- p(X,X) = p(a,b). *fails* • Unification solves equality constraints (under unique name hypothesis) L12CLP

  3. Constraint Logic Programming ?- X + 2 = 5. *fails in ordinary LP* In CLP, succeeds with: X = 3 • Generalizes to constraint satisfaction problem, interpreting “+” as the arithmetic addition operator L12CLP

  4. Constraint Satisfaction Problem • Given a set of variables, their types (domains of values and applicable operations), and constraints on them, determine assignment of values to variables so that the constraints are satisfied. • Benefit: Embodiment of Declarative Programming • Challenge: Designing tractable constraint languages L12CLP

  5. Applications • Scheduling and Resource Management in production and transportation • teachers and courses to classes rooms • machines to jobs • crews to planes • Linear and Non-linear programming problems • Mortgage Calculations L12CLP

  6. CLP : Motivation fib(0,1). fib(1,1). fib(N,X) :- N1 is N-1, N2 is N-2, fib(N1,X1), fib(N2,X2), X is X1 + X2. ?- fib(4,5). Succeeds. ?- fib(X,5). Fails. • Treatment of arithmetic expression looks unnatural, as it does not smoothly integrate with the logic programming paradigm (e.g., invertibility destroyed) L12CLP

  7. Introducing the Theory of Arithmetic fib(0,1). fib(1,1). fib(N, X1 + X2) :- N > 1, fib(N - 1,X1), fib(N - 2,X2). • Interpret arithmetic operators in the domain of reals • improves readability • improves invertibility ?- fib(N, 13). N = 6. ?- fib(N, X), 10 =< X, X =< 25. N = 6. X = 13. N = 7. X = 21. L12CLP

  8. Solving Simultaneous Equations ?- X + Y = 12, 2*X + 4*Y = 34. X = 7. Y = 5. • Complex Multiplication zmul(c(R1,I1),c(R2,I2),c(R3,I3)) :- R3 = R1 * R2 - I1 * I2, I3 = R1 * I2 + R2 * I1. ?- zmul(c(2,2),Ans,c(0,16)) Unique solution: Ans = C(4,4) ?- zmul(A,B,c(0,16)) Infinite solution: *Set of constraints* L12CLP

  9. Prolog vs CLP(R) ?- 5 + 2 = X + Y. X = 5 Y = 2 ?- 5 + 2 = X + 3. *fail* • Equality constraints over terms ?- 5 + 2 = X + Y. X = 7 - Y ?- 5 + 2 = X + 3. X = 4 • General constraints over arithmetic expressions; Equality constraints over terms L12CLP

  10. Prolog vs CLP(R) • Uninterpreted function symbols • Unification algorithm • Backtrack when terms fail to unify • Arithmetic operators + uninterpreted term trees • General constraint solvers • E.g., Simplex algorithm for linear constraints • Backtrack when constraints violated L12CLP

  11. CLP : Linear Programming light_meal(A,M,D) :- appetizer(A,I), main_course(M,J), dessert(D,K), I >= 0, J >= 0, K >= 0, I + J + K <= 12. appetizer(soup,1). appetizer(nachos,6). main_course(sphagetti,3). main_course(alfredo,7). dessert(fruit,2). dessert(ice_cream,6). L12CLP

  12. ?- light_meal(App,Main,Dess). Dess = fruit Main = sphagetti App = soup *** Retry? y Dess = ice_cream Main = sphagetti App = soup *** Retry? y Dess = fruit Main = alfredo App = soup *** Retry? y Dess = fruit Main = sphagetti App = nachos L12CLP

  13. CLP : Mortgage Payment Calculator %mortgage( Principal, Time_Months, Interest_Rate, Monthly_Payment, Balance) mortgage(P,0,_,_,P). mortgage(P,1,_,_,B) :- B = P * (1 + (I / 1200)) - MP. mortgage(P, T, I, MP, B) :- mortgage( (P * (1 + I / 1200)) - MP, T – 1, I, MP, B). L12CLP

  14. CLP : Mortgage Payment Queries %mortgage( Principal, Time_Months, Interest_Rate, Monthly_Payment, Balance) %Customer: What will be the monthly payment? ?- mortgage(148000,180,8,M,0). M = 1414.37 %Lender: How much loan does one qualify for, given monthly payment limit? ?- mortgage(P,180,8,1200,0). P = 125569 L12CLP

  15. (cont’d) %mortgage( Principal, Time_Months, Interest_Rate, Monthly_Payment, Balance) %Customer/Lender: What is the remaining balance? ?- mortgage(148000,180,8.375,1124.91,B). B = 115088 %Customer: How long will it take to clear the debt? ?- mortgage(148000,L,8.5,1400,0). L = 195.731 L12CLP

  16. (cont’d) %mortgage( Principal, Time_Months, Interest_Rate, Monthly_Payment, Balance) %Customer: What is the contribution to the principal in the first month (in a 15 yr loan at 8 or a 30 yr loan at 8.375)? %Customer: Building equity. ?- mortgage(148000,1,8,1414,148000-CP). CP = 427 ?- mortgage(148000,1,8.375,1124,148000-CP). CP = 92 L12CLP

  17. Non-linear constraints : CLP(R) Fails Here %mortgage( Principal, Time_Months, Interest_Rate, Monthly_Payment, Balance) %Customer: What is the maximum interest rate for the given principal and monthly payment? %Customer: Affordability ?- mortgage(148000,180,I,1400,0). *lots of constraints output* L12CLP

  18. CLP : Annuity Calculator %annuity( Time_Months, Interest_Rate, Monthly_Payment, Initial_Principal, Total_Value) annuity(0,_,_,IP,IP). annuity(T, I, MP, IP, TV) :- annuity(T-1, I, MP, IP, V), TV = MP + (V * (1 + I / 1200)). L12CLP

  19. CLP : Annuity Queries %annuity( Time_Months, Interest_Rate, Monthly_Payment, Initial_Principal, Total_Value) %Customer: What will be the final investment value? ?- annuity(180,5,225,0,FV). FV = 60140 %Customer: What is the net gain? ?- annuity(180,5,225,0,225*180 + G). G = 19640 L12CLP

  20. CLP : Limitations ?- (Cows + Pigs + Sheeps) = 100, (10*Cows + 3*Pigs + Sheeps/2) = 100, Cows >= 1, Pigs >= 1, Sheeps >= 1. Pigs = -1.35714*Sheeps + 128.571 Cows = 0.357143*Sheeps - 28.5714 Sheeps <= 94 * Lots of constraints * • CLP(R) is unable to determine the unique solution: Cows = 5, Pigs = 1, Sheeps = 94 L12CLP

More Related