Giải thuật

Giải thuật (hay còn gọi là thuật toán – Algorithm) là một tập hợp hữu hạn các hướng dẫn hoặc bước thực hiện theo thứ tự nhất định, nhằm giải quyết một vấn đề cụ thể hoặc hoàn thành một phép tính

Đặc điểm chính của giải thuật

  • Tính xác định: Mỗi bước phải rõ ràng, không gây nhầm lẫn.
  • Đầu vào (Input): Có các dữ liệu đầu vào xác định từ trước.
  • Đầu ra (Output): Tạo ra kết quả tương ứng với bài toán.
  • Tính dừng (Finiteness): Phải kết thúc sau một số hữu hạn bước thực hiện.
  • Tính khả thi: Các thao tác có thể thực hiện được bằng tài nguyên thực tế.
  • Độc lập ngôn ngữ: Có thể viết lại bằng bất kỳ ngôn ngữ lập trình nào (C++, Python, Java…)

https://phuchai.com/t/giaithuat/

https://phuchai.com/baocao/giaithuat/

Tóm tắt ý nghĩa các giải thuật

1. Sắp xếp

  • Quick Sort — Chọn pivot, chia mảng thành phần nhỏ hơn và lớn hơn pivot rồi sắp xếp đệ quy; trung bình O(n log n), rất nhanh trên thực tế.
  • Merge Sort — Chia đôi mảng, sắp xếp từng nửa rồi trộn lại; ổn định, luôn O(n log n), cần thêm bộ nhớ phụ.
  • Bubble Sort — Liên tục hoán đổi các cặp phần tử kề nhau sai thứ tự; đơn giản, O(n²), chủ yếu dùng để học.
  • Insertion Sort — Chèn từng phần tử vào đúng chỗ trong phần đã sắp xếp; tốt với mảng nhỏ hoặc gần như đã sắp.
  • Selection Sort — Lặp lại việc chọn phần tử nhỏ nhất của phần chưa sắp và đưa lên đầu; O(n²), ít phép hoán đổi.
  • Heap Sort — Dựng heap rồi lần lượt lấy phần tử lớn nhất ra; O(n log n), sắp xếp tại chỗ.

2. Tìm kiếm

  • Binary Search — Tìm trên mảng đã sắp xếp bằng cách luôn loại bỏ một nửa không gian tìm kiếm; O(log n).
  • Linear Search — Duyệt tuần tự từng phần tử; không cần dữ liệu đã sắp xếp, O(n).
  • Jump Search — Nhảy các bước cố định (~√n) trên mảng đã sắp rồi tìm tuyến tính trong khối; O(√n).
  • Interpolation Search — Ước lượng vị trí cần tìm theo giá trị (như tra từ điển); rất nhanh nếu dữ liệu phân bố đều.
  • Exponential Search — Tăng bước theo lũy thừa 2 để xác định khoảng chứa phần tử rồi tìm nhị phân; hợp với mảng vô hạn/rất lớn.

3. Thuật toán đồ thị cơ bản

  • Dijkstra — Đường đi ngắn nhất từ một đỉnh nguồn trên đồ thị có trọng số không âm, dùng hàng đợi ưu tiên.
  • Bellman-Ford — Đường đi ngắn nhất cho phép cạnh âm và phát hiện chu trình âm; O(VE).
  • Floyd-Warshall — Đường đi ngắn nhất giữa mọi cặp đỉnh bằng quy hoạch động; O(V³).
  • BFS (Tìm kiếm theo chiều rộng) — Duyệt đồ thị theo từng lớp; tìm đường ngắn nhất trên đồ thị không trọng số.
  • DFS (Tìm kiếm theo chiều sâu) — Đi sâu hết mức rồi quay lui; dùng cho thành phần liên thông, phát hiện chu trình, sắp xếp topo.
  • Kruskal — Cây khung nhỏ nhất bằng cách thêm dần các cạnh nhẹ nhất không tạo chu trình (dùng DSU).
  • Prim — Cây khung nhỏ nhất bằng cách mở rộng dần từ một đỉnh, luôn chọn cạnh nhẹ nhất nối ra ngoài.
  • Topological Sort — Sắp xếp các đỉnh của đồ thị có hướng không chu trình sao cho mọi cạnh đi từ trước ra sau; dùng lập lịch phụ thuộc.
  • Kosaraju — Tìm các thành phần liên thông mạnh bằng hai lượt DFS (trên đồ thị gốc và đồ thị đảo).

4. Quy hoạch động (DP) kinh điển

  • Fibonacci (DP – Tabulation) — Tính dãy Fibonacci từ dưới lên bằng bảng, tránh tính lặp các bài toán con.
  • Knapsack 0/1 — Chọn tập đồ vật (mỗi món dùng tối đa 1 lần) tối đa giá trị trong giới hạn trọng lượng.
  • LCS (Dãy con chung dài nhất) — Tìm dãy con chung dài nhất của hai chuỗi; nền tảng của so sánh văn bản (diff).
  • LIS (Dãy con tăng dài nhất) — Tìm dãy con tăng dài nhất; có bản O(n log n) dùng tìm kiếm nhị phân.
  • Coin Change — Đếm số cách hoặc số đồng xu ít nhất để đổi một số tiền cho trước.
  • Edit Distance (Levenshtein) — Số phép chèn/xóa/thay ít nhất để biến chuỗi này thành chuỗi kia; dùng sửa lỗi chính tả.
  • Matrix Chain Multiplication — Tìm thứ tự nhân dãy ma trận sao cho tổng số phép nhân là ít nhất.
  • Subset Sum — Xác định có tập con nào có tổng bằng giá trị cho trước hay không.
  • Kadane — Tìm đoạn con liên tiếp có tổng lớn nhất trong mảng với O(n).
  • Egg Dropping — Xác định số lần thả trứng tối thiểu trong trường hợp xấu nhất để tìm tầng giới hạn làm vỡ trứng.

5. Số học & lý thuyết số cơ bản

  • Euclidean GCD — Tìm ước chung lớn nhất bằng cách lặp lại phép chia lấy dư.
  • Sieve of Eratosthenes — Sàng loại bỏ bội của các số nguyên tố để liệt kê mọi số nguyên tố đến N.
  • Modular Exponentiation — Tính aᵇ mod m nhanh bằng bình phương liên tiếp, O(log b).
  • Prime Factorization — Phân tích một số thành tích các thừa số nguyên tố.
  • Chinese Remainder Theorem (CRT) — Giải hệ đồng dư với các modulo đôi một nguyên tố cùng nhau.

6. So khớp chuỗi

  • KMP — Tìm mẫu trong văn bản bằng bảng tiền tố, không quay lui trong văn bản; O(n+m).
  • Rabin-Karp — So khớp chuỗi bằng băm cuộn (rolling hash); tiện cho tìm nhiều mẫu.
  • Boyer-Moore — So sánh từ cuối mẫu và nhảy xa theo quy tắc ký tự xấu/hậu tố tốt; thường rất nhanh.
  • Z-Algorithm — Tính mảng Z (độ dài tiền tố chung tại mỗi vị trí) để so khớp mẫu trong O(n).
  • Suffix Array Construction — Xây mảng chỉ số các hậu tố đã sắp xếp; nền tảng cho tìm kiếm chuỗi và nén.

7. Cấu trúc dữ liệu

  • BST Insertion — Chèn nút vào cây nhị phân tìm kiếm sao cho trái < gốc < phải.
  • AVL Tree Rotations — Các phép xoay giữ cây tự cân bằng (chênh lệch chiều cao ≤ 1) để thao tác O(log n).
  • Red-Black Tree Insertion — Chèn và tô màu/xoay để cây cân bằng tương đối; dùng trong map/set của nhiều thư viện.
  • Binary Heap Operations — Chèn, lấy min/max, sửa heap (sift up/down) cho hàng đợi ưu tiên.
  • Segment Tree Range Query — Truy vấn và cập nhật đoạn (tổng, min, max…) trong O(log n).
  • Fenwick Tree (BIT) — Cấu trúc gọn để cập nhật điểm và tính tổng tiền tố trong O(log n).
  • Disjoint Set Union (DSU) — Quản lý các tập rời nhau với thao tác hợp nhất và tìm đại diện gần O(1).
  • Trie (Prefix Tree) — Cây tiền tố lưu chuỗi, tìm kiếm/tự động gợi ý theo tiền tố hiệu quả.

8. Quay lui, luồng cực đại, đồ thị nâng cao

  • Backtracking – N-Queens — Đặt N quân hậu không tấn công nhau bằng thử-và-quay-lui.
  • Sudoku Solver — Điền Sudoku bằng quay lui kết hợp kiểm tra ràng buộc.
  • Ford-Fulkerson (Max Flow) — Tìm luồng cực đại bằng cách lặp lại việc tìm đường tăng luồng.
  • Edmonds-Karp — Ford-Fulkerson dùng BFS để chọn đường tăng ngắn nhất; O(VE²).
  • Dinic — Luồng cực đại bằng đồ thị phân tầng và luồng chặn; nhanh hơn Edmonds-Karp.
  • Hopcroft-Karp — Ghép cặp cực đại trên đồ thị hai phía trong O(E√V).
  • Tarjan SCC — Tìm thành phần liên thông mạnh chỉ với một lượt DFS dùng low-link.
  • Bridge & Articulation Point — Tìm cạnh cầu và đỉnh khớp, những điểm mà bỏ đi sẽ làm mất liên thông.
  • A* Search — Tìm đường ngắn nhất có định hướng bằng hàm heuristic; phổ biến trong game và robot.
  • Minimax với Alpha-Beta Pruning — Chọn nước đi tối ưu trong trò chơi hai người, cắt tỉa nhánh vô ích.

9. Học máy cơ bản

  • Gradient Descent — Tối thiểu hóa hàm mất mát bằng cách đi ngược hướng gradient.
  • K-Means — Chia dữ liệu thành K cụm theo khoảng cách đến tâm cụm, lặp cập nhật tâm.
  • KNN — Phân loại/hồi quy theo K láng giềng gần nhất.
  • Naive Bayes — Phân loại xác suất dựa trên định lý Bayes với giả định các đặc trưng độc lập.

10. Hình học tính toán cơ bản

  • Convex Hull – Graham Scan — Bao lồi bằng cách sắp xếp theo góc cực và duyệt bằng ngăn xếp; O(n log n).
  • Convex Hull – Jarvis March — Bao lồi theo kiểu “gói quà”, O(nh).
  • Line Intersection Test — Kiểm tra hai đoạn thẳng có cắt nhau không (dùng tích có hướng).
  • Point in Polygon (Ray Casting) — Bắn tia và đếm số giao điểm với cạnh để biết điểm trong hay ngoài đa giác.
  • Shoelace Formula — Tính diện tích đa giác từ tọa độ các đỉnh.

11. Toán & xác suất tiện ích

  • FFT — Biến đổi Fourier nhanh O(n log n); dùng xử lý tín hiệu và nhân đa thức/số lớn.
  • Matrix Exponentiation — Lũy thừa ma trận nhanh để tính các dãy truy hồi tuyến tính (như Fibonacci) với n rất lớn.
  • Extended Euclidean — Ngoài GCD còn tìm hệ số x, y thỏa ax+by=gcd; dùng tìm nghịch đảo modulo.
  • Miller-Rabin — Kiểm tra số nguyên tố xác suất, rất nhanh cho số lớn.
  • Pollard Rho — Phân tích thừa số nguyên tố ngẫu nhiên cho hợp số lớn.
  • Reservoir Sampling — Lấy mẫu ngẫu nhiên k phần tử từ luồng dữ liệu không biết trước độ dài.
  • Fisher-Yates Shuffle — Xáo trộn ngẫu nhiên đều một mảng trong O(n).

12. Cấu trúc dữ liệu xác suất & nâng cao

  • Bloom Filter — Kiểm tra “có thể có/chắc chắn không” phần tử trong tập, tiết kiệm bộ nhớ, có dương tính giả.
  • Count-Min Sketch — Ước lượng tần suất phần tử trong luồng dữ liệu với bộ nhớ nhỏ.
  • Skip List — Danh sách liên kết nhiều tầng cho tìm kiếm/chèn xấp xỉ O(log n) bằng ngẫu nhiên.
  • B-Tree — Cây cân bằng nhiều nhánh tối ưu cho đĩa; nền của chỉ mục cơ sở dữ liệu.
  • Treap — Kết hợp BST và heap bằng độ ưu tiên ngẫu nhiên để cây tự cân bằng.
  • LRU Cache — Bộ nhớ đệm loại bỏ phần tử ít được dùng gần đây nhất.
  • LFU Cache — Bộ nhớ đệm loại bỏ phần tử được dùng ít lần nhất.
  • Aho-Corasick — Tìm đồng thời nhiều mẫu trong văn bản bằng automaton xây từ trie.
  • Manacher — Tìm chuỗi con đối xứng (palindrome) dài nhất trong O(n).
  • Suffix Automaton — Automaton nhỏ nhất nhận mọi hậu tố của chuỗi; giải nhiều bài toán chuỗi con.
  • Burrows-Wheeler Transform (BWT) — Hoán vị chuỗi để các ký tự giống nhau gom lại, phục vụ nén và lập chỉ mục (bzip2, FM-Index).
  • Huffman Coding — Nén không mất dữ liệu bằng mã độ dài thay đổi: ký tự phổ biến mã ngắn.
  • Run-Length Encoding (RLE) — Nén bằng cách thay chuỗi ký tự lặp bằng (ký tự, số lần).

13. Metaheuristic cơ bản

  • Simulated Annealing — Tối ưu bằng cách chấp nhận tạm thời lời giải xấu hơn với xác suất giảm dần (mô phỏng ủ kim loại).
  • Genetic Algorithm — Tiến hóa quần thể lời giải bằng chọn lọc, lai ghép và đột biến.
  • Ant Colony Optimization — Mô phỏng đàn kiến để lại pheromone tìm đường tối ưu.

