2012-09-01 3 views
0

내가 필요한 접근 방법의 종류 모르겠지만 나에게 문제를 설명하자 : 어떤 주어진 달에 일을 예정브 루트 포스 또는 알고리즘

  1. 근로자의 임의의 수 (2 개 이상)을 감안할를 (주말 포함).
  2. 할당 된 날짜에 한 명의 작업자 만 작업 할 수 있습니다. 2a. 이 근로자는 전날이나 이후에 일하지 못할 수도 있습니다.
  3. 근로자는 또한 주말 근무하고 가능하면 근로자 수에 동등하게 배분됩니다. 3a. 토요일과 일요일의 무게는 동일합니다.
  4. 취할 수있는 휴가를 할당하십시오 4a. 연속 일에 대한 제한이 없습니다. 4b. # 2 및 # 3 규칙을 방해하는 휴가를 많이 걸리지 않을 수도 있습니다.

이러한 기준을 정렬하는 가장 쉬운 방법은 무엇입니까? 이 유형의 문제는 무엇입니까?

누군가가 올바른 방향으로 나를 가리켜 서 읽을 수 있고 그것에 대해 알 수 있습니다. 분명히 이것이 알고리즘으로 이미 해결 된 것이라면 올바른 종이 나 책을 가리켜 읽고 읽을 수있게하십시오.

설명 : 각 작업자가 일할 수있는 총 일수와 주말 수를 찾는 것이 아니라 그 달에 일한 일수를 [균등하게] 분배하는 방법을 찾고 있습니다.

예. 노동자 A B C; 요청 된 휴가 17 ~ 20

분명히 아래에 나열된 예 이외의 다른 순열이 있습니다.

 M T W Th F Sa Su 
     ==================== 
October 1 2 3 4 5 6 7 
2012 A B C A B C A 

     8 9 10 11 12 13 14 
     B C A B C A B 

     15 16 17 18 19 20 21 
     C A B C B C A 

     22 23 24 25 26 27 28 
     B A C A C B C 

     29 30 31 
     A B A 
+4

평일은 분리 된 집합이므로 동적 프로그래밍, 아마도 정수 프로그래밍처럼 보입니다. –

+0

@BenVoigt가 말했듯이, 정수 프로그래밍 (Operation-Research) 문제처럼 보입니다. –

+0

나는 내 질문을 업데이트했고 정수 프로그래밍에 대해 읽게 될 것이다. –

답변

0

단순 알고리즘을 사용하십시오.

각 요일은 정확히 한 사람 씩 입력해야합니다. 매일 및 각 작업자는 3 일 간격 블록 중 하나 이상을 사용해야합니다. 아무도 휴가를 보내지 않아도됩니다. 근로자가 한 달에 가질 수있는 최대 주말 수는 1 + 층 (주말 교대/근로자) 이하 여야합니다.

+0

Simplex 방법에 대해 읽었지 만 제 대답이 올바르게 형성되었다고 생각하지 않습니다. 예제와 설명으로 내 질문을 업데이트했습니다. –