银行 社区服务 每日签到 会员排行 网站地图
  • 9818阅读
  • 4回复

Hash and a Set of parameters in the RC file. Ini

楼层直达
Lindamaster.blogtiengviet.net
级别: 伯爵
[棋中红钻4级]发帖数量≥1000篇 [棋中黄钻1级]金币数量≥100枚 [未点亮棋中蓝钻]乐币数量<10枚 [棋中粉钻4级]贡献值数量≥20点 [棋中彩钻1级]精华帖数量≥1篇
发帖
1029
金币
303
威望
30
贡献值
38
乐币
5
主题
78

— 本帖被 棋中论坛 从 完整软件 移动到本区(2010-09-17) —
            
                
                    Search: hash, interpretation, set
Unknown number of fellow chess player soft white stones set, is the summary about the principles and methods for use of reference.
     Hash table (hash) method of reading and chess software settings
1. What is a hash table (Transposition / Hash tables), what settings?
Yi-start the engine when the chess analysis of a situation, it is often "test" to go in a different order to reach the same situation, but chess, the program was to this situation and the situation of the evaluation value stored in memory, once the encounter to other's move to reach the same order but the situation changes, in other words, when calculating the "other" changes, but get there before the situation actually out of date, the program will save the re-valuation of the time.
    Hash table is a data structure to speed up search, its own principles or models to do a little math to understand the basis of programming. (Yi-chess engine is not as engaged in writing can be both)
    Yi-hash table with the chess programs, play a significant role. For example, when calculating how to take the chess, I might go after the first cursory car may go first car cursory, if their opponents should be a corresponding change, then finish the two-step move behind different order to reach exactly the same situation is .
     If I have calculated estimates of the situation, that's great. If I have calculated that the situation would have to re-calculate the estimated bad, and if so the computer to do so, it will take up a lot of time.
      The use of hash table is in this case prior to rapidly find the work has been completed (the valuation has been calculated). I can put a valuation with an "index" (hash key) stored in the table, that the purpose is to create a "unique identity", while the implementation process is very fast. I created the current situation an "index", and then see whether the index in the table have been saved. If it is, it depends on how much the value of the table. The valuation of the table so I do not need in-depth enough to re-calculate it? If so, then I just take the value out from the table, instead of calculating it again. This greatly saves time.
   Hash table is a non-specific data structures, it can easily be as Yi-chess program for other purposes. Speed of its implementation of the procedures is very large, we believe that a good hash table is a very necessary program functions.
According to the procedure of the different types of this table there are several. First of all, there are pieces Kuha Xi table [original note: Actually, more accurately called a cache more], according to the designer Dieter Buerssner Yace explanation, it is ", and similar working principle of the disk cache, to avoid excessive disk access movement, so the pieces paragraph improve the speed after the procedure. "
    Some chess Yi-program [such as Goliath] In addition to the pieces Kuha Xi table outside the main hash table is only one, while other [such as Crafty] in the main table structure in addition to using soldiers hash table. Yi-Bringer chess program there is in addition to the table outside the library there are three pieces, namely, soldiers, valuation and situation of hash table. .
2. That I should give how much memory space allocated hash table?
   Allocate more memory for the hash table space in general to improve the quality of chess. A Game for a long time and the faster your CPU, the hash table was quickly filled, it is set too large some help. However, if the bureau for a short time, set over a large space not only did not help, but may reduce the thinking depth, because there is too much access to action. Even if these negative did not happen for some of the engine (such as some versions of Crafty, and Chessmaster8000), they are clear every step chess hash table, so the hash table is large or even result in a delay of several seconds ( hit a patch of Chessmaster8000 and Chessmaster9000 do not have this problem.) If you are under the bureau quickly, of course, negative. 【Yi Zhu: Chessmaster8000/9000 can not be said, strictly speaking the "engine", but should be "software", or "procedure" is required. But the authors assume that the reader should clearly understand these basic concepts, not so strict
So how much is too much?
Writing for the chessbase • Steve Lopez, he recommended formula is: 2xCPU speed (in Mhz calculated) x average number of seconds the bureau each step, the outcome of the 1000 and then converted to M divided by the number of identified size, is that you allocate the memory for the hash table space. For example, if you let the engine 5 minutes walk 40 steps of the blitz, the use of the CPU speed is 1 Ghz (or 1000Mhz), according to the formula should be allocated for the hash table is the number of memory = 2x1000x (5x60/40) = 15000 K , divided by the 1000 conversion is 15M.
   But the question then comes, so the engine for each different figure out the size of the hash table are the same, without taking into account the speed of different search engines per second even if they 【similar level, the search speed may vary greatly in the】. Search engine to calculate how many per second, "nodes" (Node) to measure.
