description.html 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276
  1. <!DOCTYPE html>
  2. <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
  3. <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
  4. <head>
  5. <meta charset="utf-8">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Description &mdash; macop v0.1.5 documentation</title>
  8. <script type="text/javascript" src="_static/js/modernizr.min.js"></script>
  9. <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
  10. <script type="text/javascript" src="_static/jquery.js"></script>
  11. <script type="text/javascript" src="_static/underscore.js"></script>
  12. <script type="text/javascript" src="_static/doctools.js"></script>
  13. <script type="text/javascript" src="_static/language_data.js"></script>
  14. <script type="text/javascript" src="_static/js/theme.js"></script>
  15. <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
  16. <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
  17. <link rel="index" title="Index" href="genindex.html" />
  18. <link rel="search" title="Search" href="search.html" />
  19. <link rel="next" title="Documentation" href="macop.html" />
  20. <link rel="prev" title="Minimalist And Customizable Optimization Package" href="index.html" />
  21. </head>
  22. <body class="wy-body-for-nav">
  23. <div class="wy-grid-for-nav">
  24. <nav data-toggle="wy-nav-shift" class="wy-nav-side">
  25. <div class="wy-side-scroll">
  26. <div class="wy-side-nav-search" >
  27. <a href="index.html" class="icon icon-home"> macop
  28. </a>
  29. <div class="version">
  30. 0.1.5
  31. </div>
  32. <div role="search">
  33. <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
  34. <input type="text" name="q" placeholder="Search docs" />
  35. <input type="hidden" name="check_keywords" value="yes" />
  36. <input type="hidden" name="area" value="default" />
  37. </form>
  38. </div>
  39. </div>
  40. <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
  41. <p class="caption"><span class="caption-text">Contents:</span></p>
  42. <ul class="current">
  43. <li class="toctree-l1 current"><a class="current reference internal" href="#">Description</a><ul>
  44. <li class="toctree-l2"><a class="reference internal" href="#context">Context</a></li>
  45. <li class="toctree-l2"><a class="reference internal" href="#installation">Installation</a></li>
  46. <li class="toctree-l2"><a class="reference internal" href="#how-to-use">How to use ?</a></li>
  47. </ul>
  48. </li>
  49. <li class="toctree-l1"><a class="reference internal" href="macop.html">Documentation</a></li>
  50. <li class="toctree-l1"><a class="reference internal" href="examples.html">Some examples</a></li>
  51. <li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing</a></li>
  52. </ul>
  53. </div>
  54. </div>
  55. </nav>
  56. <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
  57. <nav class="wy-nav-top" aria-label="top navigation">
  58. <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
  59. <a href="index.html">macop</a>
  60. </nav>
  61. <div class="wy-nav-content">
  62. <div class="rst-content">
  63. <div role="navigation" aria-label="breadcrumbs navigation">
  64. <ul class="wy-breadcrumbs">
  65. <li><a href="index.html">Docs</a> &raquo;</li>
  66. <li>Description</li>
  67. <li class="wy-breadcrumbs-aside">
  68. <a href="https://github.com/prise-3d/macop/blob/master/docs/source/description.rst" class="fa fa-github"> Edit on GitHub</a>
  69. </li>
  70. </ul>
  71. <hr/>
  72. </div>
  73. <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
  74. <div itemprop="articleBody">
  75. <div class="section" id="description">
  76. <h1>Description<a class="headerlink" href="#description" title="Permalink to this headline">¶</a></h1>
  77. <a class="reference internal image-reference" href="_images/logo_macop.png"><img alt="_images/logo_macop.png" class="align-center" src="_images/logo_macop.png" style="width: 350px;" /></a>
  78. <div class="section" id="context">
  79. <h2>Context<a class="headerlink" href="#context" title="Permalink to this headline">¶</a></h2>
  80. <p><cite>macop</cite> is an optimization Python package which not implement the whole available algorithms in the literature but let you the possibility to quickly develop and test your own algorithm and strategies. The main objective of this package is to be the most flexible as possible and hence, to offer a maximum of implementation possibilities.</p>
  81. </div>
  82. <div class="section" id="installation">
  83. <h2>Installation<a class="headerlink" href="#installation" title="Permalink to this headline">¶</a></h2>
  84. <p>Just install package using <cite>pip</cite> Python package manager:</p>
  85. <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>pip install macop
  86. </pre></div>
  87. </div>
  88. </div>
  89. <div class="section" id="how-to-use">
  90. <h2>How to use ?<a class="headerlink" href="#how-to-use" title="Permalink to this headline">¶</a></h2>
  91. <p>Load all <cite>macop</cite> implemented features:</p>
  92. <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">macop.algorithms.IteratedLocalSearch</span> <span class="kn">import</span> <span class="n">IteratedLocalSearch</span> <span class="k">as</span> <span class="n">ILS</span>
  93. <span class="kn">from</span> <span class="nn">macop.solutions.BinarySolution</span> <span class="kn">import</span> <span class="n">BinarySolution</span>
  94. <span class="kn">from</span> <span class="nn">macop.evaluators.EvaluatorExample</span> <span class="kn">import</span> <span class="n">evaluatorExample</span>
  95. <span class="kn">from</span> <span class="nn">macop.operators.mutators.SimpleMutation</span> <span class="kn">import</span> <span class="n">SimpleMutation</span>
  96. <span class="kn">from</span> <span class="nn">macop.operators.mutators.SimpleBinaryMutation</span> <span class="kn">import</span> <span class="n">SimpleBinaryMutation</span>
  97. <span class="kn">from</span> <span class="nn">macop.operators.crossovers.SimpleCrossover</span> <span class="kn">import</span> <span class="n">SimpleCrossover</span>
  98. <span class="kn">from</span> <span class="nn">macop.operators.crossovers.RandomSplitCrossover</span> <span class="kn">import</span> <span class="n">RandomSplitCrossover</span>
  99. <span class="kn">from</span> <span class="nn">macop.operators.policies.RandomPolicy</span> <span class="kn">import</span> <span class="n">RandomPolicy</span>
  100. <span class="kn">from</span> <span class="nn">macop.checkpoints.BasicCheckpoint</span> <span class="kn">import</span> <span class="n">BasicCheckpoint</span>
  101. <span class="c1"># logging configuration</span>
  102. <span class="n">logging</span><span class="o">.</span><span class="n">basicConfig</span><span class="p">(</span><span class="nb">format</span><span class="o">=</span><span class="s1">&#39;</span><span class="si">%(asctime)s</span><span class="s1"> </span><span class="si">%(message)s</span><span class="s1">&#39;</span><span class="p">,</span> <span class="n">filename</span><span class="o">=</span><span class="s1">&#39;example.log&#39;</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="n">logging</span><span class="o">.</span><span class="n">DEBUG</span><span class="p">)</span>
  103. <span class="c1"># default validator</span>
  104. <span class="k">def</span> <span class="nf">validator</span><span class="p">(</span><span class="n">solution</span><span class="p">):</span>
  105. <span class="k">return</span> <span class="kc">True</span>
  106. <span class="c1"># define init random solution</span>
  107. <span class="k">def</span> <span class="nf">init</span><span class="p">():</span>
  108. <span class="k">return</span> <span class="n">BinarySolution</span><span class="p">([],</span> <span class="mi">30</span><span class="p">)</span><span class="o">.</span><span class="n">random</span><span class="p">(</span><span class="n">validator</span><span class="p">)</span>
  109. <span class="n">filepath</span> <span class="o">=</span> <span class="s2">&quot;checkpoints.csv&quot;</span>
  110. <span class="k">def</span> <span class="nf">main</span><span class="p">():</span>
  111. <span class="n">operators</span> <span class="o">=</span> <span class="p">[</span><span class="n">SimpleBinaryMutation</span><span class="p">(),</span> <span class="n">SimpleMutation</span><span class="p">(),</span> <span class="n">SimpleCrossover</span><span class="p">(),</span> <span class="n">RandomSplitCrossover</span><span class="p">()]</span>
  112. <span class="n">policy</span> <span class="o">=</span> <span class="n">RandomPolicy</span><span class="p">(</span><span class="n">operators</span><span class="p">)</span>
  113. <span class="n">algo</span> <span class="o">=</span> <span class="n">ILS</span><span class="p">(</span><span class="n">init</span><span class="p">,</span> <span class="n">evaluatorExample</span><span class="p">,</span> <span class="n">operators</span><span class="p">,</span> <span class="n">policy</span><span class="p">,</span> <span class="n">validator</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
  114. <span class="n">algo</span><span class="o">.</span><span class="n">addCheckpoint</span><span class="p">(</span><span class="n">_class</span><span class="o">=</span><span class="n">BasicCheckpoint</span><span class="p">,</span> <span class="n">_every</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">_filepath</span><span class="o">=</span><span class="n">filepath</span><span class="p">)</span>
  115. <span class="n">bestSol</span> <span class="o">=</span> <span class="n">algo</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="mi">425</span><span class="p">)</span>
  116. <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Found &quot;</span><span class="p">,</span> <span class="n">bestSol</span><span class="p">)</span>
  117. <span class="k">if</span> <span class="vm">__name__</span> <span class="o">==</span> <span class="s2">&quot;__main__&quot;</span><span class="p">:</span>
  118. <span class="n">main</span><span class="p">()</span>
  119. </pre></div>
  120. </div>
  121. </div>
  122. </div>
  123. </div>
  124. </div>
  125. <footer>
  126. <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
  127. <a href="macop.html" class="btn btn-neutral float-right" title="Documentation" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
  128. <a href="index.html" class="btn btn-neutral float-left" title="Minimalist And Customizable Optimization Package" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
  129. </div>
  130. <hr/>
  131. <div role="contentinfo">
  132. <p>
  133. &copy; Copyright 2020, Jérôme BUISINE
  134. </p>
  135. </div>
  136. Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
  137. </footer>
  138. </div>
  139. </div>
  140. </section>
  141. </div>
  142. <script type="text/javascript">
  143. jQuery(function () {
  144. SphinxRtdTheme.Navigation.enable(true);
  145. });
  146. </script>
  147. </body>
  148. </html>