鉛筆パズルの整数計画法による解法定式化集

                                                                         T.K.Oddzissan

定年で暇になった機会に、岡本吉央 整数計画法によるパズル解法 の演習問題を解いてみようと思い立ち、ついでに手近に見られる鉛筆パズルを解いてみることにした。 途中で気が付いたが、 知恵の輪パズル、キューブパズル 攻略法(解法) - TOK2.com というのがあり、ほとんど研究済みのようである。しかし、折角やったのだし、多少は方法も違うし、GLPKコードに慣れない人には、CPLEXのLPファイルの方が分かり易かろうということで掲載することにした。 ご意見、苦情、悪口などはおじさんの掲示板 へ。

1.ボンバーパズル
 まず一番簡単なものから。鉛筆パズルの整数計画法定式化には、普通多少は頭を使うものであるが、これは全く考える必要がない。ルールを不等式に直すだけでおしまいという、サルでもできるようなものである。あまりに短く終わってしまうので、Excel VBAによるソルバー入力ファイル作成プログラムを添付した。2015.7.31 改訂、2016.2.10追加。

2.ナンバーリンク
 多少は考えるが、特に悩むような箇所はない、比較的易しいものである。2016.11.05追記

3.スリザーリンク
 2015.5.20改訂 2015.6.20二訂 大きな問題も解けるようになった。  2015.6.30 三訂

4.ぬりかべ
 ぬりかべも全体が繋がらねばならないが、ぬりかべの黒塗り領域は繋がり易く分断することはないので、スリザーリンクよりも随分楽である。2015.7.20 訂正 ルールを間違えていた。スリリンより楽ではない。2015.8.01 全面改訂

5.へやわけ
 2014.12.19改訂。白マス全体のつなぎ方変更。

6.美術館
 難しいところはないが、事前準備のテーブル作りのほうが面倒くさい。

7.ひとりにしてくれ
 この白マスはつながらない。ホントに泣ける。勝手な禁則作って無理やり解けるようにしたが、インチキかもしれない。 2014.12.24 改訂。白マスつなぎは、「へやわけ」方式に変更。インチキはなくなった。 2015.05.21 改訂。制約式の脱落部を補正。

8.ましゅ
 数式は書ききれないので、やり方のみを記す。スリザーリンクと同じ方法を採った。 2015.05.21 改訂。まともに全部書くことにした。改訂版スリザーリンクと同じ方法とした。

9.四角に切れ
 インプットファイルを作るのが大変で、整数計画法ソルバーは大きなサイズの問題でも一瞬で終わる。 2015.05.23 全面改訂 ジグゾーパズル方式を止める。

10.ののぐらむ
 冒頭に掲げた「整数計画法によるパズル解法」に詳細な解説があるので、これは省略。なお、そこにLP形式ファイルを出力するC言語プログラムリストが付いているが、このプログラム、長方形の絵を入力すると分かるように、つまらないバグがある。出力リストを眺めるとオカシナ箇所がすぐ分かるのがLPファイルの長所であるが、ちょっと大きな問題をいれると何万行にもなるのが欠点である。

11.カックロ
 鉛筆パズルをExcelで扱う者にとって、カックロはやりにくい。セルに数値を二つ入れられると、文字列分解しなければならない。

12.覆面算
 計算値を1の位、10の位と分けるのが面倒である。

13.ウォールロジック
  比較的簡単で特に問題はない。

14.ビルディングパズル
  易しそうに見えるが、見える見えないの判定が相当難しい。

15.不等式パズル
 これは易しい。

16.ナンバースケルトン
 易しいが面倒くさい。

17.数独
 これも「整数計画法によるパズル解法」に詳細な解説があるので省略。

18.ヤジリン
 2015.04.20 改訂しました。2015.06.25 二訂 矢印の番号付条件式を直す。2015.08.06 三訂 元に戻す。

19.シャカシャカ
 式は書ききれないので、やり方のみ。

20.橋をかけろ
 「全体が繋がる」が「二重結合の数をminimize」で実現するので非常に楽である。そうは行かない問題があってもよいような気がするが、未だお目に掛からない。パズルの整数計画法は、minimize,maximizeがダミーのものばかりであるが、これが有効に働く唯一のものであろう。2015.05.26 改訂 2015.06.09 二訂

21.さとがえり
 データ作りのテーブルを準備するのが大変である。

22.スターバトル
  

23.ABCプレース
 2015.11.29 Easy as ABC 追加。

24.ブロック分割
 きちんとやると面倒なので、いい加減版。

25.黒どこ
 黒どこの白マス領域は非常に繋がり易くて楽である。2015.06.10 改訂

26.碁石ひろい
 巡回セールスマン問題である。碁石の数は大抵20〜30個なので、なんとか解けるが、動かなくなることもある。その時は、始点、終点など適当に見当つけて入力して手伝ってあげるとよい。

27.因子の部屋
 数字が6でマスの数が2であれば、本来は(6,1)または(3,2)の組み合わせのどちらかにせよ、という条件を付ける必要があるが、このパズルでは(6,3,2,1)のどれかにせよ、という緩くだらしない条件で正解が得られてしまう。

28.パイプリンク
 2014/10.16改訂 2015.7.03 二訂 ようやく完成した?。

29.ごきげんななめ
 閉ループを作ってはいけないという条件で苦労したが、無事できた。

30.モチコロ
 黒マスが点接触で繋がるので、結合矢印が8方向になり面倒だがなんとか解ける。63.モチにょろ 参照のこと。

