Parcourir la source

Fix initialization of solution issue; Fix load of UCB checkpoint

Jérôme BUISINE il y a 3 ans
Parent
commit
39dd88a8f3
77 fichiers modifiés avec 229 ajouts et 204 suppressions
  1. BIN
      docs/build/doctrees/environment.pickle
  2. BIN
      docs/build/doctrees/macop/macop.algorithms.Algorithm.doctree
  3. 1 1
      docs/build/html/.buildinfo
  4. 2 2
      docs/build/html/_modules/index.html
  5. 2 15
      docs/build/html/_modules/macop/algorithms/Algorithm.html
  6. 6 2
      docs/build/html/_modules/macop/algorithms/mono/IteratedLocalSearch.html
  7. 6 2
      docs/build/html/_modules/macop/algorithms/mono/LocalSearch.html
  8. 19 18
      docs/build/html/_modules/macop/algorithms/multi/MOEAD.html
  9. 14 2
      docs/build/html/_modules/macop/algorithms/multi/MOSubProblem.html
  10. 5 2
      docs/build/html/_modules/macop/callbacks/BasicCheckpoint.html
  11. 2 2
      docs/build/html/_modules/macop/callbacks/Callback.html
  12. 5 3
      docs/build/html/_modules/macop/callbacks/MultiCheckpoint.html
  13. 2 2
      docs/build/html/_modules/macop/callbacks/ParetoCheckpoint.html
  14. 5 5
      docs/build/html/_modules/macop/callbacks/UCBCheckpoint.html
  15. 2 2
      docs/build/html/_modules/macop/evaluators/EvaluatorExample.html
  16. 2 2
      docs/build/html/_modules/macop/operators/Operator.html
  17. 2 2
      docs/build/html/_modules/macop/operators/crossovers/Crossover.html
  18. 2 2
      docs/build/html/_modules/macop/operators/crossovers/RandomSplitCrossover.html
  19. 3 2
      docs/build/html/_modules/macop/operators/crossovers/SimpleCrossover.html
  20. 2 2
      docs/build/html/_modules/macop/operators/mutators/Mutation.html
  21. 2 2
      docs/build/html/_modules/macop/operators/mutators/SimpleBinaryMutation.html
  22. 2 2
      docs/build/html/_modules/macop/operators/mutators/SimpleMutation.html
  23. 2 2
      docs/build/html/_modules/macop/operators/policies/Policy.html
  24. 2 2
      docs/build/html/_modules/macop/operators/policies/RandomPolicy.html
  25. 8 5
      docs/build/html/_modules/macop/operators/policies/UCBPolicy.html
  26. 2 2
      docs/build/html/_modules/macop/solutions/BinarySolution.html
  27. 2 2
      docs/build/html/_modules/macop/solutions/CombinatoryIntegerSolution.html
  28. 2 2
      docs/build/html/_modules/macop/solutions/IntegerSolution.html
  29. 1 1
      docs/build/html/_static/documentation_options.js
  30. 2 2
      docs/build/html/contributing.html
  31. 2 2
      docs/build/html/description.html
  32. 2 2
      docs/build/html/examples.html
  33. 2 4
      docs/build/html/genindex.html
  34. 2 2
      docs/build/html/index.html
  35. 2 2
      docs/build/html/macop.html
  36. 2 9
      docs/build/html/macop/macop.algorithms.Algorithm.html
  37. 2 2
      docs/build/html/macop/macop.algorithms.mono.IteratedLocalSearch.html
  38. 2 2
      docs/build/html/macop/macop.algorithms.mono.LocalSearch.html
  39. 2 2
      docs/build/html/macop/macop.algorithms.multi.MOEAD.html
  40. 2 2
      docs/build/html/macop/macop.algorithms.multi.MOSubProblem.html
  41. 2 2
      docs/build/html/macop/macop.callbacks.BasicCheckpoint.html
  42. 2 2
      docs/build/html/macop/macop.callbacks.Callback.html
  43. 2 2
      docs/build/html/macop/macop.callbacks.MultiCheckpoint.html
  44. 2 2
      docs/build/html/macop/macop.callbacks.ParetoCheckpoint.html
  45. 2 2
      docs/build/html/macop/macop.callbacks.UCBCheckpoint.html
  46. 2 2
      docs/build/html/macop/macop.evaluators.EvaluatorExample.html
  47. 2 2
      docs/build/html/macop/macop.operators.Operator.html
  48. 2 2
      docs/build/html/macop/macop.operators.crossovers.Crossover.html
  49. 2 2
      docs/build/html/macop/macop.operators.crossovers.RandomSplitCrossover.html
  50. 2 2
      docs/build/html/macop/macop.operators.crossovers.SimpleCrossover.html
  51. 2 2
      docs/build/html/macop/macop.operators.mutators.Mutation.html
  52. 2 2
      docs/build/html/macop/macop.operators.mutators.SimpleBinaryMutation.html
  53. 2 2
      docs/build/html/macop/macop.operators.mutators.SimpleMutation.html
  54. 2 2
      docs/build/html/macop/macop.operators.policies.Policy.html
  55. 2 2
      docs/build/html/macop/macop.operators.policies.RandomPolicy.html
  56. 2 2
      docs/build/html/macop/macop.operators.policies.UCBPolicy.html
  57. 2 2
      docs/build/html/macop/macop.solutions.BinarySolution.html
  58. 2 2
      docs/build/html/macop/macop.solutions.CombinatoryIntegerSolution.html
  59. 2 2
      docs/build/html/macop/macop.solutions.IntegerSolution.html
  60. 2 2
      docs/build/html/macop/macop.solutions.Solution.html
  61. BIN
      docs/build/html/objects.inv
  62. 2 2
      docs/build/html/py-modindex.html
  63. 2 2
      docs/build/html/search.html
  64. 1 1
      docs/build/html/searchindex.js
  65. 2 2
      docs/source/conf.py
  66. 1 1
      examples/knapsackMultiExample.py
  67. 0 13
      macop/algorithms/Algorithm.py
  68. 4 0
      macop/algorithms/mono/IteratedLocalSearch.py
  69. 4 0
      macop/algorithms/mono/LocalSearch.py
  70. 17 16
      macop/algorithms/multi/MOEAD.py
  71. 12 0
      macop/algorithms/multi/MOSubProblem.py
  72. 3 0
      macop/callbacks/BasicCheckpoint.py
  73. 3 1
      macop/callbacks/MultiCheckpoint.py
  74. 3 3
      macop/callbacks/UCBCheckpoint.py
  75. 1 0
      macop/operators/crossovers/SimpleCrossover.py
  76. 6 3
      macop/operators/policies/UCBPolicy.py
  77. 1 1
      setup.py

