2017-04-12 1 views
-4

M 명의 학생을 N 개의 팀으로 나누고 싶습니다. 어렵지는 않지만 몇 가지 제약 사항이 있습니다.학생을 N 개의 그룹으로 나누는 알고리즘

1.constraint : (A, B) 한 쌍의 학생들이 한 그룹으로 모여 있어야합니다. 그것은 studentA가 studentB와 같은 그룹에 있기를 원한다는 것을 의미합니다.

2.constraints : (A, B) 한 쌍의 학생 (studentA와 studentB)이 하나의 그룹에 있어서는 안됩니다.

나는 M 명의 학생이 있고이 제약 조건에 따라 N 개의 그룹을 만들고 싶습니다. 그들을 나눌 수없는 경우, 최소 제약 조건 위반으로 최상의 솔루션을 찾으십시오.

알고리즘으로 어떻게 해결할 수 있습니까?

+5

- 불과 3 그룹으로 학생들을 배치하는 경우에도

불행하게도,이 문제는 NP-어려운 것을 증명한다 (이 문제는 NP-complete 당신이 그래프의 3 색을 찾기 위해 사용할 수 있기 때문에) * 너의 ** 숙제가 아니라 우리의 숙제. –

답변

0

graph colouring problem으로 생각하면 도움이 될 것입니다. 이 링크에는 다양한 제안 알고리즘이 포함되어 있습니다.

정점은 학생을 나타내며 색상은 다른 그룹을 나타냅니다.

정점 사이의 모서리는 학생들이 다른 그룹에 있기를 원한다는 것을 나타냅니다. 학생들이 같은 그룹에 속하기를 원하면 정점을 병합하기 만하면됩니다. * 그건

관련 문제