Overall, though, I agree with Jordan's point.  You don't really need any
sophisticated constraint solving to solve the problem as you've described
it -- the greedy approach works fine in this context.  Simply sort all the
applicants in descending order by score divided by amount of money
requested, and dole the money out in that order.


On Wed, Mar 5, 2014 at 3:54 PM, Mark Engelberg <mark.engelb...@gmail.com>wrote:

> The potential problem with modeling it as a knapsack problem is that it
> assumes that grant-giving is an all-or-nothing affair.
>
> Another reasonable way to model it is to assume that if I'm given, say $80
> out of $100 requested, then I have an 80% chance of going.  With such a
> model, let's say I have a score of 5 and a grant request of $100.  Then, if
> I'm granted $100, I contribute 5 points of goodness to the overall value
> I'm optimizing.  So $1 allocated to me contributes 0.05 points of expected
> goodness to the overall value.
>
> Here's a gist, illustrating how to do this in Loco:
> https://gist.github.com/Engelberg/9379157
>
> --Mark
>
>
>
>
> On Wed, Mar 5, 2014 at 3:22 PM, Jordan Berg <jordannealb...@gmail.com>wrote:
>
>> Sounds like you might be able to model it as a knapsack problem with
>> budgets as weights and scores as values.
>>
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to