フルオーダーメイド靴」のプレスリリースを行いました。敷き詰めてスコア(隙間の数)を返す2-opt法で局所最適化GAで大域最適化まとめやることペントミノと呼ばれる、12種のピースを長方形の枠内に敷き詰めるパズルがあります。Wikipediaja.wikipedia.orgこれらのピースを6×10の枠内に敷き詰める場合、次のような解が2339通りあるそうです(マジで!?)。今日は、順序の局所最適化ができるvcopt().opt2()と大域最適化ができるvcopt().tspGA()を用いて、いちばん単純な敷き詰めに挑戦してみます。実行環境WinPython3.6をおすすめしています。Windowssourceforge.netvcoptの使い方についてはチュートリアルをご参照ください。お手軽最適化パッケージ「vcopt」チュートリアル実行環境Windowsマシンで実行する方にはWinPython3.6をおすすめしています。インストール不要で、USBメモリに入れて持ち運ぶこともできます。...vigne-cla.com2019/09/23vcoptの仕様については最新の仕様書をご参照ください。本記事執筆時とは仕様が異なる場合があります。GA)による本格的な組合せ最適化がお手軽にできる無料のPython...vigne-cla.com2019/09/22敷き詰めるアルゴリズム:Bottom-Left法Bottom-Left法は、「左上から詰めて入れる」という感じの単純なアルゴリズムです。今回は回転や反転は考慮しません。importまだvcoptをpipしていない場合はpipします。vcopt必要なパッケージをimportします。vcoptペントミノの作成がんばって手書きしました。各ミノは1~12のIDを並べて表現します。12]])]はい、こんな感じです。12]]ミノ1番から順番に敷き詰めた場合のフィールドが返ってきました。range(12)#敷き詰めて表示BL_show(para)ミノ1番から順番に敷き詰めた場合、かなり隙間があります。score42隙間の数は42個のようです。このあと、これが0に近づくように最適化します。0]12.0隙間が12個まで減りました!やはりGAは有効のようです!まとめ敷き詰め問題には有力な解法がありません(あったら教えてください!(切実))。次回は、回転と反転を考慮したGAに挑戦したいです。Slack、勉強会、Twitterをよろしくお願いします質問やコメントはSlackでお気軽にSlackに参加する勉強会でコードを配布していますconnpassを見るTwitterでも情報を発信していますTwitterをフォローするvcopt応用敷き詰め問題vcopt敷き詰め問題最適化この記事を書いた人Yasuda博士(理学)。専門は免疫細胞、数理モデル、シミュレーション。米国、中国で研究に携わった。遺伝的アルゴリズム信者。半額弁当の時間帯を知り尽くしている。「いろは歌」は組合せ最適化問題であり、「いろはにほヘと」で始まるものが有名です。いまポケモンは809種類いるらしいです。out)というパズルがあります。日本一わかりやすいNP完全とは2019/12/302019/12/31vcoptはこちらチュートリアル仕様書プレミアムパッケージフォローする質問やコメントはSlackでお気軽にSlackに参加する勉強会でコードを配布していますconnpassを見るTwitterでも情報を発信していますTwitterをフォローするタイトルとURLをコピーしました。