欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

吃蘑菇長大的「超級瑪麗」比你想象的更復(fù)雜

算法與數(shù)據(jù)結(jié)構(gòu) ? 來源:機器之心 ? 作者:張諸俊 ? 2020-09-03 10:48 ? 次閱讀

吃蘑菇長大的「超級瑪麗」比你想象的更復(fù)雜。

「超級瑪麗」(Super Mario Bros.)應(yīng)該算是紅白機上最著名的游戲了,大部分 80 后、 90 后應(yīng)該都玩過吧。對于這樣經(jīng)典的游戲,「無聊」的游戲計算復(fù)雜性研究人員當(dāng)然不會放過啦。2015 年,Aloupis, Demaine, Guo 和 Viglietta [1] 證明了「超級瑪麗」屬于 NP-hard。2016 年,Demaine , Viglietta 和 Williams [2] 證明了「超級瑪麗」屬于 PSPACE-complete。 今天我們就來詳細(xì)介紹一下關(guān)于這個游戲的計算復(fù)雜性的研究。在文中我們將看到如何設(shè)置地圖使得超級瑪麗能夠模擬一些計算困難的問題,從而說明該游戲在計算理論的角度下是難解的。 本篇的第 1 節(jié)介紹一個 NP-hard 框架;第 2 節(jié)介紹應(yīng)用框架證明「超級瑪麗」屬于 NP-hard;第 3 節(jié)介紹一個 PSPACE-hard 框架;第 4 節(jié)介紹「超級瑪麗」屬于 PSPACE-hard 的歸約;第 5 節(jié)說明如何使歸約更完善;第 6 節(jié)進行總結(jié)。 1、NP-hard 框架 我們先來介紹一個用于證明一類 2D 游戲困難性的框架,這個框架來自文獻(xiàn) [1] 。我們假設(shè)在這類 2D 游戲中,玩家操控一個角色在地圖上移動,玩家的目的是使該角色到達(dá)地圖上的某個位置。比如 SMB 的目標(biāo)就是讓瑪麗從出生點到達(dá)旗桿,再比如之前介紹過的華容道玩具的目標(biāo)就是讓特定的滑塊移動到出口,再再比如 STG 游戲就是操縱可以發(fā)射子彈的角色避開敵方彈幕和地形到達(dá)關(guān)底。 框架使用的歸約問題是經(jīng)典的 3-SAT 問題(3-conjunctive normal form satisfiability,3 - 合取范式可滿足問題)。該問題指的是給定一個由若干子句的合取構(gòu)成的公式,其中每個子句包含 3 個項,判斷是否存在對變量的賦值使得該公式可滿足。我們希望通過使用 2D 游戲模擬 3-SAT 問題,從而將 3-SAT 歸約到 2D 游戲。 我們用一個例子來說明如何進行這樣的模擬。對于公式

我們可以構(gòu)造如下圖的 2D 游戲框架

玩家操控角色從 start 部件出發(fā),然后進入一個對應(yīng)變量 x 的 variable 部件,玩家需要在兩個出口之間選擇一個,這模擬了對變量 x 的取值。假設(shè)選擇對 x 賦值為 T,那么玩家操控的角色就從 variable 部件的左側(cè)出口離開,接下來角色可以到達(dá)兩個 clause 部件并打開這兩個部件,這模擬了?和這兩個子句中的 x 為 T 后整個子句就為 T。接下來無論選擇的是從 variable 部件的左側(cè)出口還是右側(cè)出口離開,角色都將進入到第二個 variable 部件,繼續(xù)對變量 y 的賦值進行模擬。當(dāng)所有變量的賦值都確定后,角色進入到驗證過程(check in 路徑),角色需要從右側(cè)依次通過所有的 clause 部件才能最終達(dá)到最左側(cè)的 finish 部件。而每個 clause 部件只有當(dāng)之前角色從上方進入并打開至少一次后,才允許角色從右側(cè)進入并通過。 ? 為了實現(xiàn)這個 NP-hard 框架,我們需要在 2D 游戲中實現(xiàn) 5 個部件,分別是?start、finish、variable、crossover、clause,其中 crossover 部件用于處理框架中路徑的交叉。容易驗證,如果某個 2D 游戲能夠?qū)崿F(xiàn)這些部件,那么就能用這個游戲模擬 3-SAT 的任意實例,也就是說 3-SAT 可以歸約到這個 2D 游戲,從而就說明這個游戲就屬于 NP-hard 了。 ? 不過,有時候在游戲中直接構(gòu)造 variable 和 clause 部件可能會比較復(fù)雜,所以我們可以對這個框架進行一些修改,使得部件更加原子化一點。修改之后的框架含有?start、finish、turn、switch、merge、one-way、crossover、door?這些部件。start 和 finish 部件的含義與修改之前是一樣的;turn 部件用于路徑的轉(zhuǎn)向;switch 和 merge 部件其實是同樣的,通常是一個三叉路口;one-way 部件保證游戲角色只能向一個方向移動,功能類似單行道;door 部件包含兩條互不連通的路徑,當(dāng)一條路徑被角色通過后(開門),角色才能通過另一條路徑。 ? 對于公式

