亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ics 180, april 29, 1997.htm

?? 介紹各種經典算法的代碼。說明詳細
?? HTM
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0049)http://www.ics.uci.edu/~eppstein/180a/970429.html -->
<HTML><HEAD><TITLE>ICS 180, April 29, 1997</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<META name=Owner value="eppstein">
<META name=Reply-To value="eppstein@ics.uci.edu">
<META content="MSHTML 5.00.2614.3500" name=GENERATOR></HEAD>
<BODY><IMG alt="" height=72 src="ICS 180, April 29, 1997.files/icslogo2.gif" 
width=472>
<P><A href="http://www.ics.uci.edu/~eppstein/180a/index.html">
<H1>ICS 180A, Spring 1997:<BR>Strategy and board game programming</H1></A>
<H2>Lecture notes for April 29, 1997<BR>Which nodes to search? Full-width vs. 
selective search</H2>Alpha-beta tells us how to search, but we still need to 
know when to expand a node (search its children) and when to just stop and call 
the evaluation function. 
<H3>Brute Force and Selectivity</H3>
<P>Shannon's original paper on computer chess listed two possible strategies. 
<OL>
  <LI>The most obvious is what the pseudo-code I've shown you so far does: a 
  full-width, brute force search to a fixed depth. Just pass in a "depth" 
  parameter to your program, decrement it by one for each level of search, and 
  stop when it hits zero. This has the advantage of seeing even wierd-looking 
  lines of play, as long as they remain within the search horizon. But the high 
  branching factor means that it doesn't search any line very deeply (bachelor's 
  degree: knows nothing about everything). 
  <P>Even worse, it falls prey to what's known as the <I>horizon effect</I>. 
  Suppose, in chess, we have a program searching seven levels deep, and that it 
  has trapped its knight in the corner of the board (say in exchange for a rook) 
  in a way that, if it played well, would end up with the knight captured within 
  the next seven moves. But, by sacrificing a pawn elsewhere on the board, maybe 
  the program could delay that capture by another move. That delay would then 
  push the capture past the program's search horizon, so what it sees along that 
  line of play would just be the loss of a pawn instead of the loss of a knight. 
  The knight would still end up being captured, but far enough from the current 
  position that the program doesn't see it. So, it sacrifices its pawn, thinking 
  that will save the knight. The very next move, the same situation occurs, so 
  it sacrifices another pawn, and another, until very soon it's lost a lot more 
  material than the knight was ever worth, and will still end up losing the 
  knight anyway. This sort of tailspin, in which a sequence of moderately bad 
  moves is used to delay some worse consequence, is known as the "horizon 
  effect" and it used to be an easy way to win games against computers (until 
  better algorithms let them avoid this problem). 
  <P></P>
  <LI>The other method suggested by Shannon was selective pruning: again search 
  to some fixed depth, but to keep the branching factor down only search some of 
  the children of each node (avoiding the "obviously bad" moves). So, it can 
  search much more deeply, but there are lines it completely doesn't see (ph.d.: 
  knows everything about nothing). Shannon thought this was a good idea because 
  it's closer to how humans think. Turing used a variant of this idea, only 
  searching capturing moves. More typically one might evaluate the children and 
  only expand the <I>k</I> best of them where <I>k</I> is some parameter less 
  than the true branching factor. 
  <P>Unfortunately, "obviously bad" moves are often not bad at all, but are 
  brilliant sacrifices that win the game. If you don't find one you should have 
  made, you'll have to work harder and find some other way to win. Worse, if you 
  don't see that your opponent is about to spring some such move sequence on 
  you, you'll fall into the trap and lose. </P></LI></OL>Nowadays, neither of 
these ideas is used in its pure form. Instead, we use a synthesis of both: 
selective extension. We search all lines to some fixed depth, but then extend 
extend some lines deeper than that horizon. Sometimes we'll also do some pruning 
(beyond the safe pruning done by alpha-beta), but this is usually extremely 
conservative because it's too hard to pick out only the good moves; but we can 
sometimes pick out and ignore really bad moves. For games other than chess, with 
higher branching factors, it may be necessary to use more aggressive pruning 
techniques. 
<H3>When to extend?</H3>What is the point of extending? To get better (more 
accurate) evaluations. So, should extend 
<OL>
  <LI>when the current evaluation is likely to be inaccurate, or 
  <LI>when the current line of play is a particularly important part of the 
  overall game tree search </LI></OL>(or some combination of both). 
