BBO Discussion Forums: "Double Dummy" - BBO Discussion Forums

Jump to content

  • 2 Pages +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

"Double Dummy"

#1 User is offline   aguahombre 

  • PipPipPipPipPipPipPipPipPipPip
  • Group: Advanced Members
  • Posts: 12,029
  • Joined: 2009-February-21
  • Gender:Male
  • Location:St. George, UT

Posted 2011-June-27, 10:00

A few times I, and surely others, have looked at a hand record for a particular board and have become convinced that Double Dummy has made a mistake.

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?
"Bidding Spades to show spades can work well." (Kenberg)
0

#2 User is offline   Phil 

  • PipPipPipPipPipPipPipPipPipPip
  • Group: Advanced Members
  • Posts: 10,092
  • Joined: 2008-December-11
  • Gender:Male
  • Location:North Texas, USA
  • Interests:Mountain Biking

Posted 2011-June-27, 10:28

GIB is fallible on DD analysis. I haven't seen it a lot, but I have on occasion. Stranger still, I have been on the phone with someone going over a hand record looking at GIB results, and the results differ.

I have never seen, nor heard of Deep Finesse making an error.
Hi y'all!

Winner - BBO Challenge bracket #6 - February, 2017.
0

#3 User is offline   Vampyr 

  • PipPipPipPipPipPipPipPipPipPip
  • Group: Advanced Members
  • Posts: 10,611
  • Joined: 2009-September-15
  • Gender:Female
  • Location:London

Posted 2011-June-27, 10:32

 Phil, on 2011-June-27, 10:28, said:

I have never seen, nor heard of Deep Finesse making an error.


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.
I know not with what weapons World War III will be fought, but World War IV will be fought with sticks and stones -- Albert Einstein
0

#4 User is offline   nigel_k 

  • PipPipPipPipPipPip
  • Group: Advanced Members
  • Posts: 2,207
  • Joined: 2009-April-26
  • Gender:Male
  • Location:Wellington, NZ

Posted 2011-June-27, 14:35

I have the source code and there appear to be 'shortcuts' in there that could possibly give rise to errors. We aren't yet at the point where a normal PC can compute a double dummy solution in reasonable time using brute force with only the obvious improvements such as choices among equal cards. Maybe such a hand could even be reverse engineered from the source code if I had nothing better to do with my time.
0

#5 User is offline   hotShot 

  • Axxx Axx Axx Axx
  • PipPipPipPipPipPipPip
  • Group: Advanced Members
  • Posts: 2,976
  • Joined: 2003-August-31
  • Gender:Male

Posted 2011-June-27, 14:52

In theory the DD-Solver can not go wrong, but software is programmed by humans and humans can implement software bugs and software runs on hardware created by humans and sometimes they have engineered a bug into the hardware.

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.
0

#6 User is offline   Hanoi5 

  • PipPipPipPipPipPipPip
  • Group: Advanced Members
  • Posts: 4,082
  • Joined: 2006-August-31
  • Gender:Male
  • Location:Santiago, Chile
  • Interests:Bridge, Video Games, Languages, Travelling.

Posted 2011-June-27, 15:14

I read about a mistake in Deep Finesse not so long ago. In fact, it was prior to Dealmaster pro change to another DD solver.

 wyman, on 2012-May-04, 09:48, said:

Also, he rates to not have a heart void when he leads the 3.


 rbforster, on 2012-May-20, 21:04, said:

Besides playing for fun, most people also like to play bridge to win


My YouTube Channel
0

#7 User is offline   aguahombre 

  • PipPipPipPipPipPipPipPipPipPip
  • Group: Advanced Members
  • Posts: 12,029
  • Joined: 2009-February-21
  • Gender:Male
  • Location:St. George, UT

Posted 2011-June-27, 16:26

I made a term mistake in the OP. I meant Deep Finesse, unaware that the Gib thing was called DD-Solver. Anyway, I appreciate not being taken to task for that; and people answering about both.
"Bidding Spades to show spades can work well." (Kenberg)
0

#8 User is offline   barmar 

  • PipPipPipPipPipPipPipPipPipPipPipPip
  • Group: Admin
  • Posts: 21,589
  • Joined: 2004-August-21
  • Gender:Male

