From d16cd58ee90ae33d02f4cfb250c2475a4ef6aedc Mon Sep 17 00:00:00 2001 From: jwarren-scottlogic Date: Fri, 18 Oct 2024 10:49:06 +0100 Subject: [PATCH] Algorithm-1: Editing table and adding mathjax --- ...uilding-an-assignment-algorithm-1.markdown | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/_posts/2024-08-16-building-an-assignment-algorithm-1.markdown b/_posts/2024-08-16-building-an-assignment-algorithm-1.markdown index d36eb44e3..5b800b429 100644 --- a/_posts/2024-08-16-building-an-assignment-algorithm-1.markdown +++ b/_posts/2024-08-16-building-an-assignment-algorithm-1.markdown @@ -25,9 +25,16 @@ author: jwarren } details[open] > summary::after { content: ' [−less]'; + font-weight: 400; } + + + + Last year, our team was working on an app that organised conferences. Our most interesting mission, in my opinion, was to design and build an algorithm that assigned talks to attendees according to their choices. This algorithm would save organisers the time, human error and brain power required to ensure all attendees are fairly allocated. After having built and run our algorithm, we achieved results that improved the fairness of previously time-costly hand-calculated assignments by 30% (according to our measure), only taking seconds of calculation! ## The brief @@ -127,26 +134,24 @@ Surplus difference is calculated by finding the difference between the room surp Oversubscribed - Number of group attendees
- max attendees + Number of group attendees
- (max attendees) Room surplus > 0 Undersubscribed - Number of group attendees
- min attendees
- number of attendees in slot + Number of group attendees
- (min attendees)
- (number of attendees in slot) Room surplus
< -(Number of attendees in the slot) Undersubscribed - Number of group attendees
- max attendees - -(Number of attendees in the slot)
< Room surplus < 0 + Number of group attendees
- (max attendees) + -(Number of attendees in the slot)
< (Room surplus)
< 0 To account for the attendee choice, surplus difference would be multiplied by a weight, defined as so: -
-current group weighting = 2 - 1 / (choice for their current group) -
-The weight gives more emphasis to the surplus difference if a user’s current group is their second choice, over whether a user is in their 1st choice. The formula given is if the user is on their first choice, the weight will be 1, if the user is on their 2nd choice, the weight will be 1.5 and if the user is on their 3rd choice, the weight will be 1.6666... The thought behind this was that though the “felt“ difference for the first few choices would be important to the user, the remaining choices would be marginally worse but have diminishing importance between them. +\[\text{current group weighting} = 2 - \frac{1}{choice for their current group}\] +The weight gives more emphasis to the surplus difference if a user’s current group is their second choice, over whether a user is in their 1st choice. The formula given is if the user is on their first choice, the weight will be 1, if the user is on their 2nd choice, the weight will be 1.5 and if the user is on their 3rd choice, the weight will be \( 1.\dot{6} \). The thought behind this was that though the “felt“ difference for the first few choices would be important to the user, the remaining choices would be marginally worse but have diminishing importance between them.