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

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

?? ics 180, april 10, 1997.htm

?? 這是博弈論算法全集第六部分:局面描述,其它算法將陸續(xù)推出.以便與大家共享
?? HTM
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0049)http://www.ics.uci.edu/~eppstein/180a/970410.html -->
<HTML><HEAD><TITLE>ICS 180, April 10, 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 10, 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 10, 1997<BR>Evaluation Functions</H2>
<H3>General considerations</H3>
<P>The evaluation function is where most of the game-specific knowledge goes 
into your program. We start off with two basic assumptions: 
<P>
<OL>
  <LI>We can represent the quality of a position as a number. For instance, this 
  number might be our estimate of the probability that we can win the game; but 
  most programs don't try to make the number mean anything so specific, it's 
  just a number. 
  <P></P>
  <LI>The quality we measure is or should be the same as the quality our 
  opponent measures (so if we think we're in a good position, our opponent 
  thinks he's in a bad position and vice versa). This is unlikely to be really 
  true, but it's needed to make our search algorithms work well, and in practice 
  it comes pretty close to the truth. </LI></OL>
<P>The evaluation can be more or less complicated, depending on how much 
knowledge you build in to it. The more complicated it is, and the more knowledge 
it encodes, the slower it is likely to be. Typically, the performance of a 
program (how well it plays) has been estimated as behaving like the product of 
the knowledge and speed: 
<P>
<CENTER><IMG src="ICS 180, April 10, 1997.files/perfcurves.gif"></CENTER>
<P>So, if you have a fast dumb program you can often make it better by adding 
more knowledge and slowing it down a little. But that same additional knowledge 
and slowdown might actually make a smart slow program worse; there is a 
diminishing rate of return of performance to knowledge. Similarly once you speed 
your program up past a certain point, there is a diminishing improvement for 
adding more speed, and you would be better off balancing speed and knowledge 
somewhere closer to the middle of the chart. This balance point varies somewhat 
depending on what kind of opponent you expect to face; speed works better for 
defeating other computers, while human opponents are very good at exploiting 
holes in your knowledge and are more easily defeated by knowledge-based 
programs. 
<H3>Implementation methods</H3>
<P>There are two major types of evaluation function method. The first, 
"end-point evaluation", is simply to evaluate each position independently of 
each other position, using your favorite evaluation algorithm. This can give 
good results, but is slow, so some programmers have resorted to the following 
trick, known as pre-computation, first order evaluation, or piece-square tables. 

<P>Before we begin a search for the best move from a position, we examine 
carefully the position itself, and compute values to store in an array 
T[square,piece type]. The evaluation of any position found in the search will 
then be simply the sum of the array values for the pieces in the position. We 
don't have to compute the sum from scratch at each step; instead when moving a 
piece from one square to another update the score using the formula 
<CENTER><PRE>score += T[new square,piece] - T[old square,piece]
</PRE></CENTER>
<P>Examples of piece-square table values in chess: when a king is castled into 
the corner of the board, the pawns in front of it are very useful in defending 
against attacks. Their ability to defend becomes less as they move forward. So, 
if the king is in the corner in the starting position of the search, we might 
build piece-square tables for the pawns having the values <PRE>    ... 1   1   1   1
    ... 1   1.1 1.1 1.1
    ... 1   1.2 1.2 1.2
</PRE>on the three rows in front of the king, to encourage the pawns to stay 
close to the king by giving them a greater value than their usual one point when 
they are nearby. 
<P>Unfortunately while piece-square tables are blindingly fast, and you can 
incorporate some interesting kinds of knowledge this way, piece-square tables 
are pretty stupid in general. They can't take into account interactions between 
several moving pieces; those interactions have to be approximated by looking at 
where the pieces were when the piece-square table was computed. So, for 
instance, if we search through a long sequence of moves, in which the king goes 
to a different part of the board, the piece-square table values above would be 
inaccurate because they would be making the pawns defend the place the king used 
to be, rather than defending the king itself. 
<P>Programs that use piece-square tables often combine them with some amount of 
end-point evaluation. Another strategy for making piece-square table methods 
more accurate is to delay building the tables until later in the search; e.g. if 
you are searching 9-move sequences, build the tables after sequences of 5 moves 
and use them for the remaining 4-move search. If you do that, though, you should 
be careful to make the tables resulting from one 5-move sequence be consistent 
with those from other sequences, so that the overall evaluation scores can be 
compared meaningfully. In class Dave O. suggested another possible improvement: 
make incremental modifications to the piece-square tables, e.g. move the bonuses 
for pawns in front of kings when the kings move; this seems like a good idea but 
I don't know whether it's been implemented or if so how well it worked. 
<H3>How to combine evaluation terms</H3>Typically, like the first-order 
evaluations above, an evaluation function is a sum of several terms, where each 
term is the result of a function that looks for certain specific information in 
a position. Why sums? It's a relatively simple way of combining information that 
works ok in practice. 
<P>My own feeling is that game programmers really should try more carefully to 
model their evaluation functions on probabilities: combine terms to determine 
probabilities of winning soon (by carrying out some kind of attack), in a 
moderate number of moves, or in an endgame (say by taking advantage of a passed 
pawn in chess), and combine the probabilities appropriately. If the probability 
of winning soon for black is bs and for white is ws, if the probability of 
winning in a moderate number of moves (assuming no sooner win) is bm or wm, and 
if the probability of winning in an endgame is be or we, then the overall 
probability of winning is 
<CENTER><PRE>bs + (1 - bs - ws) bm + (1 - bs - ws - bm - wm) be
</PRE></CENTER>or 
<CENTER><PRE>ws + (1 - bs - ws) wm + (1 - bs - ws - bm - wm) we.
</PRE></CENTER>I think it might be a useful idea for an evaluation function to 
compute terms estimating these individual probabilities, and combine them with 
formulas like the ones above. How well each probability is estimated could be 
tested by comparing the program's estimates against the actual results in 
databases of games, and this would give a program the ability to do some 
rudimentary planning (judging whether to go for a certain attack based on how 
likely it is to work). But this is purely speculation, it hasn't been tested in 
a real program, and you won't go far wrong just using sums. 
<H3>What kinds of information go into evaluation functions?</H3>Evaluation 
functions typically combine terms encoding knowledge of different types: 
<UL>
  <P>
  <LI><B>Material</B>. The sum of point values in chess, the number of pieces of 
  each player on the board in e.g. go or othello. This is often useful, but 
  othello provides an interesting counterexample: the game is based at the end 
  on the material count, but for middle-game positions it is a pretty bad idea 
  to base the evaluation on material, since often the player with the better 
  position will actually have fewer pieces. For some other games such as go-moku 
  material is irrelevant since it a function only of what move it is and not of 
  how good the board position is. 
  <P></P>
  <LI><B>Mobility</B>. How many different moves does each player have available? 
  The idea is that if you have more choices of move, it's that much more likely 
  that at least one of them will lead to a good position. This works very well 
  in othello. It's not so useful in chess (it's been used, but some chess 
  programmers have taken it out of their programs because it doesn't seem to 
  help the quality of the overall evaluation). 
  <P></P>
  <LI><B>Space</B>. For some games, one can partition the board into regions 
  controlled by one player, regions controlled by the other player, and regions 
  still in dispute. For instance, this is the main idea of go. But it also comes 
  up in games including chess, in which one player's region consists of the 
  squares attacked or protected by his own pieces and not attacked or protected 
  by the opponent's. In Othello, if one player has a connected group of pieces 
  surrounding a corner, these pieces can never be taken and form part of that 
  player's territory. The space evaluation is then simply the sizes of these 
  regions, or less simply the total importance of these regions if there's some 
  way of saying that one square is more important than another. 
  <P></P>
  <LI><B>Threats</B>. Is the opponent about to do something bad? Are you about 
  to do something good? E.g. in chess or go, are some pieces likely to be 
  captured? In go-moku or connect-4, does either player have some number of 
  pieces lined up? In chess or checkers is some pawn about to be queened or 
  kinged? In othello, is one player about to take a corner? This sort of term 
  should vary according to the immediacy and strength of the threat. 
  <P></P>
  <LI><B>Shape</B>. In go, connected groups of pieces are safe from capture if 
  they surround two separate regions of territory (called "eyes"). In chess, 
  side-by-side pawns are generally much stronger than pawns stacked on the same 
  column. Shape-based terms are especially important because they measure 
  long-term qualities of the position that do not change much in a few moves and 
  that won't be covered by the search. (Searching finds short-range tactics in 
  an attempt to improve the overall evaluation, so the evaluation itself needs 
  to include any more long-term features that the search is trying to make 
  happen.) 
  <P></P>
  <LI><B>Motifs</B>. Some particular patterns of pieces are common enough that 
  it's worth including special case terms to cover them. In chess, for example, 
  a bishop can often capture a pawn on the outside column, only to be trapped by 
  moving another pawn forward. Once the bishop is trapped, it may still take 
  many moves for the opponent to maneuver a piece into position to capture it, 
  so the fact that it's trapped may not be obvious in the computer's search 
  routine. Some programs have included special evaluation terms to warn the 
  computer that taking that pawn might be a mistake. In othello, it's sometimes 
  useful to "sacrifice" one corner by placing a stone next to the corner, so 
  that when the opponent takes the corner itself one can put another stone next 
  to the corner in a way that won't be taken, and that leads to the win of a 
  different corner: 
  <P>
  <CENTER><PRE>    . . O @ @ @ @ .
    . . @ @ @ @ O .
    . @ @ @ @ @ . .
