2012年4月3日火曜日

口頭試問の日程が決まる

前回までのような話を駆け足でやっていたのには理由が。
3月からずっと続けていた日程の協議に
やっと肯定的な成果が出て、
口頭試問の日程が決まったのだ。
論文提出から1年かかったなあ。
 
3月に2度も協議を重ねて、
この夏学期も合う日程が見つからなかった、
と教授に書いたら、
じゃあ俺が見つけてやろう、
ということになったのが先月の末。
 
正直言って全部探し尽くしたなあ、
とは思ったが、教授が自ら動いてくれて
決まらなかったことはこれまで一度もなかった。
そうしたら今回も本当に決まった。
何なんだろうね、これは。
まあ、それはもういいか、決まったは決まったこと。
そんなことよりはすっかり先延ばし気分で
取り掛かっていた現在の仕事は中断、
口頭試問用のレジュメと原稿を書かねばならないな。
テーゼと言われるものだが、
何だ、テーゼって?
まあ、とにかくやろうか。
幸い自分の論文はそんなに長くはないので、
サクッと読んでまとめればいいだけだろう。
そして口頭試問の日程は3ヶ月以上前に決める予定で、
そこまでの3ヶ月でドイツ語に本腰を入れるはずだったが、
1ヵ月しかなくなってしまったな。
こっちに関してはもうなるようにならないな。
ともあれ脳みそをドイツ語化しないといけないので、
このブログの更新は途切れがちになることは
ご了承下さいね。
そして緊急の用事以外あまりメールも送ってこないように。
ドイツ語で書いてくれれば返事しますよ。

2012年4月2日月曜日

VS ルービックキューブ その10

自分が覚えた解法はかなり一般的なもので、
最初のステップを自分は機械的に解かないが、
それ以降の5つのステップ、
そしてもし最後の仕上げのステップも機械的とすれば
計6つのステップにそれぞれの操作の仕方があって、
それを用いることでどんな状態で渡されようとも
キューブを完成させることが出来る。
全行程は大体100以上の手数、
平均とかは数えたことがないので分からないが、
150は多分行っていないと思う。
120か130前後のように感じる。
 
どんな状態でも20手以内で解けるという調査結果からは
ほど遠いが、6つの操作の仕方(と場合によっては
その左右対称で動かす仕方)を覚えるだけ、
それで全てに対応出来るのだから悪くはない。
 
が、世の中にはさらに凄いことを考える人間がいるもの。
自分がやるようなやり方だと同じステップ内で
何回か同じ操作をしなけれならないのだが
(例えばステップ4、5、6では3つのキューブが
組になって同時に変化するが
4つ違っていたり2つしかずれていなかった場合など)、
そういう状態を一気にステップ完了の状態まで持っていく
いわば短縮方法を開発しているのだ。
1度に同時に揃えて行くキューブの数を増やすことで
短時間あるいはより少ない手数で完成させることが出来る。
これはすなわちルービックキューブをいかに早く完成させるか、
という場面(競技)で使われる方法である。
ステップも3つ、確か同ステップの反復もない。
おお、それはそっちを最初から覚えた方が
いいんじゃないか、と思われるかもしれないが、
一気に揃えて行こうとすると今度はその分多くの
動かし方のパターンを覚えていく必要があって、
こういうことをやっている人たちは
実に119パターンの動かし方を暗記しているのだそうだ。
この中には左右対称の動かし方もあって、
実際そこまでの数ではないにしても、
一つ一つの動かし方における操作の手数も多い。
(詳しくは「スピードキューブ」で検索のこと)
 
Youtubeとかに上がっている早解きの動画、
ああいうのを見てルービックキューブは頭がいい人なら
考えて解けるんだ、と錯覚する人を出せるくらい、
119パターンも動きを覚えていると
「自然に」キューブが動いて揃っていく(ように見せられる)。
 
で、人間の脳みそってのは面白いもので、
ルービックキューブを闇雲に動かしている内は
一向に動き方が想像できなかったりするのに
(何がどうなるのか、どこがどう動くか等々)、
動かし方が分かって、それを反復している内に、
何となくだけれど、感覚としてこうだからこうなる、
というのが本当に薄っすらと分かるようになる。
こう、何というかシナプス的な何か。上手く言い表せないが。
スピードキューブのサイトに行くと、
そういう感覚が言葉になっている。
最初読んだときとかは全然分からなかったり、
まあ、そんなもんか、で捉えていたりしたけれど、
揃えられる様になってちょっと経ってみたら、
何となく分かるような感じがしてくる。
この「感じ」というのは、言っている事が高度で分からない、
ということであって、高度さ(あるいは逆に自分の持っている感覚の
方の荒削りさ、と言うかそういうこと)は分かる。
で、何よりもそういう感覚が分かるということが分かる。
その感覚は今の自分は持っていないけれど、
持っている人がいることは想像できるようになるというか、
その感覚の存在が分かるようになる。
(擬似)思考の質を結局量でカバーすることになった
チェスコンピューターとはやはり違うわけ。
人間の脳みその中では質と量はそんな分離していないので。
自分は119パターン覚えてもいないし、
まして反復練習もしていないので
まだ何とも言えないけれど、
少なくともある程度は「考えて」=「仕組みや変化を
頭の中で想像しながら」解いているのと
実際上区別されない状態という可能性が見えてきて、
こういう言い方をすればいいのかもしれないけれど、
「自在に」キューブを動かすことが出来るようになる
のではないかな、なんて思うのだ。
 
