[go: up one dir, main page]

CN1304996C - Rectangular steiner tree method of super large size integrated circuit avoiding barrier - Google Patents

Rectangular steiner tree method of super large size integrated circuit avoiding barrier Download PDF

Info

Publication number
CN1304996C
CN1304996C CNB2004100691186A CN200410069118A CN1304996C CN 1304996 C CN1304996 C CN 1304996C CN B2004100691186 A CNB2004100691186 A CN B2004100691186A CN 200410069118 A CN200410069118 A CN 200410069118A CN 1304996 C CN1304996 C CN 1304996C
Authority
CN
China
Prior art keywords
fst
point
ant
summit
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2004100691186A
Other languages
Chinese (zh)
Other versions
CN1588381A (en
Inventor
洪先龙
经彤
胡昱
冯哲
杨旸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CNB2004100691186A priority Critical patent/CN1304996C/en
Publication of CN1588381A publication Critical patent/CN1588381A/en
Application granted granted Critical
Publication of CN1304996C publication Critical patent/CN1304996C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

超大规模集成电路避障碍的直角Steiner树方法属于集成电路计算机辅助设计技术领域,尤其超大规模集成电路布线设计领域,其特征在于:提出基于完全Steiner树(FST)的端点划分方法,然后在划分出来的每个子集中针对不同情况分别使用蚁群方法和贪婪FST方法构造子Steiner树,最后用detour方法的思想来连接所有的子Steiner树。该算法能处理多端点(包括能处理两端点)的线网;能处理复杂障碍(包括凹多边形障碍)的情况;能够在较短时间里很好地处理大规模问题。它实现了在待连接线网有多个端点情况下的超大规模集成电路布线时避障碍的优化线长与时间效率的直角Steiner树构造方法。

The right-angle Steiner tree method of VLSI obstacle avoidance belongs to the technical field of computer-aided design of integrated circuits, especially the field of VLSI wiring design, and is characterized in that: an endpoint division method based on a complete Steiner tree (FST) is proposed, and then divided out In each subset of , the ant colony method and the greedy FST method are used to construct sub-Steiner trees for different situations, and finally the idea of detour method is used to connect all sub-Steiner trees. The algorithm can deal with line nets with multiple endpoints (including two endpoints); it can deal with complex obstacles (including concave polygon obstacles); it can handle large-scale problems well in a short period of time. It realizes the right-angle Steiner tree construction method for avoiding obstacles, optimizing line length and time efficiency in VLSI wiring under the condition that the line network to be connected has multiple endpoints.

Description

超大规模集成电路避障碍的直角Steiner树方法Cartesian Steiner Tree Method for Obstacle Avoidance in VLSI

技术领域technical field

集成电路计算机辅助设计即IC CAD技术领域,尤其超大规模集成电路布线设计领域。Integrated circuit computer-aided design is the field of IC CAD technology, especially the field of VLSI wiring design.

背景技术Background technique

在集成电路(IC)设计中,物理设计是其中主要的一环,也是最耗时的一步。与物理设计相关的计算机辅助设计技术称为布图设计。在布图设计中,布线是一个极为重要的环节。In integrated circuit (IC) design, physical design is one of the main steps, but also the most time-consuming step. A computer-aided design technique related to physical design is called layout design. In layout design, wiring is an extremely important link.

集成电路的设计规模目前正由超大规模(VLSI)、甚大规模(ULSI)向G规模(GSI)方向发展,并出现了系统级芯片(SOC)的设计概念。最小直角Steiner树(rectilinear Steinerminimal tree,RSMT)构造方法的研究是VLSI/ULSI/GSI/SOC布图设计、尤其是布线研究中的一个重要问题。直角Steiner树就是限制组成Steiner树的边都必须是直角边,即边只能是水平或垂直这两个方向的边。而在实际布线过程中,由于宏模块、IP模块以及预布线等都将成为障碍,使得考虑障碍的RSMT方法成为一个非常值得研究的问题。然而到目前为止,人们的研究多集中于无障碍的情况,相比之下对于带障碍的RSMT方法的研究还相对空白,有必要进行深入的研究。针对布线的实际应用,考虑障碍情况进行Steiner树构造方法的研究是布线中的关键问题之一,具有很大的实际意义。The design scale of integrated circuits is currently developing from very large scale (VLSI), very large scale (ULSI) to G scale (GSI), and the design concept of system-on-chip (SOC) has emerged. The research on the construction method of the minimum rectangular Steiner tree (rectilinear Steinerminimal tree, RSMT) is an important issue in VLSI/ULSI/GSI/SOC layout design, especially in wiring research. The right-angle Steiner tree is to restrict the edges that make up the Steiner tree to be right-angle edges, that is, the edges can only be horizontal or vertical. In the actual wiring process, because the macro module, IP module and pre-wiring will all become obstacles, the RSMT method considering obstacles becomes a very worthwhile research problem. However, so far, people's research has mostly focused on the barrier-free situation. In contrast, the research on the RSMT method with barriers is still relatively blank, and it is necessary to conduct in-depth research. For the practical application of wiring, it is one of the key issues in wiring to study the Steiner tree construction method considering the obstacles, which has great practical significance.

在已报导和所能查阅到的国内外相关研究中,关于“考虑障碍的直角Steiner树构造方法”的研究情况可列举、分析、总结如下:Among the related domestic and foreign researches that have been reported and can be consulted, the research situation on the "construction method of right-angle Steiner tree considering obstacles" can be listed, analyzed and summarized as follows:

对于线网仅含有两个端点这种比较简单的情况,人们做了不少研究,而且其中已经有一些比较成熟的方法。For the relatively simple case where the wire net only contains two endpoints, people have done a lot of research, and there are already some relatively mature methods.

Lee于1961年提出了迷宫方法([C.Y.Lee,An Algorithm for Connections and ItsApplications,IRE Trans.On Electronic Computers,1961,346-365.]),可用于求解障碍下的两端线网布线中两端点之间的最短路径。但由于该方法在整个搜索中总是对称的,这增加了搜索所需的时间和存储空间。1978年,Soukup提出了一个带有固定意义的非对称搜索方法([J.Soukup,Fast Maze Router,Proc.Of 15th Design Automation Conference,1978,100-102.]),提高了搜索效率。但该方法不能保证找到最优解。另一个改进的方法是Hadlock于1977年提出的,称为Hadlock最小迂回方法([Hadlock,A Shortest PathAlgorithm for Grid Graphs,Networks,1977.7,323-334.])。上述两种改进的迷宫方法的时间与空间复杂度均为O(hw),其中h和w是网格的数目。迷宫方法的最大缺点是要搜索较大的布图空间,所以要花费较大的时间和存储空间。它的优点是能在任何有解的情况下保证找到一个解。Lee proposed the maze method in 1961 ([C.Y.Lee, An Algorithm for Connections and Its Applications, IRE Trans.On Electronic Computers, 1961, 346-365.]), which can be used to solve the problem between the two ends of the two-end line network wiring under obstacles. the shortest path between. But since the method is always symmetric throughout the search, this increases the time and storage space required for the search. In 1978, Soukup proposed an asymmetric search method with fixed meaning ([J.Soukup, Fast Maze Router, Proc.Of 15th Design Automation Conference, 1978, 100-102.]), which improved the search efficiency. But this method cannot guarantee to find the optimal solution. Another improved method was proposed by Hadlock in 1977, called Hadlock's minimum detour method ([Hadlock, A Shortest Path Algorithm for Grid Graphs, Networks, 1977.7, 323-334.]). The time and space complexity of the above two improved maze methods are both O(hw), where h and w are the number of grids. The biggest disadvantage of the maze method is that it needs to search a larger layout space, so it takes a lot of time and storage space. Its advantage is that it is guaranteed to find a solution in any case where there is a solution.

为了克服迷宫方法的缺点,Hightower于1969年([D.W.Hightower,A solution to theLine Routing Problem on the Continuous Plane,Proc.Of the 6th Design AutomationWorkshop,1969,1-24.]),Mikami和Tabuchi于1968年([Mikami K.and Tabuchi K.,AComputer Program for Optimal Routing of Printed Circuit Connectors,IFIPS Proc.,1968,H47,1475-1478])分别提出了线搜索方法。它的计算时间和空间复杂度均为O(L),其中L为该方法所产生的线数。In order to overcome the shortcomings of the maze method, Hightower in 1969 ([D.W.Hightower, A solution to the Line Routing Problem on the Continuous Plane, Proc.Of the 6th Design Automation Workshop, 1969, 1-24.]), Mikami and Tabuchi in 1968 ([Mikami K. and Tabuchi K., AComputer Program for Optimal Routing of Printed Circuit Connectors, IFIPS Proc., 1968, H47, 1475-1478]) respectively proposed a line search method. Its computation time and space complexity are both O(L), where L is the number of lines produced by the method.

另外一种比较有代表性的方法是文献[J.M.Ho,M.Sarrafzadeh and A.Suzuki,“An ExactAlgorithm For Single-Later Wire-Length Minimization”,Proceedings of IEEEInternational Conference of Computer Aided Design,pp.424-427,1990.]提出的单层详细布线中的最小化两端线网的方法。它使用一种称为“同伦变换(homotopictransformation)”的方法对线网进行优化变换,所谓的“同伦”就是不改变线网的整体布局。作者提出:当路径中不存在“空U”(三段连续的线段构成的形如字母U的线路称为一个“U”,“空U”即指在U形线路的中间那段向U内部仍有上移空间)时,便可断定为最短路径。这个方法只适用于两端线网的处理,它能得到最优路径。Another representative method is the literature [J.M.Ho, M.Sarrafzadeh and A.Suzuki, "An Exact Algorithm For Single-Later Wire-Length Minimization", Proceedings of IEEEInternational Conference of Computer Aided Design, pp.424-427 , 1990.] proposed a method for minimizing the two-end wire net in single-layer detailed wiring. It uses a method called "homotopic transformation" to optimize the transformation of the line network. The so-called "homotopy" means not changing the overall layout of the line network. The author puts forward: when there is no "empty U" in the path (the line formed by three consecutive line segments, which is shaped like the letter U, is called a "U", "empty U" refers to the U-shaped line in the middle of the U-shaped line. When there is still room to move up), it can be determined as the shortest path. This method is only applicable to the processing of the two-end line network, and it can get the optimal path.

三篇文献:[周智,有障碍的Manhattan空间中的最小Steiner树问题(硕士学位论文)。合肥:中国科学技术大学,1998.]、[周智,陈国良,顾钧.用O(tlogt)的连接图求有障碍时的最短路径。计算机学报,1999,22(5):519-524.]和[周智,蒋承东,黄刘生,顾钧,“用Q(t)的广义连接图求有障碍时的最短路径”,软件学报,2003,14(2):pp.166-174.]中引入了广义连接图GG,其平均复杂度为Θ(t),其中t为障碍的极边数(多边形相邻的三条边,,,若和正好反向,则即为极边)。GG在复杂度上有一定的优势。在这些文献中提出了利用GG来构造两端线网的最小Steiner树,另外也提出GG可以用来构造多端线网,但是他们还没有具体实现。Three papers: [Zhou Zhi, The Minimum Steiner Tree Problem in Obstacle Manhattan Space (Master's Dissertation). Hefei: University of Science and Technology of China, 1998.], [Zhou Zhi, Chen Guoliang, Gu Jun. Use the O(tlogt) connection graph to find the shortest path when there are obstacles. Journal of Computer Science, 1999, 22(5): 519-524.] and [Zhou Zhi, Jiang Chengdong, Huang Liusheng, Gu Jun, "Use the generalized connection graph of Q(t) to find the shortest path when there are obstacles", Journal of Software, 2003, 14(2):pp.166-174.] introduces the generalized connection graph GG, whose average complexity is Θ(t), where t is the number of polar edges of obstacles (the three adjacent sides of a polygon,,, if and If it is just opposite, it is the polar edge). GG has certain advantages in complexity. In these literatures, it is proposed to use GG to construct the minimum Steiner tree of the two-terminal network, and it is also proposed that GG can be used to construct the multi-terminal network, but they have not been implemented yet.

相比之下,人们针对多端点线网提出的考虑障碍的直角Steiner树方法还相对很少。与两端点线网相比,多端点情况要复杂得多。尤其是在有障碍的情况下,很难在人们可以接受的时间内求得最优解。本专利申请所涉及的方法就是针对多端点线网的一种启发式方法,它能够在较短的时间内求解大规模线网在不同形状障碍下的Steiner树。以下将列举目前已有的考虑障碍的多端点线网的方法,并与本专利申请所涉及的方法进行比较,以指出他们之间的区别。In contrast, there are relatively few Cartesian Steiner tree methods considering obstacles for multi-end line networks. Compared with two-point line nets, the multi-endpoint case is much more complicated. Especially in the case of obstacles, it is difficult to find the optimal solution in a time acceptable to people. The method involved in this patent application is a heuristic method for multi-end point line networks, which can solve the Steiner tree of large-scale line networks under obstacles of different shapes in a relatively short period of time. The following will list the currently existing methods for considering the multi-terminal network of obstacles, and compare them with the methods involved in this patent application, so as to point out the differences between them.

文献[Chen Desheng,Sarrafzadeh M.A wire-length minimization algorithm forsingle-layer layout[A].In:Proceedings of IEEE/ACM International Conference ofComputer Aided Design(ICCAD),Santa Clara,USA,1992.390-393.]对单层对布图中的多端线网进行了研究,提出了基于TPT转换和“线段可见性”概念下的最小化方法。其时间复杂度为O(max(mn,mlogm)),其中n和m分别是指定待连线网N和全部线网集L的线段数目。该方法比较简单,它在转换过程中保持了“拓扑结构”不变(topology preserving)。但拓扑结构的固定又限制了TPT转换的自由度,使结果在很大程度上依赖于转换前的初始布线,因而在某些情况下结果不太理想。Literature [Chen Desheng, Sarrafzadeh M.A wire-length minimization algorithm for single-layer layout[A]. In: Proceedings of IEEE/ACM International Conference of Computer Aided Design (ICCAD), Santa Clara, USA, 1992.390-393.] for single-layer The multi-terminal line network in the layout is studied, and the minimization method based on the TPT transformation and the concept of "line segment visibility" is proposed. Its time complexity is O(max(mn, mlogm)), where n and m are the number of line segments specifying the network N to be connected and all the network sets L, respectively. This method is relatively simple, and it keeps the "topology structure" unchanged (topology preserving) during the conversion process. However, the fixed topological structure limits the degree of freedom of TPT conversion, so that the result depends to a large extent on the initial wiring before conversion, so the result is not ideal in some cases.

文献[Yukiko KUBO,Yasuhiro TAKASHIMA,Shigetoshi NAKATAKE,Yoji KAJITANI.Self-reforming routing for stochastic search in VLSI interconnection layout[A].In:Proceedings of IEEE/ACM Asia-Pacific Design Automation Conference(ASP-DAC),Yokohama,Japan,2000.87-92.]提出了使用flip和dual-flip技术来优化原有布线。在这篇文献中证明了利用flip和dual-flip可将连接线网的任意一棵树转换为任何其他形状的树,这使得该方法的转换比上述的TPT转换有更大自由度。但由于该方法采用模拟退火技术,使得执行时间非常长。它的时间复杂度大大于本专利申请所涉及的方法。Literature [Yukiko KUBO, Yasuhiro TAKASHIMA, Shigetoshi NAKATAKE, Yoji KAJITANI. Self-reforming routing for stochastic search in VLSI interconnection layout[A]. In: Proceedings of IEEE/ACM Asia-Pacific Design Automation Conference (ASP-DAC), Yokohama Japan, 2000.87-92.] proposed to use flip and dual-flip technology to optimize the original wiring. In this paper, it is proved that any tree connected to the wire net can be converted into any other shape tree by using flip and dual-flip, which makes the conversion of this method have more degrees of freedom than the above-mentioned TPT conversion. However, due to the simulated annealing technique used in this method, the execution time is very long. Its time complexity is much greater than the method involved in this patent application.

文献[Zheng S Q,Lim J S,Iyengar S S.Finding obstacle-avoiding shortest pathsusing implicit connection graphs[J].IEEE Transaction on Computer-Aided Design ofIntegrated Circuits and Systems.1996,15(1):103-110.]引入一个强连接图GC,其复杂度为O(e2),其中e为障碍的总边数。它同时采用A*和基于“detour”值不改向进行启发。另外,三项专利:[Ranko Scepanovic,Cupertino;Cheng-Liang Ding,SanJose.Towardoptimal steiner tree routing in the presence of rectilinear obstacles,5491641,Feb.13,1996],[Ranko Scepanovic,Cupertino;Cheng-Liang Ding,SanJose.Toward optimalsteiner tree routing in the presence of rectilinear obstacles,5615128,Mar.25,1997],和[Ranko Scepanovic,Cupertino;Cheng-Liang Ding,SanJose.Toward optimalsteiner tree routing in the presence of rectilinear obstacles,5880970,Mar.9,1999]也都是利用一个相似的强连接图“逃逸图graph”,通过迷宫方法或者是对最小生成树(spanning tree)进行Steiner化的方法来求有障碍下多点线网的Steienr树。这一类方法在障碍情况比较简单的情况下会有较好的求解效果,但在障碍形状较复杂、边数较多的情况下,它们所基于的强连接图将会变得非常复杂,求解效率就比较差。因此,这一类方法仅适用于障碍比较简单的情况。而本专利申请所涉及的方法能适用于各种复杂的障碍情况。Literature [Zheng S Q, Lim J S, Iyengar S S. Finding obstacle-avoiding shortest paths using implicit connection graphs[J]. IEEE Transaction on Computer-Aided Design of Integrated Circuits and Systems. 1996, 15(1): 103-110. ] introduces a strongly connected graph GC whose complexity is O(e2), where e is the total number of edges of obstacles. It uses both A* and heuristics without redirection based on the "detour" value. In addition, three patents: [Ranko Scepanovic, Cupertino; Cheng-Liang Ding, SanJose. Toward optimal steiner tree routing in the presence of rectilinear obstacles, 5491641, Feb.13, 1996], [Ranko Scepanovic, Cupertino; Cheng-Liang Ding, SanJose. Toward optimalsteiner tree routing in the presence of rectilinear obstacles, 5615128, Mar.25, 1997], and [Ranko Scepanovic, Cupertino; Cheng-Liang Ding, SanJose. Toward optimalsteiner tree routing in the presence of Mar. 99 obstacles, 0870 .9, 1999] also use a similar strong connection graph "escape graph graph", through the maze method or the method of Steinerizing the minimum spanning tree (spanning tree) to find the Steienr of the multi-point line network under obstacles Tree. This type of method will have a better solution effect when the obstacle situation is relatively simple, but when the obstacle shape is complex and the number of edges is large, the strong connection graph they are based on will become very complicated. The efficiency is relatively poor. Therefore, this type of method is only suitable for relatively simple obstacles. However, the method involved in this patent application can be applied to various complicated obstacle situations.

文献[Liu Jian,Zhao Ying,Shragowitz E,Karypis G.A polynomial timeapproximation scheme for rectilinear Steiner minimum tree construction in thepresence of obstacles[A].In:Proceedings of IEEE International Symposium onCircuits and Systems(ISCAS),Scottsdale,USA,2002.781-784.]引入了几何优化方法中的Guillotine-cut技术。该方法在无障碍时复杂度为多项式时间。虽然该方法可以应用到有障碍的情况,但求解就不能在多项式时间内完成,还需进行复杂度简化的研究工作。Literature [Liu Jian, Zhao Ying, Shragowitz E, Karypis G.A polynomial timeapproximation scheme for rectilinear Steiner minimum tree construction in the presence of obstacles[A].In: Proceedings of IEEE International Symposium on Circuits on Circuits-AS-1, 2Scda0, A70) (ISC 784.] introduces the Guillotine-cut technique in geometric optimization methods. The complexity of this method is polynomial time without obstacles. Although this method can be applied to situations with obstacles, the solution cannot be completed in polynomial time, and research work on complexity simplification is still needed.

文献[Ganley J L,Cohoon J.P.Routinga multi-terminal critical net:Steinertree construction in the presence of obstacles[A].In:Proceedings of IEEEInternational Symposium on Circuits and Systems(ISCAS).London,UK,1994.113-116.]提出的观点是:由于3点和4点的情况比较简单,因此在多点情况下可将它们按一定的要求分成3点组(greedy 3-Steinerization,G3S)或4点组(greedy 4-Steinerization,G4S)来实现。对于有障碍下的Steiner树问题,G3S的时间复杂度为O(k2n),而G4S的时间复杂度为O(k3n2)。其中n是可选的Steiner点数目,k是执行迭代的次数,效率较低。batched3-Steinerization(B3S)成批地选择三点组,时间复杂度为O(rkn),其中r为反复的次数,提高了求解效率。但如何选择三点组或四点组是这个方法的核心问题,它决定着该方法求解结果的好坏。在无障碍的情况下,通常采取的方法是将比较靠近的点归为一组,这个方法是比较合理的,得到的结果也比较好。但是在有障碍的情况下,选择点组时就需要综合考虑障碍以及点的分布情况。因此,如何选择合适点组的问题就复杂很多。然而,在该文献中并没有针对这个核心问题给出明确的解决方法。虽然该方法的时间复杂度还不是很高,但是需要再做后续优化工作才能使该方法得到优化的结果。Literature [Ganley J L, Cohoon J.P. Routinga multi-terminal critical net: Steinertree construction in the presence of obstacles [A]. In: Proceedings of IEEEInternational Symposium on Circuits and Systems (ISCAS). London, UK, 1994.113-116.] The point of view is: since the situation of 3-point and 4-point is relatively simple, they can be divided into 3-point group (greedy 3-Steinerization, G3S) or 4-point group (greedy 4-Steinerization, G4S) to achieve. For the Steiner tree problem with obstacles, the time complexity of G3S is O(k2n), while that of G4S is O(k3n2). Where n is the number of optional Steiner points, and k is the number of iterations performed, which is less efficient. batched3-Steinerization (B3S) selects three-point groups in batches, and the time complexity is O(rkn), where r is the number of repetitions, which improves the solution efficiency. But how to choose a three-point group or a four-point group is the core problem of this method, which determines the quality of the solution results of this method. In the case of barrier-free, the usual method is to group closer points together. This method is more reasonable and the results obtained are better. However, in the case of obstacles, it is necessary to consider the obstacles and the distribution of points when selecting a point group. Therefore, the problem of how to select a suitable point group is much more complicated. However, no clear solution to this core problem is given in the literature. Although the time complexity of this method is not very high, it is necessary to do follow-up optimization work to make this method obtain optimized results.

最新的进展是,文献[Yang Yang,Qi Zhu,Tong Jing,Xianlong Hong,Yin Wang.″Rectilinear Steiner Minimal Tree among Obstacles.In:Proceedings of IEEE ASICON,Beijing,China,2003,348-351.]提出的时间复杂度为O(mn)的方法。该方法的运行时间、结果都比较理想,是目前公布的效果最理想的方法。但该方法还存在不足:处理障碍的形状局限在凸多边形的情形,绕障碍的方法依赖于初始Steiner树的构造结果,不适用于规模较大的线网。本专利申请所涉及的方法除了与该方法的思路不同外,我们能求得更优的线长结果,请具体参见后面的“本发明方法效果的实验数据”中给出的实验数据对比及其说明。The latest progress is that the literature [Yang Yang, Qi Zhu, Tong Jing, Xianlong Hong, Yin Wang. "Rectilinear Steiner Minimal Tree among Obstacles.In: Proceedings of IEEE ASICON, Beijing, China, 2003, 348-351.] proposed Time complexity is the method of O(mn). The running time and results of this method are all ideal, and it is the most ideal method of the currently announced effect. But this method still has shortcomings: the shape of the processing obstacle is limited to the situation of convex polygons, The method of going around obstacles depends on the construction result of the initial Steiner tree, and is not suitable for larger-scale wire networks. The method involved in this patent application is different from the thinking of this method, and we can obtain better wire length results. Please refer to the experimental data comparison and description given in the following "Experimental Data of the Effect of the Method of the Invention" for details.

另外,文献[黄林,赵文庆,唐璞山.一种含浮动端点的斯坦纳树的构造方法。计算机辅助设计与图形学学报。Vol.10,No.6,1998.11.]在具体分析和方法描述中,没有针对有障碍情况的说明。In addition, the literature [Huang Lin, Zhao Wenqing, Tang Pushan. A construction method of Steiner tree with floating endpoints. Journal of Computer Aided Design and Graphics. Vol.10, No.6, 1998.11.] In the specific analysis and method description, there is no explanation for the obstacle.

发明内容Contents of the invention

本发明的目的在于提出一种超大规模集成电路避障碍的直角Steiner树方法。直角Steiner树就是限制组成Steiner树的边都必须是直角边,即边只能是水平或垂直这两个方向的边。The object of the present invention is to propose a right-angle Steiner tree method for avoiding obstacles in VLSI. The right-angle Steiner tree is to restrict the edges that make up the Steiner tree to be right-angle edges, that is, the edges can only be horizontal or vertical.

本发明的总体思路是:首先求出所有要连接点的完全Steiner树FST(fulsome Steinertree),即,如果一棵直角Steiner树的所有端点都是叶子结点,那么我们就称它为一棵完全Steiner树full Steiner tree(FST)。并且删除与障碍相交的FST;然后在剩下的FST构成的分图内构造子Steiner树,树和子树是“数据结构”中最常见的概念,我们这里的Steiner树和子Steiner树之间也符合上述的树和子树的关系;最后用detour方法将所有子Steiner树连成一棵完整的Steiner树。The general thinking of the present invention is: at first obtain the complete Steiner tree FST (fulsome Steinertree) of all points to be connected, that is, if all endpoints of a right-angled Steiner tree are leaf nodes, we just call it a complete Steiner tree so. Steiner tree full Steiner tree (FST). And delete the FST that intersects with the obstacle; then construct the sub-Steiner tree in the sub-graph composed of the remaining FST. Tree and sub-tree are the most common concepts in "data structure". The Steiner tree and the sub-Steiner tree here also conform to The relationship between the above trees and subtrees; finally, use the detour method to connect all sub-Steiner trees into a complete Steiner tree.

这里FST指的是完全斯坦纳树,它的所有端点都是叶子结点。Here FST refers to a complete Steiner tree, all of its endpoints are leaf nodes.

本发明的思路:提出基于FST的端点划分方法,然后在划分出来的每个子集中针对不同情况,分别使用蚁群方法和贪婪FST方法构造子Steiner树,最后用detour方法的思想来连接所有的子Steiner树;具体而言,它依次含有以下步骤:The idea of the present invention: propose an FST-based endpoint division method, and then use the ant colony method and the greedy FST method to construct sub-Steiner trees for different situations in each subset, and finally use the detour method to connect all sub-trees. Steiner tree; specifically, it contains the following steps in order:

(1)初始化;(1) initialization;

(2)构造FST:根据线网的端点构造FST集合F;(2) Construct FST: Construct FST set F according to the endpoints of the line network;

(3)端点划分:删除集合F中所有与障碍相交的FST,得到新的FST集合F’,其中相连的FST把端点划分成n个分离的子集Ti(i=1,…,n);(3) Endpoint division: delete all FSTs intersecting with obstacles in the set F to obtain a new FST set F', wherein the connected FSTs divide the endpoints into n separate subsets Ti (i=1,...,n);

(4)构造子树:对于每个子集Ti,根据形成Ti的FST集合构造子Steiner树Si,我们采用下面两种方法构造子树:(4) Constructing subtrees: For each subset Ti, construct a subtree Si according to the FST set forming Ti, we use the following two methods to construct subtrees:

(4.1)对于端点数量小于20的子集Ti,采用基于蚁群的方法构造子树。蚁群:我们这里是简称“蚁群优化方法”,它和模拟退火方法、禁忌搜索方法、遗传方法等一样都属于典型的现代优化计算方法,可以用来解决不同的实际应用问题;(4.1) For the subset Ti whose number of endpoints is less than 20, use the method based on ant colony to construct the subtree. Ant colony: We refer to it as "ant colony optimization method" for short here. It is a typical modern optimization calculation method like simulated annealing method, tabu search method, genetic method, etc., and can be used to solve different practical application problems;

(4.2)对于端点数量大于20的子集Ti,采用基于FST的贪婪搜索策略构造子树;(4.2) For the subset Ti with the number of endpoints greater than 20, use a greedy search strategy based on FST to construct a subtree;

(5)利用detour的方法,计算每两个子树之间的最短路径,从而把Si(i=1,…,n)连接成一棵完整的Steiner树。(5) Using the method of detour, calculate the shortest path between every two subtrees, so as to connect Si (i=1,...,n) into a complete Steiner tree.

本发明的特征在于,它依次含有以下几个步骤:The present invention is characterized in that it contains the following steps in sequence:

(1)初始化,计算机从外部读入如下预设数据:(1) Initialization, the computer reads in the following preset data from the outside:

线网的信息:线网编号,线网中需要连接引脚的物理位置,用二维笛卡儿坐标表示,即为端点;Network information: the network number, the physical position of the pins to be connected in the network, represented by two-dimensional Cartesian coordinates, which is the endpoint;

障碍信息:形成障碍的多边形的点列;Obstacle information: the column of points forming the polygon of the obstacle;

(2)根据线网的端点用GeoSteiner3.1的开发包构造完全Steiner树集合,用FST表示,简称F;(2) Construct a complete Steiner tree collection with the development kit of GeoSteiner3.1 according to the end points of the line network, expressed by FST, referred to as F;

(3)端点划分:删除步骤(2)得到的集合F中所有与障碍相交的FST,得到新的FST集合,用F’表示,其中,相连的FST把端点划分成n个分离的子集Ti,i=1,…,n;(3) Endpoint division: Delete all FSTs that intersect with obstacles in the set F obtained in step (2), and obtain a new FST set, denoted by F', where the connected FSTs divide the endpoints into n separate subsets Ti , i=1,...,n;

(4)构造子树:对步骤(3)得到的每个子集Ti,根据形成Ti的FST集合构造子Steiner树,用Si表示,这一步要根据端点数量分别采用下面两种方法:(4) Construction subtree: for each subset Ti that step (3) obtains, according to the FST set construction sub-Steiner tree that forms Ti, represented by Si, this step will adopt following two methods respectively according to the number of endpoints:

(4.1)对于端点数量小于20的子集Ti,采用基于蚁群的方法构造子树,其步骤依次如下:(4.1) For the subset Ti whose number of endpoints is less than 20, use the method based on ant colony to construct the subtree, and the steps are as follows:

(4.1.1)设定:子集Ti的边上的初始信息素值,用τ表示,τ即为信息素值;(4.1.1) Setting: the initial pheromone value on the edge of the subset Ti is represented by τ, and τ is the pheromone value;

(4.1.2)在各Ti中的各端点处放置1只蚂蚁,由于我们设计采用基于蚁群优化方法的技术,就要在问题形式化的时候采用蚁群优化方法中的名词“蚂蚁”,这样才可基于蚁群优化方法解决问题。并予以编号,用antName表示;同时,每一只蚂蚁维护一个禁忌表,记录已经访问过的点;设定迭代次数的最大值;(4.1.2) Place one ant at each endpoint of each Ti. Since we design and adopt the technology based on the ant colony optimization method, we must use the noun "ant" in the ant colony optimization method when the problem is formalized. Only in this way can the problem be solved based on the ant colony optimization method. And be numbered, represented by antName; at the same time, each ant maintains a taboo table to record the points that have been visited; set the maximum number of iterations;

(4.1.3)任选一只蚂蚁m,通过下式计算出选择每个与m相邻的顶点的概率,i表示蚂蚁m所在的顶点,j表示顶点i的相邻顶点,(i,j)表示连接顶点i和顶点j的边,pi,j表示蚂蚁m选择顶点j作为下一个要到达的顶点的概率:(4.1.3) Choose an ant m, and calculate the probability of selecting each vertex adjacent to m by the following formula, i represents the vertex where ant m is located, and j represents the adjacent vertex of vertex i, (i, j ) represents the edge connecting vertex i and vertex j, p i, j represents the probability that ant m chooses vertex j as the next vertex to reach:

其中,集合N是顶点集合,它是由所有通过Ti上的边与当前蚂蚁m所在顶点相连,并且不是它所访问过的顶点组成的;Among them, the set N is a vertex set, which is connected to the vertex where the current ant m is located through the edges on Ti, and is not composed of vertices it has visited;

ηj m:当前蚂蚁m在顶点i时,与蚂蚁m相连的顶点中的某一顶点j的可见度:η j m : When the current ant m is at the vertex i, the visibility of a certain vertex j among the vertices connected to the ant m:

ηη jj mm == 11 cc (( ii ,, jj )) ++ γγ ·&Center Dot; ψψ jj mm

Ψj m:从顶点j到当前所有其他蚂蚁已经访问过的顶点的最短距离,为已知量,c(i,j):从顶点i到顶点j的长度,Ψ j m : the shortest distance from vertex j to the vertices visited by all other ants, which is a known quantity, c(i, j): the length from vertex i to vertex j,

τij:边(i,j)上的信息素浓度的更新值:τ ij : update value of pheromone concentration on edge (i, j):

        τi,j=(1-ρ)·τi,j+ρ·Δτi,j τ i,j = (1-ρ)·τ i,j +ρ·Δτ i,j

Δτij:在每选定一边时,其上所增加的信息素的量:Δτ ij : When each side is selected, the amount of pheromone added on it:

其中,c(St)是当前所保留的最小直角Steiner树的总线长,Et是它的边集合;Among them, c(S t ) is the bus length of the currently retained minimum right-angle Steiner tree, and E t is its edge set;

上述的α、β、γ、ρ、Z皆为常量,预先设定,其范围如下:The above-mentioned α, β, γ, ρ, and Z are all constants, preset, and their ranges are as follows:

α∈[1,5],β∈[1,5],γ∈[1,4],ρ∈[0,1],Z∈[1,∝],α ∈ [1, 5], β ∈ [1, 5], γ ∈ [1, 4], ρ ∈ [0, 1], Z ∈ [1, ∝],

其中,α、β、γ、Z是整数,ρ是实数;Among them, α, β, γ, and Z are integers, and ρ is a real number;

上述tabulist是禁忌表,ktabulist(m)表示不在m的禁忌表中的点k的可见度;The above tabulist is a taboo list, and ktabulist(m) indicates the visibility of point k that is not in m’s taboo list;

(4.1.4)依照步骤(4.1.3)得到的概率pij,蚂蚁m选择所要通过的边(i,j);(4.1.4) According to the probability p ij obtained in step (4.1.3), the ant m selects the edge (i, j) to pass through;

(4.1.5)把顶点j添加到蚂蚁m的禁忌表中;(4.1.5) Add vertex j to the taboo table of ant m;

(4.1.6)若前蚂蚁m遇到另一只蚂蚁m’,就把蚂蚁m从蚂蚁集中去掉,并把m的禁忌表中的端点添加到另一只蚂蚁m’的禁忌表中;(4.1.6) If the former ant m encounters another ant m', remove the ant m from the ant set, and add the endpoint in m's taboo list to the taboo list of another ant m';

(4.1.7)更新边(i,j)上的信息素的含量;(4.1.7) Update the content of the pheromone on the edge (i, j);

(4.1.8)迭代次数加1,重复步骤(4.1.2)-(4.1.8),一直迭代到设定的迭代次数的最大值为止;(4.1.8) Increase the number of iterations by 1, repeat steps (4.1.2)-(4.1.8), iterate until the maximum value of the set number of iterations;

(4.2)对于端点数量大于20的子集Ti,采用基于FST的贪婪搜索策略构造子树,依次含有下列步骤:(4.2) For the subset Ti with the number of endpoints greater than 20, use the greedy search strategy based on FST to construct the subtree, which contains the following steps in turn:

(4.2.1)删除与障碍相交的FST,剩下的FST称为候选FST,再计算所有候选FST的渴求度η(t):(4.2.1) Delete the FST that intersects with the obstacle, and the remaining FST is called the candidate FST, and then calculate the desirability η(t) of all candidate FSTs:

                η(t)=c(t)λ/t(t)ω η(t)=c(t) λ /t(t) ω

其中,t表示需要计算渴求度的FST,c(t)表示t的总线长,t(t)是FST的端点数,λ和ω是常量,预先设定,其范围如下:Among them, t represents the FST that needs to calculate the degree of desire, c(t) represents the bus length of t, t(t) is the number of endpoints of FST, λ and ω are constants, preset, and their ranges are as follows:

λ∈[1,4],ω∈[1,4],其中,λ、ω是整数;λ∈[1,4], ω∈[1,4], where λ, ω are integers;

(4.2.2)选择候选集合渴求度最小的FST,即f,并将f加入到当前解集合Y中;(4.2.2) Select the FST with the minimum desirability of the candidate set, i.e. f, and add f to the current solution set Y;

(4.2.3)删除候选FST中所有与f不兼容的FST,这里,两棵树不兼容是指两棵树包含两个或两个以上的相同端点,或者有一条或一条以上的边重叠;(4.2.3) Delete all FSTs that are incompatible with f in the candidate FSTs. Here, the incompatibility of two trees means that the two trees contain two or more identical endpoints, or have one or more edges overlapping;

(4.2.4)删除端点集合中所有被f覆盖的端点;(4.2.4) Delete all endpoints covered by f in the endpoint set;

(4.2.5)如果候选FST集合不为空,则重复(4.2.2)-(4.2.4)的步骤,选择新的FST加入到当前解中,直到候选FST集合为空;(4.2.5) If the candidate FST set is not empty, then repeat the steps of (4.2.2)-(4.2.4), select a new FST to add to the current solution, until the candidate FST set is empty;

(4.2.6)如果端点集合中还有剩余元素,则将它们加入到当前解中;(4.2.6) If there are remaining elements in the endpoint set, add them to the current solution;

(5)利用最小折返值方法,即detour方法,计算每两个子树之间的最短路径,从而把Si,i=1,…,n,连接成一棵完整的Steiner树,计算两子树之间的最短路径的方法是:对于属于这两棵子树的所有端点,两两求最短路径,取其中最短的那条路径作为两子树之间的最短路径;计算两个端点,即点s到点t,之间最短路径的方法有以下步骤:(5) Use the minimum return value method, that is, the detour method, to calculate the shortest path between every two subtrees, thereby connecting Si, i=1,..., n, into a complete Steiner tree, and calculating the distance between the two subtrees The method of the shortest path is: for all the endpoints belonging to these two subtrees, find the shortest path two by two, and take the shortest path as the shortest path between the two subtrees; calculate the two endpoints, that is, point s to point t, the method of the shortest path between has the following steps:

(5.1.1)根据障碍和端点s、t构造逃逸图,这里,逃逸图是由障碍的水平边和竖直边向两端扩展,直到遇到障碍,这样扩展后的线段相交形成的一种连接图;(5.1.1) Construct the escape graph according to the obstacle and the endpoints s, t. Here, the escape graph is expanded from the horizontal and vertical edges of the obstacle to both ends until it encounters an obstacle, so that the expanded line segments intersect to form a Connection Diagram;

(5.1.2)初始化候选点集合为点{s},已访问点集合为空,设置当前点为s;(5.1.2) Initialize the candidate point set as point {s}, the visited point set is empty, set the current point as s;

(5.1.3)把所有与当前点在逃逸图上相邻且未访问过的点加入到候选点集合中,根据下面的规则计算这些新加点的折返值:(5.1.3) Add all points that are adjacent to the current point on the escape map and have not been visited to the set of candidate points, and calculate the return value of these newly added points according to the following rules:

有向边u→v折返值的定义:给定一条有向边u→v和一个最终目标点t,设L为通过点t且与有向边u→v相垂直的直线,则:The definition of the return value of the directed edge u→v: Given a directed edge u→v and a final target point t, let L be a straight line passing through the point t and perpendicular to the directed edge u→v, then:

当u,v在L的同侧,且u到L的距离远于v,则u→v的折返值=0;When u and v are on the same side of L, and the distance from u to L is farther than v, then the return value of u→v=0;

当u,v在L的同侧,且u到L的距离近于v,则u→v的折返值=线段u→v的长度;When u and v are on the same side of L, and the distance from u to L is closer to v, then the return value of u→v=the length of line segment u→v;

当线段u→v与L交于w,则u→v的折返值=线段w→v的长度;When the line segment u→v and L intersect at w, then the return value of u→v=the length of the line segment w→v;

于是,点的折返值可以这样定义:从源点出发到目标点的寻路过程中,某一点的折返值即为从源点到该点的所有路径的折返值之和;Therefore, the return value of a point can be defined as follows: during the pathfinding process from the source point to the target point, the return value of a certain point is the sum of the return values of all paths from the source point to the point;

(5.1.4)在候选集合中选择折返值最小的点q加入到访问点集合中,设置当前点为q;(5.1.4) Select the point q with the smallest return value in the candidate set to add to the access point set, and set the current point as q;

(5.1.5)如果最终目标点t不在候选点集合中,则重复步骤(5.1.1)-(5.1.4);(5.1.5) If the final target point t is not in the candidate point set, repeat steps (5.1.1)-(5.1.4);

(5.1.6)如果最终目标点t在候选点集合中,则把t加入到访问点集合中,这样找到的最短路径就是访问点集合中的点列按照被加入的先后顺序所组成的路径。(5.1.6) If the final target point t is in the candidate point set, add t to the access point set, and the shortest path found in this way is the path formed by the point columns in the access point set according to the order in which they were added.

本发明的方法有如下特点:Method of the present invention has following characteristics:

首先,本发明的方法能处理多端点(包括能处理两端点)的线网;能处理复杂障碍(包括凹多边形障碍)的情况。即本发明方法的适用范围更广。同时,本发明方法并不像有些文献那样只给出了一个设想或思路雏形,而是一个能在具体装置(工作站)上运行的为布线过程服务的IC CAD工具,有具体的实施描述。Firstly, the method of the present invention can deal with line nets with multiple endpoints (including two endpoints); it can deal with complex obstacles (including concave polygon obstacles). That is, the scope of application of the method of the present invention is wider. Simultaneously, the method of the present invention does not only provide a conception or an embryonic form of thinking like some documents, but an IC CAD tool that can run on a specific device (workstation) and serves the wiring process, with specific implementation descriptions.

其次,与已有的考虑障碍的多端点线网Steiner树构造方法相比,本发明的方法在处理问题的规模和线长这两方面有更好的性能。本发明方法能够在30分钟之内计算出500个端点线网绕100个直角障碍的情况,对于7个端点以下的情况,我们的方法都能在0.1秒左右求出结果;同时用本方法求解的线长结果也十分理想。本发明的方法在综合效果上优于已有方法,请具体参见“本发明方法效果的实验数据”中给出的实验数据说明。Secondly, compared with the existing multi-end point line network Steiner tree construction method considering obstacles, the method of the present invention has better performance in dealing with the scale of the problem and the line length. The method of the present invention can calculate the situation that 500 end-point line nets wind around 100 right-angle obstacles within 30 minutes, and for the situation below 7 end-points, our method can obtain the result in about 0.1 second; simultaneously use this method to solve The line length results are also very good. The method of the present invention is superior to existing methods in comprehensive effect, please refer to the description of the experimental data given in "Experimental data of the effect of the method of the present invention" for details.

本发明方法效果的实验数据The experimental data of the method effect of the present invention

进行实验的计算机系统具体描述如下:The computer system for the experiment is described in detail as follows:

一台Sun公司的V880型工作站;A Sun V880 workstation;

Unix操作系统;Unix operating system;

C++编程语言;C++ programming language;

Vi编辑器、gcc编译器、gdb调试工具等;Vi editor, gcc compiler, gdb debugging tool, etc.;

在测试中,设置参数如下:蚁群方法:α=1,β=1,γ=1,ρ=0.5,Z=10000,MAX_LOOP=100;贪婪FST方法:λ=1,ω=4。In the test, the parameters are set as follows: ant colony method: α=1, β=1, γ=1, ρ=0.5, Z=10000, MAX_LOOP=100; greedy FST method: λ=1, ω=4.

MCNC电路中的线网作为测试例子,针对下述9个线网,本发明方法与最新研究进展的方法——Yang Yang等的“2-step”方法[Yang Yang,Qi Zhu,Tong Jing,Xianlong Hong,YinWang.″Rectilinear Steiner Minimal Tree among Obstacles.In:Proceedings of IEEEASICON,Beijing,China,2003,348-351.]的测试结果比较列出如下,对每个实例测试10次,把平均情况、最差/最好情况分别记录如下: NetID 端点数 2-step[2]   Ours[1]   Best[4]   Ave[4]   Worst[4]   C2:22   2   0%   0%   0%   0%   C2:33   2   0%   0%   0%   0%   C2:2   3   0%   0%   0%   0%   C2:17   3   1.87%   0%   0%   0%   C2:504   4   3.80%   0%   0%   0%   C2:59   3   4.46%   0%   0%   0%   C2:609   4   4.89%   0%   0%   0%   C2:67   5   5.48%   0%   0%   0%   C2:177   6   7.28%   0%   0.19%   1.32%   C2:98   4   21.4%   0%   0%   0%   C2:117   3   1.87%   0%   0%   0%   C2:18   4   3.80%   0%   0.06%   0.45%   Average   /   5.31%   0%   0.02%   0.15% The wire net in the MCNC circuit is used as a test example, and for the following 9 wire nets, the method of the present invention and the method of the latest research progress---"2-step" method of Yang Yang et al [Yang Yang, Qi Zhu, Tong Jing, Xianlong Hong, YinWang. "Rectilinear Steiner Minimal Tree among Obstacles.In: Proceedings of IEEE SICON, Beijing, China, 2003, 348-351.] The comparison of the test results is listed as follows, each example is tested 10 times, and the average, maximum The worst/best cases are recorded as follows: NetID Endpoints 2-step[2] Ours[1] Best[4] Ave[4] Worst[4] C2: 22 2 0% 0% 0% 0% C2: 33 2 0% 0% 0% 0% C2: 2 3 0% 0% 0% 0% C2: 17 3 1.87% 0% 0% 0% C2: 504 4 3.80% 0% 0% 0% C2: 59 3 4.46% 0% 0% 0% C2: 609 4 4.89% 0% 0% 0% C2: 67 5 5.48% 0% 0% 0% C2: 177 6 7.28% 0% 0.19% 1.32% C2: 98 4 21.4% 0% 0% 0% C2: 117 3 1.87% 0% 0% 0% C2: 18 4 3.80% 0% 0.06% 0.45% Average / 5.31% 0% 0.02% 0.15%

[1]Ours:本发明方法生成的有障碍下的RSMT长度的冗余度[3]。[1] Ours: The redundancy of RSMT length under obstacles generated by the method of the present invention [3].

[2]“2-step”方法求解生成的有障碍下的RSMT长度。[2] The "2-step" method solves the generated RSMT length under obstacles.

[3]冗余度=(结果Steiner树总线长-最优Steiner树总线长)/最优Steiner树总线长×100%。这里的“最优Steiner树总线长”是由人工计算得到的。[3] Redundancy = (result Steiner tree total length - optimal Steiner tree total length) / optimal Steiner tree total length × 100%. The "optimal Steiner tree bus length" here is obtained by manual calculation.

[4]Best、Ave、Worst分别是最好结果、平均结果和最差结果。[4] Best, Ave, Worst are the best result, average result and worst result respectively.

从上述测试结果可计算得到本发明方法求解的布线树的线长冗余度的平均值为0.02%,远小于2-step的冗余度(5.31%)。From the above test results, it can be calculated that the average value of the line length redundancy of the wiring tree solved by the method of the present invention is 0.02%, which is much smaller than the 2-step redundancy (5.31%).

利用随机生成的测试例子,本发明方法还与Ganley等的“G4S”方法[Ganley J L,CohoonJ.P.Routing a multi-terminal critical net:Steiner tree construction in the presenceof obstacles[A].In:Proceedings of IEEE International Symposium on Circuits andSystems(ISCAS).London,UK,1994.113-116.](G4S是现有的能够高效处理多端点绕障碍的Steiner方法)的测试结果比较列出如下: 端点数 G4S[5]   Ours[1]   Wire[6]   CPU-time[7]   5   9.2   9.8   0.02   10   9.1   9.1   0.10   15   9.4   9.4   0.25   20   9.0   9.2   0.38   50   -   9.1   2.75   100   -   8.8   3.66   500   -   9.1   559   1000   -   8.9   1240 Using randomly generated test examples, the method of the present invention is also compatible with the "G4S" method of Ganley et al. [Ganley J L, Cohoon J.P. Routing a multi-terminal critical net: Steiner tree construction in the presence of obstacles [A]. In: Proceedings of IEEE International Symposium on Circuits and Systems (ISCAS).London, UK, 1994.113-116.] (G4S is an existing Steiner method that can efficiently deal with multi-terminal obstacles) The comparison of test results is listed as follows: Endpoints G4S[5] Ours[1] Wire[6] CPU-time[7] 5 9.2 9.8 0.02 10 9.1 9.1 0.10 15 9.4 9.4 0.25 20 9.0 9.2 0.38 50 - 9.1 2.75 100 - 8.8 3.66 500 - 9.1 559 1000 - 8.9 1240

[5]G4S:G4S方法求解结果的Steiner比(Steiner Ratio)[8]。[5] G4S: Steiner Ratio [8] of the solution result of G4S method.

[6]Wire:用我们的方法求解结果的Steiner比(Steiner Ratio)[8]。[6]Wire: Use our method to solve the Steiner Ratio of the result (Steiner Ratio)[8].

[7]CPU-time:我们的方法的运行时间。[7] CPU-time: The running time of our method.

[8]Steiner比(Steiner Ratio)=(最小生成树总线长-Steiner树总线长)/最小生成树总线长×100%。[8] Steiner ratio (Steiner Ratio)=(minimum spanning tree bus length-Steiner tree bus length)/minimum spanning tree bus length×100%.

可以看出,当端点个数小于20的时候,我们的方法优于G4S,当端点个数大于20的时候,G4S已经不能处理,而我们的方法仍旧可以得到比较稳定的结果,而且运行时间也较短。It can be seen that when the number of endpoints is less than 20, our method is better than G4S. When the number of endpoints is greater than 20, G4S can no longer handle it, but our method can still get relatively stable results, and the running time is also shorter. shorter.

附图说明Description of drawings

图1:本发明核心部分流程图。Fig. 1: flow chart of core part of the present invention.

图2:步骤1的流程图。Figure 2: Flowchart of Step 1.

图3:(a)步骤1初始图(含有与障碍相交的FST);Figure 3: (a) Step 1 initial graph (with FST intersected with obstacles);

     (b)步骤1结果实例图(去掉所有与障碍相交的FST)。(b) Step 1 result example diagram (remove all FSTs that intersect with obstacles).

图4:步骤2结果实例图。Figure 4: Example graph of the result of step 2.

图5:步骤3的流程图。Figure 5: Flowchart of Step 3.

图6:步骤3结果实例图。Figure 6: Example diagram of the result of step 3.

图7-图15:net17的构造过程示意图:Figure 7-Figure 15: Schematic diagram of the construction process of net17:

图7:初始布局。Figure 7: Initial layout.

图8:生成的FST集合。Figure 8: The resulting FST ensemble.

图9:分图划分(步骤1)实施结果。Figure 9: Implementation results of sub-graph division (step 1).

图10:步骤2的详细过程:Figure 10: Detailed process of step 2:

      (1)初始状态;(2)第一次移动;(3)得到结果。(1) Initial state; (2) First move; (3) Get the result.

图11:步骤2完成结果。Figure 11: Step 2 completion result.

图12:计算t1到t3的最短路径的准备过程:Figure 12: Preparation process for computing the shortest path from t1 to t3:

      (a)初始逃逸图;(b)加入一个源点后的逃逸图;(a) Initial escape graph; (b) escape graph after adding a source point;

      (c)加入一个目标点后的逃逸图;(d)标记所有节点。(c) The escape graph after adding a target point; (d) Mark all nodes.

图13:(a)初始状态;(b)第1次选点;Figure 13: (a) initial state; (b) first point selection;

      (c)第2次选点;(d)第3次选点;(c) The second point selection; (d) The third point selection;

      (e)第4次选点;(f)第5次选点;(g)第6次选点。(e) 4th point selection; (f) 5th point selection; (g) 6th point selection.

图14:(a)AC的最短路径;(b)AD的最短路径;Figure 14: (a) the shortest path of AC; (b) the shortest path of AD;

      (c)AE的最短路径;(d)AF的最短路径;(c) the shortest path of AE; (d) the shortest path of AF;

      (e)BC的最短路径;(f)BD的最短路径;(e) the shortest path of BC; (f) the shortest path of BD;

      (g)BE的最短路径;(h)BF的最短路径。(g) the shortest path of BE; (h) the shortest path of BF.

图15:最终结果树。Figure 15: Final result tree.

具体实施方式Detailed ways

首先具体分析本专利申请涉及的“考虑障碍的直角Steiner树方法”的核心思想。Firstly, the core idea of the "right-angle Steiner tree method considering obstacles" involved in this patent application is specifically analyzed.

在将电路的障碍和线网的信息读入并进行处理后,本方法核心的部分就是构造Steiner树的过程,总流程框图如图1所示。该方法的思路与以往的方法不同,方法分三步来构造最后的结果树:第一步,求出所有端点的FST(fulsome Steiner tree),并且删除与障碍相交的FST;第二步在剩下的FST构成的分图内构造子Steiner树;第三步用detour方法将所有子Steiner树连成一棵完整的Steiner树。以下分别介绍方法的三个步骤。After reading and processing the information of circuit obstacles and wire nets, the core part of this method is the process of constructing a Steiner tree. The overall flow chart is shown in Figure 1. The idea of this method is different from the previous methods. The method is divided into three steps to construct the final result tree: the first step is to find the FST (fulsome Steiner tree) of all endpoints, and delete the FST that intersects with obstacles; Construct the sub-Steiner tree in the subgraph composed of the FST below; the third step uses the detour method to connect all the sub-Steiner trees into a complete Steiner tree. The three steps of the method are described below.

第一步:求出所有端点的FST(fulsome Steiner tree),并且删除与障碍相交的FST,相当于前面发明思路中的第(2)和第(3)步,该步流程图如图2所示。The first step: find the FST (fulsome Steiner tree) of all endpoints, and delete the FST that intersects with the obstacle, which is equivalent to steps (2) and (3) in the previous invention idea. The flow chart of this step is shown in Figure 2 Show.

我们采用GeoSteiner方法中构造FST的方法生成FST,它已经在1998年公开发表[D.M.Warme,P.Winter,and M.Zachariasen,“Exact Algorithms for Plane Steiner TreeProblems:A Computational Study”,Technical Report DIKU-TR-98/11,Department ofComputer Science,University of Copenhagen,April 1998]。构造完成以后得到的FST集合如图3-a所示,可以看到有若干线段与障碍边相交。We use the method of constructing FST in the GeoSteiner method to generate FST, which has been published in 1998 [D.M.Warme, P.Winter, and M.Zachariasen, "Exact Algorithms for Plane Steiner TreeProblems: A Computational Study", Technical Report DIKU-TR -98/11, Department of Computer Science, University of Copenhagen, April 1998]. The FST set obtained after the construction is completed is shown in Figure 3-a. It can be seen that there are several line segments intersecting with the obstacle edge.

对于已构造的每棵FST,我们判断它的边是否和障碍边相交,若相交,则认为该FST与障碍相交,删除之;否则保留。然后根据连通性,由剩下的FST形成若干连通分图,经过第一步处理完成以后得到的一个实例划分如图3-b所示。For each constructed FST, we judge whether its edge intersects with the obstacle edge. If it intersects, it is considered that the FST intersects with the obstacle and is deleted; otherwise, it is kept. Then according to the connectivity, a number of connected sub-graphs are formed from the remaining FST, and an instance division obtained after the first step of processing is shown in Figure 3-b.

第二步:这一部分的主要任务就是将上一步中处理的结果,即几个分图,各自在内部进行互连,可由一棵完整的Steiner树连成,也可由几棵Steiner树连成,而且要兼顾两个方面的考虑:一方面力求每个分图内所用的总线长最短,另一方面尽最大努力保证原分图的连通性。Step 2: The main task of this part is to interconnect the results processed in the previous step, that is, several sub-graphs, each of which can be connected by a complete Steiner tree or by several Steiner trees. In addition, two considerations should be taken into account: on the one hand, the length of the bus used in each sub-graph should be the shortest, and on the other hand, we should try our best to ensure the connectivity of the original sub-graph.

在这一部分提出了两种方法,分别命名为蚁群方法和贪婪FST方法,两者各有长处,针对不同情况选择应用能取得好的效果。In this part, two methods are proposed, which are named ant colony method and greedy FST method respectively. Both of them have their own advantages, and they can achieve good results by choosing applications for different situations.

下面首先介绍如何利用蚁群方法进行分图互联:The following first introduces how to use the ant colony method to interconnect sub-graphs:

蚁群方法是一种适用于多种NP-hard问题的启发式方法,它兼顾了贪婪方法和随机优化方法的优点,既保证了不过快地陷入到某个局部最优解,又保证了复杂度不会像模拟退火(SA)那么高。The ant colony method is a heuristic method suitable for a variety of NP-hard problems. It takes into account the advantages of the greedy method and the random optimization method. The degree will not be as high as simulated annealing (SA).

具体到我们的方法,我们把每一个分图都看作一个连接图,在每一个端点上放置一个蚂蚁,由其构成一个蚂蚁的集合。每一轮迭代,都首先任选一个蚂蚁,让其依照一定的方法,通过强连接图上的相邻边,移动到另一个相邻端点。每一次移动,所选蚂蚁都会在走过的边上留下信息素(trail),而路径上的信息素又会随着时间的推移而逐渐挥发。每一个蚂蚁同时维护着一个禁忌表(tabulist),用它记录下已访问过的端点,以避免重复访问而形成回路。当一个蚂蚁遇到另一个蚂蚁,则将前者从蚂蚁集中去掉,并将它禁忌表中的端点添到后者的禁忌表中。这个选蚂蚁、选路径、更新信息素的过程持续到所有的端点都被一棵RSMT所覆盖。记录下当前构造出的RSMT,并与前面所构造的结果进行比较,保留下线长较小者。这算是一次迭代。进行多次迭代,直到总线长不再变小,或是达到迭代次数的最大值(经过试验,我们把这个值设为100)。Specific to our method, we regard each subgraph as a connection graph, place an ant on each endpoint, and form a collection of ants. In each round of iteration, first select an ant, let it move to another adjacent end point through the adjacent edge on the strongly connected graph according to a certain method. Every time it moves, the selected ants will leave pheromone (trail) on the edge they walk, and the pheromone on the path will gradually volatilize over time. Each ant maintains a tabulist at the same time, and uses it to record the endpoints that have been visited, so as to avoid repeated visits and form a loop. When an ant encounters another ant, the former is removed from the ant set, and the endpoint in its taboo list is added to the latter's taboo list. This process of selecting ants, selecting paths, and updating pheromones continues until all endpoints are covered by an RSMT. Record the currently constructed RSMT, and compare it with the previously constructed results, and keep the one with the smaller downline length. This counts as one iteration. Perform multiple iterations until the bus length no longer becomes smaller, or reaches the maximum number of iterations (after experimentation, we set this value to 100).

蚂蚁是按照统计规律来选择下一步的目标的。这个概率取决于两个方面,一方面是蚂蚁在前面迭代中在路径上所留下的信息素浓度,另一方面是相连顶点所对应的可见度。设当前蚂蚁m在顶点i,则相连顶点中的点j的可见度可用下式来表达:Ants choose the next target according to statistical laws. This probability depends on two aspects, on the one hand, the pheromone concentration left by the ant on the path in previous iterations, and on the other hand, the visibility corresponding to the connected vertices. Assuming that the current ant m is at vertex i, the visibility of point j in the connected vertices can be expressed by the following formula:

ηη jj mm == 11 cc (( ii ,, jj )) ++ γγ ·· ψψ jj mm -- -- -- (( 11 ))

其中,γ是一个常量,Ψj m是从顶点j到当前所有其他蚂蚁已访问点的最短距离,它表征了以怎样的一个速度与其他点相连,c(i,j)是从顶点i到顶点j的长度。Among them, γ is a constant, Ψ j m is the shortest distance from vertex j to all other ants’ visited points, which represents the speed at which it is connected to other points, c(i, j) is the distance from vertex i to The length of vertex j.

边(i,j)上的信息素浓度的更新可用下式表征:The update of pheromone concentration on edge (i, j) can be characterized by the following formula:

        τi,j=(1-ρ)·τi,j+ρ·Δτi,j    (2)τ i,j = (1-ρ)·τ i,j +ρ·Δτ i,j (2)

其中ρ是一个常量,称之为蒸发速率,它表征了路径上的已有信息素挥发速度。而每选定一边,其上所增加的信息素的量为Among them, ρ is a constant, called the evaporation rate, which characterizes the volatilization speed of existing pheromones on the path. And for each selected side, the amount of pheromone added on it is

其中c(St)是当前所保留的RSMT的总线长。Et是它的边集合,Z是一个常量,表征整棵树上总的信息素的量。Wherein c(S t ) is the bus length of the currently reserved RSMT. E t is its edge set, and Z is a constant representing the total amount of pheromone on the whole tree.

至此,当前蚂蚁m选中边(i,j)的概率为So far, the probability that the current ant m selects the side (i, j) is

其中集合N,是由所有通过连接图上的边与当前蚂蚁所在顶点相连,并且不是它所访问过的顶点组成。The set N is composed of all the vertices connected to the current ant through the edges on the connection graph, and not the vertices it has visited.

下面给出蚁群方法:The ant colony method is given below:

初始化每一边上的信息素为p0;Initialize the pheromone on each side as p0;

设置当前的迭代次数为0;Set the current number of iterations to 0;

while迭代次数<设定的迭代次数的最大值while iterations<maximum value of set iterations

在端点集中的每一个端点上放置一个蚂蚁,并将他们放入各自的禁忌表中。Place an ant on each endpoint in the endpoint set and put them into their respective tabu lists.

while蚂蚁的数目>1while the number of ants > 1

任选一蚂蚁m;Choose an ant m;

通过(1)式和(4)式,计算出选择每个与之相连的顶点的概率;Through formula (1) and formula (4), calculate the probability of selecting each connected vertex;

依照概率,选出所要通过的边(i,j);According to the probability, select the side (i, j) to pass through;

将顶点j添加到蚂蚁m的禁忌表中;Add vertex j to the taboo list of ant m;

if当前蚂蚁m遇到另一只蚂蚁m’if the current ant m encounters another ant m'

then将蚂蚁m的禁忌表中的所有元素添加到m’的禁忌表中;Then add all the elements in the taboo list of ant m to the taboo list of m';

从蚂蚁集合中将m去掉;Remove m from the set of ants;

用(2)式和(3)式更新边上的信息素含量。Use formula (2) and formula (3) to update the pheromone content on the edge.

迭代次数加一;Increment the number of iterations by one;

下面介绍贪婪FST方法,是以使总线长最短为目标、在与当前所有RSMT兼容的FST集合中选取局部最优解,构造出RSMT集合。The greedy FST method is introduced below, aiming at the shortest bus length, selecting a local optimal solution in the FST set compatible with all current RSMTs, and constructing the RSMT set.

每一棵FST在初始化的时候,都要计算一下它的渴求度,渴求度定义为When each FST is initialized, its eagerness must be calculated, and the eagerness is defined as

        η(t)=c(t)λ/t(t)ω    (5)η(t)=c(t) λ /t(t) ω (5)

其中的c(t)是名为t的FST的总线长,t(t)是t的端点数。λ和ω是常数。where c(t) is the bus length of the FST named t, and t(t) is the number of endpoints of t. λ and ω are constants.

显而易见,如果一棵FST的渴求度比较小,意味着它用较少的线长覆盖了较多的点,使总线长最短的目标在局部达到优化。Obviously, if the desirability of an FST is relatively small, it means that it covers more points with less line length, so that the goal of the shortest bus length is locally optimized.

为了下面叙述方便,这里给出两棵树兼容/不兼容的定义:两棵树不兼容是指两棵树包含两个或两个以上的相同端点,或者有一条或一条以上的边重叠;两棵树兼容是指两棵树有且仅有1个的相同端点,且无重叠边。For the convenience of the following description, the definition of compatibility/incompatibility of two trees is given here: two trees are incompatible means that two trees contain two or more identical endpoints, or have one or more edges overlapping; A tree compatible means that two trees have exactly one identical endpoint and no overlapping edges.

在方法中,维护这样一个三元组(D,Q,Y),其中,Y是当前得到的RSMT的集合,D是FST的候选集,Q是没有被Y所覆盖的端点。初始化时,Y置为空,D为方法第一步后所得到的剩余FST集合,Q即为输入实例的端点集。In the method, such a triplet (D, Q, Y) is maintained, where Y is the set of RSMT currently obtained, D is the candidate set of FST, and Q is the endpoint not covered by Y. When initializing, Y is set to empty, D is the remaining FST set obtained after the first step of the method, and Q is the endpoint set of the input instance.

方法首先选出D中η最小值者,将其添加到当前最小Steiner树t中,这个t是集合Y的一个元素。再在集合D中选出η次小者,填入到t中。依此类推,不过在每次添加新的FST的同时,将其所有不兼容者从候选FST集D中去除,以免冲突,并更新集合Q。故而,如果在集合D中仍有与当前t兼容的FST,则从中选出η最小者,按上述方式添加;否则看集合D是否为空,如果不为空,则将t加入到集合Y中,再从集合D中重新构造RSMT;如果集合D为空,则将剩余的孤点所组成的集合Q,记作退化的RSMT的集合,并添加到集合Y中。The method first selects the one with the minimum value of η in D, and adds it to the current minimum Steiner tree t, which is an element of the set Y. Then select the n times smaller one from the set D and fill it in t. And so on, but every time a new FST is added, all its incompatibles are removed from the candidate FST set D to avoid conflicts, and the set Q is updated. Therefore, if there is still an FST compatible with the current t in the set D, select the one with the smallest η and add it as above; otherwise, check whether the set D is empty, if not, add t to the set Y , and then reconstruct the RSMT from the set D; if the set D is empty, record the set Q composed of the remaining isolated points as the set of degenerated RSMT, and add it to the set Y.

下面给出贪婪FST方法:The greedy FST method is given below:

D←Fi;Q←T;Y←NULL;D←Fi; Q←T; Y←NULL;

从集合D中选出渴求度最小者f;Select f from the set D with the least desire;

Y←t←f;Y←t←f;

D←D-f;D←D-f;

将集合D中与Y不兼容的FST去掉;Remove the FST in the set D that is not compatible with Y;

将Q中被f覆盖的端点去掉;Remove the endpoint covered by f in Q;

while D非空while D is not empty

while在D中存在与集合t兼容的FSTwhile in D there exists a FST compatible with the set t

选出η最小者f;Select f with the smallest η;

t←t+f;t←t+f;

从集合D中去掉与f不兼容的FST;Remove FSTs from the set D that are incompatible with f;

从Q中去掉被f覆盖的端点;Remove the endpoints covered by f from Q;

从集合D中选出η最小者f;Select f from the collection D with the smallest n;

t←f;t←f;

Y←Y+t;Y←Y+t;

从集合D中去掉与f不兼容的FST;Remove FSTs from the set D that are incompatible with f;

从Q中去掉被f覆盖的端点;Remove the endpoints covered by f from Q;

将余下的孤点全部放入集合Y中;Put all the remaining isolated points into the set Y;

蚁群方法的性能优于贪婪FST方法,而贪婪FST方法的时间复杂度低于前者。为了扬长避短,需要针对不同的实例采用不同的方法。通过分析实验结果,我们设计,对端点数多于20的分图,采用贪婪FST方法;否则采用蚁群方法。实验结果表明这是一个提高方法总体性能的有效措施。The performance of the ant colony method is better than the greedy FST method, and the time complexity of the greedy FST method is lower than the former. In order to maximize strengths and avoid weaknesses, different methods need to be adopted for different instances. By analyzing the experimental results, we design that the greedy FST method is used for subgraphs with more than 20 endpoints; otherwise, the ant colony method is used. Experimental results show that this is an effective measure to improve the overall performance of the method.

利用蚁群方法和贪婪FST方法进行分图间互联,在每个分图内部用Steiner树连接端点,图4表示了根据这种思路由图3-b的结果生成子树的情况。The ant colony method and the greedy FST method are used to interconnect the sub-graphs, and the Steiner tree is used to connect the endpoints in each sub-graph. Figure 4 shows the situation of generating subtrees from the results of Figure 3-b according to this idea.

第三步:经过了方法第一、二步,得到了一些分离的子树,这一部分的主要任务就是将它们互连起来,成为一棵完整的Steiner树。方法是将树的互连转化为寻求最小路径问题。即,求出每一对树中的每一对点的最小路径,记录下其中的最小者,作为对应的两棵树的间距,再以贪婪的方法对树进行互连。The third step: After the first and second steps of the method, some separated subtrees are obtained. The main task of this part is to interconnect them to become a complete Steiner tree. The method is to turn the interconnection of trees into a minimum path problem. That is, find the minimum path of each pair of points in each pair of trees, record the smallest one as the distance between the corresponding two trees, and then interconnect the trees in a greedy way.

我利用文献[Zheng SQ,Lim JS,Iyengar SS.″Finding obstacle-avoiding shortestpaths using implicit connection graphs.″IEEE Transactions on Computer Aided Design,1996,15(1):103-110.]的方法来求最短路径。I use the literature [Zheng SQ, Lim JS, Iyengar SS. "Finding obstacle-avoiding shortest paths using implicit connection graphs. "IEEE Transactions on Computer Aided Design, 1996, 15(1): 103-110.] to find the shortest path .

首先,给出有向边u→v折返值的定义:给定一条有向边u→v和一个目标点t,设L为通过点t且与有向边u→v相垂直的直线,则:First, the definition of the return value of the directed edge u→v is given: given a directed edge u→v and a target point t, let L be a straight line passing through the point t and perpendicular to the directed edge u→v, then :

当u,v在L的同侧,且u到L的距离远于v,则u→v的折返值=0;When u and v are on the same side of L, and the distance from u to L is farther than v, then the return value of u→v=0;

当u,v在L的同侧,且u到L的距离近于v,则u→v的折返值=线段u→v的长度;When u and v are on the same side of L, and the distance from u to L is closer to v, then the return value of u→v=the length of line segment u→v;

当线段u→v与L交于w,则u→v的折返值=线段w→v的长度。When the line segment u→v and L intersect at w, then the return value of u→v=the length of the line segment w→v.

由上,点的折返值可以这样定义:从源点出发到当前目标点的寻路过程中,某一点的折返值即为从源点到该点的所有路径的折返值之和。From the above, the return value of a point can be defined as follows: during the pathfinding process from the source point to the current target point, the return value of a certain point is the sum of the return values of all paths from the source point to the point.

在初始化阶段,仅基于障碍所构造的逃逸图被生成。这里,逃逸图是由障碍的水平边和竖直边向两端扩展,直到遇到障碍,这样扩展后的线段相交形成的一种连接图。In the initialization phase, only escape graphs constructed based on obstacles are generated. Here, the escape graph is a connection graph formed by extending the horizontal and vertical edges of the obstacle to both ends until the obstacle is encountered, and the expanded line segments intersect.

然后,选出两棵Steiner树,将其上的一对点添加到逃逸图上,依折返值方法求出其最短路径,再从逃逸图上删除两点。照此求出所选的两棵Steiner树的所有端点对的最短路径,并保留最小者。同理,对每两棵Steiner树都进行上述操作,并把结果保留到一个按路径长度升序排列的集合中,每次从中选取一个最小路径,能够将其插入当前图中而不生成环,直到连成一棵完整的Steiner树。其中用到的折返值方法是这样的:维护两个集合,已访问集合V和候选集合A。一开始,集合A中仅有元素源点s。每当有元素填入集合V,它的未访问的相邻节点就要被填入到集合A中。而当集合A不为空并且尚未走到目标点时,都要从集合A中取出折返值最小的元素添加到集合V中,同时从集合A中将之删除。方法的流程如图5所示。Then, two Steiner trees are selected, a pair of points on them are added to the escape graph, and the shortest path is obtained by the reentry value method, and then two points are deleted from the escape graph. Find the shortest path of all the end-point pairs of the two selected Steiner trees in this way, and keep the smallest one. In the same way, perform the above operations on every two Steiner trees, and save the results in a set arranged in ascending order of path length, select a minimum path from it each time, and insert it into the current graph without generating a cycle until into a complete Steiner tree. The return value method used in it is as follows: maintain two sets, the visited set V and the candidate set A. Initially, there is only element source s in set A. Whenever an element is filled into set V, its unvisited neighbors are filled into set A. And when the set A is not empty and has not yet reached the target point, the element with the smallest return value must be taken from the set A and added to the set V, and deleted from the set A at the same time. The flow of the method is shown in Figure 5.

文献[Zheng SQ,Lim JS,Iyengar SS.″Finding obstacle-avoiding shortest pathsusing implicit connection graphs.″IEEE Transactions on Computer Aided Design,1996,15(1):103-110.]已经证明,绕障碍下的最小路径是Manhattan距离加上2倍的折返值。本文采用求绕障碍下的最短路径的方法来求源点与目标点间距离,本步方法基于该文献中提出的折返值方法。图6显示了第三步完成以后生成的完整Steiner树。The literature [Zheng SQ, Lim JS, Iyengar SS. "Finding obstacle-avoiding shortest paths using implicit connection graphs. "IEEE Transactions on Computer Aided Design, 1996, 15(1): 103-110.] has proved that the minimum The path is the Manhattan distance plus 2 times the retracement value. In this paper, the method of finding the shortest path under obstacles is used to find the distance between the source point and the target point. The method in this step is based on the reentry value method proposed in the literature. Figure 6 shows the complete Steiner tree generated after the third step is completed.

在实施中,规定公式(1)-(5)中的参数取值如下:In the implementation, the values of the parameters in formulas (1)-(5) are stipulated as follows:

α=1,β=1,γ=1,ρ=0.5,Z=10000,MAX_LOOP=100,λ=1,ω=4。α=1, β=1, γ=1, ρ=0.5, Z=10000, MAX_LOOP=100, λ=1, ω=4.

下面结合一个MCNC的电路线网的例子,说明本方法的全过程,如下:Below in conjunction with the example of the circuit net of a MCNC, illustrate the whole process of this method, as follows:

为了实现,或者说是具体实施本项发明,我们给出以下关于发明实施的描述。In order to realize, or specifically implement the present invention, we give the following description about the implementation of the invention.

实施本发明的计算机系统:本发明所设计的为布线服务的软件要在一个具体的计算机系统上得以实施,该计算机系统具体描述如下。The computer system for implementing the present invention: the software designed in the present invention for wiring service shall be implemented on a specific computer system, and the computer system is specifically described as follows.

一台Sun公司的V880型工作站;A Sun V880 workstation;

Unix操作系统;Unix operating system;

C++编程语言;C++ programming language;

Vi编辑器、gcc编译器、gdb调试工具等。Vi editor, gcc compiler, gdb debugging tool, etc.

步骤(1):预备工作。读入线网信息、障碍信息并处理这些信息。下面是描述线网的文件:net 17(20,1000)(300,400)(600,1000)(500,1100)(650,1110)(700,1200);Step (1): Preliminary work. Read in net information, obstacle information and process them. The following is the file describing the net: net 17(20,1000)(300,400)(600,1000)(500,1100)(650,1110)(700,1200);

——说明:线网描述文件的一般形式是:net net_id{(pin_x,pin_y)};——Description: The general form of the net description file is: net net_id{(pin_x, pin_y)};

其中net_id表示线网号,(pin_x,pin_y)表示线网需要连接的引脚的坐标。Among them, net_id represents the net number, and (pin_x, pin_y) represents the coordinates of the pins to be connected to the net.

针对17号线网的障碍信息描述文件如下:The obstacle information description file for Line 17 is as follows:

obs(100,1300)(400,1300)(400,800)(1000,800)(1000,600)(100,600);obs(100,1300)(400,1300)(400,800)(1000,800)(1000,600)(100,600);

——说明:障碍描述文件的一般形式是:obs{(x,y)};——Explanation: The general form of the obstacle description file is: obs{(x, y)};

其中(x,y)表示障碍多边形上的顶点,点列的顺序是从左下角开始,沿着逆时针的方向依次排列。Wherein (x, y) represents the vertices on the obstacle polygon, and the order of the point columns starts from the lower left corner and is arranged in a counterclockwise direction.

图7为输入线网net17和障碍的示意图,图中给出了待连线网端点的坐标,以及障碍的各端点坐标。FIG. 7 is a schematic diagram of the input net17 and obstacles, in which the coordinates of the endpoints of the net to be connected and the coordinates of the endpoints of the obstacles are given.

步骤(2):根据线网的端点点构造FST集合F,我们采用GeoSteiner中介绍的方法(见具体实施方式第一步中的叙述,构造FST的程序可以在GeoSteiner3.1的开发包找到中,可以在http://www.diku.dk/geosteiner/免费下载使用)构造FST。根据net17的端点生成的FST共有5个,我们为他们编号为1、2、3、4、5、6、7、8,如图8所示。Step (2): construct the FST collection F according to the endpoint point of line network, we adopt the method that introduces among the GeoSteiner (see the narration in the first step of the specific implementation mode, the program of constructing FST can be found in the development kit of GeoSteiner3.1, It can be downloaded and used for free at http://www.diku.dk/geosteiner/) to construct FST. There are 5 FSTs generated according to the endpoints of net17, and we number them 1, 2, 3, 4, 5, 6, 7, and 8, as shown in Figure 8.

步骤(3):删除所有与障碍相交的FST。这样第1、2、4、8号FST都要被删除,保留3、5、6、7号FST。这样根据连通性,3、5、6、7号FST把4个端点分为两组——A、B为一组(T1),C、D、E、F为一组(T2),如图9所示。T1和T2组内的端点由FST互相连通,而T1和T2之间没有连通。由此,连接T1的FST构成分图H1,连接T2的FST构成分图H2。Step (3): Delete all FSTs that intersect with obstacles. In this way, FSTs No. 1, 2, 4, and 8 will be deleted, and FSTs No. 3, 5, 6, and 7 will be retained. In this way, according to the connectivity, FST Nos. 3, 5, 6, and 7 divide the four endpoints into two groups——A and B are a group (T1), and C, D, E, and F are a group (T2), as shown in the figure 9. The endpoints in the T1 and T2 groups are connected to each other by FST, but there is no connection between T1 and T2. Thus, the FST connected to T1 constitutes the subgraph H1, and the FST connected to T2 constitutes the subgraph H2.

步骤(4):构造子树。下面以H1和H2分图内的连接为例说明前面在具体实施方式中所提到的第二步的连接方法。在此为了说明4.1和4.2所叙述的两种子树构造方法,我们分别采用蚁群方法(步骤4.1)和贪婪FST方法(步骤4.2)为分图H1和H2构造子树。首先介绍采用蚁群方法为H1分图构造子树的具体过程,步骤如下:Step (4): Construct subtree. The connection method in the second step mentioned above in the specific implementation manner will be described below by taking the connection in the sub-graphs H1 and H2 as an example. In order to illustrate the two subtree construction methods described in 4.1 and 4.2, we use the ant colony method (step 4.1) and the greedy FST method (step 4.2) to construct subtrees for subgraphs H1 and H2 respectively. First, the specific process of constructing subtrees for the H1 subgraph using the ant colony method is introduced, and the steps are as follows:

由于属于H1分图的FST是6号FST,我们根据6号FST构造H1分图的连接图C1,规定蚂蚁只能沿着C1的边移动,如图10(1)所示。接下来初始化C1边上的信息素值:Since the FST belonging to the H1 subgraph is No. 6 FST, we construct the connection graph C1 of the H1 subgraph according to the No. 6 FST, and stipulate that ants can only move along the edge of C1, as shown in Figure 10(1). Next, initialize the pheromone value on the side of C1:

τ(AU)=τ(UB)=1.0。τ(AU)=τ(UB)=1.0.

其中τ(AU)和τ(UB)分别表示边AU和边UB上的信息素值。where τ(AU) and τ(UB) denote the pheromone values on the edge AU and edge UB, respectively.

下面开始蚁群方法的第一次迭代:首先在H1的2个端点(A、B)处各放置一只蚂蚁,记这两只蚂蚁为ant1(初始位于A点)和ant2(初始位于B点),设置ant1和ant2的禁忌表分别为{A}和{B}。现在通过蚂蚁的移动来构造一棵Steiner树:Let’s start the first iteration of the ant colony method: first place an ant at each of the two endpoints (A, B) of H1, and record these two ants as ant1 (initially located at point A) and ant2 (initially located at point B). ), set the taboo tables of ant1 and ant2 as {A} and {B} respectively. Now construct a Steiner tree through the movement of ants:

第一次选择位于ant1(每次随机选择一只存活的蚂蚁),根据(1)式计算ant1选择AU边时的可见度,这里m=1,i=A,j=U,c(i,j)=|AU|=280(边AU的长度),γ是一个常量,我们把它设为1,Ψj m是从顶点j到其他蚂蚁所有已访问点的最短距离,这时,所谓其他蚂蚁就是ant2,ant2所访问的点就是它的禁忌表中的点,即{B},所以Ψj m是从顶点U到B点的最短距离|BU|=600,代入(1)式得到:The first selection is at ant1 (a surviving ant is randomly selected each time), and the visibility when ant1 selects the AU side is calculated according to formula (1), where m=1, i=A, j=U, c(i, j )=|AU|=280 (length of side AU), γ is a constant, we set it as 1, Ψ j m is the shortest distance from vertex j to all visited points of other ants, at this time, the so-called other ants It is ant2, the point visited by ant2 is the point in its taboo table, that is, {B}, so Ψ j m is the shortest distance from vertex U to point B |BU|=600, substituting into formula (1) to get:

&eta;&eta; jj mm == &eta;&eta; Uu 11 == 11 280280 ++ 11 &times;&times; 600600 &ap;&ap; 0.001140.00114

根据(4)式,计算ant1选择边AU的概率,其中τi,j是C1上(i,j)边上的信息素值,这里就是边AU上的信息素值,即τ(AU)=1.0。α和β是常量,我们设为α=1,β=1。集合N,是由所有通过强连接图上的边与当前蚂蚁所在顶点相连,并且不是它所访问过的顶点组成,所以N={B}。According to formula (4), calculate the probability that ant1 selects the edge AU, where τ i, j is the pheromone value on the (i, j) edge of C1, here is the pheromone value on the edge AU, that is, τ(AU)= 1.0. α and β are constants, we set α=1, β=1. The set N is composed of all the vertices connected to the current ant through the edges on the strongly connected graph, and not the vertices it has visited, so N={B}.

pp ii ,, jj == pp AUAU == &tau;&tau; AUAU &CenterDot;&CenterDot; &eta;&eta; BB 11 &tau;&tau; AUAU &CenterDot;&Center Dot; &eta;&eta; BB 11 == 1.01.0 &times;&times; 0.001140.00114 1.01.0 &times;&times; 0.001140.00114 == 11

由于沿着AU边移动的概率是1,所以ant1沿着AU边移动到U,ant1把U点加入到自己的tabulist中,所以现在ant1的tabulist={A,U}。Since the probability of moving along the AU side is 1, ant1 moves to U along the AU side, and ant1 adds U point to its own tabulist, so now the tabulist of ant1={A, U}.

目前还存活两只蚂蚁,所以继续选择蚂蚁,本次选择的是ant2(同上,也是随机选择的),与上面同样的过程,我们计算出ant2沿着BU边移动的概率为1,所以ant2沿着BU边移动到U;由于U点已经包含在ant1的tabulist中,所以ant2死亡,并且把ant2的tabulist合并到ant1的tabulist中,即ant1的tabulist={A,B,U}。There are still two ants alive, so continue to choose ants. This time, we choose ant2 (same as above, also randomly selected). In the same process as above, we calculate that the probability of ant2 moving along the BU side is 1, so ant2 moves along the BU side. Move to U along the BU side; since the U point has been included in the tabulist of ant1, ant2 dies, and merges the tabulist of ant2 into the tabulist of ant1, that is, the tabulist of ant1={A, B, U}.

这说明已经构造出来一个完整解St,这个解由存活的那只蚂蚁的tabulist中的点表示。计算这个解的权值,也就是这棵Steiner树的总线长:This shows that a complete solution S t has been constructed, and this solution is represented by the point in the tabulist of the surviving ant. Calculate the weight of this solution, which is the bus length of this Steiner tree:

c(St)=|AU|+|UB|=280+600=880c(S t )=|AU|+|UB|=280+600=880

根据上面的权值和公式(3)计算信息素的增量:Calculate the increment of pheromone according to the above weight and formula (3):

&Delta;&tau;&Delta;&tau; ii ,, jj == ZZ cc (( SS tt )) == 10001000 880880 == 1.1361.136

然后再根据(2)式更新AU和UB两条边上的信息素的值,ρ是一个常量,称之为蒸发速率,它表征了路径上的已有信息素挥发速度,我们设为0.5:Then update the values of pheromones on the two sides of AU and UB according to formula (2). ρ is a constant, called the evaporation rate, which characterizes the volatilization speed of existing pheromones on the path, and we set it to 0.5:

τ(AU)=(1-ρ)×τ(AU)+ρ×Δτi,j τ(AU)=(1-ρ)×τ(AU)+ρ×Δτ i, j

      =(1-0.5)×1.0+0.5×1.136=1.068=(1-0.5)×1.0+0.5×1.136=1.068

τ(BU)=(1-ρ)×τ(BU)+ρ×Δτi,j τ(BU)=(1-ρ)×τ(BU)+ρ×Δτ i, j

      =(1-0.5)×1.0+0.5×1.136=1.068=(1-0.5)×1.0+0.5×1.136=1.068

下面开始新的一轮迭代,再构造一组解,并与上面已有的最优解作比较,如果优于当前最优解,则以此解来替换当前最优解,否则进行下一次循环,直到循环次数大于100。可以得到如图11所示的子树S1。Next, start a new round of iterations, construct a set of solutions, and compare them with the existing optimal solutions above. If it is better than the current optimal solution, use this solution to replace the current optimal solution, otherwise proceed to the next cycle. , until the number of loops is greater than 100. A subtree S1 as shown in FIG. 11 can be obtained.

下面介绍用贪婪FST方法为分图H2构造子树的方法。The following introduces the method of constructing a subtree for the subgraph H2 using the greedy FST method.

对于分图H2,候选的FST是第3、5、7号FST,见图8中的(3)、(5)、(7),下面,我们用F3、F5和F7标记这3个FST。首先初始化3个集合:D←{F3,F5,F7};Q←{C,D,E,F};Y←NULL。然后根据具体实施方式中的(5)式计算D中每个FST的渴求度,我们取常数λ=1,ω=4;c(t)为FST的总线长,所以:For sub-graph H2, the candidate FSTs are No. 3, No. 5 and No. 7 FSTs, see (3), (5), and (7) in Fig. 8. Below, we mark these 3 FSTs with F3, F5 and F7. First initialize 3 sets: D←{F3, F5, F7}; Q←{C, D, E, F}; Y←NULL. Then according to (5) formula in the specific embodiment calculates the degree of thirst of each FST in D, we get constant λ=1, ω=4; c (t) is the bus length of FST, so:

c(F3)=|500-650|+|1100-1110|+|1000-1100|=260。c(F3)=|500-650|+|1100-1110|+|1000-1100|=260.

c(F5)=|500-600|+|1100-1000|=200。c(F5)=|500-600|+|1100-1000|=200.

c(F7)=|650-700|+|1110-1200|=140。c(F7)=|650-700|+|1110-1200|=140.

t(t)为FST覆盖的端点个数,显然:t(t) is the number of endpoints covered by FST, obviously:

t(F3)=3,t(F5)=2,t(F7)=2。t(F3)=3, t(F5)=2, t(F7)=2.

所以渴求度分别为:So the degrees of desire are:

η(F3)=c(F3)λ/t(F3)ω=260/34=3.21。η(F3)=c(F3) λ /t(F3) ω =260/3 4 =3.21.

η(F5)=c(F5)λ/t(F5)ω=200/24=12.5。η(F5)=c(F5) λ /t(F5) ω =200/2 4 =12.5.

η(F7)=c(F7)λ/t(F7)ω=140/24=8.75。η(F7)=c(F7) λ /t(F7) ω =140/2 4 =8.75.

取D中渴求度最小的FST,显然是F3,将F3添加到当前部分解集合Y中;然后从D中去掉F3,则D={F5,F7},下面从D中去掉所有与F3不兼容的FST,容易看出:F5和F3有2个相同端点(C、D),根据不兼容的定义,F5和F3不兼容,所以应该把F5从集合D中去掉;同理可判断F7和F3兼容,应该保留在集合D中。所以现在3个集合的元素和当前子树t变为如下:Take the FST with the least desirability in D, which is obviously F3, and add F3 to the current partial solution set Y; then remove F3 from D, then D={F5, F7}, remove all incompatible with F3 from D It is easy to see that F5 and F3 have two identical endpoints (C, D). According to the definition of incompatibility, F5 and F3 are incompatible, so F5 should be removed from the set D; similarly, F7 and F3 can be judged compatible and should remain in set D. So now the elements of the 3 sets and the current subtree t become as follows:

D={F7};Q={F};Y={F3}。t=F3。D={F7}; Q={F}; Y={F3}. t=F3.

由于集合D不为NULL,所以从D中选出与t兼容的FST-F7放入集合Y中,由于F7是D中的唯一一个元素,所以不用计算F7的兼容性,直接选出,现在D为空,然后去掉Q中被F7覆盖的端点F,则Q也为空,所以循环结束。而且现在没有孤点,所以集合Y维持现状,即Y={F3,F7}。Since the set D is not NULL, the FST-F7 compatible with t is selected from D and put into the set Y. Since F7 is the only element in D, it is directly selected without calculating the compatibility of F7. Now D is empty, and then remove the endpoint F covered by F7 in Q, then Q is also empty, so the cycle ends. And now there is no isolated point, so the set Y maintains the status quo, that is, Y={F3, F7}.

现在从集合Y中的FST可以得到如图11所示的一棵子树S2。Now a subtree S2 as shown in Figure 11 can be obtained from the FST in the set Y.

步骤(5),连接分图。对于上面求得的2个子树,两两求最短距离,即,对于每一对子树,分别求所有点对之间的最短路径,然后取最短的那个。Step (5), connect the subgraphs. For the two subtrees obtained above, find the shortest distance two by two, that is, for each pair of subtrees, find the shortest path between all point pairs, and then take the shortest one.

下面,以寻找B和C的最短路径为例给出最小折返值方法的具体实施过程。在下面的说明中,为了区分端点和一般顶点,我们记端点B为t1,记端点C为t3。In the following, the specific implementation process of the minimum reentry value method is given by taking finding the shortest path between B and C as an example. In the following description, in order to distinguish endpoints from general vertices, we record endpoint B as t1 and endpoint C as t3.

在求t1和t3最短路径之前先要做如下几项工作:首先利用Zheng在文献[Zheng S Q,LimJ S,Iyengar S S.Finding obstacle-avoiding shortest paths using implicit connectiongraphs[J].IEEE Transaction on Computer-Aided Design of Integrated Circuits andSystems.1996,15(1):103-110.]提出的方法为障碍构造逃逸图,如图12(a)所示,先后将源点t1和目标点t3添加到上述构造的逃逸图中,如图12(b)、(c)所示。新添加点的坐标都在图中标出。Before finding the shortest path between t1 and t3, the following tasks should be done first: First, use Zheng’s literature [Zheng S Q, LimJ S, Iyengar S S.Finding obstacle-avoiding shortest paths using implicit connection graphs[J].IEEE Transaction on Computer -Aided Design of Integrated Circuits and Systems.1996, 15(1): 103-110.] The method proposed is to construct an escape graph for obstacles, as shown in Figure 12(a), adding the source point t1 and target point t3 to the above The constructed escape graph is shown in Figure 12(b) and (c). The coordinates of the newly added points are marked in the figure.

在寻路的过程中,设定两个集合,候选点集合C和已访问点集合V。初始状态,V置为空,C中仅有源点t1。然后重复下述操作:从集合C中取出一个折返值最小者,添加到集合V中,即保证每次只访问当前已知的折返值最小者,同时将它的未被访问的相邻节点加入到集合C中。In the process of pathfinding, two sets are set, candidate point set C and visited point set V. In the initial state, V is set to be empty, and there is only source point t1 in C. Then repeat the following operations: take a minimum return value from the set C and add it to the set V, that is, ensure that only the currently known minimum return value is visited each time, and add its unvisited adjacent nodes into set C.

如前所述,首先初始化已访问集合V为空、候选集合C为t1,设置当前点为t1;然后把与t1相邻的3个点v2、v3、v6加入候选集合C,并计算它们的折返值;接下来,选择候选集合C中折返值最小的那个点v6,加入已访问集合V,设置当前点为v6;上述过程如表1中“初始化”和“第一次选点”所示。这样继续,直到把目标点t3加入到集合V中。As mentioned above, first initialize the visited set V to be empty, the candidate set C to be t1, and set the current point to be t1; then add the three points v2, v3, and v6 adjacent to t1 to the candidate set C, and calculate their Turnback value; Next, select the point v6 with the smallest turnback value in the candidate set C, add it to the visited set V, and set the current point to v6; the above process is shown in "initialization" and "first point selection" in Table 1 . This continues until the target point t3 is added to the set V.

根据最小折返值方法计算t1到t3最短路径时,每步的计算结果如表1所示。表1中的“点(值)”中的“值”表示该点的折返值,如v7(200)表示点v7的折返值为200。When calculating the shortest path from t1 to t3 according to the minimum return value method, the calculation results of each step are shown in Table 1. The "value" in the "point (value)" in Table 1 indicates the return value of this point, for example, v7(200) indicates that the return value of point v7 is 200.

表1计算t1到t3最短路径的最小折返值方法   已访问集合V   候选集合C   对应图   初始化   Φ   t1   图13(a)   第一次选点   t1(0)   v6(0),v3(200),v2(400)   图13(b)   第二次选点   v6(0)   v7(200),v3(200),v5(400),v2(400)   图13(c)   第三次选点   v7(200)   v10(200),v3(200),v5(400),v2(400)   图13(d)   第四次选点   v10(200)   v9(200),v12(200),v3(200),v5(400),v2(400)   图13(e)   第五次选点   v9(200)   t3(200),v12(200),v3(200),v5(400),v2(400),v8(500)   图13(f)   第六次选点   t3(200),停止   图13(g) Table 1 Calculating the minimum return value method of the shortest path from t1 to t3 Collection V visited Candidate set C Correspondence diagram initialization Φ t1 Figure 13(a) first point selection t1(0) v6(0), v3(200), v2(400) Figure 13(b) second point selection v6(0) v7(200), v3(200), v5(400), v2(400) Figure 13(c) third point selection v7(200) v10(200), v3(200), v5(400), v2(400) Figure 13(d) The fourth selection v10(200) v9(200), v12(200), v3(200), v5(400), v2(400) Figure 13(e) fifth point selection v9(200) t3(200), v12(200), v3(200), v5(400), v2(400), v8(500) Figure 13(f) The sixth point selection t3(200), stop Figure 13(g)

注:括号内为折返值Note: the rebate value in brackets

现给出表1中几个典型折返值的计算过程:The calculation process of several typical reentry values in Table 1 is given here:

在第一次选点过程中,需要计算v6的折返值,由折返值的定义,从源点t1出发到当前目标点v6的寻路过程中,v6的折返值是从源点t1到v6的所有路径的折返值之和;从t1到v6的路径仅包含t1→v6一条线段,这条线段处于过最终目标点t3的垂线的同侧,而且t1比v6远,所以根据线段折返值定义的第一种情况,该线段的折返值为0,所以v6的折返值为0。In the first point selection process, the return value of v6 needs to be calculated. According to the definition of the return value, in the pathfinding process from the source point t1 to the current target point v6, the return value of v6 is from the source point t1 to v6 The sum of the return values of all paths; the path from t1 to v6 only contains a line segment t1→v6, which is on the same side of the vertical line passing through the final target point t3, and t1 is farther than v6, so it is defined according to the return value of the line segment In the first case, the return value of the line segment is 0, so the return value of v6 is 0.

在第五次选点中,要计算v8的折返值,由于已知v9的折返值为200,根据折返值的定义容易推出,v8的折返值等于v9的折返值与线段v9→v8的折返值之和。线段v9→v8在过最终目标点t3的垂线的同侧,而且v8比v9远,这属于折返值定义的第二种情况,所以折返值应该是线段的长度,即为300。所以v8的折返值为300+v9的折返值,等于500。In the fifth point selection, it is necessary to calculate the return value of v8. Since the return value of v9 is known to be 200, it is easy to deduce according to the definition of the return value. The return value of v8 is equal to the return value of v9 and the return value of the line segment v9→v8 Sum. The line segment v9→v8 is on the same side of the vertical line passing through the final target point t3, and v8 is farther than v9, which belongs to the second case of the definition of the return value, so the return value should be the length of the line segment, which is 300. So the rebate value of v8 is 300+return value of v9, which is equal to 500.

在第二次选点过程中,对于线段v6→v7,到v6的时候折返值积累为0,v6和v7分别处在过目标点t的垂线的两侧,这是上述折返值定义的第三种情况,所以处在该垂线下面的线段的长度200即为线段v6→v7的折返值。所以v7的折返值为200+v6的折返值,等于200。In the second point selection process, for the line segment v6→v7, the return value is accumulated to 0 when reaching v6, and v6 and v7 are respectively located on both sides of the vertical line passing through the target point t, which is the first definition of the return value above. Three cases, so the length 200 of the line segment below the vertical line is the return value of the line segment v6→v7. So the rebate value of v7 is 200+return value of v6, which is equal to 200.

用同样的方法可计算(A、C)、(A、D)、(A、E)、(A、F)、(B、C)、(B、D)、(B、E、(B、F)的最短路径分别如图14-a,b,c,d,e,f,g,h所示。下面用SP(ab)表示ab间最短路径的长度,则:(A, C), (A, D), (A, E), (A, F), (B, C), (B, D), (B, E, (B, The shortest path of F) is shown in Fig. 14-a, b, c, d, e, f, g, h respectively. The length of the shortest path between ab is represented by SP(ab) below, then:

SP(AC)=2000,SP(AD)=1700,SP(AE)=1760,SP(AF)=1800。SP(AC)=2000, SP(AD)=1700, SP(AE)=1760, SP(AF)=1800.

SP(BC)=1700,SP(BD)=1700,SP(BE)=1840,SP(BF)=1800。SP(BC)=1700, SP(BD)=1700, SP(BE)=1840, SP(BF)=1800.

选择最短路径BC来连接两棵子树,得到如图15所示的最终连接结果。Select the shortest path BC to connect the two subtrees, and get the final connection result shown in Figure 15.

Claims (1)

1. the right angle Steiner tree method of VLSI (very large scale integrated circuit) obstacle avoidance is characterized in that it contains following steps successively:
(1) following preset data is read in initialization, computing machine from the outside:
The information of gauze: gauze is numbered, and needs to connect the physical location of pin in the gauze, represents with two-dimentional Cartesian coordinate, is end points;
Complaint message: the polygonal point range that forms obstacle;
(2) construct the set of complete Steiner tree according to the end points of gauze with the kit of GeoSteiner3.1, represent, be called for short F with FST;
(3) end points is divided: all and the FST that obstacle intersects among the set F that deletion step (2) obtains, obtain new FST set, and use F ' expression, wherein, continuous FST is divided into the subclass Ti of n separation to end points, i=1 ..., n;
(4) structure subtree: each the subclass Ti to step (3) obtains, according to the FST set constructor Steiner tree that forms Ti, represent that with Si this step will be adopted following two kinds of methods respectively according to end points quantity:
(4.1) for end points quantity less than 20 subclass Ti, adopt method construct subtree based on the ant group, its steps in sequence is as follows:
(4.1.1) set: the plain value of the initial information on the limit of subclass Ti, represent that with τ τ is the pheromones value;
(4.1.2) 1 ant is placed at each the end points place in each Ti, and is numbered, and represents with antName; Simultaneously, each ant is safeguarded a taboo table, the point that record had been visited; Set the maximal value of iterations;
(4.1.3) optional ant m calculates the probability of selecting each summit adjacent with m by following formula, and i represents the summit at ant m place, and j represents the adjacent vertex of summit i, and (i, j) expression connects the limit of summit i and summit j, p I, jExpression ant m selects the probability on the summit that summit j will arrive as the next one:
Wherein, set N is a vertex set, and it is to be linked to each other with summit, current ant m place by the limit on the Ti by all, and is not that the summit that it was visited is formed;
η j m: current ant m when the i of summit, and the visibility of a certain summit j in the summit that ant m links to each other:
&eta; j m = 1 c ( i , j ) + &gamma; &CenterDot; &psi; j m
ψ j m: the bee-line from summit j to the summit that current every other ant had been visited, be known quantity,
C (i, j): from the summit i length of j to the limit,
τ Ij: the limit (i, j) updating value of the pheromone concentration on:
τ i,j=(1-ρ)·τ i,j+ρ·Δτ i,j
Δ τ Ij: when whenever selecting on one side, the amount of the pheromones that is increased on it:
Figure C2004100691180003C1
Wherein, c (S 1) be total line length of the current minimum right angle Steiner tree that keeps, E 1It is its limit set;
Above-mentioned α, β, γ, ρ, Z are all constant, preestablish, and its scope is as follows:
α∈[1,5],β∈[1,5],γ∈[1,4],ρ∈[0,1],Z∈[1,∝],
Wherein, α, β, γ, Z are integers, and ρ is a real number;
Above-mentioned tabulist is the taboo table, and k  tabulist (m) expression is the visibility of the some k in the taboo table of m not;
(4.1.4) Probability p that obtains according to step (4.1.3) Ij, the limit that ant m selection will be passed through (i, j);
(4.1.5) summit j is added in the taboo table of ant m;
(4.1.6) if preceding ant m runs into another ant m ', just ant m is concentrated from ant and remove, and the end points in the taboo table of m is added in the taboo table of another ant m ';
(4.1.7) upgrade limit (i, j) content of the pheromones on;
(4.1.8) iterations adds 1, and repeating step (4.1.2)-(4.1.8) iterates to till the maximal value of iterations of setting always;
(4.2) for end points quantity greater than 20 subclass Ti, adopt greedy search strategy structure subtree based on FST, contain the following step successively:
(4.2.1) deletion and the crossing FST of obstacle, remaining FST is called candidate FST, calculates the degree of craving for of all candidate FST again] (t):
η(t)=c(t) λ/t(t) ω
Wherein, t represents that needs calculate the FST of degree of craving for, total line length of c (t) expression t, and t (t) is the number of endpoint of FST, and λ and ω are constants, preestablish, and its scope is as follows:
λ ∈ [1,4], ω ∈ [1,4], wherein, λ, ω are integers;
(4.2.2) select the FST of candidate collection degree of craving for minimum, i.e. f, and f joined current separating among the set Y;
(4.2.3) all and the incompatible FST of f among the deletion candidate FST here, are set for two and incompatiblely are meant that two trees comprise two or more same endpoints, perhaps have one or more than one limits overlapping;
(4.2.4) all end points that covered by f in the set of deletion end points;
If (4.2.5) candidate FST set is not empty, then repeat the step of (4.2.2)-(4.2.4), select new FST to join in current the separating, be empty up to candidate FST set;
If (4.2.6) also have surplus element in the end points set, then they joined in current the separating;
(5) utilize the minimum value of turning back method, it is the detour method, calculate the shortest path between per two subtrees, thereby Si, i=1, ..., n connects into a complete Steiner tree, and the method for calculating the shortest path between two subtrees is: for all end points that belong to this two stalks tree, ask shortest path in twos, get that wherein the shortest paths as the shortest path between two subtrees; Calculate two end points, promptly put s to a some t, between the method for shortest path following steps are arranged:
(5.1.1) according to obstacle and end points s, t structure escape figure, here, escape figure is expanded to two ends by the horizontal sides of obstacle and vertical edge, up to running into obstacle, and a kind of connection layout that the line segment intersection after expanding like this forms;
(5.1.2) initialization candidate point set be some s}, the accessing points set is for empty, it is s that current point is set;
(5.1.3) all and current on escape figure adjacent and point that do not visit join in the candidate point set, calculate the value of turning back that these are newly added some points according to following rule:
The definition of directed edge u → v value of turning back: a given directed edge u → v and a final goal point t, establish L and be
By a t and with the perpendicular straight line of directed edge u → v, then:
Work as u, v is at the homonymy of L, and u is distal to v to the distance of L, then the value of turning back of u → v=0;
Work as u, v is at the homonymy of L, and u is bordering on v to the distance of L, then the length of the value of turning back of u → v=line segment u → v;
When line segment u → v and L meet at w, the length of the value of turning back of u → v=line segment w → v then;
So the value of turning back of point can define like this: the pathfinding process from source point to impact point, certain any value of turning back is the value of the turning back sum in all paths from source point to this point;
(5.1.4) select the minimum some q of the value of turning back to join in the accessing points set in candidate collection, it is q that current point is set;
If (5.1.5) final goal point t is not in candidate point set, repeating step (5.1.1)-(5.1.4) then;
If (5.1.6) final goal point t is in candidate point set, then t is joined in the accessing points set, the shortest path that finds like this is exactly the path that the point range in the accessing points set is formed according to the sequencing that is added into.
CNB2004100691186A 2004-07-06 2004-07-06 Rectangular steiner tree method of super large size integrated circuit avoiding barrier Expired - Fee Related CN1304996C (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2004100691186A CN1304996C (en) 2004-07-06 2004-07-06 Rectangular steiner tree method of super large size integrated circuit avoiding barrier

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2004100691186A CN1304996C (en) 2004-07-06 2004-07-06 Rectangular steiner tree method of super large size integrated circuit avoiding barrier

Publications (2)

Publication Number Publication Date
CN1588381A CN1588381A (en) 2005-03-02
CN1304996C true CN1304996C (en) 2007-03-14

Family

ID=34604262

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100691186A Expired - Fee Related CN1304996C (en) 2004-07-06 2004-07-06 Rectangular steiner tree method of super large size integrated circuit avoiding barrier

Country Status (1)

Country Link
CN (1) CN1304996C (en)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100397402C (en) * 2005-03-30 2008-06-25 中国人民解放军国防科学技术大学 quasi-loop-free via method
CN102096742A (en) * 2011-02-24 2011-06-15 江苏大学 Very large scale integrated circuit wiring design method based on taboo ant colony hybrid algorithm
CN103324796B (en) * 2013-06-21 2016-08-10 福州大学 In a kind of VLSI Design around barrier global routing building method
CN104462628A (en) * 2013-09-24 2015-03-25 复旦大学 Construction method and device for barrier-bypassing eight-fork Steiner minimum tree
CN104750888A (en) * 2013-12-30 2015-07-01 北京华大九天软件有限公司 Wiring method for connecting two groups of vertical ports in orthogonal equal width mode in layout
CN103984789B (en) * 2014-01-26 2017-01-25 福州大学 Obstacle bypassing wiring method based on optimization of shortest wire length in large-sized integrated circuit design
CN103902775B (en) * 2014-03-31 2017-02-15 福州大学 Multilayer obstacle-avoiding Steiner minimal tree construction method for very large scale integration
CN103902774B (en) * 2014-03-31 2017-01-25 福州大学 Overall wiring method for super-large-scale integrated circuit under X structure
CN105184022B (en) * 2015-10-21 2018-06-15 福州大学 A kind of building method of efficient X architecture avoidance wiring unit for multilayer chiop
CN107832519B (en) * 2017-11-02 2021-01-29 福州大学 Multilayer overall wiring method for high-performance X structure in ultra-large scale integrated circuit
CN108804811B (en) * 2018-06-07 2021-11-30 福州大学 Multilayer barrier-bypassing right-angle wiring method in large-scale integrated circuit design
CN110104561B (en) * 2019-05-05 2020-10-02 三峡大学 A system for hoisting and hanging objects trace planning in obstacle space
CN116402006B (en) * 2023-06-07 2023-08-22 南京集成电路设计服务产业创新中心有限公司 Method for constructing complete optimal Steiner tree lookup table based on edge movement

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6401234B1 (en) * 1999-12-17 2002-06-04 International Business Machines Corporation Method and system for re-routing interconnects within an integrated circuit design having blockages and bays
US6446246B1 (en) * 1999-12-28 2002-09-03 Intel Corporation Method and apparatus for detail routing using obstacle carving around terminals

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6401234B1 (en) * 1999-12-17 2002-06-04 International Business Machines Corporation Method and system for re-routing interconnects within an integrated circuit design having blockages and bays
US6446246B1 (en) * 1999-12-28 2002-09-03 Intel Corporation Method and apparatus for detail routing using obstacle carving around terminals

Also Published As

Publication number Publication date
CN1588381A (en) 2005-03-02

Similar Documents

Publication Publication Date Title
CN1304996C (en) Rectangular steiner tree method of super large size integrated circuit avoiding barrier
CN1174587C (en) Method and apparatus for longest match address lookup
CN1284095C (en) Task allocation method in multiprocessor system, and multiprocessor system
CN1206722C (en) Solving method for transient analysis of power source network based on equivalent circuit
CN1221909C (en) Method for assigning job in parallel processing method and parallel processing method
CN1383082A (en) Integrated circuit lay out and wiring design and design program and integrated circuit mfg. method
CN1529864A (en) Method and japparatus for considering diagonal wiring in placement
CN112580922A (en) Flexible job shop scheduling method based on multilevel neighborhood structure and hybrid genetic algorithm
CN100347710C (en) Standard unit overall wiring method of multi-terminal network plug-in buffer optimizing delay
CN100336065C (en) Right angle wiring tree method for wire length optimized obstacle passing
CN1666474A (en) Management node device, node device, network configuration management system, network configuration management method, node device control method, and management node device control method
CN1279480C (en) An overall routing method for standard cells with time delay optimization considering coupling effects
CN1783075A (en) Method, apparatus, processor arrangement for displaying network data
CN1862546A (en) Fast method for analyzing IC wiring possibility
CN101055566A (en) Function collection method and device of electronic data table
CN1271553C (en) Generally distributing method of standant unit for eliminating crosstalk caused by coupling inductance
CN1815507A (en) Method, apparatus, and medium for transforming graphic data of an object
CN1275318C (en) High speed high precision transient simulation method able to process tree net hybrid power supply structure in VLSI
CN1529268A (en) Right Angle Steiner Tree Method under Obstacles in General Routing of Standard Units
CN1240015C (en) Time delay driving method of right angle Steiner tree under obstruction when making loose routing for standard units
CN1957352A (en) Method and apparatus for allocating data paths
CN1811632A (en) A digital control code encoder and method for establishing digital control system software based on the same
CN1545142A (en) Transient analysis and solution method of integrated circuit power supply network based on multi-level equivalent circuit model
CN1588416A (en) Method for improving loading efficiency of container based on minimum freedom degree poriority principle
CN1808450A (en) Transfer function recurrence methods of RLC interconnect and transmission line model and model predigestion

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070314