BIN
docs/build/doctrees/environment.pickle


BIN
docs/build/doctrees/macop/macop.algorithms.Algorithm.doctree


+ 1 - 1
docs/build/html/.buildinfo

@@ -1,4 +1,4 @@
 # Sphinx build info version 1
 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: 67d79fa66626d2ce3998cd374f022037
+config: 7678a64c62039a05d364f4f8ec254ed0
 tags: 645f666f9bcd5a90fca523b33c5a78b7

+ 2 - 2
docs/build/html/_modules/index.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Overview: module code &mdash; macop v0.3.3 documentation</title>
+  <title>Overview: module code &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

Fichier diff supprimé car celui-ci est trop grand
+ 2 - 15
docs/build/html/_modules/macop/algorithms/Algorithm.html


+ 6 - 2
docs/build/html/_modules/macop/algorithms/mono/IteratedLocalSearch.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.algorithms.mono.IteratedLocalSearch &mdash; macop v0.3.3 documentation</title>
+  <title>macop.algorithms.mono.IteratedLocalSearch &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           
@@ -194,6 +194,10 @@
         <span class="c1"># enable resuming for ILS</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">resume</span><span class="p">()</span>
 
+        <span class="c1"># initialize solution if no backup</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">bestSolution</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">initRun</span><span class="p">()</span>
+
         <span class="c1"># passing global evaluation param from ILS</span>
         <span class="n">ls</span> <span class="o">=</span> <span class="n">LocalSearch</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">initializer</span><span class="p">,</span>
                          <span class="bp">self</span><span class="o">.</span><span class="n">evaluator</span><span class="p">,</span>

+ 6 - 2
docs/build/html/_modules/macop/algorithms/mono/LocalSearch.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.algorithms.mono.LocalSearch &mdash; macop v0.3.3 documentation</title>
+  <title>macop.algorithms.mono.LocalSearch &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           
@@ -189,6 +189,10 @@
         <span class="c1"># by default use of mother method to initialize variables</span>
         <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">_evaluations</span><span class="p">)</span>
 
+        <span class="c1"># initialize solution if no backup</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">bestSolution</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">initRun</span><span class="p">()</span>
+
         <span class="n">solutionSize</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">bestSolution</span><span class="o">.</span><span class="n">size</span>
 
         <span class="c1"># local search algorithm implementation</span>

+ 19 - 18
docs/build/html/_modules/macop/algorithms/multi/MOEAD.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.algorithms.multi.MOEAD &mdash; macop v0.3.3 documentation</title>
+  <title>macop.algorithms.multi.MOEAD &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           
@@ -167,12 +167,6 @@
 <span class="kn">from</span> <span class="nn">..Algorithm</span> <span class="kn">import</span> <span class="n">Algorithm</span>
 <span class="kn">from</span> <span class="nn">.MOSubProblem</span> <span class="kn">import</span> <span class="n">MOSubProblem</span>
 
