国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

算法與數據結構 ? 來源:機器之心 ? 作者:張諸俊 ? 2020-09-03 10:48 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

我們可以構造如下圖的 2D 游戲框架

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

,對應的修改后的框架如下。

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

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

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

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

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

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

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

上圖是 alternation 部件的結構。該部件中包含兩個 open-close door 部件,其中一個 door 處于打開狀態,另一個處于關閉狀態。不妨假設現在上方的 door 是打開的,下方的 door 是關閉的。角色從左上進入 switch 部件,它只能通過上方的 open-close door 的 traverse 路徑,然后再通過 close 路徑,這樣上方的 door 就被關閉,接著角色通過下方 open-close door 的 open 路徑,這樣下方的 door 就被打開。可以看到,每次角色通過 alternation 部件后,兩個 open-close door 部件的狀態就會翻轉,這樣一來,角色就會從兩個出口交替離開。也就是說,當角色第一次進入 alternation 部件時,它會從下方的出口離開,當角色第二次進入時,它會從上方出口離開,以此類推。 現在我們就可以用例子來說明如何構造 PSPACE-hard 框架,對于公式

2D 游戲的框架如下圖

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

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

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

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

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 存儲器
    +關注

    關注

    39

    文章

    7739

    瀏覽量

    171681
  • Switch
    +關注

    關注

    1

    文章

    542

    瀏覽量

    61768

原文標題:從小玩到大的超級瑪麗,計算復雜性是怎樣的?

