• No results found

On Routing Two-Point Nets Across a Three-Dimensional Channel

N/A
N/A
Protected

Academic year: 2021

Share "On Routing Two-Point Nets Across a Three-Dimensional Channel"

Copied!
55
0
0

Loading.... (view fulltext now)

Full text

(1)

Institutionen för systemteknik

Department of Electrical Engineering

Examensarbete

On Routing Two-Point Nets Across a

Three-Dimensional Channel

Examensarbete utfört i Socware vid Tekniska högskolan i Linköping

av

Patrik Hurtig

LITH-ISY-EX–05/3680–SE

Linköping 2005

Department of Electrical Engineering Linköpings tekniska högskola

Linköpings universitet Linköpings universitet

(2)
(3)

On Routing Two-Point Nets Across a

Three-Dimensional Channel

Examensarbete utfört i Socware

vid Tekniska högskolan i Linköping

av

Patrik Hurtig

LITH-ISY-EX–05/3680–SE

Handledare: Ola Andersson

isy, Linköpings universitet

Shuichi Ueno

Tokyo Institute of Technology

Examinator: Mark Vesterbacka

isy, Linköpings universitet

(4)
(5)

Avdelning, Institution

Division, Department

Division of Electronic Engineering Department of Electrical Engineering Linköpings universitet S-581 83 Linköping, Sweden Datum Date 2005-06-08 Språk Language  Svenska/Swedish  Engelska/English   Rapporttyp Report category  Licentiatavhandling  Examensarbete  C-uppsats  D-uppsats  Övrig rapport  

URL för elektronisk version

http://www.isy.liu.se

ISBN

ISRN

LITH-ISY-EX–05/3680–SE

Serietitel och serienummer

Title of series, numbering ISSN

Titel

Title On Routing Two-Point Nets Across a Three-Dimensional Channel

Författare

Author Patrik Hurtig

Sammanfattning

Abstract

Routing techniques for plain ’flat’ microchips have been developed extensively and will soon reach its limitations. One natural step would be to develop chips which are manufactured in a more cubic type of volume, as oppose to the classical flat design.

This thesis proposes a method for routing two-point nets across a three-dimensional channel. The height required by this algorithm is of the order O(n32),

where n is the number of terminals on a square top-layer with the side d2√ne. The algorithm proposed here is based on "On Routing Two-Point Nets Across a Channel", by Ron Y. Pinter [9], and the concepts from this paper are explained in this thesis to familiarise the reader these.

It is also shown that the proposed algorithm is more effective in its volume than the two-dimensional counterpart. The algorithm here is of the order O(n32)

with the two-dimensional algorithm of the order O(n2

).

Nyckelord

(6)
(7)

Abstract

Routing techniques for plain ’flat’ microchips have been developed extensively and will soon reach its limitations. One natural step would be to develop chips which are manufactured in a more cubic type of volume, as oppose to the classical flat design.

This thesis proposes a method for routing two-point nets across a three-dimensional channel. The height required by this algorithm is of the order O(n3

2), where n is the number of terminals on a square top-layer with the side d2√ne.

The algorithm proposed here is based on "On Routing Two-Point Nets Across a Channel", by Ron Y. Pinter [9], and the concepts from this paper are explained in this thesis to familiarise the reader these.

It is also shown that the proposed algorithm is more effective in its volume than the two-dimensional counterpart. The algorithm here is of the order O(n3

2) with the two-dimensional algorithm of the order O(n2).

(8)
(9)

Acknowledgements

I would like to thank Prof. Shuichi Ueno for his guidance and help, and for giving me a chance to study in his lab. I would also like to thank Prof. Mark Vesterbacka for his help and guidance on this thesis after I returned to Linköping. Dr. Ola Andersson has proven to be an invaluable resource, and have given much appreciated advice on writing the thesis. I would also like to thank Dr. Satoshi Tayu for his help on this thesis, and his friendship throughout the long hours at the lab in Tokyo, as well as the many pointers at the gym. Finally, thanks to all the members of Ueno and Takahashi lab during my period there. Shambhu, Inoue, Moria, Turki, Horikawa, Ito, Inagi, Kohira, Kawakita, Baktiar and the others showed both great support as well as friendship.

Janne and Lars have been great laboration partners throughout the last years in Linköping, and the rest of my friends at Linköpings universitet, their names too many to account for here, have proved to just as much support throughout these years.

(10)
(11)

Contents

1 Introduction 1 1.1 Implementation . . . 2 1.2 Problem Definition . . . 2 1.3 Thesis Outline . . . 3 2 Background 5 2.1 Definitions and Terminology . . . 5

2.1.1 The Channel . . . 5

2.1.2 The Layout . . . 7

2.2 Previous Work on the Two-Dimensional Problem . . . 8

2.2.1 The Greedy Algorithm . . . 8

2.2.2 Example of the Greedy Algorithm . . . 9

2.2.3 Algorithms for Routing Around a Rectangle . . . 11

2.2.4 The Pinter Algorithm . . . 12

2.2.5 Examples of the Pinter Algorithm . . . 14

3 Three-Dimensional Routing 17 3.1 Structuring . . . 17 3.2 Step 1 Swapping . . . 19 3.2.1 Balancing . . . 19 3.2.2 Route . . . 23 3.3 Step 2 X-routing . . . 23 3.3.1 Route . . . 23 3.4 Step 3 Y-Routing . . . 24 3.4.1 Route . . . 24

3.5 Example of the Proposed Algorithm . . . 25

3.5.1 Swapping . . . 25

3.5.2 X-Routing . . . 26

3.5.3 Y-Routing . . . 26

4 Height 27 4.1 Theoretical Lower Bound . . . 27

4.2 The Height of the Proposed Algorithm . . . 28

4.2.1 Balancing . . . 28

4.2.2 X-Routing . . . 28 ix

(12)

4.2.3 Y-Routing . . . 28 4.2.4 Total . . . 28 5 Notes 29 5.1 Monotonicity . . . 29 5.2 Careful Placement . . . 29 5.3 Jogging . . . 29 5.4 Optimum Volume . . . 30

6 Conclusions and Future Work 31 6.1 Conclusions . . . 31

6.2 Future Work . . . 32

Bibliography 33 A Graph Theory 35 A.1 Terminology . . . 35

A.2 Examples of Graphs . . . 37

(13)

List of Figures

2.1 The three-dimensional channel . . . 6

2.2 The weight function . . . 7

2.3 Example of the Greedy algorithm: Fig. 1 . . . 9

2.4 Example of the Greedy algorithm: Fig. 2 . . . 9

2.5 Example of the Greedy algorithm: Fig. 3 . . . 10

2.6 Example of the Greedy algorithm: Fig. 4 . . . 10

2.7 An illustration on routing around a rectangle . . . 11

2.8 The channel routing problem . . . 12

2.9 A two-dimensional example with three terminals: Fig. 1 . . . 14

2.10 A two-dimensional example with three terminals: Fig. 2 . . . 14