,對應(yīng)的修改后的框架如下。

游戲角色還是從 start 部件出發(fā),接著進入 switch 部件選擇變量的賦值,賦值后可以打開對應(yīng)的 door 部件,然后回到 merge 部件,接著選擇下一個變量的賦值。直到所有變量的賦值被確定進入子句驗證過程,角色進入右下方的 switch 部件,然后它需要在三個出口中選擇一個已經(jīng)被打開的 door 部件通過。當(dāng)所有子句都驗證完成后,角色最終進入 finish 部件。 2、超級瑪麗屬于 NP-hard 我們使用上一節(jié)的框架來說明「超級瑪麗」屬于 NP-hard,為此我們需要在游戲中實現(xiàn) start、finish、variable、crossover、clause 這些部件,我們逐一進行說明。

start 部件:瑪麗的出生點有一個蘑菇,吃了之后可以變成大瑪麗。 finish 部件:需要以大瑪麗的狀態(tài)從左下方進入部件,撞掉一個磚塊后才能到達(dá)旗桿;如果以小瑪麗的狀態(tài)進入則不能通關(guān)。

variable 部件:瑪麗從上方進入部件后,可以在左下和右下兩個出口中選擇,一旦決定后就不能再返回了。

crossover 部件:該部件中有兩條交叉的路徑,第一條由左上至右上,第二條由左下至中間上方。在第一條路徑中,大瑪麗進入后需要碰一下怪物變成小瑪麗后才能通過狹小的通道,注意右上方的問號方塊中有一個蘑菇,瑪麗吃了后可以變回大瑪麗狀態(tài)。在第二條路徑中,瑪麗達(dá)到底部后一路向上,注意由于處于大瑪麗狀態(tài),他可以撞開磚塊后繼續(xù)向上移動,但卻不能進入第一條路徑。

clause 部件:該部件中瑪麗需要從最左側(cè)到達(dá)最右側(cè)才算是驗證成功,但是注意到右側(cè)有足夠多的火墻,這使得瑪麗即使以最快的速度移動也無法避開。因而我們需要使用游戲中另的一個元素——無敵星星,部件中的三個問號方塊都有無敵星星,如果瑪麗吃到星星就可以穿過火墻。因此,只有當(dāng)這三個問號方塊中至少有一個方塊被撞開過,瑪麗才能在驗證時中通過 clause 部件。 現(xiàn)在所有的部件都實現(xiàn)了,而且歸約顯然可以在多項式時間內(nèi)完成,所以我們就有以下定理 定理 1:「超級瑪麗」屬于 NP-hard。 3、PSPACE-hard 框架 接著,我們介紹一個用于證明 2D 游戲?qū)儆?PSPACE-hard 的框架,這個框架來自文獻(xiàn) [1] 和 [3]。它使用的歸約問題是 TQBF 問題(True Quantifified Boolean Formula),指的是問某個含有「存在」和「任意」符號的邏輯公式是否可滿足,比如問公式的真值是否是 T。

