Chào các bạn
Các bạn cho ý kiến và giúp mình hiểu thêm về bài học nhé.
Chúc cuối tuần vui vẽ thành công và hạnh phúc.
Thuật toán 1.1 COM_MIN
Input : R: quan hệ; Pr: tậpcác vị từ đơn giản;
Output: Pr’: tập các vị từ cực tiểu và đầy đủ;
Declare
F: tập các mảnh hội sơ cấp;
Begin
Pr’=; F = ;
For each vị từ p Pr if p phân hoạch R theo Quy tắc 1 then
Begin
Pr’: = Pr’ p;
Pr: = Pr – p;
F: = F p; {fi là mảnh hội sơ cấp theo pi }
End; {Chúng ta đã chuyển các vị từ có phân mảnh R vào Pr’}
Repeat
For each p Pr if p phân hoạch một mảnh fk của Pr’ theo quy tắc 1 then
Begin
Pr’: = Pr’ p;
Pr: = Pr – p;
F: = F p;
End;
Until Pr’ đầy đủ {Không còn p nào phân mảnh fk của Pr’}
For each p Pr’, if p’ mà p<=>p’ then
Begin
Pr’:= Pr’-p;
F:= F - f;
End;
End. {COM_MIN}
Kính gởi thầy Phúc, anh Thắng và các bạn. Thuật toán COM_MIN theo Khiêm thấy vẫn còn một vài điểm nghi vấn mà Khiêm đã đưa ra trong bài post trước đây mà chưa thấy ai diễn giải chi tiết. Khi đọc thuật toán của anh Thắng, Khiêm thấy có mấy chỗ cần nói ở đây như sau :
Về tập F : không biết anh Thắng có nhầm không khi đưa ra lệnh <span style=‘color:red’>F: = F + p</span>; (thay dấu cộng bằng dấu hợp vì dấu đó ko viết được). F là tập các MẢNH DỮ LIỆU CON trong khi p là 1 vị từ, sao có thể đưa vào như thế được ??
Xét câu điều kiện sau “<span style=‘color:red’>For each vị từ p (- Pr if p phân hoạch R theo Quy tắc 1 then</span>” : nếu chạy đúng câu này thì trong F sẽ có các mảnh có dữ liệu trùng nhau, ví dụ cụ thể như sau (lấy từ ví dụ PROJ của thầy) : xét p2: LOC = New York, ta sẽ nhận được f2 có 2 dòng dữ liệu, tiếp theo, xét p4: BUDGET <= 20.000 ta cũng sẽ nhận được 2 dòng dữ liệu mà trong đó có 1 dòng đã có trong mảnh f2 (vì xét trên phân hoạch R), điều này có được phép không ??
Xét câu điều kiện sau “<span style=‘color:red’>For each p(-Pr if p phân hoạch một mảnh fk của Pr’ theo quy tắc 1 then</span>” : đầu tiên là fk làm sao có thể là thành phần của Pr’, có sự nhầm lẫn nào ở đây chăng, phải là fk của F mới đúng chứ và nếu xét theo câu này thì với mỗi p phải chạy một vòng lặp hết các fi trong F ???
Có mấy chỗ trao đổi như vậy, nhờ thầy, anh Thắng và các bạn góp ý thêm.
Trân trọng
Trương Mạnh Khiêm