というわけで、論理的思考能力や空間把握能力によって
ルービックキューブを解くというずっと当初にあった目標(?)
を目指すなら、すべきことは正しく動く動き方を
ひたすら反復練習する事なのではなかろうか、という結論。
 
ひたすら文字ばっかりの説明を10記事も
読んでくれた人がいたら、どうもありがとう。

VS ルービックキューブ その9

我らがグーグル先生支援の数学者研究チームが、
ルービックキューブはどんな状態からでも20手以内で
完成させることが出来ると明らかにしたのは一昨年だったろうか。
複雑さに限界があり、それがどこまでなのかがこれによって分かった。
 
ではその複雑な状態から20手以内でキューブを元に戻せる
人間がいるかというと、まあ、まずいないだろう。
その研究の論文か報告か記事か何かを読んだわけではないので
内容の想像だが、おそらくこんな解き方をしたのでは、と思う。
まず可能なキューブの状態を全て書き出す。
前にもちょろっと書いたことだが、
単純にキューブの種類、位置や向きを掛け算するだけだと
操作によってでは決して出てこない配置も含まれてしまう。
どれが可能でどれが不可能な配置なのか、
判定の仕方は分からないが、あるにはあるのだと思う。
というのも、配置を入力するだけで解法を教えてくれるプログラムを
置いているサイトで入力を間違えたりすると
解けないというエラー表示を出力してくるからだ。
それもかなりレスポンスは早く、はっきり言って、
解法があってそれを提示してくれる場合の時間よりも早い。
ということは何か機械的にパッと判定できるものなのかも、と思う。
少なくともコンピューターレベルでは、の話だが。
 
で、全パターン抽出したらそれぞれ解いていく、のではないだろう。
おそらくは完成状態から始めて、
その配置、次にそこから1回の操作で出てくる配置を抽出、
全配置の中からそれに適合するのを消していく、
こうして次に2回の操作で生じる状態を消して、…とやっていって
20回の操作で生じる状態まで消していったら
最初に抽出した状態全てが消えた、ということだろうと思う。
 
だからじゃあ一丁全部を20手以内で解いてやろうとやって
人間が解けるものではないということ。
おそらくは機械でも任意の状態を与えて
それを最短で解くことは出来ないと思う。
そのアルゴリズムはまだ発見されていない…はず。
 
自分が使っていた解法を出力してくれるサイトでも
どうも人間の解き方を元に解法を導いているようだ。
中には前回で書いたステップが段階的に見て取れるように
解法を出力してくれるサイトもあった。
 
ちなみに自分が現在できる解法及び特にその覚え方が
ほとんど全てを負っていると言って過言ではないのは
ニコニコ動画に上がっていた「初心者向け」解法解説動画。
これは凄く分かりやすかった。
勝手にリンク張ったりしていいか分からないから、
そういうのがあったとだけ書いておく。
検索すれば多分出てくると思うので。
Youtubeにはどこかの大学の教授か講師かみたいな人が
「数学的に」解法を解説している動画もあった。
が、これは操作の仕方を「関数」と呼んで記号化した
あるいは記号に当てはめただけなので、
プログラム化には役立つのかもしれないが、
解くという実用面からするとむしろ覚えづらいかもしれない。
数学者だと覚えやすいのかもしれないが。
いずれにせよ背後にある原理や考え方を
明らかにするという趣旨ではない模様。
まあ、別に他の解法を載せたサイトであっても、
確かにその通りにすれば解けるが、
どうしてそうすれば解けるのかは載っていない。
というか、出来るようになると分かることだが、
そんなのは多分誰も分かっていないのだ。
 