-<span class="c1"># import all available solutions</span>
-<span class="k">for</span> <span class="n">loader</span><span class="p">,</span> <span class="n">module_name</span><span class="p">,</span> <span class="n">is_pkg</span> <span class="ow">in</span> <span class="n">pkgutil</span><span class="o">.</span><span class="n">walk_packages</span><span class="p">(</span>
-        <span class="n">path</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;macop/solutions&#39;</span><span class="p">],</span> <span class="n">prefix</span><span class="o">=</span><span class="s1">&#39;macop.solutions.&#39;</span><span class="p">):</span>
-    <span class="n">_module</span> <span class="o">=</span> <span class="n">loader</span><span class="o">.</span><span class="n">find_module</span><span class="p">(</span><span class="n">module_name</span><span class="p">)</span><span class="o">.</span><span class="n">load_module</span><span class="p">(</span><span class="n">module_name</span><span class="p">)</span>
-    <span class="nb">globals</span><span class="p">()[</span><span class="n">module_name</span><span class="p">]</span> <span class="o">=</span> <span class="n">_module</span>
-
 
 <span class="k">def</span> <span class="nf">moEvaluator</span><span class="p">(</span><span class="n">_solution</span><span class="p">,</span> <span class="n">_evaluator</span><span class="p">,</span> <span class="n">_weights</span><span class="p">):</span>
 
@@ -236,7 +230,7 @@
         <span class="k">for</span> <span class="n">operator</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">operators</span><span class="p">:</span>
             <span class="n">operator</span><span class="o">.</span><span class="n">setAlgo</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
 
-        <span class="c1"># also track reference for policy</span>
+        <span class="c1"># by default track reference for policy</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">policy</span><span class="o">.</span><span class="n">setAlgo</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
 
         <span class="k">if</span> <span class="n">_mu</span> <span class="o">&lt;</span> <span class="n">_T</span><span class="p">:</span>
@@ -276,9 +270,11 @@
                 <span class="n">_solution</span><span class="p">,</span> <span class="n">_evaluator</span><span class="p">,</span> <span class="n">weights</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
 
             <span class="c1"># intialize each sub problem</span>
-            <span class="n">subProblem</span> <span class="o">=</span> <span class="n">MOSubProblem</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="n">weights</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">_initalizer</span><span class="p">,</span>
-                                      <span class="n">sub_evaluator</span><span class="p">,</span> <span class="n">_operators</span><span class="p">,</span> <span class="n">_policy</span><span class="p">,</span>
-                                      <span class="n">_validator</span><span class="p">,</span> <span class="n">_maximise</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span>
+            <span class="c1"># use copy of list to keep track for each sub problem</span>
+            <span class="n">subProblem</span> <span class="o">=</span> <span class="n">MOSubProblem</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="n">weights</span><span class="p">[</span><span class="n">i</span><span class="p">],</span>
+                                      <span class="n">_initalizer</span><span class="p">,</span> <span class="n">sub_evaluator</span><span class="p">,</span>
+                                      <span class="n">_operators</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">_policy</span><span class="p">,</span> <span class="n">_validator</span><span class="p">,</span>
+                                      <span class="n">_maximise</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span>
 
             <span class="bp">self</span><span class="o">.</span><span class="n">subProblems</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">subProblem</span><span class="p">)</span>
 
@@ -314,15 +310,20 @@
         <span class="c1"># by default use of mother method to initialize variables</span>
         <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">_evaluations</span><span class="p">)</span>
 
-        <span class="c1"># initialize each sub problem</span>
+        <span class="c1"># enable callback resume for MOEAD</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">resume</span><span class="p">()</span>
+
+        <span class="c1"># initialize each sub problem if no backup</span>
         <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">mu</span><span class="p">):</span>
-            <span class="bp">self</span><span class="o">.</span><span class="n">subProblems</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
 
-            <span class="bp">self</span><span class="o">.</span><span class="n">population</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">subProblems</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">bestSolution</span>
-            <span class="bp">self</span><span class="o">.</span><span class="n">pfPop</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">subProblems</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">bestSolution</span><span class="p">)</span>
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">subProblems</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">bestSolution</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">subProblems</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">population</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">subProblems</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">bestSolution</span>
 
-        <span class="c1"># enable callback resume for MOEAD</span>
-        <span class="bp">self</span><span class="o">.</span><span class="n">resume</span><span class="p">()</span>
+        <span class="c1"># if no backup for pf population</span>
+        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">pfPop</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">mu</span><span class="p">):</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">pfPop</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">subProblems</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">bestSolution</span><span class="p">)</span>
 
         <span class="c1"># MOEAD algorithm implementation</span>
         <span class="k">while</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">stop</span><span class="p">():</span>

+ 14 - 2
docs/build/html/_modules/macop/algorithms/multi/MOSubProblem.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.algorithms.multi.MOSubProblem &mdash; macop v0.3.3 documentation</title>
+  <title>macop.algorithms.multi.MOSubProblem &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           
@@ -208,7 +208,19 @@
         <span class="c1"># by default use of mother method to initialize variables</span>
         <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">_evaluations</span><span class="p">)</span>
 
+        <span class="c1"># initialize solution if necessary</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">bestSolution</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">initRun</span><span class="p">()</span>
+
+        <span class="c1"># new operators list keep track of current sub problem</span>
+        <span class="k">for</span> <span class="n">op</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">operators</span><span class="p">:</span>
+            <span class="n">op</span><span class="o">.</span><span class="n">setAlgo</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
+
         <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">_evaluations</span><span class="p">):</span>
+
+            <span class="c1"># keep reference of sub problem used</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">policy</span><span class="o">.</span><span class="n">setAlgo</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
+
             <span class="c1"># update solution using policy</span>
             <span class="n">newSolution</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">bestSolution</span><span class="p">)</span>
 

+ 5 - 2
docs/build/html/_modules/macop/callbacks/BasicCheckpoint.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.callbacks.BasicCheckpoint &mdash; macop v0.3.3 documentation</title>
+  <title>macop.callbacks.BasicCheckpoint &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           
@@ -231,6 +231,9 @@
                 <span class="c1"># get best solution data information</span>
                 <span class="n">solutionData</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">map</span><span class="p">(</span><span class="nb">int</span><span class="p">,</span> <span class="n">data</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39; &#39;</span><span class="p">)))</span>
 
+                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">algo</span><span class="o">.</span><span class="n">bestSolution</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">algo</span><span class="o">.</span><span class="n">bestSolution</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">algo</span><span class="o">.</span><span class="n">initializer</span><span class="p">()</span>
+
                 <span class="bp">self</span><span class="o">.</span><span class="n">algo</span><span class="o">.</span><span class="n">bestSolution</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">solutionData</span><span class="p">)</span>
                 <span class="bp">self</span><span class="o">.</span><span class="n">algo</span><span class="o">.</span><span class="n">bestSolution</span><span class="o">.</span><span class="n">score</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
 

