• 大小: 1KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-06-18
  • 语言: Python
  • 标签: python  回溯法  

资源简介

回溯法之最小长度电路板排列问题,注释详细,python

资源截图

代码片段和文件信息

#ide:pycharm2019
#python版本:3.7
#作者:eee
#时间:2020.4.25
#最小长度电路板排列问题

class Board():
    def Backtrack(selfi):
        if i==self.n:
            tmp=self.len(i)
            if tmp                self.bestd=tmp
                for j in range(1self.n+1):
                    self.bestx[j]=self.x[j]
        else:
            for j in range(iself.n+1):
                self.x[i]self.x[j]=self.x[j]self.x[i]
                Id=self.len(i)
                if Id                    self.Backtrack(i+1)
                self.x[i] self.x[j] = self.x[j] self.x[i]

    def len(selfii):
        for i in  range(1self.m+1):
            self.high[i]=0
            self.low[i]=self.n+1
        for i in range(1ii+1):
            for k in range(1self.m+1):
                if self.B[self.x[i]][k]==1:
                    if i                        self.low[k]=i
                    if i>self.high[k]:
                        self.high[k]=i
        tmp=0
        for k in range(1self.m+1):
            if(self.low[k]<=self.n and self.high[k]>0 and tmp                tmp=self.high[k]-self.low[k]
        return tmp

def ArrangeBoards(Bnmbestx):
    X=Board()
    X.x=[0 for i in range(n+1)]
    X.low= [0 for i in range(m + 1)]
    X.high = [0 for i in range(m + 1)]
    X.B=B
    X.n = n
    X.m=m
    X.bestx=bestx
    X.bestd=n+1
    for i in range(1n+1):
        X.x[i]=i
    X.Backtrack(1)
    return X.bestd

def main():

    n=8
    m=5
    B=[[NoneNoneNoneNoneNoneNone]
       [None11111]
       [None01010]
       [None01110]
       [None10110]
       [None10100]
       [None11010]
       [None00001]
       [None01001]]
    p = [0 for i in range(n + 1)]
    print(ArrangeBoards(Bnmp))
    print(p[1:])

if __name__ == ‘__main__‘:
    main()

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2020-07-10 17:06  回溯法之最小长度电路板排列问题\
     文件        1987  2020-04-27 20:40  回溯法之最小长度电路板排列问题\CircuitBoard.py

评论

共有 条评论