Решение неравенства с использованием Пролога

Я работаю над решением проблем неравенства, используя пролог. Я нашел код, который решает уравнения типа 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}. это дает правильный ответ. {Х>=1,5}.

    2. Но если я введу дробь как {(X+3)/(3*X+1)>=1}. это дает {1- (3+X)/ (1+3,0*X)=<0,0}.

Как я могу решить этот тип вопросов о неравенстве, чтобы найти окончательный ответ.(Вопросы, которые включают дроби).
Пожалуйста, помогите мне.
Если есть какие-либо учебные материалы, на которые я могу ссылаться, пожалуйста, дайте мне знать.

1 ответ

Документация библиотеки (clpr) советует, что она имеет дело с нелинейными ограничениями только пассивно, так что вам не повезло. Вам нужна более сложная система алгебры.

Другие вопросы по тегам