2.11 A two-dimensional example with three terminals: Fig. 3 . . . 15

2.12 A two-dimensional example with a single vertical resolution cycle . 15 3.1 An overview of the top layer seen from above . . . 18

3.2 The original layout T . . . 21

3.3 The resulting layout T + 1 . . . 22

3.4 The layout of the terminals . . . 25

3.5 The routing performed by the swapping step . . . 25

3.6 The routing after the first two steps . . . 26

3.7 The final routed two-point net . . . 26

4.1 The theoretical lower bound with a height of √n . . . 27

5.1 Using the proposed algorithm . . . 30

5.2 Using a more liberal routing technique . . . 30

A.1 The graph K3 . . . 37

A.2 The graph K5 . . . 37

A.3 The example graph G1 . . . 38

A.4 An illustration of Köningsberg . . . 39

(14)
(15)

Chapter 1

Introduction

The complexity of microchips is constantly growing, which poses a lot of problems in manufacturing. Even though the trend to move to a smaller line width can be seen, that technology is still struggling to keep up with the speed in which the number of transistors per chip is increasing. With the impureness of the manufac-tured silicon as a limiting factor for the area in which a chip can be constructed as another limiting factor, a new approach will soon be required. A microchip which exceeds a certain area will have a rather poor yield since there is a cer-tain probability that there will be an impurity per area, and this risk will grow exponentially as the side of the chip increases. One such approach would be to construct a microchip in three dimensions, leading to many beneficial results [1]. Not only would the problems with the impureness of silicon be reduced, but also the total wire length used in the chip could be decreased.

There has previously been little research done within this field and the research which has been done is often lacking practical use due to too loose constraints such as allowing wires to cross or to run outside the chip. Since there has been a sub-stantial amount of research done on routing in two-dimensional chips it would be beneficial if those results could be transferred to the three-dimensional case. With more degrees of freedom, a more space-saving solution could be expected.

At present there are actually not any real three-dimensional microchips being manufactured, at least not as far as the author knows. By ’real’, a chip which has a height of the same magnitude as its width and length is being implied. Natu-rally, all of the more complex microchips of today are being manufactured in many layers and this, of course, constitutes as ’three-dimensional’ in some sense. There will be a huge amount of other problems which will need to be investigated when moving to this new technology. With this all of the problems in today’s designing will become a lot more complex, such as cross-talk, heat dissipation, interconnects and the actual manufacturing process. This thesis should be seen as a small step on the way towards this transition between technologies. Only the routing of two-point nets in a three-dimensional channel has been investigated due to the limited amount of time available for this master thesis.

The most simple approach of turning a two-dimensional chip into a three di-1

(16)

mensional counterpart would be to simply stack a number of flat chips on top of each other [2]. Whereas there is the physical aspect, and how to produce such microchips [4], this thesis proposes an algorithm for connecting terminals, in such a chip is being proposed.

1.1

Implementation

This thesis was written as a Master’s Thesis in the field of Applied Physics and Electrical Engineering with a specialisation in SOCware (System On Chip ware). The majority of this education was undertaken at Linköpings universitet in Swe-den. The research for this thesis however was done in a one year exchange program at Tokyo Institute of Technology, Japan, ranging from the fall of 2003 to the late summer of 2004. This research was supervised by Prof. Shuichi Ueno in his labora-tory where research was conducted individually in parallel with about fifteen other Japanese and International students, each working within similar fields. Seminars were held up to twice a week where the students belonging to the lab took turns in making presentations of their progress since the last session. After the presen-tation, typically a short discussion was held.

At the end of the exchange a seven pages summary was compiled. This sum-mary was then, as a conclusion, presented together with similar papers written by twenty other exchange students from very different disciplines. It has served as the base for this final thesis the way it is presented here. The finalisation process was conducted at Linköpings universitet in the fall of 2004 and the spring of 2005. The work there was mainly focused on the documentation work and was undertaken under the supervision of prof. Mark Vesterbacka and Dr. Ola Andersson, at the department of electrical engineering.

1.2

Problem Definition

The problem at hand is to successfully rout two-point nets in a three-dimensional channel under the following restrictions:

• The channel consists of a volume between a top and bottom layer. This volume is described by a cubic grid-net of discrete points with equal distance between closest neighbours.

• The two-point nets all have one terminal on each of two planes which forms the top and bottom of the channel.

• Since any net traversing from the top to the bottom layer represents a wire, it is not allowed to occupy the same coordinate as any other net at any point along its path.

(17)

1.3 Thesis Outline 3

1.3

Thesis Outline

This thesis is divided into six main chapters and one appendix. The main expla-nation of the proposed algorithm is placed in chapter three. The other chapters introduce the background, the previous work and a discussion on the total vol-ume used. Below follows a short summary of the contents of the different chapters.

Chapter 1 - Introduction

This first chapter introduces the background to the problem and the previous re-search in the field. There is also a definition of the problem and a thesis outline. The background to how the work on the research for this thesis was conducted is explained in the introductory parts.

Chapter 2 - Background

The background is divided into two parts. In the first part necessary terminology to describe and solve the problem later on is explained. There is also gives an overview of how, typically, a problem can look like.

The second part gives a summary of the work of Pinter and his algorithm for the two-dimensional counterpart of the problem, as well as some of the authors whose work are related to this thesis.

Chapter 3 - Three-Dimensional Routing

This is the main chapter which is divided into a number of subsections. Firstly it introduces some more specific terminology and the details of the problem. This is followed by the mathematically complex first part of the algorithm as well as the following, less intricate parts. Finally, a simple example is given to illustrate the three-dimensional problem graphically.

Chapter 4 - Height

This chapter contains a mathematical discussion concerning the theoretical lower bound for the general problem and compares this with the proposed algorithm. The algorithm is broken down to its different parts and the height of each part is discussed. It is shown that the order of the proposed algorithm’s size is that same as the theoretical lower bound.

Chapter 5 - Notes

The last chapter contains a discussion on a couple of interesting peculiarities to the algorithm and some reflections on special cases and on how the algorithm’s downsides and how it could be made better. It is shown that there might exist special cases where the algorithm is not optimal.

(18)
(19)

Chapter 2

Background

Most, if not all, research conducted today is based on the research which has been done previously. The transformation of the two-dimensional routing problem, as proposed by Ron Pinter in his paper [9], into three-dimensions was chosen as a suitable subject for this thesis. The previous work of Pinter, and some of the work on which he has based his paper, are described in the later half of this chapter. The first half defines the terminology needed for the rest of the thesis. The terminology is, unless noted so, consistent for both the two-dimensional and the three-dimensional case.

2.1

Definitions and Terminology

In order to be able to describe the problem at hand, a number of definitions are required. For any theoretical field, there is a naming convention for how to define and separate different problems. For this specific problem most of the terminology concerns the description of the channel and more specifically the top and bottom layers and the terminals on these. There are also some definitions on how to make the mathematical operations which describes how good a specific layout of the top layer is.

