首页 > 解决方案 > Prolog中实数的非线性约束

问题描述

我正在使用 clpr 对 Prolog 中的实数进行约束逻辑编程。具体来说,我想最大化非线性表达式,请参见下面的代码。clpr 仅限于线性约束,因此下面的代码不起作用(将 * 替换为 + 有效)。

如果有的话,你能推荐一个图书馆吗?

干杯/JCR

:-use_module(library(clpr)).

main:-
    {Y = X1 * X2 - X3},
    {X1 >= 0, X1 =< 1},
    {X2 >= 0, X2 =< 1},
    {X3 >= 0, X3 =< 1},
    maximize(Y),
    write("Y = "), write(Y), nl,
    write("X1 = "), write(X1), nl,
    write("X2 = "), write(X2), nl,
    write("X3 = "), write(X3).

标签: prologconstraints

解决方案


推荐阅读