M 명의 학생을 N 개의 팀으로 나누고 싶습니다. 어렵지는 않지만 몇 가지 제약 사항이 있습니다.학생을 N 개의 그룹으로 나누는 알고리즘
1.constraint : (A, B) 한 쌍의 학생들이 한 그룹으로 모여 있어야합니다. 그것은 studentA가 studentB와 같은 그룹에 있기를 원한다는 것을 의미합니다.
2.constraints : (A, B) 한 쌍의 학생 (studentA와 studentB)이 하나의 그룹에 있어서는 안됩니다.
나는 M 명의 학생이 있고이 제약 조건에 따라 N 개의 그룹을 만들고 싶습니다. 그들을 나눌 수없는 경우, 최소 제약 조건 위반으로 최상의 솔루션을 찾으십시오.
알고리즘으로 어떻게 해결할 수 있습니까?
- 불과 3 그룹으로 학생들을 배치하는 경우에도
불행하게도,이 문제는 NP-어려운 것을 증명한다 (이 문제는 NP-complete 당신이 그래프의 3 색을 찾기 위해 사용할 수 있기 때문에) * 너의 ** 숙제가 아니라 우리의 숙제. –