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