Giao diện
Trong các bài học trước về phương pháp hàm chắn logarit (Barrier Method), ta đã thấy quy trình tối ưu hóa giải bài toán lồi có ràng buộc bất đẳng thức thông qua một chuỗi các bài toán không ràng buộc xấp xỉ. Tuy nhiên, Barrier Method bộc lộ hai hạn chế lớn trong thực tế: Thứ nhất, thuật toán đòi hỏi nghiệm xuất phát phải khả thi nghiêm ngặt, hoặc phải giải một bài toán Pha I riêng biệt rất tốn kém. Thứ hai, mỗi bước lặp ngoài đòi hỏi giải gần như chính xác bài toán định tâm bên trong bằng phương pháp Newton, khiến tổng chi phí tính toán tăng cao.
Phương pháp điểm trong nguyên thủy - đối ngẫu (Primal-Dual Interior-Point Method) khắc phục triệt để các nhược điểm này. Đây là thuật toán tiêu chuẩn công nghiệp được triển khai trong hầu hết các bộ giải tối ưu hóa hiện đại như MOSEK, SDPT3, SeDuMi, OSQP hay Ipopt. Thuật toán cập nhật đồng thời biến nguyên thủy
1. Hệ Điều Kiện KKT Bị Xáo Trộn và Độ Lệch Đối Ngẫu Đại Diện
Xét bài toán tối ưu lồi tổng quát:
trong đó
Hệ điều kiện tối ưu của bài toán gồm bốn nhóm:
- Khả thi nguyên thủy: Biểu thức
với mọi và . - Khả thi đối ngẫu: Điều kiện
với mọi . - Triệt tiêu Lagrange: Ta có
. - Bù trừ tương hỗ: Tích
với mọi .
Hệ KKT bị xáo trộn (Perturbed KKT Conditions)
Thay vì giải trực tiếp điều kiện bù trừ rời rạc
với điều kiện
Khi
Độ lệch đối ngẫu đại diện (Surrogate Duality Gap)
Tại một điểm bất kỳ
Khai triển tường minh:
Đại lượng
2. Các Vector Phần Dư KKT
Để đo lường mức độ thỏa mãn hệ bị xáo trộn tại điểm hiện tại
Phần dư đối ngẫu (Dual residual):
trong đó ma trận Jacobi
. Phần dư bù trừ trung tâm (Centering residual):
trong đó
và . Thành phần thứ của vector này là: Phần dư nguyên thủy (Primal residual):
Gộp ba phần dư thành vector tổng thể
Hệ phương trình bị xáo trộn tương đương với phương trình phi tuyến
3. Hướng Tìm Kiếm Primal-Dual và Phương Pháp Newton
Để tìm bước cập nhật
Lấy từng khối của
trong đó kết hợp
Do tính lồi của các hàm
Phân rã hướng Affine-Scaling và Hướng Centering
Trong thực tế, ta thường chọn đích
- Khi
: , hướng tìm kiếm thuần túy nhằm triệt tiêu phần dư và giảm khoảng cách đối ngẫu về 0. Hướng này gọi là hướng affine-scaling (Affine-scaling direction). - Khi
: Thuật toán tập trung kéo điểm lặp về trục đối xứng của đường trung tâm. - Thuật toán nổi tiếng Mehrotra Predictor-Corrector giải hệ trên hai lần trong mỗi bước lặp: Lần đầu tính hướng dự đoán affine-scaling
, xác định bước nhảy tối đa cho phép, từ đó tính độ giảm khoảng cách đối ngẫu để chọn thích nghi, rồi giải lần hai có bổ sung số hạng hiệu chỉnh phi tuyến bậc hai .
4. Chiến Lược Bước Nhảy và Line Search Backtracking
Sau khi tính được hướng tìm kiếm
- Biến đối ngẫu vẫn giữ dương nghiêm ngặt:
. - Biến nguyên thủy vẫn nằm trong miền xác định và thỏa mãn bất đẳng thức nghiêm ngặt:
. - Chuẩn của vector phần dư
giảm đáng kể.
Xác định cận trên bước nhảy
Đầu tiên, ta chặn bước nhảy đối ngẫu để đảm bảo
Tương tự, với các hàm ràng buộc bất đẳng thức (nếu là hàm tuyến tính
Để tránh điểm chạm vào biên quá sớm, ta đặt cận bước khởi tạo:
Thuật toán Line Search theo chuẩn phần dư
Bắt đầu với
- Tính khả thi miền trong: Điểm
và với mọi . - Điều kiện giảm chuẩn phần dư Armijo:với
.
5. Kỹ Thuật Số Học Giải Hệ Tuyến Tính Khối KKT
Hệ phương trình ở Mục 3 có kích thước lớn
Khử biến đối ngẫu
Từ phương trình thứ hai trong hệ :
Vì
Khai triển cho từng tọa độ:
Hệ KKT rút gọn đối xứng
Thế biểu thức
Gộp các số hạng chứa
Đặt ma trận trọng số đường chéo
Đặt tương đương:
Hệ tuyến tính rút gọn chỉ còn ẩn
Hệ phương trình này là hệ đối xứng kinh điển, có thể giải bằng một trong hai phương án hiệu năng cao:
- Khử khối ma trận Schur: Khi
nhỏ hơn nhiều so với , ta tính phân tích Cholesky của , sau đó giải hệ bù Schur kích thước : - Phân tích
không xác định đối xứng: Khi ma trận có cấu trúc thưa lớn, ta giải trực tiếp hệ khối bằng thuật toán với kỹ thuật xoay trục đường chéo (Bunch-Kaufman pivoting).
6. So Sánh Hiệu Năng: Barrier Method và Primal-Dual
Bảng dưới đây tổng kết sự khác biệt cốt lõi giữa hai họ phương pháp điểm trong:
| Tiêu chí | Phương pháp Hàm chắn (Barrier Method) | Phương pháp Primal-Dual |
|---|---|---|
| Khởi tạo nghiệm | Bắt buộc khả thi nghiêm ngặt (cần chạy Pha I) | Cho phép khởi đầu phi khả thi (Infeasible Start) |
| Số vòng lặp | Hai tầng (vòng lặp ngoài cập nhật | Một tầng duy nhất (cập nhật đồng thời |
| Tốc độ hội tụ | Tuyến tính theo | Siêu tuyến tính (Superlinear) ở lân cận nghiệm |
| Độ nhạy | Phụ thuộc vào việc chọn nhân | Rất linh hoạt, |
| Độ chính xác | Đạt | Dễ dàng đạt |
7. Bài Tập Tự Luyện Kèm Lời Giải Chi Tiết
Bài tập 1: Hệ phương trình Primal-Dual cho Quy hoạch Tuyến tính (LP)
Cho bài toán quy hoạch tuyến tính dạng chuẩn:
với
- Hãy viết hệ phương trình bị xáo trộn với
. - Thiết lập xác định hướng primal-dual
(với là biến bù hoặc biến nhân tử đối ngẫu liên kết với ). - Biến đổi để khử
, đưa về hệ phương trình đối xứng theo .
Lời giải chi tiết:
Đặt biến đối ngẫu tương ứng với ràng buộc bất đẳng thức
là ( ), và với ràng buộc đẳng thức là . Hệ bị xáo trộn:
c - s + A^T \nu &= 0 \quad (\text{Dual feasible}), \ X S \mathbf{1} &= \eta \mathbf{1} \quad (\text{Centering}), \ A x &= b \quad (\text{Primal feasible}), \ &x > 0, \quad s > 0, \end
\begin{aligned} r_{\text{dual}} &= c - s + A^T \nu, \ r_{\text{cent}} &= X S \mathbf{1} - \eta \mathbf{1}, \ r_{\text{pri}} &= A x - b. \end
\begin{bmatrix} 0 & -I & A^T \ S & X & 0 \ A & 0 & 0 \end{bmatrix} \begin{bmatrix} \Delta x \ \Delta s \ \Delta \nu \end
-\begin{bmatrix} r_{\text{dual}} \ r_{\text{cent}} \ r_{\text{pri}} \end{bmatrix}.
\Delta s = -X^{-1} r_{\text{cent}} - X^{-1} S \Delta x.
-\Delta s + A^T \Delta \nu = -r_{\text{dual}} \implies X^{-1} S \Delta x + A^T \Delta \nu = -r_{\text{dual}} - X^{-1} r_{\text{cent}}.
\Delta x + \Theta A^T \Delta \nu = -\Theta r_{\text{dual}} - S^{-1} r_{\text{cent}}.
(A \Theta A^T) \Delta \nu = -r_{\text{pri}} + A \left( \Theta r_{\text{dual}} + S^{-1} r_{\text{cent}} \right).
\min_{x} \quad \frac{1}{2} x^T P x + q^T x \quad \text{s.t.} \quad G x \le h,
H_{\text{eff}} = P + G^T D G,
v^T H_{\text{eff}} v = v^T P v + v^T G^T D G v.
v^T G^T D G v = w^T D w = \sum_{i=1}^m D_{ii} w_i^2 \ge 0.
v^T P v = 0 , \quad w^T D w = 0.
v \in \ker(P) \cap \ker(G).
\min_{x} \quad x \quad \text{s.t.} \quad -x \le 0.
\hat{\eta} = -\lambda f_1(x) = -(1)(-2) = 2.
\eta = \frac{1}{t} = \sigma \hat{\eta} = 0.5 \times 2 = 1.
r_{\text{dual}} = f_0'(x) + \lambda f_1'(x) = 1 + (1)(-1) = 0.
$$
(Điểm hiện tại đã thỏa mãn cân bằng đối ngẫu).
- Phần dư bù trừ trung tâm:
- Phần dư nguyên thủy: Không có ràng buộc đẳng thức nên
.
Thiết lập hệ phương trình :
-
. - Ma trận Jacobi
.
Hệ phương trình tìm
: Giải hệ phương trình đại số:
- Từ phương trình thứ nhất:
. - Thế vào phương trình thứ hai:
.
Vậy hướng tìm kiếm là
. -
Đánh giá bước nhảy:
- Vì
, nhân tử đối ngẫu không đổi nên . - Với biến nguyên thủy: Ta cần
. Do đó bước nhảy bị chặn bởi 1, tức là .
Cập nhật với bước
: - Vì
x_{\text{new}} &= x + s \Delta x = 2 + 0.8(-1) = 1.2, \ \lambda_{\text{new}} &= \lambda + s \Delta \lambda = 1 + 0.8(0) = 1. \end
\hat{\eta}{\text{new}} = -\lambda{\text{new}} f_1(x_{\text{new}}) = -(1)(-1.2) = 1.2.