<P>How do we know when the eval is likely inaccurate? 
<OL>
  <LI>In chess or other games in which there are both capturing and 
  non-capturing moves (checkers, go, fanorona), if there are captures to be 
  made, the evaluation will change greatly with each capture. 
  <P><I>Quiescence search</I> is the idea of, after reaching the main search 
  horizon, running a Turing-like search in which we only expand capturing moves 
  (or sometimes, capturing and checking) moves. For games other than chess, the 
  main idea would be to only include moves which make large changes to the 
  evaluation. Such a search must also include "pass" moves in which we decide to 
  stop capturing. Once both players pass, we stop expanding. That way, the 
  evaluation function is only called on "quiescent" nodes at which it isn't 
  about to change by making a capture. 
  <P></P>
  <LI>If the position has been active in the recent past, maybe we guess that it 
  should still be active. So we extend the search depth if the search passes 
  thru an "interesting" move e.g. a capture. In the alpha-beta pseudocode, this 
  would be accomplished by replacing the depth-1 parameter to the recursive call 
  to the search routine by the value depth-1+extension. You have to be careful 
  not to do this too often, though, or you could end up with a hugely expanded 
  (even possibly infinite!) search tree. 
  <P>One trick helps make sure this extension idea terminate: only extend by a 
  fraction of a level. Specifically, make the "depth" counter record some 
  multiple of the number of levels you really want to search, say 
  depth=levels*24. Then, in recursive calls to alpha-beta search, pass a value 
  of depth-24+extension. If the extension is always strictly less than 24, the 
  method is guaranteed to terminate, and you can choose which situations result 
  in larger or smaller extensions. 
  <P></P>
  <LI>I haven't seen this third technique done but maybe it should be. Include a 
  separate evaluation function to determine how complicated a position is. For 
  instance, a position is probably complicated if it has lots of contradictory 
  evaluation terms, so compute the "complication evalutation" by taking the 
  normal evaluation function and replacing each term in it by the absolute value 
  of that term. </LI></OL>
<H3>How to combine accuracy with importance?</H3>So far, we've just looked at 
trying to find the points at which the evaluation may be inaccurate. But maybe 
we don't care if it's inaccurate for unimportant parts of the tree, but we 
really do care for nodes on the principal variation. How do we take importance 
into account when performing selective extensions? 
<OL>
  <LI>Don't, let alpha-beta sort out importance and just extend based on 
  accuracy. 
  <P></P>
  <LI>Extend lines that are part of (or near) the principal variation (e.g. 
  singular extensions -- used in Deep Blue and/or its predecessors -- if there 
  is one move much better than others in a position, extend the search on that 
  move). 
  <P></P>
  <LI>Moving away from alpha-beta... conspiracy number search -- what is the 
  minimum number of positions the value of which would have to change to force 
  program to make a different move? Search those positions deeper. </LI></OL>