そして解法以外の仕方で動かしてしまうと
カオスの方向に行ってしまうだけなので
解法に載っている仕方に素直に従うのが良いのだとは
頭で分かろうとしても、丸暗記という点が釈然としない、
なぜそうなるのかが分からないから。
そんな印象があったからこそ、
今回このブログで自分は、どうしてそんな解法に至るのか、
その過程は決して偶然ではないのだということを示したかったのだ。
背後にある原理(多分そういうものはないと思うけれど)を
示すとかいう大掛かりなことではなく、
あくまで解法に至るための過程の考え方として。
その結果時間さえ許せば解法を自分で見つけることは
可能だということも分かった。
ただしその時間はかなり膨大なものになるし、
解法は既に見つかってもいることを考えると、
自分がどこで納得できるか、あるいは満足するか、
それとの天秤となるだろうと。
 
そして次回は最後に、参考2として、
ルービックキューブ型思考の進化について。
何でそうなるのかは分からない、と書いたが、
これが部分的に否定されることになる。

2012年4月1日日曜日

VS ルービックキューブ その8

今回は前回までやったこととその後どうすれば良かったかを
書くことによって、ルービックキューブ完成までの道のりを検証してみる。
 
ルービックキューブ完成へのステップ
1. 1つの面を側面の色に注意しつつ完成する。
やったように特に難なく出来るが、全過程中ここが一番機械的に解けない。
2. 1で完成させた面を基準に2段目を作る。
総当りで動きを考えていって到達可能。
 
ここからは解法サイトや動画等を参考にさせてもらって、それによると、
3. まず基準面(最初に揃えた面)の対面(上面)に十字を作る。
自分が前回これで完成できるんじゃないかと思った操作は実はこの操作。
十字、すなわちその面の辺キューブを揃えるということだが、
この時点では位置は気にしなくて良い。
 
4. 上面の角キューブの位置を入れ替える。
この操作は前回並行2箇所とそれらに90度絡んでくる箇所、
と挙げた操作の内に正解が含まれていた。
だから根気か検証の順番が違う奇跡によって
こっちの方が先に見つかった可能性もあった。
あくまで可能性と結果論として。
 
5. 上面の角キューブの向きを整える。
ここが自分の考え方でやっていくとなると最難関となったであろうステップ。
動かす箇所はステップ2でやったのと同じ2箇所だけだが、
4手順とその戻しの操作で行われる。
従って自分の場合最短でも3手順を全て検証した後で
やっとこのステップに至ったであろうことになる。
人海戦術かキューブ海戦術でないなら、
このステップが人間の手によって解かれる蓋然性が一番高そうなのは、
ステップ2の2箇所操作に徹底的にこだわって
2箇所操作2回の場合、3回の場合、…とやっていった場合か。
動かす場所は2箇所だと戻し方も数は少なくなるが、
それでも相当大変だということは確か。
 
6. 5までのステップによってキューブは最初の方で
逆算した時に出来た状態になっているので、そこからはその手順通り。
やっていることは上面の辺キューブの位置の入れ替え。
 
4 、5、 6のステップではいずれも1回の動作で
3つのキューブが入れ替わっていく。
この辺りに何かヒントがありそうだが、
ちょっと自分には分からない。
 
とこんなわけで完成させるための手順に至るための考え方を
書いてきた。次回はその他、ある意味一番役立つ関連情報を。

VS ルービックキューブ その7

今回は3つの操作を行い、前回同様それを戻す、
ということをやっていこうと思う。
まさかのほぼ最終回。
 
最初の2操作に今度はどこの操作が加わってくるか。
 
まずすぐ隣の面。
前回は右手だから、と動かした右面、
これに今度は左手で動かす左面を加えよう。
前回左右対称の動きをする際動かしたこともあって、
すぐ思いついた。上図緑線。
 
この次に同一面に属する2つの平行する箇所を
動かす操作というのもあるだろう。
それプラスそれらに90度で絡んでくる箇所。
やはり上図参照。
 
これらは追加新要素(AB+C)だが、
新要素を加えない操作もある(ということに実は今気づいた)。
前回の2操作の内片方をもう一回加える(AAB)という方法。
 
多分これで全部網羅していると思う。
で、結論を先に言ってしまうが、
この内一番最初の方法である結果まで到達した所で
素直に解法を見るのがよいとの結論に達した。
 
ルービックキューブを揃えることが出来る人は分かると思うが、
一番最初の方法の内に、
見事に底面&下2段に変化を加えることなく
上面(同時に上段でもある)のキューブを
あれこれ動かせる方法が含まれている。
 
それを見つけたと同時に、その操作を繰り返すと6回周期で
最初の状態に戻せるということも分かった。
 
で、自分はその方法を見つけたときこれで完成だと思った。
というのも、まず一般的な話として、
ルービックキューブの配置は全部で何パターンあるのか、
という問いに、辺の位置と向き、角の位置と向きを
単純に順列して解としているのをよく見るが、
そこにはキューブをどう動かしても出てこない
不可能な配置も含まれているため、正しくない。
ルービックキューブは元に戻るような仕方でしか動かない。
翻って現在自分の手元にあるキューブだが、
これも元に戻らないということはない配置になっていなければならない。
 
