ZeroZeroZero

本页面已浏览163次

2017年底,有10盘对局记录被公开。对阵双方是代表着超人战力的Stockfish以及DeepMind出品的AlphaZero。比赛结果?AlphaZero的压倒性胜利。

但比起胜利而言,更令人瞩目的是AZ教会自己求胜的方式。计算机第一次通过自学的方式达到了这个水平,而没有学习人类已经建立起来的象棋战略。它让人想起了卡斯帕罗夫的黄金时代:从开局就开始攻王,并通过“随意”的弃子来达成这个目标。对棋手而言,这些对局为人们提供了具有启发性的思考:一种新的着法风格已经形成了——或者更精确地说,现有的着法得到了更新和扩展——足以击败当时世界上最强的国际象棋引擎。

若果如此,那么当前对某些复杂开局变例以及中局形势的判断可能就要被推翻。

2018年初,我得到了210盘对局。其中的110盘没有任何开局定式,另外100盘有开局定式。

前10盘虽有亮点但不够令人瞩目。从11盘开始,情况就不一样了。其中的第11盘的引人瞩目之处在于,作为黑方的AZ已经牺牲了3个兵,然后在22步悄悄地下出了22. ... h6

“象的扫射”

1. e4 e5
2. Nf3 Nc6
3. Bc4 Nf6
4. Ng5 d5
5. exd5 Na5
6. Bb5+ c6
7. dxc6 bxc6
8. Bd3 Nd5
9. Nf3 Bd6
10. 0-0 Nf4
11. Re1 Nxd3
12. cxd3 0-0
13. Nxe5 c5
14. Nc3 Bb7
15. b3 Re8
16. Nc4 Nxc4
17. Rxe8+ Qxe8
18. bxc4 Qe6
19. Bb2 Rb8
20. Nb5 Qg6
21. Qf1 Bf4
22. Nxa7 h6

这局棋的结果是AZ在第48步取胜。在第25步时,Stockfish走出了败着25. Qd1而不是25. Nb5以保持子力优势,原因不明。

23. Bc3 Qh5
24. h3 Ra8

25. Qd1 Qxd1+
26. Rxd1 Rxa7
27. Ra1 Bc6
28. a4 Rxa4
29. Rxa4 Bxa4
30. Kf1 Bb3
31. Ke2 Bd6
32. Ke3 Be7
33. Be5 f6
34. Bc7 Kf7
35. Bb6 Ke6
36. Ke2 Kd7
37. Ke1 Kc6
38. Ba5 h5
39. Kf1 Kd7
40. Bb6 Bc2
41. Ke2 Kc6
42. Ba5 Bd6
43. d4 cxd4
44. d3 Ba4
45. h4 Kb7
46. Kf1 Bd7
47. Ke2 Ka6
48. Bd8 Bf5

“吃掉我的马吧!”

1. e4 e5
2. Nf3 Nc6
3. Bc4 Bc5
4. d3 a6
5. Ng5 Nh6
6. O-O d6
7. a4 Bg4
8. Nf3 O-O
9. h3 Bh5
10. c3 Kh8
11. Bxh6 gxh6

12. Nbd2 Ba7
13. Bd5 Ne7

14. Bxb7 Rb8
15. Bxa6 f5
16. Kh1 Ng6
17. exf5 Nf4

黑方在进行一场“Guioco Piano”(安静的游戏)。这才走了17步,AZ已经牺牲了三个兵,破坏了王翼的结构,只是为了在整个棋盘上打开进攻线路。

18. d4 Rxf5
19. Qc2 Rf8
20. Rae1 Qf6
21. Re3 Qg7
22. Rg1 Nd5
23. Bb5 Bg6
24. Qc1 Nxe3
25. fxe3 Bf7
26. Rf1 Bd5
27. Bc4 Ba8
28. a5 e4
29. Nh2 Qg5
30. b4 Qxe3
31. Ng4 Qg5
32. Qe1 h5
33. Ne3 h4
34. Be6 Bc6
35. Bc4 d5
36. b5 Bb7
37. Bb3 Rbc8
38. a6 Ba8
39. Ba4 Bb6
40. Kg1 Qg3
41. Qxg3 hxg3
42. Ra1 Rf2
43. Ndf1 Re2
44. Nf5 Rg8
45. N1xg3 Rd2
46. Rf1 Ba5
47. Rf2 Rxf2
48. Kxf2 Bxc3
49. h4 Rf8
50. Ke3 Be1
51. Ke2 Bxg3
52. Nxg3 Rg8
53. Kf2 Rg4
54. Bd1 e3+

Stockfish已经进行了顽强的抵抗,但黑方子力的优势和灵活性使其保持优势,并最终在97步赢下对局。

公开的前110局比赛带来两个令人震惊的结果。第一,AZ以一种令人赏心悦目的独有风格在下棋;第二,AZ对局势的判断更接近人的“直觉”。

