外来看護師というグループがあり外来専門で外来を行っています。このグループ内で休みがあったとき、休み人数分病棟看護師から持ってくるという制約になります。
つまり外来看護師数がNのとき、
Σ日勤@外来看護師+Σ外来@外来担当の病棟看護師==N
という制約にすればよいことになります。
外来看護師数が増減してもPythonで書けば、動的に処理が可能でメンテナンスフリー
に出来ます。
def 外来支援Day(day):#外来看護師が1人休みのときに病棟から1人外来として支援する nnurses_out=len(外来看護師) vlist=[] for person in 外来看護師: v=sc3.GetShiftVar(person,day,'日勤') vlist.append(v) for person in 外来担当: v=sc3.GetShiftVar(person,day,'外来') vlist.append(v) s='外来看護師が1人休みのときに病棟から1人外来として支援する '+daydef[day] sc3.AddSoft(sc3.SeqError(nnurses_out,nnurses_out,3,vlist),s,5) for person in 全スタッフ:#外来担当外の外来禁止 if person not in 外来担当: s='外来禁止'+staffdef[person]+' '+daydef[day] v=sc3.GetShiftVar(person,day,'外来') sc3.AddHard(~v,s)# def 外来支援(): for day in 全日: if day in 祝ではない月火水金今月: 外来支援Day(day) else: for person in 全スタッフ: v=sc3.GetShiftVar(person,day,'外来') s='外来禁止'+staffdef[person]+' '+daydef[day] sc3.AddHard(~v,s)#外来担当外
0 件のコメント:
コメントを投稿