I used a core 2 duo 2Ghz with 2Gb and only one core activated for the generation process (I used the other core for developping purpose). In addition I am only in a 32bits environement. I suppose the algorithm would have a great impact on the time; I made a lot effort on it but of course I am not sure to have the best one ! For your information I took 2,5 days for generating the 6 pieces db and 81 days for generating the 7 pieces db.BertTuyt wrote: How long (based on your experiences) do you think it will take on My Quad Q6600 ( 2.4 Ghz), with only 1 core activated (im not sure if it is possible and/or easy, to re-write the program to use all 4 cores).
Bert
My opinion is that you do not need to re-write your program to use all the 4 cores because you may simply run 2 (or more) instances of your program, the first instance generating the 4x3db and the second the 5x2db. I do not see any gain to have a true multicore generating process. It will be a lot of effort with almost no gain.
It could be a good idea for running 2 or more instances of your program. Otherwise I think it is suffisant to have 2Gb.BertTuyt wrote: Looking to the prices of Memory it is easy to install 8 GigaByte Memory (16 Giga in 4 GigaByte chunks is , i guess, not so widely available). Do you think it would be beneficial to install 8 GigaByte, to drastically reduce Disk-IO during this process, as I think that this could have a positive effect on the time needed.
Bert
Can you give me a good reference article on this algorithm ?BertTuyt wrote: Im now focussing on pruning and testing the MPC algorithm.
Bert
Let me give you another strong motivation to generate this 7 pieces db.BertTuyt wrote: When I red your conversation with Ed im really motivated to also start on DBs , so i hope i can contribute to the discussion and generate new ideas (going where no-one has gone before).
Bert
Take the following position :
White to play
The above position is a draw. Now that I have the 7 pieces db I am working on a special algorithm to try and trap a program with only the 6 pieces algorithm.
The idea is the following :
Let's consider first the "naturel" move 1.02-16
On this move there exists 11 black responses; according to 7 pieces db, 2 are correct (1..05-46 and 1...05-37) and the 9 other moves are wrong. If now the black side is a program with only the 6 pieces db it will not know that the 2 moves 1..05-46 and 1...05-37 are correct but (and here is the interesting point) it will easily demonstrate that the 9 other moves are losing move. It is very easy to recognise this situation and conclude that 1.02-16? is a bad move because a program with only the 6 pieces db will always play ont of the 2 correct moves.
Now consider the move 1.02-07. Black has 11 possible answers with 6 correct moves (05-10, 05-14, 05-19, 05-28, 05-37 and 05-46) and the 5 other moves are wrong. But now a program with only the 6 pieces db will easily demonstrate that 4 moves are wrong but it will not be able to demonstrate that the move 1...25-30? is a losing move. Damy can recognise the situation and conclude that a program with only the 6 pieces db will hesitate only between 05-10, 05-14, 05-19, 05-28, 05-37, 05-46 and ... 25-30. As a consequence black might choose the wrong move and lose the game.
Conclusion : 1.02-16? forces the oppenent to choose a good move but 1.02-07 put in place a terrible trap ! Damy has to play 1.02-07!
Second illustration with almost the same position :
White to move.
Let's take as an exemple a move of white king on the 04-22 diagonal :
1.27-13? is rather a bad move because most of the programs will remain the black king on the long diagonal which are good moves.
1.27-09? is also a bad move because the 7 pieces db tells us that the answer 1...25-30! allows a draw (=> no trap)
1.27-04? is also a bad move because any program with the 6 pieces db will immediatly see that 1...25-30? is not correct due to 2.47-41 (=> no trap)
1.27-18? is also bad because of the immediat 1...36-41 (=> no trap)
1.27-22!! is the good move. Now a program with only the 6 pieces db will have enormous difficulties to demonstrate that 1...25-30 will be a bad move.
Will Damage be able to avoid this 25-30? move in my 2 examples ?
If not I think we will be already motivated by building the 7 pieces db !
In addition I found some interesting improvments of this very simple algorithm in order to handle 7 pieces draw positions when playing a game against a program having only the 6 pieces db.
Now I guess you are very motivated by building this 7 pieces db ! Aren't you.
Gérard