Thanks, Nick. I will try with more neurons in the middle layer. I think this is more complex than backgammon so I might need several hundreds.
In the meantime I have done 100,000 generations with constructive auctions. It is not very good but at least better than random. 1000 deals, result compared to PAR:
_____Neural Network
__PO PS_ G
PO 3 71 88
PS 2 135 278
G_ 2 157 264
(This table shows that for example on 71 boards PAR was passout but it bid a partscore. On 264 PAR was game and it bid game). With respect to denomination it is only slightly better than random.
Quote
the business of deciding what is legal or not can stay in a procedural part of the program.
It is, sorry if I didn't make this clear.
Quote
Also - do you need to tell it what the hcp is - let it learn what cards are good - ok it blows up your input layer - so what.
Yeah but it appears already to be too difficult so I don't want to add to the complexity.
Maybe it would make sense fist to train one neural network to predict rewards looking at both hands, and then somehow use that network when constructing networks for bidding.
Quote
not sure that you want to concentrate on constructive auctions only
Yes, conceptually contested auctions are simpler because you don't have the issue of which hands to include. You just include all of them. Also, in terms of programming and in terms of computing time it doesn't make much of a difference. It's just that the results from the contested auctions were pretty useless so I thought maybe it would be easier if EW were made silent.
Of the final population (100 systems), here is a randomly chosen system's 3rd seat opening scheme (the initial pass could be anything):
Pass: 0-8 points, 5- spades
1
♣: could be anything
1
♦: 6-18 points, 4- diamonds, 5-hearts
1
♥: 7-8 points, 2-4 clubs, 3- diamonds, 5-6 hearts, 3-4 spades
1
♠: 5-19 points, 2+ clubs, 5- diamonds, 1-6 spades
1NT: 5+ points, 5- clubs, 2+ spades
2
♣: could be anything
2
♦: 5+ points
2
♥: 10+ points, 3-suited short in spades
Obviously there is a lot of overlap here so apparently most openings (except for the well-defined 1
♥ and 2
♥ openigns) must be some kind of multi-bids. Not sure how to make sense of those, any ideas? I tried a classification tree algorithm, leading to
Pass: 0-6 HCPs, 3+clubs, 4+ hearts
1
♣: 0-9 HCP, 3+ clubs, 4+ diamonds
or 10+ HCPs, 3- clubs, 2- spades
or 10+ HCPs, 4+ clubs, 1- spades
1
♦: 10+ HCPs, 5+ clubs, 4+ spades.
1
♥: (undefined)
1
♠: 7-9 HCPs, 3+ clubs, 5+ hearts, 2 spades
or 10-12 HCPs, 4+ clubs, 5+ hearts, 2-3 spades
1NT: 10+ HCPs, 2- clubs, 3+ spades
or 12+ HCPs, 4+ clubs, 2-3 spades
2
♣: 0-6 HCPs, 3+ clubs, 3- hearts
or 0-6 HCPs, 3+ clubs, 2- spades
or 0-9 points, 2- clubs, 3- diamonds
or 10-11 HCPs, 4+ clubs, 2-3 spades
2
♦: 7-9 HCPs, 3+ clubs, 3+ spades
or 10 HCPs, 3 clubs, 3+ spades
or 10+ HCPs, 4+ clubs, 4+ spades
Sorry to bother you with negative findings, this obviously doesn't work.
I'll try with some more hidden neurons. Any other ideas are very welcome. Also, I am happy to share code if anyone wants to have a go.
The world would be such a happy place, if only everyone played Acol :) --- TramTicket