바둑은 경우의 수가 너무 많아서, 기존에 존재하는 전체 경우의 수를 빠르게 탐색해 가는 게임 소프트웨어 알고리즘으로는 구현할 수 없어서 그동안 소프트웨어가 정복하지 못한 게임 중 하나였다. 알파고를 포함한 모든 바둑 프로그램의 성능은 바로 어떤 탐색 방법을 사용하느냐에 따라, 승패가 좌우된다고 할 수 있다. 알파고에서는 두 가지 방법을 사용하여 바둑 프로그램을 구현 하였다. 첫째, 몬테카를로 트리 탐색(Monte Carlo Tree Search, MCTS)이라는 인공지능 알고리즘을 적용하였다. 이 알고리즘은 바둑 기사의 착수를 학습한 Policy Network(트리의 폭을 제한)와 국지적인 패턴인식으로 승산 판단을 위한 Value Network(트리의 깊이)의 두 가지 기능으로 구현되어 있다. 둘째로, 프로바둑 기사들의 승리한 수들을 심층 학습(Deep Learning)하여, 승률을 높이도록 하였다.
바둑은 경우의 수가 너무 많아 소프트웨어가 정복하지 못한 게임 중 하나였다. 알파고는 두 가지 방법을 사용하였는데 몬테카를로 트리 탐색 알고리즘 적용과 프로바둑 기사들의 승리한 수를 심층 학습하여 승률을 높이도록 하였다.