topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • Monday October 14, 2024, 11:53 am
  • Proudly celebrating 15+ years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Author Topic: About the Prize Optimizer Used in Our Drawings  (Read 25750 times)

mouser

  • First Author
  • Administrator
  • Joined in 2005
  • *****
  • Posts: 40,913
    • View Profile
    • Mouser's Software Zone on DonationCoder.com
    • Read more about this member.
    • Donate to Member
About the Prize Optimizer Used in Our Drawings
« on: December 01, 2005, 09:09 PM »
To give you an idea how serious we took our responsibility to try to do things differently here, and attempt to figure out the fairest way to parcel out the prizes this month, I thought that it might be useful to tell you a little bit about how prizes were assigned.

Rather than just give out prizes completely at random, we asked everyone who entered the drawing to submit a form rating the programs based on how badly they wanted to win each.

A custom program was then written to parse these submissions and search for the best way to assign prizes.  What follows is a brief description of that program.
-mouser



Overview

This program is used to try to find a reasonable way to divide up a number of prizes among a number of users.
It used a simple optimization procedure which iterates through millions of simulated possible assignments of gifts in search of the best pairings.

Users submit a form indicating their preference for each prize; these forms are submitted by a php script over email.

The program parses these email messages and extracts user ratings for each program, as well as user comments and email addresses.

A prize file is parsed which described how many of each prize is available.

It also reads an option file of user weights, which allows us to decrease the weight for users who have won previous prizes, and increase the weights of users who have contributed greatly to the community but have not yet won anything.

Optimization proceeds interactively; at any time it can be paused and the current configuration as well as user preferences, weights, and comments can be evaluated manually.

The program outputs both a list of who has won each prize, and a set of emails, one to each person who has one, informing them of the prize they have won (or that they have not won anything).  These can be imported into a mail program (like thebat!) and sent out en masse.

More on the Optimization Procedure

The optimization procedure is governed by a scoring function which can assign a score to each possible assignment of prizes.  The cost is based on the sum (weighted) "happiness" of each user.  Happiness is a function of the relative rating of the prize the user currently has compared to other prizes they have rated.

The program begins by assigns prizes randomly and then proceeds in iteration loops where two users are picked and their prizes are probabilistically exchanged based on the score differential and some noise.

The noise is decreases over time throughout a cycle and then resets; in this way the optimization process is able to explore some regions of the search space that involve making some non-beneficial swaps before a better assignment is found (i.e. this helps is escape situations where there is no single swap that improves the score, but there is a 3-way swap that does).

At the end of each annealing cycle the best scoring assignment is recalled and the process starts again.

« Last Edit: January 01, 2006, 08:19 AM by mouser »

Rover

  • Master of Smilies
  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 633
    • View Profile
    • Donate to Member
Re: About the Prize Optimizer Used in the November Drawing
« Reply #1 on: December 01, 2005, 10:51 PM »
Hey Wow, my name made it in a Mouser post, 3'rd from the top.

I think I'm cool now.
Insert Brilliant Sig line here

mouser

  • First Author
  • Administrator
  • Joined in 2005
  • *****
  • Posts: 40,913
    • View Profile
    • Mouser's Software Zone on DonationCoder.com
    • Read more about this member.
    • Donate to Member
Re: About the Prize Optimizer Used in the November Drawing
« Reply #2 on: December 02, 2005, 07:56 AM »
Addendum:

People who won got an email telling them their predicted "happiness."
Happiness is calculated as follows:  Your rating for the prize you won / Your rating for your highest rated prize

Carol Haynes

  • Waffles for England (patent pending)
  • Global Moderator
  • Joined in 2005
  • *****
  • Posts: 8,068
    • View Profile
    • Donate to Member
Re: About the Prize Optimizer Used in the November Drawing
« Reply #3 on: December 02, 2005, 10:58 AM »
What is the depression level for those who didn't win  :o

mouser

  • First Author
  • Administrator
  • Joined in 2005
  • *****
  • Posts: 40,913
    • View Profile
    • Mouser's Software Zone on DonationCoder.com
    • Read more about this member.
    • Donate to Member
Re: About the Prize Optimizer Used in the November Drawing
« Reply #4 on: December 02, 2005, 11:10 AM »
:(

you've won in the past and you'll win in the future - just think of it as building the anticipation to make the next win even more sweet :)

Carol Haynes

  • Waffles for England (patent pending)
  • Global Moderator
  • Joined in 2005
  • *****
  • Posts: 8,068
    • View Profile
    • Donate to Member
