以下Prolog程序确定了保险费汽车保险.保险费取决于车辆的马力和驾驶员的年龄.
calculateCarInsurance(PS,Insurance) :-
PS < 60 , Insurance = 100.
calculateCarInsurance(PS,Insurance) :-
PS >= 60 , PS < 100 , Insurance = 200.
calculateCarInsurance(PS,Insurance) :-
PS >= 100 , Insurance = 300.
isInRiskyGroup(Age) :- Age < 25.
calculateCarInsurance(PS,Age,_) :- Age < 18 , fail.
calculateCarInsurance(PS,Age,Insurance) :-
Age >= 18 , isInRiskyGroup(Age) ,
calculateCarInsurance(PS,I2) ,
Insurance is I2 * 2.
calculateCarInsurance(PS,Age,Insurance) :-
not(isInRiskyGroup(Age)) ,
calculateCarInsurance(PS,Insurance).
Run Code Online (Sandbox Code Playgroud)
现在需要a)用Green Cuts优化程序.b)通过删除不需要的谓词,将绿色更改为红色削减.程序的行为应该是相同的.
我已经理解了prolog程序,但可以通过优化绿色削减来解决.谢谢,任何人都可以用细节解释a,b.谢谢