程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在 Python 中创建和简化 bool 公式大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决在 Python 中创建和简化 bool 公式?

开发过程中遇到在 Python 中创建和简化 bool 公式的问题如何解决?下面主要结合日常开发的经验,给出你关于在 Python 中创建和简化 bool 公式的解决方法建议,希望对你解决在 Python 中创建和简化 bool 公式有所启发或帮助;

通过 Magu 方法(高等教育中的离散数学)寻找最大内部稳定图集存在问题。给定一个带有邻接矩阵的图(已经实现),那么您需要制作布尔公式,其中将有相邻顶点的否定的所有析取的连接。也就是说,例如,如果存在从 V1 到 V2 和从 V1 到 V3 的路径,那么公式将包括 (!V1 v !V2) & (!V1 v !V3)。然后这个表达式被转换成一个缩短的 DNF,然后你可以看到图中的哪些顶点在每个括号中丢失了——这些顶点只是形成了这些最大的内部稳定集。只是问题是如何制作这个初始布尔公式,然后您可以将这个公式简化为缩写的DNF?我假设您需要使用 sympy 库,但我找不到有关我的问题的任何具体信息...目前的代码

import numpy as np
from sympy import *
from sympy.logic.boolalg import And
from sympy.logic.boolalg import Or

print("number of nodes in graph:")
amount = int(input())
matrix = np.zeros((amount,amount))
i = 0
j = 0

while i < amount:
    while j < amount:
        print("insert matrix element",i,j,":")
        matrix[i,j] = int(input())
        j += 1
    j = 0
    i += 1
print(matriX)

解决方法

问题已解决

i = 0
j = 0
counter = 0
while i < amount:
    while j < amount:
        if matrix[i,j] == 1:
            x = symbols(str(i + 1))
            y = symbols(str(j + 1))
            if counter == 0:
                formula = (~x | ~y)
                counter += 1
            else:
                formula = formula & (~x | ~y)
        j += 1
    j = 0
    i += 1
formula_to_String = pycode(simplify_logic(formula,form='dnf',force=TruE))

大佬总结

以上是大佬教程为你收集整理的在 Python 中创建和简化 bool 公式全部内容,希望文章能够帮你解决在 Python 中创建和简化 bool 公式所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。