Parcourir la source

UCB policy implemented

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

BIN
docs/build/doctrees/environment.pickle


BIN
docs/build/doctrees/macop.doctree


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


BIN
docs/build/doctrees/macop/macop.operators.crossovers.SimpleCrossover.doctree


BIN
docs/build/doctrees/macop/macop.operators.policies.RandomPolicy.doctree


BIN
docs/build/doctrees/macop/macop.operators.policies.UCBPolicy.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: 4e8bf07509b52fff9583ca0872b8a0a1
+config: 54d95ec75d6af839655a8ba659c5eaa3
 tags: 645f666f9bcd5a90fca523b33c5a78b7

+ 3 - 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.1.5 documentation</title>
+  <title>Overview: module code &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           
@@ -164,6 +164,7 @@
 <li><a href="macop/operators/mutators/SimpleMutation.html">macop.operators.mutators.SimpleMutation</a></li>
 <li><a href="macop/operators/policies/Policy.html">macop.operators.policies.Policy</a></li>
 <li><a href="macop/operators/policies/RandomPolicy.html">macop.operators.policies.RandomPolicy</a></li>
+<li><a href="macop/operators/policies/UCBPolicy.html">macop.operators.policies.UCBPolicy</a></li>
 <li><a href="macop/solutions/BinarySolution.html">macop.solutions.BinarySolution</a></li>
 <li><a href="macop/solutions/CombinatoryIntegerSolution.html">macop.solutions.CombinatoryIntegerSolution</a></li>
 <li><a href="macop/solutions/IntegerSolution.html">macop.solutions.IntegerSolution</a></li>

+ 16 - 3
docs/build/html/_modules/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.1.5 documentation</title>
+  <title>macop.algorithms.Algorithm &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           
@@ -156,6 +156,7 @@
 
 <span class="c1"># main imports</span>
 <span class="kn">import</span> <span class="nn">logging</span>
+<span class="kn">from</span> <span class="nn">..utils.color</span> <span class="kn">import</span> <span class="n">macop_text</span><span class="p">,</span> <span class="n">macop_line</span>
 
 
 <span class="c1"># Generic algorithm class</span>
@@ -227,7 +228,10 @@
                 <span class="s2">&quot;Need to `addCheckpoint` or `setCheckpoint` is you want to use this process&quot;</span>
             <span class="p">)</span>
         <span class="k">else</span><span class="p">:</span>
-            <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Checkpoint loading is called&#39;</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>
+                <span class="n">macop_text</span><span class="p">(</span><span class="s1">&#39;Checkpoint found from `</span><span class="si">{}</span><span class="s1">` file.&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
+                    <span class="bp">self</span><span class="o">.</span><span class="n">checkpoint</span><span class="o">.</span><span class="n">filepath</span><span class="p">)))</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">checkpoint</span><span class="o">.</span><span class="n">load</span><span class="p">()</span></div>
 
 <div class="viewcode-block" id="Algorithm.initRun"><a class="viewcode-back" href="../../../macop/macop.algorithms.Algorithm.html#macop.algorithms.Algorithm.Algorithm.initRun">[docs]</a>    <span class="k">def</span> <span class="nf">initRun</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
@@ -377,6 +381,15 @@
                           <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">numberOfEvaluations</span><span class="p">)</span> <span class="o">/</span> <span class="bp">self</span><span class="o">.</span><span class="n">maxEvaluations</span> <span class="o">*</span>
                           <span class="mf">100.</span><span class="p">),</span> <span class="bp">self</span><span class="o">.</span><span class="n">bestSolution</span><span class="o">.</span><span class="n">fitness</span><span class="p">()))</span></div>
 
