使用Prolog解决不平等问题

时间:2014-11-23 07:11:49

标签: prolog inequalities clpq clpr

我正在使用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&GT = 1.5}。

    2.但是如果我输入像{(X + 3)/(3 * X + 1)> = 1}这样的分数。它给出{1-(3 + X)/(1 + 3.0 * X)=&lt; 0.0}。

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

1 个答案:

答案 0 :(得分:0)

库(clpr)文档advises它仅处理线性约束被动,因此您运气不佳。你需要一个更复杂的代数系统。