Instant Runoff Voting (IRV) is a fascinating way to run an election. The basic idea is that voters rank the candidates and the votes for the least popular candidate are automatically moved to the remaining candidates until one is selected winner.


Ready for the challenge? Code up a solution in your favorite language by midnight Sunday, February 14th, Eastern Standard Time. [ed. looks like we have a deadline error, so hold on to your hats, let us remedy this] Submit it to contest at codetown dot us. Also, post the link or code on this Discussion so the group can see it. We're allowing a little more time for this contest, so the results will be judged by...you! A poll will be posted in Contest Town so you can vote for your favorite app. Maybe we can use IRV to decide?

The winner will receive ... bear with us, as we're waiting to hear back from our sponsor, but this contest is going up now to give you the maximum possible amount of time to code. Good luck!

Views: 915

Replies to This Discussion

features? well, ok. as of the (I swear) final revision (attached here; will also be on my ite space whenever I can access the server): instantrunoff.rar

--it reads ballots in from a file or from command line input. (file format is limited to txt, though.)
--you can vote for as many or as few people on a ballot as you care to. to put it another way, max. votes/ballot is up to you, not me, but you don't have to vote for the maximum.
--no vote is ignored. if your ballot reads MickeyMouse GoofyDog DonaldDuck it'll take that as readily as John Bill Jeff. depending on your point of view, this may not be a feature, but I think write-ins are as American as baseball and apple pie. (Goofy is supposed to be a dog, right?)
--it's verbose. for each round, you see who got the most votes, who was eliminated, and who's left in the runoff.
--it's 93 lines, including liberal commenting.
--it does what it's supposed to.

Michael Levin said:
Update on contest winning entry: Michael, Kevin and Eric, we have not gotten a sponsor for Contest 2 yet, though since we haven't chosen a winner yet, the door is still open. Here's the plan. If we don't get a sponsor by the next GatorJUG meeting, I will choose a prize for the winning entry. I'll continue to search for a sponsor. And, stay tuned for Contest #3! Since all the entries are from GatorJUG members, we'll discuss the conclusion of this contest at the next GatorJUG meeting in March. Sound fair? Let me ask of you that you post the features each of your entries implements here as a comment.
hm. attachment didn't work.
try this.

Michael Newman said:
features? well, ok. as of the (I swear) final revision (attached here; will also be on my ite space whenever I can access the server): instantrunoff.rar

--it reads ballots in from a file or from command line input. (file format is limited to txt, though.)
--you can vote for as many or as few people on a ballot as you care to. to put it another way, max. votes/ballot is up to you, not me, but you don't have to vote for the maximum.
--no vote is ignored. if your ballot reads MickeyMouse GoofyDog DonaldDuck it'll take that as readily as John Bill Jeff. depending on your point of view, this may not be a feature, but I think write-ins are as American as baseball and apple pie. (Goofy is supposed to be a dog, right?)
--it's verbose. for each round, you see who got the most votes, who was eliminated, and who's left in the runoff.
--it's 93 lines, including liberal commenting.
--it does what it's supposed to.

Michael Levin said:
Update on contest winning entry: Michael, Kevin and Eric, we have not gotten a sponsor for Contest 2 yet, though since we haven't chosen a winner yet, the door is still open. Here's the plan. If we don't get a sponsor by the next GatorJUG meeting, I will choose a prize for the winning entry. I'll continue to search for a sponsor. And, stay tuned for Contest #3! Since all the entries are from GatorJUG members, we'll discuss the conclusion of this contest at the next GatorJUG meeting in March. Sound fair? Let me ask of you that you post the features each of your entries implements here as a comment.
I created an instant-runoff Clojure library, which would be useful for someone who is creating an election application (commandline/web/etc) in Java or any other JVM language. It is only 32 source lines of code, not including the "def candidates" and "def votes" statements which were only used for testing. The winner function takes a list of ballots and a set of candidates as input and returns the winner - a simple and orthogonal API.

http://github.com/ericlavigne/instant-runoff/blob/master/src/electi...

The code was written and thoroughly tested in front of a live audience. Unfortunately those tests were in a Clojure prompt and were lost when my laptop batteries died. I have started rebuilding the test suite, as shown in the following file.

http://github.com/ericlavigne/instant-runoff/blob/master/test/elect...
Since I was out of town for the March meeting, let's get together at the April meeting (at the Civic Media Center) to determine a winner.

Michael Newman said:
features? well, ok. as of the (I swear) final revision (attached here; will also be on my ite space whenever I can access the server): instantrunoff.rar

--it reads ballots in from a file or from command line input. (file format is limited to txt, though.)
--you can vote for as many or as few people on a ballot as you care to. to put it another way, max. votes/ballot is up to you, not me, but you don't have to vote for the maximum.
--no vote is ignored. if your ballot reads MickeyMouse GoofyDog DonaldDuck it'll take that as readily as John Bill Jeff. depending on your point of view, this may not be a feature, but I think write-ins are as American as baseball and apple pie. (Goofy is supposed to be a dog, right?)
--it's verbose. for each round, you see who got the most votes, who was eliminated, and who's left in the runoff.
--it's 93 lines, including liberal commenting.
--it does what it's supposed to.

Michael Levin said:
Update on contest winning entry: Michael, Kevin and Eric, we have not gotten a sponsor for Contest 2 yet, though since we haven't chosen a winner yet, the door is still open. Here's the plan. If we don't get a sponsor by the next GatorJUG meeting, I will choose a prize for the winning entry. I'll continue to search for a sponsor. And, stay tuned for Contest #3! Since all the entries are from GatorJUG members, we'll discuss the conclusion of this contest at the next GatorJUG meeting in March. Sound fair? Let me ask of you that you post the features each of your entries implements here as a comment.
My project just ran for real. Some of the students are fussing. It is interesting to read some of thier posts.

