它可以创建一个混合它包含的子句的子句吗?

时间:2013-10-17 17:46:29

标签: prolog

我必须通过各种子句开发列表来获取值,但不知道子句之间的最佳组合,因为每个子句从初始列表中删除项目,后续工作在剩余列表中。

是否可以创建单个子句,找到条款的最佳组合?

calculate(List,Value):-
    calculate_value1(List,R,Value1),
    calculate_value1(List,R,Value2),
    calculate_value1(List,R,Value3),
    max([Value1,Valu2,Value3],Value).


calculate_value1(List,Rest,Value1):-
    funcA(List,Rest1,ValueA),
    funcB(Rest1,Rest2,ValueB),
    funcC(Rest2,Rest3,ValueC).
    Value1 is ValueA + ValueB + ValueC.

calculate_value2(List,Rest,Value2):-
    funcB(List,Rest1,ValueB),
    funcA(Rest1,Rest2,ValueA),
    funcC(Rest2,Rest3,ValueC).
    Value2 is ValueA + ValueB + ValueC.

calculate_value3(List,Rest,Value3):-
    funcC(List,Rest1,ValueC),
    funcB(Rest1,Rest2,ValueB),
    funcA(Rest2,Rest3,ValueA).
    Value3 is ValueA + ValueB + ValueC.
谢谢。

我必须比较两个列表,我必须能够找到它们之间的最佳平衡。然后运行列出各种子句,这些子句识别第一个和第二个之间是否存在相同的元素,然后比率为100%,或者如果列表中的一个是另一个的总和。同时检查他们是否是亲密关系的邻居,110接近100而不是150。但数据不仅仅是数字。

现在我有几个单独的子句:equals(),它们在两个列表之间平等地标识元素sum(),它标识具有它们之和的比率的项目,multiply()等.... 对于输入中的每个子句,我是否得到一个列表和符合该子句标准的项目列表(sum,multiplication,c ....),找到的百分比以及为其提供输入的剩余元素列表条款接下来。

然而,这样做是一个程序性的程序,因为我首先计算的元素相同,然后总和等......

我希望能够创建一个动态程序,能够通过子句识别任何顺序中的最佳百分比。

我希望我更清楚。

0 个答案:

没有答案