這里我們對原始論文中的框架作了一些修改,希望能夠幫助理解。和之前 NP-hard 框架一樣,我們需要定義一些部件。NP-hard 框架中討論的部件我們就不再重復(fù)定義了,這里我們主要定義兩個部件,open-close door 和 alternation 部件。

上圖是一個 open-close door 部件,它包含三條平行的、不連通的路徑,從上到下依次為 open 路徑、traverse 路徑和 close 路徑。traverse 路徑上有一扇門,只有當(dāng)門在打開的狀態(tài)下,角色才能穿過 traverse 路徑;當(dāng)角色通過 open 路徑時,它可以打開這扇門;而當(dāng)角色通過 close 路徑時,它必須關(guān)上這扇門。 這個 open-close door 相當(dāng)于是一個狀態(tài)存儲器,門的開閉相當(dāng)于 0 和 1,每一個 open-close door 部件保存了 1bit 的信息。這也是為什么加上這個部件后,框架的復(fù)雜性可以到達(dá) PSPACE-hard。 接著我們介紹 alternation 部件,它其實是一個輔助部件,用于簡化框架的描述。我們可以用其他部件的組合來實現(xiàn) alternation 部件,不必真的在 2D 游戲中實現(xiàn)它。

上圖是 alternation 部件的結(jié)構(gòu)。該部件中包含兩個 open-close door 部件,其中一個 door 處于打開狀態(tài),另一個處于關(guān)閉狀態(tài)。不妨假設(shè)現(xiàn)在上方的 door 是打開的,下方的 door 是關(guān)閉的。角色從左上進入 switch 部件,它只能通過上方的 open-close door 的 traverse 路徑,然后再通過 close 路徑,這樣上方的 door 就被關(guān)閉,接著角色通過下方 open-close door 的 open 路徑,這樣下方的 door 就被打開??梢钥吹?,每次角色通過 alternation 部件后,兩個 open-close door 部件的狀態(tài)就會翻轉(zhuǎn),這樣一來,角色就會從兩個出口交替離開。也就是說,當(dāng)角色第一次進入 alternation 部件時,它會從下方的出口離開,當(dāng)角色第二次進入時,它會從上方出口離開,以此類推。 現(xiàn)在我們就可以用例子來說明如何構(gòu)造 PSPACE-hard 框架,對于公式

2D 游戲的框架如下圖

角色從 start 部件出發(fā),進入對應(yīng)變量 x1 的部件,由于限制 x1 的量詞是「任意」所以這里是 alternation 部件,因為是第一次進入,角色只能選擇從對應(yīng) x1 的出口離開,接著角色打開所有對應(yīng)于 x1 的 open-close door,并關(guān)閉所有對應(yīng)于 非 x1 的 open-close door。完成這些后角色來到 merge 部件,之后進入對應(yīng)變量 x2 的部件,由于限制 x2 的量詞是「存在」所以這里是 switch 部件。就這樣,角色完成所有變量的一次賦值后進入驗證過程,這個驗證過程與修改后的 NP-hard 框架是類似的。完成一次驗證后,角色進入中間上方的 alternation 部件,注意這時角色是第一次進入該 alternation,所以角色只能從左側(cè)出口離開,接下來角色將再次進入對應(yīng)于 x3 的 alternation 部件,這時角色只能選擇對應(yīng)于 非 x3 的出口,在操作完對應(yīng)的 open-close door 后又一次進入驗證過程,這其實就模擬了「...... 對任意 x3 的賦值公式的值為 T」。所以,當(dāng)公式中有 n 個「任意」量詞時,框架中的驗證過程可能會被通過 2^n 次,只有當(dāng)角色完成了所有的驗證過程后,才能最終到達(dá) finish 部件。 容易驗證,這個框架模擬了 TQBF 問題。因此,如果 2D 游戲中能實現(xiàn) start、finish、turn、switch、merge、one-way、crossover、open-close door 這些部件,那么這個 2D 游戲就屬于 PSPACE-hard。 另外有一點需要提一下,NP-hard 框架中的部件的每條路徑只會被角色通過一次,而 PSPACE-hard 框架中的路徑就可能會被通過很多次了,這在構(gòu)造部件時是需要注意的。 4、超級瑪麗屬于 PSPACE-complete 為了證明「超級瑪麗」屬于 PSPACE-hard,我們需要在游戲中實現(xiàn) start、finish、turn、switch、merge、one-way、crossover、open-close door 部件,其中很多部件是非常簡單的,就不提了,這里就介紹一下 crossover 和 open-close door。 注意,這里與 NP-hard 證明中不同的是,瑪麗總是處于小瑪麗狀態(tài)的。