http://www.facebook.com/pages/Avant-Garde/277009322419?ref=ts

We had 4 parties.
two obviously lost and two where very, very close for winning. The party that had the most number one votes then lost because the party in second place had the most second and third place votes.

very interesting.


Michael Levin said:
Since I was out of town for the March meeting, let's get together at the April meeting (at the Civic Media Center) to determine a winner.

Michael Newman said:
features? well, ok. as of the (I swear) final revision (attached here; will also be on my ite space whenever I can access the server): instantrunoff.rar

--it reads ballots in from a file or from command line input. (file format is limited to txt, though.)
--you can vote for as many or as few people on a ballot as you care to. to put it another way, max. votes/ballot is up to you, not me, but you don't have to vote for the maximum.
--no vote is ignored. if your ballot reads MickeyMouse GoofyDog DonaldDuck it'll take that as readily as John Bill Jeff. depending on your point of view, this may not be a feature, but I think write-ins are as American as baseball and apple pie. (Goofy is supposed to be a dog, right?)
--it's verbose. for each round, you see who got the most votes, who was eliminated, and who's left in the runoff.
--it's 93 lines, including liberal commenting.
--it does what it's supposed to.

Michael Levin said:
Update on contest winning entry: Michael, Kevin and Eric, we have not gotten a sponsor for Contest 2 yet, though since we haven't chosen a winner yet, the door is still open. Here's the plan. If we don't get a sponsor by the next GatorJUG meeting, I will choose a prize for the winning entry. I'll continue to search for a sponsor. And, stay tuned for Contest #3! Since all the entries are from GatorJUG members, we'll discuss the conclusion of this contest at the next GatorJUG meeting in March. Sound fair? Let me ask of you that you post the features each of your entries implements here as a comment.
Dan Lackey said:
My project just ran for real. Some of the students are fussing. It is interesting to read some of thier posts.

Congrats Dan!

Some people are upset about losing, and the new system is an easy scapegoat. Still, even in the losing party there are people saying to stop being so childish. Sounds like it went well.
I have had projects blow up in my face for having mistakes in them before. I have never had one blow up because it was done properly.
Pretty funny really.


Eric Lavigne said:
Dan Lackey said:
My project just ran for real. Some of the students are fussing. It is interesting to read some of thier posts.

Congrats Dan!

Some people are upset about losing, and the new system is an easy scapegoat. Still, even in the losing party there are people saying to stop being so childish. Sounds like it went well.

RSS

Happy 10th year, JCertif!

Notes

Welcome to Codetown!

Codetown is a social network. It's got blogs, forums, groups, personal pages and more! You might think of Codetown as a funky camper van with lots of compartments for your stuff and a great multimedia system, too! Best of all, Codetown has room for all of your friends.

When you create a profile for yourself you get a personal page automatically. That's where you can be creative and do your own thing. People who want to get to know you will click on your name or picture and…
Continue

Created by Michael Levin Dec 18, 2008 at 6:56pm. Last updated by Michael Levin May 4, 2018.

Looking for Jobs or Staff?

Check out the Codetown Jobs group.

 

Enjoy the site? Support Codetown with your donation.



InfoQ Reading List

QCon San Francisco 2024 Day 2: Shift-Left, GenAI, Engineering Productivity, Languages/Paradigms

The 18th annual QCon San Francisco conference was held at the Hyatt Regency San Francisco in San Francisco, California. This five-day event, organized by C4Media, consists of three days of presentations and two days of workshops. Day Two, scheduled on November 19th, 2024, included a keynote address by Lizzie Matusov and presentations from four conference tracks.

By Michael Redlich

Rise of Python, Generative AI, and Global Developer Communities: Insights from GitHub Octoverse 2024

Recently, the GitHub Octoverse 2024 report revealed that Python has surpassed JavaScript as the most popular language on GitHub, primarily driven by its dominance in fields like data science, machine learning, and scientific computing. Generative AI continued its significant prominence in software development, with a substantial increase in contributions to generative AI projects on GitHub.

By Aditya Kulkarni

QCon San Francisco 2024 Day 1: Architectures, Rust, AI/ML for Engineers, Sociotech Resilience

The 18th annual QCon San Francisco conference was held at the Hyatt Regency San Francisco in San Francisco, California. This five-day event, organized by C4Media, consists of three days of presentations and two days of workshops. Day One, scheduled on November 18th, 2024, included a keynote address by Khawaja Shams and presentations from four conference tracks.

By Michael Redlich

LLaVA-CoT Shows How to Achieve Structured, Autonomous Reasoning in Vision Language Models

Chinese researchers fine-tuned Llama-3.2-11B to improve its ability to solve multimodal reasoning problems by going beyond the direct-response or chain-of-thought (coT) approaches to reason step by step in a structured way. Named LLava-CoT, the new model outperforms its base model and proves better than larger models, including Gemini-1.5-pro, GPT-4o-mini, and Llama-3.2-90B-Vision-Instruct.

By Sergio De Simone

Microsoft Announces General Availability of Fabric API for GraphQL

Microsoft has launched Fabric API for GraphQL, moving the data access layer from public preview to general availability (GA). This release introduces several enhancements, including support for Azure SQL and Fabric SQL databases, saved credential authentication, detailed monitoring tools, and integration with CI/CD workflows.

By Robert Krzaczyński

© 2024   Created by Michael Levin.   Powered by

Badges  |  Report an Issue  |  Terms of Service