2016年入社・新人部内研修の一部を紹介

内容

課題

中心座標(0,0,0)の半径1.0の球があるとき
この球に接触して配置できる球(半径1.0)、
1個の場合~12個の場合の全ての中心座標を出力しなさい。
許容計算誤差は0.001とする。

条件

(1)全ての球は互いに交叉または入れ子になってはいけない。
(2)計算方法は問わないがどのようなアプローチをとったか説明できる事。
(3)アプローチを検討するにあたって調査した履歴を残す事。
(4)計算開始から終了までは30分以内とする。

コメント

参考

この問題はkissing number problem(接吻数問題)と呼ばれ
単位球の周りに単位球を重ならずに接触させて最大何個接触できるか」という問題で
完全に解決されるまで260年以上かかった難問。
ヒルベルトが20世紀に解くべき難題の1つと言う程の難問でもある。

決着した答えは12個。

しかし、実験してみると13個置けそうなほど隙間があるため12か13かは
数学的に解かれるまで決着が付かなかった。

狙い

現在のPCは途方もない演算能力があるが、計算機として活用されない、または活用の仕方が分からないという学生も多い。
そこでこの問題に取り組んでもらうことで、それを体感してもらった。
※数値計算としては制約条件付き最適化問題として挑戦してもらった。

・難しい問題をどうしたら乗り越えられるのか?
・考えたり聞いたり調べたり様々な手を尽くす事とチャレンジさせるのが目的でもある。
・そのため困っている事を正確に伝えるための報告の書き方聞き方に関しても学んでもらった。

結果

細かい事は省略しますが新人全員が解に到達するプログラムを完成させました。

3DPDFによる結果の可視化

kissing_number_problem.pdf
PDFファイルを開き、「表示」ボタン押下で結果が表示されます。

プログラム

2016年度新人研修_課題