Skip to content

Commit 0be75ec

Browse files
committed
Urn samplers for approval ballots
1 parent 749bc52 commit 0be75ec

File tree

15 files changed

+1099
-521
lines changed

15 files changed

+1099
-521
lines changed

docs-source/source/reference/approval/index.rst

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,30 +3,30 @@ Approval
33

44
.. automodule:: prefsampling.approval
55

6-
.. automodule:: prefsampling.approval.identity
6+
.. autofunction:: prefsampling.approval.identity
77

8-
.. automodule:: prefsampling.approval.empty
8+
.. autofunction:: prefsampling.approval.empty
99

10-
.. automodule:: prefsampling.approval.full
10+
.. autofunction:: prefsampling.approval.full
1111

12-
.. automodule:: prefsampling.approval.impartial
12+
.. autofunction:: prefsampling.approval.impartial
1313

14-
.. automodule:: prefsampling.approval.impartial_constant_size
14+
.. autofunction:: prefsampling.approval.impartial_constant_size
1515

16-
.. automodule:: prefsampling.approval.urn
16+
.. autofunction:: prefsampling.approval.urn
1717

18-
.. automodule:: prefsampling.approval.urn_constant_size
18+
.. autofunction:: prefsampling.approval.urn_constant_size
1919

20-
.. automodule:: prefsampling.approval.urn_partylist
20+
.. autofunction:: prefsampling.approval.urn_partylist
2121

22-
.. automodule:: prefsampling.approval.resampling
22+
.. autofunction:: prefsampling.approval.resampling
2323

24-
.. automodule:: prefsampling.approval.disjoint_resampling
24+
.. autofunction:: prefsampling.approval.disjoint_resampling
2525

26-
.. automodule:: prefsampling.approval.moving_resampling
26+
.. autofunction:: prefsampling.approval.moving_resampling
2727

28-
.. automodule:: prefsampling.approval.euclidean
28+
.. autofunction:: prefsampling.approval.euclidean
2929

30-
.. automodule:: prefsampling.approval.noise
30+
.. autofunction:: prefsampling.approval.noise
3131

32-
.. automodule:: prefsampling.approval.truncated_ordinal
32+
.. autofunction:: prefsampling.approval.truncated_ordinal

docs/_modules/index.html

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,14 @@ <h1></h1>
282282

283283
<h1>All modules for which code is available</h1>
284284
<ul><li><a href="prefsampling.html">prefsampling</a></li>
285-
<ul><li><a href="prefsampling/core/composition.html">prefsampling.core.composition</a></li>
285+
<ul><li><a href="prefsampling/approval/euclidean.html">prefsampling.approval.euclidean</a></li>
286+
<li><a href="prefsampling/approval/identity.html">prefsampling.approval.identity</a></li>
287+
<li><a href="prefsampling/approval/impartial.html">prefsampling.approval.impartial</a></li>
288+
<li><a href="prefsampling/approval/noise.html">prefsampling.approval.noise</a></li>
289+
<li><a href="prefsampling/approval/resampling.html">prefsampling.approval.resampling</a></li>
290+
<li><a href="prefsampling/approval/truncated_ordinal.html">prefsampling.approval.truncated_ordinal</a></li>
291+
<li><a href="prefsampling/approval/urn.html">prefsampling.approval.urn</a></li>
292+
<li><a href="prefsampling/core/composition.html">prefsampling.core.composition</a></li>
286293
<li><a href="prefsampling/core/euclidean.html">prefsampling.core.euclidean</a></li>
287294
<li><a href="prefsampling/core/filters.html">prefsampling.core.filters</a></li>
288295
<li><a href="prefsampling/inputvalidators.html">prefsampling.inputvalidators</a></li>

docs/_modules/prefsampling/approval/identity.html

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
<link rel="preload" as="script" href="../../../_static/scripts/pydata-sphinx-theme.js?digest=8d27b9dea8ad943066ae" />
3636
<script src="../../../_static/vendor/fontawesome/6.5.1/js/all.min.js?digest=8d27b9dea8ad943066ae"></script>
3737

38-
<script src="../../../_static/documentation_options.js?v=e645c8fa"></script>
38+
<script src="../../../_static/documentation_options.js?v=7ed07c24"></script>
3939
<script src="../../../_static/doctools.js?v=888ff710"></script>
4040
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
4141
<script src="../../../_static/scripts/sphinx-book-theme.js?v=efea14e4"></script>
@@ -159,6 +159,8 @@
159159
<li class="toctree-l2"><a class="reference internal" href="../../../reference/approval/index.html">Approval</a></li>
160160
<li class="toctree-l2"><a class="reference internal" href="../../../reference/tree/index.html">Tree</a></li>
161161
<li class="toctree-l2"><a class="reference internal" href="../../../reference/core/index.html">Core</a></li>
162+
<li class="toctree-l2"><a class="reference internal" href="../../../reference/constants.html">Constants</a></li>
163+
<li class="toctree-l2"><a class="reference internal" href="../../../reference/inputvalidators.html">Input Validators</a></li>
162164
</ul>
163165
</li>
164166
</ul>
@@ -302,7 +304,7 @@ <h1>Source code for prefsampling.approval.identity</h1><div class="highlight"><p
302304
<span class="sd"> num_candidates : int</span>
303305
<span class="sd"> Number of Candidates.</span>
304306
<span class="sd"> rel_num_approvals : float</span>
305-
<span class="sd"> Proportion of candidates approved.</span>
307+
<span class="sd"> Proportion of approved candidates in a ballot.</span>
306308
<span class="sd"> seed : int</span>
307309
<span class="sd"> Seed for numpy random number generator.</span>
308310