2.1.1

The Channel

When routing two-point nets across a three-dimensional channel, we are given two parallel layers of the same size. These layers are fixed in their x- and y-coordinates, with a variable distance along the z-coordinate. These layers are denoted the top and bottom layers of the channel. We denote them S and S0, respectively. The

channel is the volume contained between these layers. We orient these layers so

that their sides are parallel with the x- and y-axis and the distance between them is measured along the z-axis. Each of the two layers contain K distinct points along its x-axis and L distinct points along the y-axis, labeled by the integers 0, . . . , K −1 and 0, . . . , L − 1 respectively. The x-wise running rows are labelled according the value of their y-coordinate, Yk, 0 ≤ k ≤ K −1, the y-wise running rows are labelled

(20)

according the value of their x-coordinate, Xk, 0 ≤ l ≤ L − 1. An x-wise running

row is also sometimes denoted as an x-row, and a y-row is analogously a row running y-wise. A terminal is the end point for a net. Terminals are located on S or S0. The total number of terminals on S, or S0is n. However, only every second

row is be occupied by a terminal. Hence, L

2 ·K2 = n. Between the top and bottom

layer we have a discrete cubic grid, the channel, with the volume L by K by H, where H is indicating the distance between the top and bottom layer. Any point in the channel is described with a set of three integers, GP (x, y, z), denoting its x,

y and z coordinates. valid values for these integers lie between zero and L, K and

H respectively. Such points are denoted grid points. One of the main problems is to minimise this volume within the boundaries described below in figure 2.1.

S

S'

The channel A path H

L K x z y A terminal

Figure 2.1. The channel

A path between two grid points, A and B, is formed by connecting a sequence of disjoint grid points, G1, G2, . . . , Gt such that G1 = A and Gt = B. A net

has exactly one terminal on each of the S and S0 layers with a continuous path

between them. No two nets may ever uptake the same coordinate at any point along their paths, as this would indicate that we have a short circuit. Whenever a net makes a turn, it is said that it jogs. We are given n nets and each net is represented by the set Ni = (xi, yi, xi0, yi0). xi and yi indicate the coordinates of

the terminal on the top layer and x0

i and yi0 are the coordinates of the terminal on

(21)

2.1 Definitions and Terminology 7

2.1.2

The Layout

A layout, Ti, of S is a denotation for the way the terminals are arranged, namely a

one-to-one mapping of the terminals on S and S’, with their current corresponding coordinates on these layers. W (Ti) is the weight function of Ti such that:

W(Ti) = L−1

X

l=0

Wr(k)

where Wr(k) is the weight function of each Ylsuch that:

Wr(k) =P f (x0i) f(x0i) =  1, if x0 i ∈ Rk 0, if x0 i 6∈ Rk Rk= {∀x0i∈ Yk}

This means that Wr(k) is the sum of different values for x0i on a row, and that

W(Ti) is the sum of all such weight functions on the layout numbered i. Note also

that Σ W (Ti) ≤ n. In figure 2.2 the weight functions are illustrated. Note that the

x0i denotation has been replaced with a vi denotation. However, the illustration

of the functions remain the same and the reason for this change in denotation is further explained in chapter three.

A row is said to be unbalanced if its corresponding weight function is less than the number of terminals on it.

A wire is said to be x-wise monotonic if from S to S’ its x-coordinates form a strictly increasing or decreasing sequence. A wire can also be said to be monotonic y-wise or z-wise. A wire which is monotonic in all directions is said to be just

monotonic. Such a wire has taken the shortest distance possible from its terminal

on S to the one on S0. V1 V2 V1 V1 V2 V2 V3 V3 V3 V4 V4 V4 r0 r1 r2 W (r2) = 3 W (r1) = 3 W (r0) = 2 The layout T W(T) = 8 r r r

(22)

2.2

Previous Work on the Two-Dimensional

Prob-lem

There are already many good algorithms for routing in two dimensions and this thesis is based on the method proposed in by Ron Pinter in 1981 [9], in this paper referred to as the Pinter Algorithm, or PA for short. This chapter starts by giving a short description of the results, terminology, and theorems in Pinter’s paper. His algorithm is actually a modification of the so called greedy algorithm, as proposed by Ronald Rivest [10], with one modification. By adding the rule: whenever a net is about to take a downward turn, check whether routing it straight horizontally all the way to its target column will not render the nets on its right unroutable. Gonzales also bases his algorithm [5] on that of LaPaugh. In fact the first steps of Gonzales’s algorithm are the same as in LaPaugh’s algorithms for integrated circuit layout.

2.2.1

The Greedy Algorithm

The greedy algorithm, proposed by Rivest in 1980 [10], scans the channel from left to right, in a column-by-column manner. In each column the algorithm tries to maximise the utility of the wiring in a so called greedy fashion. The greedy algorithm is designed to work with any kind of nets, not only two-point nets. The nets can therefore have any number of terminals on either of the sides of the channel. The actual algorithm consists of five steps that are taken in every column.

• 1. Make connections to any terminals at the top and bottom of the column. • 2. Free up as many tracks as possible by making vertical connections that

collapse nets that currently occupy more that one horizontal row.

• 3. Try to shrink the range of horizontal rows occupied by nets that still occupy more than one such row. This is done so collapsing these nets later will become simpler.

• 4. Try to turn a net upwards if its next terminal is on the top of the channel, and downwards if its next terminal is on the bottom of the channel. • 5. Add a new horizontal row if a terminal could not be connected in step

one because the channel is full. Add this row between the existing rows, and connect the terminal.

When all of these steps have been taken for a column, the algorithm moves to the next column. This algorithm does not guarantee a monotonic solution, and will use excessive jogging.

(23)

2.2 Previous Work on the Two-Dimensional Problem 9

2.2.2

Example of the Greedy Algorithm

This is a short and simple example of how the greedy algorithm works. This example begins with three columns routed, as seen in figure 2.3.

1 1 1 2 2 2 3 3 4 1 2 3

Figure 2.3. The greedy algorithm after three columns

The algorithm then moves to the next column, as illustrated in figure 2.4. Since it is impossible to connect the top terminal here, an extra horizontal row is inserted. Since this column is also the last one containing any part of net number one, this net does not need to be extended any further to the right.

1 1 2 3 4 1 2 2 3 1 2 3 4

(24)

As we reach the fifth column, as shown in figure 2.5, the connection to the top terminal takes precedence over connecting net number two together. There is also an extra horizontal row needed in order to make the connection to the bottom terminal. 1 2 2 3 1 1 2 3 4 1 2 3 4 5

Figure 2.5. The connection to a terminal takes precedence over connecting nets in the channel

In the last step shown here, we are able to connect net number two together. This leaves us with an example of when a net is not routed monotonically. This is illustrated in figure 2.6. The routing continues in this fashion until it reaches the far right end of the channel, or until all nets have been routed. This means that sometimes, with this algorithm, routing needs to be undertaken outside of the channel. If all nets have not been routed by the time we reach the far right end, the space to the right of the channel is used. Many times in real applications, this sort of solution is not permitted.