31.スラローム
 大きな問題では整数計画法が動かなくなることがある。ただ付番するマス数が盤面より少ないので、10x10マス程度まで解ける。2015.06.25 改訂

32.ヘルゴルフ
 変数に4次元配列を使っているので、整数計画法の入力ファイルは猛烈に長くなるが、解析は時間が掛からず、大きな問題でもすぐ解ける。

33.フィルオミノ
 変数に5次元配列を使っているので、入力ファイルはメモ帳がなかなか開かないほど長くなり、解析はメモリー不足のエラーを出す。しかし、簡単な問題なら10x10マスでも解けるので、一応完成ということにする。

34.数コロ
 矢印で繋いで全体は繋がる。ひとつながりに苦労することはない。2015.7.10 改訂

35.お家へ帰ろう
 整数計画法よりも準備作業の方が大変。

36.ペイントエリア
 ひとつながり問題で苦労することになる。2015.06.07 改訂 「ひとつながり」の方法変更。

37.アイスバーン
 ひとつながり問題であるが、一筆書き1本線なので扱い易い。

38.LITS
 ひとつながり問題であるが、正解にループ構造を持っている場合が多いため、1度で解がもとまらない。2015.06.11 改訂。

39.カントリーロード
 ひとつながり問題であるが、一筆書き1本線なので扱い易い。2015.7.02 全面改訂

40.さしがね
 特に問題はない。

41.ヤギとオオカミ
 自由に引いた線からブロックは認識できないので、インチキ簡便法であるが、性能は非常に良い。

42.たすくえあ
 ひとつながり問題であるが、つながり易く楽である。

43.島国
 国が大きいと分裂の危険があるが、普通の問題は解ける。

44.ホタルビーム
 全体が線で繋がる問題であるが、どうにも繋がらず、ギブアップとなる。  2014/12/1 ギブアップは残念であるから、そこそこ動くものを捻り出した。

45.クリーク
 2015.06.29 改訂 集水マスを整数計画法に決めさせることにした。

46.へびいちご
 自分の身体か、他のヘビの身体かの見分けに工夫を要する。

47.タテボーヨコボー
 簡単である。

48.チョコナ
 これも簡単である。

49.キンコンカン
 完全なものは難しい、不完全版である。

50.やじさんかずさん
 全体が繋がる問題で、集水マスの位置を調節する必要があり、一度では解けないこともある。  2015.06.08 改訂 全体を繋げる方法「へや分け」方式に変更。

51.クロット

52.天体ショー

53.よせなべ

54.遠い誓い
 マス数が多くても一瞬で解ける。ルールが簡単なのがこのパズルの優れたところである。

55.ぬりぼう
 不完全版であるが実用には十分耐えられる。

56.リフレクトリンク
 2015.6.28改訂 パイプリンク方式は止め大幅に簡略化した。

57.ボーダーブロック

58.タタミバリ

59.コージュン

60.マカロ
 コージュンと殆んど同じである。

61.イチマガ

62.修学旅行の夜
 2015.7.07 改訂 集水マス自動探索、矢印番号付け。

63.モチにょろ
 パズルとしては殆どモチコロと同じであるが、全面的に改訂した。

64.なわばり

65.快刀乱麻
 快刀乱麻を機会に、ヤギとオオカミを前面改訂してみたが、性能は前のインチキプログラムに適わない。

66.ナンロー
 2015.7.08改訂 矢印に番号を振り、全体白マス領域を繋げる。

67.なげなわ
 2015.3.12 修正、文章脱落があった。

68.ヴィウ
 2015.7.01改訂 矢印に番号を振り、白マス領域の分離を防止。

69.環状線スペシャル

70.縦横さん

71.シロクロリンク

72.バーンズ
 2015.07.09 改訂。

73.フォーセルズ

74.ボサノワ

75.マイナリズム

76.はこいり○△□
 2015.07.09 改訂。

77.タイルペイント

78.ぬりめいず

79.四角スライダー

80.へやぼん

81.流れるループ
 2015.07.07 改訂。

82.ウソタタミ

83.クロシュート

84.トリプレイス

85.サムライン

86.メジリンク

87.のりのり
 とっくの昔にUpLoadしたつもりでいたら抜けていた。

88.波及効果
 とっくの昔にUpLoadしたつもりでいたら抜けていた。

87.のりのり
 とっくの昔にUpLoadしたつもりでいたら抜けていた。

88.波及効果
 とっくの昔にUpLoadしたつもりでいたら抜けていた。

89.たわむれんが
 とっくの昔にUpLoadしたつもりでいたら抜けていた。

90.直曲ループ
 ましゅの簡略版。

91.バッグ
 黒どこの黒マス2連禁止の代わりに黒白市松模様禁止とすることで、多くの問題は解けるが、やはりダメなものもあるので新作した。

92.アイスローム
 とっくの昔にUpLoadしたつもりで改訂版を用意したら、元がなかった。

93.復元迷路

94.かずのりのへや

95.Tapa

96.かずひも

97.デイリループ

98.バトルシップ

99.ハニカズ

100.ウソワン

101.Archipelago

102.MasterMind

103.WaterFun

104.Pointers

105.Gravity

106.Platform

107.Kropki
 2018.07.15 掲示板にsaさん、ご指摘により、ルール改訂。

108.Cogwheels

109.Neighbours

110.Anglers

111.Pathfinder

112.Mintonette

113.Myopia

114.Calcudoku

115.Domino

116.Panorama

117.Second Turn

117.Hamilton Maze



付録 FEMモデル、ウェーブフロント数の整数計画法による最適化
 これはパズルではないが、ここに載せておく。