+<div class="viewcode-block" id="Algorithm.end"><a class="viewcode-back" href="../../../macop/macop.algorithms.Algorithm.html#macop.algorithms.Algorithm.Algorithm.end">[docs]</a>    <span class="k">def</span> <span class="nf">end</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;Display end message into `run` method</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="nb">print</span><span class="p">(</span>
+            <span class="n">macop_text</span><span class="p">(</span><span class="s1">&#39;(</span><span class="si">{}</span><span class="s1">) Found after </span><span class="si">{}</span><span class="s1"> evaluations =&gt; </span><span class="si">{}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
+                <span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">numberOfEvaluations</span><span class="p">,</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">bestSolution</span><span class="p">)))</span>
+        <span class="nb">print</span><span class="p">(</span><span class="n">macop_line</span><span class="p">())</span></div>
+
     <span class="k">def</span> <span class="nf">information</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="n">logging</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;-- Best </span><span class="si">%s</span><span class="s2"> - SCORE </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span>
                      <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">bestSolution</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">bestSolution</span><span class="o">.</span><span class="n">fitness</span><span class="p">()))</span>

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

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.algorithms.IteratedLocalSearch &mdash; macop v0.1.5 documentation</title>
+  <title>macop.algorithms.IteratedLocalSearch &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           
@@ -228,6 +228,7 @@
         <span class="n">logging</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;End of </span><span class="si">%s</span><span class="s2">, best solution found </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span>
                      <span class="p">(</span><span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">bestSolution</span><span class="p">))</span>
 
+        <span class="bp">self</span><span class="o">.</span><span class="n">end</span><span class="p">()</span>
         <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">bestSolution</span></div></div>
 </pre></div>
 

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

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.algorithms.LocalSearch &mdash; macop v0.1.5 documentation</title>
+  <title>macop.algorithms.LocalSearch &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           

+ 16 - 4
docs/build/html/_modules/macop/checkpoints/BasicCheckpoint.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.checkpoints.BasicCheckpoint &mdash; macop v0.1.5 documentation</title>
+  <title>macop.checkpoints.BasicCheckpoint &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           
@@ -161,6 +161,7 @@
 
 <span class="c1"># module imports</span>
 <span class="kn">from</span> <span class="nn">.Checkpoint</span> <span class="kn">import</span> <span class="n">Checkpoint</span>
+<span class="kn">from</span> <span class="nn">..utils.color</span> <span class="kn">import</span> <span class="n">macop_text</span><span class="p">,</span> <span class="n">macop_line</span>
 
 
 <div class="viewcode-block" id="BasicCheckpoint"><a class="viewcode-back" href="../../../macop/macop.checkpoints.BasicCheckpoint.html#macop.checkpoints.BasicCheckpoint.BasicCheckpoint">[docs]</a><span class="k">class</span> <span class="nc">BasicCheckpoint</span><span class="p">(</span><span class="n">Checkpoint</span><span class="p">):</span>
@@ -237,10 +238,21 @@
 
                 <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>
+
+            <span class="nb">print</span><span class="p">(</span>
+                <span class="n">macop_text</span><span class="p">(</span><span class="s1">&#39;Restart algorithm from evaluation </span><span class="si">{}</span><span class="s1">.&#39;</span><span class="o">.</span><span class="n">format</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">numberOfEvaluations</span><span class="p">)))</span>
+
         <span class="k">else</span><span class="p">:</span>
-            <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;No backup found... Start running&#39;</span><span class="p">)</span>
+            <span class="nb">print</span><span class="p">(</span>
+                <span class="n">macop_text</span><span class="p">(</span>
+                    <span class="s1">&#39;No backup found... Start running algorithm from evaluation 0.&#39;</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="n">logging</span><span class="o">.</span><span class="n">info</span><span class="p">(</span>
-                <span class="s2">&quot;Can&#39;t load backup... Backup filepath not valid in Checkpoint&quot;</span><span class="p">)</span></div></div>
+                <span class="s2">&quot;Can&#39;t load backup... Backup filepath not valid in Checkpoint&quot;</span><span class="p">)</span>
+
+        <span class="nb">print</span><span class="p">(</span><span class="n">macop_line</span><span class="p">())</span></div></div>
 </pre></div>
 
            </div>

+ 2 - 2
docs/build/html/_modules/macop/checkpoints/Checkpoint.html

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.checkpoints.Checkpoint &mdash; macop v0.1.5 documentation</title>
+  <title>macop.checkpoints.Checkpoint &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           

+ 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.1.5 documentation</title>
+  <title>macop.evaluators.EvaluatorExample &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </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.1.5 documentation</title>
+  <title>macop.operators.Operator &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </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.1.5 documentation</title>
+  <title>macop.operators.crossovers.Crossover &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           

+ 11 - 6
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.1.5 documentation</title>
+  <title>macop.operators.crossovers.RandomSplitCrossover &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           
@@ -156,13 +156,16 @@
 <span class="c1"># main imports</span>
 <span class="kn">import</span> <span class="nn">random</span>
 <span class="kn">import</span> <span class="nn">sys</span>
+<span class="kn">import</span> <span class="nn">pkgutil</span>
 
 <span class="c1"># module imports</span>
 <span class="kn">from</span> <span class="nn">.Crossover</span> <span class="kn">import</span> <span class="n">Crossover</span>
 
-<span class="c1"># need to import the specify kind of solution</span>
-<span class="kn">from</span> <span class="nn">...solutions.BinarySolution</span> <span class="kn">import</span> <span class="n">BinarySolution</span>
-<span class="kn">from</span> <span class="nn">...solutions.Solution</span> <span class="kn">import</span> <span class="n">Solution</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>
 
 
 <div class="viewcode-block" id="RandomSplitCrossover"><a class="viewcode-back" href="../../../../macop/macop.operators.crossovers.RandomSplitCrossover.html#macop.operators.crossovers.RandomSplitCrossover.RandomSplitCrossover">[docs]</a><span class="k">class</span> <span class="nc">RandomSplitCrossover</span><span class="p">(</span><span class="n">Crossover</span><span class="p">):</span>
@@ -198,7 +201,9 @@
             <span class="n">currentData</span> <span class="o">=</span> <span class="n">secondData</span>
 
         <span class="c1"># create solution of same kind with new data</span>
-        <span class="k">return</span> <span class="nb">globals</span><span class="p">()[</span><span class="nb">type</span><span class="p">(</span><span class="n">_solution</span><span class="p">)</span><span class="o">.</span><span class="vm">__name__</span><span class="p">](</span><span class="n">currentData</span><span class="p">,</span> <span class="n">size</span><span class="p">)</span></div></div>
+        <span class="n">class_name</span> <span class="o">=</span> <span class="nb">type</span><span class="p">(</span><span class="n">_solution</span><span class="p">)</span><span class="o">.</span><span class="vm">__name__</span>
+        <span class="k">return</span> <span class="nb">getattr</span><span class="p">(</span><span class="nb">globals</span><span class="p">()[</span><span class="s1">&#39;macop.solutions.&#39;</span> <span class="o">+</span> <span class="n">class_name</span><span class="p">],</span>
+                       <span class="n">class_name</span><span class="p">)(</span><span class="n">currentData</span><span class="p">,</span> <span class="n">size</span><span class="p">)</span></div></div>
 </pre></div>
 
            </div>

+ 14 - 8
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.1.5 documentation</title>
+  <title>macop.operators.crossovers.SimpleCrossover &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           
@@ -156,12 +156,16 @@
 <span class="c1"># main imports</span>
 <span class="kn">import</span> <span class="nn">random</span>
 <span class="kn">import</span> <span class="nn">sys</span>
+<span class="kn">import</span> <span class="nn">pkgutil</span>
 
 <span class="c1"># module imports</span>
 <span class="kn">from</span> <span class="nn">.Crossover</span> <span class="kn">import</span> <span class="n">Crossover</span>
 
-<span class="kn">from</span> <span class="nn">...solutions.BinarySolution</span> <span class="kn">import</span> <span class="n">BinarySolution</span>
-<span class="kn">from</span> <span class="nn">...solutions.Solution</span> <span class="kn">import</span> <span class="n">Solution</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>
 
 
 <div class="viewcode-block" id="SimpleCrossover"><a class="viewcode-back" href="../../../../macop/macop.operators.crossovers.SimpleCrossover.html#macop.operators.crossovers.SimpleCrossover.SimpleCrossover">[docs]</a><span class="k">class</span> <span class="nc">SimpleCrossover</span><span class="p">(</span><span class="n">Crossover</span><span class="p">):</span>
@@ -170,7 +174,7 @@
 <span class="sd">    Attributes:</span>
 <span class="sd">        kind: {Algorithm} -- specify the kind of operator</span>
 <span class="sd">    &quot;&quot;&quot;</span>
-<div class="viewcode-block" id="SimpleCrossover.apply"><a class="viewcode-back" href="../../../../macop/macop.operators.crossovers.SimpleCrossover.html#macop.operators.crossovers.SimpleCrossover.SimpleCrossover.apply">[docs]</a>    <span class="k">def</span> <span class="nf">apply</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solution</span><span class="p">):</span>
+<div class="viewcode-block" id="SimpleCrossover.apply"><a class="viewcode-back" href="../../../../macop/macop.operators.crossovers.SimpleCrossover.html#macop.operators.crossovers.SimpleCrossover.SimpleCrossover.apply">[docs]</a>    <span class="k">def</span> <span class="nf">apply</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_solution</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;Create new solution based on best solution found and solution passed as parameter</span>
 
 <span class="sd">        Args:</span>
@@ -180,10 +184,10 @@
 <span class="sd">            {Solution} -- new generated solution</span>
 <span class="sd">        &quot;&quot;&quot;</span>
 
-        <span class="n">size</span> <span class="o">=</span> <span class="n">solution</span><span class="o">.</span><span class="n">size</span>
+        <span class="n">size</span> <span class="o">=</span> <span class="n">_solution</span><span class="o">.</span><span class="n">size</span>
 
         <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="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>
 
@@ -198,7 +202,9 @@
             <span class="n">currentData</span> <span class="o">=</span> <span class="n">secondData</span>
 
         <span class="c1"># create solution of same kind with new data</span>
-        <span class="k">return</span> <span class="nb">globals</span><span class="p">()[</span><span class="nb">type</span><span class="p">(</span><span class="n">solution</span><span class="p">)</span><span class="o">.</span><span class="vm">__name__</span><span class="p">](</span><span class="n">currentData</span><span class="p">,</span> <span class="n">size</span><span class="p">)</span></div></div>
+        <span class="n">class_name</span> <span class="o">=</span> <span class="nb">type</span><span class="p">(</span><span class="n">_solution</span><span class="p">)</span><span class="o">.</span><span class="vm">__name__</span>
+        <span class="k">return</span> <span class="nb">getattr</span><span class="p">(</span><span class="nb">globals</span><span class="p">()[</span><span class="s1">&#39;macop.solutions.&#39;</span> <span class="o">+</span> <span class="n">class_name</span><span class="p">],</span>
+                       <span class="n">class_name</span><span class="p">)(</span><span class="n">currentData</span><span class="p">,</span> <span class="n">size</span><span class="p">)</span></div></div>
 </pre></div>
 
            </div>

+ 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.1.5 documentation</title>
+  <title>macop.operators.mutators.Mutation &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           

+ 11 - 5
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.1.5 documentation</title>
+  <title>macop.operators.mutators.SimpleBinaryMutation &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           
@@ -156,12 +156,16 @@
 <span class="c1"># main imports</span>
 <span class="kn">import</span> <span class="nn">random</span>
 <span class="kn">import</span> <span class="nn">sys</span>
+<span class="kn">import</span> <span class="nn">pkgutil</span>
 
 <span class="c1"># module imports</span>
 <span class="kn">from</span> <span class="nn">.Mutation</span> <span class="kn">import</span> <span class="n">Mutation</span>
 
-<span class="kn">from</span> <span class="nn">...solutions.BinarySolution</span> <span class="kn">import</span> <span class="n">BinarySolution</span>
-<span class="kn">from</span> <span class="nn">...solutions.Solution</span> <span class="kn">import</span> <span class="n">Solution</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>
 
 
 <div class="viewcode-block" id="SimpleBinaryMutation"><a class="viewcode-back" href="../../../../macop/macop.operators.mutators.SimpleBinaryMutation.html#macop.operators.mutators.SimpleBinaryMutation.SimpleBinaryMutation">[docs]</a><span class="k">class</span> <span class="nc">SimpleBinaryMutation</span><span class="p">(</span><span class="n">Mutation</span><span class="p">):</span>
@@ -194,7 +198,9 @@
             <span class="n">currentData</span><span class="p">[</span><span class="n">cell</span><span class="p">]</span> <span class="o">=</span> <span class="mi">1</span>
 
         <span class="c1"># create solution of same kind with new data</span>
-        <span class="k">return</span> <span class="nb">globals</span><span class="p">()[</span><span class="nb">type</span><span class="p">(</span><span class="n">_solution</span><span class="p">)</span><span class="o">.</span><span class="vm">__name__</span><span class="p">](</span><span class="n">currentData</span><span class="p">,</span> <span class="n">size</span><span class="p">)</span></div></div>
+        <span class="n">class_name</span> <span class="o">=</span> <span class="nb">type</span><span class="p">(</span><span class="n">_solution</span><span class="p">)</span><span class="o">.</span><span class="vm">__name__</span>
+        <span class="k">return</span> <span class="nb">getattr</span><span class="p">(</span><span class="nb">globals</span><span class="p">()[</span><span class="s1">&#39;macop.solutions.&#39;</span> <span class="o">+</span> <span class="n">class_name</span><span class="p">],</span>
+                       <span class="n">class_name</span><span class="p">)(</span><span class="n">currentData</span><span class="p">,</span> <span class="n">size</span><span class="p">)</span></div></div>
 </pre></div>
 
            </div>

+ 11 - 5
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.1.5 documentation</title>
+  <title>macop.operators.mutators.SimpleMutation &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           
@@ -156,12 +156,16 @@
 <span class="c1"># main imports</span>
 <span class="kn">import</span> <span class="nn">random</span>
 <span class="kn">import</span> <span class="nn">sys</span>
+<span class="kn">import</span> <span class="nn">pkgutil</span>
 
 <span class="c1"># module imports</span>
 <span class="kn">from</span> <span class="nn">.Mutation</span> <span class="kn">import</span> <span class="n">Mutation</span>
 
-<span class="kn">from</span> <span class="nn">...solutions.BinarySolution</span> <span class="kn">import</span> <span class="n">BinarySolution</span>
-<span class="kn">from</span> <span class="nn">...solutions.Solution</span> <span class="kn">import</span> <span class="n">Solution</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>
 
 
 <div class="viewcode-block" id="SimpleMutation"><a class="viewcode-back" href="../../../../macop/macop.operators.mutators.SimpleMutation.html#macop.operators.mutators.SimpleMutation.SimpleMutation">[docs]</a><span class="k">class</span> <span class="nc">SimpleMutation</span><span class="p">(</span><span class="n">Mutation</span><span class="p">):</span>
@@ -199,7 +203,9 @@
         <span class="n">currentData</span><span class="p">[</span><span class="n">secondCell</span><span class="p">]</span> <span class="o">=</span> <span class="n">temp</span>
 
         <span class="c1"># create solution of same kind with new data</span>
-        <span class="k">return</span> <span class="nb">globals</span><span class="p">()[</span><span class="nb">type</span><span class="p">(</span><span class="n">_solution</span><span class="p">)</span><span class="o">.</span><span class="vm">__name__</span><span class="p">](</span><span class="n">currentData</span><span class="p">,</span> <span class="n">size</span><span class="p">)</span></div></div>
+        <span class="n">class_name</span> <span class="o">=</span> <span class="nb">type</span><span class="p">(</span><span class="n">_solution</span><span class="p">)</span><span class="o">.</span><span class="vm">__name__</span>
+        <span class="k">return</span> <span class="nb">getattr</span><span class="p">(</span><span class="nb">globals</span><span class="p">()[</span><span class="s1">&#39;macop.solutions.&#39;</span> <span class="o">+</span> <span class="n">class_name</span><span class="p">],</span>
+                       <span class="n">class_name</span><span class="p">)(</span><span class="n">currentData</span><span class="p">,</span> <span class="n">size</span><span class="p">)</span></div></div>
 </pre></div>
 
            </div>

+ 2 - 5
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.1.5 documentation</title>
+  <title>macop.operators.policies.Policy &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           
@@ -163,8 +163,6 @@
 <span class="sd">    Attributes:</span>
 <span class="sd">        operators: {[Operator]} -- list of selected operators for the algorithm</span>
 <span class="sd">    &quot;&quot;&quot;</span>
-
-    <span class="c1"># here you can define your statistical variables for choosing next operator to apply</span>
     <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_operators</span><span class="p">):</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">operators</span> <span class="o">=</span> <span class="n">_operators</span>
 
@@ -195,7 +193,6 @@
 
         <span class="c1"># compute fitness of new solution</span>
         <span class="n">newSolution</span><span class="o">.</span><span class="n">evaluate</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">evaluator</span><span class="p">)</span>
-        <span class="nb">print</span><span class="p">(</span><span class="n">newSolution</span><span class="o">.</span><span class="n">fitness</span><span class="p">())</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>
 

+ 3 - 3
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.1.5 documentation</title>
+  <title>macop.operators.policies.RandomPolicy &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           
@@ -151,7 +151,7 @@
            <div itemprop="articleBody">
             
   <h1>Source code for macop.operators.policies.RandomPolicy</h1><div class="highlight"><pre>
-<span></span><span class="sd">&quot;&quot;&quot;Policy class implementation which is used for select operator randomly</span>
+<span></span><span class="sd">&quot;&quot;&quot;Policy class implementation which is used for selecting operator randomly</span>
 <span class="sd">&quot;&quot;&quot;</span>
 <span class="c1"># main imports</span>
 <span class="kn">import</span> <span class="nn">random</span>

Fichier diff supprimé car celui-ci est trop grand
+ 280 - 0
docs/build/html/_modules/macop/operators/policies/UCBPolicy.html


+ 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.1.5 documentation</title>
+  <title>macop.solutions.BinarySolution &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </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.1.5 documentation</title>
+  <title>macop.solutions.CombinatoryIntegerSolution &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </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.1.5 documentation</title>
+  <title>macop.solutions.IntegerSolution &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -58,7 +58,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           

+ 1 - 0
docs/build/html/_sources/macop.rst.txt

@@ -47,6 +47,7 @@ macop.operators
 
    macop.operators.policies.Policy
    macop.operators.policies.RandomPolicy
+   macop.operators.policies.UCBPolicy
    
    macop.operators.Operator
 

+ 22 - 0
docs/build/html/_sources/macop/macop.operators.policies.UCBPolicy.rst.txt

@@ -0,0 +1,22 @@
+macop.operators.policies.UCBPolicy
+==================================
+
+.. automodule:: macop.operators.policies.UCBPolicy
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+   
+      UCBPolicy
+   
+   
+
+   
+   
+   

+ 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.1.5',
+    VERSION: 'v0.1.6',
     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.1.5 documentation</title>
+  <title>Contributing &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -59,7 +59,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </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.1.5 documentation</title>
+  <title>Description &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </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.1.5 documentation</title>
+  <title>Some examples &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           

+ 25 - 5
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.1.5 documentation</title>
+  <title>Index &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -59,7 +59,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           
@@ -207,6 +207,8 @@
         <li><a href="macop/macop.operators.Operator.html#macop.operators.Operator.Operator.apply">(macop.operators.Operator.Operator method)</a>
 </li>
         <li><a href="macop/macop.operators.policies.Policy.html#macop.operators.policies.Policy.Policy.apply">(macop.operators.policies.Policy.Policy method)</a>
+</li>
+        <li><a href="macop/macop.operators.policies.UCBPolicy.html#macop.operators.policies.UCBPolicy.UCBPolicy.apply">(macop.operators.policies.UCBPolicy.UCBPolicy method)</a>
 </li>
       </ul></li>
   </ul></td>
@@ -235,6 +237,8 @@
 <h2 id="C">C</h2>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="macop/macop.operators.policies.UCBPolicy.html#macop.operators.policies.UCBPolicy.UCBPolicy.C">C (macop.operators.policies.UCBPolicy.UCBPolicy attribute)</a>
+</li>
       <li><a href="macop/macop.checkpoints.Checkpoint.html#macop.checkpoints.Checkpoint.Checkpoint">Checkpoint (class in macop.checkpoints.Checkpoint)</a>
 </li>
       <li><a href="macop/macop.algorithms.Algorithm.html#macop.algorithms.Algorithm.Algorithm.checkpoint">checkpoint (macop.algorithms.Algorithm.Algorithm attribute)</a>
@@ -279,6 +283,8 @@
 <h2 id="E">E</h2>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="macop/macop.algorithms.Algorithm.html#macop.algorithms.Algorithm.Algorithm.end">end() (macop.algorithms.Algorithm.Algorithm method)</a>
+</li>
       <li><a href="macop/macop.algorithms.Algorithm.html#macop.algorithms.Algorithm.Algorithm.evaluate">evaluate() (macop.algorithms.Algorithm.Algorithm method)</a>
 </li>
       <li><a href="macop/macop.algorithms.Algorithm.html#macop.algorithms.Algorithm.Algorithm.evaluator">evaluator (macop.algorithms.Algorithm.Algorithm attribute)</a>
@@ -413,15 +419,17 @@
 </li>
       <li><a href="macop/macop.operators.mutators.SimpleBinaryMutation.html#module-macop.operators.mutators.SimpleBinaryMutation">macop.operators.mutators.SimpleBinaryMutation (module)</a>
 </li>
-  </ul></td>
-  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="macop/macop.operators.mutators.SimpleMutation.html#module-macop.operators.mutators.SimpleMutation">macop.operators.mutators.SimpleMutation (module)</a>
 </li>
+  </ul></td>
+  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="macop/macop.operators.Operator.html#module-macop.operators.Operator">macop.operators.Operator (module)</a>
 </li>
       <li><a href="macop/macop.operators.policies.Policy.html#module-macop.operators.policies.Policy">macop.operators.policies.Policy (module)</a>
 </li>
       <li><a href="macop/macop.operators.policies.RandomPolicy.html#module-macop.operators.policies.RandomPolicy">macop.operators.policies.RandomPolicy (module)</a>
+</li>
+      <li><a href="macop/macop.operators.policies.UCBPolicy.html#module-macop.operators.policies.UCBPolicy">macop.operators.policies.UCBPolicy (module)</a>
 </li>
       <li><a href="macop/macop.solutions.BinarySolution.html#module-macop.solutions.BinarySolution">macop.solutions.BinarySolution (module)</a>
 </li>
@@ -447,6 +455,8 @@
 <h2 id="O">O</h2>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="macop/macop.operators.policies.UCBPolicy.html#macop.operators.policies.UCBPolicy.UCBPolicy.occurences">occurences (macop.operators.policies.UCBPolicy.UCBPolicy attribute)</a>
+</li>
       <li><a href="macop/macop.operators.Operator.html#macop.operators.Operator.Operator">Operator (class in macop.operators.Operator)</a>
 </li>
       <li><a href="macop/macop.algorithms.Algorithm.html#macop.algorithms.Algorithm.Algorithm.operators">operators (macop.algorithms.Algorithm.Algorithm attribute)</a>
@@ -459,6 +469,8 @@
         <li><a href="macop/macop.operators.policies.Policy.html#macop.operators.policies.Policy.Policy.operators">(macop.operators.policies.Policy.Policy attribute)</a>
 </li>
         <li><a href="macop/macop.operators.policies.RandomPolicy.html#macop.operators.policies.RandomPolicy.RandomPolicy.operators">(macop.operators.policies.RandomPolicy.RandomPolicy attribute)</a>
+</li>
+        <li><a href="macop/macop.operators.policies.UCBPolicy.html#macop.operators.policies.UCBPolicy.UCBPolicy.operators">(macop.operators.policies.UCBPolicy.UCBPolicy attribute)</a>
 </li>
       </ul></li>
   </ul></td>
@@ -500,10 +512,12 @@
       <li><a href="macop/macop.operators.policies.RandomPolicy.html#macop.operators.policies.RandomPolicy.RandomPolicy">RandomPolicy (class in macop.operators.policies.RandomPolicy)</a>
 </li>
       <li><a href="macop/macop.operators.crossovers.RandomSplitCrossover.html#macop.operators.crossovers.RandomSplitCrossover.RandomSplitCrossover">RandomSplitCrossover (class in macop.operators.crossovers.RandomSplitCrossover)</a>
+</li>
+      <li><a href="macop/macop.algorithms.Algorithm.html#macop.algorithms.Algorithm.Algorithm.resume">resume() (macop.algorithms.Algorithm.Algorithm method)</a>
 </li>
   </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
-      <li><a href="macop/macop.algorithms.Algorithm.html#macop.algorithms.Algorithm.Algorithm.resume">resume() (macop.algorithms.Algorithm.Algorithm method)</a>
+      <li><a href="macop/macop.operators.policies.UCBPolicy.html#macop.operators.policies.UCBPolicy.UCBPolicy.rewards">rewards (macop.operators.policies.UCBPolicy.UCBPolicy attribute)</a>
 </li>
       <li><a href="macop/macop.algorithms.Algorithm.html#macop.algorithms.Algorithm.Algorithm.run">run() (macop.algorithms.Algorithm.Algorithm method)</a>
 
@@ -535,6 +549,8 @@
 
       <ul>
         <li><a href="macop/macop.operators.policies.RandomPolicy.html#macop.operators.policies.RandomPolicy.RandomPolicy.select">(macop.operators.policies.RandomPolicy.RandomPolicy method)</a>
+</li>
+        <li><a href="macop/macop.operators.policies.UCBPolicy.html#macop.operators.policies.UCBPolicy.UCBPolicy.select">(macop.operators.policies.UCBPolicy.UCBPolicy method)</a>
 </li>
       </ul></li>
       <li><a href="macop/macop.operators.Operator.html#macop.operators.Operator.Operator.setAlgo">setAlgo() (macop.operators.Operator.Operator method)</a>
@@ -568,6 +584,10 @@
 
 <h2 id="U">U</h2>
 <table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="macop/macop.operators.policies.UCBPolicy.html#macop.operators.policies.UCBPolicy.UCBPolicy">UCBPolicy (class in macop.operators.policies.UCBPolicy)</a>
+</li>
+  </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="macop/macop.algorithms.Algorithm.html#macop.algorithms.Algorithm.Algorithm.update">update() (macop.algorithms.Algorithm.Algorithm method)</a>
 </li>

+ 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.1.5 documentation</title>
+  <title>Minimalist And Customizable Optimization Package &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -59,7 +59,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           

+ 8 - 4
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.1.5 documentation</title>
+  <title>Documentation &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           
@@ -113,6 +113,7 @@
 <li class="toctree-l3"><a class="reference internal" href="macop/macop.operators.mutators.SimpleMutation.html">macop.operators.mutators.SimpleMutation</a></li>
 <li class="toctree-l3"><a class="reference internal" href="macop/macop.operators.policies.Policy.html">macop.operators.policies.Policy</a></li>
 <li class="toctree-l3"><a class="reference internal" href="macop/macop.operators.policies.RandomPolicy.html">macop.operators.policies.RandomPolicy</a></li>
+<li class="toctree-l3"><a class="reference internal" href="macop/macop.operators.policies.UCBPolicy.html">macop.operators.policies.UCBPolicy</a></li>
 <li class="toctree-l3"><a class="reference internal" href="macop/macop.operators.Operator.html">macop.operators.Operator</a></li>
 </ul>
 </li>
@@ -279,9 +280,12 @@
 <td><p>Abstract class which is used for applying strategy when selecting and applying operator</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="macop/macop.operators.policies.RandomPolicy.html#module-macop.operators.policies.RandomPolicy" title="macop.operators.policies.RandomPolicy"><code class="xref py py-obj docutils literal notranslate"><span class="pre">macop.operators.policies.RandomPolicy</span></code></a></p></td>
-<td><p>Policy class implementation which is used for select operator randomly</p></td>
+<td><p>Policy class implementation which is used for selecting operator randomly</p></td>
 </tr>
-<tr class="row-odd"><td><p><a class="reference internal" href="macop/macop.operators.Operator.html#module-macop.operators.Operator" title="macop.operators.Operator"><code class="xref py py-obj docutils literal notranslate"><span class="pre">macop.operators.Operator</span></code></a></p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="macop/macop.operators.policies.UCBPolicy.html#module-macop.operators.policies.UCBPolicy" title="macop.operators.policies.UCBPolicy"><code class="xref py py-obj docutils literal notranslate"><span class="pre">macop.operators.policies.UCBPolicy</span></code></a></p></td>
+<td><p>Policy class implementation which is used for selecting operator using Upper Confidence Bound</p></td>
+</tr>
+<tr class="row-even"><td><p><a class="reference internal" href="macop/macop.operators.Operator.html#module-macop.operators.Operator" title="macop.operators.Operator"><code class="xref py py-obj docutils literal notranslate"><span class="pre">macop.operators.Operator</span></code></a></p></td>
 <td><p>Abstract Operator class</p></td>
 </tr>
 </tbody>

+ 8 - 2
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.1.5 documentation</title>
+  <title>macop.algorithms.Algorithm &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           
@@ -265,6 +265,12 @@
 </dl>
 </dd></dl>
 
+<dl class="method">
+<dt id="macop.algorithms.Algorithm.Algorithm.end">
+<code class="sig-name descname">end</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/macop/algorithms/Algorithm.html#Algorithm.end"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#macop.algorithms.Algorithm.Algorithm.end" title="Permalink to this definition">¶</a></dt>
+<dd><p>Display end message into <cite>run</cite> method</p>
+</dd></dl>
+
 <dl class="method">
 <dt id="macop.algorithms.Algorithm.Algorithm.evaluate">
 <code class="sig-name descname">evaluate</code><span class="sig-paren">(</span><em class="sig-param">_solution</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/macop/algorithms/Algorithm.html#Algorithm.evaluate"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#macop.algorithms.Algorithm.Algorithm.evaluate" title="Permalink to this definition">¶</a></dt>

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

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.algorithms.IteratedLocalSearch &mdash; macop v0.1.5 documentation</title>
+  <title>macop.algorithms.IteratedLocalSearch &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           

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

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.algorithms.LocalSearch &mdash; macop v0.1.5 documentation</title>
+  <title>macop.algorithms.LocalSearch &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           

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

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.checkpoints.BasicCheckpoint &mdash; macop v0.1.5 documentation</title>
+  <title>macop.checkpoints.BasicCheckpoint &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           

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

@@ -8,7 +8,7 @@
   
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
-  <title>macop.checkpoints.Checkpoint &mdash; macop v0.1.5 documentation</title>
+  <title>macop.checkpoints.Checkpoint &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </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.1.5 documentation</title>
+  <title>macop.evaluators.EvaluatorExample &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           

+ 5 - 4
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.1.5 documentation</title>
+  <title>macop.operators.Operator &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -36,7 +36,7 @@
     <link rel="index" title="Index" href="../genindex.html" />
     <link rel="search" title="Search" href="../search.html" />
     <link rel="next" title="macop.solutions.BinarySolution" href="macop.solutions.BinarySolution.html" />
-    <link rel="prev" title="macop.operators.policies.RandomPolicy" href="macop.operators.policies.RandomPolicy.html" /> 
+    <link rel="prev" title="macop.operators.policies.UCBPolicy" href="macop.operators.policies.UCBPolicy.html" /> 
 </head>
 
 <body class="wy-body-for-nav">
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           
@@ -101,6 +101,7 @@
 <li class="toctree-l3"><a class="reference internal" href="macop.operators.mutators.SimpleMutation.html">macop.operators.mutators.SimpleMutation</a></li>
 <li class="toctree-l3"><a class="reference internal" href="macop.operators.policies.Policy.html">macop.operators.policies.Policy</a></li>
 <li class="toctree-l3"><a class="reference internal" href="macop.operators.policies.RandomPolicy.html">macop.operators.policies.RandomPolicy</a></li>
+<li class="toctree-l3"><a class="reference internal" href="macop.operators.policies.UCBPolicy.html">macop.operators.policies.UCBPolicy</a></li>
 <li class="toctree-l3 current"><a class="current reference internal" href="#">macop.operators.Operator</a></li>
 </ul>
 </li>
@@ -248,7 +249,7 @@
         <a href="macop.solutions.BinarySolution.html" class="btn btn-neutral float-right" title="macop.solutions.BinarySolution" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
       
       
-        <a href="macop.operators.policies.RandomPolicy.html" class="btn btn-neutral float-left" title="macop.operators.policies.RandomPolicy" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+        <a href="macop.operators.policies.UCBPolicy.html" class="btn btn-neutral float-left" title="macop.operators.policies.UCBPolicy" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
       
     </div>
   

+ 3 - 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.1.5 documentation</title>
+  <title>macop.operators.crossovers.Crossover &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           
@@ -101,6 +101,7 @@
 <li class="toctree-l3"><a class="reference internal" href="macop.operators.mutators.SimpleMutation.html">macop.operators.mutators.SimpleMutation</a></li>
 <li class="toctree-l3"><a class="reference internal" href="macop.operators.policies.Policy.html">macop.operators.policies.Policy</a></li>
 <li class="toctree-l3"><a class="reference internal" href="macop.operators.policies.RandomPolicy.html">macop.operators.policies.RandomPolicy</a></li>
+<li class="toctree-l3"><a class="reference internal" href="macop.operators.policies.UCBPolicy.html">macop.operators.policies.UCBPolicy</a></li>
 <li class="toctree-l3"><a class="reference internal" href="macop.operators.Operator.html">macop.operators.Operator</a></li>
 </ul>
 </li>

+ 3 - 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.1.5 documentation</title>
+  <title>macop.operators.crossovers.RandomSplitCrossover &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           
@@ -101,6 +101,7 @@
 <li class="toctree-l3"><a class="reference internal" href="macop.operators.mutators.SimpleMutation.html">macop.operators.mutators.SimpleMutation</a></li>
 <li class="toctree-l3"><a class="reference internal" href="macop.operators.policies.Policy.html">macop.operators.policies.Policy</a></li>
 <li class="toctree-l3"><a class="reference internal" href="macop.operators.policies.RandomPolicy.html">macop.operators.policies.RandomPolicy</a></li>
+<li class="toctree-l3"><a class="reference internal" href="macop.operators.policies.UCBPolicy.html">macop.operators.policies.UCBPolicy</a></li>
 <li class="toctree-l3"><a class="reference internal" href="macop.operators.Operator.html">macop.operators.Operator</a></li>
 </ul>
 </li>

+ 4 - 3
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.1.5 documentation</title>
+  <title>macop.operators.crossovers.SimpleCrossover &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           
@@ -101,6 +101,7 @@
 <li class="toctree-l3"><a class="reference internal" href="macop.operators.mutators.SimpleMutation.html">macop.operators.mutators.SimpleMutation</a></li>
 <li class="toctree-l3"><a class="reference internal" href="macop.operators.policies.Policy.html">macop.operators.policies.Policy</a></li>
 <li class="toctree-l3"><a class="reference internal" href="macop.operators.policies.RandomPolicy.html">macop.operators.policies.RandomPolicy</a></li>
+<li class="toctree-l3"><a class="reference internal" href="macop.operators.policies.UCBPolicy.html">macop.operators.policies.UCBPolicy</a></li>
 <li class="toctree-l3"><a class="reference internal" href="macop.operators.Operator.html">macop.operators.Operator</a></li>
 </ul>
 </li>
@@ -204,7 +205,7 @@
 
 <dl class="method">
 <dt id="macop.operators.crossovers.SimpleCrossover.SimpleCrossover.apply">
-<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">solution</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/macop/operators/crossovers/SimpleCrossover.html#SimpleCrossover.apply"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#macop.operators.crossovers.SimpleCrossover.SimpleCrossover.apply" title="Permalink to this definition">¶</a></dt>
+<code class="sig-name descname">apply</code><span class="sig-paren">(</span><em class="sig-param">_solution</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/macop/operators/crossovers/SimpleCrossover.html#SimpleCrossover.apply"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#macop.operators.crossovers.SimpleCrossover.SimpleCrossover.apply" title="Permalink to this definition">¶</a></dt>
 <dd><p>Create new solution based on best solution found and solution passed as parameter</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>

+ 3 - 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.1.5 documentation</title>
+  <title>macop.operators.mutators.Mutation &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           
@@ -101,6 +101,7 @@
 <li class="toctree-l3"><a class="reference internal" href="macop.operators.mutators.SimpleMutation.html">macop.operators.mutators.SimpleMutation</a></li>
 <li class="toctree-l3"><a class="reference internal" href="macop.operators.policies.Policy.html">macop.operators.policies.Policy</a></li>
 <li class="toctree-l3"><a class="reference internal" href="macop.operators.policies.RandomPolicy.html">macop.operators.policies.RandomPolicy</a></li>
+<li class="toctree-l3"><a class="reference internal" href="macop.operators.policies.UCBPolicy.html">macop.operators.policies.UCBPolicy</a></li>
 <li class="toctree-l3"><a class="reference internal" href="macop.operators.Operator.html">macop.operators.Operator</a></li>
 </ul>
 </li>

+ 3 - 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.1.5 documentation</title>
+  <title>macop.operators.mutators.SimpleBinaryMutation &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           
@@ -101,6 +101,7 @@
 <li class="toctree-l3"><a class="reference internal" href="macop.operators.mutators.SimpleMutation.html">macop.operators.mutators.SimpleMutation</a></li>
 <li class="toctree-l3"><a class="reference internal" href="macop.operators.policies.Policy.html">macop.operators.policies.Policy</a></li>
 <li class="toctree-l3"><a class="reference internal" href="macop.operators.policies.RandomPolicy.html">macop.operators.policies.RandomPolicy</a></li>
+<li class="toctree-l3"><a class="reference internal" href="macop.operators.policies.UCBPolicy.html">macop.operators.policies.UCBPolicy</a></li>
 <li class="toctree-l3"><a class="reference internal" href="macop.operators.Operator.html">macop.operators.Operator</a></li>
 </ul>
 </li>

+ 3 - 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.1.5 documentation</title>
+  <title>macop.operators.mutators.SimpleMutation &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           
@@ -101,6 +101,7 @@
 <li class="toctree-l3 current"><a class="current reference internal" href="#">macop.operators.mutators.SimpleMutation</a></li>
 <li class="toctree-l3"><a class="reference internal" href="macop.operators.policies.Policy.html">macop.operators.policies.Policy</a></li>
 <li class="toctree-l3"><a class="reference internal" href="macop.operators.policies.RandomPolicy.html">macop.operators.policies.RandomPolicy</a></li>
+<li class="toctree-l3"><a class="reference internal" href="macop.operators.policies.UCBPolicy.html">macop.operators.policies.UCBPolicy</a></li>
 <li class="toctree-l3"><a class="reference internal" href="macop.operators.Operator.html">macop.operators.Operator</a></li>
 </ul>
 </li>

+ 3 - 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.1.5 documentation</title>
+  <title>macop.operators.policies.Policy &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           
@@ -101,6 +101,7 @@
 <li class="toctree-l3"><a class="reference internal" href="macop.operators.mutators.SimpleMutation.html">macop.operators.mutators.SimpleMutation</a></li>
 <li class="toctree-l3 current"><a class="current reference internal" href="#">macop.operators.policies.Policy</a></li>
 <li class="toctree-l3"><a class="reference internal" href="macop.operators.policies.RandomPolicy.html">macop.operators.policies.RandomPolicy</a></li>
+<li class="toctree-l3"><a class="reference internal" href="macop.operators.policies.UCBPolicy.html">macop.operators.policies.UCBPolicy</a></li>
 <li class="toctree-l3"><a class="reference internal" href="macop.operators.Operator.html">macop.operators.Operator</a></li>
 </ul>
 </li>

+ 6 - 5
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.1.5 documentation</title>
+  <title>macop.operators.policies.RandomPolicy &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -35,7 +35,7 @@
   <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
     <link rel="index" title="Index" href="../genindex.html" />
     <link rel="search" title="Search" href="../search.html" />
-    <link rel="next" title="macop.operators.Operator" href="macop.operators.Operator.html" />
+    <link rel="next" title="macop.operators.policies.UCBPolicy" href="macop.operators.policies.UCBPolicy.html" />
     <link rel="prev" title="macop.operators.policies.Policy" href="macop.operators.policies.Policy.html" /> 
 </head>
 
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           
@@ -101,6 +101,7 @@
 <li class="toctree-l3"><a class="reference internal" href="macop.operators.mutators.SimpleMutation.html">macop.operators.mutators.SimpleMutation</a></li>
 <li class="toctree-l3"><a class="reference internal" href="macop.operators.policies.Policy.html">macop.operators.policies.Policy</a></li>
 <li class="toctree-l3 current"><a class="current reference internal" href="#">macop.operators.policies.RandomPolicy</a></li>
+<li class="toctree-l3"><a class="reference internal" href="macop.operators.policies.UCBPolicy.html">macop.operators.policies.UCBPolicy</a></li>
 <li class="toctree-l3"><a class="reference internal" href="macop.operators.Operator.html">macop.operators.Operator</a></li>
 </ul>
 </li>
@@ -179,7 +180,7 @@
             
   <div class="section" id="module-macop.operators.policies.RandomPolicy">
 <span id="macop-operators-policies-randompolicy"></span><h1>macop.operators.policies.RandomPolicy<a class="headerlink" href="#module-macop.operators.policies.RandomPolicy" title="Permalink to this headline">¶</a></h1>
-<p>Policy class implementation which is used for select operator randomly</p>
+<p>Policy class implementation which is used for selecting operator randomly</p>
 <p class="rubric">Classes</p>
 <table class="longtable docutils align-default">
 <colgroup>
@@ -228,7 +229,7 @@
   
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
       
-        <a href="macop.operators.Operator.html" class="btn btn-neutral float-right" title="macop.operators.Operator" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
+        <a href="macop.operators.policies.UCBPolicy.html" class="btn btn-neutral float-right" title="macop.operators.policies.UCBPolicy" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
       
       
         <a href="macop.operators.policies.Policy.html" class="btn btn-neutral float-left" title="macop.operators.policies.Policy" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>

Fichier diff supprimé car celui-ci est trop grand
+ 305 - 0
docs/build/html/macop/macop.operators.policies.UCBPolicy.html


+ 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.1.5 documentation</title>
+  <title>macop.solutions.BinarySolution &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </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.1.5 documentation</title>
+  <title>macop.solutions.CombinatoryIntegerSolution &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </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.1.5 documentation</title>
+  <title>macop.solutions.IntegerSolution &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </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.1.5 documentation</title>
+  <title>macop.solutions.Solution &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -60,7 +60,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           

BIN
docs/build/html/objects.inv


+ 7 - 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.1.5 documentation</title>
+  <title>Python Module Index &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -61,7 +61,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </div>
             
           
@@ -243,6 +243,11 @@
        <td>&#160;&#160;&#160;
        <a href="macop/macop.operators.policies.RandomPolicy.html#module-macop.operators.policies.RandomPolicy"><code class="xref">macop.operators.policies.RandomPolicy</code></a></td><td>
        <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>&#160;&#160;&#160;
+       <a href="macop/macop.operators.policies.UCBPolicy.html#module-macop.operators.policies.UCBPolicy"><code class="xref">macop.operators.policies.UCBPolicy</code></a></td><td>
+       <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;

+ 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.1.5 documentation</title>
+  <title>Search &mdash; macop v0.1.6 documentation</title>
   
 
   
@@ -59,7 +59,7 @@
             
             
               <div class="version">
-                0.1.5
+                0.1.6
               </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.1.5'
+version = '0.1.6'
 # The full version, including alpha/beta/rc tags
-release = 'v0.1.5'
+release = 'v0.1.6'
 
 
 # -- General configuration ---------------------------------------------------

+ 1 - 0
docs/source/macop.rst

@@ -47,6 +47,7 @@ macop.operators
 
    macop.operators.policies.Policy
    macop.operators.policies.RandomPolicy
+   macop.operators.policies.UCBPolicy
    
    macop.operators.Operator
 

+ 22 - 0
docs/source/macop/macop.operators.policies.UCBPolicy.rst

@@ -0,0 +1,22 @@
+macop.operators.policies.UCBPolicy
+==================================
+
+.. automodule:: macop.operators.policies.UCBPolicy
+
+   
+   
+   
+
+   
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+   
+      UCBPolicy
+   
+   
+
+   
+   
+   

+ 14 - 1
macop/algorithms/Algorithm.py

@@ -3,6 +3,7 @@
 
 # main imports
 import logging
+from ..utils.color import macop_text, macop_line
 
 
 # Generic algorithm class
@@ -74,7 +75,10 @@ class Algorithm():
                 "Need to `addCheckpoint` or `setCheckpoint` is you want to use this process"
             )
         else:
-            print('Checkpoint loading is called')
+            print(macop_line())
+            print(
+                macop_text('Checkpoint found from `{}` file.'.format(
+                    self.checkpoint.filepath)))
             self.checkpoint.load()
 
     def initRun(self):
@@ -224,6 +228,15 @@ class Algorithm():
                           (self.numberOfEvaluations) / self.maxEvaluations *
                           100.), self.bestSolution.fitness()))
 
+    def end(self):
+        """Display end message into `run` method
+        """
+        print(
+            macop_text('({}) Found after {} evaluations => {}'.format(
+                type(self).__name__, self.numberOfEvaluations,
+                self.bestSolution)))
+        print(macop_line())
+
     def information(self):
         logging.info("-- Best %s - SCORE %s" %
                      (self.bestSolution, self.bestSolution.fitness()))

+ 1 - 0
macop/algorithms/IteratedLocalSearch.py

@@ -75,4 +75,5 @@ class IteratedLocalSearch(Algorithm):
         logging.info("End of %s, best solution found %s" %
                      (type(self).__name__, self.bestSolution))
 
+        self.end()
         return self.bestSolution

+ 13 - 1
macop/checkpoints/BasicCheckpoint.py

@@ -8,6 +8,7 @@ import numpy as np
 
 # module imports
 from .Checkpoint import Checkpoint
+from ..utils.color import macop_text, macop_line
 
 
 class BasicCheckpoint(Checkpoint):
@@ -84,7 +85,18 @@ class BasicCheckpoint(Checkpoint):
 
                 self.algo.bestSolution.data = np.array(solutionData)
                 self.algo.bestSolution.score = float(data[2])
+
+            print(
+                macop_text('Restart algorithm from evaluation {}.'.format(
+                    self.algo.numberOfEvaluations)))
+
         else:
-            print('No backup found... Start running')
+            print(
+                macop_text(
+                    'No backup found... Start running algorithm from evaluation 0.'
+                ))
+            print(macop_line())
             logging.info(
                 "Can't load backup... Backup filepath not valid in Checkpoint")
+
+        print(macop_line())

+ 9 - 4
macop/operators/crossovers/RandomSplitCrossover.py

@@ -3,13 +3,16 @@
 # main imports
 import random
 import sys
+import pkgutil
 
 # module imports
 from .Crossover import Crossover
 
-# need to import the specify kind of solution
-from ...solutions.BinarySolution import BinarySolution
-from ...solutions.Solution import Solution
+# 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
 
 
 class RandomSplitCrossover(Crossover):
@@ -45,4 +48,6 @@ class RandomSplitCrossover(Crossover):
             currentData = secondData
 
         # create solution of same kind with new data
-        return globals()[type(_solution).__name__](currentData, size)
+        class_name = type(_solution).__name__
+        return getattr(globals()['macop.solutions.' + class_name],
+                       class_name)(currentData, size)

+ 12 - 6
macop/operators/crossovers/SimpleCrossover.py

@@ -3,12 +3,16 @@
 # main imports
 import random
 import sys
+import pkgutil
 
 # module imports
 from .Crossover import Crossover
 
-from ...solutions.BinarySolution import BinarySolution
-from ...solutions.Solution import Solution
+# 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
 
 
 class SimpleCrossover(Crossover):
@@ -17,7 +21,7 @@ class SimpleCrossover(Crossover):
     Attributes:
         kind: {Algorithm} -- specify the kind of operator
     """
-    def apply(self, solution):
+    def apply(self, _solution):
         """Create new solution based on best solution found and solution passed as parameter
 
         Args:
@@ -27,10 +31,10 @@ class SimpleCrossover(Crossover):
             {Solution} -- new generated solution
         """
 
-        size = solution.size
+        size = _solution.size
 
         # copy data of solution
-        firstData = solution.data.copy()
+        firstData = _solution.data.copy()
         # get best solution from current algorithm
         secondData = self.algo.bestSolution.data.copy()
 
@@ -45,4 +49,6 @@ class SimpleCrossover(Crossover):
             currentData = secondData
 
         # create solution of same kind with new data
-        return globals()[type(solution).__name__](currentData, size)
+        class_name = type(_solution).__name__
+        return getattr(globals()['macop.solutions.' + class_name],
+                       class_name)(currentData, size)

+ 9 - 3
macop/operators/mutators/SimpleBinaryMutation.py

@@ -3,12 +3,16 @@
 # main imports
 import random
 import sys
+import pkgutil
 
 # module imports
 from .Mutation import Mutation
 
-from ...solutions.BinarySolution import BinarySolution
-from ...solutions.Solution import Solution
+# 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
 
 
 class SimpleBinaryMutation(Mutation):
@@ -41,4 +45,6 @@ class SimpleBinaryMutation(Mutation):
             currentData[cell] = 1
 
         # create solution of same kind with new data
-        return globals()[type(_solution).__name__](currentData, size)
+        class_name = type(_solution).__name__
+        return getattr(globals()['macop.solutions.' + class_name],
+                       class_name)(currentData, size)

+ 9 - 3
macop/operators/mutators/SimpleMutation.py

@@ -3,12 +3,16 @@
 # main imports
 import random
 import sys
+import pkgutil
 
 # module imports
 from .Mutation import Mutation
 
-from ...solutions.BinarySolution import BinarySolution
-from ...solutions.Solution import Solution
+# 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
 
 
 class SimpleMutation(Mutation):
@@ -46,4 +50,6 @@ class SimpleMutation(Mutation):
         currentData[secondCell] = temp
 
         # create solution of same kind with new data
-        return globals()[type(_solution).__name__](currentData, size)
+        class_name = type(_solution).__name__
+        return getattr(globals()['macop.solutions.' + class_name],
+                       class_name)(currentData, size)

+ 0 - 3
macop/operators/policies/Policy.py

@@ -10,8 +10,6 @@ class Policy():
     Attributes:
         operators: {[Operator]} -- list of selected operators for the algorithm
     """
-
-    # here you can define your statistical variables for choosing next operator to apply
     def __init__(self, _operators):
         self.operators = _operators
 
@@ -42,7 +40,6 @@ class Policy():
 
         # compute fitness of new solution
         newSolution.evaluate(self.algo.evaluator)
-        print(newSolution.fitness())
 
         logging.info("---- Obtaining %s" % (_solution))
 

+ 1 - 1
macop/operators/policies/RandomPolicy.py

@@ -1,4 +1,4 @@
-"""Policy class implementation which is used for select operator randomly
+"""Policy class implementation which is used for selecting operator randomly
 """
 # main imports
 import random

+ 85 - 0
macop/operators/policies/UCBPolicy.py

@@ -0,0 +1,85 @@
+"""Policy class implementation which is used for selecting operator using Upper Confidence Bound
+"""
+# main imports
+import logging
+import random
+import math
+
+# module imports
+from .Policy import Policy
+
+
+class UCBPolicy(Policy):
+    """UCB policy class which is used for applying UCB strategy when selecting and applying operator 
+
+    Attributes:
+        operators: {[Operator]} -- list of selected operators for the algorithm
+        C: {float} -- tradeoff between EvE parameter for UCB
+        rewards: {[float]} -- list of summed rewards obtained for each operator
+        occurences: {[int]} -- number of use (selected) of each operator
+    """
+    def __init__(self, _operators, _C=10.):
+        self.operators = _operators
+        self.rewards = [0. for o in self.operators]
+        self.occurences = [0 for o in self.operators]
+        self.C = _C
+
+    def select(self):
+        """Select randomly the next operator to use
+
+        Returns:
+            {Operator}: the selected operator
+        """
+
+        indices = [i for i, o in enumerate(self.occurences) if o == 0]
+
+        # if operator have at least be used one time
+        if len(indices) == 0:
+
+            ucbValues = []
+            nVisits = sum(self.occurences)
+
+            for i in range(len(self.operators)):
+
+                ucbValue = self.rewards[i] + self.C * math.sqrt(
+                    math.log(nVisits) / self.occurences[i])
+                ucbValues.append(ucbValue)
+
+            return self.operators[ucbValues.index(max(ucbValues))]
+
+        else:
+            return self.operators[random.choice(indices)]
+
+    def apply(self, _solution):
+        """
+        Apply specific operator chosen to create new solution, computes its fitness and returns solution
+        
+        Args:
+            _solution: {Solution} -- the solution to use for generating new solution
+
+        Returns:
+            {Solution} -- new generated solution
+        """
+
+        operator = self.select()
+
+        logging.info("---- Applying %s on %s" %
+                     (type(operator).__name__, _solution))
+
+        # apply operator on solution
+        newSolution = operator.apply(_solution)
+
+        # compute fitness of new solution
+        newSolution.evaluate(self.algo.evaluator)
+
+        # compute reward
+        difference = newSolution.fitness() - _solution.fitness()
+        reward = difference if difference > 0 else 0.
+
+        operator_index = self.operators.index(operator)
+        self.rewards[operator_index] += reward
+        self.occurences[operator_index] += 1
+
+        logging.info("---- Obtaining %s" % (_solution))
+
+        return newSolution

+ 0 - 0
macop/utils/__init__.py


+ 27 - 0
macop/utils/color.py

@@ -0,0 +1,27 @@
+class Colors:
+    ENDC = '\033[m'
+    GREEN = '\033[32m'
+    GREY = '\033[90m'
+
+
+def macop_text(msg):
+    """Display Macop message to user interface
+    """
+    return Colors.GREEN + 'M' + Colors.ENDC + Colors.GREY + 'acop' \
+        + Colors.ENDC + Colors.GREEN + ' :: ' + Colors.ENDC \
+        + Colors.GREY + msg + Colors.ENDC
+
+
+def macop_line():
+    """Macop split line
+    """
+    line = ''
+
+    for i in range(41):
+
+        if i % 2 == 0:
+            line += Colors.GREEN + '----' + Colors.ENDC
+        else:
+            line += Colors.GREY + '----' + Colors.ENDC
+
+    return line

+ 2 - 4
mainExample.py

@@ -13,6 +13,7 @@ from macop.operators.crossovers.SimpleCrossover import SimpleCrossover
 from macop.operators.crossovers.RandomSplitCrossover import RandomSplitCrossover
 
 from macop.operators.policies.RandomPolicy import RandomPolicy
+from macop.operators.policies.UCBPolicy import UCBPolicy
 
 from macop.checkpoints.BasicCheckpoint import BasicCheckpoint
 
@@ -35,15 +36,12 @@ filepath = "data/checkpoints.csv"
 def main():
 
     operators = [SimpleBinaryMutation(), SimpleMutation(), SimpleCrossover(), RandomSplitCrossover()]
-    policy = RandomPolicy(operators)
+    policy = UCBPolicy(operators)
 
     algo = ILS(init, evaluatorExample, operators, policy, validator, True)
     algo.addCheckpoint(_class=BasicCheckpoint, _every=5, _filepath=filepath)
 
     bestSol = algo.run(425)
 
-    print("Found ", bestSol)
-
-
 if __name__ == "__main__":
     main()

+ 2 - 2
setup.py

@@ -23,7 +23,7 @@ class TestCommand(distutils.command.check.check):
 
 setup(
     name='macop',
-    version='0.1.5',
+    version='0.1.6',
     description='Minimalist And Customizable Optimization Package',
     long_description=open('README.md').read(),
     long_description_content_type='text/markdown',
@@ -38,7 +38,7 @@ setup(
     author='Jérôme BUISINE',
     author_email='jerome.buisine@univ-littoral.fr',
     license='MIT',
-    packages=['macop', 'macop.algorithms', 'macop.checkpoints', 'macop.evaluators', 'macop.operators', 'macop.solutions'],
+    packages=['macop', 'macop.algorithms', 'macop.checkpoints', 'macop.evaluators', 'macop.operators', 'macop.solutions', 'macop.utils'],
     install_requires=[
         'numpy',
     ],