Posted 2011-June-27, 18:17

 aguahombre, on 2011-June-27, 16:26, said:

I made a term mistake in the OP. I meant Deep Finesse, unaware that the Gib thing was called DD-Solver. Anyway, I appreciate not being taken to task for that; and people answering about both.

I think people thought you were talking about double dummy solvers in general, not any particular one.

#9 User is offline   Rossoneri 

  • Wabbit
  • PipPipPipPipPip
  • Group: Full Members
  • Posts: 974
  • Joined: 2007-January-13
  • Gender:Male
  • Location:Singapore

Posted 2011-June-27, 20:27

AFAIK, GIB uses some heuristics/simulation so it is possible for the correct "solution" to be missed.
SCBA National TD, EBU Club TD

Unless explicitly stated, none of my views here can be taken to represent SCBA or any other organizations.
0

#10 User is offline   Free 

  • mmm Duvel
  • PipPipPipPipPipPipPipPipPipPip
  • Group: Advanced Members
  • Posts: 10,728
  • Joined: 2003-July-30
  • Gender:Male
  • Location:Belgium
  • Interests:Duvel, Whisky

Posted 2011-June-28, 02:42

If a DD solver is deterministic, then it shouldn't make any mistakes and it will always produce the same result. So when a program produces different results it's either because you have a different version (one of which contains an error) or because it uses heuristics. I can't imagine programs would use heuristics for something like DD solving, except to make it faster (which is quite irrelevant these days). GIB is rather old, so it may be possible it makes mistakes.
"It may be rude to leave to go to the bathroom, but it's downright stupid to sit there and piss yourself" - blackshoe
0

#11 User is offline   hotShot 

  • Axxx Axx Axx Axx
  • PipPipPipPipPipPipPip
  • Group: Advanced Members
  • Posts: 2,976
  • Joined: 2003-August-31
  • Gender:Male

Posted 2011-June-28, 04:33

 Rossoneri, on 2011-June-27, 20:27, said:

AFAIK, GIB uses some heuristics/simulation so it is possible for the correct "solution" to be missed.


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.
0

#12 User is offline   whereagles 

  • PipPipPipPipPipPipPipPipPipPip
  • Group: Advanced Members
  • Posts: 14,900
  • Joined: 2004-May-11
  • Gender:Male
  • Location:Portugal
  • Interests:Everything!

Posted 2011-June-28, 04:33

hmmm... errors in DD analyzers? I've once seen a slam that "the oracle" (as I call it lol) says it makes, but I've never found out how. That might be it. Gotta check where I got the hand.
0

#13 User is offline   barmar 

  • PipPipPipPipPipPipPipPipPipPipPipPip
  • Group: Admin
  • Posts: 21,589
  • Joined: 2004-August-21
  • Gender:Male

Posted 2011-June-28, 22:00

A complete DD analysis of a hand is pretty complex, it has to examine every legal order of card play. If you're preparing the hand records for a full session of deals (over 30 boards), this has to be done 20 times for each hand (4 declarers X 5 denominations). If each analysis took 30 seconds, it would take 5 hours to analyze all the hands.

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 User is offline   Free 

  • mmm Duvel
  • PipPipPipPipPipPipPipPipPipPip
  • Group: Advanced Members
  • Posts: 10,728
  • Joined: 2003-July-30
  • Gender:Male
  • Location:Belgium
  • Interests:Duvel, Whisky

Posted 2011-June-29, 00:20

 barmar, on 2011-June-28, 22:00, said:

A complete DD analysis of a hand is pretty complex, it has to examine every legal order of card play. If you're preparing the hand records for a full session of deals (over 30 boards), this has to be done 20 times for each hand (4 declarers X 5 denominations). If each analysis took 30 seconds, it would take 5 hours to analyze all the hands.

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. ;)
"It may be rude to leave to go to the bathroom, but it's downright stupid to sit there and piss yourself" - blackshoe
0

#15 User is offline   Antrax 

  • PipPipPipPipPipPip
  • Group: Advanced Members
  • Posts: 2,458
  • Joined: 2011-March-15
  • Gender:Male

Posted 2011-June-29, 00:42

Huh. Alpha Beta pruning surely can cause errors if it's to speed anything up at all. Generally speaking, "free" speedups are of the variety you mentioned + not searching symmetric situations more than once + hash tables where applicable.
0

