小学论坛

 找回密码
 立即注册
查看: 59|回复: 0

[工程问题] 火柴盒电脑

[复制链接]

28万

主题

28万

帖子

84万

积分

论坛元老

Rank: 8Rank: 8

积分
848531
发表于 2016-8-15 10:49:38 | 显示全部楼层 |阅读模式

 
 
  这台简单的电脑可以从与人类对手的比赛中,“学习”到玩游戏的技巧。一开始它几乎全输,但经过一段学习的过程之后,几乎能每战必胜。
  这台电脑是针对一种特定的游戏而设计的,为了说明电脑的运作方式,必须了解这种游戏的玩法。这种游戏叫做“六子棋”,使用3黑3白6个棋子,3×3的棋盘。
  游戏开始时,3个黑子与3个白子分立两边互相对峙,如图1所示。棋子的走法是,可以向前走一格到一个空格,或是向前方斜走一格吃掉对方的棋子,图2与图3为在对局当中白子可能的两种走法。
  当己方的棋子走到棋盘的另一边,或对方的棋子全部被吃光,或是对方的棋子动弹不得时,你就赢了。图4代表黑子先走的一局棋,依序表示各个棋子的位置,箭头表示走法。


 
  你应该已经发现这个游戏非常简单,只须走几步就可以分出胜负。其实这正是选择这个游戏的理由,因为这样可以使电脑的规模不必太大。当你通过六子棋了解电脑的运作方式之后,也许可以试着制作一台玩“井”字或是其他圈叉游戏的电脑。也许你要问,怎么会用到火柴盒?它又如何决定下一步要怎么走呢?
 
  这台电脑是由许多火柴盒组成的,每一个火柴盒代表六子棋可能的一种布局,把这种布局画在火柴盒上,如图5所示。

 
  在布局图上所有可能的走法都用箭头标示出来。在图5的例子中,有3种可能的走法,那么就用3种不同颜色的箭头标示,并在火柴盒内放3根火柴头颜色与箭头颜色相同的火柴棒。当轮到电脑走时,电脑操作员就选出适当的火柴盒,像抽签一样任取一根火柴,火柴头的颜色就代表电脑下一步该怎么走。一开始电脑被假设为完全无知,因此在盒内对每一种走法都放了一根火柴。电脑在刚开始与你对抗时,会走出许多愚蠢的走法,但可以借助一套奖惩办法指导电脑玩这个游戏。当电脑输了的时候会受到惩罚,代表它所走的最后一步的火柴会被移出火柴盒,以避免再度出错。如果电脑操作员拿到一个空的火柴盒,电脑就得认输,同时代表前一步的火柴要被移出火柴盒。电脑不断地玩游戏,走出差劲走法的火柴逐渐减少,获胜的机会因而大增。当电脑真的获胜时,同样会受到奖励,也就是增加一根代表走出赢得胜利的那一步的火柴棒,以提高它再次出现的机会。
  制作一台会玩六子棋的电脑(大约需要40个火柴盒),并仔细分析所有可能的布局。图6是前三步内所有可能出现的布局,但镜面对称的布局不包括在内。所有这些布局以及接下去可能出现的布局,都要用火柴盒来代表。可以把镜面对称的布局标记在同一个火柴盒上,如图7所示,这样不但较易辨认,也可以减少火柴盒的数量。

 
  当你制作好电脑,而且也教会它玩游戏之后,可以用它向朋友挑战,或是请朋友也做一台电脑,让它们比赛。
解答与分析
  笔者曾在学校把学生分成两组,同时做两台火柴盒电脑,然后让两台电脑彼此对抗,过程非常有趣。这个活动也表现出人类和电脑从经验中学习的方式。在这里只讨论了一种奖惩火柴盒的方法,不过也可以尝试其他的方法,还可以将赢的局数与比赛局数绘成“学习曲线”,以比较不同学习方式的优劣。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|新都网

GMT+8, 2025-10-13 23:47 , Processed in 0.051556 second(s), 8 queries , WinCache On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表