上圖就是 crossover 部件,瑪麗需要以最快的速度移動才能從左上到達(dá)右下(或從右上到達(dá)左下)。容易發(fā)現(xiàn),這兩條路徑不會互相干擾,而且瑪麗可以無限次地通過這個部件。

上圖是一個 open-close door 部件。open、traverse 和 close 三條路徑在圖上已經(jīng)標(biāo)出來了。該部件中刺猬怪物的所在位置表示門的開閉,上圖中門處于打開狀態(tài)。當(dāng)瑪麗從 close 路徑進入時,由于刺猬的存在瑪麗無法通過,所以它必須到達(dá)磚塊下方,等刺猬移動到磚塊上方時,在合適的時機撞擊磚塊,使得刺猬跳過一個方塊到達(dá)左側(cè),而后才能通過 close 狀態(tài)。注意這時門就處于關(guān)閉狀態(tài)了,因為瑪麗無法通過 traverse 路徑。下面的圖展示了具體的過程

現(xiàn)在,我們已經(jīng)基本證明了超級瑪麗屬于 PSPACE-hard。而又因為「超級瑪麗」游戲的所有狀態(tài)都能夠存儲在多項式空間內(nèi),所以「超級瑪麗」屬于 NPSPACE。再根據(jù) Savitch's Theorem,NPSPACE=PSPACE,「超級瑪麗」就屬于 PSPACE-complete 了。 5、完善歸約 在給出最后的定理前,歸約中的兩個小 bug 可能需要再討論一下。 一個 bug 是 open-close door 部件中央的火球。在「超級瑪麗」原始游戲中,似乎沒有像這樣將火墻(球)放置在空格中的例子。不過這個問題比較好解決,只要把中央的火球替換成下面這樣的一大排火墻就行了。這樣一來,刺猬的移動不受影響,但是瑪麗無法通過這些火墻。

另一個 bug 是關(guān)于刺猬怪物的生成。在歸約中我們需要將刺猬放置在指定的位置,但在「超級瑪麗」原始游戲中,一個在天空中移動的怪物會有規(guī)律地拋出怪物蛋,當(dāng)?shù)奥涞睾蟛判纬纱题?。?dāng)然,這個問題的解決方法也已經(jīng)在論文中給出了。我們可以將所有 open-close door 放到整個地圖的上部排成一行,當(dāng)游戲開始時瑪麗在這些 door 的上方移動,空中的怪物有規(guī)律地拋出刺猬,這些刺猬將通過一些漏斗進入各個 door 部件。我們可以設(shè)置合適的距離,使得即使瑪麗以最快的速度移動,每個 door 都會有一個刺猬進入。完成這些之后,瑪麗可以踩死空中的怪物,然后就進入上面框架中提到的 start 部件。 處理掉這兩個小 bug 后,我們終于能放心地得到下面的定理了 定理 2:「超級瑪麗」屬于 PSPACE-complete。 6、總結(jié) 我們介紹了兩個用于證明 2D 游戲計算復(fù)雜性的框架,并詳細(xì)解釋了如何用這兩個框架討論「超級瑪麗」的計算復(fù)雜性?!赋壃旣悺棺罱K被證明是屬于 PSPACE-complete。事實上,文獻(xiàn) [2] 還討論了一些含有其他元素(比如使用管道移動、獲得金幣獎勵生命)的「超級瑪麗」游戲的復(fù)雜性。 如果要評選最有趣的關(guān)于電子游戲計算復(fù)雜性的論文,我相信「超級瑪麗」這個肯定能上榜。最后附一下論文的截圖

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 存儲器
    +關(guān)注

    關(guān)注

    38

    文章

    7531

    瀏覽量

    164420
  • Switch
    +關(guān)注

    關(guān)注

    1

    文章

    533

    瀏覽量

    58503