14. Mật mã & băm cơ bản

  • RSA — Mã hóa khóa công khai dựa trên độ khó của phân tích thừa số nguyên tố.
  • Diffie-Hellman — Hai bên thỏa thuận khóa bí mật chung qua kênh công khai.
  • MD5 — Hàm băm 128-bit, nay đã bị phá về an toàn, chỉ nên dùng kiểm tra toàn vẹn không an ninh.
  • SHA-256 — Hàm băm 256-bit an toàn, dùng rộng rãi (chữ ký, blockchain).

15. Hệ thống phân tán & giới hạn tốc độ

  • Token Bucket — Giới hạn tốc độ: mỗi yêu cầu tiêu một token, token được nạp đều; cho phép bùng nổ ngắn.
  • Leaky Bucket — Giới hạn tốc độ: yêu cầu vào “xô” và rò ra với tốc độ cố định, làm mượt lưu lượng.
  • Consistent Hashing — Phân phối khóa lên các nút sao cho thêm/bớt nút chỉ di chuyển rất ít dữ liệu.
  • Paxos — Giao thức đồng thuận để các nút thống nhất một giá trị dù có lỗi.
  • Raft — Giao thức đồng thuận dễ hiểu hơn Paxos, dựa trên bầu leader và sao chép log.
  • MapReduce Word Count — Mô hình xử lý song song: Map phát (từ,1), Reduce cộng dồn theo từ.

16. Đồ thị nâng cao

  • Minimum Cost Maximum Flow (MCMF) — Luồng cực đại với tổng chi phí nhỏ nhất; dùng cho bài toán phân công, vận chuyển.
  • Eulerian Path/Circuit — Đường/chu trình đi qua mỗi cạnh đúng một lần (điều kiện theo bậc đỉnh).
  • 2-SAT — Giải bài toán thỏa mãn công thức logic với mệnh đề 2 biến bằng SCC.
  • Heavy-Light Decomposition (HLD) — Chia cây thành các đường nặng để truy vấn đường đi trên cây trong O(log² n).
  • Centroid Decomposition — Chia cây đệ quy qua trọng tâm; giải bài toán khoảng cách/đường đi trên cây.
  • Biconnected Components & Block-Cut Tree — Tách đồ thị thành các khối song liên thông, biểu diễn bằng cây khối-điểm khớp.
  • Dominator Tree (Lengauer-Tarjan) — Cây thống trị trong đồ thị luồng điều khiển; nền tảng phân tích chương trình.
  • Yen (K-Shortest Paths) — Tìm K đường đi ngắn nhất không lặp giữa hai đỉnh.
  • Stoer-Wagner — Tìm lát cắt nhỏ nhất toàn cục trong đồ thị vô hướng có trọng số.
  • Branch and Bound cho TSP — Tìm lộ trình người bán hàng tối ưu bằng nhánh cận, cắt các nhánh không thể tốt hơn.

17. Cấu trúc dữ liệu nâng cao

  • Persistent Segment Tree — Cây phân đoạn giữ mọi phiên bản cũ, truy vấn được trạng thái ở quá khứ.
  • Link-Cut Tree — Quản lý rừng động (nối/cắt cây) với truy vấn đường đi trong O(log n) khấu hao.
  • Splay Tree — BST tự điều chỉnh, đưa phần tử vừa truy cập lên gốc.
  • Wavelet Tree — Trả lời truy vấn hạng/thứ tự/đếm trên đoạn của mảng hoặc chuỗi.
  • K-D Tree — Cây phân chia không gian k chiều, tìm láng giềng gần nhất và truy vấn miền.
  • Quadtree — Chia không gian 2D thành 4 ô đệ quy để lập chỉ mục không gian.
  • Octree — Tương tự quadtree nhưng cho không gian 3D (8 ô con).
  • Ukkonen (Suffix Tree) — Xây cây hậu tố trực tuyến trong O(n).
  • Leftist Heap — Heap hợp nhất được hai heap trong O(log n).
  • Van Emde Boas Tree — Cấu trúc cho tập số nguyên với thao tác O(log log U).
  • Implicit Treap — Treap theo chỉ số vị trí, hỗ trợ chèn/xóa/đảo đoạn trên dãy.
  • R-Tree — Cây chỉ mục không gian dùng hình chữ nhật bao; phổ biến trong CSDL không gian.
  • DSU with Rollback — DSU cho phép hoàn tác các hợp nhất, dùng trong thuật toán offline.
  • Cartesian Tree — Cây vừa theo thứ tự dãy vừa là heap theo giá trị; liên hệ với RMQ.

18. Tối ưu quy hoạch động

  • Convex Hull Trick (CHT) — Tối ưu DP dạng min/max các đường thẳng bằng bao lồi.
  • Knuth Optimization — Giảm DP khoảng từ O(n³) xuống O(n²) nhờ tính đơn điệu của điểm chia tối ưu.
  • Divide and Conquer DP Optimization — Tối ưu DP dựa trên tính đơn điệu của lựa chọn tối ưu, O(n log n).
  • Digit DP — Đếm số thỏa điều kiện chữ số trong một khoảng bằng DP theo từng chữ số.
  • SOS DP — DP tổng trên mọi tập con của mặt nạ bit.
  • Slope Trick — Duy trì hàm lồi từng đoạn bằng heap để giải DP đặc biệt.
  • Aliens Trick (WQS Binary Search) — Bỏ ràng buộc “đúng k” bằng chi phí Lagrange và tìm nhị phân.
  • Tree DP — Quy hoạch động trên cây, tổng hợp kết quả từ các nút con.
  • Profile DP — DP trạng thái mặt nạ theo “đường biên” cho bài toán lát gạch trên lưới.
  • Monotone Queue DP Optimization — Dùng hàng đợi đơn điệu để tối ưu chuyển trạng thái cửa sổ trượt.

19. Lý thuyết số nâng cao

  • Baby-Step Giant-Step (BSGS) — Giải logarit rời rạc aˣ ≡ b (mod m) trong O(√m).
  • Fast Walsh-Hadamard Transform (FWHT) — Biến đổi nhanh cho tích chập XOR/AND/OR.
  • Pollard p-1 — Phân tích thừa số khi p−1 chỉ có các ước nhỏ.
  • Lucas Theorem — Tính C(n,k) mod p nguyên tố khi n,k lớn.
  • Primitive Root Finding — Tìm căn nguyên thủy modulo n.
  • Quadratic Reciprocity & Legendre Symbol — Xác định một số có là thặng dư bậc hai modulo p hay không.
  • Berlekamp-Massey — Tìm công thức truy hồi tuyến tính ngắn nhất sinh ra một dãy.
  • Number Theoretic Transform (NTT) — FFT trên trường modulo, nhân đa thức chính xác.
  • Garner — Khôi phục số từ các phần dư (CRT) theo dạng biểu diễn hỗn hợp cơ số.
  • Tonelli-Shanks — Tính căn bậc hai modulo p nguyên tố.
  • Mobius Inversion & Sieve — Đảo ngược các tổng ước số; sàng hàm Möbius.
  • Linear Diophantine Solver — Giải ax+by=c trong số nguyên.
  • Euler Totient Sieve — Sàng hàm φ(n) cho mọi n đến N.
  • Pell Equation Solver — Giải x² − Dy² = 1 bằng liên phân số.
  • Lenstra ECM — Phân tích thừa số bằng đường cong elliptic, tìm thừa số nhỏ trong số rất lớn.

