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