V: danh sách tập hợp các giá trị đã xuất hiện cho từng thuộc tính tính đến thời điểm đang xét ví
G giả thiết tổng quát nhất tron gH
S: giả thiết đặc thù nhất d: mỗi ví dụ huấn luyện
V: danh sách tập hợp các giá trị đã xuất hiện cho từng thuộc tính tính đến thời điểm đang xét ví
dụ thứ i
x: danh sách lưu mỗi ví dụ, không bao gồm giá trị phân loại
cx: bằng 1 nếu giá trị của thuộc tính phân loại là positive, bằng 0 nếu là negative
local G,S,d,V,x,cx,g,s,i,j,tmp; G:=[];
S:=[]; V:=[]; V:=[];
G ← giả thiết tổng quát nhất trong H
S ← giả thiết đặc thù nhất trong H
for i from 1 to nops(D[1][1]) do G:=[op(G),`?`]; S:=[op(S),` `]; V:=[op(V),{}]; od; G:=[[op(G)]]; S:=[[op(S)]]; V:=[op(V)];
Với mỗi ví dụ huấn luyện d, thực hiện: for d in D do
x:=d[1]; cx:=d[2];
for i from 1 to nops(x) do
if not member(x[i],V[i]) then V[i]:=V[i] union {x[i]}; fi;
od;
Nếu d là 1 positive example if cx=1 then
Xóa từ trong G tất cả các giả thiết inconsistent với d for g in G do
if Consistent(g,d)=false then G:=DeleteHypothesis(G,g); fi;
od;
Đối với mỗi giả thiết s trong S mà inconsistent với d for s in S do
Xóa s trong S
S:=DeleteHypothesis(S,s);
Thêm vào s tất cả các giả thiết h được tổng quát hóa tối thiểu từ S, sao cho: h
consistent với và một số giả thiết trong G tổng quát hơn h
S:=[op(S),MinimalGeneralizations(s,d,G)];
Xóa từ S bất kỳ giả thiết nào tổng quát hơn các giả thiết khác trong S tmp:=S;
for i from 1 to nops(S) do for j from 1 to nops(S) do if j<>i then if MoreGeneralThan(S[i],S[j]) then tmp:=DeleteHypothesis(tmp,S[i]); fi; fi; od; od; S:=tmp; fi; od;
Nếu d là một negative example else
Xóa trong S bất kỳ giả thiết nào inconsistent với d for s in S do
if Consistent(s,d)=false then S:=DeleteHypothesis(S,s); fi;
od;
Đối với mỗi giả thiết g trong G mà inconsistent với d for g in G do
if Consistent(g,d)=false then Xóa g trong G
G:=DeleteHypothesis(G,g);
Thêm vào G tất cả các giả thiết h được đặc thù hóa tối thiểu từ g, sao cho: h
consistent với d và một số giả thiết trong S đặc thù hơn h
G:=[op(G),op(MinimalSpecializations(g,d,S,V))];
Xóa trong G tất cả các giả thiết nào ít tổng quát hơn các giả thiết khác trong G tmp:=G;
for i from 1 to nops(G) do for j from 1 to nops(G) do if j<>i then if MoreGeneralThan(G[i],G[j]) then tmp:=DeleteHypothesis(tmp,G[j]); fi; fi; od; od; G:=tmp; fi; od; fi;
od;
RETURN (G,S); end: end:
- Hàm phân lớp New Instance:
> Phân loại lớp của new_instance đưa vào trên Version Space
Classification:=proc(S,G,new_instance::list)
H: tập giả thiết từ S và G h: mỗi giả thiết trong H