Re: About the Prize Optimizer Used in the November Drawing
« Reply #5 on: December 02, 2005, 02:08 PM »
LOL - 's OK I'm not begging - I just thought if you had a mathematical formula for happiness there may be a similar one for depression ;)

meeow

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 11
    • View Profile
    • meeows
    • Read more about this member.
    • Donate to Member
Re: About the Prize Optimizer Used in the November Drawing
« Reply #6 on: December 02, 2005, 02:57 PM »
I think you guys are just awesome.
The way you all write code is amazing to me.
btw...My happiness level is 100%  :up:
For a list of all the ways technology has failed to improve the quality of life, please press three
Alice Kahn

mouser

  • First Author
  • Administrator
  • Joined in 2005
  • *****
  • Posts: 40,913
    • View Profile
    • Mouser's Software Zone on DonationCoder.com
    • Read more about this member.
    • Donate to Member
Re: About the Prize Optimizer Used in Our Drawings
« Reply #7 on: February 28, 2006, 11:39 PM »
i have added a custom script to show me the posts of each entrant so that those people who have helped others on the forum get some bonus weight which makes it a little more likely that they will win. and when you have won recently you will be less likely to win again in the near future.

allen

  • Charter Member
  • Joined in 2006
  • ***
  • Posts: 1,206
    • View Profile
    • Donate to Member
Re: About the Prize Optimizer Used in Our Drawings
« Reply #8 on: March 01, 2006, 10:04 AM »
This is a brilliant system -- and I'm not just saying that because of my estimated 100% happiness last night.

It sure beats the old yanking paper out of a hat trick.

ljbirns

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 229
    • View Profile
    • Donate to Member
Re: About the Prize Optimizer Used in Our Drawings
« Reply #9 on: April 17, 2006, 02:55 PM »
You can't be happier than me. I just won and have been playing with the software all day.

Love the site  :Thmbsup:

Lew
Lew

Mark007

  • Charter Member
  • Joined in 2006
  • ***
  • default avatar
  • Posts: 11
    • View Profile
    • Donate to Member
Re: About the Prize Optimizer Used in Our Drawings
« Reply #10 on: May 15, 2006, 09:43 PM »
Any way we can get our hands on this prize-giver software? I have something I could use it for...

mouser

  • First Author
  • Administrator
  • Joined in 2005
  • *****
  • Posts: 40,913
    • View Profile
    • Mouser's Software Zone on DonationCoder.com
    • Read more about this member.
    • Donate to Member
Re: About the Prize Optimizer Used in Our Drawings
« Reply #11 on: May 15, 2006, 09:49 PM »
i've been thinking of making it public if there is some interest..
i'm actually just adding some more features to it, so remind me in early june..

tsaint

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 497
  • Hi from the a*** end of the earth
    • View Profile
    • Read more about this member.
    • Donate to Member
Re: About the Prize Optimizer Used in Our Drawings
« Reply #12 on: May 15, 2006, 10:07 PM »
just an idea, but could you build in a temperature or degree of cloud cover parameter. That way, people who live in, say, England, where its always rainy and miserable could have a higher chance of winning than in, say, Australia, which is always lovely. Its a sort of social justice/equity thing.

mouser

  • First Author
  • Administrator
  • Joined in 2005
  • *****
  • Posts: 40,913
    • View Profile
    • Mouser's Software Zone on DonationCoder.com
    • Read more about this member.
    • Donate to Member
Re: About the Prize Optimizer Used in Our Drawings
« Reply #13 on: May 16, 2006, 02:29 AM »
hahahaahahaahahaha
 ;D ;D ;D ;D ;D ;D ;D

Carol Haynes

  • Waffles for England (patent pending)
  • Global Moderator
  • Joined in 2005
  • *****
  • Posts: 8,068
    • View Profile
    • Donate to Member
Re: About the Prize Optimizer Used in Our Drawings
« Reply #14 on: May 16, 2006, 03:14 AM »
LOL - try telling that to the south of England where there seems to be about as much water as Alice Springs these days !! Just a shame it doesn't have the same population!

urlwolf

  • Charter Member
  • Joined in 2006
  • ***
  • Posts: 1,837
    • View Profile
    • Donate to Member
Re: About the Prize Optimizer Used in Our Drawings
« Reply #15 on: May 16, 2006, 06:49 AM »
Mouser, this is really cool.
You really go out of your way to try to be just.
This site should be an example on "how to do things" in many domains, not only coding and testing progs.

If world politics were 'Optimized' in a similar way, things would be much better.

If you are going to release this as a general purpose algorithm (or just for drawings, I dunno), try to 'market' it well so many people see the potential...

Thanks a lot