Jump to content

Lee algorithm: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
remove {{Cleanup|date=September 2010}}
Citation bot (talk | contribs)
Alter: doi. Add: year. | You can use this bot yourself. Report bugs here. | Activated by Zppix | Category:Electronics stubs‎ | via #UCB_Category
Line 36: Line 36:
|last= Wolf
|last= Wolf
|title= Modern VLSI Design
|title= Modern VLSI Design
|year= 2002
|pages= 518ff
|pages= 518ff
|publisher= Prentice Hall
|publisher= Prentice Hall
Line 50: Line 51:
|year= 1961
|year= 1961
|issn=
|issn=
|doi=}}
|doi=10.1109/TEC.1961.5219222}}


{{DEFAULTSORT:Lee Algorithm}}
{{DEFAULTSORT:Lee Algorithm}}

Revision as of 18:06, 6 April 2020

The Lee algorithm is one possible solution for maze routing problems based on Breadth-first search. It always gives an optimal solution, if one exists, but is slow and requires considerable memory.

Algorithm

1) Initialization

 - Select start point, mark with 0
 - i := 0

2) Wave expansion

 - REPEAT
     - Mark all unlabeled neighbors of points marked with i with i+1
     - i := i+1
   UNTIL ((target reached) or (no points can be marked))
Wave Expansion step

3) Backtrace

   - go to the target point
   REPEAT
     - go to next node that has a lower mark than the current node
     - add this node to path
   UNTIL (start point reached)

4) Clearance

 - Block the path for future wirings
 - Delete all marks

Of course the wave expansion marks only points in the routable area of the chip, not in the blocks or already wired parts, and to minimize segmentation you should keep in one direction as long as possible.

References

  • Wolf, Wayne (2002), Modern VLSI Design, Prentice Hall, pp. 518ff, ISBN 0-13-061970-1
  • Lee, C. Y. (1961), "An Algorithm for Path Connections and Its Applications", IRE Transactions on Electronic Computers, EC-10 (2): 346–365, doi:10.1109/TEC.1961.5219222