【问题标题】:breadth-first search algorithm for solving set of logic equations求解一组逻辑方程的广度优先搜索算法
【发布时间】:2011-05-14 19:45:09
【问题描述】:

我正在尝试为以下示例中的问题构思解决方案:

A != B
B != C
D != B
C != B
E != D
E != A

有多少变量是真的,有多少是假的?据我发现,我应该尝试使用广度优先搜索,但我的问题是从哪里开始以及图形将是一个有向的事实(我将xi 连接到存在相等关系的!xj )。有人能指出我正确的方向吗?

【问题讨论】:

标签: algorithm logic


【解决方案1】:

这是一个图形 2 着色问题。顶点:A, B, C, …(u, v) 在此无向图中存在当且仅当u != v

2-coloring 是广度优先搜索的应用之一。见:http://en.wikipedia.org/wiki/Breadth-first_search#Testing_bipartiteness

【讨论】:

    【解决方案2】:

    我认为您根本不需要在这里搜索。如果存在约束 xi = !xj,则将您的约束视为连接顶点 xi 和 xj 的图。取图中的一个连通分量(即,存在一条连接每对顶点的路径)。假设您的约束是一致的(即不要同时指定 xi = xj 和 xi = !xj),那么您可以选择组件中的任何顶点 xi 并立即计算出任何连接的顶点 xj 是否等于 xi 或 !xi。然后很容易计算出最大化或最小化真实变量数量所需的分配。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-31
      • 1970-01-01
      • 2021-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多