please press here to the full paper

advertisement
EJMTCS Journal
ISSN 1946-4690
European Journal of Mathematics, Technology and Computer Science
SOME INTERESTING TOPICS OF GRAPH THEORY IN
MODERN COMPUTER SCIENCE AND ENGINEERING
BESJANA TOSUNI
MIS /Europian University of Tirana
ALBANIA
E-mail.b.tosuni@hotmail.com
ABSTRACT
The main aim of this paper is to put light on the usage of graphs in the field of computer
science and engineering. As the name “graph”, suggest that something related to structures or
pictures. How these structures and pictures will be helpful for computer science applications?
Graph theory was invented from the Koinsberg bridge problem in 1735. Various papers based
on graph theory have been studied related to scheduling concepts, computer science
applications and an overview has been presented here. The key points will be AD-HOC
networks, BIPARTITE graphs, MEDIAN graphs, GEOMETRIC spanner, and VORONOI
graphs. Computer Science is widely based upon graphs, many of its applications theoretically
uses graphs mainly in research areas like data mining, clustering, image processing, and etc.
This paper focuses on the various usages of graphs in computer science applications, how
field of graph theory becomes important in computer science field and why the computer
science students are also being focused much on graph theory and its properties apart from
their core field related subjects.
Graphs are considered as an excellent modeling tool which is used to model many type
of relations amongst any physical situation. Many problems of real world can be represented
by graphs. This paper explores different concepts involved in graph theory and their
applications in computer science to demonstrate the utility of graph theory. These
applications are presented especially to project the idea of graph theory and to demonstrate its
objective and importance in computer science engineering.
Keywords: Graphs, graph coloring, graph drawing, proximity graphs
Slovakia Academic Publishing, SK
Page1
www.skaponline.com
EJMTCS Journal
ISSN 1946-4690
European Journal of Mathematics, Technology and Computer Science
1.INTRODUCTION
The origin of graph theory started with the problem of Koinsber bridge, in 1735. This
problem lead to the concept of Eulerian Graph. Euler studied the problem of Koinsberg
bridge and constructed a structure to solve the problem called Eulerian graph. In 1840, A.F
Mobius gave the idea of complete graph and bipartite graph and Kuratowski proved that they
are planar by means of recreational problems. The concept of tree, (a connected graph
without cycles [1]) was implemented by Gustav Kirchhoff in 1845, and he employed graph
theoretical ideas in the calculation of currents in electrical networks or circuits. In 1852,
Thomas Gutherie found the famous four color problem. Then in 1856, Thomas. P. Kirkman
and William R.Hamilton studied cycles on polyhydra and invented the concept called
Hamiltonian graph by studying trips that visited certain sites exactly once. In 1913,
H.Dudeney mentioned a puzzle problem. Eventhough the four color problem was invented it
was solved only after a century by Kenneth Appel and Wolfgang Haken. This time is
considered as the birth of Graph Theory.
Graph coloring especially used various in research areas of computer science such data
mining, image segmentation, clustering, image capturing, networking etc., For example a
data structure can be designed in the form of tree which in turn utilized vertices and edges.
Similarly modeling of network topologies can be done using graph concepts. In the same way
the most important concept of graph coloring is utilized in resource allocation, scheduling.
Also, paths, walks and circuits in graph theory are used in tremendous applications say
traveling salesman problem, database design concepts, resource networking. This leads to the
development of new algorithms and new theorems that can be used in tremendous
applications. Graph coloring is one of the most important concepts in graph theory and is
used in many real time applications in computer science. Various coloring methods are
available and can be used on requirement basis. The proper coloring of a graph is the coloring
of the vertices and edges with minimal number of colors such that no two vertices should
have the same color. The minimum number of colors is called as the chromatic number and
the graph is called properly colored graph [2].
Slovakia Academic Publishing, SK
Page2
www.skaponline.com
EJMTCS Journal
ISSN 1946-4690
European Journal of Mathematics, Technology and Computer Science
In mathematics and computer science, graph theory is the study of graphs which are
mathematical structures used to model pair wise relations between objects. There is wide use
of graphs in providing problem solving techniques, because it gives an intuitive manner prior
to presenting formal definition. To analyze the graph theory application two problem areas
are considered.
1- Classical problem 2- Problems from applications the classical problem are defined
with the help of the graph theory as connectivity, cuts, paths and flows, coloring problems
and theoretical aspect of graph drawing. Whereas problems from application particularly
emphasis on experimental research and the implementation of the graph theory algorithms.
Graph drawing [1] is a key topic in implementation point of view, because the automatic
generation of drawing graph has important applications in key computer science technologies
such as data base design, software engineering, circuit designing, network designing and
visual interfaces.
2.Application of Graphs in Deadlock Detection in Operating
A deadlock is a term used to describe a system state that occurs when a running process
is forced to enter a waiting state because a resource required for further execution is being
held by a waiting process, which is waiting for another resource to be released. All the
processes in such situation are unable to come out of the waiting state and wait endlessly for
the resource to be released. [3] Deadlock is a frequently encountered in operating systems
that support multiprocessing and distributed environments, where processes use software and
hardware locks on resources to realize program synchronization. In safety-critical real-time
systems, the possibility of a deadlock is extremely undesirable. Hence, methods are needed to
decrease the possibility of deadlocks. One such method is resource allocation graphs.
Slovakia Academic Publishing, SK
Page3
www.skaponline.com
EJMTCS Journal
ISSN 1946-4690
European Journal of Mathematics, Technology and Computer Science
3.Graph construction
A resource allocation graph is a digraph.
There are two types of vertices come in resource vertices and thread vertices. A resource
vertex
is
included
for
all
resources
in
consideration. A thread vertex represents a single
process or thread in one possible state. There are two types of edges, request edges and
assignment edges. A request edge is drawn from one thread vertex to a resource vertex and
signifies that the thread being considered is trying to achieve a lock on the resource. An
assignment edge is drawn from the resource in question to the thread vertex. It represents that
the resource is held by that particular thread.[4] We represent resource vertices by squares
labelled with the name of the resource and thread vertices with circles labelled with the name
of the thread. Edges are drawn as arrows from one vertex to another.
The diagram above is the resource allocation
graph for a thread T holding a resource A and
requesting for a resource B. A deadlock is detected
when a circular arrangement of hold-waits occurs.
That is, the resource allocation graph forms a
cycle. To draw the graph we proceed thread by
thread and include only the possible holdwait
conditions as edges in the graph [4].
In the diagram above, we can observe that the system can
T1 requests for a resource C (held by T2) which in turn requests
for a resource B held by T1. This forms a cycle in the graph.
Hence a resource allocation graph can be an effective tool for
deadlock detection.
Slovakia Academic Publishing, SK
Page4
www.skaponline.com
EJMTCS Journal
ISSN 1946-4690
European Journal of Mathematics, Technology and Computer Science
However the system in the above diagram does not have the possibility of a deadlock in
spite of cycle formation. This is because a vertex node represents a thread in one particular
state. And the two thread nodes in the above graph actually represent a single thread T1 in
two different states. A deadlock cannot occur because a thread cannot be in two states
simultaneously.
4.Application of Graph theory to Object oriented software engineering:
Software engineering is the core of the computer science engineering. In this we study
the development of the software, which is the firmware which simplifies the human work;
depending upon the human need the software is developed. One of the software engineering
is object-oriented in which we see software as a combination of real time objects with
relationships. So is Object-Oriented (OO) software engineering, which deals with the
analysis, design and implementation of systems employing classes as modules. The latter
field can greatly benefit from the application of Graph Theory, since the main mode of
representation, namely the class diagram, is essentially a directed graph. Class diagrams can
be perfectly mapped to graphs where vertices represent the classes, while edges correspond to
a selected type of relationship (e.g. association, generalization, composition, etc.). Graphs
have long been used in several fields of computer science. To mention a few, we will give
examples from several phases of the software development lifecycle. During Requirements
Specification, Data Flow Diagrams (DFDs) are essentially graphs where vertices represent
transformations and edges the data flows. During design, any sort of Graphical Design
Notation (GDN) used for describing relations among modules is essentially a graph. In this
broad set of techniques directed edges represent the dependency of one software component
on another, which is essential information for the structure of procedural programs. During
testing, another example is the control low of a program associated with the well-known
McCabe's complexity measure which employs directed graphs for addressing the sequence of
executed instructions, the structures that they form and the upper bound of tests for ensuring
Slovakia Academic Publishing, SK
Page5
www.skaponline.com
EJMTCS Journal
ISSN 1946-4690
European Journal of Mathematics, Technology and Computer Science
coverage. Even software process management has benefited from the use of network
diagrams for calculating earliest start and latest finish dates (CPM and PERT techniques).
5.Website designing
Website designing can be modeled as a graph, where the web pages are represented by
vertices and the hyper links between them are represented by edges in the graph. This concept
is known as web graph. Which discover the interesting information? Other application areas
of graphs are in web community. Where the vertices represent classes of objects, and each
vertex representing one type of objects, and each vertex representing a type of object is
connected to every vertex representing other kind of objects. In graph theory such a graph is
called a complete bipartite graph. There are many advantages of using graph representation in
website development such as:
 Searching and community discovery.
 Graph representation (directed graph) in web site utility evaluation and link structure.
 Finding all connected component and provide easy detection.
