Update v0.5 docs

docs
Alinson S. Xavier 5 years ago
parent 9cadabbe81
commit 4dbf20c1fa

@ -59,7 +59,9 @@
<!-- Main title -->
<a class="navbar-brand" href="/.">RELOG</a>
<a class="navbar-brand" href="/.">RELOG</a>
</div>
<!-- Expanded navigation -->
@ -127,18 +129,22 @@
</div>
<footer class="col-md-12 text-center">
<hr>
<p>
<small>Copyright © 2020, UChicago Argonne, LLC. All Rights Reserved.</small><br>
<footer class="col-md-12 text-center">
<hr>
<p>
<small>Copyright © 2020, UChicago Argonne, LLC. All Rights Reserved.</small><br>
<small>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</small>
</p>
<small>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</small>
</p>
</footer>
</footer>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="/js/bootstrap-3.0.3.min.js"></script>

@ -1,12 +1,9 @@
body {
padding-top: 70px;
html {
scroll-padding-top: 70px;
}
h1[id]:before, h2[id]:before, h3[id]:before, h4[id]:before, h5[id]:before, h6[id]:before {
content: "";
display: block;
margin-top: -75px;
height: 75px;
body {
padding-top: 70px;
}
p > img {
@ -103,7 +100,8 @@ div.source-links {
.bs-sidebar.affix {
position: fixed; /* Undo the static from mobile first approach */
top: 80px;
max-height: calc(100% - 90px);
max-height: calc(100% - 180px);
overflow-y: auto;
}
.bs-sidebar.affix-bottom {
position: absolute; /* Undo the static from mobile first approach */
@ -228,6 +226,16 @@ div.source-links {
}
/* End Bootstrap Callouts CSS Source by Chris Pratt */
/* Headerlinks */
.headerlink {
display: none;
padding-left: .5em;
}
h1:hover .headerlink, h2:hover .headerlink, h3:hover .headerlink, h4:hover .headerlink, h5:hover .headerlink, h6:hover .headerlink {
display: inline-block;
}
/* Admonitions */
.admonition {
padding: 20px;

@ -1 +1 @@
body{padding-top:70px}h1[id]:before,h2[id]:before,h3[id]:before,h4[id]:before,h5[id]:before,h6[id]:before{content:"";display:block;margin-top:-75px;height:75px}p>img{max-width:100%;height:auto}ul.nav li.first-level{font-weight:bold}ul.nav li.third-level{padding-left:12px}div.col-md-3{padding-left:0}div.col-md-9{padding-bottom:100px}div.source-links{float:right}.bs-sidebar.affix{position:static}.bs-sidebar.well{padding:0}.bs-sidenav{margin-top:30px;margin-bottom:30px;padding-top:10px;padding-bottom:10px;border-radius:5px}.bs-sidebar .nav>li>a{display:block;padding:5px 20px;z-index:1}.bs-sidebar .nav>li>a:hover,.bs-sidebar .nav>li>a:focus{text-decoration:none;border-right:1px solid}.bs-sidebar .nav>.active>a,.bs-sidebar .nav>.active:hover>a,.bs-sidebar .nav>.active:focus>a{font-weight:bold;background-color:transparent;border-right:1px solid}.bs-sidebar .nav .nav{display:none;margin-bottom:8px}.bs-sidebar .nav .nav>li>a{padding-top:3px;padding-bottom:3px;padding-left:30px;font-size:90%}@media(min-width:992px){.bs-sidebar .nav>.active>ul{display:block}.bs-sidebar.affix,.bs-sidebar.affix-bottom{width:213px}.bs-sidebar.affix{position:fixed;top:80px;max-height:calc(100% - 90px)}.bs-sidebar.affix-bottom{position:absolute}.bs-sidebar.affix-bottom .bs-sidenav,.bs-sidebar.affix .bs-sidenav{margin-top:0;margin-bottom:0}}@media(min-width:1200px){.bs-sidebar.affix-bottom,.bs-sidebar.affix{width:263px}}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:0;margin-left:0}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropdown-submenu>a:after{display:block;content:" ";float:right;width:0;height:0;border-color:transparent;border-style:solid;border-width:5px 0 5px 5px;border-left-color:#ccc;margin-top:5px;margin-right:-10px}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:00px}.bs-callout{padding:20px;margin:20px 0;border:1px solid #eee;border-left-width:5px;border-radius:3px;background-color:#fcfdff}.bs-callout h4{font-style:normal;font-weight:400;margin-top:0;margin-bottom:5px}.bs-callout p:last-child{margin-bottom:0}.bs-callout code{border-radius:3px}.bs-callout+.bs-callout{margin-top:-5px}.bs-callout-default{border-left-color:#fa023c}.bs-callout-default h4{color:#fa023c}.bs-callout-primary{border-left-color:#428bca}.bs-callout-primary h4{color:#428bca}.bs-callout-success{border-left-color:#5cb85c}.bs-callout-success h4{color:#5cb85c}.bs-callout-danger{border-left-color:#d9534f}.bs-callout-danger h4{color:#d9534f}.bs-callout-warning{border-left-color:#f0ad4e}.bs-callout-warning h4{color:#f0ad4e}.bs-callout-info{border-left-color:#5bc0de}.bs-callout-info h4{color:#5bc0de}.admonition{padding:20px;margin:20px 0;border:1px solid #eee;border-left-width:5px;border-radius:3px;background-color:#fcfdff}.admonition p:last-child{margin-bottom:0}.admonition code{border-radius:3px}.admonition+.admonition{margin-top:-5px}.admonition.note{border-left-color:#428bca}.admonition.warning{border-left-color:#f0ad4e}.admonition.danger{border-left-color:#d9534f}.admonition-title{font-size:19px;font-style:normal;font-weight:400;margin-top:0;margin-bottom:5px}.admonition.note>.admonition-title{color:#428bca}.admonition.warning>.admonition-title{color:#f0ad4e}.admonition.danger>.admonition-title{color:#d9534f}
html{scroll-padding-top:70px}body{padding-top:70px}p>img{max-width:100%;height:auto}ul.nav li.first-level{font-weight:bold}ul.nav li.third-level{padding-left:12px}div.col-md-3{padding-left:0}div.col-md-9{padding-bottom:100px}div.source-links{float:right}.bs-sidebar.affix{position:static}.bs-sidebar.well{padding:0}.bs-sidenav{margin-top:30px;margin-bottom:30px;padding-top:10px;padding-bottom:10px;border-radius:5px}.bs-sidebar .nav>li>a{display:block;padding:5px 20px;z-index:1}.bs-sidebar .nav>li>a:hover,.bs-sidebar .nav>li>a:focus{text-decoration:none;border-right:1px solid}.bs-sidebar .nav>.active>a,.bs-sidebar .nav>.active:hover>a,.bs-sidebar .nav>.active:focus>a{font-weight:bold;background-color:transparent;border-right:1px solid}.bs-sidebar .nav .nav{display:none;margin-bottom:8px}.bs-sidebar .nav .nav>li>a{padding-top:3px;padding-bottom:3px;padding-left:30px;font-size:90%}@media(min-width:992px){.bs-sidebar .nav>.active>ul{display:block}.bs-sidebar.affix,.bs-sidebar.affix-bottom{width:213px}.bs-sidebar.affix{position:fixed;top:80px;max-height:calc(100% - 180px);overflow-y:auto}.bs-sidebar.affix-bottom{position:absolute}.bs-sidebar.affix-bottom .bs-sidenav,.bs-sidebar.affix .bs-sidenav{margin-top:0;margin-bottom:0}}@media(min-width:1200px){.bs-sidebar.affix-bottom,.bs-sidebar.affix{width:263px}}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:0;margin-left:0}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropdown-submenu>a:after{display:block;content:" ";float:right;width:0;height:0;border-color:transparent;border-style:solid;border-width:5px 0 5px 5px;border-left-color:#ccc;margin-top:5px;margin-right:-10px}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:00px}.bs-callout{padding:20px;margin:20px 0;border:1px solid #eee;border-left-width:5px;border-radius:3px;background-color:#fcfdff}.bs-callout h4{font-style:normal;font-weight:400;margin-top:0;margin-bottom:5px}.bs-callout p:last-child{margin-bottom:0}.bs-callout code{border-radius:3px}.bs-callout+.bs-callout{margin-top:-5px}.bs-callout-default{border-left-color:#fa023c}.bs-callout-default h4{color:#fa023c}.bs-callout-primary{border-left-color:#428bca}.bs-callout-primary h4{color:#428bca}.bs-callout-success{border-left-color:#5cb85c}.bs-callout-success h4{color:#5cb85c}.bs-callout-danger{border-left-color:#d9534f}.bs-callout-danger h4{color:#d9534f}.bs-callout-warning{border-left-color:#f0ad4e}.bs-callout-warning h4{color:#f0ad4e}.bs-callout-info{border-left-color:#5bc0de}.bs-callout-info h4{color:#5bc0de}.headerlink{display:none;padding-left:.5em}h1:hover .headerlink,h2:hover .headerlink,h3:hover .headerlink,h4:hover .headerlink,h5:hover .headerlink,h6:hover .headerlink{display:inline-block}.admonition{padding:20px;margin:20px 0;border:1px solid #eee;border-left-width:5px;border-radius:3px;background-color:#fcfdff}.admonition p:last-child{margin-bottom:0}.admonition code{border-radius:3px}.admonition+.admonition{margin-top:-5px}.admonition.note{border-left-color:#428bca}.admonition.warning{border-left-color:#f0ad4e}.admonition.danger{border-left-color:#d9534f}.admonition-title{font-size:19px;font-style:normal;font-weight:400;margin-top:0;margin-bottom:5px}.admonition.note>.admonition-title{color:#428bca}.admonition.warning>.admonition-title{color:#f0ad4e}.admonition.danger>.admonition-title{color:#d9534f}

@ -59,7 +59,9 @@
<!-- Main title -->
<a class="navbar-brand" href="..">RELOG</a>
<a class="navbar-brand" href="..">RELOG</a>
</div>
<!-- Expanded navigation -->
@ -166,14 +168,13 @@
</tbody>
</table>
<h4 id="example">Example</h4>
<pre><code class="json">{
<pre><code class="language-json">{
&quot;parameters&quot;: {
&quot;time horizon (years)&quot;: 2,
&quot;building period (years)&quot;: [1]
}
}
</code></pre>
<h3 id="products">Products</h3>
<p>The <strong>products</strong> section describes all products and subproducts in the simulation. The field <code>instance["Products"]</code> is a dictionary mapping the name of the product to a dictionary which describes its characteristics. Each product description contains the following keys:</p>
<table>
@ -226,7 +227,7 @@
</tbody>
</table>
<h4 id="example_1">Example</h4>
<pre><code class="json">{
<pre><code class="language-json">{
&quot;products&quot;: {
&quot;P1&quot;: {
&quot;initial amounts&quot;: {
@ -265,7 +266,6 @@
}
}
</code></pre>
<h3 id="processing-plants">Processing plants</h3>
<p>The <strong>plants</strong> section describes the available types of reverse manufacturing plants, their potential locations and associated costs, as well as their inputs and outputs. The field <code>instance["Plants"]</code> is a dictionary mapping the name of the plant to a dictionary with the following keys:</p>
<table>
@ -391,7 +391,7 @@
</tbody>
</table>
<h4 id="example_2">Example</h4>
<pre><code class="json">{
<pre><code class="language-json">{
&quot;plants&quot;: {
&quot;F1&quot;: {
&quot;input&quot;: &quot;P1&quot;,
@ -436,7 +436,6 @@
}
}
</code></pre>
<h3 id="current-limitations">Current limitations</h3>
<ul>
<li>Each plant can only be opened exactly once. After open, the plant remains open until the end of the simulation.</li>
@ -450,18 +449,22 @@
</div>
<footer class="col-md-12 text-center">
<hr>
<p>
<small>Copyright © 2020, UChicago Argonne, LLC. All Rights Reserved.</small><br>
<footer class="col-md-12 text-center">
<hr>
<p>
<small>Copyright © 2020, UChicago Argonne, LLC. All Rights Reserved.</small><br>
<small>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</small>
</p>
<small>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</small>
</p>
</footer>
</footer>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="../js/bootstrap-3.0.3.min.js"></script>

@ -59,7 +59,9 @@
<!-- Main title -->
<a class="navbar-brand" href=".">RELOG</a>
<a class="navbar-brand" href=".">RELOG</a>
</div>
<!-- Expanded navigation -->
@ -161,7 +163,7 @@
<li><strong>Nwike Iloeje,</strong> Argonne National Laboratory &lt;<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#99;&#105;&#108;&#111;&#101;&#106;&#101;&#64;&#97;&#110;&#108;&#46;&#103;&#111;&#118;">&#99;&#105;&#108;&#111;&#101;&#106;&#101;&#64;&#97;&#110;&#108;&#46;&#103;&#111;&#118;</a>&gt;</li>
</ul>
<h3 id="license">License</h3>
<pre><code class="text">RELOG: Reverse Logistics Optimization
<pre><code class="language-text">RELOG: Reverse Logistics Optimization
Copyright © 2020, UChicago Argonne, LLC. All Rights Reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted
@ -190,18 +192,22 @@ POSSIBILITY OF SUCH DAMAGE.
</div>
<footer class="col-md-12 text-center">
<hr>
<p>
<small>Copyright © 2020, UChicago Argonne, LLC. All Rights Reserved.</small><br>
<footer class="col-md-12 text-center">
<hr>
<p>
<small>Copyright © 2020, UChicago Argonne, LLC. All Rights Reserved.</small><br>
<small>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</small>
</p>
<small>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</small>
</p>
</footer>
</footer>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="js/bootstrap-3.0.3.min.js"></script>
@ -290,5 +296,5 @@ POSSIBILITY OF SUCH DAMAGE.
<!--
MkDocs version : 1.1.2
Build Date UTC : 2020-10-29 20:20:05.378362+00:00
Build Date UTC : 2021-01-06 15:17:22.880432+00:00
-->

@ -59,7 +59,9 @@
<!-- Main title -->
<a class="navbar-brand" href="..">RELOG</a>
<a class="navbar-brand" href="..">RELOG</a>
</div>
<!-- Expanded navigation -->
@ -319,18 +321,22 @@ In the fourth line, we have the disposal costs.</p>
</div>
<footer class="col-md-12 text-center">
<hr>
<p>
<small>Copyright © 2020, UChicago Argonne, LLC. All Rights Reserved.</small><br>
<footer class="col-md-12 text-center">
<hr>
<p>
<small>Copyright © 2020, UChicago Argonne, LLC. All Rights Reserved.</small><br>
<small>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</small>
</p>
<small>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</small>
</p>
</footer>
</footer>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="../js/bootstrap-3.0.3.min.js"></script>

@ -59,7 +59,9 @@
<!-- Main title -->
<a class="navbar-brand" href="..">RELOG</a>
<a class="navbar-brand" href="..">RELOG</a>
</div>
<!-- Expanded navigation -->
@ -236,7 +238,7 @@
<ul>
<li>Bar plot with total plant costs per year, grouped by plant type (in Python):</li>
</ul>
<pre><code class="python">import pandas as pd
<pre><code class="language-python">import pandas as pd
import seaborn as sns; sns.set()
data = pd.read_csv(&quot;plants_report.csv&quot;)
@ -247,12 +249,11 @@ sns.barplot(x=&quot;year&quot;,
.sum()
.reset_index());
</code></pre>
<p><img src="../images/ex_plant_cost_per_year.png" width="500px"/></p>
<ul>
<li>Map showing plant locations (in Python):</li>
</ul>
<pre><code class="python">import pandas as pd
<pre><code class="language-python">import pandas as pd
import geopandas as gp
# Plot base map
@ -267,7 +268,6 @@ points = gp.points_from_xy(data[&quot;longitude (deg)&quot;],
data[&quot;latitude (deg)&quot;])
gp.GeoDataFrame(data, geometry=points).plot(ax=ax);
</code></pre>
<p><img src="../images/ex_plant_locations.png" width="1000px"/></p>
<h2 id="plant-outputs-report">Plant outputs report</h2>
<p>Report showing amount of products produced, sent and disposed of by each plant, as well as disposal costs.</p>
@ -318,7 +318,7 @@ gp.GeoDataFrame(data, geometry=points).plot(ax=ax);
<ul>
<li>Bar plot showing total amount produced for each product, grouped by year (in Python):</li>
</ul>
<pre><code class="python">import pandas as pd
<pre><code class="language-python">import pandas as pd
import seaborn as sns; sns.set()
data = pd.read_csv(&quot;plant_outputs_report.csv&quot;)
@ -329,7 +329,6 @@ sns.barplot(x=&quot;amount produced (tonne)&quot;,
.sum()
.reset_index());
</code></pre>
<p><img src="../images/ex_amount_produced.png" width="500px"/></p>
<h2 id="plant-emissions-report">Plant emissions report</h2>
<p>Report showing amount of emissions produced by each plant.</p>
@ -368,7 +367,7 @@ sns.barplot(x=&quot;amount produced (tonne)&quot;,
<ul>
<li>Bar plot showing total emission by plant type, grouped type of emissions (in Python):</li>
</ul>
<pre><code class="python">import pandas as pd
<pre><code class="language-python">import pandas as pd
import seaborn as sns; sns.set()
data = pd.read_csv(&quot;plant_emissions_report.csv&quot;)
@ -379,7 +378,6 @@ sns.barplot(x=&quot;plant type&quot;,
.sum()
.reset_index());
</code></pre>
<p><img src="../images/ex_emissions.png" width="500px"/></p>
<h2 id="transportation-report">Transportation report</h2>
<p>Report showing amount of product sent from initial locations to plants, and from one plant to another. Includes the distance between each pair of locations, amount-distance shipped, transportation costs and energy expenditure.</p>
@ -458,7 +456,7 @@ sns.barplot(x=&quot;plant type&quot;,
<ul>
<li>Bar plot showing total amount-distance for each product type, grouped by year (in Python):</li>
</ul>
<pre><code class="python">import pandas as pd
<pre><code class="language-python">import pandas as pd
import seaborn as sns; sns.set()
data = pd.read_csv(&quot;transportation_report.csv&quot;)
@ -469,12 +467,11 @@ sns.barplot(x=&quot;product&quot;,
.sum()
.reset_index());
</code></pre>
<p><img src="../images/ex_transportation_amount_distance.png" width="500px"/></p>
<ul>
<li>Map of transportation lines (in Python):</li>
</ul>
<pre><code class="python">import pandas as pd
<pre><code class="language-python">import pandas as pd
import geopandas as gp
from shapely.geometry import Point, LineString
import matplotlib.pyplot as plt
@ -511,7 +508,6 @@ gp.GeoDataFrame(data, geometry=points).plot(ax=ax,
color=&quot;red&quot;,
markersize=50);
</code></pre>
<p><img src="../images/ex_transportation.png" width="1000px"/></p>
<h2 id="transportation-emissions-report">Transportation emissions report</h2>
<p>Report showing emissions for each trip between initial locations and plants, and between pairs of plants.</p>
@ -590,7 +586,7 @@ gp.GeoDataFrame(data, geometry=points).plot(ax=ax,
<ul>
<li>Bar plot showing total emission amount by emission type, grouped by type of product being transported (in Python):</li>
</ul>
<pre><code class="python">import pandas as pd
<pre><code class="language-python">import pandas as pd
import seaborn as sns; sns.set()
data = pd.read_csv(&quot;transportation_emissions_report.csv&quot;)
@ -601,24 +597,27 @@ sns.barplot(x=&quot;emission type&quot;,
.sum()
.reset_index());
</code></pre>
<p><img src="../images/ex_transportation_emissions.png" width="500px"/></p></div>
</div>
<footer class="col-md-12 text-center">
<hr>
<p>
<small>Copyright © 2020, UChicago Argonne, LLC. All Rights Reserved.</small><br>
<footer class="col-md-12 text-center">
<hr>
<p>
<small>Copyright © 2020, UChicago Argonne, LLC. All Rights Reserved.</small><br>
<small>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</small>
</p>
<small>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</small>
</p>
</footer>
</footer>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="../js/bootstrap-3.0.3.min.js"></script>

@ -1,23 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><url>
<loc>None</loc>
<lastmod>2020-10-29</lastmod>
<lastmod>2021-01-06</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-10-29</lastmod>
<lastmod>2021-01-06</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-10-29</lastmod>
<lastmod>2021-01-06</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-10-29</lastmod>
<lastmod>2021-01-06</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-10-29</lastmod>
<lastmod>2021-01-06</lastmod>
<changefreq>daily</changefreq>
</url>
</urlset>

Binary file not shown.

@ -59,7 +59,9 @@
<!-- Main title -->
<a class="navbar-brand" href="..">RELOG</a>
<a class="navbar-brand" href="..">RELOG</a>
</div>
<!-- Expanded navigation -->
@ -146,17 +148,14 @@
<h1 id="usage">Usage</h1>
<h2 id="1-installation">1. Installation</h2>
<p>To use RELOG, the first step is to install the <a href="https://julialang.org/">Julia programming language</a> on your machine. Note that RELOG was developed and tested with Julia 1.5 and may not be compatible with newer versions. After Julia is installed, launch the Julia console, type <code>]</code> to switch to package manger mode, then run:</p>
<pre><code class="text">(@v1.5) pkg&gt; add https://github.com/ANL-CEEESA/RELOG.git
<pre><code class="language-text">(@v1.5) pkg&gt; add https://github.com/ANL-CEEESA/RELOG.git
</code></pre>
<p>After the package and all its dependencies have been installed, please run the RELOG test suite, as shown below, to make sure that the package has been correctly installed:</p>
<pre><code class="text">(@v1.5) pkg&gt; test RELOG
<pre><code class="language-text">(@v1.5) pkg&gt; test RELOG
</code></pre>
<p>To update the package to a newer version, type <code>]</code> to enter the package manager mode, then run:</p>
<pre><code class="text">(@v1.5) pkg&gt; update RELOG
<pre><code class="language-text">(@v1.5) pkg&gt; update RELOG
</code></pre>
<h2 id="2-modeling-the-problem">2. Modeling the problem</h2>
<p>The two main model components in RELOG are <strong>products</strong> and <strong>plants</strong>.</p>
<p>A <strong>product</strong> is any material that needs to be recycled, any intermediary product produced during the recycling process, or any product recovered at the end of the process. For example, in a NiMH battery recycling study case, products could include (i) the original batteries to be recycled; (ii) the cathode and anode parts of the battery; (iii) rare-earth elements and (iv) scrap metals.</p>
@ -189,7 +188,7 @@
<p>All user parameters specified above must be provided to RELOG as a JSON file, which is fully described in the <a href="../format/">data format page</a>.</p>
<h2 id="3-running-the-optimization">3. Running the optimization</h2>
<p>After creating a JSON file describing the reverse manufacturing process and the input data, the following example illustrates how to use the package to find the optimal set of decisions:</p>
<pre><code class="julia"># Import package
<pre><code class="language-julia"># Import package
using RELOG
# Solve optimization problem
@ -202,12 +201,11 @@ RELOG.write(solution, &quot;solution.json&quot;)
RELOG.write_plants_report(solution, &quot;plants.csv&quot;)
RELOG.write_transportation_report(solution, &quot;transportation.csv&quot;)
</code></pre>
<p>For a complete description of the file formats above, and for a complete list of available reports, see the <a href="../format/">data format page</a>.</p>
<h2 id="4-advanced-options">4. Advanced options</h2>
<h3 id="41-changing-the-solver">4.1 Changing the solver</h3>
<p>By default, RELOG internally uses <a href="https://github.com/coin-or/Cbc">Cbc</a>, an open-source and freely-available Mixed-Integer Linear Programming solver developed by the <a href="https://www.coin-or.org/">COIN-OR Project</a>. For larger-scale test cases, a commercial solver such as Gurobi, CPLEX or XPRESS is recommended. The following snippet shows how to switch from Cbc to Gurobi, for example:</p>
<pre><code class="julia">using RELOG, Gurobi, JuMP
<pre><code class="language-julia">using RELOG, Gurobi, JuMP
gurobi = optimizer_with_attributes(Gurobi.Optimizer,
&quot;TimeLimit&quot; =&gt; 3600,
@ -217,7 +215,6 @@ RELOG.solve(&quot;instance.json&quot;,
output=&quot;solution.json&quot;,
optimizer=gurobi)
</code></pre>
<h3 id="42-multi-period-heuristics">4.2 Multi-period heuristics</h3>
<p>For large-scale instances, it may be too time-consuming to find an exact optimal solution to the multi-period version of the problem. For these situations, RELOG includes a heuristic solution method, which proceeds as follows:</p>
<ol>
@ -229,7 +226,7 @@ RELOG.solve(&quot;instance.json&quot;,
</li>
</ol>
<p>To solve an instance using this heuristic, use the option <code>heuristic=true</code>, as shown below.</p>
<pre><code class="julia">using RELOG
<pre><code class="language-julia">using RELOG
solution = RELOG.solve(&quot;/home/user/instance.json&quot;,
heuristic=true)
@ -238,18 +235,22 @@ solution = RELOG.solve(&quot;/home/user/instance.json&quot;,
</div>
<footer class="col-md-12 text-center">
<hr>
<p>
<small>Copyright © 2020, UChicago Argonne, LLC. All Rights Reserved.</small><br>
<footer class="col-md-12 text-center">
<hr>
<p>
<small>Copyright © 2020, UChicago Argonne, LLC. All Rights Reserved.</small><br>
<small>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</small>
</p>
<small>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</small>
</p>
</footer>
</footer>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="../js/bootstrap-3.0.3.min.js"></script>

@ -1 +1 @@
<meta http-equiv="Refresh" content="0; url='/RELOG/0.4'" />
<meta http-equiv="Refresh" content="0; url='/RELOG/0.5'" />

Loading…
Cancel
Save