Pertimbangkan penembak dan target. Pertanyaan saya adalah apakah ada perkiraan realistis untuk menghitung dengan probabilitas mana penembak mengenai target.
Mengabaikan keterampilan senjata dan penembak, saya kira perkiraan urutan pertama harus bahwa probabilitas untuk memukul akan sebanding dengan 1 / r ^ 2, di mana r adalah jarak ke target.
Motivasi untuk hubungan ini berasal dari penggunaan gagasan bahwa area bola yang berpusat pada penembak meluruh sebagai r ^ 2. Jadi, probabilitas untuk mencapai target seharusnya, dalam skenario kasus yang lebih buruk, membusuk menjadi 1 / r ^ 2.
Saya sudah mencoba mencari hubungan dengan senjata apa pun di Google, tetapi saya tidak menemukan ...
Adakah yang tahu lebih banyak informasi tentang topik ini? Apakah perkiraan ini valid?
EDIT:
Lebih lanjut tentang pertanyaan: Saya sedang mempertimbangkan permainan taktik. Secara khusus, saya ingin memodelkan penembakan antara dua unit (jadi, bukan game FPS, pemain tidak membidik, ia mengeluarkan perintah). Untuk melakukan itu, saya mempertimbangkan bahwa unit memiliki beberapa pengalaman, senjata memiliki akurasi, dan lingkungan (berkabut, tumbuh-tumbuhan, dll) mempengaruhi akurasi keseluruhan. Sebelum mengerjakan beberapa model yang sulit, model paling sederhana untuk diuji adalah mempertimbangkan semua faktor konstan, dan akurasi hanya tergantung pada jarak.
Pertanyaannya adalah bagaimana keakuratan ini tergantung pada jarak. Tebakan pertama saya adalah pembusukan 1 / r ^ 2. Tapi, telah disebutkan dengan baik di komentar, ini terlihat seperti pembusukan yang sangat cepat.
sumber
Jawaban:
Perkiraan Anda pada dasarnya menentukan tembakan mendarat pada bagian permukaan bola, ditentukan oleh sudut; area target dalam permukaan itu adalah konstan; distribusi probabilitas adalah konstan di dalam permukaan dan nol di tempat lain.
Gajet telah memberikan sejumlah alasan bagus mengapa beberapa asumsi ini gagal, tetapi berpegang pada model ketidakakuratan yang sama: kesalahan sudut yang terbatas. Hasilnya masih jatuh dengan r ^ -2, tetapi dengan konstanta kecil.
Katakanlah penembak memiliki penyebaran maksimum 5 °. Dia memiliki peluang menembak antara kesalahan 0 ° dan 1 °, tetapi area cincin antara 4 ° dan 5 ° jauh lebih besar daripada area cincin / lingkaran antara 0 ° dan 1 °. Kesalahan yang lebih besar memiliki kemungkinan lebih besar untuk terjadi. Tingkatkan kesalahan lebih jauh, dan probabilitas tiba-tiba turun ke nol, karena kita berada di luar batas lima derajat. Itu sepertinya tidak terlalu realistis.
Sebuah representasi yang lebih akurat akan memiliki distribusi Guassian kesalahan sudut, yaitu:
A(ϕ) = sqrt(a/π) exp(-a ϕ²)
. Variabel a dapat digunakan untuk memasukkan keterampilan penembak dll. Perhatikan solusi ini satu dimensi. Jika target Anda sangat tinggi dibandingkan dengan lebarnya, Anda mungkin menghilangkan kesalahan vertikal sama sekali dan hanya menganggap tembakan mendarat di ketinggian yang benar. Atau, Anda dapat menjalankan perhitungan dua kali dan mengalikan hasilnya, dengan asumsi target kira-kira persegi panjang.Untuk mendapatkan dari fungsi probabilitas untuk probabilitas yang sebenarnya memukul target, kita mengintegrasikan fungsi A dan berakhir dengan fungsi kesalahan mahal - yang sebenarnya disebut fungsi error:
p(ϕ) = erf(ϕ sqrt(a))
. Sudut ϕ sama dengan sudut antara titik yang ditargetkan dan tepi target. Dalam hal ukuran target dan jarak r:p(r) = erf(arctan(s/2r) sqrt(a))
. Fungsi ini diplot di bawah ini untuk target ukuran 1 dan nilai akurasia=2
dana=10
.Perhatikan bahwa tidak seperti falloff r ^ -2, probabilitas tetap rapi di bawah satu, tidak peduli seberapa dekat targetnya. Bahkan, bahkan target pada jarak nol dapat dilewatkan, karena probabilitas yang sangat kecil kesalahannya lebih dari 90 °.
Seperti yang saya katakan sebelumnya, fungsi kesalahan cukup mahal, tetapi argumennya
ϕ sqrt(a)
, tidak terlalu bervariasi untuk skenario penembak yang masuk akal. Kita dapat melakukan jauh lebih baik dengan mengevaluasi bagian dari seri Taylor sebagai gantinya dan membatasi hasilnya. Pertama, kita petax = arctan(s/2r) sqrt(a)
, kemudian mengevaluasi:2 x - (2/3) x^3 + (1/5) x^5 ...
. Hapus atau tambahkan sebanyak mungkin istilah yang dianggap perlu, tetapi perlu diingat bahwa jumlah istilah yang merata akan menyebabkan perilaku yang tidak diinginkan untuk jarak rendah. Dijelaskan di bawah ini adalah fungsi kesalahan nyata, dibandingkan dengan tiga istilah pertama non-nol dari seri Taylor-nya.Sebagai catatan terakhir, ini murni matematika. Lemparkan ke beberapa fungsi sinus, koefisien acak dan logaritma dan gim Anda mungkin sama-sama menyenangkan.
sumber
Kemungkinannya adalah fungsi 1 / r ^ 2 tetapi tidak jatuh secepat 1 / r ^ 2 itu sendiri. Jangan melakukan matematika sederhana, dan untuk kemudahan perhitungan saya pertama-tama akan pergi dengan pemotretan 2D yang akan menghasilkan kesalahan 1D dalam pemotretan. Target selalu memiliki lebar yang sama, misalnya kita tahu bahwa target memiliki lebar satu meter. Dan kita juga tahu bahwa sambil menembakkan pistol dapat meleset dari target dengan paling banyak 5 derajat. di sini adalah gambar yang menunjukkan situasi:
Sekarang lihat ketiga kondisi ini. berasumsi bahwa mereka memiliki
h1
,h2
danh3
jarak dari sudut. Berdasarkan nilai-nilai dan sudut ini, kita dapat menghitung seberapa jauh jaraknya pada kondisi tersebut. Ini dihitung sesederhanah*tan(10/2)*2
(seperti yang ditunjukkan pada gambar 2).Kami tahu itu
h/l = cos(theta/2)
danr/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
Di sisi lain kita tahu target itu sendiri adalah lebar 1 meter, jadi selama nilai itu kurang dari satu meter kita akan selalu memukul. setelah bagian itu memiliki probabilitas
"target surface"/"hit area"
yang sama dengan1 / (h*tan(10/2)*2)
. Perhatikan bahwa kita selalu dapat menganggap semua permukaan target ada di dalam kerucut api. itu tidak benar-benar mempengaruhi permainan-permainan itu banyak tetapi kemudahan perhitungan sangat banyak!sekarang kembali ke masalah 3D kami dengan target 2D. Karena kerucut, kita berbicara tentang peluru yang akan selalu melewati lingkaran dengan diameter tertentu ketika melewati target. lagi kita perlu menghitung jari-jarinya, lalu area lingkaran itu. Seperti yang sudah saya jelaskan sebelumnya, kita bisa menggunakan
r=h*tan(10/2)*2
dan karenanya luas permukaannyapi*r^2 = h^2*tan^2(10/2)*4 * pi
. Dan pada akhirnya kita tahu probabilitas"target area"/"circle area" = 1 / h^2*tan^2(10/2)*4 * pi
. seperti yang saya katakan itu adalah fungsi dari h ^ 2 tetapi karenatan^2(5)
sangat kecil, perlu waktu lama sebelum probabilitasnya jatuh sangat rendah.sumber
Untuk ini, Anda memerlukan konsep "ketidakakuratan" yang jelas. Apa itu ketidaktepatan? Bagaimana cara kerjanya? Jika Anda mengkode AI yang menembak dan menghitung lintasan yang tepat setiap waktu, maka jelas ketidaktepatannya adalah 0 pada jarak berapa pun.
Setiap pemotretan AI menentukan jalur yang sempurna terlebih dahulu, dan kemudian menambahkan ketidaktepatan membidik. Ketidaktepatan ini sepenuhnya ditentukan oleh Anda, dan definisi itu diperlukan sebelum probabilitas apa pun dapat dihitung.
sumber