✨Thuật toán Chan

Thuật toán Chan

Trong hình học tính toán, thuật toán Chan, gọi theo tên của Timothy M. Chan, là một thuật toán phụ thuộc dữ liệu ra tối ưu cho việc tìm bao lồi của tập hợp P gồm n điểm trong không gian 2 hoặc 3 chiều. Thuật toán chạy trong thời gian O(n log h), trong đó h là số đỉnh của bao lồi. Trong trường hợp không gian 2 chiều, thuật toán là sự kết hợp giữa một thuật toán tìm bao lồi trong thời gian O(n log n) (chẳng hạn quét Graham) với thuật toán bọc gói, để thu được thời gian tối ưu là O(n log h). Thuật toán Chan đáng chú ý vì nó đơn giản hơn nhiều so với thuật toán bao lồi phẳng cuối cùng, và nó mở rộng một cách tự nhiên lên không gian 3 chiều.

Thuật toán

Trước tiên, giả sử ta đã biết h và đặt tham số m=h. Giả thuyết này là không thực tế và ta sẽ loại bỏ nó sau này. Đầu tiên, thuật toán chia tập hợp P một cách tùy ý thành 1+n/m tập hợp con Q, mỗi tập chứa m điểm. Sau đó, tìm bao lồi của mỗi tập Q bằng thuật toán chạy trong thời gian O(n log n). Nhận thấy rằng có O(n/m) tập hợp con, mỗi tập gồm O(m) điểm, nên giai đoạn này tốn thời gian O(n/m)O(m log m) = O(n log m).

Giai đoạn thứ hai là thực hiện thuật toán bọc gói sử dụng những bao lồi đã tìm ra ở giai đoạn trước để tăng tốc độ. Trong mỗi bước của thuật toán bọc gói, với mỗi điểm pi trên bao lồi, ta cần tìm pi+1 = f(pi,P) sao cho mọi điểm trong P đều nằm bên phải đường thẳng pi pi+1. Nếu ta đã biết bao lồi của tập hợp Q gồm m điểm, thì có thể tìm f(pi,Q) trong thời gian O(log m) bằng tìm kiếm nhị phân. Có thể tìm f(pi,Q) cho tất cả O(n/m) tập hợp con Q trong thời gian O(n/m log m) Do đó có thể tìm f(pi,P) tương tự như trong thuật toán bọc gói thông thường nhưng chỉ cần xem xét các điểm f(pi,Q) cho mọi tập hợp con Q. Do thuật toán bọc gói lặp lại bước trên O(h) lần, giai đoạn hai tốn thời gian O(n log m), và nếu m=h, thì thời gian đó đúng bằng O(n log h).

Bằng cách thực hiện hai giai đoạn trên, có thể tìm bao lồi của n điểm trong thời gian O(n log h), giả sử ta đã biết trước h. Nếu ta chọn m<h, thì có thể dừng thuật toán sau m+1 bước, nên chỉ cần dùng thời gian O(n log m) (nhưng không tìm được bao lồi). Ý tưởng chính ở đây là khởi tạo m là một hằng số nhỏ (ta dùng 2 cho phân tích dưới đây nhưng trên thực tế một hằng số bằng khoảng 5 hoạt động tốt hơn), và tăng giá trị m cho tới khi m>h, và khi đó ta tìm được bao lồi.

Nếu tăng giá trị m quá chậm thì khoảng thời gian bị bỏ phí khi m<h có thể quá lớn. Trong khi đó nếu tăng m quá nhanh, ta có thể làm m lớn hơn h rất nhiều, và do đó cũng làm tăng thời gian thực thi. Thuật toán Chan bình phương giá trị của m sau mỗi lần lặp và đảm bảo giá trị m không bao giờ vượt quá n. Nói cách khác, sau t lần lặp, ta có m = \min(n,2^{2^t}). Tổng thời gian thực thi của thuật toán là

\sum_{t=0}^{O(\log\log h)} O\left(n \log(2^{2^t})\right) = O(n) \sum_{t=0}^{O(\log\log h)} O(2^t) = O\left(n \cdot 2^{1+O(\log\log h)}\right) = O(n \log h).

