Skip to content

Commit

Permalink
Docs
Browse files Browse the repository at this point in the history
  • Loading branch information
Simon-Rey committed Feb 8, 2024
1 parent 5d01fa9 commit b91d80f
Show file tree
Hide file tree
Showing 33 changed files with 2,648 additions and 44 deletions.
18 changes: 9 additions & 9 deletions docs-source/source/validation/approval.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@ Impartial

:py:func:`prefsampling.approval.impartial`

The probability distribution generated by the approval impartial culture model.
In the impartial model every candidate has the same probability :code:`p` of being approved. Thus,
the probability of generating an approval ballot of length :code:`k` follows a binomial distribution
of parameters :code:`p` and :code:`k`.

.. image:: validation_plots/approval/impartial.png
:width: 800
Expand All @@ -19,29 +21,27 @@ Resampling

:py:func:`prefsampling.approval.resampling`

The probability distribution generated by the resampling model.
See the work of `Szufa et al. (2022) <https://www.ijcai.org/proceedings/2022/0071.pdf>`_
for more details.
for more details on this model.

.. image:: validation_plots/approval/resampling.png
:width: 800
:alt: Observed versus theoretical frequencies for the resampling model

Disjoint Resampling
----------
-------------------

:py:func:`prefsampling.approval.disjoint_resampling`

The probability distribution generated by the disjoint resampling model.
See the work of `Szufa et al. (2022) <https://www.ijcai.org/proceedings/2022/0071.pdf>`_
for more details.
for more details on this model.

.. image:: validation_plots/approval/disjoint_resampling.png
:width: 800
:alt: Observed versus theoretical frequencies for the disjoint resampling model

Noise
----------
-----

:py:func:`prefsampling.approval.noise`

Expand All @@ -52,11 +52,11 @@ The probability distribution generated by the noise model based on the Hamming d
:alt: Observed versus theoretical frequencies for the noise model

Identity
----------
--------

:py:func:`prefsampling.approval.identity`

The probability distribution generated by the identity model.
The identity sampler only samples a single ballot. This is what we observe here.

.. image:: validation_plots/approval/identity.png
:width: 800
Expand Down
Binary file added docs/_images/disjoint_resampling.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_images/identity.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_images/impartial1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_images/noise.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_images/resampling.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions docs/_modules/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,7 @@ <h1>All modules for which code is available</h1>
<ul><li><a href="prefsampling/approval/euclidean.html">prefsampling.approval.euclidean</a></li>
<li><a href="prefsampling/approval/identity.html">prefsampling.approval.identity</a></li>
<li><a href="prefsampling/approval/impartial.html">prefsampling.approval.impartial</a></li>
<li><a href="prefsampling/approval/mixture.html">prefsampling.approval.mixture</a></li>
<li><a href="prefsampling/approval/noise.html">prefsampling.approval.noise</a></li>
<li><a href="prefsampling/approval/partylist.html">prefsampling.approval.partylist</a></li>
<li><a href="prefsampling/approval/resampling.html">prefsampling.approval.resampling</a></li>
Expand All @@ -280,6 +281,7 @@ <h1>All modules for which code is available</h1>
<li><a href="prefsampling/ordinal/singlecrossing.html">prefsampling.ordinal.singlecrossing</a></li>
<li><a href="prefsampling/ordinal/singlepeaked.html">prefsampling.ordinal.singlepeaked</a></li>
<li><a href="prefsampling/ordinal/urn.html">prefsampling.ordinal.urn</a></li>
<li><a href="prefsampling/tree/caterpillar.html">prefsampling.tree.caterpillar</a></li>
<li><a href="prefsampling/tree/schroeder.html">prefsampling.tree.schroeder</a></li>
</ul>

Expand Down
413 changes: 413 additions & 0 deletions docs/_modules/prefsampling/approval/mixture.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/_modules/prefsampling/approval/noise.html
Original file line number Diff line number Diff line change
Expand Up @@ -343,7 +343,7 @@ <h1>Source code for prefsampling.approval.noise</h1><div class="highlight"><pre>

<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>

<span class="n">k</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">p</span> <span class="o">*</span> <span class="n">num_candidates</span><span class="p">)</span>
<span class="n">k</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">floor</span><span class="p">(</span><span class="n">p</span> <span class="o">*</span> <span class="n">num_candidates</span><span class="p">)</span>

