TÓM TẮT LUẬN ÁN TIẾN SĨ KỸ THUẬT
NHẬN DẠNG VÀ DỰ BÁO KHUYẾT TẬT CỦA DẦM TRÊN NỀN MẠNG NEURON VÀ LOGIC MỜ
Chuyên ngành: Cơ kỹ thuật
Trên đa số các hệ thống cầu giao thông, dầm cầu là một trong những thành phần chịu tải cơ bản, do đó khuyết tật xuất hiện trên dầm cầu là một trong những nguyên nhân chính gây ra sập cầu. Nghiên cứu xây dựng phương pháp nhận dạng khuyết tật và dự báo tình trạng làm việc của dầm là một cách tiếp cận để xây dựng hệ thống nhận dạng và dự báo khuyết tật thường xuyên (ND-DBTX) của cầu
Chương 1. TỔNG QUAN
1.1 GIỚI THIỆU CHUNG
1.1.1 Sơ lược về nhận dạng và dự báo khuyết tật
1.1.1.1 Nhận dạng khuyết tật
1.1.1.2 Bài toán dự báo
1.1.2 Hai giải pháp nhận dạng và dự báo khuyết tật
1.1.3 Quản trị cầu
1.2 MỘT SỐ CÔNG TRÌNH LIÊN QUAN
Có rất nhiều nghiên cứu trong thời gian gần đây về nhận dạng và dự báo khuyết tật
dựa vào lời giải bài toán ngược động lực học cơ hệ, dựa vào mạng neuron nhân tạo
(Artificial Neural Networks, ANN) và logic mờ (Fuzzy Logic, FL).
1.3 GIỚI THIỆU LUẬN ÁN
1.3.1 Mục đích của luận án Trên đa số các hệ thống cầu giao thông, dầm cầu là
một trong những thành phần chịu tải cơ bản; khuyết tật xuất hiện trên dầm là một
trong những nguyên nhân chính gây ra sập cầu. Mục tiêu của luận án là nghiên cứu xây dựng các thuật toán về nhận dạng và dự báo khuyết tật của phần tử dầm, làm
cơ sở để xây dựng hệ thống ND-DBTX của cầu trong nghiên cứu tiếp theo.
1.3.2 Nhiệm vụ đặt ra cho luận án
- Nghiên cứu tổng quan về nhận dạng và dự báo khuyết tật của cầu giao thông.
- Phát triển các công cụ toán học cho các thuật toán nhận dạng và dự báo
khuyết tật, bao gồm xác lập cơ sở dữ liệu mới cho hệ thống suy diễn neuro-fuzzy
và xây dựng các thuật toán mới về huấn luyện mạng neuro-fuzzy.
- Xây dựng các thuật toán mới về nhận dạng và dự báo khuyết tật của dầm trên
nền là hệ thống suy diễn neuro-fuzzy.
- Thí nghiệm, kiểm chứng và đánh giá khả năng ứng dụng trên các hệ thống
cầu thực của các thuật toán nhận dạng và dự báo khuyết tật nêu trên, làm cơ sở cho
các nghiên cứu tiếp theo về xây dựng hệ thống ND-DBTX.
1.3.3 Phương pháp nghiên cứu Giải pháp phi cấu trúc trong nhận dạng và dự
báo khuyết tật được sử dụng.
1.3.4 Tính thực tiễn của đề tài Yêu cầu thực tế đặt ra là cần phải triển khai các
biện pháp khoa học công nghệ tiên tiến vào quản lý hệ thống cầu giao thông.
Ngoài ra, từng bước làm chủ khoa học và công nghệ trong quản trị cầu cũng như
các cơ hệ lớn, của các chi tiết và cơ cấu máy là việc làm có ý nghĩa thực tiễn cao.
1.3.5 Tóm tắt nội dung Luận án được trình bày trong 5 chương.
28 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2770 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Nhận dạng và dự báo khuyết tật của dầm trên nền mạng neuron và logic mờ, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
166 Luận án Tiến sĩ Kỹ thuật
Nguyễn Sỹ Dũng
Phụ lục 1: Các chương trình về chia bó dữ liệu và tổng hợp mạng neuro-fuzzy
% *************************************
anfisProg1.m
% *************************************
% The Algorithm HLM1 [9], N01
% anfisProg1.m, duoc viet tren nen Matlab dua vao thuat toan HLM1 cua [9]. Chuong trinh co
% chuc nang xac lap he thong suy dien neuro-fuzzy thich nghi thong qua tap du lieu so.
% Chuong trinh gom:
% - Chuong trinh chinh anfisProg1.m
% - Cac chuong tring con:
% N1_clasifyInput_start_tam.m
% test_U.m
% HyperPlane.m
% N1_clasifyInput_repeat_tam.m
% hyperPlane_repeat.m
% cut_hydridHB_tam.m
% test_pHB.m
% fusion_tam2.m
% test_pHBfusion.m
% netoldProg2.m
%========================================================================
% 10.06.2009 18221543
% NGUYEN SY DUNG
% TRUONG DAI HOC CONG NGHIEP THANH PHO HO CHI MINH
% ĐT 0978690778
% Email nsidung@yahoo.com
%========================================================================
% MA TRAN PHAN BO U{r,1}(i,j) dung de xac lap quy luat phan bo cac mau du lieu trong cac bo.
% Nhan cua cac mau xac dinh dua vao U{r,1}. Vd, neu U{r,1}(i,j)=1, suy ra mau thu j thuoc bo thu
% i, do do nhan cua phan tu thu j ( HANG j trong matran mau x1; hoac COT j trong U{r,1}= [M x
% P]) la i. (r: vong lap thu r)
%
% ma tran cac mau x1 = 1 2 3; y= 4
% 3 4 5 1
% 5 6 7 2
% 7 8 9 3
% 1 2 3 5
% 5 6 7 ; 2
%
167 Luận án Tiến sĩ Kỹ thuật
Nguyễn Sỹ Dũng
% P=6;
% n=3
% [x1]=Pxn
%
% U{r,1}= [M x P] 1 1 0 0 1 0
% 0 0 1 1 0 1;
% M=2;P= 6
%
% O day, cac mau j=1;2;5 thuoc bo 1
% j=3;4;6 thuoc bo 2
%
%======================================================
clear all
disp('NHAP DU LIEU HUAN LUYEN:')
disp('==================================================')
disp('DATA=0, f3_100_2_C1, y(i,1)=1*((5-x1(i,2))^2)/(3*(5-x1(i,1))^2+(5-x1(i,2))^2)')
disp('DATA=3, f2_100_2_C10;')
disp('DATA=4, tapmau_15_3;')
disp('DATA=5, tapmau_100_10;')
disp('DATA=6, f4_50_2, y=(1+x1^-2+x2^-1.5)^2;')
disp('DATA=7, tapmau_100_10test')
disp('DATA=8, hs100 (100x20) ')
%I. NHAP DA TA:
D=[];
DATA=input(‘DATA=')
if DATA==6
f4_50_2
P=50;
n=2;
chophep=0.01;
M=input(' M=')
end
if DATA==0
f3_100_2_C1
P=100;
n=2;
chophep=0.01;
M=input('M=')
end
if DATA==1
f3_100_2
P=100;
n=2;
chophep=0.01;
M=input(' M=')
end
if DATA==2
n=input('So bien ung voi 1 mau, n=')
168 Luận án Tiến sĩ Kỹ thuật
Nguyễn Sỹ Dũng
for i=1:P
for j=1:n
disp('MAU THU:')
i
x1(i,j)=input('Bien j cua mau i, x1(i,j)=')
end
y(i,1)=input('Bien y cua mau i, y(i,1)=')
end
M=input('NHAP SO LUAT MO, M=')
if MP-1
disp('NHAP KHONG THOA DANG (1<M<P & M THUOC TAP N). nhap lai!')
M=input('NHAP SO LUAT MO, M=')
end
end
if DATA==3
f2_100_2_C10
P=100;
n=2;
chophep=0.01;
M=input(' M=')
end
if DATA==4
P=15
n=3
tapmau_15_3
chophep=0.01;
M=input(' M=')
end
if DATA==5
P=100
n=10
tapmau_100_10
chophep=0.01;
M=input(' M=')
end
if DATA==7
P=100
n=10
tapmau_100_10test
chophep=0.01;
M=input(' M=')
end
if DATA==8
degree_damage=input('degree_damage =')
disp('….')
P=100
n=20
load('C:\PROGRA~1\MATLAB7.0\work\BO-SUN~2.200\730X6X~1\730X6-
~1.10\dlhs1hl.mat')
169 Luận án Tiến sĩ Kỹ thuật
Nguyễn Sỹ Dũng
x1=hs100
y=ones(100,1)*degree_damage
chophep=0.01;
M=input(' M=')
end
if DATA==9
n=2
P=2841
Train_Beam29_In_output
chophep=0.01;
M=input('M=')
end
if DATA==10
n=2
P=4000
Train_Beam29_In_output
chophep=0.01;
M=input(' M=')
end
chophep=0.001;
%-------------------------------------------------
%xu ly so lieu: loai cac mau trung nhau
k=0;
testt=[];
dataa=zeros(P,1)
while k<P-1
k=k+1;
testt=x1(k,:)
for i=(k+1):P
if x1(i,:)==testt
dataa(i,1)=1
end
end
end
[ii,jj]=find(dataa==1)
P=P-length(ii);
tstart=clock;
% MO HOA TAP DATA
%=================
% Chia bo o input
U=cell(5*P,1);
r=1
N1_clasifyInput_start_tam
test_U
% Xay dung cac sieu phang o output
D=[];
170 Luận án Tiến sĩ Kỹ thuật
Nguyễn Sỹ Dũng
teta=0.1;
hyperPlane
stopin_output=P;
kt=1;
while ((stopin_output>=0.2)|(kt>teta))&(r<=5)
r=r+1;
N1_clasifyInput_repeat_tam
hyperPlane_repeat
test_U
stopin_output=0;
for i=1:M
for j=1:P
stopin_output=stopin_output+abs(U{r,1}(i,j)-U{r-1,1}(i,j))/P;
end
end
if r>1
kt=abs(D(r,1)-D(r-1,1))/D(r-1,1)
end
end
%xay dung bo thuan chung, xac lap cac bo thuan chung lien ket pHB_fusion
test_U
cut_hydridHB_tam
test_pHB
fusion_tam2
test_pHBfusion
% test_pHBfusion% ket qua nhan duoc pHBoder_fusion sieu hop thuan chung pHB_fusion nhung
% thu tu cua pHB_fusion khong theo dung thu tu cua nhan.
%sap xep cac sieu hop thuan chung pHBoder_fusion theo so th. tu cua nhan:
tamluuf=cell(pHBoder_fusion,1);
dennf=M;
nhanbo=zeros(pHBoder_fusion,1)
for t0=1:pHBoder_fusion
%xac dinh nhan:
%--------------------------------------------
for k=1:M
k1=min(find(pHB_fusion{t0,1}(k,:)))
if k1>0
nhan=k;
nhanbo(t0,1)=k;
end
end
%--------------------------------------------
%sap xep
171 Luận án Tiến sĩ Kỹ thuật
Nguyễn Sỹ Dũng
if length(tamluuf{nhan,1})==0
tamluuf{nhan,1}=pHB_fusion{t0,1};
elseif length(tamluuf{nhan,1})>0
dennf=dennf+1;
tamluuf{dennf,1}=pHB_fusion{t0,1};
end
end
pHB_fusion=tamluuf
% XAC LAP QUY TAC HOP THANH VA GIAI MO
%====================================
netoldProg2
tstop=clock;t= etime(tstop,tstart);
kmax=P
k=1:kmax
for i=1:P
h(1,i)=0
end
plot(k,hieu,'b',k,h,'--r')
xlabel('Data Set -----> ')
Ylabel('Error ----->')
grid off%on
hold on
% *************************************:
N1_clasifyInput_start_tam.m
% *************************************
% The Algorithm CBMM [9]
%========================================================================
% N1_classify_start_tam.m la chung trinh con, dùng de xay dung cac bo o khong gian vao, gian
% nhan cho tat ca các mau huan luyen o chu ky DAU TIEN:
% - Chon ngau nhien M tam;
% - Tinh khoang cach tu moi mau toi cac tam;
% - Bien che cac bo tuong ung cac tam, dua tren khoang cach MIN toi M tam va thuat toan
% C-mean;
% - Kiem tra dieu kien (*):
% tong cac bien che cua M bo = P?
% Moi cot cua matran phan bo U{r,1}(i,j)=1?
% So phan tu tren 1 bo phai thoa: 1<=mothang<=P-M+1?
% - Cap nhat lai matran phan bo U{r,1}(i,j)=1
%========================================================================
% 10.06.0918221543 NSD. N02 %
%========================================================================
172 Luận án Tiến sĩ Kỹ thuật
Nguyễn Sỹ Dũng
tstart=clock;
kiemtra=0;
while kiemtra==0
t=[];
tambo_i=cell(M,1);
%1/ Bien che bo
d=[];
U{r,1} = random('Normal',0,300,M,P)
for i=1:M
t(i,1)= max(U{r,1}(i,:));
for j=1:P
if U{r,1}(i,j)-t(i,1)==0
U{r,1}(i,j)=1;
tambo_i{i,1}=x1(j,:)
else
U{r,1}(i,j)=0;
end
end
end
% cap nhat bien che cac bo o input
for k=1:M
for i=1:P
tam1=0;
for j=1:n
tam1=tam1+(x1(i,j)-tambo_i{k,1}(1,j))^2;
end
d(k,i)=(tam1)^0.5
end
end
% cap nhat matran U va bien che cac bo o input: Utam=U{r,1};
for i=1:P
dmin=min(d(:,i))
for k=1:M
if d(k,i)==dmin
Utam(k,i)=1
else
Utam(k,i)=0;
end
end
end
% Kiem tra
U{r,1}=Utam;
test_U'
173 Luận án Tiến sĩ Kỹ thuật
Nguyễn Sỹ Dũng
end %of while
% cap nhat matran phan bo input U:
U{r,1}=Utam
% *************************************
% test_U.m
% *************************************:
% Kiem tra ma tran phan bo U{r,1} thoa dieu kien (*):
% 1/ Tong cac 'mot'=P
% 2/ Chi co duy nhat 1 phan tu 'mot' tren mot cot
% 3/ Tong so phan tu 'mot' tren mot hang T thoa man: 0<T<=P-M+1
%==================================================================
%==================================================================
% 10.06.0918221543 NSD. N03 %
%==================================================================
Utam=U{r,1};
mothang=zeros(M,1);
mottong=0;
for i=1:P
motcot(1,i)=0;
for k=1:M
if Utam(k,i)==1
motcot(1,i)=motcot(1,i)+1;
mothang(k,1)=mothang(k,1)+1;
mottong=mottong+1;
end
end
end
%Test va dieu chinh hang
for k=1:M
if mothang(k,1)==0
hmax=max(mothang);
[kk,hh]=find(mothang==hmax)
[kkk,jj]=find(Utam(kk,:)==1)
jj=min(jj)
Utam(kk,jj)=0;
Utam(k,jj)=1;
end
end
%test va dieu chinh cot
for i=1:P
174 Luận án Tiến sĩ Kỹ thuật
Nguyễn Sỹ Dũng
for k=1:M
if (motcot(1,i)>1)&(mothang(k,1)>1)&(Utam(k,i)==1)
Utam(k,i)=0;
motcot(1,i)=motcot(1,i)-1;
mothang(k,1)=mothang(k,1)-1;
mottong=mottong-1;
end
end
end
%Kiem tra dieu kien (*)?
kiemtra=0;
cot=1;
hang=1;
tong=0;
for i=1:P
cot=cot*motcot(1,i)
for k=1:M
hang_k=0;
if (mothang(k,1)0)
hang_k=1;
end
hang=hang*hang_k;
end
end
if mottong==P
tong=1
end
kiemtra=cot*hang*tong
%=====================================================================
U{r,1}=Utam
%**********************************************************
% HyperPlane.m
%**********************************************************
% Function Hyperplane.m dung de xac dinh:
% - cac sieu phang o khong gian ra khi da biet bien che cac mau cua moi sieu phang;
% - thuc hien viec dan nhan lai cac mau huan luyen o khong gian vao dua vao bien che moi
% cua cac sieu phang o khong gian ra.
%=====================================================================
% 10.06.0918221543 NSD. N04 %
%=====================================================================
175 Luận án Tiến sĩ Kỹ thuật
Nguyễn Sỹ Dũng
V=cell(M,1);%matran he so cua he phuong trinh (8) o noi dung bai bao
a=cell(M,1)%vector he so ah, h=0...n, cua M cac sieu phang o output
%1/ Tinh matran he so V cua he phuong trinh tinh ah, h=1,...,n+1
for k=1:M%cho tung sieu phang
for h=1:n+1 % hang cua V
for j=1:n+2 % cot cua V
V{k,1}(h,j)=0;
end
end
end
for k=1:M%cho tung sieu phang
for i=1:P
if U{r,1}(k,i)==1
for h=1:n+1 % hang cua V
for j=1:n+2 % cot cua V
if h==1&j==1%tinh cho hang dau tien, cot 1
V{k,1}(h,j)=V{k,1}(h,j)-y(i,1);
end
if h==1&j==2%tinh cho hang dau tien, cot 2
V{k,1}(h,j)=V{k,1}(h,j)+1;
end
if h==1&j>2 %tinh cho hang dau tien, cac cot con lai
V{k,1}(h,j)=V{k,1}(h,j)+x1(i,j-2)
end
if h>=2&j==1 %h=2...(n+1): tinh cho cac hang con lai cua matran V
V{k,1}(h,j)=V{k,1}(h,j)-y(i,1)*x1(i,h-1);
end
if h>=2&j==2
V{k,1}(h,j)=V{k,1}(h,j)+x1(i,h-1);
end
if h>=2&j>2%j=3...(n+2)
V{k,1}(h,j)=V{k,1}(h,j)+x1(i,j-2)*x1(i,h-1);
end
end
end
end
end
end
% Tinh vector he so ah, h=0...n, cua cac sieu phang
A=cell(M,1)
B=cell(M,1)
C=cell(M,1)
kt=[];
for k=1:M
A{k,1}=V{k,1};
A{k,1}(:,1)=[];
C{k,1}=-V{k,1}(:,1);
kt(k,1)=det(A{k,1})
muy=0.001
anp=1
while kt(k,1)==0
176 Luận án Tiến sĩ Kỹ thuật
Nguyễn Sỹ Dũng
muy=anp*muy
A{k,1}=A{k,1}+muy*eye(n+1)
kt(k,1)=det(A{k,1})
anp=anp+1;
end
a{k,1}=A{k,1}\C{k,1}%cac he so ai, i=1...n+1, cua sieu phang thu k, k=1...M
end %a1=a{k,1}(1,1)
%a2=a{k,1}(2,1)
%.
%.
%.
%a(n+1)=a{k,1}(n+1,1)
% tinh Kh. C. toi sp
d_sieuphang=cell(P,1);
tam3=[];
for i=1:P
x0(i,1)=1
end
x=[x0 x1]
for k=1:M
tam3(k,1)=1+(a{k,1}')*a{k,1}
for i=1:P
tam02=x(i,:)*a{k,1}
d_sieuphang{r,1}(k,i)=abs((y(i,1)-tam02)/(tam3(k,1)^0.5))
end
end
%tinh MIN (Kh. C.)
tam4=0;
for i=1:P
kcmin{r,1}(1,i)= min(d_sieuphang{r,1}(:,i)) (o vong lap r)
tam4=tam4+kcmin{r,1}(1,i);
end
D(r,1)=tam4/P
% cap nhat U
for k=1:M
ktraMOT(k,1)=0;%dung tinh so phan tu cua bo k (tong so phan tu = 1 o hang k).
for i=1:P
if d_sieuphang{r,1}(k,i)-kcmin{r,1}(1,i)==0
U{r,1}(k,i)=1;
ktraMOT(k,1)=ktraMOT(k,1)+1;
else
U{r,1}(k,i)=0;
end
end
end
%kiem tra so p.tu trong mot bo de dieu chinh,sao cho 1<= so phan tu trong 1 bo <= P-1
for i=1:M
k=i;
j=1;
177 Luận án Tiến sĩ Kỹ thuật
Nguyễn Sỹ Dũng
while ktraMOT(i,1)==0%bo i co tong so phan tu = 0
if k<M
k=k+1;
else
k=1;
end
if ktraMOT(k,1)>1 & (U{r,1}(k,j)==1)
U{r,1}(k,j)=0;
U{r,1}(i,j)=1;
ktraMOT(k,1)=ktra(k,1)-1;
ktraMOT(i,1)=ktra(i,1)+1;
end
if ktraMOT(k,1)>1 & (U{r,1}(k,j)==0)
while U{r,1}(k,j)==0
j=j+1;
end
U{r,1}(k,j)=0;
U{r,1}(i,j)=1;
ktraMOT(k,1)=ktraMOT(k,1)-1;
ktraMOT(i,1)=ktraMOT(i,1)+1;
end
end
end%for
for k=1:M
a{k,1}
end
%****************************************
N1_clasifyInput_repeat_tam.m
%****************************************
% Function N1_clasify_repeat.m dung de xây dung các bó o khong gian vao, sieu phang o
%không gian ra và gián nhan cho tat ca các mau huan luyen. Khac voi N1_clasify_start, function
%nay dung cho cac vong lap (tru vong khoi tao) de xac dinh lai bo o input va output khi da co cac
%bo o input va output.
% Muc tieu la tim lai cac bo o input va cac sieu phang o output sao cho ca 2, input va output
%cac mau huan luyen phan bo (dong thoi) gan cac bo o input va gan cac sieu phang o output.
%Ly do chinh o day la: Neu chi dung o ket qua cua N1_clasify_start, cac mau se chi moi gan cac
%sieu phang o output, chua chac da gan cac bo o output. Dong thoi, so vong lap khoi tao, cac
%tam bo duoc chon ngau nhien nen ket qua cua N1_clasify_start o output van chiu anh huong
%cua viec chon nay. Do do, ung voi moi gia tri cac bo ngau nhien ma ket qua cac sieu phang o
%output cung thay doi theo.
% De khac phuc:
% 1/ O tai lieu "...Synthesis of ANFIS Networks" (Massimo...2005 [93]), tac gia dung nhieu chon
%lua ngau nhien khi chon cac bo input (duoc the hien boi thong so T). Ket qua cac bo va cac sieu
%phang duoc chon ung voi T cho han danh gia F tot nhat;
% 2/ Trong luan an nay, tac gia su dung N1_clasify_repeat.
%========================================================================
% 10.06.0918221543 NSD. N05 %
%========================================================================
178 Luận án Tiến sĩ Kỹ thuật
Nguyễn Sỹ Dũng
kiemtra=0;
U{r,1}=U{r-1,1}
while kiemtra==0
t=[];
tambo_i=cell(M,1);
%Xac dinh tam bo:
d=[];
dem=[];
for k=1:M
for j=1:n
tambo_i{k,1}(1,j)=0;
end
end
for k=1:M
dem(k,1)=0;
for i=1:P
if U{r,1}(k,i)==1
dem(k,1)=dem(k,1)+1;
for j=1:n
tambo_i{k,1}(1,j)=tambo_i{k,1}(1,j)+x1(i,j)%tong toa do tam cua
bo i, i=1...M, theo huong j, j=1...n.
end
end
end
end
for k=1:M
for j=1:n
tambo_i{k,1}(1,j)=tambo_i{k,1}(1,j)/dem(k,1);
end
end
%2/cap nhat bien che cac bo o input
%2.1/ tinh kh c
for k=1:M
for i=1:P
tam1=0;
for j=1:n
tam1=tam1+(x1(i,j)-tambo_i{k,1}(1,j))^2;
end
d(k,i)=(tam1)^0.5%khoang cach tu mau du lieu i, i=1...P, toi tam cua bo k, k=1...M.
end
end
%2.2/ cap nhat matran U va bien che cac bo o input:
for i=1:P
dmin=min(d(:,i))
for k=1:M
if d(k,i)==dmin
Utam(k,i)=1
else
Utam(k,i)=0;
179 Luận án Tiến sĩ Kỹ thuật
Nguyễn Sỹ Dũng
end
end
%3/ Kiem tra
U{r,1}=Utam;
test_U%kiem tra dieu kien (*). Bien ra 'kiemtra=1 hoac kiemtra=0'
end%of while
%cap nhat matran phan bo input U:
U{r,1}=Utam
%*****************************************
hyperPlane_repeat.m
%*****************************************
% Function hyperPlane_repeat.m dung de xac dinh:
% - cac sieu phang o khong gian ra khi da biet bien che cac mau cua moi sieu phang;
% - thuc hien viec dan nhan lai cac mau huan luyen o khong gian vao dua vao bien che moi
% cua cac sieu phang o khong gian ra.
%==================================================================
% 10.06.0918221543 NSD. N06 %
%==================================================================
V=cell(M,1);%matran he so cua he phuong trinh LMS
a=cell(M,1)%vector he so ah, h=0...n, cua M cac sieu phang o output
%1/ Tinh matran he so V cua he phuong trinh tinh ah, h=1,...,n+1
U{r,1}%=nn;
for k=1:M%cho tung sieu phang
for h=1:n+1 % hang cua V
for j=1:n+2 % cot cua V
V{k,1}(h,j)=0;
end
end
end
for k=1:M%cho tung sieu phang
for i=1:P
if U{r,1}(k,i)==1
for h=1:n+1 % hang cua V
for j=1:n+2 % cot cua V
if h==1&j==1%tinh cho hang dau tien, cot 1
180 Luận án Tiến sĩ Kỹ thuật
Nguyễn Sỹ Dũng
V{k,1}(h,j)=V{k,1}(h,j)-y(i,1);
end
if h==1&j==2%tinh cho hang dau tien, cot 2
V{k,1}(h,j)=V{k,1}(h,j)+1;
end
if h==1&j>2 %tinh cho hang dau tien, cac cot con lai
V{k,1}(h,j)=V{k,1}(h,j)+x1(i,j-2)
end
if h>=2&j==1 %h=2...(n+1): tinh cho cac hang
%con lai cua matran V
V{k,1}(h,j)=V{k,1}(h,j)-y(i,1)*x1(i,h-1);
end
if h>=2&j==2
V{k,1}(h,j)=V{k,1}(h,j)+x1(i,h-1);
end
if h>=2&j>2%j=3...(n+2)
V{k,1}(h,j)=V{k,1}(h,j)+x1(i,j-2)*x1(i,h-1);
end
end
end
end
end
end
%2/ Tinh vector he so ah, h=0...n, cua cac sieu phang
A=cell(M,1)
B=cell(M,1)
C=cell(M,1)
kt=[];
for k=1:M%sieu phang thu k
A{k,1}=V{k,1};
A{k,1}(:,1)=[];
C{k,1}=-V{k,1}(:,1);
kt(k,1)=det(A{k,1})
muy=0.001
anp=1
while kt(k,1)==0
muy=anp*muy
A{k,1}=A{k,1}+muy*eye(n+1)
kt(k,1)=det(A{k,1})
anp=anp+1;
end
a{k,1}=A{k,1}\C{k,1}%cac he so ai, i=1...n+1, cua sieu phang thu k, k=1...M
end %a1=a{k,1}(1,1)
%a2=a{k,1}(2,1)
%.
%.
%.
%a(n+1)=a{k,1}(n+1,1)
%3/ kh c moi
d_sieuphang=cell(P,1);
tam3=[];
181 Luận án Tiến sĩ Kỹ thuật
Nguyễn Sỹ Dũng
for i=1:P
x0(i,1)=1
end
x=[x0 x1]
for k=1:M%sieu phang M
tam3(k,1)=1+(a{k,1}')*a{k,1}
for i=1:P%so mau
tam02=x(i,:)*a{k,1}
d_sieuphang{r,1}(k,i)=abs((y(i,1)-tam02)/(tam3(k,1)^0.5))
%tu mau i, i=1...P, toi
%sieu phang k, k=1...M, tai vong lap r.
end
end
% kh c MIN
tam4=0;
for i=1:P
kcmin{r,1}(1,i)= min(d_sieuphang{r,1}(:,i))
tam4=tam4+kcmin{r,1}(1,i);
end
D(r,1)=tam4/P
%4/ cap nhat lai ma tran phan bo, U,
for k=1:M
ktraMOT(k,1)=0;%dung tinh so phan tu cua bo k (tong so phan tu = 1 o hang k).
for i=1:P
if d_sieuphang{r,1}(k,i)-kcmin{r,1}(1,i)==0
U{r,1}(k,i)=1;
ktraMOT(k,1)=ktraMOT(k,1)+1;
else
U{r,1}(k,i)=0;
end
end
end
for k=1:M
a{k,1}
end
182 Luận án Tiến sĩ Kỹ thuật
Nguyễn Sỹ Dũng
%*************************************
cut_hydridHB_tam.m
%*************************************
%The Algorithm CSHL [9]
%========================================================================
% Chuong trinh con dung cat cac sieu hop lai HYDRID hHB thanh mot tap gom tat ca cac sieu
%hop thuan chung pHB.
% Mot sieu hop lai duoc cat thanh 2 HB duoc to chuc duoi dang cac CELL. Moi CELL la mot
%matran boxx_number{Nocut,box}=[M,P];
% Nocut:la solan cat thu Nocut; box=1...,la so hop khong thuan chung hHB o lan cat Nocut
%dang xet. Matran boxx_number{Nocut,box}=[M,P] the hien mau xi,i=1...P, nhan k=1...M thuoc
%hay khong thuoc CELL nay:
% - Neu boxx_number{Nocut,box}(k,i)=1, i=1...P, xi thuoc CELL;
% - Neu boxx_number{Nocut,box}(k,i)=0, xi khong thuoc CELL.
% Cuoi chuong trinh la so luong hHB hien dang ton tai: boxmax
%========================================================================
%KET QUA NHAN DUOC: pHBoder cac sieu hop thuan chung, duoc sap xep theo thu tu cua
%nhan, tu 1...M.
%========================================================================
% 10.06.0918221543 NSD. N07 %
%========================================================================
boxmax=1;
boxx_number=cell(P,1);
boxx_number{boxmax,1}=U{r,1};
pHBoder=0;%bien sieu hop thuan chung.
pHB=cell(P,1);%luu lai cac sieu hop thuan chung
box_number=[];
dem=0;
while boxmax~=0&dem<P
dem=dem+1;
box_number=boxx_number{boxmax,1};
sizek=zeros(M,1);
for k=1:M
for i=1:P
if box_number(k,i)==1
sizek(k,1)=sizek(k,1)+1;
end
end
end
max1=max(sizek(:,1));
[i0,j1]=find(sizek==max1);
183 Luận án Tiến sĩ Kỹ thuật
Nguyễn Sỹ Dũng
if length(i0)>1
i1=min(i0);% co the nhieu nhan cung tan xuat: chi chon 1 nhan
i2=max(i0);
max2=max1;
end
if length(i0)==1
i1=min(i0);
sizekphu=sizek;
sizekphu(i0,j1)=0;%delete max1
max2=max(sizekphu(:,1));
[i2,j2]=find(sizekphu==max2);% bo thu k=i2 co so mau lon thu hai
i2=min(i2);
end
%==================================================================
%II/ cac truong hop co the xay ra:
%1/ Truong hop 1:
%===============
if max1==0% suy ra max2==0: sieu hop zero. XOA
boxx_number{boxmax,1}=[];
boxmax=boxmax-1;
if boxmax>0
box_number=boxx_number{boxmax,1};
end
end
%2/ Truong hop 2:
%===============
if max1>0&max2==0% suy ra boxx_number{boxmax,1} la mot sieu hop thuan chung: luu.
pHBoder=pHBoder+1;%bien sieu hop thuan chung.
pHB{pHBoder,1}=boxx_number{boxmax,1};
boxx_number{boxmax,1}=[];
%box_number=[]
boxmax=boxmax-1;
if boxmax>0
box_number=boxx_number{boxmax,1};
end
end
%3/ Truong hop 3:
%===============
if max1>0&max2>0
%3.1/ tinh trong tam (theo tung truc toa do) cua cac bo k=i1 va k=i2 co so phan tu la MAX1
va MAX2
vmax1=zeros(M,n);
vmax2=zeros(M,n);
for j=1:n %bien thu j
tumax1=0;
maumax1=0;
tumax2=0;
maumax2=0;
for i=1:P %mau thu i
if box_number(i1,i)==1%U{r,1}(i1,i)==1% k=i1,so phan tu la MAX1
184 Luận án Tiến sĩ Kỹ thuật
Nguyễn Sỹ Dũng
tumax1=tumax1+x1(i,j);%x1*U{r,1}(i1,i)==1*x1
maumax1=maumax1+1;
end
end
vmax1(i1,j)=tumax1/maumax1;%trong tam cua bo nhan i1 theo truc toa do j, j=1...n
for i=1:P %mau thu i
if box_number(i2,i)==1%U{r,1}(i2,i)==1% k=i2,so phan tu la MAX2
tumax2=tumax2+x1(i,j);%x1*U{r,1}(i1,i)==1*x1
maumax2=maumax2+1;
end
end
vmax2(i2,j)=tumax2/maumax2;%trong tam cua bo nhan i2 theo truc toa do j,j=1...n
end
% 3.2/ khoang cach tam cua 2 bo MAX1 va MAX2 theo cac truc va chon truc co hieu max de cat
% tai trung diem:
hieu=[];
for j=1:n
hieu(1,j)=abs(vmax1(i1,j)-vmax2(i2,j));
end
max3=max(hieu);
[hang,cut]=find(hieu==max3);%truc CUT la truc co j=cut
cut=min(cut);
anpha_cut=(vmax1(i1,cut)+vmax2(i2,cut))/2%diem cat anpha tren truc "cut"
% 3.3/ Thuc hien cat theo truc "cut" tai diem cat "anpha_cut". Phan chia cac mau ve 2 hop thanh
% phan dua vao diem cat:
boxx_number{boxmax,1}=zeros(M,P);%=0;
boxx_number{boxmax+1,1}=zeros(M,P);
for k=1:M
for i=1:P
if box_number(k,i)==1%nghia la mau x1(k,i) thuoc sieu hop
boxx_number{boxmax,1} dang duoc "cut"
if x1(i,cut)<=anpha_cut
boxx_number{boxmax,1}(k,i)=1; %moi cell cua box_number la
%mot matran, moi phan tu
%box_number{m,1}(i,j) co
%i=1...M, j=1...P, (MxP).
%Neu box_number{m,1}(k,i)=1,
%suy ra mau x1(i,:) nhan
end
if x1(i,cut)>anpha_cut
boxx_number{boxmax+1,1}(k,i)=1;
end
end
end
end
boxmax=boxmax+1;
end
end
185 Luận án Tiến sĩ Kỹ thuật
Nguyễn Sỹ Dũng
%4/ xep cac sieu hop thuan chung pHB{.}theo thu tu cua nhan k,k=1...M
tluu=cell(pHBoder,1);
de=M;
tdem=0;
nhanb=[];
for t0=1:pHBoder
[k,ik]=find(pHB{t0,1});
k=min(k);%k la nhan cua bo pHB_fusion{t0,1}
if k>0
tdem=tdem+1;
if length(tluu{k,1})==0
tluu{k,1}=pHB{t0,1};
else
de=de+1;
tluu{de,1}=pHB{t0,1};
end
end
end
pHBoder=tdem;
pHB=cell(pHBoder,1);
for i=1:pHBoder
pHB{i,1}=tluu{i,1};
end
for t0=1:pHBoder
[ki,ikk]=find(pHB{t0,1});
ki=min(ki);%xac dinh nhan cua bo pHB_fusion{t0,1}
if ki>0
nhanb(t0,1)=ki;
end
end
%**********************************
test_pHB.m
%**********************************
%==================================================================
% 10.06.0918221543 NSD. N08 %
%==================================================================
pHBoder_tam=0
pHB_tam=cell(pHBoder,1);
for i=1:pHBoder
if length(pHB{i,1})>0
pHBoder_tam=pHBoder_tam+1;
pHB_tam{pHBoder_tam,1}=pHB{i,1};
end
end
pHBoder=pHBoder_tam;
pHB=pHB_tam;
186 Luận án Tiến sĩ Kỹ thuật
Nguyễn Sỹ Dũng
%-----------------------------
kiemtra_pHB=zeros(M,P)
for i=1:pHBoder
kiemtra_pHB=kiemtra_pHB+pHB{i,1};
end
kiemtra_pHB=U{r,1}-kiemtra_pHB
%**********************************
fusion_tam2.m
%**********************************
% Function fusion_tam.m dung de lien ket cac sieu hop cung nhan thanh sieu hop lien ket
% pHB_fusion.
% Dieu kien de lien ket duoc la 2 diem cuc tri lien hop vmin_fusion va vmax_fusion khong phu
% (overlap) len bat ky mot mau nao khong thuoc 2 sieu hop trong tap huan luyen.
% Thuat toan thuc hien theo nguyen tac: Xet sieu hop thu t0, t0=1...pHBoder,
% pHB{t0,1}= [0 0 0 0 ...0 : % vector P cot, tuong thich voi U{r,1} MxP
% .
% .
% .
% 0 1 0...1 0 0 (hang thu k, k=1...M, (nhan k))
% .
% .
% .
% 0 0 0 0...0 0]
% O hang thu k (nhan k, k=1...M) co l sieu hop thuan chung pHB{1,1}, pHB{2,1},...,pHB{l,1}. Thuc
% hien kiem tra tinh fusion bat dau tu pHB{1,1} theo so do:
%
% pHB{1,1} kiem tra voi pHB{2,1},pHB{3,1},pHB{4,1},...,pHB{l,1}
% pHB{2,1} kiem tra voi pHB{3,1},pHB{4,1},...,pHB{l,1}
% pHB{3,1}kiem tra voi pHB{4,1},...,pHB{l,1}
% .
% .
% .
% pHB{l-1,1} kiem tra voi pHB{l,1}
%==================================================================
% 10.06.0918221543 NSD. N09 %
%==================================================================
dem_pHB=pHBoder;
min_j_t=[]
max_j_t=[]
min_j_tt=[]
187 Luận án Tiến sĩ Kỹ thuật
Nguyễn Sỹ Dũng
max_j_tt=[]
min_j_fusion_t=[]
max_j_fusion_t=[]
%xac dinh nhan:----------------------------
nhanb=[]
for t0=1:pHBoder
for k=1:M
k1=min(find(pHB{t0,1}(k,:)));
if k1>0
nhanb(t0,1)=k;
end
end
end
%--------------------------------------------
%1/ xac dinh MIN , MAX cua tung pHB:
for i=1:pHBoder
h=find(pHB{i,1}(nhanb(i,1),:)==1);%h la vector chua cac mau thuoc nhan k, k=1...M, trong
sieu hop pHB{to,1}
% pHB{t0,1}= [0 0 0 0 ...0 : % vector P cot, tuong thich voi U{r,1}
% .
% .
% .
% 0 1 0...1 0 0 (hang thu k, k=1...M, (nhan k))
% .
% .
% .
% 0 0 0 0...0 0
for j=1:n
min_j_t(i,j)=min(x1(h,j));%tim min cua truc j, j=1...n, tren sieu hop thu i, i=1...pHBoder,
max_j_t(i,j)=max(x1(h,j))%tim max cua truc j, j=1...n, tren sieu hop thu i, i=1...pHBoder,
end
end
%2/Xet tinh phu de lien ket cac pHB cung nhan, khong phu len cac pHB khac
tt=0;
t=1;
demfusion=0;
while t<pHBoder%-1
if nhanb(t,1)>0
tt=t+1;
while tt<pHBoder+1 %lay pHBoder{t,1} kiem tra de lien ket voi cac pHBoder{tt,1} khac
%h2=find(pHB{tt,1}(nhanb(tt,1),:)==1)
if nhanb(t,1)-nhanb(tt,1)==0%hai bo cung nhan: xet 2 pHB nay de lien
%hop lai, neu thoa tinh phu.
for j=1:n
min_j_fusion_t(j,1)=min(min_j_t(t,j),min_j_t(tt,j));%tim min cua truc j, j=1...n,
tren bo thu t, t=1...pHBoder, mang nhan k,k=1...M,
188 Luận án Tiến sĩ Kỹ thuật
Nguyễn Sỹ Dũng
max_j_fusion_t(j,1)=max(max_j_t(t,j),max_j_t(tt,j));%tim max cua truc j,
%j=1...n, tren bo thu t,
%t=1...pHBoder, mang
%nhan k,k=1...M,
end
%2.1kiem tra tinh phu cua 2 sieu hop pHB{t,1}va pHB{tt,1}:
khong=[];
for i=1:pHBoder%so cac sieu hop thuan chung pHB{.,1}, la ket qua q.trinh CUT
khongphu=0;
khongphu_1=1;%tinh khong phu cua mot pHB{}
khong(i,1)=1
if (i~=t)&(i~=tt)%khac hai sieu hop pHB{t,1} va pHB{tt,1} dang xet
for j=1:n
if (max_j_t(i,j)...
max_j_fusion_t(j,1))
%pHB_fusion không phu x1(i,j)
khongphu=1; %tinh khong bi phu cua pHB{i,1} boi 2
%pHB{t,1} va pHB{tt,1}
end
if (max_j_fusion_t(j,1)<min_j_t(i,j))|(...
min_j_fusion_t(j,1)>max_j_t(i,j))
khongphu=1; %khong phu
end
end
% tinh khong bi phu cua pHB{i,1}
khong(i,1)=khong(i,1)*khongphu
end
end
%2.2 Lien ket 2 pHB lai vi tat ca cac pHB{.,1} deu khong bi phu
khongphu_tong=1%tinh khong phu cua toan bo pHB{}(tru 2 pHB dang xet)
for i=1:pHBoder
if (i~=t)&(i~=tt)
khongphu_tong = khongphu_tong*khong(i,1);
end
end
if khongphu_tong==1
pHB{t,1}=pHB{t,1}+pHB{tt,1};%thuc hien ghep 2 pHB thanh pHB fusion,
%gan cho bo thu t, t=1...pHBoder, mang nhan k
pHB{tt,1}=zeros(M,P);
demfusion=demfusion+1;
end
end
tt=tt+1;
end %while trong
end%if
t=t+1;
end%while ngoai
%==================================================
%Xac dinh so pHB khac [] hoac khac zeros de cap nhat pHB_fusion:
pHB_fusion=cell(pHBoder-demfusion,1)
pHBoder_fusion=0;% so luong pHB_fusion
for i=1:pHBoder
189 Luận án Tiến sĩ Kỹ thuật
Nguyễn Sỹ Dũng
test3f=min(find(pHB{i,1}));
if test3f>0
pHBoder_fusion=pHBoder_fusion+1;
pHB_fusion{pHBoder_fusion,1}=pHB{i,1};
end
end
test_pHBfusion %Loai cac pHB_fusion [] va pHB_fusion zeros.
%loai, chi giu lai 1 pHB_fusion giong nhau
%hien thi va kiem tra
kiemtra_fusion=zeros(M,P)
kiemtra=0
for i=1:pHBoder_fusion
kiemtra_fusion=kiemtra_fusion+pHB_fusion{i,1};
end
kiemtra_fusion=kiemtra_fusion-U{r,1};
kiemtra=max(kiemtra_fusion);
if kiemtra~=0
anfisProg1;
end
%*********************************
test_pHBfusion.m
%*********************************
%test_pHBfusion:
%Test cac pHBoder_fusion giong nhau: loai, chi lay 1
%Loai cac pHB_fusion [] va pHB_fusion zeros.
%=======================================================
% 10.06.0918221543 NSD. N.10 %
%=======================================================
%1/ Loai cac pHB_fusion [] va pHB_fusion zeros:
tam_pHB=cell(pHBoder_fusion,1);
h=0;
dem=0;
ml1=0;
for i=1:pHBoder_fusion
ml1=length(pHB_fusion{i,1});%length([])=0; det[]=1: dung length() de nhan dang []
190 Luận án Tiến sĩ Kỹ thuật
Nguyễn Sỹ Dũng
if ml1~=0%pHB_fusion{i,1} khac []. Kiem tra zeros
dem=0;
for k=1:M
for j=1:P
if pHB_fusion{i,1}(k,j)==1
dem=dem+1;%test zeros
end
end
end
if dem>0%matran ~= zeros
h=h+1;
tam_pHB{h,1}=pHB_fusion{i,1};%luu qua tam_pHB{h,1}
end
end
end
pHB_fusion=tam_pHB;
pHBoder_fusion=h;
%2/ Test cac pHBoder_fusion giong nhau: loai bot 1
tt=0;
t=1;
ttt=[];
mltam=[]
ml1=0;
while t<pHBoder_fusion
tt=t+1;
while tt<pHBoder_fusion+1 %lay pHBoder{t,1} kiem tra ket voi cac pHBoder{tt,1} khac
ttt=pHB_fusion{t,1}-pHB_fusion{tt,1};
%kiem tra zero cua ttt=pHB_fusion{t,1}-pHB_fusion{tt,1}:
dem=0;
for k=1:M
for j=1:P
if ttt(k,j)==1
dem=dem+1%test zeros
end
end
end
if dem==0%ttt=pHB_fusion{t,1}-pHB_fusion{tt,1}=zeros(M,P)
pHB_fusion{tt,1}=zeros(M,P); %xoa pHB_fusion{t,1}
end
tt=tt+1;
end %while trong
t=t+1;
end%while ngoai
%3/ Kiem tra lai de loai zeros, sap xep lai nhung chua theo thu tu nhan:
tam_pHB=cell(pHBoder_fusion,1);
h=0;
dem=0;
for i=1:pHBoder_fusion
for k=1:M
for j=1:P
191 Luận án Tiến sĩ Kỹ thuật
Nguyễn Sỹ Dũng
if pHB_fusion{i,1}(k,j)==1
dem=dem+1;%test zeros
end
end
end
if dem>0%matran ~= zeros
h=h+1;
tam_pHB{h,1}=pHB_fusion{i,1};%luu qua tam_pHB{h,1}
end
end
pHB_fusion=tam_pHB;
pHBoder_fusion=h;
%*****************************
netoldProg2.m
%*****************************
% Chuong trinh con netoldProg2.m thuc hien chuc nang GIAI MO cho he thong suy dien neuro-
% fuzzy sau khi da thuc hien mo hoa tap data, chia bo de xac lap cac tap mo va cac ham lien
% thuoc.
%========================================================================
% 10.06.0918221543 NSD. N.11 %
%========================================================================
min_j=cell(pHBoder_fusion,1);% quan ly MIN ung voi cac truc cua tung bo lien hop pHB{i,1},
% i=1...pHBoder_fusion.
max_j=cell(pHBoder_fusion,1);% quan ly MAX ung voi cac truc cua tung bo lien hop pHB{i,1},
% i=1...pHBoder_fusion.
pHB_fusionClass=cell(pHBoder_fusion,M);
for t0=1:pHBoder_fusion
k=nhanbo(t0,1);
if k>0 % pHB_fusionClass{t0,k}=pHB_fusion{t0,1}%Tach cac pHB_fusion theo
% tung nhan k, k=1...M. Sieu hop pHB_fusion{t0,k} co thu tu t0,
% t0=1...pHBoder_fusion, mang nhan k.
% tam1=pHB_fusionClass{t0,k}(k,:)%vector tam1 la hang thu k cua
% pHB_fusion{t0,1}. tam1 chua bien che cac mau mang nhan k, k=1...M,
% trong sieu hop pHB_fusion{to,1}
tam1=pHB_fusion{t0,1}(k,:);%vector tam1 la hang thu k cua pHB_fusion{t0,1}.
% tam1 chua bien che cac mau mang nhan k,
% k=1...M, trong sieu hop pHB_fusion{to,1}
h=find(tam1==1); % h la vector chua cac mau x1(k,.) thuoc nhan k, k=1...M,
% trong sieu hop pHB_fusion{to,1}. Neu tam1=1, suy ra
% pHB_fusion{to,1}(k,tam1)=1, hay U{r,1}(k,tam1)=1. Nghia
% la, mau x1(tam1,:) thuoc pHBfusion thu t0, hang k, cot
% tam1.
192 Luận án Tiến sĩ Kỹ thuật
Nguyễn Sỹ Dũng
% pHB{t0,1}= [0 0 0 0 ...0 : % vector P cot, tuong thich voi U{r,1} PxM
% .
% .
% .
% 0 1 0...1 0 0 (hang thu k, k=1...M, (nhan k))
% .
% .
% .
% 0 0 0 0...0 0
for j=1:n
min_j{t0,1}(j,1)=min(x1(h,j));%tim MIN cua vector tam1 tren truc toa do j,
% j=1...n ( h cua bo thu t0,
%t0=1...pHBoder_fusion).
max_j{t0,1}(j,1)=max(x1(h,j));%tim MAX cua vector tam1 tren truc toa do
% j, j=1...n ( h cua bo thu t0,
% t0=1...pHBoder_fusion).
end
end
end
%2/ Tinh gia tri lien thuoc cua tung mau x1(i,.), i=1...t, doi voi tung sieu hop lien hop
pHB_fusion{t0,1}, cùng nhan voi x1(i,.)
demsopHBnhan_k=[];
for k=1:M
demsopHBnhan_k(k,1)=0;
end
muy=[];
for t0=1:pHBoder_fusion
k=nhanbo(t0,1);
if k>0
demsopHBnhan_k(k,1)=demsopHBnhan_k(k,1)+1;
for i=1:P
anfaa=.5;
tong=0;
for j=1:n
z1=x1(i,j)-max_j{t0,1}(j,1);
z2=min_j{t0,1}(j,1)-x1(i,j);
if anfaa*z1>1
f1=1;
end
if (anfaa*z1>=0)&(anfaa*z1<=1)
f1=anfaa*z1;
end
if z1<0
f1=0;
end
if anfaa*z2>1
f2=1;
end
if (anfaa*z2>=0)&(anfaa*z2<=1)
f2=anfaa*z2;
end
if z2<0
193 Luận án Tiến sĩ Kỹ thuật
Nguyễn Sỹ Dũng
f2=0;
end
tong=tong+1-f1-f2;
end
muy(t0,i)=tong/n; % gia tri lien thuoc cua mau x1(i,.), i=1...P, nhan k tren sieu hop
% pHB_fusion{t0,1} mang nhan k, k=1...M
end
end
end
%3/ Tinh ham sai so binh phuong cuc tieu LMS cua tin hieu ra cua Net so voi y cua cac mau
huan luyen:
%Tinh gia tri MAX cua lien thuoc cua tung mau trong cac sieu hop thuan
%chung cung nhan. Sap xep lai matran muy theo dung thu tu nhan k, k=1...M,
%nghia la, vi du, neu sieu hop mang nhan 2 thi se nam o hang so 2 trong matran muy.
%Ket qua chua trong muy_max_k theo dung thu. tu cua nhan tu 1.
muy_max_k=zeros(M,P);
for i=1:P
for k=1:M
[jj,hh]=find(nhanbo(:,1)==k);
muy_max_k(k,i)=max(muy(jj,i));
end
end
%gia tri cac sieu phang ung voi tung mau
for k=1:M%sieu phang M
for i=1:P%so mau
sieuphang(k,i)=x(i,:)*a{k,1};
end
end
%OUTPUT CUA MANG HLM1 [9]
hieu=zeros(P,1);
for i=1:P
%xac gia tri lien thuoc lon nhat cua mau x1(i,.), i=1...P
ma=max(muy_max_k(:,i));
[kk,ii]=find(muy_max_k(:,i)==ma);
kk=min(kk)%xac gia tri lien thuoc lon nhat cua mau x1(i,.), i=1...P
output_mau_xi(i,1)=muy_max_k(kk,i)*sieuphang(kk,i);
hieu(i,1)=y(i,1)-output_mau_xi(i,1);
end
LMS= 0;
for i=1:P
LMS=LMS+(hieu(i,1))^2;
end
LMS=(LMS)/P