From f7de4060920c54fec305bd4d60716dba5d3b6c70 Mon Sep 17 00:00:00 2001 From: Tobias Eidelpes Date: Thu, 23 Apr 2020 11:14:07 +0200 Subject: [PATCH] Finish preliminary presentation --- .gitignore | 2 + talk/talk.tex | 251 ++++++++++++++++++++++++++++++++++++++++++---- talk/taxonomy.png | Bin 9964 -> 10013 bytes 3 files changed, 234 insertions(+), 19 deletions(-) diff --git a/.gitignore b/.gitignore index f95245f..ef0c9d0 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,8 @@ *.pdf *.synctex.gz +*.out +*.toc *.nav *.snm diff --git a/talk/talk.tex b/talk/talk.tex index bf9fa4f..135211a 100644 --- a/talk/talk.tex +++ b/talk/talk.tex @@ -58,8 +58,8 @@ \frametitle{Computational Aspects of PB} \begin{itemize} \item Discrete or continuous projects? + \item How do we model preferences mathematically? \item How do we adequately capture voter's preferences? - \item How do we model these preferences? \item How do we aggregate votes? \end{itemize} \end{frame} @@ -79,12 +79,6 @@ \item A cap for each project is defined \item Fractional funding \end{itemize} - \begin{block}{Bounded Divisible PB} - Each project has a cap $q_p = 1$ and $x_p = [0,1]$ denotes the - fraction of project $p\in P$ that is completed. The set of - feasible budget allocations under a budget $B = 1$ is therefore defined as - \[ \{ \vec{x} : \sum_{p\in P}{x_p}\leq 1 \}. \] - \end{block} \begin{exampleblock}{Example} A project that seeks to donate a bounded amount of money to a charity. @@ -97,33 +91,252 @@ \item Projects are divisible \item No caps for projects \item Generalizable to \emph{Portioning} - \item In practice still bounded by total budget \end{itemize} - \begin{block}{Unbounded Divisible PB} - + \begin{block}{Unbounded Divisible PB} $x_p = [0,1]$ denotes the + fraction of project $p\in P$ that is completed and $c_p(x_p) = + x_p$ is the cost function of project $p$. The set of feasible + budget allocations under a budget $B = 1$ is therefore defined + as \[ \{ \vec{x} : \sum_{p\in P}{x_p}\leq 1 \}. \] + \end{block} + \begin{exampleblock}{Example} + A project that seeks to donate an unbounded amount of money to a + charity. Every additional amount can be used effectively. + \end{exampleblock} +\end{frame} + +\begin{frame} + \frametitle{Bounded Discrete PB} + \begin{itemize} + \item Projects are either fully implemented or not at all + \item Degree of completion has a cap + \item Budget is defined as subset of projects which can be + implemented subject to budget constraints + \end{itemize} + \begin{exampleblock}{Example} + A project for building a new school. + \end{exampleblock} +\end{frame} + +\begin{frame} + \frametitle{Unbounded Discrete PB} + \begin{itemize} + \item Multiple degrees of completion + \item Substages of projects (milestones) can be defined + \item Still bounded by total available budget + \end{itemize} + \begin{exampleblock}{Example} + A project for building public toilets. The degree of completion + is the number of toilets that have already been built. + \end{exampleblock} +\end{frame} + +\section{Preference Modeling} + +\begin{frame} + \frametitle{Preference Modeling} + Model preferences as a cardinal utility function or an ordinal + preference relation: + \begin{block}{Cardinal utility function} + Each resident $i$ has a cardinal utility function $u_i : + A\rightarrow \mathbb{R}$, where $A$ is the set of feasible + allocations. + \end{block} + \begin{block}{Ordinal preference relation} + $\succ_i$ over $A$ + \end{block} + \begin{alertblock}{Problem} + This does not adequately reflect any structural properties of + residents' preferences. + \end{alertblock} +\end{frame} + +\begin{frame} + \frametitle{Preference Modeling} + \begin{itemize} + \item Impose a structural assumption on the utility function: + \[ u_i : 2^P\rightarrow\mathbb{R} \] + and $u_i$ satisfies subadditivity or superadditivity. + \item Use spatial models where preferences are situated in a + metric space and the distance between them models a + resident's utility for another allocation. + \item Take preferences over projects and use a rule to extend + them to allocations. + \end{itemize} +\end{frame} + +\begin{frame} + \frametitle{Cardinal extensions} + \begin{block}{Scalar separable utility function} + A resident $i$ derives utility $u_{i,p}\cdot f_p(x_p)$ from each + project. A resident's utility for an allocation $\vec{x}$ is + additive across projects: + \[ u_i(\vec{x}) = \sum_{p\in P}{u_{i,p}\cdot f_p(x_p)} \] + \end{block} + \begin{block}{Dichotomous preferences} + Assuming $x_p\in\{0,1\}$ and $u_{i,p}\in\{0,1\}$, residents + either approve or disapprove a project and care only about the + number of projects implemented. + \end{block} + \begin{block}{Max set extension} + Utility of an allocation is defined as the utility for a + resident's most favorite project: $u_i(S) = \mathsf{max}_{p\in + S}u_{i,p}$ for each $S\subseteq P$. + \end{block} +\end{frame} + +\begin{frame} + \frametitle{Ordinal extensions} + \begin{block}{Stochastic dominance extension} + For two allocations $\vec{x},\vec{y}\in A$ and + $E_i^1,\dots,E_i^{k_i}$ being the equivalence classes of the + relation $\succ_i$ in decreasing order of preferences: \[ + \vec{x}\succ_{i}^{SD}\vec{y} \text{ iff } + \sum_{j=1}^{l}{\sum_{p\in E_i^j}{x_p}}\geq\sum_{j=1}^{l}{\sum_{p\in +E_i^j}{y_p}}\quad\text{for all } l\in\{1,\dots,k_i\}\] + \end{block} + \begin{block}{Lexicographic extension $\succ_i^{lex}$} + A resident $i$ cares significantly more about project $p$ than + about $p'$ whenever $p\succ_i p'$. + \end{block} + \begin{block}{Scoring rules} + Convert ordinal to cardinal preferences by taking a ranking + $\succ_i$ over projects and determining the utility as $u_{i,p} + = s_k$ where $k$ is the rank in a scoring vector $\vec{s} = + (s_1,\dots,s_m)$ and $s_1\geq\dots\geq s_m\geq 0$. \end{block} \end{frame} \section{Preference Elicitation} -\section{Preference Modeling} +\begin{frame} + \frametitle{Preference elicitation} + \begin{itemize} + \item Also known as \emph{Ballot Design} + \item Communicating full preferences over sometimes + exponentially many allocations is difficult + \item Cognitive burden can lead to lower turnout rates + \end{itemize} +\end{frame} + +\begin{frame} + \frametitle{Preference elicitation} + \begin{block}{Range voting} + Voters rate projects based on their utility for each project. + \end{block} + \begin{block}{$k$-Approval} + Voters approve the $k$ projects they like the most. + \end{block} + \begin{block}{Approval voting} + Voters approve all projects that they like. + \end{block} + \begin{block}{Threshold approval voting} + Voters approve projects where their utility is above a specified + threshold. + \end{block} + \begin{block}{Knapsack voting} + Voters provide ideal allocation based on their preferences. + \end{block} +\end{frame} \section{Vote Aggregation} \begin{frame} - \frametitle{Algorithm Axioms} + \frametitle{Vote Aggregation} \begin{itemize} - \item Pareto Optimality - \item Monotonicity - \item Truthfulness - \item Fairness + \item Voters' preferences are aggregated to determine which + projects to fund + \item Main interest for research + \item Three different approaches: + \begin{itemize} + \item Welfare Maximization + \item Use of Axioms + \item Notions of Fairness + \end{itemize} \end{itemize} \end{frame} -\section{Algorithms} +\begin{frame} + \frametitle{Welfare Maximization} + \begin{block}{Utilitarian Welfare} + The utilitarian welfare of an allocation is the sum of utilities it gives to + residents: + \[ UW(\vec{x}) = + \sum_{i\in N}{u_i(\vec{x})}\text{ for }\vec{x}\in A \] + \end{block} + \begin{block}{Egalitarian Welfare} + The egalitarian welfare of an allocation is the minimum utility + it gives to any resident: + \[ EW(\vec{x}) = + \mathsf{min}_{i\in N}{u_i(\vec{x})}\text{ for + }\vec{x}\in A \] + \end{block} + \begin{block}{Nash Welfare} + The Nash welfare of an allocation is the product of utilities it gives to + residents: + \[ NW(\vec{x}) = + \prod_{i\in N}{u_i(\vec{x})}\text{ for }\vec{x}\in A \] + \end{block} +\end{frame} -\section{Comparison} +\begin{frame} + \frametitle{Use of Axioms} + \begin{block}{Exhaustiveness} + A feasible allocation $\vec{x}$ is called exhaustive if an + outcome $\vec{y}$ is not feasible whenever $y_p\geq x_p$ for all + projects $p$ and a strict inequality holds for at least one + project. + \end{block} + \begin{block}{Discount Monotonicity} + Project $p$'s cost function $c_p$ is revised to $c_p'(x_p)\leq + c_p(x_p)$ after a vote aggregation rule outputs allocation + $\vec{x}$. For the resulting allocation $\vec{y}$, $y_p\geq + x_p$ holds. + \end{block} + \begin{block}{Pareto Optimality} + An allocation $\vec{x}\in A$ Pareto dominates another allocation + $\vec{y}\in A$ if $u_i(\vec{x})\geq u_i(\vec{y})$ for all $i\in + N$ and $u_i(\vec{x}) > u_i(\vec{y})$ for some $i\in N$. An + allocation $\vec{z}\in A$ is optimal if no allocation dominates + it. + \end{block} +\end{frame} -\section{Practicality} +\begin{frame} + \frametitle{Notion of Fairness} + \begin{block}{The Core of PB} + An allocation $\vec{x} \in A$ is a core solution if there is no + subset $S$ of voters who, given a budget of $(|S|/n)B$, could + compute an allocation $\vec{y}\in A$ such that every voter in + $S$ receives strictly more utility in $\vec{y}$ than in + $\vec{x}$. + \end{block} + \begin{block}{Proportionality} + An allocation $\vec{x}$ should be proportionally reflected by + the division of voters. A majority of voters should have a + majority of the budget under their control but a minority should + have a minority of the budget under their control. + \end{block} +\end{frame} + +\section{Future Directions} + +\begin{frame} + \frametitle{Future Areas of Interest} + \begin{itemize} + \item Multi-dimensional constraints + \item Hybrid models + \item Complex resident preferences + \item Market-based approaches + \item The role of information + \item Research spanning the entire PB process + \end{itemize} +\end{frame} + +\begin{frame} + \centering + \Large + Thank you for your attention! \\ + Questions \& Answers +\end{frame} \end{document} diff --git a/talk/taxonomy.png b/talk/taxonomy.png index bb217cef33c8b59c0969578f82a4269580a5c8a3..bb9ee82c60d31be5c51d00cf0e6284c9664d1165 100644 GIT binary patch literal 10013 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