顯示廣告
隱藏 ✕
※ 本文轉寄自 ptt.cc 更新時間: 2023-03-06 22:37:54
看板 Military
作者 subgn (   )
標題 [討論] 用蒙地卡羅模擬反艦飛彈攻擊
時間 Sun Mar  5 14:14:49 2023



先前CSIS智庫出了一篇台海戰爭的兵棋模擬有涉及到中國以ASM攻擊美軍艦隊的部分

他們是用一個20面骰來決定每25發ASM的命中數

而且還是把20面骰簡化成5種結果(0, 1, 2, 3發與目標艦隊全毀)


因此模擬24架轟六發射的96發鷹擊12攻擊2伯克1提康,骰4次
結果是命中三發,三發隨機分配後每艘各中一發。

附上原文連結
https://tinyurl.com/3cdevwb6

前述設定在第 30~32頁


但我實在很不理解這麼專業的智庫怎麼那麼愛玩骰子
把25發ASM的結果簡化成5種結果,還是靠一個20面骰子決定,實在太過簡約

理論上這種問題應該很適合用蒙地卡羅來解決,

於是我就抱著「你行你上」的想法來試著用python實作蒙地卡羅法來測試

首先簡述一下模擬邏輯的部分

1. 整個過程簡化成一維空間,一枚飛彈的位置資訊只有與目標的距離

2. 整個艦隊不去細究陣形與各間距離,只簡化成一個點

3. 不細究一次用幾發飛彈攔截一枚ASM、每枚攔截飛彈的命中率等,

   因為攔截過程是整個區域防空系統在運作,因此只用攔截率、

   系統最大同時處理目標數、攔截飛彈速度來描述

4  只要ASM距離還在最小接戰距離外,沒攔截成功都還可以再進行攔截
   逼近最小接戰距離內後就只能以近迫系統攔截,近迫系統一次只能攔截一發
   命中一發即癱瘓,表示該艦接戰能力將從艦隊整體接戰能力扣除,假設命中後
   不會馬上沈沒,後續瞄準該艦的飛彈不會改變目標。

5  所有ASM理想上以同一時間抵達艦隊,但實際抵達時間呈現常態分佈

   其變異數反應各載台的整體協調能力,協調性越佳變異數越低,所有ASM

   越逼近同時抵達,越有飽和攻擊效果。

6  假設攻方與守方皆有良好目獲能力與協調性,各艦不會重複攔截目標,ASM

   也不會鎖定錯目標,只有命中率問題。

基本參數設定(原文有提到的設定皆採取其設定)
  攻方參數
  ASM命中率: 90%, ASM速度: 2馬赫 (0.68km/s)
  攻方協調性: 標準差為15秒,也就是約95%的ASM在抵達時間集中在1分鐘區間內
  ASM數量: 96發

  防守方參數:
  區域防空攔截率: 70%,
  攔截飛彈速度: 2馬赫(理論上應該是個加速過程,但避免過度複雜簡化成平均速度)
  單一防空艦最大處理能力: 20
  區域防空對大與最小接戰距離: 100公里/5公里
  近迫攔截率:0.7,軟殺成功率:0.2
  船艦數量: 3艘

以上是基本參數假設,進行1024回合模擬後結果為

平均生存艦隻數:1.5艘
平均攔截率96%
平均總命中飛彈數量:2.1發

因此理論上與論文中認為的,大概率全滅的悲觀結論稍微不同,
以蒙地卡羅模擬的結果來說,平均大概會有1~2艘生存


既然都花時間寫了程式碼,只模擬一種參數與情境太浪費了,於是我就嘗試
調整一些關鍵變數看看會產生什麼結果。
分別是:
調降ASM命中率,由90%降至60%
調降ASM速度,由2馬赫降低至1馬赫
降低攻擊協調度,抵達時間標準差由15秒增加到30秒
調高各艦同時接戰上限,由10調高到20
調高區域防空接戰距離,由20km調高到40km
調高攔截飛彈速度,由2馬赫調高到3馬赫
調低攔截飛彈命中率,由0.7降低到0.5

最後,將所有情境的ASM數量都改成400,而防空艦數量調高到8艘
這麼做的原因是怕有些參數對防守方太強,結果都是全部生存,或有些參數攻方太強
結果同樣都是全滅,看不出結果差異,因此將攻守方規模都調高


結果分別如下:

情境           生還艦隻數  總命中數  攔截率  命中第一艘所需ASM  全艦癱瘓所需ASM
基礎情境           0.82      20.3     92.6%          43             320
較低ASM命中率      1.71      12.7     93.4%          71             332
較低ASM速度        4.42       4.5     98.3%         200             342
較低攻擊協調度     2.53      10.8     96.2%          51             308
較高接戰數上限     2.65       8.8     96.9%          54             315
較高接戰距離       0.85      19.9     93.1%          65             324
較高攔截飛彈速度   2.49       9.3     96.8%         136             346
較低攔截飛彈命中率 0.07      44.8     84.4%          19             255


可以發現,對攻方來說,最有效的是增加ASM速度,當速度從2馬赫降低至1馬赫時
目標艦隊生存數從0.82上升到4.42,所需要集中第一艘的ASM數量從71上升到200
而命中率反而就相對的不是那麼重要,而攻擊協調度也是相對重要因素,

當ASM抵達時間分佈增加兩倍,命中數量就會剩一半,防守方生存數量增加三倍至2.53艘
(看起來我們應該多生產雄三,然後多訓練各載台的協調度,至於導引頭抗干擾性
反而不太需要擔心,靠速度與數量破防就行了?)


對防禦方來說,系統接戰上限、攔截飛彈速度與命中率都同樣重要
反而是接戰距離提升兩倍對生存率、攔截率、中彈數幾乎沒差異,這結果絕對是
與現實不合,我猜是因為模型對攔截飛彈假設整個過程用同一平均速度
但實際上是一個加速過程,越遠開始接戰,加速時間越長,整個攔截過程平均速度越高
命中位置離艦隊越遠,若沒命中才有時間再攔截一次,但用平均速度無法模擬到這個部分


當然上面很多參數與實際參數一定與實際不合,如果某些細節未考慮到的話,
結果可能也會跟現實世界天差地遠,例如前面的例子,區域防空接戰距離竟然影響不大
但蒙地卡羅模擬的重點是能夠輕易的測試各參數的變化對結果的影響,
而不需要推導太過複雜數學模型

如果板友有想要測的參數可以跟我說
或是直接在這個google colab的notebook自己輸入參數測試
https://tinyurl.com/4jceh566



