大家好,
前幾天我兒子要求播放“戰艦”的網格紙版本。 每個人有 5 艘“船”,長度分別為 5、4、3、3 和 2 個單位(1 個單位寬)。 “船”被放置在 XY 空間中 10 x 10 的網格上;每艘“船”都有一組獨特的 (x,y) 坐標。 例如,3 個單位“船”中的一個可能具有坐標 (3,4)、(4,4) 和 (5,4)。 不超過一艘“船”可以佔據相同的 (x,y) 坐標。 “船”只能垂直或水平運行——不允許對角線佈局。
然後我們輪流調出坐標對(x,y),看看誰直接撞上了別人的“船”。 我們每個人只有 16 個回合來嘗試擊中(或沉沒)對方的盡可能多的“船”。 當我們經歷這個時,我對自己想,必須有一種更好的方法來最大限度地提高擊中(和/或沉沒)另一個人的“船”的機會,而不是僅僅隨機調用坐標。 當然,您不會調用已經使用過的坐標 (x,y),因為您會知道是否撞到了“船”。
起初,我認為定制設計平台可能是正確的方法,但如果您創建一個 Y 為“命中”(0/1 表示否/是)且 X1 = x 和 X2 = y 坐標的設計(10 級離散數字),平台將生成一個設計,其中它只使用每個 X 和 Y 的高和低電平。 順便說一句,模型項只是 x、y 和交叉項 x*y。 所以,不幸的是,定制設計不起作用。
Full Factorial DOE 平台無法運行,因為它想要運行 100 次(10x10 Factorial),而我們每次只有 16 次運行(嘗試)。
RSM DOE 平台僅適用於高/低電平,輸入 1 和 10 為低/高電平。 CCD 設計選項並沒有真正填充 10 x 10 網格的空間,其中“船”將被放置 - 太多的中心運行無法覆蓋網格空間。
唯一適用於此的其他平台是空間填充設計。 對 x 和 y 使用相同的低/高、1/10 設置以及“命中”作為響應(這將是二進制,0/1 表示否/是),我可以得到一個帶有 (x,y) 配對的 DOE 表填充網格空間。 我不確定空間填充設計方法的最佳選擇是什麼,FFF 或 Uniform,或 Latin Hypercube 等。
我認為更重要的是,DOE 是固定的,它不是“自適應”的,即基於第一次運行的結果,如何修改 DOE 以考慮已知信息。 使用上面的 3 個單位的船坐標,假設我的第一次運行是調用坐標 (3,4),我得到了命中。 知道“船”的佈局是水平的還是垂直的,我的下一個電話根本不會遵循 DOE,而是調用 (3,5), (3,3), (2,4) , 或 (4,4) -- 我會將 x 或 y 增加一個單位,看看結果如何。 以此類推,直到船沉沒或移動到下一個可能的起始坐標。
我想找到一種更科學的方法來生成自適應 DOE,該方法可以優化 16 次運行以生成“命中”。 關閉靜態 DOE 不會這樣做,因為每次運行後,坐標都會“用完”,我會知道它是否命中。 每次運行都會通知 n+1 次後續運行。 據我所知,不存在可以處理此類事情的 DOE,但我也不是該領域的專家。
隨機選擇起點是《戰艦》能做到的最好的嗎? 我不這麼認為,但我很難弄清楚如何擁有一個基本上包含“if/then”語句的自適應 DOE,以便在考慮來自的信息的同時優化我的 16 次嘗試的使用上一步。 擁有一個“適應性強”的 DOE 會很酷,它可以優化您每次運行的選擇,從而最大限度地提高您在 16 次嘗試中獲勝的機會。
感謝討論!,
DS
PS,在搜索 JMP 和“戰艦”時,我確實找到了這個郵政經過@Jordan_Hiller展示瞭如何使用 JMP 玩不同的遊戲,以及@brady_brady寫JSL代碼來實際玩“戰艦”。 很酷! 將很快下載該 JSL!
你好@Jordan_Hiller ,
感謝博客的鏈接,我喜歡這篇文章。
我通常理解他們如何計算一艘船在某個方格中的概率背後的概念——這對於每種船來說都是不同的。 然而,由於棋盤的概率狀態會在每一輪比賽后發生變化,下一個方格的選擇會發生變化,對我來說,這無非是重新優化的空間填充設計,考慮到命中/未命中/船大小/和剩餘的運行次數。
博主能夠生成一個算法,該算法可以在 34 步中進行遊戲,這恰好是船隻佔據的方格數的兩倍。 據推測,有可能生成一個最佳決策路徑,該路徑可以獲得接近 17 步所需的步數。 也許不完全是 17,但非常接近。
當然,ML/AI 方法可以構建一種算法來贏得比賽,但我同意,這太過分了,而不是我真正想要的。 我可能對博客人所做的事情和利用 DOE 的結合更感興趣。 顯然,棋盤的概率密度函數對於決策選擇至關重要。 但是,是否可以將其從純粹的概率計算修改為基於優化空間填充的計算——幾乎就像將董事會的概率函數作為 DOE 的“加權”函數一樣,這樣 DOE 將產生最高可能的命中。 在我看來,與博主的做法相比,首先產生最高命中數然後專注於下沉會導致更快的勝利,後者是先專注於沉沒一艘船,然後再進入狩獵模式。
無論如何,我覺得考慮和思考很有趣,顯然其他人也有!
謝謝!,
DS
有趣的想法,戴德里希!
這是一篇關於這個主題的舊博客文章,有人想出瞭如何計算任何給定遊戲狀態下一艘船在網格的每個方格上的概率。 https://www.datagenetics.com/blog/december32011/之後,您甚至不需要模型,您只需選擇最可能的正方形。 那裡也有一些機器學習項目,但這似乎有點矯枉過正!
約旦