Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
Shall We Play A Game? by Randy Coulman Teaching computers to play games has been a pursuit and passion for many programmers. Game playing has led to many advances in computing over the years, and the best computerized game players have gained a lot of attention from the general public (think Deep Blue and Watson). Using the Ricochet Robots board game as an example, let's talk about what's involved in teaching a computer to play games. Along the way, we'll touch on graph search techniques, data representation, algorithms, heuristics, pruning, and optimization. Help us caption & translate this video! http://amara.org/v/H0nI/
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
In his talk "Shall We Play A Game?" at RubyConf 2015, Randy Coulman explores the fascinating intersection of computer science and game playing, emphasizing the algorithms and data structures that enable computers to play complex games effectively. Coulman introduces the Ricochet Robots board game as a case study to demonstrate how computer algorithms can be applied to game mechanics, while also illustrating broader applications of these concepts in computer science. Key points discussed include: - **Historical Context**: Game playing has significantly influenced advancements in computing, from simple games like tic-tac-toe to powerful examples like IBM's Deep Blue and Watson. - **Game Representation**: To teach computers to play games, it’s essential to represent game states accurately, particularly for Ricochet Robots, which consists of a grid with static and dynamic elements. - **Algorithmic Foundations**: Coulman explains various algorithms such as depth-first search, breadth-first search, and best-first search, detailing their applications in navigating game states and finding optimal solutions. - **State Management**: With approximately 976 billion possible game states, efficient state management is crucial. Key strategies in simplifying problem-solving include minimizing storage, using trees for data representation, and avoiding redundant state visits through tracking. - **Optimizations**: Several optimizations are outlined, such as heuristic methods to enhance search efficiency, pre-computed charts for robot movements, and using sorted arrays for quicker equivalence checks. These greatly improve the processing speed of the computer game player. - **Advanced Search Techniques**: Best-first search is presented as a more sophisticated approach that prioritizes exploring promising nodes based on calculated distances to goals, illustrated with A* algorithm examples. Coulman concludes by emphasizing the potential for further improvements in game-playing algorithms, notably in collision detection and robot movement strategies. He also expresses gratitude to collaborators and invites engagement with his code posted on GitHub, highlighting practical implications of these algorithms in real-world hierarchical data problems. The talk encapsulates not just the complexity of teaching computers to play games, but also the rich foundation of computer science that arises from this endeavor.
Suggest modifications
Cancel