I'm helping organizing a one-day conference which will host 6 events and a few hundred people, and wouldn't mind some help myself. There are four locations we've staked out with varying capacities, and three time slots of equal length. Each event will be allotted two time slots, and four events will run concurrently during any given time slot at the different locations. Any given event can switch locations between their allotted time slots.
All of the people who will attend have ordered their four favorite events beforehand and they all must be assigned three events with disjoint time slots. (Since we don't know otherwise, the two events not rated by the participants are both rated 5th.) Ultimately, people need to be assigned to events and events need to be assigned places and times such that the average of the sum of the participants' ratings of their assigned events is minimized.
Attempts at a solution
I initially thought the assignment of times to events could be arbitrary so long as the timetable looked like this (each event is a represented by a color):

which ensures there are no time conflicts. However I realized that if many people were assigned two events with the same set of time slots (e.g. red and green events), they would be forced to attend the third at the remaining time slot (e.g. orange event must be at t3). If there was a sufficiently popular triplet of event choices where two shared the same set of time slots, the third might have a capacity problem during the remaining time slot.
This being the case, my current approach has been reduced to brute force: assigning participants to their first three choices, testing out all combinations of time and place assignments for each event, and continually adjusting participants' and events' assignments as necessary until the program stumbles upon a viable solution. Aside from being terribly inefficient and susceptible to infinite loops, I doubt it'll produce the optimal solution. I must profess that I know little about formal optimization theory, so any help is greatly appreciated!