20. Hình học tính toán nâng cao

  • Rotating Calipers — “Thước cặp xoay” tìm đường kính, độ rộng của bao lồi.
  • Half-Plane Intersection — Giao của nhiều nửa mặt phẳng (quy hoạch tuyến tính 2D).
  • Delaunay Triangulation — Tam giác hóa sao cho tối đa hóa góc nhỏ nhất, tránh tam giác mỏng.
  • Voronoi Diagram — Chia mặt phẳng theo điểm gần nhất; đối ngẫu của Delaunay.
  • Closest Pair of Points — Cặp điểm gần nhau nhất trong O(n log n) bằng chia để trị.
  • Point in Convex Polygon Query — Kiểm tra điểm thuộc đa giác lồi trong O(log n).
  • Minkowski Sum — Tổng Minkowski của hai đa giác; dùng trong va chạm và lập kế hoạch chuyển động.
  • Pick Theorem — Diện tích đa giác nguyên từ số điểm nguyên trong và trên biên.
  • 3D Convex Hull — Bao lồi trong không gian ba chiều.
  • Sweepline Segment Intersection — Quét đường thẳng để tìm giao điểm các đoạn (Bentley-Ottmann).
  • Polygon Triangulation (Ear Clipping) — Cắt từng “tai” để chia đa giác thành tam giác.
  • Circle-Circle Intersection — Tính giao điểm hai đường tròn.

21. Lý thuyết trò chơi, xác suất, mô phỏng

  • Sprague-Grundy Theorem — Quy mọi trò chơi công bằng về giá trị nim để xác định người thắng.
  • Expectiminimax — Mở rộng minimax cho trò chơi có yếu tố ngẫu nhiên (nút cơ hội).
  • Burnside Lemma & Pólya Counting — Đếm cấu hình phân biệt qua phép đối xứng/nhóm.
  • Monte Carlo Tree Search (MCTS) — Tìm kiếm cây bằng mô phỏng ngẫu nhiên; nền của AlphaGo.
  • MCMC — Lấy mẫu từ phân phối phức tạp bằng chuỗi Markov.
  • Viterbi — Tìm chuỗi trạng thái ẩn có xác suất cao nhất trong HMM.
  • Baum-Welch — Huấn luyện tham số HMM bằng EM.
  • Metropolis-Hastings — Thuật toán MCMC chấp nhận/từ chối mẫu đề xuất.
  • Kelly Criterion — Công thức tỷ lệ vốn đặt cược tối ưu để tối đa hóa tăng trưởng dài hạn.
  • Random Walk Simulation — Mô phỏng bước đi ngẫu nhiên; dùng trong vật lý, tài chính, đồ thị.

22. Tìm kiếm vector & dữ liệu lớn

  • HNSW — Đồ thị nhiều tầng “thế giới nhỏ” để tìm láng giềng gần đúng rất nhanh.
  • Locality-Sensitive Hashing (LSH) — Băm để các điểm gần nhau dễ rơi vào cùng bucket; tìm láng giềng xấp xỉ.
  • Inverted Index Construction — Chỉ mục ánh xạ từ → danh sách tài liệu; nền của công cụ tìm kiếm.
  • Product Quantization (PQ) — Nén vector bằng cách chia nhỏ và lượng tử hóa từng phần.
  • Billion-Scale Vector Quantization (IVF-PQ) — Kết hợp chỉ mục đảo theo cụm với PQ cho hàng tỉ vector.
  • Hierarchical K-Means (IVF) — K-means phân cấp để chia vector thành các cụm tìm kiếm.

23. Giao thức phân tán & nhất quán

  • Two-Phase Commit (2PC) — Giao dịch phân tán: giai đoạn chuẩn bị rồi cam kết; đơn giản nhưng có thể bị chặn.
  • Three-Phase Commit (3PC) — Thêm pha tiền cam kết để giảm nguy cơ chặn khi coordinator lỗi.
  • Gossip Protocol — Thông tin lan truyền như tin đồn giữa các nút ngẫu nhiên; mở rộng tốt, nhất quán cuối cùng.
  • Chandy-Lamport Snapshot — Chụp trạng thái toàn cục nhất quán của hệ phân tán.
  • Bully Algorithm — Bầu leader: nút có ID cao nhất thắng.
  • Merkle Tree Synchronization — Dùng cây băm để so sánh và đồng bộ dữ liệu giữa các bản sao.
  • Raft Log Compaction & Snapshotting — Thu gọn log Raft bằng snapshot để giới hạn kích thước.
  • Multi-Paxos — Mở rộng Paxos để quyết định chuỗi giá trị liên tục với leader ổn định.
  • Consistent Hashing with Vnodes — Consistent hashing dùng nút ảo để cân bằng tải đều hơn.
  • Raft Joint Consensus — Thay đổi thành viên cụm Raft an toàn qua cấu hình chuyển tiếp chung.
  • Practical Byzantine Fault Tolerance (PBFT) — Đồng thuận chịu được nút độc hại (Byzantine) với 3f+1 nút.
  • Viewstamped Replication (VSR) — Giao thức sao chép trạng thái máy tương tự Raft/Paxos.
  • CRDT State-based (CvRDT) — Kiểu dữ liệu tự hợp nhất bằng cách trộn trạng thái đầy đủ.
  • CRDT Operation-based (CmRDT) — Kiểu dữ liệu tự hợp nhất bằng cách truyền thao tác giao hoán.
  • CRDT OR-Set — Tập hợp CRDT hỗ trợ thêm/xóa đồng thời, giải quyết xung đột theo “thêm thắng”.
  • Proof of Stake (PoS) — Chọn người tạo khối theo lượng tài sản đặt cược thay vì sức tính.
  • Lease-Based Distributed Locking — Khóa phân tán có thời hạn thuê, tự hết hạn nếu chủ khóa lỗi.
  • Vector Clocks — Theo dõi quan hệ nhân quả giữa các sự kiện phân tán.
  • Distributed Hash Table (Kademlia) — Bảng băm phân tán P2P dùng khoảng cách XOR (BitTorrent).
  • Distributed Snapshot (Mattern) — Thuật toán chụp trạng thái phân tán dựa trên đồng hồ vector/màu.
  • Spanner TrueTime — API thời gian có khoảng bất định của Google Spanner để đảm bảo nhất quán ngoại.
  • Chandy-Misra-Haas Deadlock Detection — Phát hiện deadlock phân tán bằng thông điệp thăm dò.
  • Distributed Hash Ring Virtual Nodes — Vòng băm phân tán với nút ảo (tên gọi khác của consistent hashing + vnodes).

