$B"#O"J8@aJQ49$N%"%k%4%j%:%`$K$D$$$F(B

2003-12-25 <komatsu@taiyaki.org>

$B!&$O$8$a$K(B
$B$3$NJ8=q$O(B lib/engine/engine-basic-multiclauses.rb $B$G$NJQ49%"%k%4%j%:%`$K(B
$B$K$D$$$F=q$+$l$F$$$k!#(B

$B!&JQ49$NN.$l(B
$BO"J8@aJQ49$N=hM}$NN.$l$OBg$-$/J,$1$F!"0J2<$N(B 2$B$D$N%U%'!<%:$G$"$k!#(B

  1. $BJ8@a$N@Z$j=P$7(B ($B%a%=%C%I(B guess_clauses_internal)
  2. $B<-=q0z$-$*$h$S%9%3%"IU$1(B ($B%a%=%C%I(B lookup)

$B!&J8@a$N@Z$j=P$7(B
$BIJ;l<-=q(B (prime-dict-part) $B$HIJ;l4V$N7k9g>pJs(B (@pos_connection_table) $B$r(B
$B$b$A$$$F!"F~NOJ8;zNs$rJ8@a$K@Z$jJ,$1$k!#@Z$jJ,$1$NJ}K!$O(B N$BJ8;z$N%F%-%9%H$G(B
$B$"$C$?>l9g!":G=i$K(B N$BJ8;zA4BN$,$R$H$D$NJ8@a$H$7$FBEEv$+$N%A%'%C%/$r9T$&!#(B
$B=g$K!"(BN-1, N-2 $BJ8;zL\$^$G$N%F%-%9%H$r%A%'%C%/$9$k!#2>$K(B L$BJ8;zL\$^$G$N(B
$B%F%-%9%H$,$R$H$D$NJ8@a$H$7$FBEEv$G$"$k$H$k$9$H!"<!$K(B L+1 $B$+$i(B N $BJ8;zL\$^$G(B
$B%F%-%9%H$G$NH=Dj$r9T$&!#(B

$B0J>e$r:F5"E*$K7+$jJV$7$F$9$Y$F$N<h$j$&$kJ8@a6h@Z$j$rC5:w$9$k!#$=$7$FJ8@a$N(B
$B?t$,:G>.$H$J$kAH$_9g$o$;$r:NMQ$9$k!#<B:]$N<BAu$G$O$9$Y$F$NAH$_9g$o$;C5:w$7$F(B
$B$*$i$:!"C5:w;~;~E@$GJ8@a?t$,:G>.$K$J$i$J$$$HH=L@$7$?AH$_9g$o$;$OGK4~$7$F$$$k!#(B

$B!&<-=q0z$-(B
$B=>Mh$N%(%s%8%s(B (engine-basic) $B$H$[$\F1MM$G$"$k!#(B

$B!&%9%3%"IU$1(B
$BIJ;l4V$N7k9g%3%9%H(B (@pos_connection_cost) $B$HC18l<+BN$N%9%3%"$K$h$C$F(B
$B7hDj$5$l$k!#(B

  ws1, ws2   : $BC18l<+BN$N%9%3%"(B
  pos1, pos2 : $BC18l$NIJ;l(B
  score = Math::sqrt(ws1 * ws2) * pos_connection_cost(pos1, pos2)

  $BNc(B:
  $B$$$$(B  ws1 =  5000, pos1 = $B7AMF;l(B
  $BE75$(B  ws2 = 15000, pos2 = $BL>;l(B
  score = Math::sqrt(5000 * 15000) * pos_connection_cost('$B7AMF;l(B', '$BL>;l(B')
        = 8660                     * 0.8
        = 6928

$B%9%3%"IU$1$N%"%k%4%j%:%`$O:#8eJQ99$5$l$k2DG=@-$,$"$k!#(B

$B!&IJ;l$N7hDj(B
$B8=:_$N<BAu$G$OO"J8@a$r$R$H$D$NJ8@a$H$7$F!"3X=,$7$F$$$k!#:#8eJQ99$5$l$k(B
$B2DG=@-$,9b$$$,!"8=;~E@$G$NIJ;l$N7hDj%"%k%4%j%:%`$r=R$Y$k!#(B

$BIJ;l$N7hDj$O4pK\E*$K8e$m$NC18l$K$h$C$F7hDj$5$l$k!#Nc$($P!"!V$$$$(B + $BE75$!W(B
$B$G$"$l$P!"E75$$NIJ;l$G$"$kL>;l$,!V$$$$E75$!W$NIJ;l$H$J$k!#$7$+$7!"(B
$BNc$($P!"!VE*!W$NIJ;l$G$"$k!V7AMFF0;l2=@\Hx8l!W$N$h$&$KC1=c$K8e$m$NC18l$N(B
$BIJ;l$r;H$o$J$$J}$,ET9g$N$h$$IJ;l$b$"$k!#$3$l$i$N$h$&$KIJ;l$rL@<(E*$K(B
$BJQ99$7$?$$>l9g$O!"JQ?t(B @pos_connection_pos $B$r;HMQ$9$k!#(B

  $BNc(B:
  @pos_connection_pos = {
    "$BL>;l(B\t$B@\Hx8l(B" => '$BL>;l(B',
    "$BL>;l(B\t$B7AMFF0;l2=@\Hx8l(B" => '$B7AMFF0;l(B',
    "$B?ML>(B&$BCOL>(B\t$B@\Hx8l(B" => '$BL>;l(B',
    "$B?ML>(B&$BCOL>(B\t$B7AMFF0;l2=@\Hx8l(B" => '$B7AMFF0;l(B',
  }