1 2 2 3 1 1 2 3 4 1 2 3 4 5

(25)

2.2 Previous Work on the Two-Dimensional Problem 11

2.2.3

Algorithms for Routing Around a Rectangle

In 1980, LaPaugh published his algorithm for routing around a rectangle [6]. This problem is illustrated in figure 2.7. This paper is obviously very useful, as there are many situations where there is a need to connect the different terminals of a component to each other. This problem is in many ways the complementary problem to the channel-problem, on which this thesis is based. There are however a number of interesting observations to be made. Although the routing in this case takes place around an object rather than within it, the factors which need to be optimised are in many cases the same. The total wire length, the amount of jogging and the complexity of the algorithm are such examples. The algorithm does also allow wires to cross in a right angle to each others, just as is the case for the channel routing problem.

In 1982 Gonzales made an elaboration on the LaPaugh algorithm and managed to make a new algorithm which could be performed with linear-time complexity. This algorithm share the first steps with the one proposed by LaPaugh. These steps divide the problem into two sub-problems and find the direction for the paths connecting local terminals (a terminal is said to be local if it is to be connected to another terminal located on the same side or on an adjacent side of T )[5].

T1 T2 T4 T6 T5 T8 T7

T3

T

(26)

2.2.4

The Pinter Algorithm

The algorithm proposed by Ron Y. Pinter is based on a channel which act as the boundary within which the routing takes place. The goal of the routing is to minimise the height of the channel at the same time as the routing is performed monotonically. Pinter shows in this paper that those two criteria are not contra-dictory, and that it is possible to route all nets monotonically and still use the minimal amount of height of the channel. There is also a discussion on so called conflict cycles, which occurs when, for example, terminals are cross-wised placed above each other; the end point of one terminal is placed underneath the starting point of the other, and vice versa. There are more complex examples of how a conflict cycle could appear.

The top and bottom sides consist of two parallel line segments whose relative lateral positioning is fixed and make up the boundaries for the channel. On each of these sides, n terminals are located. These are pair-wise associated and the goal is to route wires in the channel to connect these with each other. These wires are not allowed to at any point in their path traverse outside of the sides. The channel in the two-dimensional example consists of a square grid-net with points where a wire is allowed to turn. There are actually two different layers in the two-dimensional channel. The first layer is used for routing vertically, and the second one is used for horizontal routing. This means that wires are allowed to cross each other at a right angle. However, this crossing can not take place where a wire makes a turn, since that is where the wire changes layers. The basic denotation of this problem is illustrated in figure 2.8. 1 2 3 1 2 3 sides channel wire terminals

(27)

2.2 Previous Work on the Two-Dimensional Problem 13

The most relevant result by Pinter is that no net routed from top to bottom need ever turn upward in the middle. [9] Note that this statement is only true for problems without the presence of a set of nets corresponding to a tight net cycle [9]. Note also that the word monotonically is not used in the above since there are a number of small sidesteps every time a net changes from horizontal to vertical routing.

The PA routes the channel one net at a time, scanning the top side of the channel from one side to the other. Nets that are aligned, with the same start and end coordinate, are routed straight down. The treatment of a rising net, with the ending x-coordinate smaller than the starting, are treated symmetrically to falling

nets, with the starting x-coordinate smaller than the ending. The algorithm is a

modification of the greedy algorithm, with the adding of the following rule: Whenever a net is able to take a downward turn, check whether routing is straight horizontally all the way to its target column will not render the nets on its right unroutable.

The test is applied to a contracted channel, consisting only of the horizontal rows that have already been crossed by the wire, including the one reached so far. If the test is successful, no jogging is required and the net is routed horizontally to its target location. Otherwise, the net is routed downwards at once, as far as possible towards the bottom side as possible. Then a new horizontal segment is started, and the test is applied again as soon as there is a possibility to turn downwards again.

Note that this algorithm is based on a model with one layer for every routing direction, i.e. one for vertical and one for horizontal routing. This allows for wires to cross at non-corner grid points.

(28)

2.2.5

Examples of the Pinter Algorithm

Below are some illustrations of the PA. The first example below is simple, with only three terminals on each side. This particular example needs three layers to successfully route all of the wires. Note how the wires are allowed to cross each other at a right angle at non-turning points. In the first step, shown in figure 2.9, net number one is completely routed, using one horizontal row.

1 1 2 2 3 3 1

Figure 2.9. The first net routed

In order to start routing net number two, an extra row is inserted. This is shown in figure 2.10. The net is then routed to the x-coordinate of its target terminal. This is done since this turning downwards earlier would not result in net number three being able to be routed without the insertion of an extra row. By routing all the way, unnecessary jogging is avoided.

1 2

1 2 3

3 1

2

(29)

2.2 Previous Work on the Two-Dimensional Problem 15

The last net in the example will need an extra row, and this would hold true even if net number two had turned downwards sooner. Net number three can then be routed, as shown in figure 2.11, using only two jogs.

1 2 1 2 3 3 1 2 3

Figure 2.11. The third net routed

The below example in figure 2.12, taken from Pinter [9], show the solution to a more complex problem which includes a resolution cycle. This is caused by terminals being placed above each other, making it impossible to use the PA without the insertion of the extra rows. A solution which did not insert extra rows, would not be monotonic. Since resolution cycles do not occur in the three dimensional case as it is presented here, there is no further elaboration of this. Note though that some extra jogging and an extra layer is needed for the monotonic solution.

1 2 3 1 2 3 4 1 2 3 4 4 5

(30)
(31)

Chapter 3

Three-Dimensional Routing

In order to create an algorithm for three-dimensional routing, there are many possible approaches. For example to implement different sorting algorithms, use graph optimization or even describe the problem as a fuzzy logic problem. The algorithm proposed in this thesis is based on a transformation of the PA from two dimensions into three.

In order to make such a transformation, the problem is initially broken down into, and is described as two two-dimensional problems, with one part taking care of the x-wise routing and one the y-wise routing. However, such a simple modification proved to rarely solve the problem completely due to a problem, which would lead to a solution where wires needed to cross. This chapter defines the cause of this problem and propose a solution using graph theory.

3.1

Structuring

If there are two (or more) nets, Ni= (xi, yi, x0i, y0i) and Nj = (xj, yj, x0j, yj0), such

that yi = yj and x0i = x0j, i.e. two nets with terminals in the same x-row on S

and in the same y-row on S0, they will, in the initial step, be routed to the same

grid point. In order to avoid this kind of collisions, some kind of rearrangement is required before the x-routing.

The solution proposed here makes use of basic graph theory and some inter-esting properties associated with this particular problem. The Pinter Algorithm is based on the fact that we have one layer for every direction and are allowed to cross wires. We would like to transfer this condition to the three-dimensional case. A method for doing so is proposed below. The method divides the routing in three steps, each occupying a certain volume of the grid. The first step is the most time consuming as it includes both balancing as well as routing.

