![]() |
| If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. |
|
|||||||
| Tags: bitboards |
|
|
Thread Tools | Display Modes |
|
#1
|
|||
|
|||
|
Hello,
I found it is hard to find information on bitboards... I have found lots of infos on search algorithms on the web and I also bought "Scalable search in computer chess, by Heinz". However I would like to master bitboards and I cannot find any good source. Do you know any book/article/web-site which I could buy/download? As always, thank you very much! Tommy |
| Ads |
|
#2
|
|||
|
|||
|
Tommy wrote:
Hello, I found it is hard to find information on bitboards... I have found lots of infos on search algorithms on the web and I also bought "Scalable search in computer chess, by Heinz". However I would like to master bitboards and I cannot find any good source. Do you know any book/article/web-site which I could buy/download? As always, thank you very much! Tommy Email me. I can send you an electronic copy of a paper I published in the JICCA. It explains the idea pretty clearly along with discussing rotated bitboards as used in Crafty. -- Robert M. Hyatt, Ph.D. Computer and Information Sciences University of Alabama at Birmingham (205) 934-2213 136A Campbell Hall (205) 934-5473 FAX Birmingham, AL 35294-1170 |
|
#3
|
|||
|
|||
|
Tommy wrote:
Hello, I found it is hard to find information on bitboards... I have found lots of infos on search algorithms on the web and I also bought "Scalable search in computer chess, by Heinz". However I would like to master bitboards and I cannot find any good source. Do you know any book/article/web-site which I could buy/download? Crafty is very good, as is gnuchess. Both use bitboards and have pretty readable source. My engine uses bitboards in C++ and works in a similar fassion. The MoveManager class contains most of the important stuff and is well commented. http://sourceforge.net/projects/xiangqi-engine download JunFa. Keep in mind that it is a slightly different game so there is no diagonal bitboards, the board is larger, and special stuff has to be done for blocking jumpers. -- Noah Roberts - "If you are not outraged, you are not paying attention." |
|
#4
|
|||
|
|||
|
Just curious...
What is the current status of Xiangqi engines? Are they "GM" strength? Are they "World Champion" strength? I seem to recall that Xiangqi is around the same order of complexity as western chess. But I would guess that, in general, Xiangqi engines are not as strong because there are less Xiangqi programmers and the evaluation functions aren't as finely-tuned as in western chess. On a related note, what is the current status of Shogi engines? Shogi presents some interesting computing problems. A quick comparision between western chess and Shogi: board size: 8x8 vs 9x9 piece types: 6 vs 8 starting pieces: 32 vs 40 captured pieces: disappear vs recycled (known as 'drop') draw occurrence: frequent vs rare "Noah Roberts" wrote in message ... http://sourceforge.net/projects/xiangqi-engine download JunFa. Keep in mind that it is a slightly different game so there is no diagonal bitboards, the board is larger, and special stuff has to be done for blocking jumpers. |
|
#5
|
|||
|
|||
|
Ed Seid wrote:
Just curious... What is the current status of Xiangqi engines? Are they "GM" strength? Are they "World Champion" strength? I seem to recall that Xiangqi is around the same order of complexity as western chess. But I would guess that, in general, Xiangqi engines are not as strong because there are less Xiangqi programmers and the evaluation functions aren't as finely-tuned as in western chess. I don't think it is even close in comparison. Like you said, the evaluation method seems to be rather young. Also it seems that xiangqi is more complicated to evaluate? Or at least so I have been told. Mine is rather simple at this point. -- Noah Roberts - "If you are not outraged, you are not paying attention." |
|
#6
|
|||
|
|||
|
"Ed Seid" wrote
On a related note, what is the current status of Shogi engines? Shogi presents some interesting computing problems. Nothing comes close in complexity of any 2-person, zero-sum, total-information game, as the game of "Go" (Weiqi, Igo, Baduk). For a period of 12 years, there was a 1.5 million USD prize for the first program that could beat a little girl (Japan has plenty of pre-teens who have low-amateur status in Go). Experts in neural networks, top chess programmers etc. have worked decades on Go programs, with rather pathetic results. I made a gallery of about 70 of those guys: http://www.zenhacker.com/pioneers.htm Many are very strong Go players, engineers, CPU designers etc. None has achieved any success that can remotely be compared to what has been achieved in Chess. Go is very, very much more complex than chess, also for humans. It takes about a year before most people *understand* the beyond-basics of the game and the rating scale is "deeper". The branching factor is staggering, with hundreds of legal moves per ply, many moves having effects 100 moves deeper in the search tree, or more. Still, Go has much simpler rules than chess.. |
|
#7
|
|||
|
|||
|
"Frank Andreas de Groot" wrote
The branching factor is staggering, with hundreds of legal moves per ply, many moves having effects 100 moves deeper in the search tree, or more. I think the reason that go is more difficult for computers is because it is difficult to write an accurate evaluation function. There are games that have a higher branching factor than go which computers can beat the best humans. |
|
#8
|
|||
|
|||
|
Noah Roberts writes:
Tommy wrote: Hello, I found it is hard to find information on bitboards... I have found lots of infos on search algorithms on the web and I also bought "Scalable search in computer chess, by Heinz". However I would like to master bitboards and I cannot find any good source. Do you know any book/article/web-site which I could buy/download? Crafty is very good, as is gnuchess. Both use bitboards and have pretty readable source. OliThink is not as strong, but much, much more readable than Crafty and gnuchess. The entire source code consists of just 1556 lines (version 4.10, there may be newer versions which are somewhat longer or shorter). On the other hand, I am not sure using bitboards is a good idea for a complete beginner. Bitboards are rather advanced stuff, and I still don't feel anywhere near competent enough to use them in my own engine (rated 2620 on ICC). -- Tord Romstad |
|
#9
|
|||
|
|||
|
"Tord Kallqvist Romstad" wrote OliThink is not as strong, but much, much more readable than Crafty and gnuchess. The entire source code consists of just 1556 lines (version 4.10, there may be newer versions which are somewhat longer or shorter). I have download the source, thanks. On the other hand, I am not sure using bitboards is a good idea for a complete beginner. Bitboards are rather advanced stuff, and I still don't feel anywhere near competent enough to use them in my own engine (rated 2620 on ICC). Well 2620 elo points is a lot indeed! Now, I understand your advice, but .... I am doing this program for 2 reasons: - passion - university final project Now, using a int[8][8] for the board or, slightly better, the int[12][12] or whatever other iprovement will still *not* be the most effective and the most up to date. In my final year project I am supposed to evaluate and analyse and compare current approaches and algorithms in computer chess (emh, this is an excuse to write a chess program...;-) If I use a data structure which is not used anymore by the best programs.... well what kind of up-to-date report is it going to be? Now, I am a complete beginner, you are right ;-) Unfortunately I am ! I only started programming a chess programs at the end of september, not much time ago ;-) I made a simple int[8][8] chess program, which supported everything the game has (en-passant, castling, promotion, stalemate, checkmate,etc..) and it used alphabeta, iterative deepening and move ordering (that's it). I then applied quiescence and .... decided to start (now that I have a bit more knowledge of the problem) another one with rotated bitboards. Having said this my program was fully functional, GUI-wise and engine-wise. It could reach ply 6 full-width on average, but... I think it only had about 1300 elo points. It was (without quiescence) analysing 600 KNodes/sec on average on a AMD XP 2200+. It lacked of a good evaluation function (only analysed the material advantage) and it did not have any advaced features like : null move, transposition tables etc... You might think 1300 elo point is really bad, I agree... but still I consider my program a success. I have done it in one month only and quite easily! I have read the article written by Robert M. Hyatt and I have to admit it is very easy to follow.... I understand the topic is not easy, but I think I can do it ... At least I hope so;-) If not, I will go back to my old one (8x8) and start making it stronger.... Tommy |
|
#10
|
|||
|
|||
|
Tord Kallqvist Romstad wrote:
Noah Roberts writes: Tommy wrote: Hello, I found it is hard to find information on bitboards... I have found lots of infos on search algorithms on the web and I also bought "Scalable search in computer chess, by Heinz". However I would like to master bitboards and I cannot find any good source. Do you know any book/article/web-site which I could buy/download? Crafty is very good, as is gnuchess. Both use bitboards and have pretty readable source. On the other hand, I am not sure using bitboards is a good idea for a complete beginner. Bitboards are rather advanced stuff, and I still don't feel anywhere near competent enough to use them in my own engine (rated 2620 on ICC). I don't think they are really that advanced at all. I am not a beginner at programming, but I am at chess. I had no trouble understanding bitboards once I did the research. They are based on some pretty simple concepts. -- Noah Roberts - "If you are not outraged, you are not paying attention." |
| Thread Tools | |
| Display Modes | |
|
|