Department of Computer Science and Engineering Bangladesh University of Engineering and Technology...

37
1 Department of Computer Science and Engineering Bangladesh University of Engineering and Technology Md. Emran Chowdhury Department of CSE Northern University Bangladesh Muhammad Jawaherul Alam Md. Saidur Rahman 6 th International Conference on Electrical & Computer Engineering (ICECE) 2010

Transcript of Department of Computer Science and Engineering Bangladesh University of Engineering and Technology...

1

Department of Computer Science and Engineering

Bangladesh University of Engineering and Technology

Md. Emran ChowdhuryDepartment of CSENorthern University

Bangladesh

Muhammad Jawaherul AlamMd. Saidur Rahman

6th International Conference on Electrical & Computer Engineering (ICECE) 2010

2

▒ Problem Definition

ContentsContents

▒ Motivation

▒ Previous Results and Our Results

▒ Upward Point-Set Embedding

▒ Conclusion and Future Works

3

Point-Set EmbeddingPoint-Set Embedding

a

c

b

df

e

Sa

c

b

df

e

G

Each vertex is placed at a distinct point

Input

4

Inputf

c

b

d

a

e

a

c

b

df

e

SG

Point-Set EmbeddingPoint-Set Embedding

Each vertex is placed at a distinct point

Each edge is drawn by straight or poly line

Output

Bend

5

Upward Point-Set EmbeddingUpward Point-Set Embedding

f

c

b

d

a

e

a

c

b

df

e

SG

Each edge is drawn upward

Input

Each vertex is placed at a distinct point Output

6

Each edge is drawn upward

Upward Point-Set EmbeddingUpward Point-Set Embedding

ac

b

df

e

G’ S

f

c

b

d

a

e

ac

b

df

e

Ga

cb

df

e

G S

f

c

b

d

a

e

f

c

b

d

a

e

S

G’ has no upward point-

setembedding on

S

Not every graph hasupward point-set embedding

on a fixed point-set

7

1

3

4

2

ac

d

b

Upward Point-Set Embedding with mappingUpward Point-Set Embedding with mapping

ac

d

bS

G

φ

8

ac

d

b

S

G

a

c

d

a

c

b

d

S

φ’

No upward point-setembedding with this mapping

No upward point-setembedding with this mapping

Upward Point-Set Embedding with mappingUpward Point-Set Embedding with mapping

Finding upward point-set

embedding with mapping is a

real challenge

9

▒ Problem Definition

ContentsContents

▒ Motivation

10

visual analysis of self-modifiable code,based on computing a sequence of drawingswhose edges are defined at run-time [Hal91]

MotivationMotivation

Upward Point-set Embedding with mapping

That alters its own instructions while it is executing-usually to

reduce the instruction path length and improve performance.

11

MotivationMotivation

• The graphs are specified one at a time

• The vertex locations for the output graphs are determined by the first graph

12

MotivationMotivation

In VLSI layout, we often want to find point-set embeddings of planar graphs with fewer bends.

13

▒ Problem Definition

ContentsContents

▒ Motivation

▒ Previous Results and Our Results

14

Previous Results and Our ResultsPrevious Results and Our Results

Problem Graph classAuthors Results

Giordano et. al. ’07

upward point-set

embedding

Upward planar

digraphs

at most two bends per

edge

Giordano, Liotta, and Whiteside

’09

upward point-set

embedding with mapping

Upward planar

digraphs

at most 2n-3 bends per

edge

This Paper

upward point-set

embedding with mapping

Upward planar

digraphs

at most n-3 bends per

edge

upper boundon total

number of bends

Upward Point-Set Embedding

15

▒ Problem Definition

ContentsContents

▒ Motivation

▒ Previous Results and Our Results

▒ Upward Point-Set Embedding

16

Upward Point-Set EmbeddingUpward Point-Set Embedding

SG Input

Upward Topological Book Embedding

v1

v3

v4v2

v5

1

2

3

4

5

1

2

3

4

5

v1

v3

v4v2

v5

1

2

3

4

5

Upward Point-set Embedding

17

a

c

b

d

Upward Topological Book EmbeddingUpward Topological Book Embedding

ac

d

b

SG

Spine

LeftPage

RightPage

The vertices on the spine

The edges on the pages

Digraph

Upward Topological Book Embedding

18

G contains directed hamiltonian pathG contains directed hamiltonian path

1

3

2

4

7

6

5

A directed path containingall the vertices

A directed path containingall the vertices

1

2

3

4

5

6

7

Upward Topological Book EmbeddingUpward Topological Book Embedding

19

G contains directed hamiltonian pathG contains directed hamiltonian path

1

3

2

4

7

6

5

1

2

3

4

5

6

7