そこで上の操作に話は戻るが、
6回周期で戻るのはあくまでルービックキューブ全体の持ち方を
固定した場合である。多分。
1回目の操作を行った後でこの操作を行える向きが4つ、
2回目の操作を行った後も同様、
3回目、4回目…以下同様、
ということは実はこの操作は6の5乗通り、
いや、もしかしたら上手く持ち替えてやれば
3回目や4回目で一周するかもしれないし、
持ち方によっては6回目でも一周してこないかもしれない。
もちろんどんな向きで持っても絶対に6回で一周してくるというのも
可能性としてはあるかもしれないが(そこで上で多分と書いた)
凄く希望的推測だと思う。
 
さらに、自分はこの操作を完成した状態から始めているわけだが、
実際には多少なりと置き換わった状態でのスタートになるはずで、
そうなるとこの状態に入る以前に特定の配置になっていなければ
実はこの操作の繰り返しだけでは一向に完成形に至らない
ということも考えられることである。
(そして実際1度バラバラにした後、
前回までの状態を作ってからこの操作を行ったら、
いくらやっても完成形は出てこなかった。
それでも「全部」の可能性を試せたわけではないとしても)
そうした場合に配置を置き換える方法はこれまでまだ出ていない。
 
そこで2つの道がある。
上の操作の変化に規則性を発見する。
とにかく上の操作でどうにかすれば
いつかは完成形が出るのだという可能性に賭ける。
あるいはもう一つの選択肢は、
取り合えずこれを置いて別の操作、
特に配置を変化させる方法を先に探す。
 
まあ、第3の道、ここが限界。解法を見る。
第3を選んだ。
理由は実に単純で、面倒、この一言。
えーと思われるかもしれないが、
ちょっと考えてみて欲しい。
3回操作にそれを元に戻すような操作というのが
何通りあるのかということを。
ABCで動かしたらCBAで戻す以外だから5通り。
これに最初の操作の段階が
A、B、Cとその逆の組み合わせで6x4x2通り。
計、あれ、240通り?自分がやっていた時は
こんなに多くはなかった気がするけれど、
それでも軽く2桁はあったはず。
さらに今冷静に考えてみると、戻す操作だが、
ABC全部が終わった後で戻すことにも必然性はない。
ABまでやった後でAをもどしてからCをやって…
という方法だって全くもって可能なはず。
 
で、何が本当の問題の核心なのかというと、
一個一個の操作を見ていくのは大した労ではない。
どうせ精々6回の動作を間違えないように動かすだけなのだから。
問題はその後。
これは前の2回操作の時からでもあったけれど、
操作を終えた後バラバラになったキューブを再び元に戻すこと、
これがとにかく面倒で時間の大半はここに費やされる。
キューブの状態を入力するだけでフラッシュ形式かJavaアプレットかで
元の状態に戻す仕方を教えてくれるサイトはいくつかあって、
そういうところを使って元に戻すのだが、
それでも6x9のキューブの状態を入力するのだけでも
結構時間がかかるもの。
とてもではないがやっていられない。
 
ここにさらに心理的な要因。
自分はこれまでの記事を
ルービックキューブが解けるようになった後で書いている。
だからいわゆる正解に至った道が記述の大半を埋めている。
実際には動かし方を間違える等人為的ミスから
同じ操作と気づかず同じ操作をするような数え上げのミス、
と言った種々のミスもあったし、
後者に至ってはこの一連の記事にもまだ含まれているかもしれない。
だがそれ以上に、完成に達していない以上、
そもそも全ては正しく進んでいるのか、
まずそこに疑念が常に付きまとっていた。
ルービックキューブをバラバラにする時、
段階的にバラバラになっていくことなんてまずない。
ところが自分のやりかたは徐々に徐々にと
揃えていっているように見える。
これだと固定されねばならない箇所は増える一方だから、
進めば進むほど必要な手数は増え、複雑になることが予想される。
Youtubeとかで数十秒で解く人の動画とかを見ていると、
明らかに何か違うような気がして仕方がなかった。
考え方からして間違っているかもしれないという疑念は
特に次にどこから手をつけていくかを考える際に逡巡ともなった。
 
そこで時間をかけても結果は同じだったら…と。
いや、それは最初からそうだと言えばそうなんだけれど、
それでも出来る範囲でやれるところまではやったろう。
これ以上は人間には無理、とは言わないが、
パターンを解析する人とキューブを元に戻す人で分かれて分業するか、
何十個(あるいは何百個?)かのキューブを買ってきて
戻す手間が要らない様にしてしまうか、
という方法しかないだろう。
現実的にはちょっと無理。
 
というわけで次回は後日談。