あれは、本質的には3や4の応用で解けてしまいます。
それより、分解してみて、感動しました。
ホフスタッターの『メタマジックゲーム』という本に
さんざんヒントが書いてあるから見れ。いちおう共役だとか
交換子だとかの言葉も使ってあるし。数学バリバリの
やつはコンウェイが論文書いてるからそれ読んでもいいかも。
__ __ __ __ __ __ __
∠__∠__∠__∠_.∠_../ | __∠__∠__∠l__
∠__∠__∠__∠__∠__/| | ∠__∠__∠__∠__/.|_
. ∠__∠__∠__∠_.∠_./| |/| ∠__∠__∠__/ /| |/|
. / / ./ / / /! |/| | | / / /| ̄ ̄| |/| |
| ̄ ̄| ̄ ̄| ̄ ̄| ̄ ̄| ̄ ̄| |/ |/| |_| ̄ ̄| ̄ ̄| |__|/| |/|
__ _| |__|__|__|__|/| ̄ ̄| | ∠__|__|__l/ /| |/| |
. / / | ̄ ̄| |_|/| | | |__|/| | | | | ̄ ̄| |/| |/
| ̄ ̄| ̄ .| |/| | | |__|/| | | |__|__|__|__|/| |/|
. ___|__|__.| ̄ ̄| |_|/ | | |__|/ | | | | | |/| |
. / / / | |/|. |__|/| .|__|__|__|__|/| |/
| ̄ ̄| ̄ ̄| ̄ ̄| ̄ ̄| |. | | | .|_| | | |__|/
|__|__|__|__|/ |__|/ |__|__|/
451 :
132人目の素数さん:04/02/10 22:49
自分の解法を有向グラフで表してみる。
ノードはキューブの部分状態を表すことにする。
goalを表すノード以外の全ノードはラベル付き有向辺をただ1つだけ持つ。
ラベルには次にどのアクションを起こせばgoalに近づくかを書いておき、
有向辺はラベルに書いてあるアクションをしたときの次の状態をさしている。
さて、これで自分の解法を記述してみよう。別にoptimalな解法でなくていい。
そしてその全ノードのうちclear cubeまでの距離が一番大きいノードを探すと、
それとclear cubeの距離が「その解法の」最長最短手数となるはずだ。
452 :
132人目の素数さん:04/02/10 23:00
ここで問題になるのがノード数。
全状態をノードに割り当てると43252003274489856000ノードできちゃって現実的には記述できない。
そこで1キューブ状態を1ノードに割り当てるのではなくて、
キューブの部分状態を1ノードに割り当てる。
たとえば、「黄色のfaceが8個だけそろっていて、残りの1個が
正しい位置の隣にある状態」をひとつのノードで表し、
それを揃える手順を記述する。
つまりその他のfaceの自由度を無視すると。
こうすると少ないノード数でアルゴリズムを記述できる。
しかしさらに問題が出てくる。
以前に無視したfaceの色が後に必要になってくるからだ。
他の面を無視して黄色を揃えたら、
今まで無視していた青やら赤やらを解いていかないといけない。
では今まで無視していたfaceを見ることをシステムの「入力」としよう。
黄色が解けたら、その隣の面が何色をしているかという情報が
システムの「外から」入ってくるとしよう。
実際に、さあ始めるぞ、とキューブを持ったときに
あなたが54 face分の情報を入力されていたように。
言い換えればこれは解法をオートマトンで記述しようとしているのかもしれない。
453 :
132人目の素数さん:04/02/10 23:05
とりあえずそういった方法でアルゴリズムが記述できる。
有限の、かつ現実的なノード数で記述できる。
まずは今ある解法を記述してみるのだ。
そしてさまざまな解法を1つの有向グラフに統合していく。
ある状態に行きつくまでに二つの道のりがあるならば、
それらの小さい方を削除する。そうやって解法は淘汰され、成長していく。
この方法でとりあえず最長最短手数の最小値を最小化していくというのはどうだろうか。
454 :
132人目の素数さん:04/02/11 14:08
弛緩は犯罪です
>>452 (まがいなりにも)アルゴリズム化=プログラム化できた時点で、あとはこれをブラッシュアップしていけばよい・・・と思っている人へ。
そりゃ間違っちゃいないかもしれんが、中高の「情報」の授業レベルどまりだ。
「プログラミング」の練習としてはいいかもしれんが・・・・。
実物の「キューブ」(パソコンモニタに再現されたものでもよいが)を「じっと」見つめ、「ああこういうことなんだ」と発想しないとタメではないの?
「実物」を「手」で「解いた(一般解をつかんだ)」ヤツがいるが、そのレベルを前提としてアルゴリズム化しないと授業レベルより上(数学板?)にはならんよ。
>>455 誤 まがいなりにも google約1,540件
正 まがりなりにも google約13,900件
>>456 さびしい/さみしい おととい/おとつい
おれの故郷じゃ昨日(きのう)を「きんのう」というし、もっと田舎じゃバス(乗合自動車のバス)を「パス(pasu)」というトショーリもいる。
まがりないにも 9件
まがいないにも 0件
>>455 揚げ足取られてる場合じゃないぜ。
最長最短手数の最小値を小さくしていくことが私のレスの目的。
このスレッドを始めの方からよく読んでおくれ。
461 :
132人目の素数さん:04/02/19 09:31
462 :
132人目の素数さん:04/02/27 23:58
5面完成
464 :
132人目の素数さん:04/02/29 00:45
5面なさい
465 :
132人目の素数さん:04/02/29 04:41
数学ってルービックキューブの具体的な解法も導けないんですね
>>466 数学はまだまだ発展途上なんだよ。
だから、面白い。
君も種をまいたらどうか?
468 :
132人目の素数さん:04/03/01 00:40
>>466 ルービックキューブが発売されてブームになった当時、すぐに月刊ASCIIに解法プログラムが掲載されてます。
哲学的なスレタイだな
>>466 >数学ってルービックキューブの具体的な解法も導けないんですね
いいヒント言った。
これは数学(数学者)の限界じゃなくて、興味の方向がそっちに向かわないということだろ。
プログラマーが誰か解くだろうさ、みたいな。
それも一度実物(キューブ本体)を手に取り、解法を見つけた上で(あるいは一般解を見つけられなかった
ヤツも多いと思うが)、「あ。意外と面白くなかったな(いわゆるパズル止まりで数学には何か足りねえ)」のような
ことだったんだろ。
今日雑貨屋でちっちゃいルービックキューブ見つけて買っちゃったよ。
高校程度の数学しか分からないけどとりあえずスレ読んでみる。
数学使ってもすぐ解法が得られないのは
対称群の元がいくつか与えられたからといって、それによって
生成される群の構造を調べるのはそう簡単ではないからじゃないかな。
解法というからにはコンピューターでしか出来ないような
全パターンを記憶してそれを当てはめるような1ステップのものではなく、
各ステップは簡単ないくつかのステップを順に進んでいくようなものであり、
それは稼動部という生成元から与えられた対称群の部分群を出来るだけ
わかりやすい群で割ることを何回か繰り返して最終的に自明な群にする
ことに対応するのだと思うのだが。
だから解法を得るというのはその群構造をある程度まで決定することと同値であり
それと同等な難しさを持っているのだと思う。
解法
475 :
132人目の素数さん:04/03/09 03:28
とりあえず2x2x1キューブの解放からいこうか。
2x2の板がくるくる回る。
表を大文字、裏を小文字で書く。
AB
CD
を [BDC] と書くこととする。A の位置と向きは固定とする。
アクションは X[BDC]=[dbC]、Y[BDC]=[Bcd] の2通り。
[BDC] を完成形とする。
lets解放!
[BDC]=X[dbC]=Y[Bcd]=XY[dcB]=YX[Cbd]=XYX[CDB]
以上48パターン中、解放可能6パターン、不可能42パターン
最長最小手数=3
解放!
3x2x1は
パターン数(不可能パターン込) : (3x2-1)! x 2^(3x2-1)=3840
アクション数 : (3-1)(2-1)=3
log[3](3840)=7.5だから最長最短手数が8以上になることはないな
477 :
132人目の素数さん:04/03/13 08:05
単純な幅優先検索
2x2x1 6パターン 最大3手
3x2x1 189パターン 最大24手
3x3x1 731パターン 最大16手
4x2x1 1076パターン 最大22手
4x3x1 計算限界... (現在7手で2390パターン,MEM 2GB使用中 汗)
478 :
132人目の素数さん:04/03/13 08:59
479 :
132人目の素数さん:04/03/13 09:02
480 :
132人目の素数さん:04/03/13 09:04
5x2x1 34128パターン 最大31手
6x2x1 計算限界...12手で35928パターン
482 :
132人目の素数さん:04/03/14 13:10
三角錐の4面ルービックキューブなら簡単に解ける
ありゃ運で十分なんとかなる
1面のそろえ方さえ知ってれば
>>482 ルービックキューブの確率論的解法、と言うわけか。
数学者的にはルービックキューブの解法としては、
高々6,7個のルーチンの組合せで、初期状態に戻して
しまうのがエレガントなんだけど、それは飽くまでも
「数学的に」すっきりとした解法であるだけで、実際に
そんな直し方をすると、日が暮れてしまうし、せいぜい
「なんか数学が得意だと言っているわりにどんくさいこと
をやってるなぁ」くらいにしか思われない。実際ルーチン
の数を増やしていけばいくほど、スピーディに
解けるようになる。
関係ないが、高校の頃化学の時間に最前席でルービックキューブ
のことをノートに書いて考えてたら、「数学をやるなら出て行け」
と言われた。ある種の非可換群に対する演算子の計算で
あることには違いないんだけど……
立方格子やら細密充填やら何やらでごまかしきれなかったものか
無理ですた。明らかにルービックキューブの真ん中の
レーンのキューブの移動の図を描いていたから。
というより、1はこんなトコで聞くよりか、Yahooで
検索してね。登録サイトのなかに、layer by layerを
扱っているところが数件あるから、マスターすれば
三十秒程度で直せるようになる。ただしその為には、手順を
100〜200ばかり覚えないといけないし、キューブを分解して、
紙やすりで磨いて潤滑剤を入れたり、指の動かし方を
必死で練習したり(フィンガーショートカット)、五手位は
先が読めるようになったりしないといけないので、ちょっと
群論などの数学とは関係のない話になってくる。
興味のある方はは以下のURLへ。
ttp://www2.u-netsurf.ne.jp/~katsu-k/
>>452 >>160 の「The Mathematics behind Cube Explorer」の中の
「Coordinates and Symmetry」が役に立つかも。
>>176 の「ACube」は「The Two Phase Algorithm」によって枝刈りしながら、
全解探索をするプログラム。
トリップ忘れちゃったー
487 :
132人目の素数さん:04/03/28 01:55
488 :
ナルナル♀:04/04/04 15:26
なんか、カキコ古いッすね・・・
いま04だし・・・
それとウチには、キューブもリベンジもプロフェッサーもあと、
ピラミンクス(知ってる?)やdino、beach ball、WONDER CUBE、
dogic、マジックキューブ等があります。
(全て攻略済み)←自己流
オタクじゃないかンねっ!!!!!!!
理系なら分解するよな普通
さんすくえあ
491 :
132人目の素数さん:04/04/10 03:00
「詰めキューブ」みたいなのを作ってはどうか。
指定されたターン内に6面完成させるゲーム
初期状態までの最短手順を眺めるだけで
読みきる、というのはあるよ。
もっとも世界的に巧い人でも十手前後が限界だと聞くけど
493 :
132人目の素数さん:04/04/11 03:58
人質も解放
494 :
132人目の素数さん:04/04/11 05:25
新しいキューブと使い古しのキューブでは解法が違う。
古いキューブについては簡単だ。ばらばらにして組みなおせばいいんだ。
387
242