"Double Dummy"
#1
Posted 2011-June-27, 10:00
Fortunately for me, I have spotted my own error before embarrassing myself publicly. The question is, other than somehow the printed hand record and the analysis being for two different boards, is it possible for DD to ever be wrong?
#2
Posted 2011-June-27, 10:28
I have never seen, nor heard of Deep Finesse making an error.
Winner - BBO Challenge bracket #6 - February, 2017.
#3
Posted 2011-June-27, 10:32
Phil, on 2011-June-27, 10:28, said:
Deep Finesse will, however, on its lower settings, occasionally miss contracts that could have made. I think that on these settings it doesn't bother to analyse contracts with very short trump fits.
#4
Posted 2011-June-27, 14:35
#5
Posted 2011-June-27, 14:52
So if 2 GIB's produce different results, and there is no input error, than I hope one of them is the version that is corrected.
If you ever see such a hand again it would be great to post it.
#6
Posted 2011-June-27, 15:14
wyman, on 2012-May-04, 09:48, said:
rbforster, on 2012-May-20, 21:04, said:
My YouTube Channel
#7
Posted 2011-June-27, 16:26
#8
Posted 2011-June-27, 18:17
aguahombre, on 2011-June-27, 16:26, said:
I think people thought you were talking about double dummy solvers in general, not any particular one.
#9
Posted 2011-June-27, 20:27
Unless explicitly stated, none of my views here can be taken to represent SCBA or any other organizations.
#10
Posted 2011-June-28, 02:42
#11
Posted 2011-June-28, 04:33
Rossoneri, on 2011-June-27, 20:27, said:
Just to get the Syntax clear:
A DD-Solver looks at all 4 hands and searches for the optimal play for each player knowing the layout of the cards.
I would guess that every current Bridge program also has a SD-Solver.
This Single-Dummy solver, only knows one players hand and when available dummys hand.
GIB's SD-Solver, guesses several deals where the holding of the 2(3 at the lead) unknown hands fit the bidding and the previous played cards.
For each of these deals GIB uses the DD-Solver to find the optimal play on that simulated deal.
You can set the time how long GIB is allowed to do this and by that determinate how many different deals GIB can analyze.
The SD-Solver then picks an action from the established set of good moves on other deals.
The fewer cards are left to play, the more information about the hands is available and the less time the DD-solver needs to analyze a deal.
During the first tricks GIB bases its decisions on a small number of simulations, near the end of a deal GIB can analyze almost all possible holdings.
Analyzing the same deal with the SD-Solver could get you e.g. different leads, because the decision is based on a different set of simulations.
#12
Posted 2011-June-28, 04:33
#13
Posted 2011-June-28, 22:00
So DD solvers generally have options to simplify the analysis to speed it up. But these simplifications mean it's possible that some relevant solutions will be missed.
#14
Posted 2011-June-29, 00:20
barmar, on 2011-June-28, 22:00, said:
So DD solvers generally have options to simplify the analysis to speed it up. But these simplifications mean it's possible that some relevant solutions will be missed.
Sorry but I have to correct you here. There are ways to speed things up so not every possible line has to be analyzed. But please inform yourself before stating such nonsense because speeding things up doesn't necessarily mean that errors can occur.
I once started reading the paper about GIB (didn't finish it though) and one of the first practical things that was explained was a way to speed things up. First it analyzes how many tricks the defense can take without losing a trick because that can be calculated quite fast. This is an absolute maximum declarer can ever achieve. Every other line of play that gives declarer more tricks will be scratched immediately. Say one of the defenders has ♥AKQJT in 3NT. Every line in which the defense doesn't take their tricks immediately and declarer gets 9 tricks is stopped, because the defense could take 5 tricks from the beginning.
Alpha Beta pruning is another way to speed things up (look it up with google) which doesn't make any errors. It uses a min-max strategy, but I'll leave it to others to explain it.
#15
Posted 2011-June-29, 00:42
#16
Posted 2011-June-29, 16:29
#17
Posted 2011-June-29, 19:48
barmar, on 2011-June-29, 16:29, said:
I think in bridge its along the lines of say the defence can cash 5 tricks off the top, then any line where the declarer gets as far as 9 tricks can be discarded without competion as it obviously does not represent best play. Similarly for declarer, if declarer can win any openeing lead and cash 11 tricks, then any line where the defence ends up with 3 tricks can be immeadeatley discarded as not best play.
Of course you can also have heuristics which do introduce errors.i have no specific knowledge of how GIB operates.
#18
Posted 2011-June-30, 00:47
Antrax, on 2011-June-29, 00:42, said:
Really too bad we don't have downvotes anymore, because apparently you don't know how it works. If you have a full evaluation then minimax and alpha-beta-pruning won't cause any errors. It's different if you need an evaluation function for a certain position up to a certain depth, because you can't see beyond that position (which has nothing to do with the pruning btw). But in bridge you can analyze full dept and use 'tricks made by declarer' as a simple evaluation method. Pruning can't cause errors because there's nothing after the 13th trick. If you only evaluate up to 11 tricks, then you can get errors obviously. But pruning is theoritically sound.
Wikipedia said:
During my studies I had to program a board game with an artificial opponent. It was quite interesting because everything depended on the evaluation method. For example, once it found a winning line, there was no need to find quicker alternatives. Modifying the evaluation function made sure it would always take the quickest road to victory.
With the computers at that time, we could could keep the game playable up to a depth of 8 without pruning, with pruning it was up to 15. 8 years later I can play it at a depth of more than 20 (I don't have the game without pruning anymore). So there is a considerable speed advantage.
#19
Posted 2011-June-30, 01:31
So, if you'd downvote me based on my correction of something you've said, maybe it's better that downvotes are gone, since clearly discussing disagreements works better (I hope).
#20
Posted 2011-June-30, 03:20
Ordening the moves doesn't change the mechanism about ABP, it can only make ABP more efficient (read: analyze fewer positions). ABP works best if the first move you analyze enables you to scratch all other moves at that point. So analyzing the best move first makes it faster, analyzing the worst moves first means nothing can be scratched, so a very slow performance. Look at 4 in a row for example. A heuristic method is to order the moves from the center to the borders (because controling the center is usually the best strategy). You have 7 holes, it means you look at moves in the following order: 4, 3, 5, 2, 6, 1, 7. If move 4 is leading to a winning position, then you'll be able to scratch all other moves. However, if only move 7 is able to win, then you'll have to analyze all other moves first (or some, depending on how good the other moves are).
I don't know your background and how you came in touch with ABP, but it's used in many AI situations. You can't compare all games with eachother however. For example, a chess engine may scratch several moves because they seem absurd (= heuristic method to determine if a move is absurd). This is not ABP however, it's just another mechanism to speed things up, following different rules. As a result you may get an error using that heuristic method. ABP however is an algoritm, which always delivers. But getting that algoritm to work even faster, one can use a heuristic method to order the moves. As a result, the algoritm will work faster in many situations, and slower in some, but the result will be unaffected.
A nice applet where you can see ABP in action: http://www.ocf.berke.../alphabeta.html. From the moment the min-step gets a result that's lower than the current max for the max-step, the rest is scratched. Similar, if the max-step reaches a result that's higher than the current min for the min-step, the rest is scratched. In the original applet you have the best move first so a lot can be scratched. If you turn it all around, you won't be able to scratch anything.