我正在使用prolog解决不平等问题。我找到了一个代码,它解决了 ax+b>=0 类型的方程。
我使用的代码如下。
:-use_module(library(clpr)).
dec_inc(left,right):-
copy_term(left-right,Copyleft-Copyright).
tell_cs(Copyleft).
max(Copyright,right,Leq).
tell_cs(Leq).
max([],[],[]).
max([E=<_|Ps],[_=<P1|P1s],[K=<P1|Ls]):-
sup(E,K),
max(Ps,P1s,Ls).
tell_cs([]).
tell_cs([C|Cs]):-
{C},
tell_cs(Cs).
例如
当我们给出 {2*X+2>=5} 时,它给出了正确的答案。 {X>=1.5}。
2.但是如果我输入像{(X+3)/(3*X+1)>=1}这样的分数。 它给出 {1- (3+X)/(1+3.0*X)=<0.0}。
我怎样才能解决这种类型的不等式问题才能找到最终答案。(包括分数的问题)。
请帮助我。
如果有任何我可以参考的学习材料,请告诉我。
library(clpr) 文档建议它只被动地处理非线性约束,所以你不走运。你需要一个更复杂的代数系统。