<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title>Recent changes to bugs-features</title><link href="http://sourceforge.net/p/opt4j/bugs-features/" rel="alternate"></link><id>http://sourceforge.net/p/opt4j/bugs-features/</id><updated>2013-04-14T05:08:57Z</updated><entry><title>Wrong count of iterations with OptimizationMediator</title><link href="http://sourceforge.net/p/opt4j/bugs-features/27/" rel="alternate"></link><updated>2013-04-14T05:08:57Z</updated><published>2013-04-14T05:08:57Z</published><author><name>Martin Lukasiewycz</name><uri>http://sourceforge.net/u/lukasiewycz/</uri></author><id>http://sourceforge.netb9690e0039e2c0f30d760c0d05254896915b9246</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;If the number of iterations of the EA is 1, not a single implementation is evaluated because the "initialize()" methods is considered as iteration. See optimize() method in OptimizationMediator:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;public&lt;/span&gt; &lt;span class="n"&gt;void&lt;/span&gt; &lt;span class="n"&gt;optimize&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="n"&gt;throws&lt;/span&gt; &lt;span class="n"&gt;StopException&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;TerminationException&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;iterativeOptimizer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;initialize&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="n"&gt;nextIteration&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;iteration&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;iteration&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;max&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;iterativeOptimizer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;next&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
        &lt;span class="n"&gt;nextIteration&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;This method should be: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;public&lt;/span&gt; &lt;span class="n"&gt;void&lt;/span&gt; &lt;span class="n"&gt;optimize&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="n"&gt;throws&lt;/span&gt; &lt;span class="n"&gt;StopException&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;TerminationException&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;iterativeOptimizer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;initialize&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;iteration&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;iteration&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;max&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;iterativeOptimizer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;next&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
        &lt;span class="n"&gt;nextIteration&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;But then it needs to be checked that other optimizers also work properly with this change.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>#22 Unnamed node in Configurator</title><link href="http://sourceforge.net/p/opt4j/bugs-features/22/?limit=25#81d9" rel="alternate"></link><updated>2013-02-22T06:38:39Z</updated><published>2013-02-22T06:38:39Z</published><author><name>Martin Lukasiewycz</name><uri>http://sourceforge.net/u/lukasiewycz/</uri></author><id>http://sourceforge.net313f3f69e06bc4a0d4a05a0530ce7073139955f9</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;status&lt;/strong&gt;: open --&amp;gt; closed-wont-fix&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;milestone&lt;/strong&gt;:  --&amp;gt; &lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</summary></entry><entry><title>#26 Batch.py crashes</title><link href="http://sourceforge.net/p/opt4j/bugs-features/26/?limit=25#8011" rel="alternate"></link><updated>2013-02-22T06:36:54Z</updated><published>2013-02-22T06:36:54Z</published><author><name>Martin Lukasiewycz</name><uri>http://sourceforge.net/u/lukasiewycz/</uri></author><id>http://sourceforge.net268c85439a5d55616227c4aabb7deedb078448be</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;status&lt;/strong&gt;: open --&amp;gt; closed&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;milestone&lt;/strong&gt;:  --&amp;gt; &lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</summary></entry><entry><title>Batch.py crashes</title><link href="http://sourceforge.net/p/opt4j/bugs-features/26/" rel="alternate"></link><updated>2012-10-25T12:53:47Z</updated><published>2012-10-25T12:53:47Z</published><author><name>Anonymous</name><uri>http://sourceforge.net/u/userid-None/</uri></author><id>http://sourceforge.net4684c75e9db89877e39fa2a43944c892b5192130</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;If you use multiple processes for result determination, the batch.py script crashes&lt;br /&gt;
