Độ chính xác so với công thức khoảng cách


8

Hãy xem xét một game bắn súng và một mục tiêu. Câu hỏi của tôi là nếu có bất kỳ xấp xỉ thực tế nào về việc tính toán với xác suất mà người bắn trúng mục tiêu.

Bỏ qua kỹ năng vũ khí và bắn súng, tôi đoán rằng xấp xỉ thứ tự đầu tiên phải là xác suất trúng sẽ tỷ lệ thuận với 1 / r ^ 2, trong đó r là khoảng cách đến mục tiêu.

Động lực cho mối quan hệ này đến từ việc sử dụng ý tưởng rằng khu vực của một quả cầu tập trung tại người bắn phân rã là r ^ 2. Vì vậy, xác suất để bắn trúng mục tiêu, trong trường hợp xấu hơn, phân rã thành 1 / r ^ 2.

Tôi đã thử Googling một số mối quan hệ cho bất kỳ vũ khí, nhưng tôi không tìm thấy bất kỳ ...

Có ai biết thêm thông tin về chủ đề này? Là xấp xỉ này hợp lệ?

BIÊN TẬP:

Thêm về câu hỏi: Tôi đang xem xét một trò chơi chiến thuật. Cụ thể, tôi muốn lập mô hình bắn giữa hai đơn vị (vì vậy, không phải là game FPS, người chơi không nhắm, nó phát lệnh). Để làm điều đó, tôi đang xem xét rằng đơn vị có một số kinh nghiệm, vũ khí có một số độ chính xác và môi trường (sương mù, thảm thực vật, v.v.) ảnh hưởng đến độ chính xác tổng thể. Trước khi làm việc với một số mô hình khó, mô hình đơn giản nhất để kiểm tra là xem xét tất cả các yếu tố không đổi và độ chính xác chỉ phụ thuộc vào khoảng cách.

Câu hỏi là làm thế nào để độ chính xác này nên phụ thuộc vào khoảng cách. Dự đoán đầu tiên của tôi sẽ là phân rã 1 / r ^ 2. Nhưng, đã được đề cập tốt trên các ý kiến, điều này có vẻ như một sự phân rã rất nhanh.


1
1 / r ^ 2 rơi xuống nhanh chóng. Dường như, hầu hết FPS sửa đổi điểm ngắm của bạn ở một góc độ vững chắc và theo dõi một tia. Góc càng lớn, càng khó để bắn trúng các mục tiêu ở xa.
Daniel Blezek

1
Có lẽ bạn có thể sử dụng luật Inverse Square để đưa ra một?
MichaelHouse

Luật Inverse Square là những gì tôi đang nói trong bài ... đó là 1 / r ^ 2 ... -.-
Jorge Leitao

Tất nhiên. Phải là lý do tại sao tôi nghĩ về nó. Nhưng bạn đang thiếu 4π và bạn chỉ đang sử dụng 1 cho P. Về cơ bản, bạn có thể sử dụng cường độ từ phương trình đó để tương đương với độ chính xác.
MichaelHouse

1
Tôi không nghĩ rằng thiết kế trò chơi của anh ta có liên quan, vì anh ta yêu cầu "xấp xỉ thực tế" và "bỏ bê vũ khí và kỹ năng bắn súng". Với những hạn chế đó có vẻ như là một vấn đề toán học cơ bản.
Kylotan

Câu trả lời:


5

Sự gần đúng của bạn về cơ bản chỉ ra các bức ảnh đang hạ cánh trên một phần của bề mặt của một hình cầu, được xác định bởi góc; vùng mục tiêu trong bề mặt đó là một hằng số; phân phối xác suất là không đổi trong bề mặt và bằng không ở nơi khác.

Gajet đã đưa ra một số lý do chính đáng tại sao một số giả định này không thay đổi, nhưng vẫn giữ nguyên mô hình không chính xác: một lỗi giới hạn ở góc. Kết quả vẫn rơi với r ^ -2, nhưng với hằng số nhỏ.

Nói rằng game bắn súng có mức chênh lệch tối đa là 5 °. Anh ta có cơ hội bắn giữa sai số 0 ° và 1 °, nhưng diện tích của vòng trong khoảng từ 4 ° đến 5 ° lớn hơn nhiều so với diện tích của vòng / vòng tròn trong khoảng từ 0 ° đến 1 °. Lỗi lớn hơn có xác suất xảy ra lớn hơn. Tăng thêm lỗi nữa và xác suất đột nhiên giảm xuống 0, vì chúng tôi vượt quá giới hạn năm độ. Điều đó dường như không thực tế lắm.

Một đại diện chính xác hơn sẽ có một phân phối guassian của lỗi góc, tức là : A(ϕ) = sqrt(a/π) exp(-a ϕ²). Biến a có thể được sử dụng để bao gồm kỹ năng của người bắn, v.v ... Lưu ý giải pháp này là một chiều. Nếu mục tiêu của bạn rất cao so với chiều rộng của nó, bạn có thể bỏ qua lỗi dọc hoàn toàn và chỉ cho rằng cú đánh hạ cánh ở độ cao chính xác. Ngoài ra, bạn có thể chạy phép tính hai lần và nhân kết quả, giả sử mục tiêu có dạng hình chữ nhật.

Để có được từ hàm xác suất đến xác suất trúng đích, chúng tôi tích hợp hàm A và kết thúc bằng hàm lỗi đắt tiền - thực sự được gọi là hàm lỗi : p(ϕ) = erf(ϕ sqrt(a)). Góc tương đương với góc giữa điểm được nhắm mục tiêu và cạnh của mục tiêu. Về kích thước mục tiêu s và khoảng cách r : p(r) = erf(arctan(s/2r) sqrt(a)). Hàm này được vẽ dưới đây cho mục tiêu có kích thước 1 và các giá trị chính xác của a=2a=10.