+ 2 - 2
docs/build/html/_modules/macop/callbacks/Callback.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.callbacks.Callback &mdash; macop v0.3.3 documentation</title>
+  <title>macop.callbacks.Callback &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 5 - 3
docs/build/html/_modules/macop/callbacks/MultiCheckpoint.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.callbacks.MultiCheckpoint &mdash; macop v0.3.3 documentation</title>
+  <title>macop.callbacks.MultiCheckpoint &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           
@@ -238,10 +238,12 @@
                     <span class="c1"># get best solution data information</span>
                     <span class="n">solutionData</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">map</span><span class="p">(</span><span class="nb">int</span><span class="p">,</span> <span class="n">data</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39; &#39;</span><span class="p">)))</span>
 
+                    <span class="c1"># initialize and fill with data</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">algo</span><span class="o">.</span><span class="n">population</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">algo</span><span class="o">.</span><span class="n">initializer</span><span class="p">()</span>
                     <span class="bp">self</span><span class="o">.</span><span class="n">algo</span><span class="o">.</span><span class="n">population</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">solutionData</span><span class="p">)</span>
                     <span class="bp">self</span><span class="o">.</span><span class="n">algo</span><span class="o">.</span><span class="n">population</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">scores</span> <span class="o">=</span> <span class="n">scores</span>
 
-                    <span class="bp">self</span><span class="o">.</span><span class="n">algo</span><span class="o">.</span><span class="n">pfPop</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">algo</span><span class="o">.</span><span class="n">population</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">algo</span><span class="o">.</span><span class="n">pfPop</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">algo</span><span class="o">.</span><span class="n">population</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
 
             <span class="nb">print</span><span class="p">(</span><span class="n">macop_line</span><span class="p">())</span>
             <span class="nb">print</span><span class="p">(</span>

+ 2 - 2
docs/build/html/_modules/macop/callbacks/ParetoCheckpoint.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.callbacks.ParetoCheckpoint &mdash; macop v0.3.3 documentation</title>
+  <title>macop.callbacks.ParetoCheckpoint &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 5 - 5
docs/build/html/_modules/macop/callbacks/UCBCheckpoint.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.callbacks.UCBCheckpoint &mdash; macop v0.3.3 documentation</title>
+  <title>macop.callbacks.UCBCheckpoint &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           
@@ -221,13 +221,13 @@
                 <span class="n">lines</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">readlines</span><span class="p">()</span>
                 <span class="c1"># read data for each line</span>
                 <span class="n">rewardsLine</span> <span class="o">=</span> <span class="n">lines</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
-                <span class="n">occurenciesLine</span> <span class="o">=</span> <span class="n">lines</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
+                <span class="n">occurrencesLine</span> <span class="o">=</span> <span class="n">lines</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
 
                 <span class="bp">self</span><span class="o">.</span><span class="n">algo</span><span class="o">.</span><span class="n">policy</span><span class="o">.</span><span class="n">rewards</span> <span class="o">=</span> <span class="p">[</span>
                     <span class="nb">float</span><span class="p">(</span><span class="n">f</span><span class="p">)</span> <span class="k">for</span> <span class="n">f</span> <span class="ow">in</span> <span class="n">rewardsLine</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;;&#39;</span><span class="p">)</span>
                 <span class="p">]</span>
-                <span class="bp">self</span><span class="o">.</span><span class="n">algo</span><span class="o">.</span><span class="n">policy</span><span class="o">.</span><span class="n">occurencies</span> <span class="o">=</span> <span class="p">[</span>
-                    <span class="nb">float</span><span class="p">(</span><span class="n">f</span><span class="p">)</span> <span class="k">for</span> <span class="n">f</span> <span class="ow">in</span> <span class="n">occurenciesLine</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;;&#39;</span><span class="p">)</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">algo</span><span class="o">.</span><span class="n">policy</span><span class="o">.</span><span class="n">occurrences</span> <span class="o">=</span> <span class="p">[</span>
+                    <span class="nb">float</span><span class="p">(</span><span class="n">f</span><span class="p">)</span> <span class="k">for</span> <span class="n">f</span> <span class="ow">in</span> <span class="n">occurrencesLine</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;;&#39;</span><span class="p">)</span>
                 <span class="p">]</span>
 
             <span class="nb">print</span><span class="p">(</span>

+ 2 - 2
docs/build/html/_modules/macop/evaluators/EvaluatorExample.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.evaluators.EvaluatorExample &mdash; macop v0.3.3 documentation</title>
+  <title>macop.evaluators.EvaluatorExample &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/_modules/macop/operators/Operator.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.operators.Operator &mdash; macop v0.3.3 documentation</title>
+  <title>macop.operators.Operator &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/_modules/macop/operators/crossovers/Crossover.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.operators.crossovers.Crossover &mdash; macop v0.3.3 documentation</title>
+  <title>macop.operators.crossovers.Crossover &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/_modules/macop/operators/crossovers/RandomSplitCrossover.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.operators.crossovers.RandomSplitCrossover &mdash; macop v0.3.3 documentation</title>
+  <title>macop.operators.crossovers.RandomSplitCrossover &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 3 - 2
docs/build/html/_modules/macop/operators/crossovers/SimpleCrossover.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.operators.crossovers.SimpleCrossover &mdash; macop v0.3.3 documentation</title>
+  <title>macop.operators.crossovers.SimpleCrossover &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           
@@ -192,6 +192,7 @@
 
         <span class="c1"># copy data of solution</span>
         <span class="n">firstData</span> <span class="o">=</span> <span class="n">_solution</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
+
         <span class="c1"># get best solution from current algorithm</span>
         <span class="n">secondData</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">algo</span><span class="o">.</span><span class="n">bestSolution</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
 

+ 2 - 2
docs/build/html/_modules/macop/operators/mutators/Mutation.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.operators.mutators.Mutation &mdash; macop v0.3.3 documentation</title>
+  <title>macop.operators.mutators.Mutation &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/_modules/macop/operators/mutators/SimpleBinaryMutation.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.operators.mutators.SimpleBinaryMutation &mdash; macop v0.3.3 documentation</title>
+  <title>macop.operators.mutators.SimpleBinaryMutation &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/_modules/macop/operators/mutators/SimpleMutation.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.operators.mutators.SimpleMutation &mdash; macop v0.3.3 documentation</title>
+  <title>macop.operators.mutators.SimpleMutation &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/_modules/macop/operators/policies/Policy.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.operators.policies.Policy &mdash; macop v0.3.3 documentation</title>
+  <title>macop.operators.policies.Policy &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/_modules/macop/operators/policies/RandomPolicy.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.operators.policies.RandomPolicy &mdash; macop v0.3.3 documentation</title>
+  <title>macop.operators.policies.RandomPolicy &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 8 - 5
docs/build/html/_modules/macop/operators/policies/UCBPolicy.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.operators.policies.UCBPolicy &mdash; macop v0.3.3 documentation</title>
+  <title>macop.operators.policies.UCBPolicy &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           
@@ -192,7 +192,8 @@
         <span class="c1"># random choice following exploration rate</span>
         <span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">uniform</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> <span class="o">&lt;=</span> <span class="bp">self</span><span class="o">.</span><span class="n">exp_rate</span><span class="p">:</span>
 
-            <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">operators</span><span class="p">[</span><span class="n">random</span><span class="o">.</span><span class="n">choice</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">operators</span><span class="p">)))]</span>
+            <span class="n">index</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">choice</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">operators</span><span class="p">)))</span>
+            <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">operators</span><span class="p">[</span><span class="n">index</span><span class="p">]</span>
 
         <span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">indices</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
 
