1. 程式人生 > >博弈論進階之Every-SG

博弈論進階之Every-SG

Every-SG

給定一張無向圖,上面有一些棋子,兩個頂尖聰明的人在做遊戲,每人每次必須將可以移動的棋子進行移動,不能移動的人輸

博弈分析

題目中的要求實際是“不論前面輸與否,只要最後一個棋子勝利,那麼就算勝利”

這樣的話,能贏得遊戲必須贏

因為兩個人都頂尖聰明,因此當一個人知道某一個遊戲一定會輸的話,它一定會盡力縮短遊戲的時間,當它知道某一個遊戲一定會贏的話,一定會盡力延長遊戲的時間(畢竟都是為了追求最終的勝利嘛233)

但是!我們怎麼來處理時間的?暴力列舉博弈樹肯定是不可取的,so我們來研究一下這個問題

定義Every-SG遊戲

  • 對於還沒有結束的單一遊戲,遊戲者必須對該遊戲進行一步決策;
  • 其他規則與普通SG遊戲相同

Every-SG遊戲與普通SG遊戲最大的不同就是它多了一維時間

對於\(SG\)值為\(0\)的點,我們需要知道最少需要多少步才能走到結束,
對於\(SG\)值不為\(0\)的點,我們需要知道最多需要多少步結束

這樣我們用\(step\)變數來記錄這個步數

\(step(u) = \begin{cases} 0, & \text{$u為終止狀態$}\\ max\{step(v)\}, & \text{ $sg(u)\neq 0\land v為u的後繼\land sg(v)=0$ }\\ min\{step(v)\}, & \text{$sg(u)=0\land v為u的後繼$} \end{cases}\)

定理

對於Every-SG遊戲先手必勝當且僅當單一遊戲中最大的step為奇數。

定理是顯然的:最大的單一遊戲步數如果是奇數的話那麼肯定是先手取得進行最後一步,否則一定是對手取走最後一個棋子。

例題

這種題目不怎麼好找,到現在也就找到一道

題解

相關推薦

博弈論Every-SG

Every-SG 給定一張無向圖,上面有一些棋子,兩個頂尖聰明的人在做遊戲,每人每次必須將可以移動的棋子進行移動,不能移動的人輸 博弈分析 題目中的要求實際是“不論前面輸與否,只要最後一個棋子勝利,那麼就算勝利” 這樣的話,能贏得遊戲必須贏 因為兩個人都頂尖聰明,因此當一個人知道某一個遊戲一定會輸的話,它

博弈論Anti-SG遊戲與SJ定理

的人 數量 gpo attack log span html 們的 勝利 前言 在上一節中,我們初步了解了一下SG函數與SG定理。 今天我們來分析一下SG遊戲的變式——Anti-SG遊戲以及它所對應的SG定理 首先從最基本的Anti-Nim遊戲開始 Anti-Nim遊戲是這

博弈論Multi-SG

Multi-Nim 從最簡單的Nim模型開始 它的定義是這樣的 有\(n\)堆石子,兩個人可以從任意一堆石子中拿任意多個石子(不能不拿)或把一堆數量不少於\(2\)石子分為兩堆不為空的石子,沒法拿的人失敗。問誰會勝利 博弈分析 這個問題的本質還是Nim遊戲,可以利用SG定理來解釋 通過觀察不難不發現,操作

博弈論SG函數

神奇 不為 mat 定義 巴什博奕 show xor 一起 rmi SG函數 個人理解:SG函數是人們在研究博弈論的道路上邁出的重要一步,它把許多雜亂無章的博弈遊戲通過某種規則結合在了一起,使得一類普遍的博弈問題得到了解決。 從SG函數開始,我們不再是單純的同過找規律等方法

博弈論SG函式

