<div>Jan-</div> <div> </div> <div>I imagine something like this:</div> <div> </div> <div>If (condition A1 and condition A2 and...) OR (condition A3 and condition A4 and...) OR ()... Then elect A</div> <div>Else If (condition B1 and condition B2 and...) or (condition B3 and condition B4 and...) or ()... Then elect B</div> <div> </div> <div>And so forth. That's how ordinary voting methods work. For instance, Plurality:<BR><BR>If (A has more votes than B And A has more votes than C) Then Elect A</div> <div>Else If (B has more votes than A And B has more votes than C) Then Elect B</div> <div>Else If (C has more votes than A And C has more votes than B) Then Elect C.</div> <div> </div> <div>For IRV it's a little more complicated:</div> <div> </div> <div>If (A has a majority) OR (C is eliminated and A beats B pairwise) Then Elect A</div> <div> </div> <div>And so forth.</div> <div> </div> <div>For
both of those methods, and for any other election method that I can think of, 2 conditions hold:</div> <div> </div> <div>1) There is only a finite list of conditions to check, and the same list of conditions can be used for any number of ballots cast.</div> <div>2) Each condition involves a linear inequality. When I say "linear", I mean that it's a linear function of the number of ballots cast of each type. You don't have to, say, take the square of the number of ballots that list A>B>C and add to it the square of the number of ballots that list A>C>B or whatever. It's all linear.</div> <div> </div> <div>I assumed that the method meets these criteria in my work. They are perfectly reasonable criteria, and any public election proposal would meet these criteria. However, mathematically you could construct methods that don't meet these criteria. Since I'm doing a mathematical proof I need to exclude
methods that involve squares and cube roots and sines and all sorts of other nonlinear stuff, as well as methods that have an infinite number of conditions or whatever. I would like to be able to just invoke some criterion that's already established in the literature, rather than spend a few paragraphs of the paper digressing on the importance of a list of linear inequalities.</div> <div> </div> <div>Consider that I spent a few paragraphs explaining myself in my first post and you weren't entirely sure that you understood me, and now I've spent a few more paragraphs and I'm still not sure if my point is clear. I don't want to have to do that in a paper. I want to be able to say "Look, we have a simple list of rules, with 'simple list' defined in the same way that everybody else defines it (see this reference" and then move on.</div> <div><BR>Can anybody help me out?<BR><BR><BR>Alex<BR><BR><B><I>Jan Kok <jan.kok.5y@gmail.com></I></B>
wrote:</div> <BLOCKQUOTE class=replbq style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #1010ff 2px solid">I'm not sure I even understand your question! But it sounds like a<BR>very interesting one!<BR><BR>Are the "list of rules" actually procedures? For example, is "if<BR>[condition] then go to step 3" a valid rule?<BR><BR>Are you allowed to set and change variables, e.g. let i=1, let i=i+1 ?<BR><BR>Are you willing to restrict the number of candidates to some small<BR>number, like 4, in order to avoid the need for looping?<BR><BR>As you may know, and I vaguely remember, a Turing Machine (TM) is a<BR>very simple kind of computer. It has only a small handful of<BR>instructions. And yet a TM can do anything that our most powerful<BR>computers can do (if you don't mind waiting, or the TM runs very<BR>fast). So, if the "language" or the "instruction set" that you use to<BR>build your "lists of rules" is sufficient to emulate a TM, then you<BR>can't prevent anyone from
computing arbitrary mathematical functions<BR>like square, sine, etc.<BR><BR>So, it seems you must be careful to not make your language as capable<BR>as a Turing Machine! But then, how can it handle arbitrary numbers of<BR>candidates and ballots?<BR><BR>Perhaps you could provide a limited number of loops in a standard<BR>template, such as:<BR><BR>for c = 1 to number_of_candidates<BR>/* user-supplied instructions allowed here (to initialize candidate<BR>information) */<BR>end for<BR>for b = 1 to number_of_ballots<BR>/* user-supplied instructions allowed here (to initialize ballot<BR>information) */<BR>end for<BR>for c = 1 to number_of_candidates<BR>/* user-supplied instructions allowed here */<BR>for b = 1 to number_of_ballots<BR>/* user-supplied instructions allowed here */<BR>end for<BR>/* user-supplied instructions allowed here */<BR>end for<BR>/* user-supplied instructions allowed here */<BR><BR>Loops and backward jumps would not be allowed in the user-supplied
instructions.<BR><BR>My guess is that most voting methods can be described with the above<BR>program template, and some very simple operations such as add a<BR>constant, get the nth element of an array, and get the index in an<BR>array of the nth-largest element.<BR><BR>Am I on the right track?<BR><BR>Cheers,<BR>- Jan<BR></BLOCKQUOTE><BR><p> __________________________________________________<br>Do You Yahoo!?<br>Tired of spam? Yahoo! Mail has the best spam protection around <br>http://mail.yahoo.com