   SSS* and SSS-2 Implementations
  I was wondering if anybody can provide me with links and/or source code with C/C++/Java implementations of the SSS* and/or SSS-2 algorithms(for use with the minimax algorithm). 
  Never heard of it, but there are lots of white papers though.  That should do.   AiGameDev.com;  I didn''t know of it either, but I took a look at one of the papers from alexjc''s google link, and it concluded that SSS* isn''t a very good algo. It''s hard to understand and takes lots of memory. An iterative deepening move reordering alpha/beta with a transposition table seems to be a lot better choice. But there was also some NegaScout and MTD that beat such alpha/beta. ;  Well I was under the impression that a best-first(SSS*) algorithm was more efficient than a depth-first algorithm(Negascout ect), I know its implemented in many applications, such as Dijkstra''s algorithm... ;quote:Original post by eleusive  Well I was under the impression that a best-first(SSS*) algorithm was more efficient than a depth-first algorithm(Negascout ect), I know its implemented in many applications, such as Dijkstra''s algorithm...   For game playing, SSS* is a good algorithm in theory, but in practice it would require way more memory than is available on any normal computer system since it is a best first search. Instead, you should probably have a look at MTD(f) and its variants. Have a look at this website. That website says:"Incidentally, one of the MTD instances is equivalent to SSS*, George Stockman''s best-first minimax algorithm that promised to be more efficient than AlphaBeta. (By equivalent I mean that the two algorithms look different, but search the same nodes.)"So basically MTD(f) is a depth-first search that is "equivalent" to SSS*. I''ve heard some people disagree that it is technically equivalent (it searches the same nodes, but in a different order, I think).The main algorithm people use in their chess programs is PVS (basically Negascout), or MTD(f). There are a few out there who have had some success with other things like conspiracy number search or proof number search (or some variant of those, like proof number squared search). Anyway, give MTD(f) a try if you''re interested in SSS*.You also might try asking your question at the Computer Chess Club. There are plenty of people there who know a lot more about this than I do. Lots of professors with their PhD in this kind of stuff, professional chess programmers, and plenty of hobbyists who have read up on this kind of stuff and implemented it and played with it. I just follow their discussions so I know a little. ;quote:Original post by Russell  So basically MTD(f) is a depth-first search that is "equivalent" to SSS*. I''ve heard some people disagree that it is technically equivalent (it searches the same nodes, but in a different order, I think).I should add that it is not MTD(f) that is equivalent to SSS*, but a variant of MTD(f). MTD(f) will visit some of the nodes more than once since only a portion of the nodes searched can be stored ("remembered") in the transposition table (hash table).