변수의 특정 값에 대한 할당 수를 제한하는 방법이 있습니까?할당 값 제한 - Choco
나는 과정, 교사 및 타임 슬롯과 Choco [4.0.1]
를 사용하여 일정 문제를 쓰고 있어요. 같은 선생님이 여러 과목을 가르 칠 수 있으며 가르 칠 수있는 과목의 수를 정의해야합니다. 나는 교사가 B를 12 hours (12 timeslots)
일할 수있는 것처럼 timeslots의 수를 세고 생각했다. 그래서 나는 arithm()
같은 제약을 게시 할 수 있었다. 어떤 아이디어?
은 [업데이트] 여기
몇 가지 코드 : 교사 A는 가르 칠 수 있도록 교사와 N
타임 슬롯이 있습니다
IntVar [] teachers;
IntVar [][] teacherTimeslots;
IntVar [] courses;
각 코스에 대한 {1,2,3,4} 교사 B {3,4,5} 그리고 각 과정은 주당 4 시간을 가지고 있습니다. 이제 A가 12 시간 동안 일할 수 있다고 상상해보십시오. B가 나머지 과목을 가르치는 동안 A 만 12 시간 (3 과목)을 가르치도록 제한하고 싶습니다; 나는 선생님을 얼마나 많은 과정 말할 수 없다
하지만 얼마나 많은 그/그녀가 가르 칠 수있는, 그래서 그/그녀가 특정 과목을 가르 칠 수 있는지 확인하기 위해
Tuples tuples = new Tuples(true);
tuples.add(1, 1);
...
tuples.add(2, 5);
model.table(teacher, course, tuples).post();
제약 조건을 사용하고 있습니다.
teacherTimeslots
은 모든 가능한 타임 슬롯으로 채워져 있으며 각 교사 타임 슬롯을 고유하게 유지하기 위해 model.allDifferent(teacherTimeslots[teacher]).post()
을 사용합니다.
내 코스는 너무
course[0] = 1;
...
course[4] = 5;
나는 내 모델을 짓고 있어요 때 선택에는 슬롯이없는 교사에 대한 모든 슬롯을 받고 있지만, 생각 고정, 그래서 모든 가능성을 얻을 '.
다른 코드를 우리와 공유 할 수 있습니까? 그렇지 않다면 질문이 너무 광범위 할 수 있으므로 먼저 시도해야합니다. –
각 시간대에 코스를 지정하고 이전에 할당 된 것이 있다면 그에 따라 행동합니다. 즉, 타임 슬롯과 교사 당 하나의 코스 만 허용하고 갈 수 있어야합니다. – Thomas
@TimBiegeleisen 질문에 대한 몇 가지 코드를 적어 두었습니까? –