The following boundaries are used in the method. On the top layer associate each row with an even index y-wise, Xk, k = 0, 2, . . . , dK−12 e, with a neighbouring

row with an odd index, Xk+1. Denote these so that Xk = Pi and Xk+1 = Pi0.

Associate every x-wise row, Qj, with an odd index with a neighbouring row, Q0j,

so that: x2j−1 is associated with x2j for j = 0, . . . , dL−12 e. Terminals are only

(32)

lowed to be placed on grid points belonging both to Piand Qj rows, leaving three

quarters of the surface unused. These placeable grid points are denoted terminal

points, or terminals. An overview of the top layer can be found in figure 3.1.

x y P P’ Q0 Q’0 0 0 X X X Y Y Y0 0 1 1 L-1 K-1 terminal point

(33)

3.2 Step 1 Swapping 19

3.2

Step 1 Swapping

The algorithm proposed in this thesis is divided into three steps. In this first step, graph theory is used in order to create a layout which will allow the second and third step to be performed. If this first step was not taken, the rest of the routing would almost certainly result in wires having to occupy the same coordinates, resulting in a short circuit. The first step is divided further into two sub-steps. The first of these is the calculation of a layout for the next two steps. It is here that graph theory is used. The second sub-step re-routes the terminals from the initial layout to the wanted.

3.2.1

Balancing

This part of the algorithm searches for nets, Ni= (xi, yi, x0i, yi0) and Nj= (xj, yj, x0j, yj0)

such that: yi = yj and x0i= x0j. For all such nets, Ni, makes an association with

another net, Ni0, such that yi 6= yi0, xi = xi0 and x0i 6= x0i0. In fact, in this step, rather than denoting the nets as per usual, we need only to look at the x-coordinate on S0, their x0-value

Denote the nets’ terminals on S for vs where the index s is the x-coordinate

for that particular terminal on S0, i.e., a terminal which has a x0-value of ’4’, are

denoted v4. Note that there may be several coordinates with the same name in

a single row, and that there are a maximum of L

2 of the same vs on any T if the

placement of terminals has been done correctly.

On the final layout of this algorithm, no row x-wise can have more then one of the same kind of vs, or in other words the weight function of the final layout of

this step, W (Ts) will be equal to n. Below is a proposition on how to make such

associations.

First make sure that the entire S and S’ have terminals on all allowed termi-nal points by, in the case of empty ones, filling out with dummies. These dummies can be pairwise associated in an arbitrary way.

For any x-row, Pαwith a Wr(Pα) less then L2, construct a directed graph

to-gether with another x-row Pβ, chosen as follows:

For any one duplicate vs in Pα, search for a different x-row without vs. Choose

this row as Pβ, and construct the directed graph.

Denote this graph, G(Pα, Pβ, Tj), where Tj is the current layout. The set of

vertices in the graph, V(G) is the set of different terminals belonging to Pα or

. Construct a directed arc for each Q, so that it are originates from the vertex

corresponding to terminals on pαand goes to the vertex corresponding to the

ter-minal on Pβ. For every graph, choose a path that starts with the vs above and

that ends in a vertex, vs0. Choose these vertices such that the out-degree of vs is higher than its in-degree, and the in-degree of vs0 is higher than its out-degree, e.i., degout(vs) > degin(vs) and degout(vs0) < degin(vs0). For reference on the

de-gree of a vertex, see Appendix A. Swap all elements along every arc of the path.

Swapping here means to associate the terminals pair-wise. An example of how this swapping is performed can be found later in this chapter. The actual routing does

(34)

not take place until the final layout has been determined. Repeat this procedure with all unbalanced rows until W (Tj) = n.

Theorem 3.1 There can exist a maximum number of dL2e of the same vson any

correct layout T . Proof outline:

A maximum number of dL

2e nets, Ni(xi, yi, x0i, yi0), for any Qi can have the

same x-coordinate on S’. Any excess of this would mean that there are more nets being routed to the same y-row than there are terminals in that row.

Theorem 3.2 If W (Ti) < n there always exist at least two x-rows with a weight

function less then L

2 as long as W (Ti) < n.

Proof Outline:

As long as there is one row with at least one pair of the same vs1 it indicates

that the vs2 missing to make a full set exists on an other x-row, making that row

unbalanced as well.

Theorem 3.3 If W (Ti) < n there always exist a pair of pα and pβ so that, if

balancing is performed, the resultant layout Ti+1 satisfies W (Ti+1) > W (Ti).

Proof :

Let rk be a row with Wr(rk) ≤ L2, such a row exists according to Theorem 3.2.

Then let vj be a vertex which occurs more then once in rk. There can exist a

maximum number of L

2 of the same vi on any layout according to Theorem 3.1.

There is room for exactly L

2 on any row and for any duplicate vi on a row, there

is another (unbalanced) row, rk0 without this vi, the vertex corresponding to vj, in a graph constructed from rk to rk0, has the out-degree of more than two and the in-degree of zero.

Therefore there exists a vertex vj0, and a directed path, P (vj, v1, . . . , vm−2, vj0) with m vertices in G(rk, rk0, Ti) such that degout(vj0) < degin(vj0). All vertices on Ti, except vj and vj0, along the path vj and vj0 exist on both rk and rk0, vj exist on only rk. After the swapping, all vertices on Ti+1 exists at least once.

Therefore the weight of at least one of the rows will have increased and W (Ti+1) >

(35)

3.2 Step 1 Swapping 21

Example of Swapping

Below is an example of the construction of a graph from a layout. The graph constructed here is G(r1, r3, T) i.e. the graph from row r1 to row r3 on layout

T. By looking at the the rows, is is seen that they contain the elements v1, v2, v3

and v4. The resulting graph therefore contains these vertices. directed edges,

so called arrows, connecting the vertices are created, making the graph directed. The arrows are drawn from the vertices in r1to r3, indicating vertices of the same

row y-wise. For example in the first y-row, the far left one, v3 is above v4 and a

directed edge from v4to v3 is created. An edge for every y-row is created, leading

to the completed graph. A path from a vertex with degout > deginto a vertex with

degout> degin is then chosen. In this example, the longest path {v4, v2, v3, v1} is

chosen, but any path chosen according to the criteria would result in an increase of the weight function of the layout. The original layout T and the constructed graph is shown in figure 3.2.

v1 v1 v1 v1 v1 v2 v2 v2 v2 v2 v3 v3 v3 v3 v3 v4 v4 v4 v4 v4 r1 r2 r3 r4

(36)

All vertices along the path are pairwise swapped, leading to the next layout, T+ 1. In this example we have the path {v4, v2, v3, v1}. This means that vertices

v4 and v2 are swapped first, then v2 and v3, and finally v3 and v1. The resulting

layout T + 1 is shown in figure 3.3.