@@ -318,7 +320,8 @@ <h1>Source code for prefsampling.approval.identity</h1><div class="highlight"><p
318320
<span class="sd"> &quot;&quot;&quot;</span>
319321

320322
<span class="k">if</span> <span class="n">rel_num_approvals</span> <span class="o">&lt;</span> <span class="mi">0</span> <span class="ow">or</span> <span class="mi">1</span> <span class="o">&lt;</span> <span class="n">rel_num_approvals</span><span class="p">:</span>
321-
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Incorrect value of p: </span><span class="si">{</span><span class="n">rel_num_approvals</span><span class="si">}</span><span class="s2">. Value should be in [0, 1]&quot;</span><span class="p">)</span>
323+
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Incorrect value of rel_num_approvals: </span><span class="si">{</span><span class="n">rel_num_approvals</span><span class="si">}</span><span class="s2">. Value should &quot;</span>
324+
<span class="sa">f</span><span class="s2">&quot;be in [0, 1]&quot;</span><span class="p">)</span>
322325

323326
<span class="n">k</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">rel_num_approvals</span> <span class="o">*</span> <span class="n">num_candidates</span><span class="p">)</span>
324327
<span class="k">return</span> <span class="p">[</span><span class="nb">set</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="n">k</span><span class="p">))</span> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">num_voters</span><span class="p">)]</span></div>

docs/_modules/prefsampling/approval/impartial.html

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
<link rel="preload" as="script" href="../../../_static/scripts/pydata-sphinx-theme.js?digest=8d27b9dea8ad943066ae" />
3636
<script src="../../../_static/vendor/fontawesome/6.5.1/js/all.min.js?digest=8d27b9dea8ad943066ae"></script>
3737

38-
<script src="../../../_static/documentation_options.js?v=e645c8fa"></script>
38+
<script src="../../../_static/documentation_options.js?v=7ed07c24"></script>
3939
<script src="../../../_static/doctools.js?v=888ff710"></script>
4040
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
4141
<script src="../../../_static/scripts/sphinx-book-theme.js?v=efea14e4"></script>
@@ -159,6 +159,8 @@
159159
<li class="toctree-l2"><a class="reference internal" href="../../../reference/approval/index.html">Approval</a></li>
160160
<li class="toctree-l2"><a class="reference internal" href="../../../reference/tree/index.html">Tree</a></li>
161161
<li class="toctree-l2"><a class="reference internal" href="../../../reference/core/index.html">Core</a></li>
162+
<li class="toctree-l2"><a class="reference internal" href="../../../reference/constants.html">Constants</a></li>
163+
<li class="toctree-l2"><a class="reference internal" href="../../../reference/inputvalidators.html">Input Validators</a></li>
162164
</ul>
163165
</li>
164166
</ul>
@@ -283,7 +285,7 @@ <h1>Source code for prefsampling.approval.impartial</h1><div class="highlight"><
283285

284286
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
285287

286-
<span class="kn">from</span> <span class="nn">prefsampling.inputvalidators</span> <span class="kn">import</span> <span class="n">validate_num_voters_candidates</span><span class="p">,</span> <span class="n">validate_int</span>
288+
<span class="kn">from</span> <span class="nn">prefsampling.inputvalidators</span> <span class="kn">import</span> <span class="n">validate_num_voters_candidates</span>
287289

288290

289291
<div class="viewcode-block" id="impartial">
@@ -360,7 +362,7 @@ <h1>Source code for prefsampling.approval.impartial</h1><div class="highlight"><
360362
<span class="sd"> num_candidates : int</span>
361363
<span class="sd"> Number of Candidates.</span>
362364
<span class="sd"> rel_num_approvals : float</span>
363-
<span class="sd"> Number of approvals per ballot, i.e., size of the approval ballot.</span>
365+
<span class="sd"> Proportion of approved candidates in a ballot.</span>
364366
<span class="sd"> seed : int</span>
365367
<span class="sd"> Seed for numpy random number generator.</span>
366368

@@ -376,7 +378,8 @@ <h1>Source code for prefsampling.approval.impartial</h1><div class="highlight"><
376378
<span class="sd"> &quot;&quot;&quot;</span>
377379

378380
<span class="k">if</span> <span class="n">rel_num_approvals</span> <span class="o">&lt;</span> <span class="mi">0</span> <span class="ow">or</span> <span class="mi">1</span> <span class="o">&lt;</span> <span class="n">rel_num_approvals</span><span class="p">:</span>
379-
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Incorrect value of p: </span><span class="si">{</span><span class="n">rel_num_approvals</span><span class="si">}</span><span class="s2">. Value should be in [0,1]&quot;</span><span class="p">)</span>
381+
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Incorrect value of rel_num_approvals: </span><span class="si">{</span><span class="n">rel_num_approvals</span><span class="si">}</span><span class="s2">. Value should&quot;</span>
382+
<span class="sa">f</span><span class="s2">&quot; be in [0,1]&quot;</span><span class="p">)</span>
380383

381384
<span class="n">num_approvals</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">rel_num_approvals</span> <span class="o">*</span> <span class="n">num_candidates</span><span class="p">)</span>
382385
<span class="n">rng</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">default_rng</span><span class="p">(</span><span class="n">seed</span><span class="p">)</span>

0 commit comments

Comments
 (0)