This combinatorics challenge. Counting members of a group in a real world situation.. with a very strange data pool.

I need to count a mass of people divided into random groups, from each group member's report of who they have heard speaking in their group over time.

I have 100 people in a large meeting. Each person is assigned a unique ID number from Person #1 to Person# 100.

At some point I ask the 100 to divide up into groups. The 100 people can be in any number of groups. They become part of their group with a completely random selection process, so a group can have 2 to 100 people. If all are groups of 2 this could be 50 groups max.

Some people did not get into a group.

Different groups cannot hear each other.

So here is the challenge.

Each person in a group can be a speaker or a listener, but not both at the same time.

During the "Group Counting Period", Listeners must record the ID number of the person who is talking, thereby adding the person's ID number as member of their group

With using only Talking and Listening as data points, how can I know the numerical IDs of members in a group, from a database report from listeners on who they heard talking.

People who talk, do so at random, but they can only talk ONCE. After that, they must only listen (and report). Once someone starts talking, no one can interrupt them for the 10 second talking period.

At some point, in some groups, more that 1 talker may start at the exact same time and talk together, in which case the listeners may report that they have heard x+ talkers.

If the time to switch from talking to listening is 10 seconds. How long will this take for all group members to report who they know to be in their group.

Their reporting method is after the 10 second interval, each listener types their identified talkers ID into a database entry.

I am unsure if I allow the talkers to be chosen via lottery, math. or simply let this all happen randomly and asynchronously... where eventually , all groups have cycled through talking and listening and their confidence is high that know the ID numbers of ALL members in their group.

The other idea is I control this by a dynamic learning process, and select specific talkers based on latest database results to speed up the process.

At the end of the "group counting period", the database should then know the count of each group and the members ID.

People not in a group, are simply "groups of 1" in their own section.

Does anyone have any idea of how to calculate the "group counting period" (i.e. how long will this take) , and the rules to improve this time by controlling who the talkers should be at any 10 second interval.

This was actually a real problem for a convention, and we seeking ideas to track group metrics, with the only data points available (listeners reports of talkers).

Ideally we could come up with an algorithm to assign talkers based on real time listener data to complete the group tally as quickly as possible.


John Stamford CT

  • $\begingroup$ Maybe I should add this.. If you could take the time to help and hear this in more detail, we could pay for the right math solution. $\endgroup$ – John Tavernisi Jul 6 '16 at 4:02
  • $\begingroup$ Can you clarify what happens when "more than one talker may start at the exact same time and talk together"? What exactly are the Listeners reporting in that case? Both ID numbers or a null data point? $\endgroup$ – pseudoeuclidean Jul 6 '16 at 5:27
  • $\begingroup$ After reading this over and over, I am almost certain that we need to mathematically define the process by which the groups are formed. Once we do that, we can construct a probability density curve representing the probability that a random group has $n$ members in it. The average number of members in each group will ultimately lead us to the answer of how long it will take the average group to finish recording its members. $\endgroup$ – pseudoeuclidean Jul 6 '16 at 5:43
  • $\begingroup$ The upper bound of the time it will take the groups to finish recording its members is obviously 1000 seconds, but that is only true when we have 100 groups of 1 (a highly unlikely case)... Come to think of it, in a group of 1, there will be no Listeners to report the ID of the Talker, so participants in a group of 1 can only be identified by deductive reasoning. $\endgroup$ – pseudoeuclidean Jul 6 '16 at 5:47
  • $\begingroup$ So for question 1> If two talkers decide to speak without a queue from a prompter (administrator) then they both may start speaking at the same time. This takes me to the idea that we should CHOOSE who talks.. and start out with a list of talkers.. and after the first 10 seconds, and the report from the listeners, choose another group of talkers. THAT would work because we could use the reported list to make sure that we do not allow two talker within group. So the trick would be who talking BEFORE we have a first data sample. $\endgroup$ – John Tavernisi Jul 6 '16 at 7:10

There seem to be two different requirements, although this might just be incomplete understanding of the task.

A central database receiving reports from identified listeners reporting on the speakers establishes the groups immediately. Everyone listening to the same speaker(s) is in the group.

However, if listeners do not report speaker IDs when there are multiple simultaneous speakers, a more extended approach will be needed (and may not be infallible). The following round of speaking will bring in reports from all the previous speakers, so it will be clear who the speakers were in the first round, and (as importantly) how many there were. This may allow a group decision if (say) a lot of people listened to three speakers, but the count of speakers indicates that those must all have been in the same group.

For each listener to know the ID of everyone else in their group is more difficult, absent any information sharing between listeners (eg. through central database above), until everyone in their group has spoken - and if ID is not recorded for multiple speakers, any listener to multiple speakers will never know those IDs.

Question: is it possible for everyone in a group to speak at once, and therefore never to hear any listener reports at all from those people? This would obviously be indistinguishable from the case where those people were not included in any group.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.