Hacker News new | ask | show | jobs
by joeframbach 3201 days ago
Here's my idea to throw into the ring:

You have a graph of 30 nodes. When a user votes for talks A,B,C,D, you add edges for all those 6 pairs with weight 1, or increment the weight if that edge already exists.

Find the longest path. This is your track in Room 1. Remove those nodes from the graph. Find the longest path. This is your track in Room 2. Remove those nodes from the graph.

Repeat two more times.

The problem you want to avoid is: although talks A and B are popular, they don't share the same audience members. You want to identify cohorts, or cliques, or whatever you want to call it, and keep them in the same room. Call it a "Track" and give it a name.

1 comments

This. I worked with a company that used this method to generate timetables for schools with way more variables and constraints. They often found working plans when other solutions did not.

Maybe a little overengineered for your problem though