PROLOG代码找到所有可能组合的最便宜组合

时间:2018-05-31 20:05:44

标签: configuration prolog combinations mathematical-optimization combinatorics

在这里完成PROLOG的新手。我提供了一个部件列表来实现一个假设的计算系统:

%partName(name, type, number, required_types, size, price)
part(a-1, a, 1, 2*b, 0.5, 60 )
part(a-2, a, 2, 3*b, 1.0, 25 )
part(b-1, b, 1, 2*c, 0.5, 25 )
part(b-2, b, 2, -, 1, 45 )
part(c-1, c, 1, -, 0.5, 5 )
part(c-2, c, 2, -, 0.5, 10 )
part(d-1, d, 1, 1*b && 2*c, 0.5, 45 )
part(d-2, d, 2, 1*c-1, 0.5, 25 )

例如:a型和1号的a-1部分需要两(2)个b型部件才能发挥作用(两个b-1或两个b-2之一),然后b- 1需要另外两(2)个c型部件才能起作用等。零件还包括尺寸(半尺寸为0.5,全尺寸为1)和价格。

(注意:根据需要使用“ - ”的部分单独工作,部分d-1需要一个b型和两个c类型,而d-2特别需要一个c-1而不是一般的ac类型。 )

输入是部件类型的设置,例如{a,b},{c,d},{a,b,d}等。 在空间和金钱方面,输出是最便宜的配置/组合。 记住:例如,在{a,b}中,“a”可以是a-1或a-2(与b相同),并且每个部分都需要上面列出的部分以便起作用等等,所以我认为它所有都在树上工作,有点“递归”的方式。

我想我首先必须找到所有可能的组合/配置,然后以某种方式找到最便宜/最紧凑的。

任何人都可以提供有关如何设置问题的工作解决方案或基本见解吗? 请成为救星。

0 个答案:

没有答案