推 geken:看到517步害我嚇到了... 04/18 20:49
推 puzzlez:@@ 原po 辛苦了 這未免太誇張了..... 04/18 21:28
推 pikacha:這...血吐很大... 04/18 22:02
推 joeyeh:發一個11段證書好了 04/19 09:58
推 ledia:其實更有挑戰性的問題是, 找到所謂 "更容易讓對手犯錯" 路線 04/20 00:54
→ ledia:盡量讓對手犯錯才是讓這類冗長棋步大幅縮短的機會 04/20 00:55
→ terrorlone:引述一位大師講過的話就是,永遠別假設你的對手會犯錯 04/20 06:33
→ terrorlone:設陷阱是可以的,但僅當即便對手沒中計也無所謂時為之 04/20 06:34
→ terrorlone:就這個意義來講,其實此解答中幾乎每一步都是這種陷阱 04/20 06:36
→ terrorlone:黑棋只有狹窄的路可以硬撐那麼久,其餘的都會死得更快 04/20 06:38
→ terrorlone:而若你還要追求「更容易讓對手犯錯」的棋步, 04/20 06:39
→ terrorlone:那就會付出「萬一對手沒中計就會拖更久」的代價 04/20 06:40
→ terrorlone:這不是一個想把棋下好的人應該追求的東西 04/20 06:41
推 ledia:不不不, 這些棋步都會有很多種同步數的選擇 04/20 13:51
→ ledia:設陷阱當然是要在不會讓步數增多的情況下使用 04/20 13:52
→ ledia:當你有最佳答案時, 你並不是假設對手犯錯, 而是主動的去引 04/20 13:53
→ ledia:誘對手犯錯 04/20 13:53
→ terrorlone:黑棋的選擇絕對沒你說的那麼多,你可有真的跑過一遍? 04/20 13:54
→ ledia:沒有 ^^ 不過一般電腦殘局資料庫都會有很多等位的選擇 04/20 13:54
→ terrorlone:是的,但這個例子中原作者給出的這條線已經是超窄的了 04/20 13:55
→ terrorlone:他已經有把你說的東西考慮進去了 04/20 13:56
推 ledia:所以我提出的是更有挑戰性的問題, 而不是此題的延伸呀 XD 04/20 13:56
→ ledia:事實上越窄/步數改變曲線越陡的路線反而對手越不容易犯錯 04/20 13:58
→ terrorlone:而原作者也已經回答了你的這個問題了 04/20 13:58
推 puzzlez:西洋棋題目好像滿受歡迎的 過來的人數變多了 04/20 13:58
→ terrorlone:那要看是什麼對手 04/20 13:59
→ ledia:其實我對電腦西洋棋不太有興趣... 因為電腦已經狂電棋王了XD 04/20 13:59
→ terrorlone:電腦當然不可能犯錯,而人類的話則不管怎樣都會犯錯 04/20 13:59
→ terrorlone:你這個說法的觀點也有點太偏重結果論了 04/20 14:00
→ ledia:也可能你的殘局資料庫比較大, 可以欺負還在用搜尋的對手 04/20 14:00
→ terrorlone:雖然單看結果而言棋王是輸了沒錯,但電腦的計畫能力仍 04/20 14:00
→ terrorlone:然遠遠在人類之下 04/20 14:00
→ terrorlone:那樣的對手基本上跟人類的差別不大,也是超容易錯 04/20 14:01
→ ledia:這只是人類的自我安慰 輸贏是絕對的 04/20 14:01
→ ledia:不過電腦贏人腦, 贏的也是人類(的科技)呀 XD 04/20 14:02
→ terrorlone:是這樣嗎?在佈局上輸了一大截,最後只靠恰好抓到棋王 04/20 14:02
→ ledia:看一堆多 unit 怪獸級的機器互相下棋, 其實是沒什麼意思的 04/20 14:02
→ terrorlone:犯錯的一瞬間而贏棋,這樣就算是實力在人類之上嗎? 04/20 14:03
→ ledia:你可以多看看現在電腦的棋力囉 ~ 04/20 14:03
→ terrorlone:你如果真的有看電腦西洋棋大賽,就知道他們的佈局有多 04/20 14:03
→ terrorlone:麼糟糕了,而且也都完全沒有長遠計劃的概念 04/20 14:04
→ ledia:你看的是什麼比賽呀 || 佈局是最容易改進的部份耶 XD 04/20 14:04
→ terrorlone:這你就大錯特錯了。電腦是完全沒有佈局概念的 04/20 14:05
→ terrorlone:線在的程式設計還是環繞在古典的 Minimax 法上 04/20 14:05
→ ledia:電腦不用有概念呀, 只要有資料庫就好啦 @@ 04/20 14:05
→ terrorlone:用那種方式只能導致短程的判斷,卻沒有長遠的佈局觀 04/20 14:05
→ ledia:沒有人用 minimax 做開局的啦 那幾十年前的事了 04/20 14:06
→ terrorlone:這就是為什麼西洋棋也許下得贏人類,但圍棋一樣慘敗 04/20 14:06
→ ledia:人類應用電腦下棋, 開局收集開局資料庫, 殘局自己算資料庫 04/20 14:06
→ terrorlone:只靠計算能力、開局 book 和殘局資料庫,是不會有真正 04/20 14:07
→ ledia:所以像是西洋棋 象棋 都能短時間內做得很好 04/20 14:07
→ terrorlone:強大的實力的 04/20 14:07
→ ledia:對於符合電腦搜尋特性的棋類應該可以很快就變很強吧 04/20 14:07
→ ledia:圍棋就跟電腦的搜尋特性差很多 04/20 14:08
→ terrorlone:真正要變強,除非改變整個程式設計的理論 04/20 14:08
→ terrorlone:這點是那些設計西洋棋引擎的人都在做的事情 04/20 14:09
→ terrorlone:因為他們都一直了解到所謂視野效應所帶來的問題 04/20 14:09
→ ledia:西洋棋應改抵定開殘資料庫, 中局搜尋了吧, 很難再改了 04/20 14:09
→ ledia:圍棋才有很大改變的機會 04/20 14:09
→ terrorlone:可是要本質地解決視野效應,必須徹底改變整個核心概念 04/20 14:10
→ terrorlone:這不見得很難,近來已經開始有一些突破了 04/20 14:10
→ terrorlone:最主要的就是把邏輯推理跟搜尋加以結合 04/20 14:11
推 ledia:可以請問有什麼突破嗎? 我倒是都沒怎麼聽說 @@ 04/20 14:11
→ terrorlone:而使得一些極度荒唐的長程錯誤不會在電腦上出現 04/20 14:12
→ ledia:邏輯推理不是憑空而來的吧 04/20 14:12
→ terrorlone:例如讓電腦知道判斷什麼叫「觀廁所」的狀況 04/20 14:12
→ ledia:如果只是人類經驗, 那也一樣會有視野效應 04/20 14:12
→ terrorlone:問題是現在電腦的視野效應明顯地太嚴重了 04/20 14:13
→ ledia:畢竟最主要的問題在評分函數不夠完善 04/20 14:13
→ terrorlone:一些在人類看來極度明顯的封鎖線防禦電腦卻看不出來 04/20 14:13
→ ledia:怎麼改大架構都不會變, 改動也只是在改評分函式而已 04/20 14:14
→ terrorlone:評分函數再怎麼改良也不及人類的思考能力的 04/20 14:14
→ terrorlone:因為人類最重要的不是按照公式去評估局面,而是加上推 04/20 14:14
→ terrorlone:理的成分在裡頭,這是現在最需要教導電腦的 04/20 14:15
→ ledia:當然呀, 因為電腦棋類最主要就是在把人類知識化成評分函式呀 04/20 14:15
→ ledia:人類不可能賦予更多的知識, 只能期望電腦在得到一部份的知 04/20 14:15
→ terrorlone:光是那樣做會沒完沒了,還不如設計邏輯引擎出來 04/20 14:16
→ ledia:識之後, 利用電腦的強項: 運算, 能夠比人類更快找到答案 04/20 14:16
→ terrorlone:這個就是現在最新的設計概念之一 04/20 14:16
→ ledia:不不, 你不需要把 "所有" 知識都給它, 它就有機會能贏你了 04/20 14:17
→ ledia:不是吧 從最一開始就是在做這件事呀, 有什麼新的觀念 @@? 04/20 14:17
→ terrorlone:你如果只是希望電腦贏人類那麼膚淺的話,早就已經辦到 04/20 14:17
→ ledia:所以我說看電腦西洋棋沒意思啦 XD 04/20 14:18
→ terrorlone:你真的知道我說的邏輯引擎是什麼東西嗎? 04/20 14:18
→ ledia:你先把電腦棋類在做什麼弄懂吧 @@|| 04/20 14:18
→ terrorlone:那是一種從目標作為導向、逆向搜尋這個目標所需的條件 04/20 14:19
→ ledia:那個很早就有在做啦 ^^| 04/20 14:19
→ ledia:這種方法用在電腦棋類上最大的問題 04/20 14:19
→ terrorlone:然後在用樹狀結構交叉比對出可以從現在局面達成的策略 04/20 14:20
→ terrorlone:的技巧,這是跟過去的搜尋方法完全相反的方式 04/20 14:20
→ ledia:就是多目標之千互相矛盾或權重問題的處理 04/20 14:20
→ ledia:這一點人類始終做不好 ,或是太費力根本沒辦法去做 04/20 14:20
→ ledia:之間* 04/20 14:21
→ ledia:圍棋很多人都是用這類的思維切入 04/20 14:21
→ terrorlone:所以在實作上才需要用新的方式來突破啊 04/20 14:21
→ ledia:對於西洋棋或象棋類來說, 也許能改善一點點, 但是無法以此 04/20 14:22
→ ledia:作為主要的運算方式, 因為不夠好 04/20 14:22
→ terrorlone:無論如何必須要推翻 "Computers don't plan" 的印象 04/20 14:22
→ ledia:這不是新的方式.... 他也很久了 04/20 14:22
→ ledia:那也不算 plan, 也只是從寫好的幾種目標找一種來算而已 04/20 14:22
→ ledia:這根開局資料庫並沒有不一樣, 只是開局是寫死的 04/20 14:23
→ terrorlone:現在在開發這種程式的時候可不是設定死的目標選項喔 04/20 14:24
→ ledia:plan 最重要的一點是沒有前提, 就現在的局面制定策略 04/20 14:24
→ ledia:但是電腦你沒有給他目標, 他就一定不會往這邊算 04/20 14:24
→ ledia:這是無庸致疑的 04/20 14:24
→ ledia:不要把電腦能做的事想得這麼神 04/20 14:25
→ ledia:電腦棋類退一百步講, 也只是你教他怎麼下, 他照著下而已 04/20 14:25
→ ledia:只是人類的教材和電腦的特性, 目前只對西洋棋做得比較好 04/20 14:26
→ terrorlone:例如現在不會那麼單純地說目標是一個 fork 或類似的 04/20 14:26
→ terrorlone:tactics 04/20 14:26
→ ledia:無論如何, 單目標多目標, 也一定都是之前先設定好的目標 04/20 14:27
→ terrorlone:而會變成是一種模糊的佈局提升 04/20 14:27
→ ledia:此外, 你還需要讓電腦知道符合什麼條件才能用什麼策略 04/20 14:27
→ ledia:他不會無端或是模糊沒有任何條件之下自己下決定 04/20 14:27
→ terrorlone:但是到底何謂提升,就是讓電腦根據局面來個別判斷 04/20 14:27
→ terrorlone:當然你硬要說這也是一種既定寫好的目標我也沒話說 04/20 14:28
→ ledia:電腦不會 "自己" 判定 04/20 14:28
→ ledia:無論什麼行為都是程式設計師先寫好的 04/20 14:28
→ terrorlone:但是問題是這樣的一種構想實現了沒?還沒嘛 04/20 14:28
→ ledia:你當然沒話說.... 我寫電腦棋類的程式可沒辦法這樣變魔術XD 04/20 14:29
→ terrorlone:到現在的西洋棋引擎都還只是狂拼選擇性搜尋的能力而已 04/20 14:29
→ ledia:實現啦, 很多人都有用 goal-oriented search 呀 04/20 14:29
→ ledia:只是用的比重多少或是效果好不好的差異而已 04/20 14:29
→ terrorlone:有哪一個引擎已經把這樣的技巧真正實作出來?沒有吧 04/20 14:30
→ ledia:但是拼搜尋就夠贏人腦啦 04/20 14:30
→ ledia:我倒要問問哪一個沒有 ? XD 04/20 14:30
→ ledia:你舉一個出來, 最好是有 open-source 的, 我可以去驗證 04/20 14:30
→ terrorlone:Deep Junior 哪邊有用這個方法在做? 04/20 14:31
推 ledia:哪邊可以下載 Deep Junior 的 code 嗎? XD 04/20 14:33
→ terrorlone:你也不用這麼麻煩,你給我一篇文章真的談論到 goal 04/20 14:34
→ terrorlone:oriented search 的完整實作,我就閉嘴 04/20 14:35
→ terrorlone:那樣也未嘗不好,至少我可以不用浪費時間做重複的研究 04/20 14:39
→ terrorlone:但你總得要讓我看到真的我想做的東西已經被做出來了 04/20 14:40
推 ledia:ok, 那請問為了讓電腦 favor 當頭炮, 所以讓有這個型式出現 04/20 14:44
→ ledia:時會加分, 算是 goal-oriented search 嗎? XD 04/20 14:44
→ ledia:如果會的話.... 有在做象棋的應該都會有 XD 04/20 14:44
→ terrorlone:當然不算,那只是一種評分函數而已 04/20 14:45
推 ledia:那要怎樣才算 ? 那也是設定一個 goal 讓程式決定要不要做呀 04/20 14:48
→ terrorlone:那樣的程式如果在搜尋深度之內找不到當頭炮就不會管它 04/20 14:49
→ terrorlone:但真正的 GOS 應該要分析構成當頭炮的邏輯要件 04/20 14:49
→ terrorlone:然後逆向繼續推理出逐步實現的要件 04/20 14:50
→ terrorlone:將每一個小策略存在記憶體當中,等到他們能夠被串連 04/20 14:51
→ terrorlone:之後一口氣發動非常長遠的當頭炮計畫 04/20 14:52
推 ledia:這樣你的深度一樣不會夠 @@||| 04/20 14:53
→ ledia:同樣計算能力的電腦, 有什麼道理一種方法看得到一種看不到 04/20 14:53
→ ledia:search space 是一樣大的, 除非你不管其它分支算出來的結果 04/20 14:54
→ terrorlone:理由就是在於搜尋的時候沒有考慮到邏輯因素的存在 04/20 14:54
→ ledia:我以為 goal-oriented 也是會受搜尋深度影響的 @@ 04/20 14:54
→ terrorlone:如果你用正向搜尋,就算你選擇性搜尋的技巧再怎麼好 04/20 14:55
→ ledia:不會因為邏輯對了, 就不需要把全部的東西 full search 完呀 04/20 14:55
→ terrorlone:也不可能把路線窄化到只剩一線,但是 GOS 可以 04/20 14:55
→ ledia:我認為學理上不可能, 不過這是題外話, 回原本的討論 04/20 14:56
→ terrorlone:因為目標就是那麼樣地明確,絕無分支 04/20 14:56
→ ledia:我對 GOS 有誤解, 所以大概找不到有這麼做的程式 04/20 14:56
→ ledia:不過我認為想法是對的, 但是如果設定的目標太遠 04/20 14:57
→ ledia:仍然是搜不完的, 不會因為被化成小目標, 搜尋量就減少 04/20 14:57
→ terrorlone:別說你找不到,我也一樣找不到啊,而就是這樣才要做嘛 04/20 14:57
→ ledia:因為這些目標的搜尋數量是要用乘的 ,不是用加的 04/20 14:57
→ ledia:嗯... 那我只能祝你好運了 ^^| 04/20 14:58
→ ledia:我想別人有想過卻沒做過一定有其原因, 也許你看見了別人想不 04/20 14:58
→ ledia:到的東西, 所以我並無惡意, 但是這麼做是辛苦的, 你要有心 04/20 14:59
→ ledia:理準備.... 04/20 14:59
→ terrorlone:搜尋量會差非常多,而且下出來的棋步會更合乎棋理 04/20 14:59
→ ledia:搜尋數量會變很多意謂時間內算不完.... 04/20 15:00
→ terrorlone:沒有做的原因,其實你剛才已經講過了 04/20 15:00
→ ledia:但是變合理, 在正確處理單一 goal 之後, 你還要處理多個 04/20 15:00
→ ledia:goal 之間的權重問題, 互相矛盾的問題 04/20 15:01
→ terrorlone:就是因為很難把邏輯規則制定出來,以及目標的權重問題 04/20 15:01
→ ledia:嗯, search space 這一點得要先解決, 我想這個只有真的做下 04/20 15:01
→ terrorlone:這絕對是需要再投注更多研究才能實現的 04/20 15:01
→ ledia:去才會有感覺, 權重問題可以花時間慢慢找方法調整 04/20 15:02
→ terrorlone:所以你跟我說早就已經有人做,我真的有點傻眼 04/20 15:02
→ ledia:先過了第一關再說 XD 04/20 15:02
→ ledia:我說的應該只能算 goal-oriented heuristic 吧 04/20 15:03
→ ledia:只是一些加分或是好處引誘電腦去執行 04/20 15:03
→ ledia:電腦發現不可行, 或短時間發現執行不了也不會去做 04/20 15:04
→ ledia:但是電腦短時間會發現執行不了, 很難改變邏輯就讓它發現 04/20 15:04
→ ledia:可以執行就是了 ^^| 04/20 15:04
→ terrorlone:你說的沒錯,因此整個設計的概念要有很大的改變才行 04/20 15:05
→ terrorlone:我看這個問題討論到這邊應該也差不多了,不妨先歇會 04/20 15:10
→ terrorlone:試試看我在這邊貼的其他謎題吧,我相信你會有興趣的 ^^ 04/20 15:11