Command: "python2.7 batch.py -p 8 -s ."&lt;/p&gt;
&lt;p&gt;Error:&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
File "batch.py", line 610, in &amp;lt;module&amp;gt;&lt;br /&gt;
if options.results: doResults(basefolder) &lt;br /&gt;
File "batch.py", line 451, in doResults&lt;br /&gt;
nadir = getMax(nadir)&lt;br /&gt;
File "batch.py", line 221, in getMax&lt;br /&gt;
return getComp(samples, max)&lt;br /&gt;
File "batch.py", line 214, in getComp&lt;br /&gt;
sample = Sample(Sample.invValues(minvalues))&lt;br /&gt;
File "batch.py", line 103, in invValues&lt;br /&gt;
return [v if d == MIN else -v for v, d in zip(values, objectives.dirs)]&lt;br /&gt;
AttributeError: 'NoneType' object has no attribute 'dirs'&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Batch.py crashes</title><link href="http://sourceforge.net/p/opt4j/bugs-features/26/" rel="alternate"></link><updated>2012-10-25T12:53:47Z</updated><published>2012-10-25T12:53:47Z</published><author><name>Anonymous</name><uri>http://sourceforge.net/u/userid-None/</uri></author><id>http://sourceforge.netb2d9d966304ce21b4cc3adf4ef3f687029791024</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Ticket 26 has been modified: Batch.py crashes&lt;br /&gt;
Edited By: Martin Lukasiewycz (lukasiewycz)&lt;br /&gt;
Status updated: u'open' =&amp;gt; u'closed'&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Dynamically adding objectives leads to AIOFBException</title><link href="http://sourceforge.net/p/opt4j/bugs-features/25/" rel="alternate"></link><updated>2011-12-21T18:41:29Z</updated><published>2011-12-21T18:41:29Z</published><author><name>Felix Reimann</name><uri>http://sourceforge.net/u/felixreimann/</uri></author><id>http://sourceforge.netf11037cf255c56a6db693455a60270277f1f2638</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;If some objectives need to be feasible for others to be evaluated, the latter have all to be set to infeasible.&lt;br /&gt;
Otherwise, the array-based domination check fails:&lt;/p&gt;
&lt;p&gt;java.lang.ArrayIndexOutOfBoundsException: 1&lt;br /&gt;
    at org.opt4j.core.Objectives.dominates(Objectives.java:277)&lt;br /&gt;
    at org.opt4j.optimizer.ea.Nsga2.fronts(Nsga2.java:205)&lt;br /&gt;
    at org.opt4j.optimizer.ea.Nsga2.getLames(Nsga2.java:133)&lt;br /&gt;
    at org.opt4j.optimizer.ea.EvolutionaryAlgorithm.optimize(EvolutionaryAlgorithm.java:151)&lt;br /&gt;
    at org.opt4j.core.optimizer.Bootstrap.execute(Bootstrap.java:59)&lt;br /&gt;
    at org.opt4j.start.Opt4JTask.execute(Opt4JTask.java:83)&lt;br /&gt;
    at org.opt4j.config.Task.call(Task.java:116)&lt;br /&gt;
    at org.opt4j.config.Task.call(Task.java:1)&lt;br /&gt;
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)&lt;br /&gt;
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)&lt;br /&gt;
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)&lt;br /&gt;
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)&lt;br /&gt;
    at java.lang.Thread.run(Thread.java:662)&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>TSVLogger complains about infeasible solutions</title><link href="http://sourceforge.net/p/opt4j/bugs-features/24/" rel="alternate"></link><updated>2011-10-26T05:37:33Z</updated><published>2011-10-26T05:37:33Z</published><author><name>Martin Lukasiewycz</name><uri>http://sourceforge.net/u/lukasiewycz/</uri></author><id>http://sourceforge.neta15d7c764ad76009f0352e9e0f9b249a8ee7b745</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;See line 187 in TSVLogger: if a value is null, an error message is generated. However, null indicates that the solution is infeasible. &lt;/p&gt;
&lt;p&gt;Solution 1:&lt;br /&gt;
Delete the error message.&lt;br /&gt;
Solution 2:&lt;br /&gt;
Ignore the message and do not log the infeasible solutions.&lt;/p&gt;
&lt;p&gt;Not adding infeasible solutions to the archive is no solution since this would influence the optimization.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>NSGA2 CrowdingDistance Normalization</title><link href="http://sourceforge.net/p/opt4j/bugs-features/23/" rel="alternate"></link><updated>2011-07-18T09:12:04Z</updated><published>2011-07-18T09:12:04Z</published><author><name>Martin Lukasiewycz</name><uri>http://sourceforge.net/u/lukasiewycz/</uri></author><id>http://sourceforge.netc589f4ad499b219a45bf362aa0fe9bbf935ca09e</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Normalize the distances for the NSGA2/CrowingDistance (and also CrowingArchive, and Crowding). Pointed out by Qais Noorshams (KIT)&lt;/p&gt;
&lt;p&gt;See: K. Deb, A. Pratap, S. Agarwal, and T. Meyarivan, "A fast and elitist  multiobjective genetic algorithm : Nsga-ii," Evolutionary Computation, IEEETransactions on, vol. 6, no. 2, pp. 182-197, August 2002.&lt;/p&gt;
&lt;p&gt;Currently, the code for the calculation of the crowing distance exists twice (due to efficiency reasons of the NSGA2). Investigate whether a single generic CrowdingDistanceAlgorithm.class (currently Crowing.class in org.opt4j.optimizer.mopso package) would be possible without losing too much performance.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Unnamed node in Configurator</title><link href="http://sourceforge.net/p/opt4j/bugs-features/22/" rel="alternate"></link><updated>2011-07-11T13:32:27Z</updated><published>2011-07-11T13:32:27Z</published><author><name>Felix Reimann</name><uri>http://sourceforge.net/u/felixreimann/</uri></author><id>http://sourceforge.net88d3f3d286ae5a4929d08bc6edcbd1a43d650aab</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;If you name an Opt4JModule simply "Module" without any prefix like "MyProblemModule" you get an unnamed node in the configurator.&lt;br /&gt;
This is a little GUI flaw.&lt;br /&gt;
"Module" should only be stripped iff the resulting node name in the configurator would not be the empty String.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Unnamed node in Configurator</title><link href="http://sourceforge.net/p/opt4j/bugs-features/22/" rel="alternate"></link><updated>2011-07-11T13:32:27Z</updated><published>2011-07-11T13:32:27Z</published><author><name>Felix Reimann</name><uri>http://sourceforge.net/u/felixreimann/</uri></author><id>http://sourceforge.net44d0c2f4c912158840d8993909c45c1279c335c9</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Ticket 22 has been modified: Unnamed node in Configurator&lt;br /&gt;
Edited By: Martin Lukasiewycz (lukasiewycz)&lt;br /&gt;
Status updated: u'open' =&amp;gt; u'closed-wont-fix'&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>