Jerome H
未读,2018年4月18日 13:52:272018/4/18登录即可回复作者
登录即可转发
您无权在此群组中删除帖子
请登录以举报消息
要么此群组的电子邮件地址为匿名状态,要么您得查看成员电子邮件地址权限才能查看原始帖子
收件人 MiniSat
Hello,
I am working on a prototype timetabling application and got started with SAT only recently. The app works like this:
1/ translate the constraints (overlapping, who can do what) to a satisfaction problem in CNF. These set of clauses involves my free variables x(i).
2/ create new boolean variables that are derived from the satisfaction variables x(i), e.g. there is a variable indicating whether somebody is busy on a specific day. For example for day j:
d(j) <=> x(1) \/ ... \/ x(n)
There are other variables for the first/last busy time slot in a day.
The relation shown for d(j) is translated to CNF exactly like the math book says.
3/ Finally I derive my objective from the derived variables (the d(j)'s, first slot, last slot) and convert the whole thing to OPB in the most straightforward way (not x(i) becomes 1 - x(i)). I feed the OPB to minisat+ or SCIP. (On a toy dataset minisat+ finds the optimum first but SCIP demonstrates optimality first).
My question concerns step 2/. Expressing the d(j)'s with an equivalence relation is mathematically sound, but conceptually, I looks overkill. Still a simple one way implication looks too weak either.
I am uncomfortable with that. The SAT solver is not expected to freely play with the d(i)'s. In my mind, this is an output of the model.
Does someone think my model can be lightened, especially when it comes to those equivalence relations between my core sat variables and the derived variables?
Best regards,
Jerome.