Để tổng quát hóa lên 3 chiều cần sử dụng một thuật toán tìm bao lồi trong không gian 3 chiều trong thời gian O(n log n) thay vì quét Graham cho 2 chiều, và một phiên bản 3 chiều của thuật toán bọc gói. Thời gian thực thi vẫn là O(n log h).

Lập trình

Bài báo của Chan cũng có một số gợi ý để cải thiện tốc độ thuật toán trong thực tế, ví dụ:

  • Sau mỗi lần tìm các bao lồi của các tập con, loại bỏ các điểm không nằm trên bao lồi trong những lần lặp sau.
  • Có thể tìm bao lồi của tập hợp lớn bằng cách hợp bao lồi các tập hợp con thay vì tính lại từ đầu.
👁️ 0 | 🔗 | 💖 | ✨ | 🌍 | ⌚
Trong hình học tính toán, **thuật toán Chan**, gọi theo tên của Timothy M. Chan, là một thuật toán phụ thuộc dữ liệu ra tối ưu cho việc tìm bao lồi của tập hợp _P_
Bài viết này là **danh sách các thuật toán** cùng một mô tả ngắn cho mỗi thuật toán. ## Thuật toán tổ hợp ### Thuật toán tổ hợp tổng quát * Thuật toán Brent: tìm
Trong tính toán lượng tử, **thuật toán lượng tử** là một thuật toán chạy bằng mô hình thực tế của tính toán lượng tử, mô hình được sử dụng phổ biến nhất là mô hình
Trong khoa học máy tính, **thuật toán dòng dữ liệu** là thuật toán để xử lý các dòng dữ liệu trong đó dữ liệu vào được cung cấp dưới dạng một dãy các phần tử,
**Thuật toán Miller** là thuật toán để phân tích nhân tử một số nửa nguyên tố thành tích của hai số nguyên tố. Thuật toán này là nền tảng cơ bản của thuật toán Shor
**Thuật toán nhân lũy thừa bằng bình phương** hoặc t**huật toán bình phương và nhân** là thuật toán tính nhanh lũy thừa tự nhiên của một số (thực hoặc nguyên), trong trường hợp cơ số
phải|nhỏ|[[Lưu đồ thuật toán (thuật toán Euclid) để tính ước số chung lớn nhất (ưcln) của hai số _a_ và _b_ ở các vị trí có tên A và B. Thuật toán tiến hành bằng
**Thuật toán Christofides** (đặt tên theo Nicos Christofides) là một thuật toán xấp xỉ cho bài toán người bán hàng trong đó trọng số các cạnh thỏa mãn bất đẳng thức tam giác. Đặt G=(V,w)
nhỏ| Để tìm kiếm một mục đã cho trong một danh sách theo thứ tự nhất định, có thể sử dụng cả thuật toán [[Tìm kiếm tuần tự|tìm kiếm nhị phân và tuyến tính (bỏ
**Thuật toán Deutcsh-Jozsa** là một thuật toán lượng tử, đưa ra bởi **David Deutsch** và **Richard Jozsa** năm 1992 với những cải tiến bởi Richard Cleve, Artur Ekert, Chiara Macchiavello, và Michele Mosca năm 1998.
Trong khoa học máy tính, **thuật toán tất định** là một thuật toán có đầu ra (output) hoàn toàn có thể dự đoán được (xác định được) qua đầu vào (input), và máy chạy thuật
**Thuật toán Shor** là một thuật toán lượng tử giúp phân tích nhân tử một số nguyên ở dạng _N_ = _p_._q_, với _p_ và _q_ là các số nguyên tố, tức là tìm ra
**Thuật toán Luhn** hoặc **công thức Luhn**, cũng được biết là thuật toán "modulus 10" hay "mod 10", nó được đặt theo tên người sáng tạo ra nó, nhà khoa học của IBM Hans Peter
**Thuật toán Dinitz** là một thuật toán thời gian đa thức mạnh cho việc tìm luồng cực đại trên đồ thị luồng, tìm ra năm 1970 bởi nhà nghiên cứu khoa học máy tính người
**Thuật toán Ford- Fulkerson** (đặt theo L. R. Ford và D. R. Fulkerson) tính toán luồng cực đại trong một mạng vận tải. Tên Ford-Fulkerson cũng thường được sử dụng cho thuật toán Edmonds-Karp, một
**Thuật toán ghép cặp của Edmonds** (còn gọi là thuật toán bông hoa) là một thuật toán trong lý thuyết đồ thị để tìm cặp ghép cực đại trong đồ thị. Thuật toán được tìm
** Thuật toán so khớp chuỗi Knuth–Morris–Pratt** (hay **thuật toán KMP**) tìm kiếm sự xuất hiện của một "từ" W trong một "xâu văn bản" S bằng cách tiếp tục quá trình tìm kiếm khi
**Thuật toán Dijkstra**, mang tên của nhà khoa học máy tính người Hà Lan Edsger Dijkstra vào năm 1956 và ấn bản năm 1959, là một thuật toán giải quyết bài toán đường đi ngắn
Bài này nêu lên một số ứng dụng tiêu biểu của các linh kiện tích hợp mạch rắn - Mạch khuếch đại thuật toán. Trong bài có sử dụng các sơ đồ đơn giản hóa,
Toán học trong nghệ thuật: Bản khắc trên tấm đồng mang tên _[[Melencolia I_ (1514) của Albrecht Dürer. Những yếu tố liên quan đến toán học bao gồm com-pa đại diện cho hình học, hình
**Mạch khuếch đại thuật toán** (tiếng Anh: operational amplifier), thường được gọi tắt là **op-amp** là một mạch khuếch đại "DC-coupled" (tín hiệu đầu vào bao gồm cả tín hiệu BIAS) với hệ số khuếch
Bài này nói về từ điển các chủ đề trong toán học. ## 0-9 * -0 * 0 * 6174 ## A * AES * ARCH * ARMA * Ada Lovelace * Adrien-Marie Legendre *
Ví dụ về một bài toán xếp ba lô giới hạn 1 chiều: chọn các hộp nào để tổng giá trị các hộp trong ba lô là lớn nhất mà tổng khối lượng dưới 15 kg?
Trong đồ thị này, đường đi rộng nhất từ Maldon tới Feering có chiều rộng 29, và đi qua Clacton, Tiptree, Harwich, và Blaxhall. **Bài toán đường đi rộng nhất**, còn gọi là **bài toán
Nghệ Thuật Giữ Chân Nhân Viên Giỏi Tái Bản 2018 Nền kinh tế thế giới đang ở giai đoạn toàn cầu hoá sôi động nhất. Các doanh nghiệp phải cạnh tranh trên nhiều phương diện,
Nghệ Thuật Giữ Chân Nhân Viên Giỏi Tái Bản 2018 Nền kinh tế thế giới đang ở giai đoạn toàn cầu hoá sôi động nhất. Các doanh nghiệp phải cạnh tranh trên nhiều phương diện,
thế=Một Võ sư Võ cổ truyền Việt Nam.|nhỏ|Một [[Võ sư Võ cổ truyền Việt Nam.|225x225px]] **Võ thuật** là hệ thống được mã hóa và truyền thống chiến đấu được thực hành vì một số lý
**Patrick Lewis Wai–Kuan Chan** (Phồn thể: 陳偉群, Giản thể: 陈伟群, Hán – Việt: Trần Vỹ Quần, nickname: Pchiddy) sinh ngày 31 tháng 12 năm 1990 tại Canada, là một cựu vận động viên trượt băng
[[Siêu máy tính song song hàng loạt Blue Gene/P của IBM]] **Tính toán song song** (tiếng Anh: _Parallel computing_), là một hình thức tính toán trong đó nhiều phép tính và tiến trình được thực
nhỏ|Nếu người bán hàng xuất phát từ điểm A, và nếu khoảng cách giữa hai điểm bất kì được biết thì đâu là đường đi ngắn nhất mà người bán hàng có thể thực hiện
Thăm dò **Địa chấn phản xạ** (Seismic Reflection), là một phương pháp của _địa vật lý thăm dò_, phát sóng đàn hồi vào môi trường và bố trí thu trên mặt các _sóng phản xạ_
**Tổng cục Kỹ thuật** trực thuộc Bộ Quốc phòng Việt Nam thành lập ngày 10 tháng 9 năm 1974 là cơ quan quản lý kỹ thuật đầu ngành của Bộ Quốc phòng có chức năng
Trong tài chính, **phân tích kỹ thuật** là một phương pháp phân tích chứng khoán dự báo hướng của giá cả thông qua việc nghiên cứu các dữ liệu thị trường quá khứ, chủ yếu
**Giải thưởng Văn học Nghệ thuật Toàn quốc** () là lễ phát thưởng thường niên do Tổng thống Việt Nam Cộng hòa sáng lập và điều hành các giai đoạn 1957−1963, 1966−1970, 1971−1975. Mục đích
thumb|alt=Cân thăng bằng trống|Hai đĩa cân thăng bằng này chứa không đồ vật, chia ra làm hai nhóm bằng nhau. Không là số chẵn. Nói theo cách khác, _tính chẵn lẻ_ của nó—đặc tính của
_Cuốn [[The Compendious Book on Calculation by Completion and Balancing_]] Từ _toán học_ có nghĩa là "khoa học, tri thức hoặc học tập". Ngày nay, thuật ngữ "toán học" chỉ một bộ phận cụ thể
**Triết học toán học** là nhánh của triết học nghiên cứu các giả định, nền tảng và ý nghĩa của toán học, và các mục đích để đưa ra quan điểm về bản chất và
Các công cụ **Quản lý quyền kỹ thuật số** (**DRM**) hoặc **các biện pháp bảo vệ công nghệ** (**TPM**) là một tập hợp các công nghệ kiểm soát truy cập để hạn chế việc sử
**Truyền hình kỹ thuật số** (tiếng Anh: **Digital television** - **DTV**) là một hệ thống viễn thông phát và nhận tín hiệu hình ảnh và âm thanh bằng các tín hiệu kỹ thuật số, trái
**Dấu chân điện tử** hay **dấu vết mạng** () là một thuật ngữ marketing chỉ dấu vết dữ liệu mà người tiêu dùng đã tạo ra trong quá trình sử dụng Internet, nói cách khác
1. Chức năng Nẹp chống xoayngắn:- Cốđịnh, ổn định khớp cổ chân sau chấn thương, sau mổ.-Chống xoay ở tư thế nằm của chân chấn thương.2.Chỉ định:- Gãycổ xương đùi ở người già không có
1. Chức năng Nẹp chống xoayngắn:- Cốđịnh, ổn định khớp cổ chân sau chấn thương, sau mổ.-Chống xoay ở tư thế nằm của chân chấn thương.2.Chỉ định:- Gãycổ xương đùi ở người già không có
1. Chức năng Nẹp chống xoayngắn:- Cốđịnh, ổn định khớp cổ chân sau chấn thương, sau mổ.-Chống xoay ở tư thế nằm của chân chấn thương.2.Chỉ định:- Gãycổ xương đùi ở người già không có
1. Chức năng Nẹp chống xoayngắn:- Cốđịnh, ổn định khớp cổ chân sau chấn thương, sau mổ.-Chống xoay ở tư thế nằm của chân chấn thương.2.Chỉ định:- Gãycổ xương đùi ở người già không có
Sự phát triển của Toán học cả về mặt tổng thể lẫn các bài toán riêng lẻ là một chủ đề được bàn luận rộng rãi - nhiều dự đoán trong quá khứ về toán
Lưu ý: Danh sách **thuật ngữ lý thuyết đồ thị** này chỉ là điểm khởi đầu cho những người mới nhập môn làm quen với một số thuật ngữ và khái niệm cơ bản. Bài
Một số đặc trưng của nghệ thuật Việt Nam: [[Phụ nữ Việt Nam với áo tứ thân, áo dài, nón quai thao đang chơi các nhạc cụ như đàn bầu, tam thập lục, đàn tứ,
Trong khoa học máy tính và toán học, **bài toán tối ưu hóa** là bài toán tìm kiếm _lời giải tốt nhất _trong tất cả các lời giải khả thi. Bài toán tối ưu hóa
**Phân tích tính toán** (Analytics) là phân tích tính toán có hệ thống của dữ liệu hoặc thống kê. Đây là quá trình phát hiện, giải thích và truyền đạt các mô hình có ý
**Tôpô kỹ thuật số** (Digital topology) là ngành nghiên cứu các cấu trúc và tính chất tôpô trong ảnh kỹ thuật số (chủ yếu là ảnh số 2 chiều – 2D, và ảnh số 3