0

我正在使用 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}。

我怎样才能解决这类不等式问题以找到最终答案。(包括分数的问题)。
请帮我。
如果有任何学习资料可以参考,请告诉我。

4

1 回答 1

1

library(clpr) 文档建议它仅被动地处理非线性约束,因此您不走运。你需要一个更复杂的代数系统。

于 2014-11-23T07:47:21.980 回答