原文標(biāo)題:從小玩到大的超級瑪麗,計算復(fù)雜性是怎樣的?

文章出處:【微信號:TheAlgorithm,微信公眾號:算法與數(shù)據(jù)結(jié)構(gòu)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    99%的人都不知道,氣密性測試儀器竟如此簡單!

    大上,但氣密性測試儀器的原理其實非常簡單,甚至比你想象的要容易理解得多。想象一下,給氣球充氣:當(dāng)你往氣球里吹氣時,氣球會逐漸膨脹。如果你捏住氣球的吹氣口,氣球就會
    的頭像 發(fā)表于 02-06 14:19 ?154次閱讀
    99%的人都不知道,氣密性測試儀器竟如此簡單!

    復(fù)雜的層次圖清楚

    電子原理圖用于表示電路的連接關(guān)系和組成元件,通常擁有非常復(fù)雜的層次結(jié)構(gòu)。一.分層結(jié)構(gòu)電子原理圖通常由多個層次組成,從頂層的電路硬件總體框架到各個模塊之間的互聯(lián),再到底層的器件之間的連接。對于較大
    的頭像 發(fā)表于 02-05 17:05 ?14次閱讀
    讓<b class='flag-5'>復(fù)雜</b>的層次圖<b class='flag-5'>更</b>清楚

    PON不只是破網(wǎng)那么簡單

    。 ? 別急,我知道你在想什么,這聽起來可能有點枯燥,但相信我,這絕對比你想象的要有趣得多! 1 PON,網(wǎng)絡(luò)界的“超級英雄” PON,是指利用點對多點拓?fù)浜头止馄鲗?shù)據(jù)從單個傳輸點傳送到多個用戶端
    的頭像 發(fā)表于 12-04 09:08 ?306次閱讀
    PON不只是破網(wǎng)那么簡單

    惠州市領(lǐng)導(dǎo)到訪蘑菇車聯(lián)調(diào)研

    日前,廣東省惠州市委書記、市人大常委會主任、黨組書記劉吉一行到訪蘑菇車聯(lián),就公司在車路云網(wǎng)絡(luò)、人工智能、智能網(wǎng)聯(lián)汽車、智能網(wǎng)聯(lián)數(shù)據(jù)應(yīng)用等領(lǐng)域的創(chuàng)新科技成果進行調(diào)研。
    的頭像 發(fā)表于 11-22 15:47 ?279次閱讀

    比你想猛!解析天璣9400 最強GPU全面技術(shù)升級

    天璣9400在消費者中的口碑從發(fā)布之初就穩(wěn)步攀升,尤其是在vivoX200和OPPOFindX8系列手機中表現(xiàn)尤為出色。在數(shù)碼測評和玩家的實測中,這款芯片無論是幀率穩(wěn)定性還是發(fā)熱控制,都成為用戶體驗的關(guān)鍵亮點,為旗艦手機帶來了真正的流暢游戲體驗。天璣9400搭載全新頂級12核GPUG925,相較上代擁有超過41%的峰值性能飛躍,在保持與上一代相同的峰值性能下
    的頭像 發(fā)表于 11-07 15:53 ?406次閱讀
    <b class='flag-5'>比你想</b>的<b class='flag-5'>更</b>猛!解析天璣9400 最強GPU全面技術(shù)升級

    編譯器怎么處理同名頭文件

    C語言中的include很簡單,但不是你想象中的簡單。
    的頭像 發(fā)表于 11-05 16:51 ?441次閱讀
    編譯器怎么處理同名頭文件

    維諦技術(shù)(Vertiv):未來HPC,你想象不到的酷炫變革!

    隨著AI技術(shù)的迅猛發(fā)展,高性能計算(HPC)也迎來了新的變革浪潮。在2024全球超級計算機Green500排行榜上,位列前三的超算都采用了“超智融合”的技術(shù)理念。超級大腦+AI,科技新CP引領(lǐng)科研
    的頭像 發(fā)表于 10-30 11:12 ?326次閱讀
    維諦技術(shù)(Vertiv):未來HPC,<b class='flag-5'>你想象</b>不到的酷炫變革!

    嵌入式算青春飯么?

    嵌入式系統(tǒng)開發(fā)并不是傳統(tǒng)意義上的“青春飯”的行業(yè)。這個領(lǐng)域側(cè)重于技術(shù)深度、專業(yè)能力和持續(xù)學(xué)習(xí)的態(tài)度,而非僅僅依賴于年齡或體力。
    的頭像 發(fā)表于 09-25 09:37 ?315次閱讀
    嵌入式算<b class='flag-5'>吃</b>青春飯么?

    各種設(shè)備為什么選超級電容?

    為什么選超級電容?電容器是儲存電荷的常用電子器件,在許多電子設(shè)備中得到了廣泛的運用。由于新時期行業(yè)技術(shù)的迅速發(fā)展,早期的電路結(jié)構(gòu)逐漸被復(fù)雜的電路形式取代,普通的電容器已經(jīng)滿足不了電路運行的需要
    的頭像 發(fā)表于 06-04 09:34 ?343次閱讀
    各種設(shè)備為什么選<b class='flag-5'>超級</b>電容?

    光照LED燈控制蘑菇栽培

    已經(jīng)清楚的是,在蘑菇床栽培中使用 LED 對蘑菇生長具有積極影響,并且各地正在對最佳 LED 照射方法進行研究。我們將解釋使用 LED 進行真菌床培養(yǎng)的好處和效果。 蘑菇與光的關(guān)系 在蘑菇
    的頭像 發(fā)表于 05-11 11:17 ?478次閱讀

    蘑菇車聯(lián)自動駕駛巴士開啟上海嘉定觀光體驗

    蘑菇車聯(lián)信息科技有限公司副總裁楊洛偉的介紹,蘑菇巴士作為全球首款搭載“車路云一體化”系統(tǒng)的自動駕駛前裝量產(chǎn)巴士,采用了平臺融合的最新技術(shù),能夠安全高效地處理各種復(fù)雜路況,滿足城市開放道路、封閉或半封閉園區(qū)等多
    的頭像 發(fā)表于 04-21 14:33 ?1244次閱讀

    鋰電池和超級電容器哪個耐用

    鋰電池和超級電容器都是現(xiàn)代電子設(shè)備中常用的能量存儲設(shè)備,它們各自具有獨特的性能特點和應(yīng)用場景。
    的頭像 發(fā)表于 04-15 15:06 ?1569次閱讀

    保定市委書記黨曉龍與蘑菇車聯(lián)創(chuàng)始人兼首席執(zhí)行官朱磊舉行工作座談

    4月7日,保定市委書記黨曉龍與蘑菇車聯(lián)董事長兼首席執(zhí)行官朱磊舉行工作座談。
    的頭像 發(fā)表于 04-12 09:14 ?730次閱讀

    微軟攜手OpenAI打造超級計算機數(shù)據(jù)中心 預(yù)計耗資超過1150億美元

    在OpenAI內(nèi)部,這個超級計算機項目被賦予了一個充滿想象力的名字——“Stargate”,寓意著它將開啟一扇通往未來人工智能世界的大門。
    的頭像 發(fā)表于 04-01 15:22 ?623次閱讀

    超級電容器的概念是什么?

    甚至上百萬倍;同時超級電容器繼承了傳統(tǒng)電容器高功率密度、充放電時間短、寬溫度范圍、壽命長等優(yōu)點,可反復(fù)循環(huán)使用,與其他儲能技術(shù)相比效率更高、環(huán)保,符合新能源的發(fā)
    的頭像 發(fā)表于 03-22 10:03 ?2380次閱讀
    <b class='flag-5'>超級</b>電容器的概念是什么?