SG函式 個人理解:SG函式是人們在研究博弈論的道路上邁出的重要一步,它把許多雜亂無章的博弈遊戲通過某種規則結合在了一起,使得一類普遍的博弈問題得到了解決。 從SG函式開始,我們不再是單純的同過找規律等方法去解決博弈問題,而是需要學習一些博弈論中基本的定理,來找到他們的共同特點 那麼就先介紹幾個最基本的定理(

博弈論樹的刪邊遊戲與無向圖的刪邊遊戲

PS:本文內容大部分借(chao)鑑(xo)自yhqz 樹的刪邊遊戲 給出一個有 N個點的樹,有一個點作為樹的根節點。遊戲者輪流從樹中刪去邊,刪去一條邊後,不與根節點相連的部分將被移走。誰無法移動誰輸。 結論 葉子節點的SG值為0;中間節點的SG值為它的所有子節點的SG值加1後的異或和。 證明 無向

CSS

模式 ant 表格 weight mil 比較 標題 根據 amp 下面主要引用http://www.cnblogs.com/wangfupeng1988/tag/css知多少/ CSS進階筆記: 一、學習CSS的三個突破點 1.瀏覽器如何加載和解析CSS——CSS的5個來

Android 動畫動畫切換

ram 屏幕 pre 退出 tac 旋轉動畫 utf 轉動 XML 一、Activity切換動畫   在Android開發中,經常會遇到Activity之間切換效果,下面介紹一下,Activity左右滑動切換效果。在Android2.0以後版本,在Activity中添加了

路(基礎篇) - 011 arduino api基礎手冊

異或 change 可用 算術運算符 chan 程序結構 換算 是否 關閉 arduino 函數 api 程序結構 在Arduino中, 標準的程序入口main函數在內部被定義, 用戶只需要關心以下兩個函數:void setup()void loop()setup() 函數

路(基礎篇) - 008 SPI數據傳輸(庫函數方法)

ria att clockd == bus 屏蔽 attach serial out 主機端: 1 /********************************* 2 代碼功能:SPI數據傳輸(主機端) 3 引腳說明: 4 SS/CS:片選(高電平屏

路(基礎篇) - 009 通過底層AVR方法實現SPI數據傳輸

lean oop and return false 進階 from setup pie 主機端: /********************************* 代碼功能:通過底層AVR方法實現SPI數據傳輸(主機端) 創作時間:2016*10*17 使用資源:

路(基礎篇) - 007 脈沖寬度測量

style 函數 long 最大 void serial 作者 println 電平 1 /********************************* 2 代碼功能:Pulse脈沖寬度測量 3 使用函數: 4 pulseIn(引腳號,脈沖響應電平,

路(中級篇) - 018 基於arduino的簡易版智能衣架

檢驗 dig cloc 布線 pin on() -- mage 根據 一. 設備及要求 目的:制作一個可以自動根據事實的天氣的狀況進行對衣架上的衣服進行晾曬。 基礎裝置:可伸縮的晾衣架。 開發環境:Arduino1. 8.1 主控板:Arduino UNO 動力裝置:

項目 集群環境搭建(一)概述

問題 特點 多臺 cpu 好的 content 成了 系統資源 通過 今天我們說一個不是特別新,但近期今年伴隨大數據熱而比較火的一個技術-集群技術。 什麽是集群技術 集群(Cluster)技術是指一組相互犭蟲立的計算機,利用快速通信網絡組

【SSH路】Hibernate映射——一對一單向關聯映射(五)

技術 iyu 標識 tails for sso 3.0 sdn 例如 【SSH進階之路】Hibernate基本原理(一) ,小編介紹了Hibernate的基本原理以及它的核心,採用對象化的思維操作關系型數據庫。 【SSH進階之路】Hibernate搭建開發環境+簡單實例

【SSH路】Struts + Spring + Hibernate 開端(一)

height 一段 ioc 效率 陽光大道 面向對象的思想 text ase 們的 Long Long ago。就聽說過SSH。起初還以為是一個東東,詳細內容更是不詳,總認為高端大氣上檔次,經過學習之後才發現,不不過高大上,更是低調奢華有內涵,經過一段時間的

2017PHP程序員的

通信協議 thinkphp nmp 圖形圖像 update gin io模型 應用場景 單例 又是一年畢業季,可能會有好多畢業生即將進入開發這個圈子,踏上碼農這個不歸路。根據這些年在開發圈子總結的LNMP程序猿發展軌跡,結合個人經驗體會,總結出很多程序員對未來的迷漫,特別對

樹莓派路 (012) - 關於Raspberry Pi樹莓派無線網卡配置

linu names interface 文件內容 動態ip down run 表示 無線網絡 Raspberry Pi樹莓派無線網卡配置[多重方法備選] 要想讓樹莓派方便操作,肯定需要配置無線網卡,這樣可以大大增強樹莓派的移動性和便利性,其實配置無線網卡基本就是和普通li

【SSH路】Hibernate基本映射(三)

tor res 主動 tran clas oid 支持包 lose 包括 【SSH進階之路】Hibernate基本原理(一) ,小編介紹了Hibernate的基本原理以及它的核心。採用對象化的思維操作關系型數據庫。 【SSH進階之路】Hibernate搭建開發環境+簡單

GO語言的路-go的程序結構以及包簡介

nbsp 高亮 編碼 支持 style 搜索框 責任 code 能夠                GO語言的進階之路-go的程序結構以及包簡介                                       作者:尹正傑 版權聲明:原創作品,謝絕轉載!否則將追