> Can you help in making a better algorithm for HS course allocation?
Nice :-).
> Problem: Each student will give preference of the courses. The courses have
> a limit on number of students they take.
>
> Crude requirement: We need to minimize the sum of the preferences allocated.
> Better requirement: The variance of the allocation should be less.
>
> Can we modify the stable marriage problem to solve this?
>
> I am very sure that this problem is NP. Therefore we have to come up good
> heuristics to solve it.
Agreed. However, I'm starting to lose my fear/respect for NP problems.
I think we could use a good ILP solver that will probably give us good
results anyways.
Cheers,
--
Arun Tejasvi Chaganty
http://arun.chagantys.org/
I do know, for example, that the minor allotment is based on
minimising regrets (which is equal to minimising the sum of
preferences), but people werent happy.
Even the old mess regn was based that way, and people "claimed" it to
be unfair, and screwed up. Vimal wrote it himself, so I dont think the
implementation or the design would have been incorrect. Surprisingly,
after moving to this useless FCFS thingy (where I have to wake up at 5
in the morning), people are happy.
So, what is it we want? Let us answer that question first. :-)
--
Pranesh
In a discussion with Vijay Kartik, that I had just now, he rightly
pointed this out, and also cited someone (name with-held :-P) who got
his 11th choice instead of Economics, his 1st choice, so that 3 other
students could get Economics (which was their 4th choice).
This (I believe) was why Vimal, implemented the mess thing as a
stepwise allocation:
Try to assign first preferences to everyone. In case of failure,
randomly allot to as many people as possible. Then try to assign
second preferences to everyone. In case of failure, randomly allot ...
In otherwords, randomly shuffle (using the Knuth shuffle or some such
thing), the list of students, and for each person allocate the first
among his options that is still open.
Period.
No?
--
Pranesh
Late entry into this discussion.
On 14 November 2010 08:07, Pranesh Srinivasan <spra...@gmail.com> wrote:
>
> This (I believe) was why Vimal, implemented the mess thing as a
> stepwise allocation:
>
> Try to assign first preferences to everyone. In case of failure,
> randomly allot to as many people as possible. Then try to assign
> second preferences to everyone. In case of failure, randomly allot ...
No; that's not what Vivek and I proposed. We did propose minimise
max-regret after we thought about minimising sum of regrets. Attached
is the code; the flow code was taken from some online source. (Rename
to .gz...)
And with minimise max-regret, I don't think any guy can be badly
screwed, in the sense that his allotted choice won't be "far" from his
top choice; you aren't minimising the 99th percentile, you're
minimising max. I guess you can game the system using this. :P Maybe
someone can try and see adversarial cases and come up with something
robust*.
I think the interesting property of the min-max algo was that out of
all solutions that maximise the max-regret, the sum of regrets would
get minimsed..
I talked to GS also about it and they had some heuristics. I've
attached the code that the senior who implemented it had given me. If
you're enthu about understanding it, please go ahead. :P
Depending on the nature of the data, as Slinky suggested, an ILP
formulation might just be fast enough.
*No matter how robust, the guy who implements it can insert special cases. :P
--
Vimal
IIRC, That's what Ramanathan did. He also took into account previous
months' regrets as some sort of priority.
--
Vimal