Desafio: maximizar afinidades

Numa escola, antes da definição das turmas, cada aluno preenche um formulário informando com quais colegas tem afinidade, resultando na tabela abaixo (onde 1 indica afinidade).

Matriz de afinidades (é simétrica, se um aluno tem afinidade com outro, o inverso também é verdadeiro):

Aluno 1Aluno 2Aluno 3Aluno 4Aluno 5Aluno 6Aluno 7Aluno 8Aluno 9Aluno 10Aluno 11Aluno 12Aluno 13Aluno 14Aluno 15
Aluno 110111100101101
Aluno 210010001010000
Aluno 300000101001001
Aluno 410010000010011
Aluno 511010010011101
Aluno 610000100001000
Aluno 710100111010100
Aluno 800001011100111
Aluno 901100011010001
Aluno 1010000001011101
Aluno 1101011010111100
Aluno 1210101100011000
Aluno 1310001011011011
Aluno 1400010001000010
Aluno 1510111001110010

A escola deve dividir os 15 alunos em 3 turmas de 5 alunos cada.Dois alunos com afinidade gostam de estar na mesma turma, e dois alunos sem afinidade são indiferentes.


O score de afinidade total é calculado assim: para cada turma, cada par de alunos com afinidade acrescenta 1 ao score.

Exemplo. Se uma turma tem os alunos 1, 2 e 3, o score de afinidade para esta turma será 1:

– Aluno 1 afim com Aluno 2:        1

– Aluno 1 não afim com Aluno 3: 0
– Aluno 2 não afim com Aluno 3: 0

Qual a melhor forma de alocar os alunos, de modo a maximizar a afinidade total?

Turma 1Turma 2Turma 3
Aluno 1
Aluno 2
Aluno 3
Aluno 4
Aluno 5
Aluno 6
Aluno 7
Aluno 8
Aluno 9
Aluno 10
Aluno 11
Aluno 12
Aluno 13
Aluno 14
Aluno 15

Posto respostas até segunda da semana que vem.

Veja também:

Um comentário sobre “Desafio: maximizar afinidades

Deixe um comentário

Faça o login usando um destes métodos para comentar:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s