Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Rubick

1,904 views

Published on

tokkuni

Published in: Technology
  • Be the first to comment

Rubick

  1. 1. <ul><ul><li>数学とアルゴリズムとの関りについて </li><ul><li>  ~ルービックキューブの例~ </li></ul></ul></ul>by小倉拳
  2. 2. 自己紹介 ・名前  小倉 拳 (挙ではない) ・ twitter @catupper ・シンボルカラー 赤 ・種族 猫 遊び人 ・ NPCA での呼称 赤い人 ・好きな物 数学 プログラミング 立方体
  3. 3. テーマ <ul><li>数学とアルゴリズムの関わりの歴史や実情を
  4. 4. ルービックキューブの
  5. 5. コンピューターの世界における
  6. 6. 数学的な考察を例に
  7. 7. 考えてみたい(願望) </li></ul>注:本プレゼンテーションはプレゼンター的な諸事情で話題が変な方向に行きがちです あと途中からスライドが手抜きです
  8. 8. ルービックキューブとは <ul><li>シンプルかつ難解なパズル
  9. 9. エルノー・ルービック教授作
  10. 10. 日本では1980年頃に
  11. 11. ツクダオリジナル社の平社員の独断で
  12. 12. 発売開始
  13. 13. ブームが数十年置きに来る
  14. 14. 隅に置けない四角いヤツ </li></ul>
  15. 15. コンピューターとの関わり <ul><li>3Dであらゆる方向の回転があることから3D処理やシミュレートの実演として度々話題になる
  16. 16. シンプルさから1980年ころから解法アルゴリズムの論文が飛び交う
  17. 17. 誕生から25年したつい最近、やっとアルゴリズムが確立された </li><ul><li>長いこと処理速度、処理効率における問題があった </li></ul></ul>
  18. 18. アルゴリズムの進化 <ul><li>基本的には全探索のみだった
  19. 19. 数学的に解こうという試みがなされ
  20. 20. ステップを踏んだり、形式を確立したり
  21. 21. あらゆるアルゴリズムが考え出された
  22. 22. その過程で人間が大会などで使っているアルゴリズムが発明された </li></ul>
  23. 23. 解法の歴史 <ul><li>人類用の解 </li><ul><li>ツクダ社開発のツクダ式 </li><ul><li>上面->下面->中層 </li></ul><li>スピードキューブ主流のLBL方式 </li><ul><li>下層->中層->上層 </li></ul><li>目隠しのための解法3 cycle method </li><ul><li>3つづつ入れ替える </li></ul></ul><li>これらは人間の脳の処理能力内 </li></ul>
  24. 24. あるソルブロボット <ul><li>あるリトアニアの少年が開発したルービックキューブソルブロボットはLBL方式をで解くシステムになっている
  25. 25. 彼のブログ要約 </li><ul><li>「アルゴリズムについてはちょっと
  26. 26.  ググっただけだからあんまり早く
  27. 27.  はない」
  28. 28. 引用:Andrius Sutas's blog </li></ul></ul>
  29. 29. <ul>どうすれば手数を少なく解く ことができるのか? 力技は面白く無いからさらに 効率的なアルゴリズムが必要。 </ul>
  30. 30. アルゴリズム <ul><li>PC用アルゴリズムは先述の人間用アルゴリズムのように視覚を使って解くのにやさしい必要がない
  31. 31. 数学的にややこしい計算が出てきたりしても大丈夫。
  32. 32. オーダーが鍵になってくるのでアルゴリズムの上でどのように数値が絡んでくるか知る必要があった </li><ul><li>数値化して解く必要があった </li></ul></ul>
  33. 33. <ul>そこで群論を使って解くという考えがでてきた </ul>
  34. 34. 群論的考察 <ul><li>ルービックキューブの各部位に名称をつける </li><ul><li>R,L,U,D,F,B面 RUF(頂点) DU(辺) etc.. </li></ul><li>回転においてどのように各部位が入れ替わるか
  35. 35. 分析
  36. 36. 例:R面を時計回りに回転 </li><ul><li>RFUがRUBに移る
  37. 37. 向きが120度回転する
  38. 38.  -> 向きという要素もある </li></ul></ul>前 右
  39. 39. 回転における分析 <ul><li>回転するとパーツの位置や向きが変わる </li><ul><li>各パーツの入れ替わりは写像の形をとっている
  40. 40. これらの写像はすべて全単射で合成可能
  41. 41. 崩れた状態から目的の状態までの写像を
  42. 42. 回転の写像の組み合わせであらわす </li></ul></ul>
  43. 43. 数値での処理 <ul><li>各回転の場所、向きの変化、入れ替わりの関数を数値化する
  44. 44. 各場所を番号付けしてそれらの移動を基に数値化
  45. 45. 今回は移動後の数字で自分より左がわで自分より小さい数の個数で場合分け
  46. 46. 0× 1!+ 1×2 !+ 2×3 !+ 4×4 !+ 1×5 !+ 6×6 !+ 7×7 ! =39950 </li></ul>1 2 3 4 5 6 7 8 2 6 3 4 1 5 7 8 例:
  47. 47. 数値化からの考察 <ul><li>このような数値化を施すことでルービックキューブの全体像が見えてくる </li><ul><li>キューブの組み合わせの数は
  48. 48. (2^11)*(3^7)*12!*8!/2通りある
  49. 49. キューブの回転は順序を入れ替えること
  50. 50. ができない(非可換)ので少ない回転数
  51. 51. で多くの場合に到達できる </li></ul></ul>
  52. 52. 解法を見つけるには <ul><li>これらの入れ替わりの組み合わせをパターンごとに分類して段階を踏んで完成に近づける。
  53. 53. 人間用解法は場所単位で段階を踏むがコンピューター用解法は手順(動き)で段階を踏む </li><ul><li>例:{右、左、上、前面の回転だけで出来る状態}
  54. 54.  -> {それ以外の回転で作ることの出来る状態}
  55. 55. -> {全部完成した状態} </li></ul><li>今までいくつかのアルゴリズムが発見されている </li></ul>
  56. 56. 解法の歴史 <ul><li>コンピューター用の解放 </li><ul><li>シスルウェイトのアルゴリズム
  57. 57.  動きでグループ分けして   全探索  最大 52 手
  58. 58. コシエンバのアルゴリズム
  59. 59.   少ないグループわけをして  A* 検索  最大 40 手
  60. 60. リチャードのアルゴリズム
  61. 61. 場所でもグループ分けして A* 検索   最大 22 手
  62. 62. Two-Phase-Argorithm
  63. 63. 上3つのアルゴリズムの総称 群論関係
  64. 64.   </li></ul></ul>
  65. 65. ソルブロボット事情 <ul><li>ソルブロボットの大半は先述のアルゴリズム
  66. 66. 人間の手とはちがい早く動かせない代わりに
  67. 67. 短く解く
  68. 68. アルゴリズムをいかに早く処理するかが課題 </li><ul><li>最近では1秒かかる程度
  69. 69. 回転中に処理することでロスを回避 </li></ul><li>スピードでは人間に叶いそうにない </li></ul>
  70. 70. 残る課題 <ul><li>サイズに関係ない一般化 </li><ul><li>オーダーがN^2logNとなるアルゴリズムは見つかっている
  71. 71. 最短手数探索が課題 </li></ul><li>ソルブロボットの高性能化 </li><ul><li>技術面の課題
  72. 72. スピード
  73. 73. アルゴリズムだけが課題じゃない! </li></ul><li>実用のためのアルゴリズム </li></ul>
  74. 74. ルービックキューブは奥が深い! PC の処理能力をもってしても解決はできないほど課題が沢山有る。 これを解決するためにも数学の技術やアルゴリズムのレベルの向上が必要。 プログラムを組むためにも アルゴリズムは大事である! それに応じて数学も大事である! 結論
  75. 75. 参考資料 <ul><li> Andrius Sutas's blog
  76. 76.  The Q cube algo
  77. 77. 「群論」におけるGoogle検索結果
  78. 78.  その他群論関連の本
  79. 79.  2ch数学板
  80. 80.  Yahoo知恵袋の人々 </li></ul>

×