くろょろぐ

はてダからはてブロに移行済み

図形の詰め込み問題

question:1228746034

Simulated Annealing ての使ってやってみましたが、20個は無理そうですね。
コードなどは下のTBにて。
20個で一ヶ所だけ重なってる、てのはでましたが。

.B...DDDDDL..
.B...K.DLLLLL
BBBBBK.D.TL..
CBKKKKKD.TL..
CB...KED.TL..
CCCCCKETTTTTM
CJEEEEEG.T..M
CJ...IEGMMMMM
JJJJJIEGGGG*M
HJIIIIIG...SM
HJ...INGSSSSS
HHHHHIN....SO
H..FNNNNN..SO
HFFFFFNROOOOO
..AF.QNR...PO
..AF.QRRRRRPO
..AF.Q.RPPPPP
AAAAAQ.R...P.
..AQQQQQ...P.
ita 2008-12-10 20:47:04

コメントを全文引用してしまいましたが、これは熱運動のシミュレーション、言ってみれば、容器に粉ものを入れて、とんとんたたくとだんだん詰まってくる、あれのシミュレーションですね。見事です。
(追記)僕もなんか考えてみよう。縦のみ及び横のみに長さ5マスの板を敷き詰める。敷き詰め方は1列につき、縦なら35通り、横なら10通りある。この縦のと横のとを重ねて、一方の板の中心が他方の空白部分に重なってる板を順に取り除いて行く。取り除く過程で新たに空白部分ができるから、これで全部取り除く。すると、少なくともどちらかの板の中心は必ず他方のどれかの板に重なったものだけが残る。この状態ではまだ重なった図形があるが、少なくとも、この中に可能な詰め込み方が全て入っている。もっとも、この組み合わせは途方もない数なので(笑)、実用的じゃないけど。
(追記)ちょっと別の見方を考えてみよう。経験的に、一つの図形を完全に覆い尽くす並べ方は存在しない。もし、一つの図形に最低nマスの空間ができると考えると、m個の詰め込みができた時点で、(9+n)mマスを消費している計算になる。マス目の数は247あるので、n=1ならm<25、n=2ならm<23、n=3ならm<21、n=4ならm<20、・・・という具合になる。
(追記)あ、あったわ、完全にとりまく並べ方。