Please log in to watch this conference skillscast.
In September 2016, Felienne's bridge bot Desiderius (Desi, as she calls him affectionately) will compete in the World Championship of Computer Bridge. In this talk she will explain how she built Desi.
Bridge is a card game with two distinct phases: bidding and playing. For this talk, Felienne will focus mainly on the bidding part, as that is most challenging. In the bidding phase, both pairs of players bid to reach 'the contract': the number of tricks they want to make, and with which trump color. Given the limited bandwidth of communication (players can only communicate with bids) the challenge is to get at the best bid. She made a DSL in F# to describe the bidding rules that her bot will bid with, and she will talk about its design and the choices she made.
For bidding, there are a number of standard systems, but of course she wanted to go a bid further*. Reaching the optimal bid is very important: Failure to make the contract results in a penalty, but not reaching a possible contract does too. Therefore, she used genetic programming to combine different existing bidding strategies to reach the perfect scheme.
The Call for Papers is now open for F# eXchange 2017! Submit your talk for the chance to join a stellar line-up of experts on stage. Find out more.
YOU MAY ALSO LIKE:
- Fast Track to F# with Tomas Petricek & Phil Trelford (in London on 3rd - 4th April 2018)
- Functional Concurrency in .NET with C# & F# with Riccardo Terrell (in London on 3rd - 4th April 2018)
- Progressive .NET London 2018 (in London on 12th - 14th September 2018)
- Scala Advanced with Dick Wall (in London on 10th - 12th December 2018)
Using F# and genetic programming to play computer bridge
Felienne is assistant professor in software engineering at Delft University of Technology, where she researches end-user programming: how can we get people without training in CS to be awesome programmers. In her PhD work she studied the world's most successful programming language: Microsoft Excel, and developed tools for testing, refactoring and measuring spreadsheets.