Tan sólo unos simples premisas:
- 40 personas, 10 personas por mesa
- En algún punto en el que desea cada uno para cambiar las tablas, y tienen un par de personas como sea posible sentarse en una mesa con alguien que se sentó con la primera vez.
Esta no es una tarea problema--este es un problema que me estoy encontrando mientras intentaba organizar un evento de networking. Hay dos preguntas principales:
1) Es posible idear una reasignación esquema estaban todo el mundo está sentado con un totalmente nuevo de la multitud?
2) Suponiendo que la respuesta a (1) es no, lo que es razonable de un algoritmo para la reasignación de que hará que tantas personas como sea posible, están sentados con nuevas personas en su nueva tabla.
La razón por la que creo que la respuesta a (1) es "No", es porque hice 100k simulaciones de azar de mesa de reasignación para cada persona (el código de abajo), desde que descubrí que había cero tiempos donde nadie estaba sentado en una mesa con alguien que se sentó en la primera ronda. En promedio, el máximo "redundante" de la tabla (es decir, el que tenía la mayoría de las personas que fueron previamente se sentaron juntos), tuvo alrededor de 4.65 personas que se sentaron el uno con el otro la primera vez, y había cerca de un 87% de probabilidad de que el número de 4 o 5. El min parecía ser 3.
Más allá de lo que realmente no puedo envolver mi cabeza alrededor de este. Si hay un nombre para este tipo de problemas, por favor hágamelo saber, o, mejor aún, si usted tiene una buena respuesta, vamos a escuchar. Gracias!
M = rep(0,100000)
x <- rep(1:4, each=10)
for(k in 1:100000)
{
s <- sample( 1:40, 40 )
x2 <- x[s]
m1 <- max( summary(as.factor(x2[1:10])) )
m2 <- max( summary(as.factor(x2[11:20])) )
m3 <- max( summary(as.factor(x2[21:30])) )
m4 <- max( summary(as.factor(x2[31:40])) )
M[k] <- max( c(m1,m2,m3,m4) )
if( M[k] == 0 ) print(s)
}