古くから,暇な時などに楽しむものとしてゲームは人々に親しまれている.現在では家庭用ゲーム機などに代表されるコンピュータゲームを主に指す言葉として知られているが,もちろんそれだけではない.100m走や幅跳び,砲丸投げなど身体能力を競う競争や競技も"ゲーム"である.また将棋やチェスといった知力を競う"ゲーム"も長い歴史を持ち,その延長上としてコンピュータゲームが登場し,次第に独自の文化を築いている.
特に知力を競うゲームを考えると,その起源は戦争の代替・練習のものとしてあると考えられている.そのためか,ゲームの基本性質として"対戦相手"が存在し,それに"勝利"することが共通した目的がある.ゲームはいくつかのタイプに分類することができるが,常勝(常に勝つ)のための方法・方策について様々な研究が行われ,学問にもなっている\cite{beasley1}.学問的に研究している学者も,プロ・アマ問わずそのゲームの競技者も,基本的にはまずゲームをプレイしルールに慣れ試行錯誤を行うところから始まる.次第に経験を通して勝つためのルールを自分なりに作成していき,常勝への道の探求を行うものである.
本演習では,簡単なゲームを対象にして,ゲームに"勝てる"方法を考え,アルゴリズム化(演算の定型化)を行い,プログラムにすることを目標とする.
N本腕バンディットに対して,よい成績(スコア)を得ることができるプログラムの作成を目標とする.
N本腕バンディットとは,N本のレバーのあるスロットマシンのようなものである.各レバーには当たり確率等が設定されており,レバーを引くことによって"当たり"または"はずれ"が決定する."当たり"となると,報酬(お金など)をもらうことができる.
N本腕バンディット問題とは,プレーヤーはいかに多くの報酬を獲得するか,という問題であり,バンディットとプレーヤー間の競争ゲームとなる.