24. Xử lý luồng & ước lượng

  • HyperLogLog — Ước lượng số phần tử phân biệt với bộ nhớ rất nhỏ.
  • Cuckoo Filter — Giống Bloom filter nhưng hỗ trợ xóa phần tử.
  • Reed-Solomon Erasure Coding — Mã sửa lỗi cho phép khôi phục dữ liệu khi mất một số mảnh.
  • Count-Min Sketch Heavy Hitters — Dùng sketch để tìm phần tử xuất hiện nhiều.
  • Scalable Bloom Filter — Bloom filter tự mở rộng khi số phần tử tăng.
  • Flajolet-Martin — Ước lượng số phần tử phân biệt dựa trên số bit 0 cuối của hàm băm.
  • T-Digest — Ước lượng phân vị (percentile) trong luồng dữ liệu, chính xác ở đuôi.
  • Misra-Gries — Tìm các phần tử xuất hiện thường xuyên bằng số bộ đếm nhỏ.
  • Exponential Decay Reservoir Sampling — Lấy mẫu luồng ưu tiên dữ liệu mới theo trọng số suy giảm mũ.
  • Top-K Stream (Space-Saving) — Duy trì K phần tử phổ biến nhất của luồng với bộ nhớ cố định.
  • Count Sketch — Ước lượng tần suất có dấu ngẫu nhiên, giảm sai lệch so với Count-Min.
  • AMLS — Lấy mẫu thích nghi dựa trên cực đại khả năng (kỹ thuật lấy mẫu/ước lượng xác suất thích nghi).
  • Min-Hash LSH (Jaccard) — Ước lượng độ giống nhau Jaccard giữa các tập bằng chữ ký min-hash.
  • SimHash — Dấu vân tay tài liệu mà tài liệu giống nhau có băm gần nhau; phát hiện trùng lặp.

25. Thị giác máy tính

  • Canny Edge Detection — Phát hiện biên nhiều bước: làm mờ, gradient, triệt không cực đại, ngưỡng kép.
  • SIFT — Phát hiện và mô tả điểm đặc trưng bất biến theo tỉ lệ/xoay.
  • RANSAC — Ước lượng mô hình bền vững trước nhiễu bằng lấy mẫu ngẫu nhiên lặp.
  • Watershed Segmentation — Phân đoạn ảnh như “đổ nước” vào địa hình độ xám.
  • Hough Transform — Phát hiện đường thẳng/đường tròn bằng bỏ phiếu trong không gian tham số.
  • Lucas-Kanade Optical Flow — Ước lượng chuyển động giữa hai khung hình.
  • Harris Corner Detector — Phát hiện góc trong ảnh bằng ma trận cấu trúc.
  • Otsu Thresholding — Chọn ngưỡng nhị phân hóa ảnh tự động tối thiểu phương sai trong lớp.
  • Active Contour (Snakes) — Đường cong biến dạng bám theo biên đối tượng bằng cực tiểu năng lượng.
  • Mean Shift — Dịch điểm về cực đại mật độ để phân cụm/phân đoạn.

26. Học máy & xử lý ngôn ngữ

  • SVM — Tìm siêu phẳng phân tách các lớp với lề lớn nhất.
  • Random Forest — Tập hợp nhiều cây quyết định bỏ phiếu để giảm quá khớp.
  • Gradient Boosting (XGB/LGB) — Xây cây tuần tự, mỗi cây sửa sai số của cây trước.
  • PCA — Giảm chiều bằng cách chiếu lên các hướng có phương sai lớn nhất.
  • t-SNE — Giảm chiều phi tuyến để trực quan hóa, giữ cấu trúc láng giềng cục bộ.
  • UMAP — Giảm chiều nhanh, giữ cả cấu trúc cục bộ lẫn toàn cục tốt hơn t-SNE.
  • TF-IDF — Trọng số từ: phổ biến trong tài liệu nhưng hiếm trong tập → quan trọng.
  • Word2Vec — Học vector nhúng từ qua Skip-gram (đoán ngữ cảnh) và CBOW (đoán từ).
  • Beam Search Decoding — Giữ k chuỗi ứng viên tốt nhất khi sinh văn bản.
  • BPE Tokenization — Gộp dần cặp ký tự/token phổ biến để tạo từ vựng subword.

27. Mật mã nâng cao

  • ECC — Mật mã đường cong elliptic: an toàn tương đương RSA với khóa ngắn hơn nhiều.
  • AES Rounds — Mã khối: lặp các vòng SubBytes, ShiftRows, MixColumns, AddRoundKey.
  • SHA-3 (Keccak) — Hàm băm xây theo cấu trúc bọt biển (sponge).
  • Zero-Knowledge Proof (Sigma Protocol) — Chứng minh biết bí mật mà không tiết lộ nó (cam kết–thách thức–phản hồi).
  • Diffie-Hellman Ephemeral (DHE) — Trao đổi khóa với khóa tạm thời mỗi phiên, đảm bảo bí mật xuôi (forward secrecy).
  • PBKDF2 & Argon2 — Băm mật khẩu cố ý chậm/tốn bộ nhớ để chống dò mật khẩu.
  • HMAC — Mã xác thực thông điệp dựa trên hàm băm và khóa bí mật.
  • ChaCha20-Poly1305 — Mã dòng kèm xác thực (AEAD), nhanh trên thiết bị không có AES phần cứng.
  • Paillier — Mã hóa đồng hình cộng: cộng bản mã tương ứng cộng bản rõ.
  • Shamir Secret Sharing — Chia bí mật thành n phần, cần k phần để khôi phục (nội suy đa thức).

28. Mạng máy tính

  • TCP BBR — Điều khiển tắc nghẽn dựa trên băng thông và RTT ước lượng thay vì mất gói.
  • OSPF — Định tuyến trạng thái liên kết, mỗi router chạy Dijkstra trên bản đồ mạng.
  • BGP — Định tuyến liên miền kiểu vector đường đi, áp chính sách giữa các AS.
  • CIDR Matching — Khớp tiền tố dài nhất theo mặt nạ mạng để chuyển tiếp gói.
  • RED — Loại bỏ gói ngẫu nhiên sớm khi hàng đợi bắt đầu đầy để tránh tắc nghẽn.
  • TCP Cubic — Điều khiển tắc nghẽn với cửa sổ tăng theo hàm bậc ba, hợp mạng băng thông lớn.
  • Token Bucket Traffic Shaper — Định hình lưu lượng mạng theo token (xem Token Bucket).
  • Distance Vector Routing — Định tuyến vector khoảng cách dựa trên Bellman-Ford phân tán (RIP).
  • DNS Iterative Resolution — Phân giải tên miền bằng cách lần lượt hỏi root → TLD → authoritative.
  • STP (Spanning Tree Protocol) — Tạo cây khung để loại bỏ vòng lặp trong mạng chuyển mạch lớp 2.

