AIにソートアルゴリズムを設計させる

幾つかの箱がランダムに一列に並べられている。以下の3つの機能を規則的に繰り返すことで、ランダムに並べられていた箱の列を、箱の重さが軽い順に並べ替えることができる。

これら3つの機能を使ってソートさせるゲームアプリを開発し、小学生高学年に遊んでもらったところ、多少のヒントは与えるが独力でやり方を考えてもらい、結果として約3割の小学生がバブルソート的なアルゴリズムを設計できることが確認できた。バブルソートは、人間にとって設計し易いアルゴリズムと言える。

AIはソートアルゴリズムを設計できるのか?

AIはソートアルゴリズムを設計できるのか?

この教育用ゲームのポイント

アルゴリズムの設計にはコードを書く作業、すなわちプログラミング能力が必要と考えがちだが、必ずしもコードを書く必要はない。例えるなら、作曲するために楽譜が書けなければいけないと考えがちだが、ピアノやギターなどの楽器が演奏できれば、本質的な意味で作曲が可能となる。つまり小学生たちの頭の中にあるアルゴリズムを実演できるツールがあればよい。

プレイログ、記号列、強化学習

この教育用ゲームのプレイログは、それぞれの機能の情報を記号に置き換えれば、それは単なる記号列(の集合)となる。記号列がソート状態を導くなら報酬を与え、そうでないなら(必要に応じて)ペナルティを与えることで、強化学習が可能となる。すなわち(小学生ではなく)AIにソートアルゴリズムを設計させることが可能となる。人間と同じように、バブルソートがAIにとって設計し易いアルゴリズムなのであろうか?人の思考とAIの思考にはどんな差があるのか?

アルゴリズムを設計したと言えるのか? 中国語の部屋

上述した方法で、AIがソート状態に導く方法を学習できたとして、それは「AIがアルゴリズムを設計できた」といってよいのか?これは古くから議論されている、中国語の部屋と本質的に等しい問いとみなせる。

計算量  処理コスト vs. 設計コスト

問題の難しさを研究する計算複雑性理論の分野では、計算量の物差しとしては「問題を解くコスト(計算・処理時間、必要となるメモリ)」が中心である。本研究では、「問題の解き方を発見するコスト」を物差しとして問題の難しさを研究している。