@@ -241,10 +242,12 @@
             <span class="n">fir</span> <span class="o">=</span> <span class="p">(</span><span class="n">_solution</span><span class="o">.</span><span class="n">fitness</span><span class="p">()</span> <span class="o">-</span>
                    <span class="n">newSolution</span><span class="o">.</span><span class="n">fitness</span><span class="p">())</span> <span class="o">/</span> <span class="n">_solution</span><span class="o">.</span><span class="n">fitness</span><span class="p">()</span>
 
+        <span class="n">operator_index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">operators</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">operator</span><span class="p">)</span>
+
         <span class="k">if</span> <span class="n">fir</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
-            <span class="n">operator_index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">operators</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">operator</span><span class="p">)</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">rewards</span><span class="p">[</span><span class="n">operator_index</span><span class="p">]</span> <span class="o">+=</span> <span class="n">fir</span>
-            <span class="bp">self</span><span class="o">.</span><span class="n">occurrences</span><span class="p">[</span><span class="n">operator_index</span><span class="p">]</span> <span class="o">+=</span> <span class="mi">1</span>
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">occurrences</span><span class="p">[</span><span class="n">operator_index</span><span class="p">]</span> <span class="o">+=</span> <span class="mi">1</span>
 
         <span class="n">logging</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;---- Obtaining </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">_solution</span><span class="p">))</span>
 

+ 2 - 2
docs/build/html/_modules/macop/solutions/BinarySolution.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.solutions.BinarySolution &mdash; macop v0.3.3 documentation</title>
+  <title>macop.solutions.BinarySolution &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/_modules/macop/solutions/CombinatoryIntegerSolution.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.solutions.CombinatoryIntegerSolution &mdash; macop v0.3.3 documentation</title>
+  <title>macop.solutions.CombinatoryIntegerSolution &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/_modules/macop/solutions/IntegerSolution.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.solutions.IntegerSolution &mdash; macop v0.3.3 documentation</title>
+  <title>macop.solutions.IntegerSolution &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 1 - 1
docs/build/html/_static/documentation_options.js