29. Hệ điều hành

  • Completely Fair Scheduler (CFS) — Bộ lập lịch Linux chia thời gian CPU công bằng bằng cây đỏ-đen theo vruntime.
  • Banker’s Algorithm — Tránh deadlock bằng cách chỉ cấp tài nguyên khi hệ thống còn ở trạng thái an toàn.
  • Multilevel Feedback Queue — Lập lịch nhiều hàng đợi, tiến trình được chuyển mức theo hành vi.
  • ARC (Adaptive Replacement Cache) — Bộ nhớ đệm tự cân bằng giữa tính gần đây và tần suất.
  • Buddy Allocation — Cấp phát bộ nhớ theo khối lũy thừa 2, tách/gộp “bạn bè”.
  • Page Replacement – LRU-K — Thay trang dựa trên K lần truy cập gần nhất.
  • RCU (Read-Copy Update) — Đồng bộ hóa cho phép đọc không khóa, ghi bằng sao chép rồi hoán đổi.
  • Slab Allocator — Cấp phát bộ nhân theo bộ đệm đối tượng cùng kích thước, giảm phân mảnh.
  • Priority Inheritance Protocol — Tác vụ giữ khóa tạm nhận ưu tiên cao để tránh đảo ngược ưu tiên.
  • Copy-on-Write (COW) — Chia sẻ dữ liệu cho đến khi có ghi mới sao chép (như fork).
  • Page Replacement Second-Chance (Clock) — Xấp xỉ LRU bằng bit tham chiếu và con trỏ vòng.

30. Đồ họa & vật lý trò chơi

  • Ray Marching (Sphere Tracing) — Dựng ảnh bằng cách bước tia theo khoảng cách đến bề mặt (SDF).
  • BVH Construction — Cây khối bao phân cấp để tăng tốc giao cắt tia/va chạm.
  • Marching Cubes — Trích xuất mặt đẳng trị thành lưới tam giác từ dữ liệu thể tích.
  • Catmull-Rom Spline — Đường cong nội suy đi qua các điểm điều khiển.
  • Bezier Subdivision (De Casteljau) — Tính và chia đường cong Bézier bằng nội suy tuyến tính lặp.
  • Quaternion SLERP — Nội suy xoay mượt theo mặt cầu giữa hai quaternion.
  • GJK Collision Detection — Phát hiện va chạm giữa các hình lồi bằng hiệu Minkowski.
  • Impulse-Based Rigid Body Resolution — Giải va chạm vật rắn bằng xung lực tức thời.
  • Perlin Noise — Nhiễu mượt giả ngẫu nhiên để tạo địa hình, mây, vân.
  • Shadow Mapping — Tạo bóng bằng bản đồ độ sâu từ góc nhìn của nguồn sáng.

31. Tối ưu hóa & metaheuristic nâng cao

  • Tabu Search — Tìm kiếm cục bộ có danh sách cấm để tránh lặp lại và thoát cực trị cục bộ.
  • Particle Swarm Optimization (PSO) — Các “hạt” bay trong không gian nghiệm theo vị trí tốt nhất cá nhân và bầy đàn.
  • Artificial Bee Colony (ABC) — Mô phỏng ong tìm nguồn mật để tối ưu.
  • Firefly Algorithm — Đom đóm bị thu hút bởi đom đóm sáng hơn (nghiệm tốt hơn).
  • Interior Point Method — Giải quy hoạch tuyến tính bằng đi xuyên bên trong miền khả thi.
  • Simplex — Giải quy hoạch tuyến tính bằng di chuyển dọc các đỉnh của đa diện khả thi.
  • Ant System (AS) cho TSP — Phiên bản ACO đầu tiên giải bài toán người bán hàng.
  • Cuckoo Search — Mô phỏng chim cu đẻ trứng và bước bay Lévy để tối ưu.
  • Differential Evolution — Tiến hóa dùng hiệu vector của các cá thể để tạo biến dị.
  • Harmony Search — Mô phỏng nhạc công tìm hòa âm tốt nhất.
  • Memetic Algorithm — Giải thuật di truyền kết hợp tìm kiếm cục bộ.
  • Scatter Search — Kết hợp có hệ thống các nghiệm tập hợp tham chiếu.
  • Imperialist Competitive Algorithm — Các “đế quốc” cạnh tranh và đồng hóa thuộc địa để tối ưu.
  • Teaching-Learning-Based Optimization — Mô phỏng quá trình giáo viên dạy và học sinh học nhau.
  • Gravitational Search Algorithm — Các khối lượng hút nhau theo định luật vạn vật hấp dẫn.

32. Xấp xỉ & đồ thị đặc biệt

  • Christofides — Xấp xỉ TSP đo lường được với tỉ lệ 1,5 bằng cây khung nhỏ nhất + ghép cặp.
  • Vertex Cover 2-Approximation — Phủ đỉnh xấp xỉ ≤ 2 lần tối ưu bằng ghép cặp tham lam.
  • Max-Cut Local Search — Tăng lát cắt lớn nhất bằng cách chuyển đỉnh sang phía còn lại khi có lợi.
  • Welsh-Powell — Tô màu đồ thị tham lam theo bậc giảm dần.
  • PageRank — Xếp hạng trang web bằng lặp lũy thừa trên ma trận liên kết.
  • Edmonds Blossom — Ghép cặp cực đại trên đồ thị tổng quát bằng co “hoa”.

33. Kiểm định thống kê & khai phá dữ liệu

  • Kruskal-Wallis — Kiểm định phi tham số so sánh nhiều nhóm độc lập (thay ANOVA).
  • Mann-Whitney U — Kiểm định phi tham số so sánh hai nhóm độc lập.
  • Wilcoxon Signed-Rank — Kiểm định phi tham số cho hai mẫu ghép cặp.
  • Apriori — Khai phá luật kết hợp bằng tập mục phổ biến, cắt tỉa theo độ hỗ trợ.
  • FP-Growth — Khai phá tập phổ biến nhanh hơn Apriori bằng cây FP, không sinh ứng viên.
  • DBSCAN — Phân cụm theo mật độ, tìm cụm hình dạng bất kỳ và loại nhiễu.
  • OPTICS — Mở rộng DBSCAN, sắp xếp điểm để xử lý cụm với mật độ khác nhau.
  • Isolation Forest — Phát hiện bất thường: điểm dị thường bị cô lập nhanh trong cây ngẫu nhiên.
  • HMM Forward-Backward — Tính xác suất trạng thái ẩn tại mỗi thời điểm trong HMM.
  • Conditional Random Fields (CRF) — Mô hình xác suất gán nhãn chuỗi (ví dụ gắn nhãn từ loại).
  • FastICA — Tách các nguồn tín hiệu độc lập khỏi hỗn hợp.
  • Paxos Made Simple — Cách trình bày Paxos đơn giản của Lamport (xem Paxos).

