RSS

 

RSS


パズル


整数計画ソルバーで碁石拾い その4

  • いわいまさか
  • at 2019/5/30 18:28:37

リンクとは別の変数を設ける。
「その石が何番目か」という変数。スタートとエンドも含めておく。

盤面が
●●●●
であれば、

xssss = 1
x0102
x0103
x0104
x0201
xeeee = 7

x0102には答えが出た場合には2~6の数字が割り振られる。

④ リンクがあるときの石の順序関係の記述
l_x0101_x0102のリンクがあったとすれば、x0102のとる値は
x0101に1足した値なので

 l_x0101_x0102 = 1 -> x0102 - x0101 = 1

といった式になる。

⑤途中の石がないこと

1_x0101_x0104のリンクがあったとすると、すでに
x0102の石やx0103の石は取られていることになるので、
x0102とx0103はx0101よりも、番号が低くなる。
式で書くと

 l_x0101_x0104 = 1 -> x0101 - x0102 >= 1
 l_x0101_x0104 = 1 -> x0101 - x0103 >= 1


説明した5項目
①入ってくるリンクが1個
②出て行くリンクが1個
③来た方向へはもどれない
④石の順序関係
⑤途中の石がないこと
をすべての石について記述すれば、LPファイルができあがるというわけ。

以上。


  • コメント (0)
  • トラックバック (0)
トラックバックURL :
http://www.iwai-masaka.jp/tb.cgi/56460