Results 1 to 5 of 5
  1. #1
    Join Date
    Jul 2005

    Thumbs down Unanswered: conference management nightmare - 3d array perhaps??

    Hi there,
    I've been asked by a friend to do them a favour (pah!).
    they've got a simple Access database holding information about people attending a conference.
    This conference has 3 "breakout" sessions a day, B1, B2 and B3
    at each of these breakout sessions there are 6 topics of discussion, T1-T6

    Each of the conference delegates can choose to attend up to 3 of the topics, so 1 at each breakout session.

    What I've got is a list of delegates and the topics they want to discuss.

    What I need to do is assign them to the appropriate breakout session/ topic combination so that
    - they're not listed for more than 1 topic each breakout session
    -the numbers attending each topic are pretty evenly distributed over the 3 breakout sessions.

    is there an easy way to do this, as I'm really struggling to see one!
    I was thinking that maybe a 3d array in VBA would do the trick, but I've not done much with arrays and wouldn't know how where to start or how to impose rules on it.
    i suspect there's going to have be some kind of iterative process involved, as there are so many variables.

    I'd appreciate your thoughts and comments ASAP.


  2. #2
    Join Date
    Jun 2007
    Maitland NSW,Australia


    What about a crosstab query?

    Have a table with the following fields.


    Sample Data
    Fred 1 T5
    Mary 2 T1
    Mary 2 T4

    Using a crosstab use delegate as the row,Breakout as a column heading then
    count the topics.

    I have attached a sample database. Hope this gives you some ideas etc.
    Attached Files Attached Files

  3. #3
    Join Date
    Jul 2005
    that's helpful, thankyou, but doesn't solve the entire problem.
    I don't think I explained awfully well in my previous post. At the time of registering for this event, the delegates only chose their topics, and weren't asked which breakout session they wanted to that topic in.
    So I've got a list of people and topics, but no breakout groups.
    What I've been asked to do is assign the people to one breakout group for each topic, so that they're fairly evenly distributed, and no-one is put in for 2 topics in 1 breakout group.

    The way I see it is that for each person with 3 topics, there are 6 posible ways they could attend them (a-f):
    B1 B2 B3
    a T1 T2 T3
    b T1 T3 T2
    c T2 T1 T3
    d T2 T3 T1
    e T3 T1 T2
    f T3 T2 T1

    I need to be able to work out which of a-f is the best arrangement for ech delegate, so that the total numbers of delegates in a particular topic in each breakout are approximately equal.

    This is where it goes over my head as I think there are too many variables!

  4. #4
    Join Date
    Dec 2002
    Préverenges, Switzerland
    i've been doing exactly this for many years.
    i typically have 10...15 topics, 6...8 sessions, 50...100 candidates.

    hint #1 - forget arrays: it get's extremely messy and is suprisingly slow. experiment with SQL.

    hint #2 - the only solution to this problem that i have found is brute-force try everything and keep the best result.
    so you need some key algorithms:
    - a 'shuffle' so each attempt starts from a different basis.
    - an 'early abort' if the current attempt becomes worse than the best-to-date
    - and, obviously, a decent algorithm to measure 'worse' and 'better'

    i have an array-based version from a few years ago that takes about an hour to execute for 12x7x50 (which i might be able to mail to you - depends who you work for and what you are willing to sign. let me know via PM)

    i curently use a SQL version which does the same job on 12x7x50 in three or four minutes (which i won't send you: it's much too good to give away).

    currently using SS 2008R2

  5. #5
    Join Date
    Jul 2005
    what i have done so far is this
    a) look at how many people have got a particular combination of the topics
    25 have asked for T1 T2 T3
    13 have asked for T2 T3 T4
    etc etc
    then, with each of these combinations, I have randomly assigned one sixth of each to groups a-f, each of a-f being the 6 different ways they could be assigned to the topics.
    When the code has run and everyone has fairly randomly been assigned to their breakouts/topics then a report displays the totals in each group. I've told my friend that if it looks rubbish, then run it again until it looks fairly decent, and for the time being he is satisfied with this solution. However, I am NOT, given that I have a background in physics and maths and am sure there must be a solution! (mind you, physics and maths have not really been a part of my working life for many years now, so I'm definitely a bit rusty in that department).

    I am intrigued to know your solution izy, so will pm you now...

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts