Quine:Python中的 Quine-McCluskey算法

我试图在 python 中编写Quine-McCluskey algorithm,但我想看看是否有任何版本在那里,我可能会使用。谷歌搜索显示一些有用的结果。我正在寻找 4x4 地图减少,而不是 2x2 或 3x3。任何想法或参考?

我试图在 python 中编写Quine-McCluskey algorithm,但我想看看是否有任何版本在那里,我可能会使用。谷歌搜索显示一些有用的结果。我正在寻找 4x4 地图减少,而不是 2x2 或 3x3。任何想法或参考?

6
def combine(m, n):
    a = len(m)
    c = ''
    count = 0
    for i in range(a): 
        if(m[i] == n[i]):
            c += m[i]
        elif(m[i] != n[i]):
            c += '-'
            count += 1
    if(count > 1): 
        return None
    else:            
        return c
def find_prime_implicants(data):
    newList = list(data)
    size = len(newList)
    IM = []
    im = []
    im2 = []
    mark = [0]*size
    m = 0
    for i in range(size):
        for j in range(i+1, size):
            c = combine( str(newList[i]), str(newList[j]) )
            if c != None:
                im.append(str(c))
                mark[i] = 1
                mark[j] = 1
            else:
                continue
    mark2 = [0]*len(im)
    for p in range(len(im)):
        for n in range(p+1, len(im)):
            if( p != n and mark2[n] == 0):
                if( im[p] == im[n]):
                    mark2[n] = 1
    for r in range(len(im)):
        if(mark2[r] == 0):
            im2.append(im[r])
    for q in range(size):
        if( mark[q] == 0 ):
            IM.append( str(newList[q]) )
            m = m+1
    if(m == size or size == 1):
        return IM
    else:
        return IM + find_prime_implicants(im2)
minterms = set(['1101', '1100', '1110', '1111', '1010', '0011', '0111', '0110'])
minterms2 = set(['0000', '0100', '1000', '0101', '1100', '0111', '1011', '1111'])
minterms3 = set(['0001', '0011', '0100', '0110', '1011', '0000', '1000', '1010', '1100', '1101'])
print 'PI(s):', find_prime_implicants(minterms)
print 'PI2(s):', find_prime_implicants(minterms2)
print 'PI3(s):', find_prime_implicants(minterms3)
4

在您提供链接的中,底部有一些“外部链接”,其中包括这些,相对于您的项目而言很有趣:

"Python Implementation by Robert Dick"

这不会满足你的需求吗?

"描述 R 中实现的算法的两篇系列文章:first articlesecond article。R 实现是详尽的,它提供了完整和精确的解决方案。它处理多达 20 个输入变量。"

您可以使用 R 语言的rpy Python intece来运行 Quine-McCluskey 算法的 R 代码。请注意,有 rpy 的重写:rpy2

另外,为什么不自己编写一个新的 Python 脚本,使用 AdrianDu ş a 在 2007 年完成的算法增强,位于second article中?

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(728)
笑脸python代码:为什么这个C代码总是输出一个笑脸
上一篇
数据库服务器名称:数据库服务器上的强数据库名称
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(40条)