Một số loại thuật toán tối ưu hóa nên làm thủ thuật.
Tôi cho rằng đây không phải là một nhiệm vụ quan trọng về thời gian, được thực hiện trong quá trình phát triển hoặc khởi tạo, không phải trong khi chơi trò chơi. Hơn nữa, bạn có biết nếu một phân bố đỉnh nhất định giữ hình dạng cuối cùng gần với nguồn.
Lý tưởng nhất, bạn sẽ có một hàm gán một số cho mỗi cấu hình các đỉnh và ước tính mức độ gần với hình dạng cuối cùng với nguồn. Chúng ta hãy gọi hàm này là bằng khen (FOM). Bạn muốn tối ưu hóa FOM với điều kiện phụ là số lượng đỉnh không đổi.
Tôi có thể tưởng tượng hai phương pháp, một cách tiếp cận dựa trên độ dốc và hướng tiếp cận ngẫu nhiên, Monte-Carlo.
- Phương pháp tiếp cận dựa trên độ dốc
Các tọa độ vị trí của từng đỉnh của địa hình Vector-Field là các tham số. Cố gắng tính các đạo hàm của FOM đối với các tham số này. Người ta có thể tính gần đúng đạo hàm bằng số chỉ bằng cách thay đổi vị trí một chút và tính toán các khác biệt tương ứng trong FOM (khác biệt hữu hạn).
Sau đó di chuyển một chút dọc theo hướng gradient này (tức là áp dụng độ dốc lần một bước phù hợp để cập nhật các vị trí). Chọn kích thước bước sao cho FOM là tốt nhất. Một số đỉnh có thể rất gần nhau, có nghĩa là chúng có thể được thay thế bằng số lượng đỉnh ít hơn.
Lặp lại tính toán của gradient tại các vị trí mới và lặp lại chuyển động dọc theo hướng gradient mới. (Xem thêm độ dốc giảm dần .)
Điều này phù hợp với bạn đã gần với giải pháp mong muốn và muốn tinh chỉnh nó. Sự di chuyển của các đỉnh từ / đến các khu vực gần nhau đến các khu vực lân cận cần chúng nên được đưa vào đây.
- Phương pháp ngẫu nhiên, Monte-Carlo
Phương pháp 1 chỉ thực hiện tối ưu hóa cục bộ. Tuy nhiên, đối với tối ưu hóa toàn cầu, các thay đổi ngẫu nhiên trong các đỉnh có thể phù hợp hơn. Đối với mỗi lần lặp, tạo ra những thay đổi mạnh mẽ hơn, ngẫu nhiên hơn. Ví dụ, người ta hoàn toàn có thể phân phối lại 10% các đỉnh cho các vị trí ngẫu nhiên khác.
Bí quyết là: chỉ chấp nhận những thay đổi này nếu chúng cải thiện FOM, chỉ chấp nhận chúng với xác suất rất nhỏ nếu chúng làm cho FOM tồi tệ hơn. (Thông thường, người ta sử dụng hàm mũ (-Constant * FOM-thay đổi) làm xác suất chấp nhận (ở đây nên giảm thiểu FOM)).
Sau đó lặp lại điều này trong một thời gian dài theo dõi kết quả trung gian tốt nhất (cấu hình với FOM tốt nhất). Cuối cùng, chọn nó. (Xem thêm phương pháp Monte Carlo .)
Nếu bạn muốn bạn có thể kết hợp cả hai, ví dụ áp dụng phương pháp 1 vào kết quả của phương pháp 2.