34. Tối ưu số & đại số tuyến tính

  • SGD with Momentum — Gradient descent có động lượng để tăng tốc và giảm dao động.
  • Adam — Tối ưu thích nghi kết hợp momentum và chuẩn hóa theo bình phương gradient.
  • RMSprop — Chia gradient cho căn trung bình bình phương gần đây để điều chỉnh tốc độ học.
  • Levenberg-Marquardt — Khớp đường cong bình phương tối thiểu phi tuyến, pha trộn Gauss-Newton và gradient descent.
  • Nelder-Mead — Tối ưu không cần đạo hàm bằng đa diện (simplex) co giãn.
  • FFT (Cooley-Tukey) — Cách chia đệ quy kinh điển của FFT (xem FFT).
  • Strassen — Nhân ma trận dưới O(n³) (~O(n^2.81)).
  • Coppersmith-Winograd — Nhân ma trận nhanh về lý thuyết (~O(n^2.37)), ít dùng thực tế.
  • LU Decomposition — Phân tích A = L·U để giải hệ phương trình, tính định thức.
  • QR Decomposition — Phân tích A = Q·R, dùng cho bình phương tối thiểu và trị riêng.
  • Cholesky — Phân tích A = L·Lᵀ cho ma trận đối xứng xác định dương, nhanh gấp đôi LU.
  • SVD — Phân tích giá trị suy biến; nền của PCA, nén và giả nghịch đảo.
  • Gauss-Jordan Elimination — Khử để đưa ma trận về dạng bậc thang rút gọn; giải hệ, tìm nghịch đảo.
  • Power Iteration — Tìm trị riêng lớn nhất bằng nhân lặp ma trận với vector.
  • QR Algorithm — Tìm toàn bộ trị riêng bằng lặp phân tích QR.
  • Push-Relabel — Luồng cực đại bằng nâng nhãn đỉnh và đẩy luồng cục bộ.

35. Sinh học tính toán

  • Needleman-Wunsch — Gióng hàng toàn cục hai chuỗi sinh học bằng DP.
  • Smith-Waterman — Gióng hàng cục bộ tìm vùng giống nhau nhất.
  • BLAST — Tìm kiếm nhanh trình tự trong CSDL bằng hạt giống và mở rộng.
  • HMM Gene Finding — Dùng HMM để dự đoán vùng gen trong DNA.
  • Neighbor-Joining — Dựng cây phát sinh loài từ ma trận khoảng cách.
  • UPGMA — Phân cụm phân cấp giả định tốc độ tiến hóa không đổi.
  • FM-Index — Chỉ mục nén dựa trên BWT cho tìm kiếm chuỗi trên bộ gen.
  • De Bruijn Graph Assembly — Ráp bộ gen từ các đoạn đọc ngắn bằng đường Euler trên đồ thị De Bruijn.
  • Protein Folding Monte Carlo — Tìm cấu hình protein năng lượng thấp bằng lấy mẫu Monte Carlo.
  • Zuker RNA Folding — Dự đoán cấu trúc thứ cấp RNA bằng cực tiểu năng lượng tự do.
  • Clustal-Style MSA — Gióng hàng nhiều chuỗi bằng cây dẫn đường và gióng cặp dần.
  • MaCH Genotype Imputation — Điền các kiểu gen khuyết bằng mô hình Markov ẩn.
  • MEME Motif Discovery — Tìm các motif lặp trong chuỗi bằng EM.
  • DC3 Suffix Array — Xây mảng hậu tố tuyến tính O(n) bằng chia theo chỉ số mod 3 (còn gọi Skew).

36. Tính toán lượng tử

  • Shor — Phân tích thừa số trong thời gian đa thức trên máy tính lượng tử; đe dọa RSA.
  • Grover — Tìm kiếm không có cấu trúc với tăng tốc căn bậc hai (O(√N)).
  • Quantum Phase Estimation (QPE) — Ước lượng pha/trị riêng của toán tử unita; thành phần của Shor.
  • Quantum Fourier Transform (QFT) — Phiên bản lượng tử của biến đổi Fourier với O(n²) cổng.
  • VQE — Tìm năng lượng trạng thái cơ bản bằng mạch tham số kết hợp tối ưu cổ điển.
  • QAOA — Giải bài toán tối ưu tổ hợp bằng mạch lượng tử xen kẽ tham số.
  • CRYSTALS-Kyber — Cơ chế đóng gói khóa chống lượng tử dựa trên lưới.
  • CRYSTALS-Dilithium — Chữ ký số chống lượng tử dựa trên lưới.
  • Surface Code — Mã sửa lỗi lượng tử trên lưới 2D với ngưỡng lỗi cao.
  • Quantum Teleportation — Truyền trạng thái lượng tử bằng vướng víu cộng thông tin cổ điển.
  • Deutsch-Jozsa — Phân biệt hàm hằng/cân bằng chỉ với một lần truy vấn.
  • Bernstein-Vazirani — Tìm chuỗi bí mật s của hàm f(x)=s·x chỉ với một truy vấn.
  • Simon — Tìm chu kỳ ẩn của hàm với tăng tốc theo hàm mũ; tiền đề của Shor.
  • Quantum Amplitude Amplification — Khuếch đại biên độ trạng thái mong muốn; tổng quát hóa Grover.

37. Robot học & SLAM

  • EKF SLAM — Định vị và lập bản đồ đồng thời bằng bộ lọc Kalman mở rộng.
  • FastSLAM — SLAM dùng bộ lọc hạt, mỗi hạt giữ một bản đồ riêng.
  • ICP — Căn chỉnh hai đám mây điểm bằng lặp ghép điểm gần nhất.
  • RRT* — Lập kế hoạch đường đi bằng cây ngẫu nhiên, hội tụ tiệm cận về nghiệm tối ưu.
  • PRM — Dựng đồ thị đường đi từ các điểm lấy mẫu ngẫu nhiên trong không gian tự do.
  • Dynamic Window Approach — Điều hướng cục bộ chọn vận tốc an toàn trong cửa sổ động học.
  • Artificial Potential Field — Robot bị hút bởi đích, bị đẩy bởi chướng ngại.
  • Occupancy Grid Mapping — Bản đồ lưới lưu xác suất mỗi ô bị chiếm.
  • Graph-based SLAM — Tối ưu đồ thị tư thế để giảm sai số tích lũy.
  • Unscented Kalman Filter (UKF) — Bộ lọc Kalman cho hệ phi tuyến dùng các điểm sigma.