</PRE>White has sacrificed the bottom-left corner.<BR>Once black plays 
  bottom-left, white will play next to it and win the bottom-right corner. 
  </CENTER>
  <P>It might be worthwhile to have special evaluation code to examine these 
  sacrifices and determine to what extent they're worthwhile to make, or to 
  include in the measure of quality of a position the vulnerability of 
  edge-pieces to such a sacrifice. </P></LI></UL>
<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>, Wednesday, 16-Apr-1997 11:43:23 PDT. 
</BODY></HTML>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
最好看的中文字幕久久| 成人视屏免费看| 欧洲av一区二区嗯嗯嗯啊| 欧美国产乱子伦| 国产黑丝在线一区二区三区| 欧美丰满一区二区免费视频| 亚洲综合一区二区三区| 欧美性猛交一区二区三区精品| 1区2区3区欧美| 日本高清不卡视频| 丝袜美腿亚洲综合| 日韩免费在线观看| 精品一二线国产| 国产精品美女视频| 91麻豆精东视频| 午夜精品福利一区二区三区av| 欧美日韩精品久久久| 日本伊人精品一区二区三区观看方式 | 国产精品灌醉下药二区| 丁香激情综合五月| 亚洲国产综合色| 亚洲精品一区二区三区99| 风间由美性色一区二区三区| 日韩伦理免费电影| 日韩一区二区三区电影在线观看| 国模娜娜一区二区三区| 中文字幕一区二区三区蜜月| 4438成人网| 91欧美一区二区| 精品无码三级在线观看视频| 综合欧美一区二区三区| 欧美日韩高清在线| 欧美一区二区黄| 亚洲风情在线资源站| 4438x亚洲最大成人网| 97超碰欧美中文字幕| 麻豆成人免费电影| 亚洲与欧洲av电影| 久久看人人爽人人| 欧美在线色视频| 99精品国产一区二区三区不卡| 美女网站在线免费欧美精品| 亚洲综合久久av| 国产精品不卡在线| 国产精品网站一区| 国产日韩欧美精品一区| 欧美精品一区二区三| 日韩免费观看高清完整版| 56国语精品自产拍在线观看| 欧美日韩在线观看一区二区 | 蜜桃精品视频在线| 日本欧美一区二区| 看电视剧不卡顿的网站| 丝袜美腿成人在线| 毛片基地黄久久久久久天堂| 久久国产精品区| 国产毛片精品视频| 粉嫩av亚洲一区二区图片| 福利电影一区二区| 97se狠狠狠综合亚洲狠狠| 99久久综合精品| 69堂亚洲精品首页| 欧美大片免费久久精品三p| 久久久亚洲精品石原莉奈| 亚洲国产精品成人综合色在线婷婷| 久久综合久久99| 精品久久久久久最新网址| 久久精品人人做人人综合 | 99re热这里只有精品视频| 国产成人av一区| 在线观看一区日韩| 337p粉嫩大胆色噜噜噜噜亚洲| 国产精品三级视频| 蜜桃久久精品一区二区| 91免费版在线看| 久久这里只精品最新地址| 亚洲色图一区二区| 国产一区二区三区在线观看免费视频| 国产成人99久久亚洲综合精品| 欧美精品久久久久久久久老牛影院| 欧美变态tickling挠脚心| 一区二区不卡在线视频 午夜欧美不卡在 | 天堂久久久久va久久久久| 国产精品99久久久久久久vr| 欧美日韩亚洲国产综合| 亚洲精品欧美综合四区| 国产成人精品亚洲日本在线桃色| 欧美系列一区二区| 亚洲男人的天堂在线观看| 成人丝袜高跟foot| 精品久久久久久久久久久院品网| 一区二区三区欧美| 成人av资源在线观看| 久久亚洲二区三区| 日韩精品一二三区| 欧美日韩三级视频| 亚洲国产日产av| 欧美日韩视频在线第一区 | 中文乱码免费一区二区| 精品一区精品二区高清| 久久众筹精品私拍模特| 日韩黄色一级片| 欧美成人伊人久久综合网| 久久丁香综合五月国产三级网站 | 欧美日韩久久久| 日韩一区欧美二区| 欧美日产在线观看| 久久se精品一区二区| 欧美精品一区二区三区很污很色的 | 日av在线不卡| 久久蜜桃一区二区| 成人免费精品视频| 亚洲午夜在线观看视频在线| 91精选在线观看| 国产精品影视在线| 亚洲已满18点击进入久久| 日韩欧美中文字幕一区| 99久久伊人精品| 日本vs亚洲vs韩国一区三区二区| 久久人人爽人人爽| 在线免费视频一区二区| 男女激情视频一区| 亚洲欧美一区二区三区国产精品 | 中文字幕欧美日本乱码一线二线 | www.99精品| 麻豆国产一区二区| 亚洲四区在线观看| 精品国产制服丝袜高跟| 色屁屁一区二区| 国产**成人网毛片九色| 爽爽淫人综合网网站| 精品国产乱码久久| 国产精品夜夜爽| 亚洲成在人线免费| 亚洲情趣在线观看| 中文字幕av一区 二区| 日韩一区二区在线看片| 欧美三级电影网站| 亚洲精品一区二区三区福利 | 中文字幕一区二区三区色视频| 日韩vs国产vs欧美| 久久精品亚洲乱码伦伦中文| 色综合中文字幕国产 | 久久蜜桃一区二区| 一区二区不卡在线播放 | 7878成人国产在线观看| 欧美午夜宅男影院| 视频一区二区三区入口| 91精品在线观看入口| 国产成人自拍高清视频在线免费播放| 久久久久久麻豆| 一本色道亚洲精品aⅴ| 国产真实乱偷精品视频免| 国产欧美日韩精品一区| www.性欧美| 九九视频精品免费| 亚洲成精国产精品女| 国产女同互慰高潮91漫画| 精品视频一区三区九区| www.久久久久久久久| 老司机精品视频一区二区三区| 亚洲日本在线看| 亚洲va欧美va国产va天堂影院| 亚洲午夜激情网站| 亚洲免费在线视频| 卡一卡二国产精品| 欧美一区日本一区韩国一区| 久久精品亚洲乱码伦伦中文| 中文字幕不卡在线| 亚洲国产精品天堂| 青青草国产精品亚洲专区无| 国产成人精品亚洲777人妖| 欧美日韩国产bt| 国产欧美日韩久久| 国产精品99久久久久| 中文字幕高清一区| 成人avav影音| 精品久久久久久无| 久久一区二区三区四区| 国产网站一区二区三区| 一区二区三区久久| 麻豆91在线播放| 菠萝蜜视频在线观看一区| 欧美日韩一区成人| 亚洲精品老司机| 欧美日韩亚洲丝袜制服| 久久狠狠亚洲综合| 欧美精品v日韩精品v韩国精品v| 精品国产麻豆免费人成网站| 国产精品的网站| 精品亚洲porn| 欧美性受xxxx| 久久综合色之久久综合| 亚洲成人久久影院| 精品sm在线观看| 欧美三级中文字| 精品一区二区三区视频在线观看| 国产三级精品三级在线专区| 色88888久久久久久影院野外| 日韩精品资源二区在线|