--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.193.248.45 (臺灣)
※ 作者: subgn 2023-03-05 14:14:49
※ 文章代碼(AID): #1a13DT_Y (Military)
※ 文章網址: https://www.ptt.cc/bbs/Military/M.1677996893.A.FE2.html
AfterDark   : 這模擬怎麼有種跑團的感覺1F 03/05 14:21
jth634      : 推認真實證2F 03/05 14:23
Jerryc130   : 這種防空戰的狀況好歹也要骰個對抗骰吧,只用一個3F 03/05 14:24
Jerryc130   : 20面骰感覺就是不想去考慮海軍的防空系統
imruck      : 所以模擬結果是平均60顆ASM打沉一艘嗎5F 03/05 14:25
imruck      : 歷史上福克蘭海戰5顆沉2傷1的戰績 應該是英國太弱嗎
imruck      : 不過當時也沒有盾艦 防禦力差很多 但差距真的有點大
subgn       : 福克蘭應該是人類史上實戰面對ASM吧?8F 03/05 14:29
subgn       : 以這個例子,可能是60發打沉一艘,但是不代表600發
subgn       : 可以打沉10艘,規模放大或縮小,可能會讓天秤朝某
Sianan      : 贖罪日應該才是第一次11F 03/05 14:33
saccharomyce: 守方防空飛彈有設定數量嗎12F 03/05 14:33
subgn       : 邊移動,或讓細微的參數差異放大影響結果13F 03/05 14:33
subgn       : @saccharomyce: 目前沒有設定數量
kira925     : 有意思也有意義的模擬15F 03/05 14:34
saccharomyce: 我猜簡化各艦距離和陣型的影響16F 03/05 14:34
kira925     : 雖然我覺得要考慮接戰不是一維 這讓守方難度增加17F 03/05 14:35
SRNOB       : prompt S/R是吧18F 03/05 14:35
kira925     : 不過參數太多也難以模擬與理解19F 03/05 14:35
SRNOB       : 如果一快一慢的突防有辦法模擬嗎?20F 03/05 14:35
saccharomyce: 既然設定攻方96發 應該要考慮被飽和的問題21F 03/05 14:36
有喔,這就是為何彈著時間集中程度這個變數越低,突防能力越高
kira925     : 速度快慢還牽涉到攔截協調與攻方到達時間統合22F 03/05 14:37
kira925     : 如果攻方協調不佳 兩個到達時間差很多 那速度沒差
kira925     : 反過來說 看到超音速過度反應 被次音速貼地摸進來
utn875      : 推啊!25F 03/05 14:39
kira925     : 那守方也不合格 但是這個真的太複雜了26F 03/05 14:39
kira925     : 協調好的複雜複雜威脅性遠大於單一押寶超音速ASM
imruck      : 歷史上的ASM戰績 幾乎都是雷達沒在工作或沒看到28F 03/05 14:42
imruck      : 歷史上很少攔截到ASM 唯一成功攔截ASM的例子是2016
imruck      : 美軍梅森號DDG-87在葉門外海攔截了2顆
imruck      : 我認為實際行動 各種人為機械因素 ASM應該還是上風
mudmud      : 推龐德蘿莎32F 03/05 14:53
olozil      : 看起來跟AI有八成像33F 03/05 14:55
godog       : 梅森號攔截的那兩顆飛彈 型號是什麼?34F 03/05 14:59
godog       : 查了一下 有些文章說型號是鷹擊83
wahaha99    : 怎麼感覺是變量太多、無從估算模擬、就乾脆丟骰子XD36F 03/05 15:02
wahaha99    : 畢竟攔截ASM這種事情,人類史上太少次了
wahaha99    : 更遑論是沒實戰過的系統一堆 實戰還要考慮人員的
wahaha99    : 訓練與反應
xc091832    : 第一次防空飛彈成功接戰反艦飛彈,應該是42式在波灣40F 03/05 15:07
xc091832    : 護航密蘇里岸轟時,成功擋下伊軍的冥河
xc091832    : 梅森在葉門外海那次,他們當下也搞不清楚反艦飛彈到
xc091832    : 底是被攔截還是被干擾,只確定自己沒被命中而已
xc091832    : 以色列號稱還有人操.50擊落冥河的神蹟
Hatewoman   : 幹好猛45F 03/05 15:16
SRNOB       : 恩模擬是模擬不如一次實戰 股票市場&莫斯科號表示:46F 03/05 15:19
subgn       : 金融市場的確也是常用蒙地卡羅來計算衍生性商品價格47F 03/05 15:36
subgn       : 如果有認識金融業風險管理部上班的問他們就知道
※ 編輯: subgn (123.193.248.45 臺灣), 03/05/2023 15:43:39
subgn       : 話說我本來是想先寫彈道飛彈攻擊跑道的模擬,但是49F 03/05 15:44
subgn       : 卡在不知道怎麼把CEP轉換成隨機彈著座標(x,y)
subgn       : 就我所知,CEP半的定義是柏松分佈下,50%機率的
subgn       : 的彈著範圍,有數學高手知道怎麼寫出公式嗎?
SRNOB       : 原po抱歉 不是嫌你模擬不好 我是要表達世事難預料xd53F 03/05 15:48
reich3      : 設計神盾系統不就是要應付蘇聯的超飽和攻擊?54F 03/05 16:14
chyx741021  : 沱江級第二批後續艦也是把雄三的數量加到8枚55F 03/05 16:15
Schottky    : 先推,雖然我不是很懂蒙地卡羅 XD56F 03/05 16:19
Schottky    : CEP 分布是不是用極座標做?方位+半徑這樣
Schottky    : 有必要的話再把極座標轉換成正交座標系
s3z15a3z15a : 攔截率蠻高的耶..我覺得情報因素要在加重一點59F 03/05 16:25
lc85301     : 方位用平均的亂數,距離用 poisson 平均距離是 cep60F 03/05 16:44
lc85301     : 這樣呢
f26724309   : 專業推ㄤ62F 03/05 17:31
anarch      : 認真研究推推63F 03/05 18:22
innominate  : 要做模擬就要有對應的模型,你的模型事實上還是更多64F 03/05 18:30
innominate  : 的骰子,說到底蒙地卡羅就是骰子,現在模型的問題在
innominate  : 於你沒有防空艦防禦ASM的參數,這部分應該都還是機
innominate  : 密
確實蒙地卡羅的本質就是無腦的用更多的骰子來取代數學解析解,因為有時候你根本
推導不出解析解。例如2枚70%的攔截飛彈,整體命中率是多少,用國中數學也可以推導
出解析解1-(1-0.7)*(1-0.7)=0.91,像這種情形當然就不需要蒙地卡羅,但是一但
情境越來越複雜,例如你要算的是100發ASM不是1發,系統有同時接戰上限,條件
越加越多,就幾乎不可能推導出解析解,就算推出來也沒人敢保證是正確的。
kira925     : 他只要有寫出數據就OK 至少不是大筆一揮全部沉68F 03/05 18:45
Muscovy     : 模擬要有事實根據, 並不是說數學式寫多就比較準69F 03/05 20:18
Muscovy     : 然後 CEP 應該也不是 Poisson dist.
Muscovy     : Poisson dist. 只有一個變數, 跟彈著點分佈事實不符
Muscovy     : Google: Circular_error_probable, 查 wiki.
Muscovy     : 它說 CEP 的「基本款」是 bivariate normal dist.
Muscovy     : 而且還是 circular 的哦. :D
Muscovy     : CSIS 用 20 面骰, 很可能因為「這最接近史實」.
CSIS在推敲參數時的確做足功課引用很多佐證,我裡面多數參數也是直接用他們的
例如攔截率、命中率、接戰距離等,但怎麼從這些參數直接跳到結論用20面骰
模擬5種中彈數,而且是每25枚ASM骰一次,100枚ASM就骰4次,這種線性簡化
不管數量增加產生的非線性突防加成是我比較無法接受的
subgn       : 抱歉我記錯了,的確是bivariate normal dist76F 03/05 21:05
innominate  : 應該說這些防禦跟進攻能力都是各國的機密77F 03/05 21:06
沒錯,所以我在猜美中台三方都做過蒙地卡羅模擬,但沒有公佈結果,應該就是
怕公布結果就會被反推真實參數
kwht        : 認真推, 參數問題簡化是好的研究的第一步78F 03/05 21:08
subgn       : 剛剛請教過chatGPT模擬cep的方法79F 03/05 21:16
subgn       : https://imgur.com/a/iXFQvUK
※ 編輯: subgn (123.193.248.45 臺灣), 03/05/2023 21:33:31
worse77     : 認真推81F 03/05 21:37
ry3298      : 推82F 03/05 22:09
user1120    : 有意思83F 03/05 22:38
ckbling     : 推認真84F 03/05 22:59
Muscovy     : 我覺得 CSIS 20 面骰想保留的是 uncertainty.85F 03/05 23:10
Muscovy     : 一次跑太大量變成 statistical approach 的時候...
Muscovy     : 就變成不像 war game, 因為會被大數法則支配.
Muscovy     : 那時候就變成 chess game, 反而會失去決策的精髓.
Muscovy     : 整部兵推注重的應該是如何面對各種可能發生的事件.
Muscovy     : 像是 20 面骰擲出第七艦隊叛變, 要如何面對?
Muscovy     : 蒙地卡羅追求統計上收斂的技巧, 就很難模擬意外.
Muscovy     : 不過你這個還是很有趣... 忘記講. XDDD
yoyun10121  : 最大的問題還是參數的精確性, 你是預設輸入的參數都93F 03/05 23:22
yoyun10121  : 無限準確, 這種時候弄個高精細的複雜模型才有意義,
yoyun10121  : 如果參數本身誤差就大的話, 那各種參數的誤差在複雜
yoyun10121  : 模型傳遞累加的結果, 可能和20面骰根本差不了多少
wahaha99    : 所以我猜這是它們兵推用20面骰的原因97F 03/06 00:18
EdwardW     : 雖然看不懂數學模型,但有模擬有推98F 03/06 00:22
schula      : 高手在民間99F 03/06 01:11
drm343      : 美國戰爭學院有一份教怎麼設計 wargame 的文件,裡100F 03/06 03:21
drm343      : 就有提到隨機性是設計上一定要有的,為的是讓參與者
drm343      : 在「未預期狀況」下做出決策,這是為了讓模擬更接近
drm343      : 現實。
driver0811  : garbage in garbage out,所以應該是學人惹事好拿一104F 03/06 09:32
driver0811  : 點真實參數嗎?
wayne1120   : 先推再看106F 03/06 21:55

--
※ 看板: Military 文章推薦值: 0 目前人氣: 0 累積人氣: 63 
分享網址: 複製 已複製
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