매일 두 사람이 수행해야하는 작업이 있으며, 사용할 수있는 팀이 있습니다.쌍으로 이루어져야하는 활동에 사람들을 스케줄링하는 알고리즘
아이디어는 가능한 모든 조합이 한 번 이상 할당되는 방식으로 두 명의 다른 사람을 해당 작업에 할당하는 것입니다.
또한 이상적으로 특정 인물은 이전 지정일과 최대한 멀리 할당되어야합니다.
예 :
감안할 때 팀 : 작업에 대한 일정이 될 수 A, B, C, D, E, F
:
Day 1 = A, D
Day 2 = B, E
Day 3 = C, F
Day 4 = A, E
Day 5 = B, F
Day 6 = C, D
Day 7 = A, F
Day 8 = B, D
Day 9 = C, E
Day 10 = E, D
Day 11 = B, E
Day 12 = C, A
...
주 같은 문자가 이전 시간과 일정한 거리를두고 지정됩니다. 예를 들어 A는 1, 4, 7, 12 일에 할당되고 D는 1, 6, 8, 10 일에 할당됩니다. 가능한 모든 조합이 있음에도 유의하십시오.
현재 저는 작은 팀 (6 명 - 8 명)의 경우 쌍을 "수동으로"결합하고 정렬 할 수 있지만 더 큰 팀의 경우 알고리즘을 제안하지 못했습니다.
나를 도울 수있는 알고리즘이 있습니까?
보너스 포인트 : 어떤 시점에서
는 사람은 "비활성"이 될 수있다, 그래서 그는 규칙에 따라 다른 사람으로 교체해야합니다.
대단히 감사합니다!
"주어진 팀"보다 [조합] (https://en.wikipedia.org/wiki/Combination)이 2 인 것처럼 보입니다. – luk32
예.하지만 시퀀스는 각 tem 멤버가 '가능한 한 드물게'사용되도록 정렬되어야합니다. 약간의 수수께끼입니다. – Codor
사실상 IMO는 아니지만 모든 스포츠 리그에서 실시합니다. – luk32