兩個乒乓球機器人對戰,最後球會不會收斂到一個路徑上?
條件缺乏,請補充
===============寫了以後發現太複雜,在這裡先給出簡潔結論==========
問題的答案有些並不確定,這裡給出的答案是條件性的。理論基礎是【計算機博弈】和【閉環控制】
如果乒乓球是先手優勢(我最傾向的情況)或後手優勢(不傾向)的遊戲,則系統勝負是確定的。不會一直打下去。
否則(是平局):如果兵乓球場地是有限的(符合規則),系統最終應該(此處不嚴謹)要落入循環。如果決策策略認為【同樣效果打法中,節能的最好】,則最可能形成單一路線,否則最可能形成多個路徑循環。
此外:如果有空氣干擾,系統將變為具有一定帶寬的隨機,但很難大到影響系統趨勢。空氣干擾不太可能具有混沌性。
===============下面是具體分析===============================
根據題主的描述,我認為問題的合理前提是:
1.【機器人】應該被理解為:輸出穩定;可以執行理論最優方案的個體。
2.環境應是時不變的,即機器人不會沒電,球和拍子不老化損壞。系統干擾的分布不變。
3.【收斂到一個路徑】應該被稍微擴展下,改為形成一個路徑或一個路徑循環。準確的說,就是解收斂到一個點上或一個環路上。
在這個前提下,問題將可以抽象為兩個標準問題:計算機博弈與閉環控制。在第一個問題下,我們將主要討論理想情況下,該遊戲的是否是平局遊戲(即在雙方都不犯錯的情況下,遊戲是先手勝?後手勝?平局?),並且遊戲的解空間是否是有限的。在閉環控制問題下,我們將主要考慮空氣等擾動對系統構成的影響,已經系統對這個是否是敏感的。
【首先是博弈部分】簡化起見,我們先去除空氣干擾,並假定機器人輸出是精準的,我們在後面閉環部分會再考慮。如前所述,我們主要會討論兩個方面,第一是先手優勢。
首先,如果系統是先手優勢(或者劣勢)的,在雙方均採取最優策略時,輸贏將是一個固定套路(或是若干個套路之一)。這主要取決於系統的第一個周期,也就是發球對問題的影響。比賽中我們了解到,發球對勝負的影響是巨大的。
【就直覺上來說,我認為系統應該是一個先手優勢的系統,並且這個優勢程度遠遠大於各種隨機因素的干擾。】
為什麼?這裡我們使用一些不是那麼嚴謹的工程技巧來推理:
1.首先,如果我們想說一個遊戲不是後手優勢的,可以通過討論先手方可否故意使得自己進入後手的狀態。比如說足球,我傾向的是足球絕對不是後手優勢,因為我可以通過一上來的回傳來規避掉所有開場可能發生的特殊事件,並且等待對方陣型調整好後,偽造出我剛剛防守成功的狀態。那乒乓球呢?我們知道乒乓球在發球中主要受到的限制,是發球過程中,無法給球橫向速度及旋轉(規則規定必須托球垂直拋),則問題演變為「乒乓球比賽勝利是否和球速與旋轉顯出宏觀的正相關「,如果是,則追求極限速度,也就是需求對方回球的原速度提供的動能是有意義的。否則,我們可以認為發球是可以為造出後手情況的。【這裡我們假定無關(是合理的),以便繼續討論平局情況】。
2.然後我們討論平局出現的條件。一種比較常見的平局條件是,我可以通過時間,逐漸減小先手的影響(甚至消除影響),並且在有限的步數內,沒有先手必勝策略(工程上成立,數學上想成立還有幾個條件,這裡不詳細說了。這個是這個問題中,目前無法定論的事情,就我對乒乓球的理解,我傾向於先手優勢,【為了繼續討論,我們先假定平局】。
====================太累了,下面先給提綱,明天回來填坑===============
3.如果是平局,先證明有界,因為有界的話很可能是循環
4.討論解在有界(且連續)情況下,是循環,還是趨近於某點
【然後就是誤差分析】
1.定性討論誤差大小,得到不大的結論
2.討論是否具有混沌特性,以確定微小誤差影響(結論無混沌)
3.討論系統的穩定性。結論為系統穩定。
4.討論誤差下,系統收斂於點還是循環。結論是我也不知道
我覺得現在的比賽已經很收斂了。
發短球-&>擺短-&>有人失誤, 挑打起來-&>對拉弧圈-&>有人失誤,一球結束。
如果機器人完全不犯錯, 那就會在擺短這個路徑上無限循環。
現實中不會,至少現實中就沒有永遠不變的東西。
理想情況下,不會,但不是絕對不會。很多人說理想情況下會,這是錯的。因為混沌現象比想像中更容易出現。所謂混沌可以理解為無限不循環,就是不收斂到一個周期性路徑上。
無論是現實情況還是理想情況,無限不循環的情況都要多於無限循環的情況。如同在數軸上戳中一點,其數值為無理數的概率是100%,為有理數的概率是0%。
比如:單擺是無限循環的,而雙擺就成了無限不循環。雙星運動是無限循環的,但三星運動(也就是三體)是無限不循環的。
先舉雙擺的例子,因為這是最簡單形成混沌的情況。
單擺:由一根不可伸長、質量不計的繩子,上端固定,下端系一個質點的裝置。
雙擺:是一個擺的支點裝在另一擺的下部所形成的組合物體。雙擺有兩個擺角,所以有兩個自由度。雙擺是多自由度振動系統的最簡單的力學模型之一,它也是一種混沌實例。
我曾用程序模擬過雙擺,見:混沌圖像---雙擺的遊盪如下圖:
理想情況下雙擺通常是混沌的,即無限不循環,無法收斂到一個路徑上。沒辦法找到一個周期N,使雙擺盪了N次之後,回到某個已經發生過的狀態。但並不是所有的雙擺運動都是非周期性的,某些情況下它會有周期性。
理想情況下雙擺通常是混沌的,即無限不循環,無法收斂到一個路徑上。沒辦法找到一個周期N,使雙擺盪了N次之後,回到某個已經發生過的狀態。但並不是所有的雙擺運動都是非周期性的,某些情況下它會有周期性。再看三體運動:三體也是混沌,但也有幾種特殊情況,它們的軌跡是固定的,有周期的。
理想情況下兩個乒乓球機器人對戰,有沒有可能出現周期性?即在若干個回合之後,回到某個已經發生過的狀態?這真得很難實現,你想單單一個機器人手臂,至少需要三個部件:上臂、下臂、手板。這就比雙擺複雜了,單就一個機器人手臂就能出現混沌現象,再加上另一個機器人手臂,再加上一個乒乓球。我想這很難得出一組參數設置,使其收斂到一條周期性的路徑上,從而不出現混沌。
--------------------------------------------------------
剛看到一個二維乒乓球的程序,見:Shadertoy BETA
可以將該問題進一步簡化:給定一個矩形,從矩形內一點發出一條光線,光線碰到矩形的邊會發生反射,這樣一直進行(反射)下去。經過若干次反射後,光線會經過最初的那一點嗎?
可以將該問題進一步簡化:給定一個矩形,從矩形內一點發出一條光線,光線碰到矩形的邊會發生反射,這樣一直進行(反射)下去。經過若干次反射後,光線會經過最初的那一點嗎?網上搜索了下答案:關於矩形內反射的一個問題,有關「周期軌道」.給定一個矩形,從矩形內一點發出一條光線,光線碰到矩形的邊會發生反射,這樣一直進行(反射)下去.裡面提到:
每次反射時相對於鏡面做矩形的對稱圖形,在這個對稱圖形中,光線好像直接穿過鏡面,直線前進.如果在實際情況中,從(x,y)出發的光線回到最開始的位置,那麼在那個鏡面對稱的世界中,光線到達了(x+mA,y+nB)的位置,其中(A,B)分別是矩形的寬和高,而m,n是兩個正整數.
這樣,這條虛擬直線的斜率,也就是光線出發時的斜率是
nB/(mA)=(n/m)*(B/A)
也就是說,是B/A的有理數倍數.
所以,如果出發時的斜率是B/A的無理倍數,這條光線就永遠不會回到出發點,而是稠密地經過矩形的每一點近旁.
前面提到:「數軸上戳中一點,其數值為無理數的概率是100%,為有理數的概率是0%」,所以就這個程序中,乒乓球路徑收斂的概率為0。
發幅我用程序生成的圖像,射線在正方形內的路徑:
不會,真正智能的情況下,我覺得機器人對戰的結果應該是秒殺。
當然這個問題必須存在很多假定:
1,機器人的運動速度是不是無限的。
2,機器人的計算速度是不是無限的。
1,機器人的運動速度應該是有限的。——如果知道對方的運動速度極限,應該可以計算到在當前位置上能照顧多大範圍的檯面。——如果機器人不能覆蓋全檯面,那麼只要根據對方機器人當前的位置計算出其不能達到的盲點,對準盲點方向擊球,即可穩定得勝,此為秒殺之一。
但,如果此機器人的速度被設計為可以從場上任何地方運行到其他地方,覆蓋全檯面的情況,那麼可以認為速度無限。——假定速度無限,我們就需要考慮第二點。
2,機器人的計算速度是不是無限。機器人需要用視頻來識別球的方位與旋轉,然後指揮自己的傳動機構擊球,精確的識別球的方位,速度,尤其是識別旋轉方向與旋轉速度,這是需要時間的。如果該演算法的時間不可忽略,那麼——機器人不會出錯這一點就被推翻了,因為通過視頻判斷對方來球的旋轉方向旋轉速度在時間限定的前提下可能出錯。
通常我們傾向於假定機器人永遠不會出錯,而機器人只有具備無限的計算速度才能保證不出錯。不過具體而言,攝像頭的解析度不是無限的,圖像識別的準確率不是無限的,傳動機構的運行速度也不是無限的。
所以,乒乓球機器人可以從演算法上知道對方的局限,根據局限迅速的識別出對方可能產生錯誤的情況,由此作出突破,在真實的情況下,這可能就達到秒殺。——機器人只要對來球的判斷存在失誤,就可能被另外一方秒殺。路徑收斂根本不會發生。如果是在一個模擬程序里估計不少時候會變成這樣,現實里不可能
"我的乒乓機器人擁有最強的進攻,任誰也接不到!我的乒乓機器人擁有最強的防守,多麼刁鑽的球都能打回去!"
"那兩個。。。"
如果你的機器人是為了持續的打下去,可能球路會穩定在一定範圍內。。比如都平推,適當微調
不過替主貌似是問對戰,如果雙方程序/戰術一樣得話。球路可能會形成某種循環。。我方機器人發了一個強下旋球,在對面台上的落點無限接近球網,並且觸台後由於下旋直接向後懟到球網上了
請接發
我把問題理解為「兩個水平完全相同的頂級高手的對戰」。
先手甲發球,擦邊球,乙救球,然後兩人大角度,快節奏,球被不斷加速(想像一下對撞機),再打就要出台了(重力加速度是g嘛),不得不退台,球的路線被提高,然後,球的速度越來越快,上台扣殺,扣啊扣啊,球被不斷加速,上台扣殺,前進扣殺……如果球不爆,拍不會打穿的話能逼近光速 。/手動笑淚
(初步寫到這兒吧)
我又想了一會兒覺得會這樣:
甲發擦邊球,擦到對手底邊,乙回球,回到對手區擦底邊,甲又回球回到底邊,效果就是倆人在慢悠悠的挑球,球路與球台相切,倆人覺得實在太沒意思了,甲方終於打破僵局將球挑到對方側邊,當然這其中球的轉速已非常可怕,球的弧線已「不可思議」,然後乙早已按捺不住熱血沸騰使出「電光一閃」(沒錯,乙是皮卡丘)將球回到對方同側擦邊,甲快速擊球將球回到對方異側擦邊,沒錯,戰鬥已經開始變得快如閃電了,乙回球下蹲式砍球,球擦邊後向上飛出,甲一板暴扣(感覺球拍都快被撕裂了)擦邊,乙迅速救球,球幾乎水平飛向對方側邊,甲也將球回到乙區同側擦邊,然後球路高高低低,水平豎直,大弧線,球拍撕心裂肺,殺啊殺殺啊殺,球路如閃電,與球台相切,乒乒乓乓……能被加到光速……
一板下去撞出來一個黑洞也說不定……/手動笑淚
我感覺會是兩邊無限擦網......
如果演算法中有隨機因素就有可能不會
如果題主寫過五子棋對弈的AI(計算位置權重),會發現,在權值的相同的位置隨機下子,下出的局面是不一樣的
這都不怕,就怕倆機器人玩上了!它挑一下球它挑一下....它挑一下它挑一下....它挑一下它挑一下.....QAQ
我的機器人太強力,會把球打爆的
為什麼你不去問問程式猿呢?
一看樓上好多就是乒乓球初級選手,打乒乓球不在於關注自己的打法,球速再快,旋轉再強也很容易被接回來,所以關鍵在於觀察對方。觀察對方的狀態給予措手不及,比如一左一右,突然來個兩左一右,比如假動作,比如殺球動作改削球,比如突然搶攻,比如冒險殺短球,比如突然直拍反打。總之,策略很重要。而這個策略,往往不能是固定套路,而是一個隨機的,可能是即興的,所以需要隨即模擬,一旦隨機模擬,就無法出現回歸到固定路線的情況。
不會,因為重複性的東西是被限制的,只能無限接近
取決於演算法的智能程度?
在模擬程序或者理想情況下應該是可能的
在實際情況中,空氣流動、球台形變之類的微擾能造成多大影響不確定,不過短暫的平衡(即收斂)應該是存在的。
不會,一個物體能夠精確的在一個重複的軌道上運行,是要有很強的約束的,如果在一條管道里,一致是能做到的,如果是在空氣中,空氣的任何一點擾動都會影響球的狀態,速度受影響,轉動受影響,在撞到球拍時如果是正膠,變化會受膠粒的伸縮影響,反膠上不同的力量造成的轉動也是不一樣的,就讓兩個機器一直推擋,保持動作不變,最終也會由於球的狀態不穩定,每次都會打在拍子的不同部位,球的軌跡也不會一樣的。真空中操作,一樣的,由於能量的轉換,熱力學第二定律的影響,球的軌跡如果保持不變,那由不是說一個體系中熵值一直不變?永動機?
推薦閱讀: