Python チュートリアル6 では、不等式を専用の関数を使って制約します。
5個の月曜日のうち、1日だけ公休ではない月曜日がある、=4日だけ公休の月曜日がある、という仕様を実現します。
import sc3
import itertools
for person in 全スタッフ:
vlist=[]
s='言語公休回数'+' '+staffdef[person]+'\n'
for day in 月:
v=sc3.GetShiftVar(person,day,'公休')
vlist.append(v)
sc3.AddHard(sc3.SeqLE(4,4,vlist),s)
Python チュートリアル5 と同じ仕様を実現しています。
sc3.SeqLE(min,max,List)
不等式の書式は、上の通りです。Listは、シフトVariable、または、他のAnd/Or,Not等の演算結果によるVariableのListである必要があります。