#16 User is offline   barmar 

  • PipPipPipPipPipPipPipPipPipPipPipPip
  • Group: Admin
  • Posts: 21,589
  • Joined: 2004-August-21
  • Gender:Male

Posted 2011-June-29, 16:29

I'm familiar with minimax and alpha-beta pruning. It requires you to have a heuristic evaluation function that calculates how "good" a position is after each play. Is there such a function for bridge? I believe these algorithms are more appropriate when planning the play in games where it's not feasible to do a full analysis, like chess (and I assume that chess programs switch from minimax to exhaustive analysis in the end game).

#17 User is offline   phil_20686 

  • Scotland
  • PipPipPipPipPipPipPip
  • Group: Advanced Members
  • Posts: 2,754
  • Joined: 2008-August-22
  • Gender:Male
  • Location:Scotland

Posted 2011-June-29, 19:48

 barmar, on 2011-June-29, 16:29, said:

I'm familiar with minimax and alpha-beta pruning. It requires you to have a heuristic evaluation function that calculates how "good" a position is after each play. Is there such a function for bridge? I believe these algorithms are more appropriate when planning the play in games where it's not feasible to do a full analysis, like chess (and I assume that chess programs switch from minimax to exhaustive analysis in the end game).


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.
The physics is theoretical, but the fun is real. - Sheldon Cooper
0

#18 User is offline   Free 

  • mmm Duvel
  • PipPipPipPipPipPipPipPipPipPip
  • Group: Advanced Members
  • Posts: 10,728
  • Joined: 2003-July-30
  • Gender:Male
  • Location:Belgium
  • Interests:Duvel, Whisky

Posted 2011-June-30, 00:47

 Antrax, on 2011-June-29, 00:42, said:

Huh. Alpha Beta pruning surely can cause errors if it's to speed anything up at all. Generally speaking, "free" speedups are of the variety you mentioned + not searching symmetric situations more than once + hash tables where applicable.

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:

Alpha-beta pruning is a search algorithm which seeks to decrease the number of nodes that are evaluated by the minimax algorithm in its search tree. It is an adversarial search algorithm used commonly for machine playing of two-player games (Tic-tac-toe, Chess, Go, etc.). It stops completely evaluating a move when at least one possibility has been found that proves the move to be worse than a previously examined move. Such moves need not be evaluated further. When applied to a standard minimax tree, it returns the same move as minimax would, but prunes away branches that cannot possibly influence the final decision.


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.
"It may be rude to leave to go to the bathroom, but it's downright stupid to sit there and piss yourself" - blackshoe
0

#19 User is offline   Antrax 

  • PipPipPipPipPipPip
  • Group: Advanced Members
  • Posts: 2,458
  • Joined: 2011-March-15
  • Gender:Male

Posted 2011-June-30, 01:31

Free, your further post clarifies what you meant to say in your first post. However, your first post is still incorrect. There's nothing about the alpha-beta pruning algorithm that ensures that good moves aren't pruned - as you later point out, it's a function of the maximum depth you're allowed to search, and as the Wikipedia article you cite from points out, it's also a function of "good" move ordering. Since the discussion was about speed-up, I said what I believe is true based on my own knowledge and experience, that few ways exist for a real, guaranteed speed up with no negative side effects: one of them is alpha-beta if you have some heuristics for ordering the search order such that AKQJT combinations are searched before others, and the others I've mentioned.
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).
0

#20 User is offline   Free 

  • mmm Duvel
  • PipPipPipPipPipPipPipPipPipPip
  • Group: Advanced Members
  • Posts: 10,728
  • Joined: 2003-July-30
  • Gender:Male
  • Location:Belgium
  • Interests:Duvel, Whisky

Posted 2011-June-30, 03:20

I highlighted the most important part of the wiki quote, because it seems you're still convinced ABP (alfa-beta pruning - getting tired of typing it completely ;) ) causes errors, which it doesn't (= reason for the downvote, you're claiming something which just isn't true).

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.
"It may be rude to leave to go to the bathroom, but it's downright stupid to sit there and piss yourself" - blackshoe
0

  • 2 Pages +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

10 User(s) are reading this topic
0 members, 10 guests, 0 anonymous users