华工象棋论坛
标题:
[推荐]象棋必杀技——入局算法
[打印本页]
作者:
667
时间:
2006-6-10 20:42
标题:
[推荐]象棋必杀技——入局算法
<TABLE class=tbl cellSpacing=1 cellPadding=1 width="100%" border=0>
<TR>
<TD height=25><B>象棋必杀技——入局算法</B></TD></TR>
<TR>
<TD class=tb>入局可比作临门一脚,是给对手最后的一击,承载着开局中局的使命,是一项基本功;算法是一个和计算有关系的词,他的作用是让计算更准确,更高效。 <BR><BR>有一则益智游戏叫做走迷宫,一堆密密麻麻的通道和乱七八糟的障碍,有起点有终点,大家都会玩,从起点出发,向终点行进,遇到障碍确认是死路就后退,再在其他的路上寻进,直到达到终点。好多武侠小说中的高手把功夫练到了最后一层,却被一个问题难住,突然有一天大彻大悟找到了问题的答案,可笑的是答案就在功夫的第一层中。其实多么复杂的思维,道理都和走迷宫一样。 <BR><BR>言归正传,来描述一下所谓的象棋必杀技,入局算法,这里说的入局是连照将杀。 <BR>作为入局一方,必须每步棋都是叫将,一步一步的将下去,会有两种结果,一种是把对手将死了,另外一种则是自己没有了任何将军的方法。 <BR>如果把对方将死了,则后退一个回合(两步棋),看对方是不是有别的走法,如果有别的走法,自己是否能够将死,如果将死则再后退,如果后退中对方有别的走法,而自己将不死则说明自己的走法是错误的。 <BR>如果结果是自己没有了任何将军的方法,那么就拿回自己刚才走的这步(因为将不死,所以是错误的),看看除了刚才的那步,有没有其他的将军的方法,如果有则去看看其他的方法的结果如何,如果没有则再后退一层,看有这一层没有其他的将法。 <BR>这样当你找到了一种或多种将死对方的方法,而且经过一层一层后退的检验,直到第一步,对方走什么自己都有办法将死对方,那么在这些方案中,对方坚持步数最多的就是这个杀法的正解。 <BR>好像有点乱,我们来举个例子: <BR><BR><BR><a href="http://www.xiangqi.com.cn/upload/forum/200606/20060610165848r8.gif" target="_blank" ><IMG src="http://www.xiangqi.com.cn/upload/forum/200606/20060610165848r8.gif" border=0></A> <BR><BR>正解: 1. 车五进三 将4进1 2. 车五平六 将4退1 <BR>3. 炮一平六 士4退5 4. 马四进六 <BR><BR>上图是一个简单的杀法与他的思路图,自上而下从左到右。 <BR><BR>思路图的模式是一个中心下面有分支,从逻辑上讲这是一个联言命题,也就是说必须几个分支都为真时,中心才为真。博弈涉及对敌双方,里面有几条具体原则需要注意:对于做杀一方来说,分支中有一种方法可以将死对方,对方即为不成立,其他的将军的变化可以忽略,如红第二步车五平六已经可以将死对方,那么同级中炮一进三的分支就不用再去计算;对于对方分支的几种应招必须全部能够将死,才能证明此招正确,如果对方的几种应招有的能将死,有的不能将死,对方分支上一级自己这步也不能说是正确的,而是不成立的,如红方先炮一平六打马再车五平六献车,黑方如果下将红马后炮胜,如果退士吃车则平安无事,这样就不能说在这里车五平六送车是正确的。 <BR><BR>算法就是这样有一定的棋力的爱好者都是这样进行着计算,但为什么有的时候总是出错呢?原因一般有两点:第一是分支不全,也就是应该有四种走法,你只看出三种,这样在条件不充分的情况下进行判断,当然是错误的;第二是后退返回再计算的时候,一次退多级,分支条件确定上一级是否对错,但只能证明他的上一级是对是错,而我们经常是结果不对的时候一直退回好几步去从新思考,这样越级的后退中丢失了许多的分支条件,导致重复错误,不能一一排除找到正解。 <BR><BR>有时人们觉得这样计算太繁琐冗杂,浪费不必要的思维资源,提出了一些优化的方法,这个优化给我们带来的高效率,同时也带来了更大的犯错误的风险。比如送子属于一种低级错误,但有的时候可能是弃子来实现引入或者腾挪等等战术。我们可以这样,当该种将军方法是送子的时候,就不在向下深入计算,返回去计算其他分支,但一定要记住这个局面不等于不成立,而只是送子,如果其他分支中的将军方法也不能最终将死对方,那么就要一级一级的返回验证,返回到这一级再重新进入深入的计算看看送子是不是真正的行不通。 <BR><BR>实践证明这种算法是一条捷径,其实象棋的对弈中每步都是这样的思维,只是评价的标准不同,本文的评价标准是每步都“将军”,而整个对弈过程中的评价标准是发展自己抑制对方。下棋人自觉或不自觉的运行着这样的流程,我这里所做的描述几乎等同于废话,而棋局有胜负,就是因为对局者计算的深度与广度不同。 <BR><BR>眼前是一条路,一个庞大的迷宫,靠你的思维达到胜利的彼岸,只有不断的尝试,即使碰壁也是进步,因为你离正途又近了一步。 </TD></TR></TABLE>
作者:
667
时间:
2006-6-10 20:43
棋局杀法虽然简单,但是分析方法值得深入学习。
作者:
邪之牙
时间:
2006-6-13 01:02
<br /><br /><P>感谢楼主</P>
作者:
msnmgqsyh
时间:
2006-7-13 20:34
<br /><br />好方法!
作者:
laishiyiyou
时间:
2006-7-15 20:41
<br /><br />左下的“红胜”标注错了吧。黑有“士5退4”去红车,而不是“将4退1”座掉红车。
作者:
laishiyiyou
时间:
2006-7-15 20:43
<br /><br />只有“车5进3”将,再“车5平6”将,才是正确的。(炮打马,形成马后炮)
作者:
铁腿马
时间:
2006-7-28 16:52
<br /><br />
作者:
大猩猩
时间:
2006-7-28 23:54
<br /><br />问题是怎样把图解放在脑子里运行,画在纸上用眼睛看图解会比较容易多了。
作者:
飞鸿踏雪
时间:
2006-8-2 11:29
<br /><br />没有做不到的,就怕想不到,呵呵。
作者:
轻风如影
时间:
2006-8-3 21:38
<br /><br />
学习了
作者:
大猩猩
时间:
2006-8-7 22:50
<br /><br />正在学习中
作者:
yuhe
时间:
2006-8-30 07:46
<br /><br /><P>学习了</P>
作者:
西门秋水
时间:
2006-9-7 13:47
<br /><br /><P>多谢</P>
<P>真是好东西</P>
欢迎光临 华工象棋论坛 (http://hgchess.com/bbs/)
Powered by Discuz! X3.2