Chessmaster Writing John • Merino proposed another formula, hash table size = 2x engine search nodes per second (NPS) x average number of seconds per step.
Although this is only recommended for the Chessmaster while, but seems to be well adapted most of the engine, because it points directly to the section have been searching and therefore need to be assessed against the hash table size. However, this is still a rough proposal, I found it is usually higher than the result of a formula for the low, but do not know if This is more accurate. 【Yi Zhu: but if by the last two formulas, the result is smaller than the default even smaller lot. In addition it is also easy to set with the following methods are contradictory, so just for reference】
Also, if you do not let the engine play against the engine, you could set the hash table up to half of your memory. The rest is left to use the Windows operating system, and the rest can not be too small, so that the system itself is not enough and frequent hard disk access occurred. If you let the engine play against the engine, put them in the hash table and set the memory size of half. But I must say, this is the low memory constraints of users, for example less than 256M memory of the user. Memory resources used by Windows itself has a limited number, so if you have a great memory, you do not comply with "50%" rule. For example you have 512M memory, probably can be set to the total number of 420M.
If there are two or more hash table at the same time also add pieces Kuha Xi table, then each hash table to be assigned more difficult to determine how much memory. I think that there is no absolute shortcut through the engine again and again in different experiments and the experience gained, OK.
  We must note that different engines are not the same. Some engines even mandatory fixed-size hash table can not be changed. The other, many of them may be allowed to modify the size and distribution of any value will do. While Crafty is somewhere between the two, it allows modification of the size of the hash table, but only by integer increments (decrease).
Cyclones set the meaning of simple
    Cyclone engine configuration file for the cyclone.ini, you can use a text editor to open, such as "Notepad."
Commonly used to set parameters for the hash and threads. Cyclones set (with a simple translation)
hash = 256 (hash value)
Threads = 2 (number of threads)
clear hash = flase BookFile = cyclone.bin
Speeded Alwaysvar = 100
Ponder = false (contemplation = false blitz select false)
NullMove Pruning = Always (empty pruning)
NullMove Reduction = 3 (empty decrease)
History Pruning = true (historical trim, high-end low-end elections election true false)
History Threshold = 70 (the historical threshold, the value of low-security, high value of sharpness)
Delta Pruning = flase (incremental pruning, the Board elected to accelerate selection false true)
Futility Pruning = true (in vain pruning, try different combinations)
Futility Margin1 = 150 (incremental margin 1)
Futility Margin2 = 300 (incremental margin 2)
Verification Reduction = 5 (verification decrease)
Verification Search = Always (verification search = always)
Verification Search = Endgame (verification search = mess)
Quiescence Check Plies = 1 (static checking layer)
Delta Margin = 50 (incremental capacity limits)
zevaluation options = 100 (evaluation of options)
Note: Modify the cyclone.ini file, you must restart the "Chess Tornado" software to take effect.
Set the contents of this post 1G memory, dual-core machine friends like more appropriate under the slow chess, in which the value can be changed according to the situation of their choice! !                
            
                    
                                    
                                    Last edited by tuangod; 13-09-2010 at 15:45.

研究象棋软件爱好者无双
级别: 元勋
[棋中红钻5级]发帖数量≥2000篇 [棋中黄钻2级]金币数量≥1000枚 [棋中蓝钻1级]乐币数量≥10枚 [棋中粉钻5级]贡献值数量≥50点 [棋中彩钻4级]精华帖数量≥10篇
发帖
2499
金币
1471
威望
88
贡献值
75
乐币
12
主题
296

只看该作者 一楼  发表于: 2010-09-17
一样的吗这可能好一新
棋中论坛欢迎你!最新象棋软件免费下载!!你分享一个我分享一个,我们分享一下就有了两个,这就是共享的魅力!
级别: 侯爵
[棋中红钻5级]发帖数量≥2000篇 [棋中黄钻5级]金币数量≥10000枚 [棋中蓝钻1级]乐币数量≥10枚 [棋中粉钻4级]贡献值数量≥20点 [棋中彩钻2级]精华帖数量≥2篇
发帖
2026
金币
10271
威望
2
贡献值
24
乐币
34
主题
10