很多别的引擎判断下来是0.00(完全平分秋色,没有任何一方占据哪怕一点点优势)的棋局在AZ的判断中都是对自己有利。加上AZ在这些对局中取得的优秀战绩,令人不禁思考:所谓的0.00的局面真的如此吗?是不是有我们人类都没有想到的变化?

后续几章我们将分析的局面中,AZ的判断和Stockfish以及其他顶级引擎的判断都不同。我们将试图理解AZ和其他引擎的判断,并做出我们的判断。

A:0.00和温水煮青蛙

“巨蟒的绞杀”

1. d4 Nf6
2. Nf3 e6
3. c4 b6
4. g3 Bb7
5. Bg2 Bb4+
6. Bd2 Be7
7. Nc3 c6
8. Bf4 O-O
9. e4 d5
10. e5 Ne4
11. cxd5 cxd5
12. O-O Nxc3
13. bxc3 Ba6
14. Re1 Nc6
15. h4 Rc8
16. Re3 Rc7
17. Ng5 h6
18. Nh3

人类的分析:

白方具有中心优势,它的c3-d4-e5兵链很强大。同时,e5兵牢牢控制了d6f6两个战略位置。在王翼有五个可以调动的子力:后、车、双象和马。从进攻角度看,唯一的不足是g7的白格象不在b1-h7这条大斜线上,而且黑方的a6象阻止了g7象前往d3

黑方在王翼只有两个防御力量:车和象。而白方肯定是会从王翼展开进攻的。由于中心是封闭的,所以黑方的反击必然从后翼开始。它的局面也不太坏。白方后翼的兵型已经被破坏,c3落后兵位于半开放线上,是一个进攻的理想目标。但是黑方无法拖延太久,因为白方通过马的调动Nf3-g5-h3已经对黑方王翼的防守造成了一些松动。白方的h3马日后可以通过f4来到h5

我们让五个顶级引擎(Houdini 6.02,Stockfish 8,Stockfish 9,Komodo 11.2.2,Komodo 11.3.1)用1分钟的时间来分析这个局面。总结如下:

  1. Houdini和Stockfish试图通过局面重复而达到逼和的效果。
  2. 只有Komodo认真考虑了局面,并认为黑方占优。
  3. 引擎建议的很多下法都让人感到奇怪。

但是,AZ对这个局面的判断是66.5%,也就是说AZ认为自己有66.5%的机会赢下比赛!1

显然,AZ看到了一些别的引擎看不到的东西。

我们继续看接下来的15步。Stockfish的反应让人感觉它是不是睡着了。在这15步中,AZ大大加强了对王翼的进攻威胁,而Stockfish在后翼的反击几乎没有任何展开。在AZ和Stockfish的对局中,经常出现这种情况。我们称之为“温水煮青蛙”。

18. ... Kh7
19. Rf3 Na5
20. Qc2+ Kg8
21. Re1 Kh8
22. Qd1 Nc6
23. Be3 Bc4
24. Qd2 Kh7
25. Nf4 Qe8
26. g4 Rh8
27. Nh5

此时AZ对局面的判断已经来到了85.2%,而Stockfish给出的判断是不痛不痒的0.27。但从人类眼光看去,白方在王翼聚集起了可怕的进攻火力!

27. ... Kg8
28. Rh3 Rb7
29. Bf4 Bf8
30. Qd1 Ne7
31. Bc1 b5
32. f4