v1 v1 v1 v1 v2 v2 v2 v2 v3 v3 v3 v3 v4 v4 v4 v4 r1 r2 r3 r4

(37)

3.3 Step 2 X-routing 23

3.2.2

Route

This step describes how to make the actual routing needed to reach the final layout from the initial one.

For all any and all associated nets, Ni(xi, yi, x0i, yi0) and Nj(xj, yj, x0j, yj0) , route

Nito the grid point with the same x-coordinate, but one layer down and one step

higher y-wise, GP (xi, bi+1, −1). This makes sure that there are never any conflict

cycles, since there are at this point no nets which are straight above any desti-nation coordinates of another net. This means that we have a two-dimensional routing problem, guaranteed to be routable using the PA.

Use the PA, using the P0rows for vertical routing and the Q0 rows for horizontal

routing, to route Ni to

GP(xi, bj+ 1, γ).

Where γ = is the height used. This takes the net just one step away from its final destination. Finally route the final step from GP (xi, β+1, γ) to GP (xi, β, γ). Note

that by taking the first side-step up y-wise and then route to the grid point which is one step from the final destination, the PA can be used without any modifications. Route nets that have not been associated, Ni(xi, yi, x0i, y0i), straight down to GP (xi, bi, γ)

Note that xi= xj per definition.

Theorem 3.4 It is always be possible to use the PA in balancing without any conflict cycles.

Proof outline:

There are never any grid points above the destination coordinates and the net can never be tight since there is always a vacant column in the Pi row for all nets

being swapped.

3.3

Step 2 X-routing

3.3.1

Route

The swapping step has enabled the PA to be used in routing first x-wise, then y-wise. In this step, all nets reach their final x-coordinate. This is achieved by routing all nets, Ni = (xi, yi, x0i, yi0), to, G(x0i, yi, γ) where γ is the height used

after this step, using the PA. Use the Pi row for routing vertically and the Pi0 row

(38)

3.4

Step 3 Y-Routing

3.4.1

Route

In the same fashion as for the x-routing, use the PA to route all nets ,Ni(xi, yi, x0i, yi0),

to G(x0

i, yi0, δ), where δ is the total height used by the algorithm. Use the Qi row

for routing vertically and the Q0

i row for routing horizontally. This successfully

routes all nets.

Theorem 3.5 This last y-wise routing does not need to be swapped. Proof outline:

If there are any collisions at this point it would indicate that, since all nets have already reached their correct x-coordinate, more than one net have been assigned to be routed to the same terminal on the bottom layer.

(39)

3.5 Example of the Proposed Algorithm 25

3.5

Example of the Proposed Algorithm

A simple example is given here to give the reader an idea on how the steps of the proposed algorithm looks. The example consists of a single net being routed and each step is followed by an explanation and the appropriate figure(s).

The net is routed from the indicated terminal on the top layer to the corre-sponding terminal on the bottom layer. The filled lines on the top layer indicate the P and S rows, and the dotted lines indicate the P0 and S0 rows. The initial

illustration of the example is shown in figure 3.4. Note that for the sake of clarity, all of the layers needed by the successful implementation of the algorithm have already been inserted at the beginning. Normally the height of the channel would increase as additional layers were inserted.

H L K x z y

Figure 3.4. The layout of the terminals

3.5.1

Swapping

It is assumed for demonstrative purposes that the net in the example belonged to an unbalanced row and need to be swapped. After the initial sidestep the PA is used, with the P’-rows used for horizontal routing and the Q’-row used for vertical routing. H L K x z y

(40)

3.5.2

X-Routing

In this example we assume that there are no other nets on the particular P0- and

P-rows used for the x-routing of this net, thus there is no need for additional jogging or insertion of additional layers. Therefore only one layer is needed to traverse along the x-axis.

H L K x z y

Figure 3.6. The routing after the first two steps

3.5.3

Y-Routing

Since swapping was performed earlier during the balancing phase, taking the net away from its correct y-coordinate, the net now needs to be routed back along the y-axis using PA. The Q- and Q0-rows are used for vertical and horizontal routing

respectively. H L K x z y

(41)

Chapter 4

Height

4.1

Theoretical Lower Bound

The height is strongly dependent on the placement of the terminals. Each of the steps in the proposed algorithm uptakes an amount of space as explained below. No further investigation on the correlation between the size of the different steps is undertaken.

The theoretical lower bound is of the order O(√n), if n = K·L

4 . This is shown

if all terminals are placed from x1= 0 to xn =n2 on S and from xn =n2 to x1= n

on S’, this is the height required. This is due to the fact that all lines have to cross a vertical plane put at the centre of the x-coordinates at least once. It can be assumed without the loss of generality that this vertical plane is square. The area of such a plane would have to be n, since that is the smallest area which n wires can pass in parallel, and the side, and thereby the height, of such an area would be √n.

S

S’

H x z y

n

2 n

n terminals

2 n

empty empty n terminals

Figure 4.1. The theoretical lower bound with a height of√n

(42)

4.2

The Height of the Proposed Algorithm

4.2.1

Balancing

The balancing part initially takes one track in total for all of the nets being swapped to be moved to the neighbouring column. After that, according to the argumentation above, uses l layers, where l is the highest number of nets being swapped in a P-row.

4.2.2

X-Routing

The x-routing will use a maximum number of layers equal to the highest number of nets in the same P-row after the swapping has taken place.

4.2.3

Y-Routing

The final step use a maximum number of layers equal to the highest number of nets in the same P-row after the x-routing has taken place.

4.2.4

Total

This gives an upper bound of:

1 + max

