Topological Sorting

45
Topological Sorting Brief overview of topological sorting in graphs Mihail Petrov mihail- petrov.cloudvps.com Trainer Candidate

description

Topological Sorting. Brief overview of topological sorting in graphs. Mihail Petrov. mihail-petrov.cloudvps.com. Trainer Candidate. Table of Contents. TS Why ? TS Examples and Warnings TS Algorithm explanation Source Removal Algorithm for TS TS with DFS. TS Why ?. - PowerPoint PPT Presentation

Transcript of Topological Sorting

Page 1: Topological Sorting

Topological SortingBrief overview of topological sorting in graphs

Mihail Petrov

mihail-petrov.cloudvps.com

Trainer Candidate

Page 2: Topological Sorting

Table of Contents

1. TS Why ?

2. TS Examples and Warnings

3. TS Algorithm explanation

4. Source Removal Algorithm for TS

5. TS with DFS

2

Page 3: Topological Sorting

TS Why ?Why we need to sort a graph

topologically

Page 4: Topological Sorting

University course graph

4

Math

Programing OOP

C#

Data Structures

Java

JS

Spring

Java EE

Find the order in which all the courses can be taken !

Page 5: Topological Sorting

Explanation Using TP Sorting we could find the right sequence of element, represented as a gaph.

Given a digraph G = (V, E), we could find a linear ordering of its vertices such that for any edge (v, w) in E, v precedes w in the ordering.

5

Page 6: Topological Sorting

TS Examples and Warnings

Page 7: Topological Sorting

Sample Graph #1

7

A

E

B

C

D

F

Page 8: Topological Sorting

Sample Sorting #1 Actualy we can’t sort it: What is the order, this:

8

A B C D E

Or this:

B A E D C

Page 9: Topological Sorting

Sample #1 Conclusion

9

We CAN NOT topologically sort an unordered Graph

!

Page 10: Topological Sorting

Sample Graph#2

C#

WPF

Production

Java Script

Front-End

A B

CD

E

Page 11: Topological Sorting

Sample Sort

11

A B C D E

A B C DE

Rite Sort – Left Direction

Wrong Sort – Right Direction

Page 12: Topological Sorting

Sample #2 Conclusion

12

Any linear ordering in which an arrow goes to the left is NOT a vald solution

!

Page 13: Topological Sorting

Sample Graph#3

C#

WPF

Production

Java Script

Front-End

A B

CD

E

Page 14: Topological Sorting

Sample Sort#3

14

A B C D E

Page 15: Topological Sorting

Sample #3 Conclusion

15

A directed graph with a cycle CAN NOT be topologically sorted

!

Page 16: Topological Sorting

TS AlgorithmGeneral Explanation of TS

Page 17: Topological Sorting

Example:

A

E

C

B

D

We have the fouling graph, and we have to apply the TS for it.

Page 18: Topological Sorting

Step #1

A

E

C

B

D

Identify and Select Node with no incoming edges.

Page 19: Topological Sorting

Step #1 Warning If, no such node than:

19

A

D

B

C

TPS Not Posible

Page 20: Topological Sorting

Step #2

A

E

C

B

D

Remove Selectde Node

Elements:

Page 21: Topological Sorting

Step #2

A

E

C

B

D

Repeat step#2

Elements:

Page 22: Topological Sorting

Step #2

A

E

C

B

D

Repeat step #2

Elements:

Page 23: Topological Sorting

Step #2

A

E

CB

D

Repeat step #2

Elements:

Page 24: Topological Sorting

Result:

A ECB D

TS Result

Page 25: Topological Sorting

TS Program Implementation

Page 26: Topological Sorting

Graph Representation using Adjacency List

26

A

B

C

D

E

B E

D C

D

E F

F

F -

Page 27: Topological Sorting

Graph Representation using Adjacency Matrix

27

A B C D E FABCDEF

The Node A is the only Node without Outgoing Edges

Page 28: Topological Sorting

TS using Source Removal

Page 29: Topological Sorting

Source Removal Implementation

29

Implementation Steps:1. Create an Empty List 2. Find a Noad without Incoming Edges3. Add this Node to the End of the List4. Remove the Edge from the Graph5. Repeat Step 1 throw 4 until the

Graph is empty

Page 30: Topological Sorting

Step #1-2

30

A

E

D

B

F

C

The Node A is the only Node without Incoming Edges

Page 31: Topological Sorting

Step #3-4

31

A

E

D

B

F

C

L

Page 32: Topological Sorting

Step #2-3

32

A

E

D

B

F

C

L

Page 33: Topological Sorting

Step #2-3

33

A

E

D

B

F

C

L

Page 34: Topological Sorting

Step #2-3

34

A

E

D

B

F

C

L

Page 35: Topological Sorting

Step #2-3

35

A

E

D

B

F

CL

Page 36: Topological Sorting

Step #2-3

36

A

E

D

B

F

CL

Page 37: Topological Sorting

Step #2-3

37

A

E

DB

F

CL

Page 38: Topological Sorting

Step #2-3

38

A

E

DB

F

CL

Page 39: Topological Sorting

Result:TS

39

A EDB FC

Page 40: Topological Sorting

TS using Source Removal

Live Demo

Page 41: Topological Sorting

TS using DFSPretty much the same

Page 42: Topological Sorting

42

DFS Implementation. This algoritum is the oposite of SR

algoritum Realisation Steps:1. Create ab empty List2. Find a Noad without Outgoing Edges3. 3.Mark the Node as visited4. Reverse the List and get the TS, of

the Elements

Page 43: Topological Sorting

TS using DFSLive Demo

Page 44: Topological Sorting

форум програмиране, форум уеб дизайнкурсове и уроци по програмиране, уеб дизайн – безплатно

програмиране за деца – безплатни курсове и уроцибезплатен SEO курс - оптимизация за търсачки

уроци по уеб дизайн, HTML, CSS, JavaScript, Photoshop

уроци по програмиране и уеб дизайн за ученициASP.NET MVC курс – HTML, SQL, C#, .NET, ASP.NET MVC

безплатен курс "Разработка на софтуер в cloud среда"

BG Coder - онлайн състезателна система - online judge

курсове и уроци по програмиране, книги – безплатно от Наков

безплатен курс "Качествен програмен код"

алго академия – състезателно програмиране, състезания

ASP.NET курс - уеб програмиране, бази данни, C#, .NET, ASP.NETкурсове и уроци по програмиране – Телерик академия

курс мобилни приложения с iPhone, Android, WP7, PhoneGap

free C# book, безплатна книга C#, книга Java, книга C#Дончо Минков - сайт за програмиранеНиколай Костов - блог за програмиранеC# курс, програмиране, безплатно

?

? ? ??

?? ?

?

?

?

??

?

?

? ?

Questions?

?

Combinatorics

http://algoacademy.telerik.com

Page 45: Topological Sorting

Useful Links

Topological sorting sudo code http://

en.wikipedia.org/wiki/Topological_sorting

Graph teory http://cs.maycamp.com/?page_id=772

Source removal and DFS explanation http://

www.youtube.com/watch?v=SwN4LgOw6mo

TopCoder forum discusion about number of ways to topological sort:

http://apps.topcoder.com/forums/?module=Thread&threadID=667031&start=0&mc=10#1208539