问题:
我有一个图,其中每个顶点的布尔状态受给定连接顶点状态的逻辑关系的约束。边缘描述了反应,其中每个反应都有一组激活剂(促进它)、阻遏剂(抑制反应)和产物(可以在反应发生时打开)。对于某些顶点,有一个已知的布尔赋值,它们应该处于哪个状态。我的目标是找到图中所有布尔值的赋值,在遵守图的逻辑约束的同时最大化与已知赋值的一致性。
编辑:这是 ILP 目标和我建议使用的约束:
基本上,我的目标是找到图中所有物种的状态分配,该分配与从数据中已知的状态(M)的“真实”分配最接近。并非图中的所有物种都具有已知状态。
第一个约束规定只有当所有激活物质和抑制物质都不为真时才会发生反应。
第二个约束表示,如果产生物种的反应之一为真,或者如果它被指定为输入节点,则物种可以为真。
从我目前所读到的内容来看,这个问题是 B&B 方法的一个很好的候选者。但是,我无法估计 B&B 和蛮力搜索的时间复杂度。我的猜测是蛮力搜索将是 2^n,其中 n=顶点数,因为这是在最坏情况下由 B&B 树生成的节点总数。但似乎必须评估的约束数量也应该考虑到 B&B 和蛮力的复杂性,但我不确定如何。