Upward Topological Book EmbeddingUpward Topological Book Embedding

201

2

3

4

5

6

7

Upward Topological Book EmbeddingUpward Topological Book Embedding

211

2

3

4

5

6

7

Upward Topological Book EmbeddingUpward Topological Book Embedding

1

2

3

4

5

6

7

221

2

3

4

5

6

7

Upward Topological Book EmbeddingUpward Topological Book Embedding

1

2

3

4

5

6

7The drawing …..

• has no edge crossings sinceit has the same embeddingas the original graph

• has no spine crossing• has 1 bend per edge

23

G does not contain directed Hamiltonian path

1

3

2

4

7

6

5

a

b

cd

e

Upward Topological Book EmbeddingUpward Topological Book Embedding

24

a

b

cd

e

1

3

2

4

7

6

5

Upward Topological Book EmbeddingUpward Topological Book Embedding

G does not contain directed Hamiltonian path

25

a

b

cd

e

1

3

2

4

7

6

5

Upward Topological Book EmbeddingUpward Topological Book Embedding

G does not contain directed Hamiltonian path

26

a

b

cd

e

1

3

2

4

7

6

5

a

b

c

d

e

1

2

3

4

5

6

7

Upward Topological Book EmbeddingUpward Topological Book Embedding

27

1

32

4

7

6

5

a

bc

d

e

a

b

c

d

e

1

2

3

4

5

6

7

Upward Topological Book EmbeddingUpward Topological Book Embedding

Input digraph 1

2

3

4

5

6

7

Each spine crossingcorresponds to a dummy vertex

28

Calculation of number of BendsCalculation of number of Bends

i

i+1

i+2

j-2

j-1

j

Spine crossing from ito j is at most j-i-2

Spine crossing from ito j is at most j-i-2

29

Calculation of number of BendsCalculation of number of Bends

Spine crossing from ito j is at most j-i-2

Spine crossing from ito j is at most j-i-2

Spine Crossings per edgeis at most (n-1)-1-2 = n-4

or n-2-2 = n-4

Spine Crossings per edgeis at most (n-1)-1-2 = n-4

or n-2-2 = n-4

1

2

3

n-3

n-2

n-1

n

The edge (1, n) has no crossingsThe edge (1, n) has no crossings

30

Calculation of number of BendsCalculation of number of Bends

Spine crossing from ito j is at most j-i-2

Spine crossing from ito j is at most j-i-2

The edge (1, n) has no crossingsThe edge (1, n) has no crossings

Bends per edge is at most n-3Bends per edge is at most n-3

Spine Crossings per edgeis at most (n-1)-1-2 = n-4

or n-2-2 = n-4

Spine Crossings per edgeis at most (n-1)-1-2 = n-4

or n-2-2 = n-4

31

Calculation of number of BendsCalculation of number of Bends

Spine crossing from ito j is at most j-i-2

Spine crossing from ito j is at most j-i-2

The edge (1, n) has no crossingsThe edge (1, n) has no crossings

Bends per edge is at most n-3Bends per edge is at most n-3

n-4 spine crossings

edge (1, n-1)edge (2, n)

n-5 spine crossings

edge (1, n-2)edge (2, n-1)edge (3, n)

Spine Crossings per edgeis at most (n-1)-1-2 = n-4

or n-2-2 = n-4

Spine Crossings per edgeis at most (n-1)-1-2 = n-4

or n-2-2 = n-4

Total number of spine crossings=2(n-4)+3(n-5)+ . . . +k(n-2-k)+p(n-3-k)where p, k are integers

Number of edges which crosses thespine={k(k+1)/2}-1+p

32

▒ Problem Definition

ContentsContents

▒ Motivation

▒ Previous Results and Our Results

▒ Upward Point-Set Embedding

▒ Conclusion and Future Works

33

ConclusionConclusion

upward planar digraph n-3 bends per edge Quadratic

34

Design a fast algorithm for checkingupward point-set embedding

Minimize the number of bends inupward point-set embedding

Future WorksFuture Works

35

Thank You

36

Pseudo-code example Pseudo-code example

repeat N times{ if STATE is 1 increase A by 1 else decrease A by 1

do something with A}

repeat N times{ increase A by 1 do something with A}when STATE has to switch{ replace the op-code increase above with the op-code to decrease}

37

Assembly style self-modifying codeAssembly style self-modifying code

1. Optimization of a state dependant loop.

2. Runtime code generation, or specialization of an algorithm in runtime or load time (which is popular, for example in the domain of real-time graphics).

3. Altering of in lined state of an object, or simulating the high level construction of closures.

4. Patching of subroutine address calling, as done usually at load time of dynamic libraries. Whether this is regarded 'self-modifying code' or not is a case of terminology.