Phƣơng pháp gần đây nhất đƣợc sử dụng là phƣơng pháp downhill simplex [6]. Với mỗi lần thực hiện phƣơng pháp này, thuật toán đơn hình đã đƣợc khởi tạo một cách ngẫu nhiên bởi việc nhóm bốn điểm phân tán thành một điểm là giá trị trung bình của chúng, theo các tham số. Phƣơng pháp downhill simplex do Nelder và Mead. Phƣơng pháp này chỉ đòi hỏi các hàm đánh giá, chứ không phải là các dẫn xuất. Tuy nhiên, phƣơng pháp downhill simplex thƣờng là phƣơng pháp tốt nhất để sử dụng nếu theo tiêu chí “thực hiện nhanh chóng” cho một bài toán ít phải tính toán.
Phƣơng pháp này có thể đƣợc mô tả một cách rất tự nhiên theo quan điểm về hình học.
Một đơn hình trong N chiều bao gồm N+1 điểm (hoặc các đỉnh) và tất cả các phần đƣờng thẳng giao nhau, các bề mặt đa giác,... Trong không gian 3 chiều, một đơn hình là một tứ diện bất kỳ. Nói chung, ta chỉ quan tâm đến các đơn hình không suy biến, chẳng hạn nhƣ một khối N chiều bên trong hữu hạn. Nếu bất kỳ một điểm nào của đơn hình không suy biến đƣợc coi nhƣ nguyên gốc, thì N điểm khác định nghĩa các hƣớng vector trong không gian vector N chiều.
Trƣờng hợp nhỏ nhất là 1 chiều, ta luôn tìm đƣợc giá trị cực tiểu. Tuy nhiên vẫn chƣa có thủ tục tƣơng tự nào để luôn tìm đƣợc lời giải trong không gian đa chiều. Với việc cực tiểu hóa không gian đa chiều, cách tốt nhất mà ta có thể làm là đƣa ra thuật toán với một khởi tạo ban đầu, đó là một N-vector của các biến độc lập. Sau đó, thuật toán đƣợc hỗ trợ để thực hiện thuật toán downhill simplex
theo cách của chúng tôi với độ phức tạp rất lớn của topo N chiều, cho đến khi nó gặp một giá trị cực tiểu nào đó.
Phƣơng pháp downhill simplex phải đƣợc khởi tạo không chỉ với một điểm mà với N+1 điểm để khởi tạo một đơn hình.
Hiện nay, phƣơng pháp downhill simplex đƣa ra một tập các bƣớc, các bƣớc quan trọng nhất là biến điểm của đơn hình có hàm lớn nhất qua bề mặt đối diện của đơn hình tới điểm thấp hơn. Các bƣớc này tạo ra các đối xứng và chúng đƣợc xây dựng để duy trì khối của đơn hình. Khi nó có thể thực hiện nhƣ vậy, phƣơng pháp này mở rộng đơn hình theo hƣớng này hoặc hƣớng khác để thu đƣợc các bƣớc tốt hơn. Khi nó đạt đƣợc điểm thấp nhất tức là phản ánh chính nó theo phƣơng nằm ngang và nó sẽ cố gắng tìm đƣợc điểm thấp nhất. Ngƣợc lại, trong trƣờng hợp mà phƣơng pháp đơn hình bỏ qua điểm thấp nhất, khi đó nó phản ánh chính nó theo tất cả các hƣớng, khiến nó quay quanh điểm thấp nhất.
Hình 3.4. Các kết quả đầu ra cho một bước trong phương pháp downhill simplex
Điều kiện dừng có thể rất nhỏ trong bất kỳ đoạn chƣơng trình cực tiểu hóa nhiều chiều nào. Thuật toán có thể dừng khi khoảng cách vector di chuyển trong bƣớc đó nhỏ hơn một chút so với một số dung sai. Ta có sơ đồ thuật toán downhill simplex nhƣ sau:
Dƣới đây là các bƣớc thực hiện đối với thuật toán downhill simplex: Bƣớc 1: Sắp xếp theo giá trị tại các đỉnh:
f(x1) ≤ f(x2) ≤…..≤ f(xn+1)
Bƣớc 2: Tính x0, là tâm khối của tất cả các điểm trừ điểm xn+1 Bƣớc 3: Lấy đối xứng
Tính toán điểm đối xứng xr =x0 + α(x0 -xn+1)
If điểm đối xứng tốt hơn điểm xấu nhất, nhưng không tốt hơn điểm tốt nhất, tức là:
f(x1) ≤ f(xr) f(xn)
then thu được một đơn hình mới bằng việc thay thế điểm xn+1 bằng điểm đối xứng xr, và quay lại bước 1.
Lấy đối xứng Mở rộng Thu hẹp Đúng Sai Bắt đầu Khởi tạo Điều kiện dừng? Tìm lân cận Thực hiện các bƣớc biến đổi Kết thúc
Bƣớc 4: Mở rộng
If điểm đối xứng là điểm tốt nhất mà ta có tức là f(xr) f(x1)
Then ta tính điểm mở rộng xe = x0 + γ(x0 - xn+1)
If điểm mở rộng tốt hơn điểm lấy đối xứng: f(xe) f(xr)
Then thu được một đơn hình mới bằng việc thay thế điểm xn+1 bằng điểm xe và quay lại bước 1.
Else ta thu được đơn hình mới bằng việc thay thế điểm xn+1 với điểm lấy đối xứng xr và quay lại bước 1.
Else (chẳng hạn điểm lấy đối xứng không tốt hơn điểm nào) tiếp tục chuyển sang bước 5.
Bƣớc 5: Thu hẹp
Ở đây, nếu ta có f(xr) ≥ f(xn)
Ta tính điểm thu hẹp xc= xn+1 + ρ(x0 - xn+1)
If điểm thu hẹp không phải là điểm tồi nhất, tức là f(xc) f(xn+1)
Then ta thu được một đơn hình mới bằng việc thay thế điểm tồi nhất xn+1 với điểm thu hẹp xc, và quay về bước 1.
Else nhảy sang bước 6
Bƣớc 6: Đa thu hẹp:
Với tất cả các điểm trừ điểm tốt nhất, ta thay thế các điểm đó bằng cách: xi = x1 + σ(xi - x1) với i {2,…,n+1}, quay lại bƣớc 1.
Trong đó: α, γ, ρ và σ tƣơng ứng là giá trị lấy đối xứng, mở rộng, thu hẹp và đa thu hẹp. Giá trị chuẩn là α = 1, γ = 2, ρ = 1/2 và σ = 1/2.
Trong phép lấy đối xứng, khi đỉnh xn+1 là đỉnh mà giá trị của nó cao hơn so với các đỉnh khác, thì ta có thể hi vọng tìm đƣợc một giá trị thấp hơn với việc lấy đối xứng của đỉnh xn+1 qua mặt đối diện bởi tất cả các đỉnh xi ngoại trừ đỉnh xn+1.
Đối với việc mở rộng, nếu các điểm lấy đối xứng xr là một giá trị cực tiểu mới chúng ta có thể hi vọng tìm đƣợc giá trị tốt dọc theo hƣớng từ xo đến xr.
Liên quan đến sự thu hẹp: Nếu f(xr) f(xn) chúng ta có thể mong đợi một giá trị tốt hơn thu đƣợc bên trong đơn hình đƣợc hình thành bởi tất cả các đỉnh xi.
Đơn hình khởi tạo là rất quan trọng, thật vậy, một đơn hình khởi tạo quá nhỏ có thể dẫn đến một tìm kiếm cục bộ địa phƣơng, ta chỉ thu đƣợc nghiệm cục bộ mà không thu đƣợc nghiệm tối ƣu toàn cục.