<span class="n">A</span> <span class="o">=</span> <span class="p">{</span><span class="n">i</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">k</span><span class="p">)}</span>
<span class="n">B</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="n">num_candidates</span><span class="p">))</span> <span class="o">-</span> <span class="n">A</span>
Expand Down
8 changes: 5 additions & 3 deletions docs/_modules/prefsampling/approval/resampling.html
Original file line number Diff line number Diff line change
Expand Up @@ -264,8 +264,10 @@ <h1></h1>
<h1>Source code for prefsampling.approval.resampling</h1><div class="highlight"><pre>
<span></span><span class="kn">import</span> <span class="nn">copy</span>

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


<span class="kn">from</span> <span class="nn">prefsampling.inputvalidators</span> <span class="kn">import</span> <span class="n">validate_num_voters_candidates</span>


Expand Down Expand Up @@ -316,7 +318,7 @@ <h1>Source code for prefsampling.approval.resampling</h1><div class="highlight">

<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>

<span class="n">k</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">p</span> <span class="o">*</span> <span class="n">num_candidates</span><span class="p">)</span>
<span class="n">k</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">floor</span><span class="p">(</span><span class="n">p</span> <span class="o">*</span> <span class="n">num_candidates</span><span class="p">)</span>
<span class="k">if</span> <span class="n">central_vote</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="n">central_vote</span> <span class="o">=</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>

Expand Down Expand Up @@ -386,7 +388,7 @@ <h1>Source code for prefsampling.approval.resampling</h1><div class="highlight">
<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>

<span class="n">num_groups</span> <span class="o">=</span> <span class="n">g</span>
<span class="n">k</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">p</span> <span class="o">*</span> <span class="n">num_candidates</span><span class="p">)</span>
<span class="n">k</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">floor</span><span class="p">(</span><span class="n">p</span> <span class="o">*</span> <span class="n">num_candidates</span><span class="p">)</span>

<span class="n">votes</span> <span class="o">=</span> <span class="p">[</span><span class="nb">set</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>

Expand Down Expand Up @@ -453,7 +455,7 @@ <h1>Source code for prefsampling.approval.resampling</h1><div class="highlight">

<span class="n">breaks</span> <span class="o">=</span> <span class="p">[</span><span class="nb">int</span><span class="p">(</span><span class="n">num_voters</span> <span class="o">/</span> <span class="n">num_legs</span><span class="p">)</span> <span class="o">*</span> <span class="n">i</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">num_legs</span><span class="p">)]</span>

<span class="n">k</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">p</span> <span class="o">*</span> <span class="n">num_candidates</span><span class="p">)</span>
<span class="n">k</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">floor</span><span class="p">(</span><span class="n">p</span> <span class="o">*</span> <span class="n">num_candidates</span><span class="p">)</span>
<span class="n">central_vote</span> <span class="o">=</span> <span class="p">{</span><span class="n">i</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">k</span><span class="p">)}</span>
<span class="n">ccc</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="n">central_vote</span><span class="p">)</span>

Expand Down
6 changes: 3 additions & 3 deletions docs/_modules/prefsampling/ordinal/singlecrossing.html
Original file line number Diff line number Diff line change
Expand Up @@ -349,9 +349,9 @@ <h1>Source code for prefsampling.ordinal.singlecrossing</h1><div class="highligh
<span class="n">votes</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="p">:]</span> <span class="o">=</span> <span class="n">domain</span><span class="p">[</span><span class="n">index</span><span class="p">]</span>
<span class="n">last_sampled_index</span> <span class="o">=</span> <span class="n">index</span>

<span class="c1"># vote_indices = np.sort(rng.choice(np.arange(domain_size), size=num_voters))</span>
<span class="c1"># for i, index in enumerate(vote_indices):</span>
<span class="c1"># votes[i, :] = domain[index]</span>
<span class="n">vote_indices</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sort</span><span class="p">(</span><span class="n">rng</span><span class="o">.</span><span class="n">choice</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="n">domain_size</span><span class="p">),</span> <span class="n">size</span><span class="o">=</span><span class="n">num_voters</span><span class="p">))</span>
<span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">index</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">vote_indices</span><span class="p">):</span>
<span class="n">votes</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="p">:]</span> <span class="o">=</span> <span class="n">domain</span><span class="p">[</span><span class="n">index</span><span class="p">]</span>
<span class="k">return</span> <span class="n">votes</span></div>


Expand Down
Loading

0 comments on commit b91d80f

Please sign in to comment.