function rule=rulewithattr(condition,decision)
% to find all ruled hided in the decision system
% 鲁东大学张小峰编制,
% 为了保证本软件代码的共享性,如果您要修改,请注明修改日期和修改者,谢谢您的合作
% QQ:250129131 iamzxf@126.com
red=reductwithattrds(condition,decision);
reduced=condition(:,red);
[reduced,decision]=preprocess(reduced,decision);
[r,c]=size(reduced);
reduce=reduced;
for i=2:r
tempdec=decision(i,:);
j=c;
while j>=1
tempcon=reduced(i,:);
tempcon(1,j)=-1;
flat=1;% 预设标志位为1,如果不存在矛盾则为1,否则为0
for k=2:r
if (equal1(reduce(k,:),tempcon)==1) & (tempdec~=decision(k,:))
flat=0;
end
end
if flat==1
reduced(i,j)=-1;
end
j=j-1;
end
end
[reduced,decision]=preprocess(reduced,decision);
[c,r]=size(reduced);
[cd,rd]=size(decision);
% flat=1;%suppose there does not exist conflict
% for j=2:c
% if equal1(reduced(i,:),reduced(j,:))==1 & decision(i,:)~=decision(j,:)
% flat=0;
% end
% end
% if flat==1
l=0;
for i=2:c
k=0;
temp='';
for j=1:r
if reduced(i,j)~=-1
k=k+1;
if k==1
temp=strcat(temp,'a ',int2str(reduced(1,j)),'= ',int2str(reduced(i,j)));
else
temp=strcat(temp,' and ',' ',' a ',int2str(reduced(1,j)),' = ',int2str(reduced(i,j)));
end
end
end
decp='';
for j=1:rd
if j==1
decp=strcat(decp,' d ',int2str(decision(1,j)),' = ',int2str(decision(i,j)));
else
decp=strcat(decp,' and ',' ',' d ',int2str(decision(1,j)),' = ',int2str(decision(i,j)));
end
end
l=l+1;
rule=strcat(temp,' implies ',' ',decp)
end
end
- 1
- 2
- 3
- 4
- 5
- 6
前往页