This commit is contained in:
Laurent Perron
2021-09-21 10:55:35 +02:00
parent ca8d535668
commit 0fd236d316
7 changed files with 7785 additions and 1434 deletions

View File

@@ -90,7 +90,7 @@ pywrapknapsack_solver </h1>
<details>
<summary>View Source</summary>
<div class="codehilite"><pre><span></span><span class="c1"># This file was automatically generated by SWIG (http://www.swig.org).</span>
<span class="c1"># Version 4.0.1</span>
<span class="c1"># Version 4.0.2</span>
<span class="c1">#</span>
<span class="c1"># Do not make changes to this file unless you know what you are doing--modify</span>
<span class="c1"># the SWIG interface file instead.</span>
@@ -192,49 +192,52 @@ pywrapknapsack_solver </h1>
<span class="sd"> E.g.:</span>
<span class="sd"> **Python**:</span>
<span class="sd"> .py}</span>
<span class="sd"> profits = [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]</span>
<span class="sd"> weights = [ [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ],</span>
<span class="sd"> [ 1, 1, 1, 1, 1, 1, 1, 1, 1 ]</span>
<span class="sd"> ]</span>
<span class="sd"> capacities = [ 34, 4 ]</span>
<span class="sd"> solver = pywrapknapsack_solver.KnapsackSolver(</span>
<span class="sd"> pywrapknapsack_solver.KnapsackSolver</span>
<span class="sd"> .KNAPSACK_MULTIDIMENSION_BRANCH_AND_BOUND_SOLVER,</span>
<span class="sd"> &#39;Multi-dimensional solver&#39;)</span>
<span class="sd"> solver.Init(profits, weights, capacities)</span>
<span class="sd"> profit = solver.Solve()</span>
<span class="sd"> .. code-block:: python</span>
<span class="sd"> profits = [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]</span>
<span class="sd"> weights = [ [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ],</span>
<span class="sd"> [ 1, 1, 1, 1, 1, 1, 1, 1, 1 ]</span>
<span class="sd"> ]</span>
<span class="sd"> capacities = [ 34, 4 ]</span>
<span class="sd"> solver = pywrapknapsack_solver.KnapsackSolver(</span>
<span class="sd"> pywrapknapsack_solver.KnapsackSolver</span>
<span class="sd"> .KNAPSACK_MULTIDIMENSION_BRANCH_AND_BOUND_SOLVER,</span>
<span class="sd"> &#39;Multi-dimensional solver&#39;)</span>
<span class="sd"> solver.Init(profits, weights, capacities)</span>
<span class="sd"> profit = solver.Solve()</span>
<span class="sd"> **C++**:</span>
<span class="sd"> .cpp}</span>
<span class="sd"> const std::vector&lt;int64_t&gt; profits = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };</span>
<span class="sd"> const std::vector&lt;std::vector&lt;int64_t&gt;&gt; weights =</span>
<span class="sd"> { { 1, 2, 3, 4, 5, 6, 7, 8, 9 },</span>
<span class="sd"> { 1, 1, 1, 1, 1, 1, 1, 1, 1 } };</span>
<span class="sd"> const std::vector&lt;int64_t&gt; capacities = { 34, 4 };</span>
<span class="sd"> KnapsackSolver solver(</span>
<span class="sd"> KnapsackSolver::KNAPSACK_MULTIDIMENSION_BRANCH_AND_BOUND_SOLVER,</span>
<span class="sd"> &quot;Multi-dimensional solver&quot;);</span>
<span class="sd"> solver.Init(profits, weights, capacities);</span>
<span class="sd"> const int64_t profit = solver.Solve();</span>
<span class="sd"> .. code-block:: c++</span>
<span class="sd"> const std::vector&lt;int64_t&gt; profits = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };</span>
<span class="sd"> const std::vector&lt;std::vector&lt;int64_t&gt;&gt; weights =</span>
<span class="sd"> { { 1, 2, 3, 4, 5, 6, 7, 8, 9 },</span>
<span class="sd"> { 1, 1, 1, 1, 1, 1, 1, 1, 1 } };</span>
<span class="sd"> const std::vector&lt;int64_t&gt; capacities = { 34, 4 };</span>
<span class="sd"> KnapsackSolver solver(</span>
<span class="sd"> KnapsackSolver::KNAPSACK_MULTIDIMENSION_BRANCH_AND_BOUND_SOLVER,</span>
<span class="sd"> &quot;Multi-dimensional solver&quot;);</span>
<span class="sd"> solver.Init(profits, weights, capacities);</span>
<span class="sd"> const int64_t profit = solver.Solve();</span>
<span class="sd"> **Java**:</span>
<span class="sd"> .java}</span>
<span class="sd"> final long[] profits = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };</span>
<span class="sd"> final long[][] weights = { { 1, 2, 3, 4, 5, 6, 7, 8, 9 },</span>
<span class="sd"> { 1, 1, 1, 1, 1, 1, 1, 1, 1 } };</span>
<span class="sd"> final long[] capacities = { 34, 4 };</span>
<span class="sd"> KnapsackSolver solver = new KnapsackSolver(</span>
<span class="sd"> KnapsackSolver.SolverType.KNAPSACK_MULTIDIMENSION_BRANCH_AND_BOUND_SOLVER,</span>
<span class="sd"> &quot;Multi-dimensional solver&quot;);</span>
<span class="sd"> solver.init(profits, weights, capacities);</span>
<span class="sd"> final long profit = solver.solve();</span>
<span class="sd"> .. code-block:: java</span>
<span class="sd"> final long[] profits = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };</span>
<span class="sd"> final long[][] weights = { { 1, 2, 3, 4, 5, 6, 7, 8, 9 },</span>
<span class="sd"> { 1, 1, 1, 1, 1, 1, 1, 1, 1 } };</span>
<span class="sd"> final long[] capacities = { 34, 4 };</span>
<span class="sd"> KnapsackSolver solver = new KnapsackSolver(</span>
<span class="sd"> KnapsackSolver.SolverType.KNAPSACK_MULTIDIMENSION_BRANCH_AND_BOUND_SOLVER,</span>
<span class="sd"> &quot;Multi-dimensional solver&quot;);</span>
<span class="sd"> solver.init(profits, weights, capacities);</span>
<span class="sd"> final long profit = solver.solve();</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">&quot;The membership flag&quot;</span><span class="p">)</span>
@@ -372,49 +375,52 @@ pywrapknapsack_solver </h1>
<span class="sd"> E.g.:</span>
<span class="sd"> **Python**:</span>
<span class="sd"> .py}</span>
<span class="sd"> profits = [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]</span>
<span class="sd"> weights = [ [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ],</span>
<span class="sd"> [ 1, 1, 1, 1, 1, 1, 1, 1, 1 ]</span>
<span class="sd"> ]</span>
<span class="sd"> capacities = [ 34, 4 ]</span>
<span class="sd"> solver = pywrapknapsack_solver.KnapsackSolver(</span>
<span class="sd"> pywrapknapsack_solver.KnapsackSolver</span>
<span class="sd"> .KNAPSACK_MULTIDIMENSION_BRANCH_AND_BOUND_SOLVER,</span>
<span class="sd"> &#39;Multi-dimensional solver&#39;)</span>
<span class="sd"> solver.Init(profits, weights, capacities)</span>
<span class="sd"> profit = solver.Solve()</span>
<span class="sd"> .. code-block:: python</span>
<span class="sd"> profits = [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]</span>
<span class="sd"> weights = [ [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ],</span>
<span class="sd"> [ 1, 1, 1, 1, 1, 1, 1, 1, 1 ]</span>
<span class="sd"> ]</span>
<span class="sd"> capacities = [ 34, 4 ]</span>
<span class="sd"> solver = pywrapknapsack_solver.KnapsackSolver(</span>
<span class="sd"> pywrapknapsack_solver.KnapsackSolver</span>
<span class="sd"> .KNAPSACK_MULTIDIMENSION_BRANCH_AND_BOUND_SOLVER,</span>
<span class="sd"> &#39;Multi-dimensional solver&#39;)</span>
<span class="sd"> solver.Init(profits, weights, capacities)</span>
<span class="sd"> profit = solver.Solve()</span>
<span class="sd"> **C++**:</span>
<span class="sd"> .cpp}</span>
<span class="sd"> const std::vector&lt;int64_t&gt; profits = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };</span>
<span class="sd"> const std::vector&lt;std::vector&lt;int64_t&gt;&gt; weights =</span>
<span class="sd"> { { 1, 2, 3, 4, 5, 6, 7, 8, 9 },</span>
<span class="sd"> { 1, 1, 1, 1, 1, 1, 1, 1, 1 } };</span>
<span class="sd"> const std::vector&lt;int64_t&gt; capacities = { 34, 4 };</span>
<span class="sd"> KnapsackSolver solver(</span>
<span class="sd"> KnapsackSolver::KNAPSACK_MULTIDIMENSION_BRANCH_AND_BOUND_SOLVER,</span>
<span class="sd"> &quot;Multi-dimensional solver&quot;);</span>
<span class="sd"> solver.Init(profits, weights, capacities);</span>
<span class="sd"> const int64_t profit = solver.Solve();</span>
<span class="sd"> .. code-block:: c++</span>
<span class="sd"> const std::vector&lt;int64_t&gt; profits = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };</span>
<span class="sd"> const std::vector&lt;std::vector&lt;int64_t&gt;&gt; weights =</span>
<span class="sd"> { { 1, 2, 3, 4, 5, 6, 7, 8, 9 },</span>
<span class="sd"> { 1, 1, 1, 1, 1, 1, 1, 1, 1 } };</span>
<span class="sd"> const std::vector&lt;int64_t&gt; capacities = { 34, 4 };</span>
<span class="sd"> KnapsackSolver solver(</span>
<span class="sd"> KnapsackSolver::KNAPSACK_MULTIDIMENSION_BRANCH_AND_BOUND_SOLVER,</span>
<span class="sd"> &quot;Multi-dimensional solver&quot;);</span>
<span class="sd"> solver.Init(profits, weights, capacities);</span>
<span class="sd"> const int64_t profit = solver.Solve();</span>
<span class="sd"> **Java**:</span>
<span class="sd"> .java}</span>
<span class="sd"> final long[] profits = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };</span>
<span class="sd"> final long[][] weights = { { 1, 2, 3, 4, 5, 6, 7, 8, 9 },</span>
<span class="sd"> { 1, 1, 1, 1, 1, 1, 1, 1, 1 } };</span>
<span class="sd"> final long[] capacities = { 34, 4 };</span>
<span class="sd"> KnapsackSolver solver = new KnapsackSolver(</span>
<span class="sd"> KnapsackSolver.SolverType.KNAPSACK_MULTIDIMENSION_BRANCH_AND_BOUND_SOLVER,</span>
<span class="sd"> &quot;Multi-dimensional solver&quot;);</span>
<span class="sd"> solver.init(profits, weights, capacities);</span>
<span class="sd"> final long profit = solver.solve();</span>
<span class="sd"> .. code-block:: java</span>
<span class="sd"> final long[] profits = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };</span>
<span class="sd"> final long[][] weights = { { 1, 2, 3, 4, 5, 6, 7, 8, 9 },</span>
<span class="sd"> { 1, 1, 1, 1, 1, 1, 1, 1, 1 } };</span>
<span class="sd"> final long[] capacities = { 34, 4 };</span>
<span class="sd"> KnapsackSolver solver = new KnapsackSolver(</span>
<span class="sd"> KnapsackSolver.SolverType.KNAPSACK_MULTIDIMENSION_BRANCH_AND_BOUND_SOLVER,</span>
<span class="sd"> &quot;Multi-dimensional solver&quot;);</span>
<span class="sd"> solver.init(profits, weights, capacities);</span>
<span class="sd"> final long profit = solver.solve();</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">&quot;The membership flag&quot;</span><span class="p">)</span>
@@ -540,49 +546,55 @@ one just has to feed a profit vector with the 9 profits, a vector of 2
vectors for weights, and a vector of capacities.
E.g.:</p>
<p><strong>Python</strong>:
.py}
profits = [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
<p><strong>Python</strong>:</p>
<p>.. code-block:: python</p>
<pre><code> profits = [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
weights = [ [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ],
[ 1, 1, 1, 1, 1, 1, 1, 1, 1 ]
]
capacities = [ 34, 4 ]</p>
capacities = [ 34, 4 ]
<pre><code> solver = <a href="#KnapsackSolver">pywrapknapsack_solver.KnapsackSolver</a>(
<a href="#KnapsackSolver">pywrapknapsack_solver.KnapsackSolver</a>
.KNAPSACK_MULTIDIMENSION_BRANCH_AND_BOUND_SOLVER,
'Multi-dimensional solver')
solver.Init(profits, weights, capacities)
profit = solver.Solve()
solver = <a href="#KnapsackSolver">pywrapknapsack_solver.KnapsackSolver</a>(
<a href="#KnapsackSolver">pywrapknapsack_solver.KnapsackSolver</a>
.KNAPSACK_MULTIDIMENSION_BRANCH_AND_BOUND_SOLVER,
'Multi-dimensional solver')
solver.Init(profits, weights, capacities)
profit = solver.Solve()
</code></pre>
<p><strong>C++</strong>:
.cpp}
const std::vector<int64_t> profits = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
const std::vector<std::vector<int64_t>&gt; weights =
<p><strong>C++</strong>:</p>
<p>.. code-block:: c++</p>
<pre><code> const std::vector&lt;int64_t&gt; profits = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
const std::vector&lt;std::vector&lt;int64_t&gt;&gt; weights =
{ { 1, 2, 3, 4, 5, 6, 7, 8, 9 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1 } };
const std::vector<int64_t> capacities = { 34, 4 };</p>
const std::vector&lt;int64_t&gt; capacities = { 34, 4 };
<pre><code> KnapsackSolver solver(
KnapsackSolver::KNAPSACK_MULTIDIMENSION_BRANCH_AND_BOUND_SOLVER,
"Multi-dimensional solver");
solver.Init(profits, weights, capacities);
const int64_t profit = solver.Solve();
KnapsackSolver solver(
KnapsackSolver::KNAPSACK_MULTIDIMENSION_BRANCH_AND_BOUND_SOLVER,
"Multi-dimensional solver");
solver.Init(profits, weights, capacities);
const int64_t profit = solver.Solve();
</code></pre>
<p><strong>Java</strong>:
.java}
final long[] profits = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
<p><strong>Java</strong>:</p>
<p>.. code-block:: java</p>
<pre><code> final long[] profits = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
final long[][] weights = { { 1, 2, 3, 4, 5, 6, 7, 8, 9 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1 } };
final long[] capacities = { 34, 4 };</p>
final long[] capacities = { 34, 4 };
<pre><code>KnapsackSolver solver = new KnapsackSolver(
KnapsackSolver.SolverType.KNAPSACK_MULTIDIMENSION_BRANCH_AND_BOUND_SOLVER,
"Multi-dimensional solver");
solver.init(profits, weights, capacities);
final long profit = solver.solve();
KnapsackSolver solver = new KnapsackSolver(
KnapsackSolver.SolverType.KNAPSACK_MULTIDIMENSION_BRANCH_AND_BOUND_SOLVER,
"Multi-dimensional solver");
solver.init(profits, weights, capacities);
final long profit = solver.solve();
</code></pre>
</div>