Author: Dann Corbit
Date: 18:45:03 10/11/05
Go up one level in this thread
On October 11, 2005 at 21:04:09, chandler yergin wrote: >On October 11, 2005 at 20:56:05, Dann Corbit wrote: > >>On October 11, 2005 at 20:27:33, Dann Corbit wrote: >> >>>On October 11, 2005 at 20:16:38, chandler yergin wrote: >>> >>>>On October 11, 2005 at 20:07:20, Dann Corbit wrote: >>>> >>>>>On October 11, 2005 at 20:02:19, chandler yergin wrote: >>>>> >>>>>>On October 11, 2005 at 19:43:16, Dann Corbit wrote: >>>>>> >>>>>>>On October 11, 2005 at 17:46:02, chandler yergin wrote: >>>>>>> >>>>>>>>I apologize if I have offended anyone. >>>>>>>>A case of "Apples & Oranges" again.. >>>>>>>>Misunderstandings.. >>>>>>>>Stephen, and a few others here, know I seldom voice "Opinions"; >>>>>>>>I Post facts.. >>>>>>>>That way... if someone differs from the Post, they should attack the Fact, >>>>>>>>not the Poster. >>>>>>>>It doesn't always work that way... >>>>>>>>Everything I have Posted about Computer Chess Programs..I gave the Link >>>>>>>>Everything else I have Posted about Engines, Analysis Modules, is directly >>>>>>>>from the Chessbase Manual. It therefore refers to the Top Commercial >>>>>>>>Programs only.. Fritz, & Shredder >>>>>>>>Many of you that Program your own Engines 'tweak' them as you desire, >>>>>>>>and have a lot of fun. >>>>>>>>Players mostly use the Top Commercial Programs to assist in their play >>>>>>>>and improve their expertise. >>>>>>>>Thanks to a recent Post by Dan H. some of the confusion has been cleared up. >>>>>>>>Chessbase does use Mini/Max and so does indeed search every legal move >>>>>>>>for every position. >>>>>>> >>>>>>>There is absolutely, postively no way on God's green earth that ChessBase is >>>>>>>using mini/max to search anything. >>>>>> >>>>>>Why do you say that? Fritz gets to over 15 ply almost instantly. >>>>> >>>>>Then either they are computing with Tachyons or they are not using mini/max. >>>>> >>>>>>>We would see a branching factor of around 20 and a 15 ply search would take >>>>>>>years to finish. >>>>>> >>>>>>Please let's settle this. Give me a FEN for any Position >>>>>>OK? >>>>> >>>>>[D]rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - >>>>> >>>>>Here are the correct node counts by ply: >>>>>Depth Perft value Database Verified? >>>>>1 20 Verified OK! >>>>>2 400 Verified OK! >>>>>3 8902 Verified OK! >>>>>4 197281 Verified OK! >>>>>5 4865609 Verified OK! >>>>>6 119060324 Verified OK! >>>>>7 3195901860 Verified OK! >>>>>8 84998978956 Verified OK! >>>>>9 2439530234167 download (Access) Verified OK! >>>>>10 69352859712417 download (Access) Verified OK! >>>>>11 2097651003696806 download (Access) Not verified >>>> >>>>Well here's a real position, one Vincent's hard ones. >>>>2R5/8/8/8/7p/1k2q3/6P1/5Q1K b - - 0 1 >>>>New game, >>>>[D]2R5/8/8/8/7p/1k2q3/6P1/5Q1K b - - 0 1 >>>> >>>>Analysis by Fritz 5.32: >>>> >>>>1...h3-- >>>> +- (6.22) Depth: 1/2 00:00:00 >>>>1...Qg3! >>>> +- (5.69) Depth: 1/7 00:00:00 >>>>1...Qg3! >>>> +- (5.69) Depth: 1/7 00:00:00 >>>>1...Qg3-- >>>> +- (6.12) Depth: 2/7 00:00:00 >>>>1...Qg3 2.Qb1+ Ka4 3.Ra8# >>>> +- (#2) Depth: 2/7 00:00:00 >>>>1...Kb2! >>>> +- (15.75) Depth: 2/8 00:00:00 >>>>1...Kb2 2.Qf6+ Ka2 3.Qxh4 >>>> +- (6.12) Depth: 2/9 00:00:00 1kN >>>>1...Ka2! >>>> +- (6.09) Depth: 2/9 00:00:00 1kN >>>>1...Qe4! >>>> +- (6.06) Depth: 2/9 00:00:00 2kN >>>>1...Qe4-- >>>> +- (6.37) Depth: 3/9 00:00:00 3kN >>>>1...Qe4 2.Rb8+ Kc3 >>>> +- (6.44) Depth: 3/11 00:00:00 4kN >>>>1...Ka2! >>>> +- (6.41) Depth: 3/11 00:00:00 8kN >>>>1...Kb2! >>>> +- (6.37) Depth: 3/11 00:00:00 10kN >>>>1...Kb2 2.Qb5+ Qb3 3.Qe2+ >>>> +- (6.28) Depth: 3/11 00:00:00 11kN >>>>1...Kb2-- >>>> +- (6.66) Depth: 4/13 00:00:00 15kN >>>>1...Kb2 >>>> +- (6.66) Depth: 4/13 00:00:00 18kN >>>>1...Qe4! >>>> +- (6.62) Depth: 4/13 00:00:00 24kN >>>>1...Qe4 2.Rb8+ Kc3 3.Qc1+ >>>> +- (6.44) Depth: 4/13 00:00:00 24kN >>>>1...Qe4-- >>>> +- (6.75) Depth: 5/12 00:00:00 28kN >>>>1...Qe4 2.Rb8+ Kc3 3.Qc1+ Kd4 4.Rb4+ Kd5 5.Qd2+ Ke5 6.Qg5+ >>>> +- (15.09) Depth: 5/15 00:00:00 52kN >>>>1...Kb2! >>>> +- (15.06) Depth: 5/15 00:00:00 61kN >>>>1...Kb2 2.Rb8+ Kc3 3.Qa1+ Kd2 4.Qa2+ Kd1 5.Rb1+ Qc1 6.Qa4+ >>>> +- (10.56) Depth: 5/15 00:00:00 70kN >>>>1...Kb2 2.Rb8+ Kc2 3.Qb1+ Kd2 4.Qa2+ >>>> +- (10.56) Depth: 6/17 00:00:00 151kN >>>>1...Kb2-- >>> >>>At depth 6, the minimax tree has 398,319,124 nodes in it -- not 151,000. >>> >>>> +- (10.87) Depth: 7/19 00:00:00 180kN >>>>1...Kb2 2.Rb8+ Kc2 3.Qb1+ Kd2 4.Rd8+ Kc3 5.Rc8+ Kd4 6.Qd1+ >>>> +- (15.19) Depth: 7/20 00:00:00 1003kN >>>>1...Kb2-- >>>> +- (15.50) Depth: 8/22 00:00:01 1735kN >>>>1...Kb2 2.Qd1 Qe4 3.Qc1+ Kb3 4.Rb8+ Qb4 5.Qb1+ Kc3 6.Qxb4+ >>>> +- (15.91) Depth: 8/22 00:00:02 4025kN >>>>1...Kb2-- >>>> +- (16.22) Depth: 9/21 00:00:02 5583kN >>>>1...Kb2 2.Qb5+ Qb3 3.Qe5+ Kb1 4.Qe1+ Ka2 5.Qa5+ Qa3 >>>> +- (#7) Depth: 9/24 00:00:03 9514kN >>>>1...Qe4! >>>> +- (#8) Depth: 9/24 00:00:08 24514kN >>>> >>>>(, 11.10.2005) >>>E:\crafty\release>Crafty-1920.exe >>> >>>Initializing multiple threads. >>>System is SMP, not NUMA. >>>EPD Kit revision date: 1996.04.21 >>>unable to open book file [./books.bin]. >>>hash table memory = 48M bytes. >>>pawn hash table memory = 6M bytes. >>>EGTB cache memory = 32M bytes. >>>draw score set to 0.00 pawns. >>>choose from book moves randomly (using weights.) >>>choose from 5 best moves. >>>book learning enabled >>>result learning enabled >>>position learning enabled >>>resign after 5 consecutive moves with score < -9. >>>5 piece tablebase files found >>>13980kb of RAM used for TB indices and decompression tables >>> >>>Crafty v19.20 (1 cpus) >>> >>>White(1): new >>>White(1): post >>>White(1): setboard 2R5/8/8/8/7p/1k2q3/6P1/5Q1K b - - 0 1 >>> puzzling over a move to ponder. >>> depth time score variation (1) >>>Black(1): Kb2 [pondering] >>>Hint: Kb2 >>> clearing hash tables >>> time surplus 0.00 time limit 30.00 (3:30) >>> depth time score variation (1) >>> 8 1.23 Mat08 2. Qd1 Qe4 3. Qc1+ Kb3 4. Rc3+ Ka4 >>> 5. Qa3+ Kb5 6. Rc5+ Kb6 7. Qa5+ Kb7 >>> 8. Rc7+ Kb8 9. Qa7# >>> 8 32752 123 1745870 2. Qd1 Qe4 3. Qc1+ Kb3 4. Rc3+ Ka4 5. Qa3+ >>>Kb5 6. Rc5+ Kb6 7. Qa5+ Kb7 8. Rc7+ Kb8 9. Qa7# >>> 8-> 3.37 Mat08 2. Qd1 Qe4 3. Qc1+ Kb3 4. Rc3+ Ka4 >>> 5. Qa3+ Kb5 6. Rc5+ Kb6 7. Qa5+ Kb7 >>> 8. Rc7+ Kb8 9. Qa7# >>> 8 32752 337 2982614 2. Qd1 Qe4 3. Qc1+ Kb3 4. Rc3+ Ka4 5. Qa3+ >>>Kb5 6. Rc5+ Kb6 7. Qa5+ Kb7 8. Rc7+ Kb8 9. Qa7# >>> 9 3.79 Mat08 2. Qd1 Qe4 3. Qc1+ Kb3 4. Rc3+ Ka4 >>> 5. Qa3+ Kb5 6. Rc5+ Kb6 7. Qa5+ Kb7 >>> 8. Rc7+ Kb8 9. Qa7# >>> 9 32752 379 3261904 2. Qd1 Qe4 3. Qc1+ Kb3 4. Rc3+ Ka4 5. Qa3+ >>>Kb5 6. Rc5+ Kb6 7. Qa5+ Kb7 8. Rc7+ Kb8 9. Qa7# >>> 9-> 10.40 Mat08 2. Qd1 Qe4 3. Qc1+ Kb3 4. Rc3+ Ka4 >>> 5. Qa3+ Kb5 6. Rc5+ Kb6 7. Qa5+ Kb7 >>> 8. Rc7+ Kb8 9. Qa7# >>> 9 32752 1040 9584141 2. Qd1 Qe4 3. Qc1+ Kb3 4. Rc3+ Ka4 5. Qa3+ >>>Kb5 6. Rc5+ Kb6 7. Qa5+ Kb7 8. Rc7+ Kb8 9. Qa7# >>>easy 10 10.42 1/35? 2. Qd1 >>>Black(1): easy >>>pondering disabled. >>>Black(1): setboard 2R5/8/8/8/7p/1k2q3/6P1/5Q1K b - - 0 1 >>>Black(1): perft 1 >>>total moves=29 time=0.00 >>>Black(1): setboard 2R5/8/8/8/7p/1k2q3/6P1/5Q1K b - - 0 1 >>>Black(1): perft 2 >>>total moves=897 time=0.00 >>>Black(1): setboard 2R5/8/8/8/7p/1k2q3/6P1/5Q1K b - - 0 1 >>>Black(1): perft 3 >>>total moves=19619 time=0.00 >>>Black(1): setboard 2R5/8/8/8/7p/1k2q3/6P1/5Q1K b - - 0 1 >>>Black(1): perft 4 >>>total moves=613468 time=0.08 >>>Black(1): setboard 2R5/8/8/8/7p/1k2q3/6P1/5Q1K b - - 0 1 >>>Black(1): perft 5 >>>total moves=12686150 time=2.25 >>>Black(1): setboard 2R5/8/8/8/7p/1k2q3/6P1/5Q1K b - - 0 1 >>>Black(1): perft 6 >>>total moves=398319124 time=62.39 >>>Black(1): setboard 2R5/8/8/8/7p/1k2q3/6P1/5Q1K b - - 0 1 >>>Black(1): perft 7 >> >>Ply 7 finished: >>Black(1): perft 7 >>total moves=8104332052 time=1499.53 >>Black(1): >> >>If after 7 plys from the position you supplied, you notice that the engine has >>searched 8,104,332,052 positions -- we know two things. >>1. That engine is using the mini/max algorithm. >>2. The author is not a good chess programmer. > > >But that was Crafty was it not? >What do you deduce from Fritz? That is the number of nodes, working forward 7 plies from the start. If a program searches less than that, you would agree that it is not searching all the nodes, I hope. It does not matter who counted them. Actually, if a program gets a different value for perft, it is probably broken (a serious bug exists in calculation). The demonstration is that I showed you how many nodes that there are to examine. If you do a search and not that many nodes are examined, then the program is not examining them all. If it does not examine all the nodes it is not using minimax. If it examines less than sqrt(nodes) then it is not even using pure alpha/beta because in a perfectly ordered tree, alpha/beta will still examine a number proportional to sqrt(nodes). The EBF for alpha/beta is estimated at about 6. And so you can measure the EBF of Fritz 5.32 for a large number of positions and then find out if the EBF is less than that. If it is less than that, then it is using some kind of forward pruning like null move heuristic. Don't forget that quiescent nodes add greatly to the total in early plies. Perft 7 gave 8104332052 nodes. On ply 7 Fritz 5.32 examined 1003kN nodes (about one million). We can therefore conclude that Fritz is not using mini/max. I do not think we have enough data to prove that Fritz is not using pure alpha/beta but because Fritz plays strongly I think we can safely assume it. More data (especially for deep searches) will certainly bear this out.
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.