应该说,AZ到此才图穷匕见。在王翼印度进攻(King's Indian Attack)开局中,经常会见到类似的局面。白方试图通过g4-g5来打开黑方王翼。但在此局面下,黑方通过将车调动到h8而做好了准备。但是,这也是AZ的算计之一:如今的h8黑车将被永远地困在那个格子,无处可以去了。然后AZ将进行兑子,靠多一个车获胜。

32. ... Rb6
33. Ba3 Ng6
34. Bxf8 Nxf8
35. Qd2 Qc8
36. Rf3 Qd8
37. Qf2 b4
38. cxb4 Rxb4
39. f5 Qc7
40. Rd1 Qb7
41. Rd2 Qc7
42. Qg3 Bb5
43. Kh2 Bd7
44. Qf2 Rb6
45. Rc2 Rc6
46. Rb2 Rb6
47. Bf1 Qb8
48. Rxb6 axb6
49. f6 g6
50. Ng3 Be8
51. Qb2 Qd8
52. h5 Nd7
53. Kg2 g5

白方战术至此大获成功,它避免了g4-g5,从而完全封闭了h线,使得黑方的h8车成为废子。

AZ接下来的着法有点奇怪,使得黑方强行弃子而获得了一些机动性。但这无关大局。白方很快建立了巨大优势并获胜。

54. Rc3 Nxf6
55. exf6 Qxf6
56. Rf3 Qd8
57. Qb4 Kg7
58. Be2 Bc6
59. Rb3 Bd7
60. Qd6 Ba4
61. Qxd8 Rxd8
62. Rxb6 Kf8
63. Kf2 Rc8
64. Ra6 Bd7
65. Ra7 Ke8
66. Bd3 Rc3
67. Ke2 Kd8
68. Kd2 Rc7
69. Rxc7 Kxc7
70. Kc3 Ba4
71. Kb4 Bd1
72. Be2 Bc2
73. Nf1
1-0

B:0.00和开放线

“矩阵”

我们先来判断一下如下局面:

黑方虽然多两个兵,但是有很多问题:

  1. 棋子机动性不够
    1. 后翼的车被钉死在了a6,因为白后对a7b6的渗透威胁太大。
    2. e6的象也不能动,因为白方在e线已经叠起了两个车,形成了巨大的进攻。
    3. 黑方的两个大子被牵制在了对e6象的防守上。
  2. 王不安全:黑方的兵型到处都是漏洞。
  3. 白方的进攻1点:白方已经有了一个h6兵,白后有了g7的落脚点。

当然,说了这么多,不是说黑方已经输了。我们来看看引擎的判断,总结如下:

  1. 引擎对三条线路的分析全部给出了0.00的判断。
  2. 引擎对两个完全不同的线路进行了分析。一个是通过55. ... bxa3打开后翼,另一个是通过55. ... Qd7或者55. ... Re8保持后翼封闭。
  3. Stockfish针对55. ... bxa3提出了针对性的下法56. bxa3
  4. 谁都没有分析出AZ的主动下法:55. ... bxa3 56. Ka2。我们在后续章节(“Color Complex”)还会深入分析这个对局。

C:0.00和风平浪静的局面

下面又是一个史诗般的对局,我们将在“Outpost”章节中详细分析,此处只是提出几个关键点。

我们列出几个局面,请大家思考如下问题:

  1. 局面是否得到了发展?谁的发展?
  2. AZ的判断是啥?
  3. 其他引擎的判断又是啥?

“关键的开放线”

黑方第36步后

黑方第41步后

白方第70步后

黑方第75步后

所有的局面下,AZ认为自己的优势在不断扩大,而其他引擎都给出了0.00的判断,只有Stockfish 9在第75步后给出了白方略差的评价。

Houdini和Stockfish 8/9的思路基本一致:充分利用唯一的开放线e线,进行子力交换从而保证白王的安全。但AZ一直没有这么想,后来它又牺牲了a5兵从而在棋盘上又打开了一条开放线a线。我们认为,在自我教学过程中,AZ相比其他引擎更能打破常规。它不是专注在开放线上,而是根据局面(g3兵对白王的行动构成了巨大的限制)选择更好的下法。

0.00的判断不光出现在引擎对局中。以下这局棋来自2018年的柏林候选人赛,对局双方是克拉姆尼克(Vladimir Kramnik,2800)和阿罗年(Levon Aronian,2794)。

1. e4 e5
2. Nf3 Nc6
3. Bc4 Bc5
4. Nc3 Nf6
5. d3 a6
6. Nd5 Nxd5
7. Bxd5 d6
8. Be3 Bxe3
9. fxe3 O-O
10. O-O Nb8
11. b4 Nd7
12. Qd2 c6
13. Bb3 a5
14. a3 Nf6
15. h3 h6
16. Rab1 b5
17. Qc3 Bd7
18. Rf2 Qb6
19. Re1 Rfe8
20. Nh4 c5
21. Ref1 cxb4
22. Qe1 d5

值得注意的是,在线的电脑分析一直给出0.00的判断,直到阿罗年稍后走出了昏着。

23. axb4 dxe4
24. bxa5 Rxa5
25. Ng6

克拉姆尼克的下法被AZ认为不是很强有力,后者注重的是25. dxe4一直之后在f6弃车这样的下法。

25. ... Be6
26. Nxe5 exd3
27. Rxf6 gxf6
28. Rxf6 d2
29. Qg3+ Kf8
30. Rf1 Ra7
31. Ng6+ Kg7
32. Nf4+ Kh8
33. Nh5 f6
34. Nxf6 Rf8
35. Qf4 Rh7
36. Qe5 Qc7??
37. Ne8+

一局如此有想象力的棋最后因为黑方36手的昏招而迅速地结束了。

棋谱下载

  1. Raking Bishops: Stockfish 8 - AlphaZero, London 2018, Game 11
  2. Take My Knight: Stockfish 8 - AlphaZero, London 2018, Game 12
  3. Python Squeeze: AlphaZero Stockfish 8, London 2018
  4. Kramnik - Aronian, Berlin Candidates 2018, Game 10

  1. AZ对局面的判断与其他引擎不同。它用一个0%到100%之间的数值表示自己能赢下对局的可能性。而其他引擎用一个分数来表示局面对谁有利(正数白方有利,负数黑方有利)。这个分数的绝对值越大,则越有利。 

Previous Post Next Post