<div dir="ltr"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div><a href="https://github.com/LibreOffice/core/blob/105ad5dc174d9e894b0c4f9e24d068090ca8c3aa/nlpsolver/ThirdParty/EvolutionarySolver/src/net/adaptivebox/deps/behavior/PSGTBehavior.java#L94">https://github.com/LibreOffice/core/blob/105ad5dc174d9e894b0c4f9e24d068090ca8c3aa/nlpsolver/ThirdParty/EvolutionarySolver/src/net/adaptivebox/deps/behavior/PSGTBehavior.java#L94</a><br></div></div><div><br></div><div>





<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco;color:rgb(119,119,119)"><span class="gmail-s1" style="color:rgb(0,0,0)"><span class="gmail-Apple-converted-space">  </span></span>@Override</p>
<p class="gmail-p2" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco"><span class="gmail-Apple-converted-space">  </span><span class="gmail-s2" style="color:rgb(147,26,104)">public</span> <span class="gmail-s2" style="color:rgb(147,26,104)">void</span> generateBehavior(SearchPoint <span class="gmail-s3" style="color:rgb(126,80,79)">trailPoint</span>, ProblemEncoder <span class="gmail-s3" style="color:rgb(126,80,79)">problemEncoder</span>) {</p>
<p class="gmail-p2" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco"><span class="gmail-Apple-tab-span" style="white-space:pre">      </span>DesignSpace <span class="gmail-s3" style="color:rgb(126,80,79)">designSpace</span> = <span class="gmail-s3" style="color:rgb(126,80,79)">problemEncoder</span>.getDesignSpace();</p>
<p class="gmail-p3" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco;min-height:25px"><br></p>
<p class="gmail-p2" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco"><span class="gmail-Apple-tab-span" style="white-space:pre">      </span><span class="gmail-s2" style="color:rgb(147,26,104)">double</span>[] <span class="gmail-s3" style="color:rgb(126,80,79)">pold_t_location</span> = <span class="gmail-s4" style="color:rgb(3,38,204)">pold_t</span>.getLocation();</p>
<p class="gmail-p2" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco"><span class="gmail-Apple-tab-span" style="white-space:pre">      </span><span class="gmail-s2" style="color:rgb(147,26,104)">double</span>[] <span class="gmail-s3" style="color:rgb(126,80,79)">pbest_t_location</span> = <span class="gmail-s4" style="color:rgb(3,38,204)">pbest_t</span>.getLocation();</p>
<p class="gmail-p2" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco"><span class="gmail-Apple-tab-span" style="white-space:pre">      </span><span class="gmail-s2" style="color:rgb(147,26,104)">double</span>[] <span class="gmail-s3" style="color:rgb(126,80,79)">pcurrent_t_location</span> = <span class="gmail-s4" style="color:rgb(3,38,204)">pcurrent_t</span>.getLocation();</p>
<p class="gmail-p2" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco"><span class="gmail-Apple-converted-space">    </span><span class="gmail-s2" style="color:rgb(147,26,104)">double</span>[] <span class="gmail-s3" style="color:rgb(126,80,79)">gbest_t_location</span> = <span class="gmail-s4" style="color:rgb(3,38,204)">socialLib</span>.getGbest().getLocation();</p>
<p class="gmail-p4" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco;color:rgb(126,80,79)"><span class="gmail-s1" style="color:rgb(0,0,0)"><span class="gmail-Apple-converted-space">    </span></span><span class="gmail-s2" style="color:rgb(147,26,104)">double</span><span class="gmail-s1" style="color:rgb(0,0,0)">[] </span>trailPointLocation<span class="gmail-s1" style="color:rgb(0,0,0)"> = </span>trailPoint<span class="gmail-s1" style="color:rgb(0,0,0)">.getLocation();</span></p>
<p class="gmail-p3" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco;min-height:25px"><span class="gmail-Apple-converted-space">    </span></p>
<p class="gmail-p2" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco"><span class="gmail-Apple-converted-space">    </span><span class="gmail-s2" style="color:rgb(147,26,104)">int</span> <span class="gmail-s3" style="color:rgb(126,80,79)">DIMENSION</span> = <span class="gmail-s3" style="color:rgb(126,80,79)">designSpace</span>.getDimension();</p>
<p class="gmail-p2" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco"><span class="gmail-Apple-converted-space">    </span><span class="gmail-s2" style="color:rgb(147,26,104)">for</span> (<span class="gmail-s2" style="color:rgb(147,26,104)">int</span> <span class="gmail-s3" style="color:rgb(126,80,79)">b</span> = 0; <span class="gmail-s3" style="color:rgb(126,80,79)">b</span> < <span class="gmail-s3" style="color:rgb(126,80,79)">DIMENSION</span>; <span class="gmail-s3" style="color:rgb(126,80,79)">b</span>++) {</p>
<p class="gmail-p2" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco"><span class="gmail-Apple-converted-space">      </span><span class="gmail-s2" style="color:rgb(147,26,104)">if</span> (Math.random() < <span class="gmail-s4" style="color:rgb(3,38,204)">CL</span>) {</p>
<p class="gmail-p4" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco;color:rgb(126,80,79)"><span class="gmail-s1" style="color:rgb(0,0,0)"><span class="gmail-Apple-converted-space">        </span></span>designSpace<span class="gmail-s1" style="color:rgb(0,0,0)">.mutationAt(</span>trailPointLocation<span class="gmail-s1" style="color:rgb(0,0,0)">, </span>b<span class="gmail-s1" style="color:rgb(0,0,0)">);</span></p>
<p class="gmail-p2" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco"><span class="gmail-Apple-converted-space">        </span><span class="gmail-s2" style="color:rgb(147,26,104)">continue</span>;</p>
<p class="gmail-p2" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco"><span class="gmail-Apple-converted-space">      </span>}</p>
<p class="gmail-p3" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco;min-height:25px"><span class="gmail-Apple-converted-space">      </span></p>
<p class="gmail-p4" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco;color:rgb(126,80,79)"><span class="gmail-s1" style="color:rgb(0,0,0)"><span class="gmail-Apple-converted-space">      </span></span><span class="gmail-s2" style="color:rgb(147,26,104)">double</span><span class="gmail-s1" style="color:rgb(0,0,0)"> </span>deltaxb<span class="gmail-s1" style="color:rgb(0,0,0)"> = </span><span class="gmail-s4" style="color:rgb(3,38,204)">weight</span><span class="gmail-s1" style="color:rgb(0,0,0)"> * (</span>pcurrent_t_location<span class="gmail-s1" style="color:rgb(0,0,0)">[</span>b<span class="gmail-s1" style="color:rgb(0,0,0)">] - </span>pold_t_location<span class="gmail-s1" style="color:rgb(0,0,0)">[</span>b<span class="gmail-s1" style="color:rgb(0,0,0)">])</span></p>
<p class="gmail-p2" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco"><span class="gmail-Apple-converted-space">            </span>+ <span class="gmail-s4" style="color:rgb(3,38,204)">c1</span> * Math.random() * (<span class="gmail-s3" style="color:rgb(126,80,79)">pbest_t_location</span>[<span class="gmail-s3" style="color:rgb(126,80,79)">b</span>] - <span class="gmail-s3" style="color:rgb(126,80,79)">pcurrent_t_location</span>[<span class="gmail-s3" style="color:rgb(126,80,79)">b</span>])</p>
<p class="gmail-p2" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco"><span class="gmail-Apple-converted-space">            </span>+ <span class="gmail-s4" style="color:rgb(3,38,204)">c2</span> * Math.random() * (<span class="gmail-s3" style="color:rgb(126,80,79)">gbest_t_location</span>[<span class="gmail-s3" style="color:rgb(126,80,79)">b</span>] - <span class="gmail-s3" style="color:rgb(126,80,79)">pcurrent_t_location</span>[<span class="gmail-s3" style="color:rgb(126,80,79)">b</span>]);</p>
<p class="gmail-p3" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco;min-height:25px"><br></p>
<p class="gmail-p5" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco;color:rgb(78,144,114)"><span class="gmail-s1" style="color:rgb(0,0,0)"><span class="gmail-Apple-converted-space">      </span></span>// limitation for delta_x</p>
<p class="gmail-p2" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco"><span class="gmail-Apple-converted-space">      </span><span class="gmail-s2" style="color:rgb(147,26,104)">double</span> <span class="gmail-s3" style="color:rgb(126,80,79)">deltaxbm</span> = 0.5 * <span class="gmail-s3" style="color:rgb(126,80,79)">designSpace</span>.getMagnitudeIn(<span class="gmail-s3" style="color:rgb(126,80,79)">b</span>);</p>
<p class="gmail-p3" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco;min-height:25px"><span class="gmail-Apple-converted-space">      </span></p>
<p class="gmail-p2" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco"><span class="gmail-Apple-converted-space">      </span><span class="gmail-s2" style="color:rgb(147,26,104)">if</span> (<span class="gmail-s3" style="color:rgb(126,80,79)">deltaxb</span> < -<span class="gmail-s3" style="color:rgb(126,80,79)">deltaxbm</span>) {</p>
<p class="gmail-p4" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco;color:rgb(126,80,79)"><span class="gmail-s1" style="color:rgb(0,0,0)"><span class="gmail-Apple-converted-space">        </span></span>deltaxb<span class="gmail-s1" style="color:rgb(0,0,0)"> = -</span>deltaxbm<span class="gmail-s1" style="color:rgb(0,0,0)">;</span></p>
<p class="gmail-p2" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco"><span class="gmail-Apple-converted-space">      </span>} <span class="gmail-s2" style="color:rgb(147,26,104)">else</span> <span class="gmail-s2" style="color:rgb(147,26,104)">if</span> (<span class="gmail-s3" style="color:rgb(126,80,79)">deltaxb</span> > <span class="gmail-s3" style="color:rgb(126,80,79)">deltaxbm</span>) {</p>
<p class="gmail-p4" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco;color:rgb(126,80,79)"><span class="gmail-s1" style="color:rgb(0,0,0)"><span class="gmail-Apple-converted-space">        </span></span>deltaxb<span class="gmail-s1" style="color:rgb(0,0,0)"> = </span>deltaxbm<span class="gmail-s1" style="color:rgb(0,0,0)">;</span></p>
<p class="gmail-p2" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco"><span class="gmail-Apple-converted-space">      </span>}</p>
<p class="gmail-p3" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco;min-height:25px"><span class="gmail-Apple-converted-space">      </span></p>
<p class="gmail-p4" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco;color:rgb(126,80,79)"><span class="gmail-s1" style="color:rgb(0,0,0)"><span class="gmail-Apple-converted-space">      </span></span>trailPointLocation<span class="gmail-s1" style="color:rgb(0,0,0)">[</span>b<span class="gmail-s1" style="color:rgb(0,0,0)">] = </span>pcurrent_t_location<span class="gmail-s1" style="color:rgb(0,0,0)">[</span>b<span class="gmail-s1" style="color:rgb(0,0,0)">] + </span>deltaxb<span class="gmail-s1" style="color:rgb(0,0,0)">;</span></p>
<p class="gmail-p2" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco"><span class="gmail-Apple-converted-space">    </span>}</p>
<p class="gmail-p2" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:18px;line-height:normal;font-family:Monaco"><span class="gmail-Apple-converted-space">  </span>}</p></div></div></div></div></div></div></div></div></div></div></div></div></div>