部分解への分割方法の検討 | ||||||
ver.0.10 2010/01/24 daichinあっとexcite.co.jp | ||||||
http://hexomino.hp.infoseek.co.jp/ | ||||||
・Version History |
||||||
自分でも当然検証を進めていきますが、ちょいと心配です。どなたか、追試、検証をしていただけませんでしょうか?ご意見、ご質問等お待ちしてます。(メールでも、掲示板でも結構です。) |
||||||
ペントミノの場合
|
それではということで、各パーツに対して、数手先までチェックし、解の無いものを枝刈りしたり、せっかく探索するので、その結果をデータとして保存し、その後の探索に利用するとか、いろいろ試してみたのですが、結果として高速化に繋がるような有効なアイデアが見つからず、・・・・フェードアウトしてました。
ということで、長い前置きがやっと終わって、ここからが今回のアイデアです。
ペントミノは全体が6x10マスなので、左図のように3x5の領域に4分割できます。 | |
この左上の薄緑色の領域を埋めるというのを条件にすると、左図の例のようになります。当然ですが、他の領域にはみ出してしまいますが、これでいいんです。この条件のパーツをすべて求めると、それ以上ピースの探索は一切必要ない(のではないか)というのが今回の最大のポイントです。 | |
では、左下の灰色の残りの部分を
どうやって埋めるかなんですが、はみ出しているピースだけを残して、上下反転させると、左図になります。そうなんです、このパターンを含んだパーツは、上で求めたパーツリストの中にすでに存在するのです。 それを見つけてくるのは、「探索」ではなく、「検索」になるというのはわかりますでしょうか? |
つづく