Theo như định nghĩa 8 được trình bày trong Chương 1 phần 1.2.1.4 trên một bảng quyết định bất kỳ ta luôn có thể định nghĩa một tập các nhát cắt. Từ tính chất này ta có thể xây dựng thuật toán sau:
Từ một bảng quyết định A =(U, A∪{d}), chúng ta xây dựng một bẳng quyết định mới. A* =(U*, A*∪{d*}) như sau: • U* ={(u, v)∈ U2 : d(u)≠d(v)} ∪ {⊥}. • A* ={c: c là một nhát cắt trên A}. c(⊥)=0;
c((ui, uj))=1 nếu c phân biệt được ui và uj. 0 nếu ngược lại.
• d(⊥) và d*(ui, uj)=1.
Ta thu được bảng quyết định dạng sau:
A* c1 c2 . . . ck . . . d* (u1, u2) 1 0 . . . 0 . . . 1 (u1, u2) 1 1 . . . 1 . . . 1 . . (u1, u2) 0 1 1 . . . . ⊥ 0 0 . . . 0 . . . 0 Bảng 8. Một dạng của bảng quyết định dạng A*
Như vậy việc tìm kiếm một sự rời rạc hoá tối ưu bảng quyết định A tương đương với việc tìm tập rút gọn nhỏ nhất trong bảng quyết định A*. Thuật toán MD[9] được xây dựng dựa trên việc tìm kiếm nhát cắt với số cặp đối tượng được phân biệt bởi nhát cắt là nhỏ nhất được mô tả như sau:
Từ tập tất cả các nhát cắt A*, nhát cắt phân biệt số lớn nhất các cặp đối tượng thuộc những lớp quyết định khác nhau sẽ được chọn. Quá trình thực hiện đến khi hai
đối tượng bất kỳ từ những lớp quyết định khác nhau đều bị phân biệt bởi một hoặc vài nhát cắt.
Phương pháp này rất hiệu quả vì để tìm được nhát cắt với sự phân biệt là lớn nhất chúng ta chỉ cần O(nk) bước, trong đó n là số đối tượng và k là số thuộc tính.Vì thế tổng thời gian rời rạc hoá là O(nk.| P |), với P là tập nhát cắt cuối cùng tìm được.