使用Prolog解决不平等问题



我正在使用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).

例如

  1. 当我们给出 {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) 文档建议它只被动地处理非线性约束,所以你不走运。你需要一个更复杂的代数系统。

相关内容

  • 没有找到相关文章

最新更新