6. Data mining
Graph mining is the main application area of graph theory in data mining. Graph mining
represents the relational aspect of data. There are five theoretical based approaches of graph
based data mining. They are sub graph categories, sub graph isomorphism, graph invariants,
mining measures and solution methods.
Slovakia Academic Publishing, SK
Page6
www.skaponline.com
EJMTCS Journal
ISSN 1946-4690
European Journal of Mathematics, Technology and Computer Science
7. Data structure
Data may be organized many different ways. The logical or mathematical model of a
particular organization of data is called a “data structure”. The choice of data model depends
on two considerations:
 It must be rich enough in structure to mirror actual relationship of data in real world.
 The structure should be simple enough that one can effectively process data when
necessary.
These two considerations is fulfilled by the graph theoretical concepts. Arbitrary relation
among data can also be represented by a graph and its matrices , operations performed on
these metrics are further useful for deriving relations and data association and is useful in
order to understand how these data may be stored in memory [5][6].
8.Operating system
A graph is a data structure of finite set of pairs, called edges or vertices. Many practical
problems can be solved with the help of graph in the field of operating system such as job
scheduling and resource allocation problems. For example graph coloring concept can be
applied in job scheduling problems of CPU, jobs are assumed as vertices of the graph and
there will be an edge between two jobs that cannot be executed simultaneously and there will
be one to one relationship between feasible scheduling of graphs [7].
Graph purpose in operating system
1) System processes are represented in graph form.
2) Graph extraction techniques are used in event tracing.
3) Excellent testing tool in performance evaluation because of easy validation and
modification
Slovakia Academic Publishing, SK
Page7
www.skaponline.com
EJMTCS Journal
ISSN 1946-4690
European Journal of Mathematics, Technology and Computer Science
9. TABLE 1: Application of Graph Theory in Computer Science and Engineering
Applicatio
n field
Property and
concepts of graph
Uses
theory
Database
Index- free adjacency
designing
sets.
Connectivity and Data
Software
Applications area
flow,Directed graph,
engineering and,cyclomatic
complexity
Analyzing interconnection,
Graph database
Direct mapping and Natural
scaling to large data sets.
DFD, Control flow
Transformations,Capturing
graph, ER-diagram,
requirements, Describing
process sequencing
relations among modules,
and software
Designing system and In testing
quality [8]
process.
Compilers uses graph coloring
algorithms for Register
Coloring algorithms
Computer
Graph coloring and
hardware
Matrix representation
Fine-grain
parallelism analysis
, Data dependence
matrix
allocation to variables ,
Calculate parallelism degree,
Very useful in analytical
modeling , Addressing the
sequence of instruction
execution , Resource allocation
and Economizing the memory
space(file organization).
Network
design
Connectivity,
Topological
Finding shortest path, Searching
Traversing,
control,and
and Arrangement of nodes in
Adjacency, Vertex
Weighted graph,
network designing, Modeling
cover algorithms and
Butterfly network
communication networks [9],
Different graph
and 2-D array
Traffic analysis and in Network
Slovakia Academic Publishing, SK
Page8
www.skaponline.com
EJMTCS Journal
ISSN 1946-4690
European Journal of Mathematics, Technology and Computer Science
representation
security
Efficient organization of data,
Finding minimum cost tree,
Data
Structure
Directed graphs ,
Array,Tree,Linked
Minimizing data retrieval times
Matrices,and Matrices
list,Pointers,
, Minimizing page swapping in
operation
Stacks,and Queues
data structure paging system
and Provides link structure in
websites
Edge boundaries,
Image
processing
Edge connectivity,
Entropy, Shortest
Segmentation and registration,
Regions, Spanning
path algorithms
Distance transform and Center
tree
and,Search
line extraction
algorithms
Data
Sub,graphs,
mining
Isomorphism
Graph mining
Sub structure matching,
Reducing search space
Provide feasible solution to job
Job scheduling
scheduling,and,Efficient,resourc
Operation
Graph,coloring,
problems and
e (processor) allocation in
system
Directed graph
Simultaneous
solving simultaneous job
execution of job
execution problems. [10] and In
process representation
Directed graph,
Web site
Undirected graph, In
designing
degree and out degree,
Search algorithms
Slovakia Academic Publishing, SK
Web graph, Web
Community discovery ,
pages,and
Searching and Website
Hyperlinks
evaluation
Page9
www.skaponline.com
EJMTCS Journal
ISSN 1946-4690
European Journal of Mathematics, Technology and Computer Science
10. CONCLUSION
This paper is designed to benefit the students of computer science to gain depth
knowledge on graph theory and its relevance with other subjects like operating systems,
Networks, Databases, software engineering etc. this paper focused on the various applications
of major graph theory that have relevance to the field of computer science and applications.
REFERENCES
[1] Graph algorithms and applications: special issue by Nishizeki, Takao; Tamassia,
Roberto; Wagner, Dorothea. - Berlin: Springer, 2000. - (Algorithmica: 26. 2000, 1)
[2] Narasingh Deo, “Graph theory with applications to engineering and computer
science”, Prentice Hall of India, 1990
[3] http://en.wikipedia.org/wiki/Deadlock
[4] Roger Henriksson, “Resource Allocation Graphs”, Lund University.
[5] 4-graph application to data structures by V.manjula (2012)
[6] On the application of graph theory to computer data structure by R.Williams.
[7] Applications of Graph Coloring in Modern Computer science by Shamim Ahmed
(ijcit, issn 2078-5828 (print), issn 2218-5224 (online), volume 03, issue 02, manuscript code:
130101(2012)
[8] Graph theory application in developing software test strategies for networking system
by Vladimir. V. Riabov (2007)
[9] Application of graph theory in communication networks by suman deswal and Anita
singhrova, International Journal of Application or Innovation in Engineering & Management
(IJAIEM), Volume 1, Issue 2, and October 2012
Slovakia Academic Publishing, SK
Page10
www.skaponline.com
EJMTCS Journal
ISSN 1946-4690
European Journal of Mathematics, Technology and Computer Science
[10] The role of data structure in multiple disciples in computer science: A Review by
N.Sobhna Rani and Suman S.P, International Journal of Scientific & Engineering Research,
Volume 4, Issue 7, July-2013
[11] Applications of Graph Coloring in Modern Computer science by Shamim Ahmed
(ijcit, issn 2078-5828 (print), issn 2218-5224 (online), volume 03, issue 02, manuscript code:
130101(2012)
[12] Applications of graph theory in computer science an overview by S.G.Shirinivas,
S.Vetrivel and Dr. N.M.Elango (International Journal of Engineering Science and
Technology, Vol. 2(9), 2010, 4610-4621)
[13] Graph theory application in developing software test strategies for networking
system by Vladimir. V. Riabov (2007)
[14] Application of Graph Theory to OO Software Engineering Alexander
Chatzigeorgiou,Nikolaos Tsantalis George Stephanides
[15] Graph Theory and Application Specific Processors Carlo Galuzzi Koen Bertels
Stamatis Vassiliadis
Slovakia Academic Publishing, SK
Page11
www.skaponline.com
Download