Xác suất trúng mục tiêu so với khoảng cách

Lưu ý rằng không giống như mức giảm của r ^ -2, xác suất nằm ngay ngắn dưới một, cho dù mục tiêu có ở gần đến đâu. Trên thực tế, ngay cả một mục tiêu ở khoảng cách chính xác bằng 0 cũng có thể bị bỏ lỡ, do xác suất cực kỳ nhỏ, sai số là hơn 90 °.

Như tôi đã nói trước đây, chức năng lỗi khá tốn kém, nhưng đối số của nó ϕ sqrt(a), không thay đổi nhiều cho bất kỳ kịch bản game bắn súng hợp lý nào. Thay vào đó, chúng ta có thể làm tốt hơn rất nhiều bằng cách đánh giá một phần của loạt Taylor và giới hạn kết quả. Đầu tiên, chúng tôi lập bản đồ x = arctan(s/2r) sqrt(a), sau đó đánh giá : 2 x - (2/3) x^3 + (1/5) x^5 .... Bỏ qua hoặc thêm nhiều thuật ngữ cần thiết, nhưng hãy nhớ rằng một số thuật ngữ chẵn sẽ gây ra hành vi không mong muốn cho khoảng cách thấp. Biểu đồ bên dưới là hàm lỗi thực sự, so với ba thuật ngữ khác không đầu tiên của loạt Taylor.

Xác suất sử dụng hàm lỗi và chuỗi Taylor

Như một lưu ý cuối cùng, đây hoàn toàn là toán học. Sử dụng một vài hàm sin, hệ số ngẫu nhiên và logarit và trò chơi của bạn có thể thú vị như nhau.


5

Xác suất chắc chắn là hàm 1 / r ^ 2 nhưng không rơi nhanh như 1 / r ^ 2. Chúng ta đừng làm một phép toán đơn giản, và để dễ tính toán, trước tiên tôi sẽ thực hiện chụp 2D, điều này sẽ dẫn đến lỗi 1D khi chụp. Mục tiêu luôn có cùng chiều rộng, ví dụ chúng ta biết rằng mục tiêu có chiều rộng một mét. Và chúng tôi cũng biết rằng trong khi bắn súng có thể bỏ lỡ mục tiêu với tối đa 5 độ. Đây là một con số cho thấy tình hình:

Hình 1

Bây giờ hãy nhìn vào ba trạng thái này. giả sử rằng họ có h1, h2h3khoảng cách từ góc. Dựa trên các giá trị và góc này, chúng ta có thể tính được khoảng cách ở trạng thái đó. Nó được tính đơn giản như h*tan(10/2)*2(như trong hình 2).

Hình 2

Chúng tôi biết rằng h/l = cos(theta/2)r/l = sin(theta/2)=> r/h = sin(theta/2)/cos(theta/2) = tan(theta/2)=> r = h*tan(theta/2)=>edge length = h*tan(theta/2)*2

Mặt khác, chúng ta biết bản thân mục tiêu rộng 1 mét, vì vậy miễn là giá trị đó nhỏ hơn một mét, chúng ta sẽ luôn luôn bắn trúng. sau phần đó nó có xác suất "target surface"/"hit area"bằng 1 / (h*tan(10/2)*2). Lưu ý rằng chúng ta luôn có thể giả sử tất cả bề mặt mục tiêu nằm trong hình nón lửa. Nó không thực sự ảnh hưởng đến trò chơi nhiều như vậy nhưng dễ dàng tính toán rất nhiều!

bây giờ trở lại vấn đề 3D của chúng tôi với mục tiêu 2D. Vì nó là hình nón nên chúng ta đang nói về viên đạn sẽ luôn đi qua một vòng tròn có đường kính nhất định khi đi qua mục tiêu. một lần nữa chúng ta cần tính bán kính của nó, sau đó là diện tích của vòng tròn đó. Như tôi đã giải thích trước khi chúng ta có thể sử dụng r=h*tan(10/2)*2và do đó diện tích bề mặt là pi*r^2 = h^2*tan^2(10/2)*4 * pi. Và cuối cùng chúng ta biết xác suất là "target area"/"circle area" = 1 / h^2*tan^2(10/2)*4 * pi. như tôi đã nói đó là chức năng của h ^ 2 nhưng vì tan^2(5)nó rất nhỏ nên phải mất một thời gian dài trước khi xác suất đó giảm xuống rất thấp.


1

Đối với điều này, bạn cần một khái niệm xác định về "không chính xác". Không chính xác là gì? Làm thế nào nó hoạt động? Nếu bạn mã hóa một AI sẽ bắn và nó sẽ tính toán đường dẫn chính xác mọi lúc, thì rõ ràng độ chính xác là 0 trên bất kỳ khoảng cách nào.

Bất kỳ AI chụp nào cũng xác định đường dẫn hoàn hảo trước, sau đó thêm mục tiêu không chính xác. Sự không chính xác này hoàn toàn do bạn xác định và định nghĩa đó là cần thiết trước khi bất kỳ xác suất nào có thể được tính toán.


Như tôi đã nói trong câu hỏi, độ chính xác là Xác suất trúng vì tôi đã bỏ qua độ chính xác của đơn vị (ví dụ như kinh nghiệm) trong phép tính gần đúng đầu tiên này.
Jorge Leitao

@JC: Nhưng bạn đã không xác định bất kỳ lý do hoặc có nghĩa là độ chính xác của đơn vị sẽ không phải là 100% mỗi lần.
DeadMG
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.