38. Trình biên dịch & runtime

  • Chaitin-Briggs Register Allocation — Cấp phát thanh ghi bằng tô màu đồ thị giao thoa.
  • SSA Construction — Biểu diễn mỗi biến chỉ gán một lần, thêm hàm φ tại điểm hợp nhất.
  • Dominance Frontier — Biên thống trị, xác định nơi cần chèn hàm φ khi xây SSA.
  • LICM — Đưa các phép tính bất biến ra ngoài vòng lặp.
  • Hindley-Milner — Suy luận kiểu tự động cho ngôn ngữ hàm đa hình (ML, Haskell).
  • Cheney Copying GC — Thu gom rác bằng sao chép đối tượng sống sang vùng mới theo BFS.
  • Generational GC Remembered Set Barrier — Theo dõi tham chiếu từ thế hệ già sang trẻ để thu gom thế hệ trẻ độc lập.
  • Inline Caching — Ghi nhớ kết quả tra cứu phương thức tại điểm gọi để tăng tốc.
  • Escape Analysis — Xác định đối tượng không thoát khỏi hàm để cấp phát trên stack.
  • Andersen Pointer Analysis — Phân tích con trỏ dựa trên ràng buộc tập con, chính xác hơn Steensgaard.

39. Tài chính định lượng

  • Black-Scholes — Công thức định giá quyền chọn châu Âu.
  • Binomial Options Pricing — Định giá quyền chọn bằng cây nhị thức, hỗ trợ quyền chọn Mỹ.
  • Monte Carlo Price Paths — Mô phỏng nhiều đường giá để định giá hoặc đo rủi ro.
  • Historical VaR — Ước lượng mức lỗ tối đa ở độ tin cậy cho trước từ dữ liệu lịch sử.
  • GARCH(1,1) — Mô hình hóa độ biến động thay đổi theo thời gian.
  • Kalman Filter Pairs Trading — Theo dõi tỉ lệ hedge động giữa hai tài sản đồng tích hợp.
  • Markowitz — Tối ưu danh mục cân bằng lợi nhuận kỳ vọng và phương sai.
  • Black-Litterman — Kết hợp quan điểm nhà đầu tư với cân bằng thị trường để phân bổ tài sản.
  • Longstaff-Schwartz — Định giá quyền chọn Mỹ bằng Monte Carlo và hồi quy.
  • Order Book Matching Engine — Khớp lệnh mua/bán bằng hàng đợi ưu tiên theo giá và thời gian.

40. Toán rời rạc & hình học nâng cao

  • Persistent Homology (Vietoris-Rips) — Phân tích hình học tô-pô của dữ liệu qua các thang đo.
  • Alpha Shapes — Trích biên “hình dạng” của tập điểm 2D/3D, tổng quát hóa bao lồi.
  • Weisfeiler-Lehman Kernel — Đo độ giống nhau đồ thị bằng gán nhãn lặp theo láng giềng.
  • Gomory-Hu Tree — Biểu diễn mọi lát cắt nhỏ nhất giữa các cặp đỉnh bằng một cây.
  • Hopcroft-Tarjan Planarity — Kiểm tra và nhúng đồ thị phẳng trong thời gian tuyến tính.
  • Suffix Automaton (Blumer) — Cách xây automaton hậu tố của Blumer (xem mục 12).

41. Mật mã ứng dụng & blockchain

  • Bulletproofs — Chứng minh khoảng không cần thiết lập tin cậy, kích thước chứng minh ngắn.
  • Groth16 ZK-SNARK — Chứng minh không tri thức ngắn gọn dựa trên cặp song tuyến tính.
  • BLS Signature Aggregation — Gộp nhiều chữ ký thành một chữ ký ngắn.
  • Verifiable Random Function (VRF) — Sinh số ngẫu nhiên kèm bằng chứng có thể kiểm chứng.
  • Threshold Secret Sharing — Mở rộng Shamir cho ký/giải mã ngưỡng không lộ bí mật.
  • HoneyBadgerBFT — Đồng thuận Byzantine bất đồng bộ không cần giả định thời gian.
  • Tendermint BFT — Sao chép máy trạng thái BFT với các vòng đề xuất–bỏ phiếu.
  • Equihash — Proof-of-Work đòi hỏi nhiều bộ nhớ, kháng ASIC.
  • FHE Bootstrapping — Làm mới bản mã đồng hình đầy đủ để tính toán không giới hạn độ sâu.

42. Giới hạn tốc độ & khóa phân tán

  • Sliding Window Log — Giới hạn tốc độ bằng cách lưu dấu thời gian từng yêu cầu, chính xác nhưng tốn bộ nhớ.
  • Sliding Window Counter — Xấp xỉ cửa sổ trượt bằng kết hợp bộ đếm hai cửa sổ liền kề.
  • Redis Redlock — Khóa phân tán trên nhiều nút Redis theo đa số.

43. Phương pháp số & mô phỏng

  • Rayleigh-Ritz — Xấp xỉ trị riêng bằng cực tiểu thương Rayleigh trên không gian con.
  • Gauss-Seidel — Giải hệ tuyến tính lặp, dùng ngay giá trị vừa cập nhật.
  • Jacobi — Giải hệ tuyến tính lặp, mỗi ẩn cập nhật độc lập; dễ song song.
  • Successive Over-Relaxation (SOR) — Gauss-Seidel kèm hệ số nới lỏng để hội tụ nhanh hơn.
  • Conjugate Gradient (CG) — Giải hệ đối xứng xác định dương hiệu quả bằng hướng liên hợp.
  • GMRES — Giải hệ không đối xứng bằng cực tiểu phần dư trong không gian Krylov.
  • Arnoldi Iteration — Xây cơ sở trực chuẩn không gian Krylov cho ma trận tổng quát.
  • Lanczos Iteration — Bản Arnoldi cho ma trận đối xứng, tạo ma trận tam đường chéo.
  • Fast Multipole Method — Tính tương tác N vật thể trong O(N) bằng xấp xỉ đa cực.
  • Barnes-Hut — Mô phỏng N vật thể O(N log N) bằng quadtree/octree gộp nhóm xa.
  • Runge-Kutta 4 (RK4) — Giải phương trình vi phân thường chính xác bậc 4.
  • Euler Explicit & Implicit — Giải ODE đơn giản; tường minh dễ nhưng kém ổn định, ẩn ổn định hơn.
  • Verlet Integration — Tích phân ổn định cho động lực học phân tử, bảo toàn năng lượng tốt.
  • Leapfrog Integration — Cập nhật vị trí và vận tốc so le thời gian, đối xứng và bảo toàn năng lượng.
  • Fast Marching Method — Giải phương trình Eikonal, tính bản đồ khoảng cách lan truyền như sóng.
  • Level Set Method — Biểu diễn và lan truyền giao diện bằng hàm mức.
  • Marching Tetrahedra — Trích mặt đẳng trị dùng tứ diện, tránh nhập nhằng của Marching Cubes.

44. Học tăng cường

  • Q-Learning — Học giá trị hành động off-policy theo Bellman để chọn chính sách tối ưu.
  • SARSA — Học giá trị hành động on-policy theo hành động thực sự được chọn.
  • Policy Gradient (REINFORCE) — Tối ưu trực tiếp chính sách bằng gradient của phần thưởng kỳ vọng.
  • Proximal Policy Optimization (PPO) — Cập nhật chính sách ổn định bằng cắt tỉ số xác suất, giới hạn bước thay đổi.

Trang: 1 2