<P>
<HR>
<A href="http://www.ics.uci.edu/~eppstein/">David Eppstein, <A 
href="http://www.ics.uci.edu/">Dept. Information &amp; Computer Science</A>, <A 
href="http://www.uci.edu/">UC Irvine</A>, Monday, 01-Feb-1999 16:58:05 PST. 
</BODY></HTML>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲乱码中文字幕| 亚洲6080在线| 国产欧美精品区一区二区三区| 欧美日韩一级片在线观看| 欧美无砖专区一中文字| 欧美日韩免费高清一区色橹橹 | 欧美猛男gaygay网站| 色婷婷综合久久| 欧美日本一区二区| 日韩亚洲欧美中文三级| 久久久久久久久久久久久久久99 | 中文字幕日韩av资源站| 国产精品久久久久影院| 亚洲一区二区欧美激情| 日韩在线播放一区二区| 麻豆91在线播放| 成人污视频在线观看| 91一区二区三区在线观看| 欧美另类高清zo欧美| 精品国产一区二区精华| 最新高清无码专区| 蜜臀久久99精品久久久久久9| 精品中文字幕一区二区| av成人免费在线| 91精品国产综合久久精品| 久久九九影视网| 亚洲国产一区二区三区青草影视| 视频一区免费在线观看| 国产成a人亚洲| 欧美日韩一区二区三区在线看| 久久亚洲精精品中文字幕早川悠里| 国产精品久久久久久久久图文区| 无吗不卡中文字幕| 丰满白嫩尤物一区二区| 欧美猛男超大videosgay| 欧美国产日本韩| 日产国产欧美视频一区精品| 成人精品视频网站| 日韩欧美国产综合在线一区二区三区| 国产亲近乱来精品视频| 午夜视黄欧洲亚洲| 99re热视频精品| 久久伊99综合婷婷久久伊| 亚洲最新视频在线播放| 风间由美中文字幕在线看视频国产欧美 | 日韩欧美区一区二| 亚洲人精品一区| 国产精品一区二区91| 欧美人妇做爰xxxⅹ性高电影| 国产日韩欧美精品在线| 蜜桃精品视频在线| 欧美精品自拍偷拍| 艳妇臀荡乳欲伦亚洲一区| 成年人网站91| 久久久久97国产精华液好用吗| 日日夜夜免费精品视频| 日本韩国精品在线| 日韩理论片中文av| 国产成人免费av在线| 精品少妇一区二区三区视频免付费 | 国产欧美中文在线| 九九九精品视频| 欧美v日韩v国产v| 奇米精品一区二区三区在线观看| 91啪亚洲精品| 一区二区三区在线影院| 99re热这里只有精品免费视频 | 欧美精品在线一区二区三区| 亚洲色图在线视频| 91在线观看污| 亚洲欧美色综合| 91偷拍与自偷拍精品| 亚洲视频电影在线| 成人免费不卡视频| 亚洲猫色日本管| 欧美亚洲高清一区二区三区不卡| 亚洲情趣在线观看| 欧美日韩在线精品一区二区三区激情| 亚洲免费大片在线观看| 日本高清不卡一区| 日韩激情视频在线观看| 日韩一级视频免费观看在线| 首页国产丝袜综合| 精品对白一区国产伦| 国产精品亚洲视频| 亚洲欧美在线观看| 欧美亚洲一区二区在线观看| 亚洲一区二区三区精品在线| 制服.丝袜.亚洲.中文.综合| 激情成人午夜视频| 国产精品久久久久久久久动漫| 99免费精品在线观看| 亚洲另类一区二区| 欧美一区二区三区电影| 国产精品主播直播| 一区二区三区资源| 日韩欧美高清在线| 不卡欧美aaaaa| 石原莉奈在线亚洲二区| 欧美精品一区二区在线观看| 成人精品免费视频| 日本不卡一区二区| 国产精品三级av| 欧美精品日韩一区| 国产成人aaaa| 天天色天天操综合| 欧美激情在线看| 在线观看亚洲一区| 国产在线视视频有精品| 亚洲女女做受ⅹxx高潮| 日韩免费高清视频| 在线精品视频免费播放| 国产电影精品久久禁18| 亚洲成人精品在线观看| 国产欧美一区二区精品婷婷 | 97精品国产97久久久久久久久久久久| 亚洲三级在线看| 久久综合色综合88| 欧美视频一区二区在线观看| 国产成人aaa| 六月丁香婷婷久久| 亚洲国产综合人成综合网站| 欧美国产禁国产网站cc| 欧美一级欧美三级在线观看 | av在线不卡免费看| 日本伊人午夜精品| 欧美国产精品v| 91精品国产品国语在线不卡| 成人一区在线观看| 91亚洲精华国产精华精华液| 2020日本不卡一区二区视频| 在线免费不卡视频| 99国产一区二区三精品乱码| 久久国产精品区| 三级欧美韩日大片在线看| 亚洲乱码中文字幕| 中文字幕永久在线不卡| 国产亚洲欧美日韩日本| 精品三级在线看| 制服丝袜亚洲播放| 337p亚洲精品色噜噜| 欧美性猛交xxxx乱大交退制版| 成人污视频在线观看| 国产99精品在线观看| 国产成人精品午夜视频免费| 久久99精品国产.久久久久| 免费在线观看精品| 蜜桃av一区二区三区电影| 日韩综合在线视频| 麻豆成人久久精品二区三区小说| 日本伊人午夜精品| 美腿丝袜亚洲综合| 久久99精品久久久久久动态图| 日本vs亚洲vs韩国一区三区二区 | 一区二区三区国产精品| 自拍av一区二区三区| 国产精品久久久久一区二区三区共 | 国产精选一区二区三区| 国产精品原创巨作av| 国产精品一二三四| 懂色av一区二区在线播放| 成人一级片在线观看| 一本高清dvd不卡在线观看| 欧美性猛交xxxx乱大交退制版| 欧美日韩一区二区电影| 日韩一区二区在线观看视频| 亚洲精品在线电影| 国产精品拍天天在线| 伊人色综合久久天天| 亚洲国产一区视频| 国模大尺度一区二区三区| 国产精品123| 在线免费av一区| 精品三级av在线| 国产精品久久久99| 天堂va蜜桃一区二区三区| 久久99久久久久久久久久久| 岛国av在线一区| 欧美日韩一区不卡| 国产日韩欧美综合一区| 一区二区三区中文在线| 蜜桃视频第一区免费观看| 不卡一区二区三区四区| 欧美嫩在线观看| 国产精品亲子伦对白| 日韩成人免费看| av一二三不卡影片| 日韩欧美综合在线| 亚洲欧美经典视频| 国产精品综合在线视频| 欧美在线播放高清精品| 久久众筹精品私拍模特| 婷婷综合另类小说色区| 成人免费看视频| 日韩精品一区二区三区三区免费| 国产精品成人网| 国产一区二区三区免费播放| 91久久人澡人人添人人爽欧美| www国产精品av| 午夜免费久久看|