文章出處:【微信號:TheAlgorithm,微信公眾號:算法與數據結構】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    蘑菇車聯與LG電子達成戰略合作

    近日,蘑菇車聯(MOGOX)與全球科技和電子領導企業LG電子達成戰略合作,雙方將圍繞自動駕駛車輛部署與運營、數字道路基礎設施建設及城市智能治理等領域加強業務協同與合作,聯合拓展中韓及全球自動駕駛市場。蘑菇車聯總裁付強、LG電子CTO本部副總裁KIM HAKSEONG出席簽
    的頭像 發表于 02-04 09:40 ?353次閱讀

    過采樣技術如何提高ADC的動態性能

    你是否也遇到過分辨率不足、噪聲過高的問題?在高速、高精度的信號采集場景中,ADC的動態性能往往成為系統瓶頸。其實,解決方案可能比你想象的簡單——過采樣技術,正在悄悄改變游戲規則。
    的頭像 發表于 12-03 10:27 ?5177次閱讀
    過采樣技術如何提高ADC的動態性能

    礦山機械應急動力:超級電容抗振耐造,適配復雜工況

    在礦山機械應急動力領域,超級電容憑借其抗振耐造、適配復雜工況的特性,成為保障設備穩定運行、延長使用壽命的理想選擇,以下從技術特性、應用場景、優勢體現、案例支撐四個方面展開分析: 一、超級電容的技術
    的頭像 發表于 12-02 14:32 ?582次閱讀
    礦山機械應急動力:<b class='flag-5'>超級</b>電容抗振耐造,適配<b class='flag-5'>復雜</b>工況

    日照市領導一行到訪蘑菇車聯調研

    9月25日,日照市委副書記、市長王新生等領導一行到訪蘑菇車聯,就深化雙方合作、加速人工智能與城市治理、民生服務深度融合開展調研座談。蘑菇車聯創始人兼CEO朱磊陪同調研并參與座談。
    的頭像 發表于 09-30 11:30 ?1012次閱讀

    新西蘭-中國友好協會蒞臨蘑菇車聯參觀交流

    2025年9月24日上午,新西蘭-中國友好協會主席麥克·道森代表團一行及北京市東城區相關領導蒞臨蘑菇車聯參觀交流,蘑菇車聯相關負責人陪同接待。雙方圍繞物理世界AI大模型MogoMind、城市級AI網絡建設、L4級自動駕駛車輛性能以及中新科技合作前景等話題展開深入探討。
    的頭像 發表于 09-30 11:28 ?927次閱讀

    蘑菇街 API 接口:開啟時尚電商個性化推薦新潮流

    在當今數字化時代,時尚電商平臺正經歷著前所未有的變革。蘑菇街作為中國領先的時尚社交電商平臺,憑借其創新的 API 接口,正在引領個性化推薦的新潮流。這篇文章將逐步解析蘑菇街 API 接口的核心
    的頭像 發表于 09-04 15:19 ?691次閱讀

    超級精靈再進化 smart發布EHD超級電混技術:每一程,比增程

    ,具備省、順、猛等優勢,并帶來源自奔馳的SSS級體驗,每一程,比增程成。 2026款smart #1 BRABUS性能版正式上市,官方指導價24.99萬元,為密友帶來專業性能圈入場券。 8月29日,smart超級精靈日在成都車展舉辦,正式發布了EHD
    的頭像 發表于 09-02 15:30 ?731次閱讀
    <b class='flag-5'>超級</b>精靈再進化 smart發布EHD<b class='flag-5'>超級</b>電混技術:每一程,比增程<b class='flag-5'>更</b>成

    超級電容和鋰電池哪個安全性高

    超級電容與鋰電池在安全性能上存在顯著差異,前者因物理儲能機制更穩定,后者因化學反應易引發熱失控,需復雜的防護系統。
    的頭像 發表于 08-14 09:13 ?2442次閱讀
    <b class='flag-5'>超級</b>電容和鋰電池哪個安全性高

    浮思特 | 紅外熱成像儀可以檢查什么?用途比你想的還多!

    提到紅外熱成像儀,很多人第一反應可能是“軍事用的高科技設備”或者“檢測溫度的高級儀器”。其實,它早就走進了工業、建筑、醫療等各種領域,而且用途真的超乎你的想象。1.電氣設備巡檢如果你是電氣工程
    的頭像 發表于 08-12 10:03 ?1165次閱讀
    浮思特 | 紅外熱成像儀可以檢查什么?用途<b class='flag-5'>比你想</b>的還多!

    Linux權限體系解析

    你真的了解Linux權限嗎?大多數人只知道rwx,但Linux的權限體系遠比你想象復雜和強大。今天我們深入探討Linux的12位權限體系,這是每個運維工程師都應該掌握的核心知識。
    的頭像 發表于 07-23 16:57 ?866次閱讀

    Energy Absolute一行參訪蘑菇車聯

    近日,東南亞最大電動商用車制造商Energy Absolute一行參訪蘑菇車聯(MOGO.AI),深入了解蘑菇車聯在AI大模型、AI網絡與自動駕駛領域的融合應用實踐。圍繞自動駕駛巴士業務
    的頭像 發表于 06-16 17:36 ?1050次閱讀

    蘑菇車聯與日照市達成戰略合作

    近日,日照市與蘑菇車聯信息科技有限公司(以下簡稱 “蘑菇車聯”)簽署戰略合作協議。雙方圍繞AI大模型在自動駕駛及智慧交通領域的應用賦能開展深度合作,助力日照市成為全國自動駕駛智慧旅游標桿城市,打造AI網絡與自動駕駛融合應用“日照樣板”。
    的頭像 發表于 05-30 15:40 ?874次閱讀

    電容為何會爆炸:揭秘背后的原因

    電容作為電子設備中的重要元件,其穩定性和可靠性直接關系到整個系統的運行安全。然而,在某些情況下,電容可能會突然爆炸,給設備帶來嚴重的損害,甚至威脅到人員的安全。那么,電容為什么會爆炸呢?原因可能比你想象
    的頭像 發表于 05-22 15:18 ?5125次閱讀
    電容為何會爆炸:揭秘背后的原因

    愚人節特輯:AI比你想象

    AI神跡千千萬萬,仔細一看全完蛋
    的頭像 發表于 04-03 10:29 ?1024次閱讀
    愚人節特輯:AI<b class='flag-5'>比你想象</b>得<b class='flag-5'>更</b>蠢

    FPV蘑菇頭天線:為何成為FPV愛好者的首選

    深圳安騰納天線|FPV蘑菇頭天線:為何成為FPV愛好者的首選
    的頭像 發表于 03-17 09:06 ?2099次閱讀