AllQ−rows(#nets being swapped) +

max

All P−rows(#nets) +All Qmax−rows(#nets) ≈

1 +K+ L + K 2 = 1 + K +L 2 or with L = K: 1 +3L 2 This results in an upper bound volume of:

 1 +3L 2  L2= (1 + 3 2 √ n)(n)

(43)

Chapter 5

Notes

5.1

Monotonicity

The algorithm here is not monotonic, even if the small side-steps taken when changing from horizontal to vertical routing were to be ignored. The swapping and the y-routing provides a great exception from this as they are in a way in conflict with one another. Naturally, because of this, it would be beneficial if a method for searching the destination y-coordinate of nets being swapped could be incorporated in the swapping step, and thereby minimize the distance traversed back and fourth y-wise, even eliminate it in many cases.

5.2

Careful Placement

Should the terminals on S and S0 be carefully placed so that swapping can be

avoided, not only does the required height decrease, but also twice as many ter-minals could be placed, if S is square.

This is due to that there is no need to construct the Q and Q0 association on

S. With only the P and P0 indexing x-routing is possible. However, on S0only Q

and Q0 indexing is required. This allows for the conventional y-routing.

The benefit is great as the resulting height is of the order: 2 + 2n

5.3

Jogging

There are many reasons to avoid excessive jogging, i.e., too many turning points, such that the complexity of the manufacturing of the chip increases and the re-sistance in bends are higher than in straight wires. It would therefore be good to know how far from the optimum it is. Since the algorithm here is based on [9], it has similar jogging performances, which means an improved version of the greedy

algorithm [6]. Pinter also shows that for a channel with given with, his algorithm

(44)

river-routs using the minimum number of jogs per net, and subsequently also a minimum for the total system.

5.4

Optimum Volume

The algorithm proposed here rarely leads to the optimum volume. This is mostly due to the facts:

(1) It does not allow for wires to turn back up during routing

(2) There is much space which is not being used due to the fact that the algo-rithm has three steps. For example, there are inevitably be a lot of wires which are routed straight down in the first step.

A comparison between the proposed algorithm and a more liberal way of rout-ing is shown in the figures below. I figure 5.1 the proposed algorithm has been used, resulting in a height of three. If we instead use a more liberal, but not structured way of routing, as seen in figure 5.2, the height can be decreased to two. However, it would be impossible to route all nets by hand as the complexity grows, rendering latter sort of solutions useless.

H L

K

Figure 5.1. Using the proposed algorithm resultsin a height of 3 layers

H L

K

(45)

Chapter 6

Conclusions and Future

Work

6.1

Conclusions

Previously an extensive amount of work has been done both in the field of routing in general, and in the routing of two-point nets. Most of the papers published on routing lately have focused on making algorithms with as small time complexity as possible. Such papers are for example LaPaugh’s algorithm for routing around a rectangle using a polynomial-time algorithm [6]. Later on we have the Gonzales-algorithm for doing the same thing in linear-time [5]. This is in fact only an extension of LaPaugh’s algorithm, with the first steps remaining the same. Then there is the Pinter-algorithm [9] on which the algorithm in this paper is based. It was selected since it is well suited as a base for this. This is because it, first of all handles two-point nets in a channel. Secondly, it is of the optimal size order for that particular problem, and uses a minimum amount of jogging.

In this thesis the three-dimensional routing problem of two-point nets has been explained, investigated and a solution in the form of an algorithm has been pro-posed. This algorithm is based on the fact that there already exist many good routing techniques for the two-dimensional routing problem of two-point nets. This proposed algorithm breaks up the three-dimensional problem into sub-problems which can be routed using these traditional two-dimensional techniques. When doing this some problems arises due to the fact that there are more degrees of freedom in the three-dimensional problem which leads to the risk of collisions at an early stage. An initial step to prevent this kind of collisions is proposed. This step takes use of graph theory and a series of theorems and proofs are given to show that this step guarantees that no collisions occur neither during the actual step nor later on in the routing process.

(46)

6.2

Future Work

It has already been mentioned that this is only a small part of the extensive work needed if today’s two-dimensional chip manufacturing technique is to make the transition into the manufacturing of three-dimensional chips. This thesis does in fact only concentrate on a special case in the planning and routing of wires be-tween connections. The existing models for interference from cross-talk, parasitic capacitances and thermal dissipation needs to be extended to be valid for this more complex technology. There is also the problem of the actual manufacturing of the microchips, something which has been previously touched upon but not thoroughly evaluated. There are no technologies available today for the manu-facturing of a complex chip in a cubic volume, even if the design of such a chip were possible. One big drawback to all three-dimensional ICs is that silicon area, enough for thousands of transistors, is sacrificed. But as prices of silicon drops, and the limits of the current technology are reached, this is a small price to pay [1].

As for the sub-problem of three-dimensional design which is presented here, there are a number of different approaches which could be taken. This thesis is limited to investigating two-point nets and suggests a solution based on the Pinter Algorithm and graph theory. In could for example prove interesting to investigate a solution utilising fuzzy logic or neural networks. Other possibilities could be to try to formulate the problem as a sorting problem and use well established sorting algorithms. The risk with this or any other solution which would try to route at the same time is that the time-complexity of such an algorithm could become very high.

The reason for choosing graph theory is that it lets the problem be easily vi-sualised and solved. Often the most problematic part in solving a problem is to define it in an appropriate way. If this is done efficiently, the actual solving of the problem is seldom as difficult. With a graph, the problem is divided into enti-ties. Each such entity is represented as a vertex on the graph. The relationship between the entities is represented by the edges. This means that the problem becomes very easy to oversee and thereby easily solvable. There are naturally a lot of powerful tools for solving a graph-theoretical problems, once the graph has been formulated. For this thesis however, it is enough to find a path between the chosen start and end vertices.

(47)

Bibliography

[1] Baliga, J. (2004) Chips Go Vertical

IEEE Spectrum, vol. 41 pp. 43-47.

[2] Banerjee, K., S.J. Souri, P. Kapur and K.C. Saraswat (2001) 3-D ICs: A Novel

Chip Design for Improving Deep-Submicrometer Interconnect Performance and System-On-Chip Integration

Proc. of the IEEE, vol. 89 pp. 602-633.

[3] Brady, M.L, D.J. Brown and P.J. McGuinness (1993) The Three-Dimensional

Channel Routing Problem

Algorethmic Aspects of VLSI Layout, World Scientific pp. 213-244.

[4] Das, D., A. Fan, K.N. Chen, C.S. Tan, N. Checka and R. Reif (2004)

Tech-nology, Performance and Computer-Aided Design of Three-Dimensional Inte-grated Circuits

In Proc. ISPD pp. 92-98.

[5] Gonzalez, Teofilo F and Sing-Ling Lee (1982), A Linear Time Algorithm for

Optimal Routing around a Rectangle

Proceedings of the 20th Allerton Conference on Communication, Control, and Computing

pp. 636-645

[6] LaPaugh, A.S. (1980), A Polynomial-time Algorithm for Optimal Routing

Around a Rectangle

21st Annual IEEE Symposium on Foundations of Computer Science pp. 282-293

[7] LaPaugh, A. S. (1980) Algorithms for integrated circuit layout. An analytic

approach. Ph.D. dissertation

Massachusetts Institute of Technology, Cambridge, Massachusetts

(48)

[8] Obernaus S.T. and T.H Szymanski (2003) Gravity: Fast Placement for 3-D

VLSI

ACM Trans. Design Automation of Electronic Systems pp. 298-315.

[9] Pinter, Ron Y. (1982),On Routing Two-Point Nets Across a Channel

19th Design Automation Conference Paper 46.8.

[10] Rivest, R.L. and C.M. Fiduccia (1981), A "Greedy" Channel Router

MIT Laboratory for Computer Science, Cambridge, Massachusetts

[11] Tong C.C. and C.L. Wu (1995),Routing in a Three-Dimensional Chip

IEEE Trans. Computers pp. 106-117.

(49)

Appendix A

Graph Theory

A.1

Terminology

"When you study real world problems, what you almost always have to do is take a description of that problem and map it into some object or picture that you can study."

-Dr Ron Dutton

University of Central Florida

This chapter describes some of the basic terminology in graph theory. This should in no way be seen as comprehensive, but sufficient in order to understand the usage of this mathematical field. Any graph G consists of:

• A finite non-empty set V of vertices. • A finite set E of edges.

• An end point function δ such that for each e ∈ E, δ(e) is the set of vertices which e joins.

• The power set of V , P , is the set of all subsets in the graph. This means that δ is a function E → P (V ) such that {∨e ∈ E | #(δ(e)) = 1 or 2}.

• e ∈ E joins with v1, v2∈ V if δ(e) = (v1, v2).

• e ∈ E is a loop if δ(e) = (v1).

• e1, e2∈ E are multiple edges is δ(e1) = δ(e2).

• v1, v2∈ V are adjacent if there exists e ∈ E such that δ(e) = (v1, v2).

• An isolated vertex has no edges incident with it. • A simple graph has no loops or multiple edges.

(50)

• The degree of a graph is the number of distinct edges incident with it. • A graph is complete if every pair of distinct vertices is joined by a unique

edge and it has no loops.

• A walk is a finite sequence of edges e1, e2, . . . , en such that

{δ(ei) = (vi−1, vi) | ∨i = 1, 2 . . . n}.

• The length of a walk is the number of edges in it. • A closed walk starts and ends in the same vertex. • A trail is a walk where all edges are distinct. • A path is a walk where all vertices are distinct.

• A graph is connected if for every pair of distinct vertices there is a path. • A directed edge allows only walks between its vertices in one direction. This

is usually symbolised by an arrow.

(51)

A.2 Examples of Graphs 37

A.2

Examples of Graphs

The below graphs are examples which are here to serve as illustrations of the terminology described earlier.

V1

V2

V3

Figure A.1. The complete graph with three vertices is referred to as K3

V1

V3

V4

V5

V2

(52)

V1

V3

V4

V5

V2

Figure A.3. The example graph G1

The above example graph G1 is a complex, directed, non-connected graph. It is

complex since there are two edges between vertices V 1 and V 3. Since it consists of directed edges, here symbolised by arrows, it is a directed graph. The two subsets {V 1, V 2, V 3} and {V 4, V 5} have no edges in common and thus G1is not

(53)

A.3 Graph Theory and The Bridges of Köningsberg 39

A.3

Graph Theory and The Bridges of

Könings-berg

This chapter is included to give the reader an idea of the sort of problems where graph theory can be used, as well as giving a short introduction of its origins. Köningsberg was a city in Prussia situated on the River Pregel, and served as a residence for the dukes of Prussia in the 16th century. The name of the city today is Kaliningrad, one of the major cities of Western Russia. A famous problem concerning Köningsberg and its many bridges, was whether it was possible to take a walk through the town in such a way as to cross every bridge exactly once. A schematic of the city and its bridges is shown in figure A.4. This problem was first solved by the Swiss mathematician Leonhard Euler, father of what is know as graph theory today.

Figure A.4. An illustration of Köningsberg

Euler constructed the graph shown in figure A.5, with the pieces of land rep-resented by its vertices and the bridges by its edges.

Figure A.5. An illustration of Köningsberg

The solution led to the theorem which states that a graph can be drawn with a single line, without lifting the pen once, only if it contains a maximum of two vertices with of an odd order. This is easily understood if we consider the following

(54)

discussion. Assume that an edge is removed as soon as we have travelled it. In order to be able to exit a vertex which we have entered, there must be at least one other edge leading to it. If there are more than one, however, it means that we have to return to the vertex again. If at that time there are no additional edges, other than the one we just entered via, there is no way to continue. It is therefore clear that the edges of any vertex needs to be pair-wise grouped, with one edge for entering and one for leaving the vertex. However, the start and end vertex can have an odd number of edges, since we only need one edge for leaving or entering. In the Köningsberg example, we soon realise that there are more than two vertices of an odd order and the walk thus can not be taken. The graph is actually only made from vertices with an odd order.

(55)

Upphovsrätt

Detta dokument hålls tillgängligt på Internet — eller dess framtida ersättare — under 25 år från publiceringsdatum under förutsättning att inga extraordinära omständigheter uppstår.

Tillgång till dokumentet innebär tillstånd för var och en att läsa, ladda ner, skriva ut enstaka kopior för enskilt bruk och att använda det oförändrat för icke-kommersiell forskning och för undervisning. Överföring av upphovsrätten vid en senare tidpunkt kan inte upphäva detta tillstånd. All annan användning av doku-mentet kräver upphovsmannens medgivande. För att garantera äktheten, säker-heten och tillgängligsäker-heten finns det lösningar av teknisk och administrativ art.

Upphovsmannens ideella rätt innefattar rätt att bli nämnd som upphovsman i den omfattning som god sed kräver vid användning av dokumentet på ovan be-skrivna sätt samt skydd mot att dokumentet ändras eller presenteras i sådan form eller i sådant sammanhang som är kränkande för upphovsmannens litterära eller konstnärliga anseende eller egenart.

För ytterligare information om Linköping University Electronic Press se för-lagets hemsida http://www.ep.liu.se/

Copyright

The publishers will keep this document online on the Internet — or its possi-ble replacement — for a period of 25 years from the date of publication barring exceptional circumstances.

The online availability of the document implies a permanent permission for anyone to read, to download, to print out single copies for your own use and to use it unchanged for any non-commercial research and educational purpose. Subsequent transfers of copyright cannot revoke this permission. All other uses of the document are conditional on the consent of the copyright owner. The publisher has taken technical and administrative measures to assure authenticity, security and accessibility.

According to intellectual property law the author has the right to be men-tioned when his/her work is accessed as described above and to be protected against infringement.

For additional information about the Linköping University Electronic Press and its procedures for publication and for assurance of document integrity, please refer to its www home page: http://www.ep.liu.se/

c

References

Related documents

With Secunity, women have easy access to overview information regarding sexual violence at different venues - and can influence the situation by sharing their own experiences.

The aim of the study has been to study the carbon and nitrogen in the sediments in the Höggarnsfjärden Bay in the inner parts of the Stockholm Archipelago, Sweden,

Study I investigated the theoretical proposition that behavioral assimilation to helpfulness priming occurs because a helpfulness prime increases cognitive accessibility

En lösning skulle kunna vara att periodisera träningsvolymen för respektive träningspass så att benet som tränade fem pass per vecka utförde tuffare pass varannan dag och

Lärarna från studien berättar exempelvis att fysisk hälsa är det kursplanen vill att vi [lärare] ska fokusera på, det står ju nästan bara om hälsa i form av

För GIH-studenterna var skillnaden i använd relativ syreupptagning större mellan cyklisterna och fotgängarna med 67 % för kvinnliga cyklister och 36 % för kvinnliga

Dåtida medicinsk litteratur och hälsoundersökningar används för att komma åt föreställningar om flickor och pojkar under perioden 1870–1930, hur de uppkom och förändrades.. I

Simple models and algorithms based on restrictive assumptions are often used in the field of neuroimaging for studies involving functional magnetic resonance imaging (fMRI),