Chris Pollett > Students > Philip

    Print View



    [CS 297 Proposal]

    [Del-1: Base classes for Bluff]

    [Del-2: Human only Bluff]

    [Del-3: Simple AI player]

    [Del-4: Presentation on Poker AI players]

    [Del-5: CS297 Report_PDF]

    [CS 298 Proposal]

    [CS 298 Report_PDF]

    [CS 298 Slides_PDF]

CS297 Proposal

"Bluff" with AI


Advisor: Dr. Chris Pollett


The goal of this project is to build an AI that learns how to play Bluff. Bluff is a multi-player card game in which each player makes a sequence of decisions based on a partially-observed game state that evolves under uncertainty. The back bone of the implementation is a neural network with back-propagation. The network is made of a single neuron, possessing a single byte of intelligence. The neuron has "weights" and a "threshold"; the neuron "fires" when the value of the activation function computed over the current input exceeds the current threshold. In game terms, using the current score and the number of aces on hand the neuron decides if to draw another card or to stay. The threshold (the neuron's memory) is adjusted as the game proceeds, using back-propagation.


Week 1: Feb 7 - Feb 14Understand the game Bluff, Read Chapter 5 from Rossel and Norwig's AI book.
Week 2: Feb 14 - Feb 21Find a good algorithm for permutation of cards.
Week 3: Feb 21 - Feb 28Deliverable 1: Notation to represent the game.
Week 4: Feb 28 - Mar 7Implement the basic deck and maintain it.
Week 5: Mar 7 - Mar 14Maintain the cards of players as a randomly generated array.
Week 6: Mar 14 - Mar 21Code a human only Bluff game.
Week 7: Mar 21 - Apr 4Deliverable 2: Code for a human only Bluff game.
Week 8: Apr 4 - Apr 11Finish up on the Human only Bluff game
Week 9: Apr 11 - Apr 18Work on the Simple AI player.
Week 10: Apr 18 - Apr 25Deliverable 3: Code for a simple AI player to play Bluff.
Week 11: Apr 25 - May 2Deliverable 4: Read, understand and present about strategies in Poker to build an Intelligent AI player.
Week 12: May 2 - May 9CS297 Report Draft 1
Week 13: May 9 - May 16Deliverable 5: CS297 Final Report


The full project will be done when CS298 is completed. The following will be done by the end of CS297:

1. Notation to represent the game. Find a good algorithm for permutation of cards

2. Code a human only Bluff game.

3. Code a simple AI player to play Bluff.

4. Read about strategies used in Poker for AI players.

5. CS297 Report


[1] Hurwitz, Evan, and Tshilidzi Marwala. "Learning to bluff." Systems, Man and Cybernetics, 2007. ISIC. IEEE International Conference on. IEEE, 2007.

[2] Darse Billings. "Algorithms and Assessment in Computer Poker, " Ph.D. Dissertation, 2006, University of Alberta, Edmonton, Alta., Canada. AAINR22991.

[3] Russell, Stuart, Peter Norvig, and Artificial Intelligence. "A modern approach."Artificial Intelligence. Prentice-Hall, Egnlewood Cliffs 25 (1995): 27.

[4] Pollett, C. (2015, Feb 2), Random Permutations, the Birthday Problem, Ball and Bins Arguments. [Powerpoint slides]. Retrieved from: Powerpoint slides

[5] Eastaugh, B. (2014, Feb 8). The Mathematics of Bluffing [Blog post]. Retrieved from Website link

[6 Moravcik, M., Schmid, M., Burch, N., Lisy, V., Morrill, D., Bard, N and Bowling, M. (2017). DeepStack: Expert-Level Artificial Intelligence in No-Limit Poker. arXiv preprint arXiv:1701.01724.

[7] Koller, Daphne, and Avi Pfeffer. "Generating and solving imperfect information games." IJCAI. 1995. Download as pdf