trong quá trình phát triển mô phỏng cơ thể N của tôi với trực quan hóa trong WebGL, tôi đã nghĩ ra một tối ưu hóa và tôi tự hỏi liệu nó có tên không. Tôi thấy rằng nó chưa bao giờ được thực hiện trước đây.
Nó hoạt động như thế này: Trong dấu thời gian đầu tiên, hãy lặp lại tất cả các cặp. Trong lần lặp đó, cho mỗi hạt:
- Lưu trữ tất cả các tương tác chặt chẽ trong một danh sách - đại diện cho tất cả các hạt gần với hạt này. Những tương tác này từ đó sẽ được đánh giá mỗi bước thời gian. Danh sách này thường chứa một số mục.
- Lặp lại trên tất cả các hạt khác và tính toán một lực xa mà bạn lưu trữ với hạt. Do đó, lực ròng này được ghi nhớ giữa các dấu thời gian và liên tục được áp dụng cho hạt.
Sau đó, khi mô phỏng tiếp tục vượt qua dấu thời gian đầu tiên của nó, theo kiểu vòng tròn, mỗi dấu thời gian cập nhật một số lượng nhỏ các danh sách các hạt tương tác chặt chẽ và lực lượng mạng xa . Vì vậy, qua một số bước thời gian nhất định - giả sử, 1000, tất cả các tương tác chặt chẽ của các hạt và lực xa thực sự sẽ được cập nhật. Những cái mà bạn không cập nhật sẽ chỉ kiểm tra các tương tác chặt chẽ của chúng và áp dụng lực lượng mạng xa. Trong ví dụ này, độ phức tạp tính toán của mỗi bước thời gian là một cái gì đó giống như thay vì .N 2
Một mẹo để làm cho điều này chính xác hợp lý là xác định tốt hơn "tương tác chặt chẽ". Đôi khi sự gần gũi không phải là chỉ số tốt nhất - bạn cũng có thể xem xét khối lượng và vận tốc tương đối, v.v. "Hầu hết các tương tác quan trọng" có thể là một từ tốt hơn. Hoặc "rất có thể sẽ thay đổi - tương tác sớm".
Tối ưu hóa này cho phép rất nhiều các hạt tương tác hơn so với phương pháp tất cả các cặp, nhưng tôi không chắc chắn làm thế nào để mô tả nó trong thời gian O () thuật ngữ, vì nó không làm cho một giải pháp hoàn chỉnh từng bước thời gian, nhưng lần sử dụng (hơi không chính xác) cũ thông tin và lan truyền các nỗ lực tính toán theo thời gian.
( Tuyên bố miễn trừ trách nhiệm: Mô phỏng webgl của tôi cũng có các hạt "vfx" chỉ bị ảnh hưởng bởi trọng lực và không đáp ứng hiệu ứng, vì vậy nó không nhanh như nó có thể xuất hiện )
Vậy kỹ thuật tối ưu hóa này có tên không?