只看该作者 二楼  发表于: 2010-09-17
谁给翻译一下?谢谢!
级别: 中尉
[棋中红钻2级]发帖数量≥100篇 [棋中黄钻2级]金币数量≥1000枚 [未点亮棋中蓝钻]乐币数量<10枚 [棋中粉钻3级]贡献值数量≥10点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
361
金币
1953
威望
0
贡献值
17
乐币
0
主题
10

只看该作者 三楼  发表于: 2010-09-24
我的天这是什么呀!我以为进到了棋中在国外开的论坛了开个玩笑楼主能告诉我你发的是什么吗?
级别: 论坛检查
[棋中红钻5级]发帖数量≥2000篇 [棋中黄钻3级]金币数量≥2000枚 [棋中蓝钻4级]乐币数量≥500枚 [棋中粉钻2级]贡献值数量≥5点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
3741
金币
2796
威望
6
贡献值
6
乐币
529
主题
0

只看该作者 4楼 发表于: 2010-09-25
翻译一下...

对棋友白嫩设置石头,数目不详的是有关的原则和借鉴方法,总结。
哈希表(哈希)方法读取和国际象棋软件设置
1。什么是哈希表(换位/哈希表),什么设置?
易启动发动机时,的情况国际象棋分析,往往是“测试“,以不同的顺序去达到同样的情况,但国际象棋,该方案将这一情况和的评估值形势存储在内存中,一旦遇到其他的举动,达到相同的命令,但形势的变化,也就是说,在计算“其他”的变化,但那里之前的情况其实已经过时,该方案将节省的重新估价时间。
哈希表是一个数据结构来加速搜索,自己的原则或模式做一些数学理解的编程基础。 (益国际象棋引擎并不像从事书面既可以是)
易哈希的象棋程序表,发挥了重要作用。例如,在计算如何走棋,我可能去后的第一个粗略的汽车可能会去第一辆走马观花,如果他们的对手应该有相应的变化,那么完成后不同的顺序两步移动到完全达到了同样的情况是。
如果我算的情况,这是伟大的估计。如果我的计算,情况就必须重新计算,估计坏了,如果是电脑做的话,它会占用大量的时间。
对哈希表的使用在这种情况下,前,快速地找到工作已经完成(估值已计算)。我可以用一个“索引“ (哈希键)存储在表中,这样做的目的是建立一个“独特身份“,而实施过程是非常快的估值。我创建了当前情况的一个“索引“,然后看看是否在表中的索引已保存。如果是这样,它取决于有多少表的价值。该表的估值,所以我并不需要深入到足以重新计算呢?如果是这样,那我只取的值出来从表,而不是计算重新。这大大节省了时间。
哈希表是一个非特定的数据结构,它可以很容易地为义国际象棋作其他用途程序。其程序的执行速度是非常大,我们认为,一个好的哈希表是一个非常必要的程序功能。
根据此表的不同类型的过程有几个。首先,有块Kuha郗表[原注:其实,更准确地称为高速缓存更多] ,根据设计师迪特尔Buerssner Yace解释,它是“ ,以及类似的的工作磁盘高速缓存原则,以避免过多的磁盘获取运动,所以件段改善后的程序的速度。“
一些国际象棋易计划[如巨人]除了件Kuha羲表以外的主要哈希表只有一个,而[如取巧]其他在,除了主表的结构使用士兵哈希表。易携带者的国际象棋程序有,除了表外的图书馆有三件,分别是战士,评估和哈希表的情况。 。
2。我应该给多少内存空间分配哈希表?
分配更多的一般哈希表存储空间,提高国际象棋的质量。一个相当长的时间和更快的CPU游戏,哈希表很快就被填满,它设置太大帮助。但是,如果很短的时间局,在一个大空间不仅没有帮助,但可能会降低思维深度设置,因为有太多的访问行动。即使这些负面没有发生,引擎(比如一些狡猾的版本,以及Chessmaster8000 )一些,他们清楚每一步棋的哈希表,所以哈希表很大,甚至在几秒钟的延迟击(结果一个Chessmaster8000和Chessmaster9000补丁没有这个问题。)如果你是根据局迅速,当然,负面的。 【译注: Chessmaster8000/9000不能说,严格来说, “发动机” ,而应该是“软件“,或“程序“是必需的。但作者认为读者应该清楚了解这些基本概念,不那么严格
因此,有多少是太多?
为chessbase •史蒂夫洛佩兹写作,他建议公式为: 2xCPU速度(以MHz计算)的X秒主席团由确定的大小除以每一步,在1000结果,然后再转换到M的平均数目,是你分配为哈希表空间中。例如,如果你让发动机步行5分钟40突击步骤, CPU的速度使用1 GHz(或1000MHz的)据应为哈希表分配公式是内存= 2x1000x号( 5x60/40 )= 15000 K时,由1000转换划分为15m 。
但接下来的问题来了,每出哈希表的大小不同的数字使发动机是一样的没有考虑到每秒不同的搜索引擎的速度,即使他们【水平相近,搜索速度可能会差别很大的】 。搜索引擎计算多少每秒, “节点” (节点)来衡量。
象棋大师写作约翰•美利奴提出另一个公式,哈希表的大小= 2X发动机每秒(源)×每步的平均秒数搜索节点。
虽然这只是建议在象棋大师,而,但似乎很好地适应发动机的最大,因为它直接指向一直在寻找部分,因此需要对哈希表的大小进行评估。不过,这仍是一个粗略的建议,我发现它通常比一个,低公式的结果高,但不知道这是更准确。 【译注:但如果最后两个公式,其结果是比默认甚至更小的小很多。此外,它也很容易设置与下面的方法是矛盾的所以仅供参考】
此外,如果你不让反对发动机引擎玩,你可以设置哈希表来你的内存的一半。其余则留给使用Windows操作系统,其余不能太小,使系统本身是不够的,频繁的硬盘存取发生。如果让对发动机引擎发挥,把哈希表,并设置的一半内存大小。但我必须说,这是用户内存不足的限制,例如小于256M的的用户内存。 Windows使用本身数量有限,所以如果你有一个美好的回忆,你不符合“50 %“规则的内存资源。比如你有512M内存,大概可以设置为420米的总数。
如果有两个或两个以上在同一时间哈希表还补充件Kuha郗表,那么每个哈希表分配更加难以确定有多少内存。我认为没有,通过发动机绝对的捷径一次又一次地在不同的实验和经验,确定。
我们必须注意到,不同的引擎是不一样的。有些发动机甚至强制性的固定大小的哈希表不能被更改。另外,他们中许多人可能会允许修改的规模和任何价值会做分布。而狡猾的是介于两者之间,它允许对哈希表的大小修改,但只能由整数增量(减少)。
旋风设置简单的意思
旋风发动机的cyclone.ini配置文件,你可以使用文本编辑器打开,如“记事本“。
常用设置哈希和线程的参数。旋风集(用一个简单的翻译)
哈希= 256(哈希值)
线程= 2(线程数)
清除哈希= flase BookFile = cyclone.bin
加快Alwaysvar = 100
思考=假(沉思=假突击选择假)
NullMove修剪=总是(空修剪)
NullMove减少= 3 (空减少)
历史修剪=真正的(历史修剪,高端低端选举的选举真伪)
历史阈值= 70 (历史门槛,低安全,清晰度高值值)
三角洲修剪= flase (增量修剪,董事会选举产生,加速选拔假假真真)
徒劳修剪=真(白白修剪,尝试不同的组合)
徒劳Margin1 = 150 (增量保证金1)
徒劳Margin2 = 300 (增量保证金2)
验证还原= 5 (核查减少)
验证搜索=总是(验证搜索=总是)
验证搜索=残局(验证搜索=一团糟)
静检查桩的= 1(静态检查层)
三角洲保证金= 50 (增量容量限制)
zevaluation选项= 100(股权评估)
注意:修改cyclone.ini文件,您必须重新启动“国际象棋旋风“的软件才能生效。
设置这个职位1G内存的内容,双核心机友更喜欢下慢棋,其中的值可以改变根据其选择的具体情况! !
            
快速回复

限56 字节
请不要在回贴只采用字母:“ PP、asdfhjkl、HAO、OK、ddddddd ......”。  请不要在回贴过于简单的内容:“不错、顶、支持、厉害、呵呵、靠、晕........”
 
验证问题: 我们的论坛名字是?
上一个 下一个