- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
粗糙集-属性约简-matlab程序
Data2为条件属性,decision2为决策属性
%%%my_test函数实现
clc;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%读取信息系统文件
file = textread(data2.txt,%s,delimiter,\n,whitespace,; %读取文件信息,每一行为一个胞元
[m,n]=size(file; %胞元的大小
for i=1:m
words=strread(file{i},%s,delimiter, ;%读取每个胞元中字符,即分解胞元为新的胞元
words=words;%转置
X{i}=words;
end
X=X;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[B,num,AT]=my_reduct(X; %信息系统的约简
ind_A T=ind(X; %信息系统的不可等价关系
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%显示约简信息系统
disp(约简后的条件系统为:;
[m,n]=size(B;
for i=1:m
disp(B{i};
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%读取决策系统文件
file = textread(decision2.txt,%s,delimiter,\n,whitespace,;
[m,n]=size(file;
for i=1:m
words=strread(file{i},%s,delimiter, ;
words=words;
D{i}=words;
end
D=D;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%决策系统的正域约简
X_D=X;
[l,k]=size(X_D{1};
pos_d=pos(X_D,D;%正域
for i=1:m %%%%%%%%%%%%%%正域有问
题%%%%%%%%%%%%%%%%%%%%%%%%%%%
if(~ismember(num(i,pos_d
B{i}=; %若约简后的信息系统B{i}不在正域中则删除该行
end %因为相同的条件得到的决策不一样,
end
%将在正域规则下约简过的信息系统B连接决策系统D
[m,n]=size(B;
for i=1:m
if(~isequal(B{i},
B{i}{1,k+1}=D{i}{1};
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%显示约简决策系统
disp(约简后的决策系统为:;
[m,n]=size(B;
for i=1:m
disp(B{i};
end
--------------------------------------------------------------------------------
%%%%%my_reduct函数实现
function [C,num,reduct_attr]=my_reduct(X
%%%%%y为约简后的cell数组,reduct_attr为可约去的属性
%X为行向量(元素为胞元
clc;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%约简
[m,n]=size(X;
[p,k]=size(X{1};
ind_A T=ind(X;%寻找不可等价关系
reduct_attr=[]; %可约去的的属性
num=zeros(m,1;%约简后的信息对应的个体
for i=1:k
B=delete_A T(X,i;
if(isequal(ind_A T,ind(B %若IND(AT-{a}=IND(A T
reduct_attr=union(reduct_attr,i; %则寻找到可约去的属性
X=B;
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%剔除重复的行
k=1;
for i=1:m
if(~isequal(ind_A T{i},[]
C_i=ind_A T{i,1}(1;
num(k=i;
C{k,1}=X{C_i}; %返回约简后的信息系统
k=k+1;
end
end
--------------------------------------------------------------------------------
%%%%%ind函数实现
function yy=ind(X %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%寻找不可分辨关系[m,n]=size(X;
k=1;
ind_A T=cell(m,1
文档评论(0)