少块交叉的故事情节可视化计算
1. SAT 公式构建
在故事情节可视化中,为了实现少块交叉的效果,我们构建了一个 SAT 公式。首先,对于 ℓ∈{2, …, μ},有逻辑关系 qr ℓ⇒r j=1 qj ℓ−1 。我们假设第一个会议组分配给第一个排列,所以设置 q1 1 为真。
接着处理角色的出现和消失。设 Li 是包含角色 i 的会议组,排列 πr 应恰好包含分配的会议组中的角色,即存活的角色。我们添加如下子句:
- 若 Mℓ∈Li ,则 qr ℓ⇒¬or i 。
- 若 Mℓ∉Li ,则 qr ℓ⇒or i 。
这样能确保参与会议的角色存在,死去的角色被排除。
同时,我们允许排列不分配任何会议组,这在某些情况下是必要的,比如在连续会议之间允许多次块交叉。但为了避免利用“松散”排列来避免块交叉(即一个排列省略所有角色,之后再以任意顺序重新引入),对于 r = 2, …, λ ,若排列 πr 未分配会议组,则不允许在 πr 中移除或添加角色,即 μ ℓ=1 ¬qr ℓ⇒(or i = or−1 i )。
最后,故事情节可视化的约束是:会议中的角色在相应排列中必须形成连续组。若角色 i 和 k 是 Mℓ 中某次会议的一部分,而 j 不是,则添加子句 qr ℓ⇒(xr ij = xr kj )。
这个 SAT 公式构建完成后,若有满足的赋值,则存在故事情节块交叉最小化问题的解,并且可以轻松提取排列。该公式有 O(λ(κ2 +μ)) 个变量和 O(λμ(λ+κ3)) 个子句,其合取范式可在多项式时间内从故事情节构建出来。
2. 实验评估
我们将上述方法称为 Sat
超级会员免费看
订阅专栏 解锁全文
2354

被折叠的 条评论
为什么被折叠?