@@ -1,6 +1,6 @@
 var DOCUMENTATION_OPTIONS = {
     URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
-    VERSION: 'v0.3.3',
+    VERSION: 'v0.3.4',
     LANGUAGE: 'None',
     COLLAPSE_INDEX: false,
     FILE_SUFFIX: '.html',

+ 2 - 2
docs/build/html/contributing.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Contributing &mdash; macop v0.3.3 documentation</title>
+  <title>Contributing &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -59,7 +59,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/description.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Description &mdash; macop v0.3.3 documentation</title>
+  <title>Description &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/examples.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Some examples &mdash; macop v0.3.3 documentation</title>
+  <title>Some examples &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 4
docs/build/html/genindex.html

@@ -9,7 +9,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Index &mdash; macop v0.3.3 documentation</title>
+  <title>Index &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -59,7 +59,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           
@@ -392,8 +392,6 @@
       </ul></li>
   </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
-      <li><a href="macop/macop.algorithms.Algorithm.html#macop.algorithms.Algorithm.Algorithm.initContext">initContext() (macop.algorithms.Algorithm.Algorithm method)</a>
-</li>
       <li><a href="macop/macop.algorithms.Algorithm.html#macop.algorithms.Algorithm.Algorithm.initRun">initRun() (macop.algorithms.Algorithm.Algorithm method)</a>
 
       <ul>

+ 2 - 2
docs/build/html/index.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Minimalist And Customizable Optimization Package &mdash; macop v0.3.3 documentation</title>
+  <title>Minimalist And Customizable Optimization Package &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -59,7 +59,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/macop.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Documentation &mdash; macop v0.3.3 documentation</title>
+  <title>Documentation &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 9
docs/build/html/macop/macop.algorithms.Algorithm.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.algorithms.Algorithm &mdash; macop v0.3.3 documentation</title>
+  <title>macop.algorithms.Algorithm &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           
@@ -315,13 +315,6 @@
 <dd><p>Increase number of evaluation once a solution is evaluated</p>
 </dd></dl>
 
-<dl class="method">
-<dt id="macop.algorithms.Algorithm.Algorithm.initContext">
-<code class="sig-name descname">initContext</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/macop/algorithms/Algorithm.html#Algorithm.initContext"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#macop.algorithms.Algorithm.Algorithm.initContext" title="Permalink to this definition">¶</a></dt>
-<dd><p>Initialize context for macop solutions (dynamic import)
-Must be part of initialization method of Algorithm implementation</p>
-</dd></dl>
-
 <dl class="method">
 <dt id="macop.algorithms.Algorithm.Algorithm.initRun">
 <code class="sig-name descname">initRun</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/macop/algorithms/Algorithm.html#Algorithm.initRun"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#macop.algorithms.Algorithm.Algorithm.initRun" title="Permalink to this definition">¶</a></dt>

+ 2 - 2
docs/build/html/macop/macop.algorithms.mono.IteratedLocalSearch.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.algorithms.mono.IteratedLocalSearch &mdash; macop v0.3.3 documentation</title>
+  <title>macop.algorithms.mono.IteratedLocalSearch &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/macop/macop.algorithms.mono.LocalSearch.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.algorithms.mono.LocalSearch &mdash; macop v0.3.3 documentation</title>
+  <title>macop.algorithms.mono.LocalSearch &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/macop/macop.algorithms.multi.MOEAD.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.algorithms.multi.MOEAD &mdash; macop v0.3.3 documentation</title>
+  <title>macop.algorithms.multi.MOEAD &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/macop/macop.algorithms.multi.MOSubProblem.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.algorithms.multi.MOSubProblem &mdash; macop v0.3.3 documentation</title>
+  <title>macop.algorithms.multi.MOSubProblem &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/macop/macop.callbacks.BasicCheckpoint.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.callbacks.BasicCheckpoint &mdash; macop v0.3.3 documentation</title>
+  <title>macop.callbacks.BasicCheckpoint &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/macop/macop.callbacks.Callback.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.callbacks.Callback &mdash; macop v0.3.3 documentation</title>
+  <title>macop.callbacks.Callback &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/macop/macop.callbacks.MultiCheckpoint.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.callbacks.MultiCheckpoint &mdash; macop v0.3.3 documentation</title>
+  <title>macop.callbacks.MultiCheckpoint &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/macop/macop.callbacks.ParetoCheckpoint.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.callbacks.ParetoCheckpoint &mdash; macop v0.3.3 documentation</title>
+  <title>macop.callbacks.ParetoCheckpoint &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/macop/macop.callbacks.UCBCheckpoint.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.callbacks.UCBCheckpoint &mdash; macop v0.3.3 documentation</title>
+  <title>macop.callbacks.UCBCheckpoint &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/macop/macop.evaluators.EvaluatorExample.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.evaluators.EvaluatorExample &mdash; macop v0.3.3 documentation</title>
+  <title>macop.evaluators.EvaluatorExample &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/macop/macop.operators.Operator.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.operators.Operator &mdash; macop v0.3.3 documentation</title>
+  <title>macop.operators.Operator &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/macop/macop.operators.crossovers.Crossover.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.operators.crossovers.Crossover &mdash; macop v0.3.3 documentation</title>
+  <title>macop.operators.crossovers.Crossover &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/macop/macop.operators.crossovers.RandomSplitCrossover.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.operators.crossovers.RandomSplitCrossover &mdash; macop v0.3.3 documentation</title>
+  <title>macop.operators.crossovers.RandomSplitCrossover &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/macop/macop.operators.crossovers.SimpleCrossover.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.operators.crossovers.SimpleCrossover &mdash; macop v0.3.3 documentation</title>
+  <title>macop.operators.crossovers.SimpleCrossover &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/macop/macop.operators.mutators.Mutation.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.operators.mutators.Mutation &mdash; macop v0.3.3 documentation</title>
+  <title>macop.operators.mutators.Mutation &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/macop/macop.operators.mutators.SimpleBinaryMutation.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.operators.mutators.SimpleBinaryMutation &mdash; macop v0.3.3 documentation</title>
+  <title>macop.operators.mutators.SimpleBinaryMutation &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/macop/macop.operators.mutators.SimpleMutation.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.operators.mutators.SimpleMutation &mdash; macop v0.3.3 documentation</title>
+  <title>macop.operators.mutators.SimpleMutation &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/macop/macop.operators.policies.Policy.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.operators.policies.Policy &mdash; macop v0.3.3 documentation</title>
+  <title>macop.operators.policies.Policy &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/macop/macop.operators.policies.RandomPolicy.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.operators.policies.RandomPolicy &mdash; macop v0.3.3 documentation</title>
+  <title>macop.operators.policies.RandomPolicy &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/macop/macop.operators.policies.UCBPolicy.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.operators.policies.UCBPolicy &mdash; macop v0.3.3 documentation</title>
+  <title>macop.operators.policies.UCBPolicy &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/macop/macop.solutions.BinarySolution.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.solutions.BinarySolution &mdash; macop v0.3.3 documentation</title>
+  <title>macop.solutions.BinarySolution &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/macop/macop.solutions.CombinatoryIntegerSolution.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.solutions.CombinatoryIntegerSolution &mdash; macop v0.3.3 documentation</title>
+  <title>macop.solutions.CombinatoryIntegerSolution &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/macop/macop.solutions.IntegerSolution.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.solutions.IntegerSolution &mdash; macop v0.3.3 documentation</title>
+  <title>macop.solutions.IntegerSolution &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/macop/macop.solutions.Solution.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.solutions.Solution &mdash; macop v0.3.3 documentation</title>
+  <title>macop.solutions.Solution &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

BIN
docs/build/html/objects.inv


+ 2 - 2
docs/build/html/py-modindex.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Python Module Index &mdash; macop v0.3.3 documentation</title>
+  <title>Python Module Index &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -61,7 +61,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

+ 2 - 2
docs/build/html/search.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>Search &mdash; macop v0.3.3 documentation</title>
+  <title>Search &mdash; macop v0.3.4 documentation</title>
   
 
   
@@ -59,7 +59,7 @@
             
             
               <div class="version">
-                0.3.3
+                0.3.4
               </div>
             
           

Fichier diff supprimé car celui-ci est trop grand
+ 1 - 1
docs/build/html/searchindex.js


+ 2 - 2
docs/source/conf.py

@@ -23,9 +23,9 @@ copyright = '2020, Jérôme BUISINE'
 author = 'Jérôme BUISINE'
 
 # The short X.Y version
-version = '0.3.3'
+version = '0.3.4'
 # The full version, including alpha/beta/rc tags
-release = 'v0.3.3'
+release = 'v0.3.4'
 
 
 # -- General configuration ---------------------------------------------------

+ 1 - 1
examples/knapsackMultiExample.py

@@ -77,7 +77,7 @@ ucb_checkpoint_path = "data/UCBPolicyMOEAD.csv"
 def main():
 
     operators = [SimpleBinaryMutation(), SimpleMutation(), SimpleCrossover(), RandomSplitCrossover()]
-    policy = UCBPolicy(operators, _C=100)
+    policy = UCBPolicy(operators, _C=100, _exp_rate=0.2)
 
     # pass list of evaluators
     algo = MOEAD(20, 5, init, [evaluator1, evaluator2, evaluator2, evaluator2], operators, policy, validator, _maximise=True)

+ 0 - 13
macop/algorithms/Algorithm.py

@@ -58,19 +58,6 @@ class Algorithm():
         # also track reference for policy
         self.policy.setAlgo(self)
 
-        self.initRun()
-
-    def initContext(self):
-        """Initialize context for macop solutions (dynamic import)
-           Must be part of initialization method of Algorithm implementation
-        """
-        # dynamically load all available macop solutions
-        for loader, module_name, _ in pkgutil.walk_packages(
-                path=[p + '/solutions' for p in sys.modules['macop'].__path__],
-                prefix='macop.solutions.'):
-            _module = loader.find_module(module_name).load_module(module_name)
-            globals()[module_name] = _module
-
     def addCallback(self, _callback):
         """Add new callback to algorithm specifying usefull parameters
 

+ 4 - 0
macop/algorithms/mono/IteratedLocalSearch.py

@@ -41,6 +41,10 @@ class IteratedLocalSearch(Algorithm):
         # enable resuming for ILS
         self.resume()
 
+        # initialize solution if no backup
+        if self.bestSolution is None:
+            self.initRun()
+
         # passing global evaluation param from ILS
         ls = LocalSearch(self.initializer,
                          self.evaluator,

+ 4 - 0
macop/algorithms/mono/LocalSearch.py

@@ -36,6 +36,10 @@ class LocalSearch(Algorithm):
         # by default use of mother method to initialize variables
         super().run(_evaluations)
 
+        # initialize solution if no backup
+        if self.bestSolution is None:
+            self.initRun()
+
         solutionSize = self.bestSolution.size
 
         # local search algorithm implementation

+ 17 - 16
macop/algorithms/multi/MOEAD.py

@@ -14,12 +14,6 @@ from ...utils.modules import load_class
 from ..Algorithm import Algorithm
 from .MOSubProblem import MOSubProblem
 
-# import all available solutions
-for loader, module_name, is_pkg in pkgutil.walk_packages(
-        path=['macop/solutions'], prefix='macop.solutions.'):
-    _module = loader.find_module(module_name).load_module(module_name)
-    globals()[module_name] = _module
-
 
 def moEvaluator(_solution, _evaluator, _weights):
 
@@ -83,7 +77,7 @@ class MOEAD(Algorithm):
         for operator in self.operators:
             operator.setAlgo(self)
 
-        # also track reference for policy
+        # by default track reference for policy
         self.policy.setAlgo(self)
 
         if _mu < _T:
@@ -123,9 +117,11 @@ class MOEAD(Algorithm):
                 _solution, _evaluator, weights[i])
 
             # intialize each sub problem
-            subProblem = MOSubProblem(i, weights[i], _initalizer,
-                                      sub_evaluator, _operators, _policy,
-                                      _validator, _maximise, self)
+            # use copy of list to keep track for each sub problem
+            subProblem = MOSubProblem(i, weights[i],
+                                      _initalizer, sub_evaluator,
+                                      _operators.copy(), _policy, _validator,
+                                      _maximise, self)
 
             self.subProblems.append(subProblem)
 
@@ -161,15 +157,20 @@ class MOEAD(Algorithm):
         # by default use of mother method to initialize variables
         super().run(_evaluations)
 
-        # initialize each sub problem
+        # enable callback resume for MOEAD
+        self.resume()
+
+        # initialize each sub problem if no backup
         for i in range(self.mu):
-            self.subProblems[i].run(1)
 
-            self.population[i] = self.subProblems[i].bestSolution
-            self.pfPop.append(self.subProblems[i].bestSolution)
+            if self.subProblems[i].bestSolution is None:
+                self.subProblems[i].run(1)
+                self.population[i] = self.subProblems[i].bestSolution
 
-        # enable callback resume for MOEAD
-        self.resume()
+        # if no backup for pf population
+        if len(self.pfPop) == 0:
+            for i in range(self.mu):
+                self.pfPop.append(self.subProblems[i].bestSolution)
 
         # MOEAD algorithm implementation
         while not self.stop():

+ 12 - 0
macop/algorithms/multi/MOSubProblem.py

@@ -55,7 +55,19 @@ class MOSubProblem(Algorithm):
         # by default use of mother method to initialize variables
         super().run(_evaluations)
 
+        # initialize solution if necessary
+        if self.bestSolution is None:
+            self.initRun()
+
+        # new operators list keep track of current sub problem
+        for op in self.operators:
+            op.setAlgo(self)
+
         for _ in range(_evaluations):
+
+            # keep reference of sub problem used
+            self.policy.setAlgo(self)
+
             # update solution using policy
             newSolution = self.update(self.bestSolution)
 

+ 3 - 0
macop/callbacks/BasicCheckpoint.py

@@ -78,6 +78,9 @@ class BasicCheckpoint(Callback):
                 # get best solution data information
                 solutionData = list(map(int, data[1].split(' ')))
 
+                if self.algo.bestSolution is None:
+                    self.algo.bestSolution = self.algo.initializer()
+
                 self.algo.bestSolution.data = np.array(solutionData)
                 self.algo.bestSolution.score = float(data[2])
 

+ 3 - 1
macop/callbacks/MultiCheckpoint.py

@@ -85,10 +85,12 @@ class MultiCheckpoint(Callback):
                     # get best solution data information
                     solutionData = list(map(int, data[-1].split(' ')))
 
+                    # initialize and fill with data
+                    self.algo.population[i] = self.algo.initializer()
                     self.algo.population[i].data = np.array(solutionData)
                     self.algo.population[i].scores = scores
 
-                    self.algo.pfPop[i] = self.algo.population[i]
+                    self.algo.pfPop.append(self.algo.population[i])
 
             print(macop_line())
             print(

+ 3 - 3
macop/callbacks/UCBCheckpoint.py

@@ -68,13 +68,13 @@ class UCBCheckpoint(Callback):
                 lines = f.readlines()
                 # read data for each line
                 rewardsLine = lines[0].replace('\n', '')
-                occurenciesLine = lines[0].replace('\n', '')
+                occurrencesLine = lines[1].replace('\n', '')
 
                 self.algo.policy.rewards = [
                     float(f) for f in rewardsLine.split(';')
                 ]
-                self.algo.policy.occurencies = [
-                    float(f) for f in occurenciesLine.split(';')
+                self.algo.policy.occurrences = [
+                    float(f) for f in occurrencesLine.split(';')
                 ]
 
             print(

+ 1 - 0
macop/operators/crossovers/SimpleCrossover.py

@@ -39,6 +39,7 @@ class SimpleCrossover(Crossover):
 
         # copy data of solution
         firstData = _solution.data.copy()
+
         # get best solution from current algorithm
         secondData = self.algo.bestSolution.data.copy()
 

+ 6 - 3
macop/operators/policies/UCBPolicy.py

@@ -39,7 +39,8 @@ class UCBPolicy(Policy):
         # random choice following exploration rate
         if np.random.uniform(0, 1) <= self.exp_rate:
 
-            return self.operators[random.choice(range(len(self.operators)))]
+            index = random.choice(range(len(self.operators)))
+            return self.operators[index]
 
         elif len(indices) == 0:
 
@@ -88,10 +89,12 @@ class UCBPolicy(Policy):
             fir = (_solution.fitness() -
                    newSolution.fitness()) / _solution.fitness()
 
+        operator_index = self.operators.index(operator)
+
         if fir > 0:
-            operator_index = self.operators.index(operator)
             self.rewards[operator_index] += fir
-            self.occurrences[operator_index] += 1
+
+        self.occurrences[operator_index] += 1
 
         logging.info("---- Obtaining %s" % (_solution))
 

+ 1 - 1
setup.py

@@ -23,7 +23,7 @@ class TestCommand(distutils.command.check.check):
 
 setup(
     name='macop',
-    version='0.3.3',
+    version='0.3.4',
     description='Minimalist And Customizable Optimization Package',
     long_description=open('README.md').read(),
     long_description_content_type='text/markdown',