Problog中的相互排他性

时间:2018-05-01 18:11:44

标签: prolog probability mutual-exclusion

我们有4个不同的存储空间,

我们有5个不同的盒子(名为b1,b2,b3,b4,b5),他们想放在这个存储空间中。每个存储空间一次只能填充一个唯一的框。但是B5有一个特殊条件,允许同时在多个存储空间中使用。

每个方框都有指定的特定权重(b1 = 4,b2 = 6,b3 = 5,b4 = 6,b5 = 5)。

每个方框都有特定的概率填写到存储空间(b1 = 1,b2 = 0.6,b3 = 1,b4 = 0.8,b5 = 1)。

如果总重量为22,我们会尝试获取存储空间的可能内容及其概率。 (我们将其用作证据机制)

"

例如:SS1 - b2(6)               SS2 - b5(5)               SS3 - b4(6)               SS4 - b5(5)(总重量为22)

此内容的概率。

在我的代码中,我得到了一个可能的内容作为totalboxweight(b2,b5,b4,b5,22)的答案,这对我来说很重要,它意味着第一个框" b2"在第一个存储空间," b5"在第二个存储空间等等..

"

到目前为止,这是我的代码,我还添加了注释以解释我的意图

但我需要帮助来更新它添加概率并应用我所谈论的一些条件。

box(b1,4).
box(b2,6).
box(b3,5).
box(b4,6).
box(b5,5).    % I tried to define the boxes but I dont know how to assign probabilites to them in this format


total(D1,D2,D3,D4,Sum) :- Sum is D1+D2+D3+D4. % I defined the sum calculation

totalboxweight(A,B,C,D,Sum) :- box(A,D1), box(B,D2) , box(C,D3), box(D,D4), total(D1,D2,D3,D4,Sum). % I am sum up all weights

sumtotal(Sum) :- box(A,D1), box(B,D2) , box(C,D3), box(D,D4), total(D1,D2,D3,D4,Sum). % I difined this one to use it as an evidence

evidence(sumtotal(22),true). % if we know the total weight is 22 

query(totalboxweight(D1,D2,D3,D4,22)). % what is the probable content

我正在使用在线Problog编辑器来测试我的代码。你可以在下面找到链接,

https://dtai.cs.kuleuven.be/problog/editor.html

我试图在Problog而不是Prolog中进行,因此语法不同。

some results of the code

现在,在答案的帮助下,我克服了一些问题,我仍然遇到的问题;

  • 我无法应用概率
  • 我无法应用条件(每个存储空间一次只能填充一个唯一的盒子。但是B5有一个特殊条件,允许同时在多个存储空间中使用。)< / LI>

提前谢谢你。

0 个答案:

没有答案