An Algorithm to detect balancing of iterated line sigraph
 Deepa Sinha^{1}Email author and
 Anshu Sethi^{2}
Received: 12 September 2015
Accepted: 2 November 2015
Published: 17 November 2015
Abstract
A signed graph (or sigraph in short) S is a graph G in which each edge x carries a value \(s(x) \in \{+1, 1\}\) called its sign denoted specially as \(S = (G, s)\). Given a sigraph S, H = L(S) called the line sigraph of S is that sigraph in which edges of S are represented as vertices, two of these vertices are defined to be adjacent whenever the corresponding edges in S have a vertex in common and any such edge ef is defined to be negative whenever both e and f are negative edges in S. Here S is called root sigraph of H. Iterated signed line graphs \(L^k(S)\) = \(L(L^{k1}(S)),\) k \(\in\) \(\mathbb {N}\), S:= \(L^0(S)\) is defined similarly. In this paper, we give an algorithm to obtain iterated line sigraph and detect for which value of ‘k’ it is balanced and determine its complexity. In the end we will propose a technique that will use adjacency matrix of S and adjacency matrix of \(L^k(S)\) which is balanced for some ‘k’ as a parameter to encrypt a network and forward the data in the form of balanced \(L^k(S)\) and will decrypt it by applying inverse matrix operations.
Keywords
Mathematics Subject Classification
Background
For standard terminology and notation in graph theory we refer to Harary (1969), West (1996) and Zaslavsky (1981, 1982) for sigraphs and Cormen et al. (2011) and Golumbic (2004) for algorithms. Throughout the text, we consider finite, undirected graph with no loops or multiple edges. By an (n, e) graph G we mean a graph having n vertices and e edges; n is called the order and e is called the size of G. In computer science domain, any graph G is observed as a network by computer scientists where vertices are taken to be nodes and edges to be taken as links.
A signed graph (or sigraph in short) Zaslavsky (1982) is an ordered pair \(S = (S^u, \sigma )\), where \(S^u = (V,E)\) is a graph called the underlying graph of S and \(\sigma : E \rightarrow \{+,\}\) is a function from the edge set E of \(S^u\) into the set \(\{+,\}\), called the signature (or sign in short) of S.
A sigraph S is signcompatible Sinha (2005); Sinha and Sethi 2015) if there exists a marking \(\mu\) of its vertices such that the end vertices of every negative edge receive ‘−’ signs in \(\mu\) and no positive edge in S has both of its ends assigned ‘−’ sign in \(\mu .\) In other words, a sigraph is signcompatible if and only if its vertices can be partitioned into two subsets \(V_1\) and \(V_2\) such that the allnegative subsigraph of S is precisely the subsigraph induced by exactly one of the subsets \(V_1\) and \(V_2.\) Every line sigraph is signcompatible. However, not every signcompatible sigraph need be line sigraph.
Theorem 1
(Harary and Kabell 1980) A sigraph is balanced if and only if there exists a partition of its vertex set into two subsets, one of them possibly empty, such that every positive edge joins two vertices in the same subset and every negative edge joins two vertices from different subsets.
For any positive integer k, the kth iterated line sigraph \(L^k(S)\) of S is defined (see Gill and Patwardhan 1983) recursively as follows:
\(L^0(S)\) = S, \(L^k(S)\) = \(L(L^{k1}(S)).\)
By a negative section (Gill and Patwardhan 1981) of a subgraph \(S'\) of a sigraph S we mean a maximal edgeinduced subgraph in \(S'\) consisting of only the negative edges of S; in particular, a negative section in a cycle of S is essentially a maximal allnegative path in the cycle or the whole cycle itself. Thus, a cycle is positive if and only if it has an even number of negative sections of odd length.
In this paper, we are going to introduce a new method for encoding and decoding of data using network as sigraphs and basic properties of matrices. For the purpose of network security, adjacency matrix of S will be considered as basis of information which is to encrypted to adjacency matrix of balanced \(L^k(S)\) for some ‘k’ to assure confidentiality, integrity and authentication of transmitted data.
The following result gives a characterization of sigraphs whose line sigraph L(S) is balanced:
Theorem 2
 1.For any cycle Z in S;
 (a)
If Z is all negative then Z is of even length;
 (b)
If Z negative sections of nonzero even length inis heterogenous then there is an even number of Z;
 (a)
 2.
For any vertex v in S, if the degree exceeds two then there is at most one negative edge incident at v.
Balanced iterated signed line graphs
In this section, we extend Theorem 2 to any iterated line sigraph \(L^k(S),\) \(k \in \mathbb {N}.\)
Theorem 3
 1.For any cycle Z in S;
 (a)
If Z is all negative then Z is of even length;
 (b)
If Z is heterogenous then the number of negative sections of odd(even) length greater than k is even if k is even(odd); and
 (a)
 2.
For any vertex v in S, if \(d(v) > 2\) then \(d^(v) < 3,\) and if \(d^(v) = 2,\) then length of any negative section through v is at most k.
Numerical interpretation of above characterization
Enter the number of nodes, i.e., n. Input \(n \times n\) adjacency matrix with respect to given sigraph. The adjacency matrix takes the entries as 0, 1 and \(\)1 for no edge, positive edge and negative edge respectively. Now we have to find the line sigraph of this sigraph Sinha and Sethi (2015). For this, first we populate EdgeList (list of all edges in the given sigraph) by assigning each edge an index. We then search for nonzero entries in adjacency matrix and then corresponding to each such entry, say (i, j)th entry, we assign the edge number as 1, 2,3,...
Then for each edge we check adjacent edges from the EdgeList prepared and see if they have the common vertex. The sign of the vertex depends on the sign of edge (i, j)th in S. If edge (i, j) is positive then corresponding vertex would be positive otherwise it would be negative. This way new matrix of L(S) is computed.
Since we have to compute \(L^k(S),\) it means we have to repeat the above conversion of converting sigraph to its line sigraph ‘k’ times such that number of edges of first iterated line sigraph now becomes number of vertices for the second iterated line sigraph and output matrix of first iterated line sigraph is now the input matrix for the required second iterated line sigraph and so on.
Similarly, \(L^k(S)\) is computed.
To check 1(a) condition, i.e. if cycle is negative, we will find all cycles in the given sigraph. For each cycle we calculate the length of the path and count all negative entries corresponding to this path. If path length is equal to half of the negative values, it means that cycle is homogenous i.e. it contains all the negative edges otherwise heterogenous. If cycle is homogeneous, then count must be even otherwise we terminate the procedure and say \(L^k(S)\) is not balanced.
For the adjacency matrix of S, length of the path 1234 of cycle is 4 and half count of all negative entries is = 4/2 i.e. 2. Since length of path of cycle does not match the number of negative entries, therefore, cycle is not homogenous and we check the next condition.
To check 1(b) condition we first find a cycle. Then we search for positive edge in the path. If we found any positive edge it means the cycle is heterogeneous. Now we count \(\)1 entries in the path. If it contains only one negative edge proceeded with a positive edge consecutively in the path, it means it has negative section. Now we count \(\)1 entries and check if it is greater than ‘k’ and of odd length, we update NbOddNegativeSections (number of negative sections of odd length) by 1 and if it is greater than ‘k’ and of even length then we increment NbEvenNegativeSections (number of negative sections of even length) by 1. This way total number of negative sections of odd length and even length greater than ‘k’ is calculated. Now we check if this count NbOddNegativeSections is even when ‘k’ is even and NbEvenNegativeSections is odd when ‘k’ is odd. If both the condition are satisfied we check the next condition otherwise we terminate the procedure.
For the adjacency matrix of S, it has 2 negative sections, 123 of length 2 and 456 also of length 2. Take k = 1 i.e. ‘k’ is odd. Count number of negative sections of even length \(>\) k, which is 2 but according to the theorem this count must be odd. Given condition does not hold true for k = 1, therefore for given sigraph S, \(L^1(S)\) is not balanced. Take k = 2 i.e. ‘k’ is even, count number of negative sections of odd length \(>\) k, which is 0 in our case and is even. Thus, given condition holds true for k = 2 and we proceed to check the next condition.
To check 2 condition we calculate degree of each vertex by counting nonzero entry in each row and negative degree by counting \(\)1 entries in each row. Then for each vertex we check if degree is \(>\)2 then negative degree must be \(\le\) 3 and if \(d^(v) = 2,\) then we calculate again the length of each negative section incident at v by applying the same procedure as calculated in condition 1(a).
For the adjacency matrix of S, there exists no vertex where degree \(>\)2, therefore, given condition is also satisfied for given S. Thus, we can say that for given sigraph S, \(L^1(S)\) is not balanced and \(L^2(S)\) is balanced.
Algorithm to detect balancing of iterated line sigraph
The algorithm to detect balancing of line sigraph is based on the characterization given by Acharya and Sinha (2003). To detect balancing of iterated line sigraph \(L^k(S)\) of S, we have to first obtain \(L^k(S)\) from S. Following is the algorithm to \(L^k(S)\) of a given sigraph S:
Algorithm to convert a sigraph to its iterated line sigraph SigraphtoIteratedLinesigraph (vertex, n, k)
Here vertex is the input matrix and n is the number of vertices of a given sigraph. k denotes number of iterations whose kth iterated line sigraph \(L^k(S)\) is to be computed.
Note: Since, if we have n number of vertices, then for k = 1, there are maximum of \(n(n1) / 2\) edges, which in turn becomes number of vertices for the next iteration and so on. For k =2, the number of vertices will be of order \(n^2\) and correspondingly number of edges will be of order \(n^4\) and so on. Thus, kth iteration will have maximum \(n^k\) number of vertices and \(n^{2k}\) number of edges.
Complexity of computation involved in above algorithm
In Step 1, we have applied the algorithm defined in Sinha and Sethi (2015) to obtain L(S), Thus complexity of this step = \(O(n^2).\)
In Step 5, we have to compute \(L^k(S)\) and we have to repeat Step1, \(k1\) times, therefore,
Complexity of this step = \(n^{k1} \times O(n^2)\) = \(O(n^{2(k1)}),\) where k denotes number of iterations.
Hence complexity of computation involved in above algorithm is \(O(n^{2(k1)}),\) where n is number of vertices in S.
Numerical interpretation
Main algorithm
Here FindCycle is a function used to find all cycles within a given sigraph from its adjacency matrix. StartNode represents first node from where the cycle start. PathUptilNow is a vector used to represent the position of the node till the vertex is traversed. IsNodeInPath is a boolean varible used to detect whether nodes is already in the path or not. IsPathEvaluatedForNode is also a boolean variable used to find whether nodes for which path is already calculated. Evaluate = 0 is a function to evaluate path. curnode represents the current node which is traversed.
Function FindCycle (n, StartNode, Pathuptilnow, IsNodeinPath, IsPathEvaluatedforNode, Evaluate = 0)
Above function outputs a path of the cycle. Here Function EvaluatePath is used to detect whether cycle is homogenous or heterogenous. If it is heterogenous, then it counts number of negative sections of odd(even) length greater than k is even if k is even(odd) or not. NbEdgesInSection denotes total number of edges in each section. NbNegativeSections represents total number of negative sections. NbEvenNegativeSections and NbOddNegativeSections denotes number of negative sections of even and odd length respectively.
Function evaluate (path)
Complexity of computation involved in above algorithm
In Step 1, we compute \(L^k(S)\) as defined in "Main algorithm", therefore,
Complexity of this step = \(O(n^{2(k1)}).\)
In Step 2, each node of the graph is traversed and for each node we have to find cycle i.e. Step 4 is called ‘n’ times. For finding cycle, we have to call for function EvaluatePath() where each vertex is again traversed. Thus complexity of this step = \(O(n) \times n \times n\) = \(O(n^3).\)
For the function EvaluatePath(), in Step 3 and Step 4 we first calculate first positive edge and for this we have to traverse each node of the path, Thus, Complexity of this step = O(n).
In Step 7, for finding number of negative sections and length of each section we repeat Step 7 to Step 12 and it is repeated for each cycle, therefore, Complexity of this step = \(O(n) \times n\) = \(O(n^2).\)
For checking the 2 condition we calculate positive, negative and total edges incident to each vertex, for this, we follow Step 6 to Step 9 in the main algorithm and for this we traverse again \(n \times n\) matrix, Thus, complexity of this step = \(O(n^2).\)
In Step 10 to Step 13, we check total degree and negative degree of each vertex, therefore, Complexity of this step = O(n).
In Step 13, we call the function FindCycle(), such that whole procedure is again repeated, therefore, Complexity of this step = \(O(n) \times n \times n\) = \(O(n^3).\)
Total complexity = \(O(n^{2(k1)})\) + \(O(n^3)\) + O(n) + \(O(n^2)\) + \(O(n^2)\) + O(n) + \(O(n^3)\) = \(O(n^3 + n^{2(k1)}).\)
Note: Our main aim is to only detect balancing of iterated line sigraph, therefore, complexity to obtain iterated line sigraphs can be neglected.
Thus Total complexity for detecting balancing of iterated line sigraph = \(O(n^3)\) + O(n) + \(O(n^2)\) + \(O(n^2)\) + O(n) + \(O(n^3)\) = \(O(n^3).\)
Hence complexity of computation involved in above algorithm is \(O(n^3),\) where n is number of vertices in S.
Correctness of the above algorithm
An algorithm is said to be correct if for every input data that satisfies some conditionscalled the precondition of the algorithm, the output data satisfy a certain predefined conditioncalled the post condition of the algorithm. A graph algorithm depends upon number of vertices and edges in a graph and inter/intra relationship between these two features. Here, we will discuss an approach based on the adjacency matrices of the given sigraph to prove or disprove the correctness of the above proposed algorithm.
Example 1
Consider the sigraphs shown in Fig. 4.
Note: For any sigraph to detect its balancing, we have to find cycle and complexity of finding cycle is \(O(n^3)\), therefore, whole process must be implemented in atleast \(O(n^3)\) steps.
Example 2
Consider another sigraphs as shown in Fig. 5.
Similarly, if we take sigraph \(S_1,\) we have 2 negative sections, 51 of length 1 and 234 of length 2. Now it can be easily verified that for k =1 and k = 2, all conditions holds true.
Conclusion and scope
In this paper, we have given an algorithmic approach to obtain iterated line sigraphs of a given sigraph and detect whether it is balanced or not in \(O(n^3)\) steps. In this method, data is taken in the form of adjacency matrix with entries as 0, 1 and \(\)1. Now since any matrix can be represented in the form of a network and viceversa, we can apply encryption and decryption mechanism for a network through matrices. Algorithm is already defined to obtain a line sigraph from a given sigraph Sinha and Sethi (2015) and if we have algorithm to obtain line root sigraph of given sigraph, therefore, we can apply encryption and decryption algorithms with the additional condition that \(L^k(S)\) is balanced for some ‘k’ to a network. There exists several techniques on encryption and decryption, but we have developed a new technique in which weak and strong relationships among nodes in a balanced network can be defined. For the purpose of security, we have used asymmetric key cryptography.
System model
Asymmetric cryptography is used in this model. Two different keys, a secret key d and a public key e are defined. The public key e is used for encryption i.e. for converting adjacency matrix of S to adjacency matrix of \(L^k(S)\) which is balanced for some ‘k’. Since we have a unique method for encryption, therefore, it can be published. Further, the secret private key d is used for decryption of adjacency matrix of \(L^k(S)\) to adjacency matrix of S. Since we have many line root sigraphs of a given sigraph and we have to restrict our networks to obtain a unique line root sigraph, therefore, private key is used. Also, if labelling of vertices can be done by Lehot (1974), then only we obtain unique line root sigraph. The following model is used as an application to above algorithms.
Algorithms for system model
Apart from algorithms defined in "Algorithm to convert a sigraph to its iterated line sigraph SigraphtoIteratedLinesigraph (vertex, n, k)" and "Main algorithm", following are the algorithms that will be used in encryption and decryption mechanism.
Algorithm to detect a line sigraph and output its root sigraph
The algorithm to detect a line sigraph and output its line root sigraph is an extension of a paper named “An Optimal Algorithm to Detect a Line Graph and Output its Root Graph” by Lehot (1974).
 1.
The underlying graph is a line graph.
 2.
Given sigraph is signcompatible.
If both the conditions are satisfied we say that line root sigraph exists and will print the new line root sigraph of S.
Figure 7a shows the sigraph corresponding to the input matrix. Now we have to find the line root sigraph of this sigraph. The step wise procedure in shown in Fig. 7. NewNode represents the node of the intermediate graph, i.e., Fig. 7b and Lookup represents if current index is mapped to which node. It shows the mapping between Fig. 7a, b. Since each node represents 2 points, maximum amount of numbers required is 2* max where max denotes maximum value of n.
Find the first nonzero entry in adjacency matrix i.e. graph[i] [j]. For the first edge (i, j) create a new node (i, 1, 2) \(\rightarrow\) Node i named as pair (1, 2) i.e. in Fig. 7b.
Now start traversing the graph from this node. Also populate the final graph with this edge i.e. (1, 2). Now traverse through the graph and name other nodes. For each untraveled neighbor create a modified node for Fig. 7b. Find an i1 for new node. We want to find j as the first index i1, we look if j is assigned to any node, do we have any edge. For e.g. if \(j = 2\) and current nodes are (a, (1, 2)), (b, (2, 3)) and (c, (1, 4)) we check if current node has edge from a to b Ȯnce we have find j we want to find k as second index. If j and k are found we have found the naming of i1 and i2. Add i1 and i2 to NewNode. Make CurIdx minimum of (CurIdx, j, k). Record that j and k have been assigned to current node (i).
If pairing of edges can be done as given by Lehot (1974), then we say that graph is a line graph otherwise not a line graph and hence not a line root sigraph.
This pair would represent an edge in NewGraph. If this node has negative edge anywhere, set this edge as negative else positive. Also add this node to the queue as we want to travel its neighbor.
Next step we will check whether a given sigraph is signcompatible or not. If sigraph is signcompatible, line root sigraph exists and output the new modified graph otherwise line root sigraph does not exists.
Theorem 4
 1.
\(S^u\) is a line graph and
 2.
Vertices of S can be assigned marks ‘+’ or ‘\(\) ’ such that both the ends of every negative edge receive ‘ \(\) ’ mark and the same is not true for any positive edge (i.e. S is signcompatible) such that the end vertices of the positive path receiving ‘ \(\) ’ mark is of length exactly two.
Theorem 5
 1.
H is homogenous and allnegative or
 2.
Positive section is of length one and every negative edge has at least one negative degree.
The final NewGraph is then plotted. This is the required line root sigraph. Since for a given line root sigraph we have many sigraphs, we have restricted ourselves to sigraphs based on Theorems 4 and 5.
It uses following functions:
Max denotes maximum number of vertices
Structure of Node : idx; // Primary and i1, i2; // The pair represents mapping between Fig. 7a, b. Vertex 1 in Fig. 7a is mapped to pair 1–2 in Fig. 7b. idx represents initial vertex and i1 and i2 represents corresponding mapping between the vertices.
IsTraversed is a function which represents whether node is travelled or not.
Lookup defines if the current index is mapped to which node. Now, since each node is given 2 numbers, the maximum amount of numbers required is 2*MAX.
NewGraph represents required line root sigraph.
Complexity of computation involved in above algorithm
In Step 2, we have to find first nonzero entry (i.e. first edge) in adjacency matrix of order \(n \times n\) and then corresponding to each such entry, say (i, j)th entry, we again have to traverse the graph to find its adjacent node and push the node in the queue.
Thus complexity of this step \(=\) \(O(n^3).\)
In Step 3, since we have to traverse the graph and name all other nodes till queue is not empty. Queue contains the edges that are adjacent to first edge. This maximum number of edges is e = \(n (n  1)/2.\) Thus complexity of this step \(=\) \(O(e/n^3).\)
In Step 5 we detect whether the given sigraph is signcompatible or not. We count number of adjacent negative edges in adjacency matrix of order \(n \times n\). Maximum number of edges can be \(O(n^2).\) Thus complexity of this step \(=\) \(O(n^2).\)
Total complexity \(=\) \(O(n^3)\) + \(O(e / n^3)\) + \(O(n^2)\) \(=\) \(O(n^3).\)
Hence complexity of computation involved in above algorithm is \(O(n^3),\) where n is number of vertices in S and e is the number of edges.
Encoding chart
Encryption algorithm

Input the network which is to be encrypted. Then encode this network into adjacency matrix of S.

Apply algorithm defined in Sinha and Sethi (2015) to convert a given adjacency matrix of S to adjacency matrix of L(S).

Apply algorithm defined in Sect. 2.2.2 to detect if adjacency matrix of L(S) so produced is balanced for k =1. If it is balanced, then the adjacency matrix of L(S) is the encrypted data.

Repeat algorithm defined in Sect. 2.2.1 to compute kth iterated line sigraph and algorithm defined in Sect. 2.2.2 to detect its balancing at each iteration. Stop the procedure where we get iterated line sigraph which is balanced for some k.

The adjacency matrix for which \(L^k(S)\) is balanced for some ‘k’ is the encrypted data.

Now send the resultant adjacency matrix to the receiver in a linear format (i.e. either column wise or row wise) with space between elements. n n \(<\) Resultant matrix data \(>\) m m where, n = number of vertices or nodes in the network m = number of edges in the network.
Decryption algorithm

Read the encrypted data and form the required matrices of order \(m \times m.\)

Here the encrypted matrix is adjacency matrix of \(L^k(S)\) which is balanced for some k.

Apply “Algorithm to detect a line sigraph and output its root sigraph” defined in "Algorithm to detect a line sigraph and output its root sigraph" to obtain \(L^{k1}(S)\).

Repeat the above step \((k1)\) times to obtain back the resultant adjacency matrix of S.

Decode adjacency matrix of S using encoding chart to generate the original network.
Note: Since we have restricted adjacency matrix of S to satisfy the property of \(L^k(S)\) balancing for some ‘k’, therefore, our networks are restricted to have data with values 0, 1 and \(\)1 and satisfying the balancing property of \(L^k(S)\). The reading and writing of data can be done manually or by using file operation of any programming language( eg. C, C++...).
Example
Now we check whether this calculated \(L^1(S)\) at k =1 is balanced or not. For this we apply algorithm defined in "Main Algorithm" from where it can be easily verified that it is balanced.
If we decide to transmit the data row wise, the data to be sent is ( the data are separated by space)
4 4 0 \(\)1 \(\)1 0 \(\)1 0 0 \(\)1 \(\)1 0 0 \(\)1 0 \(\)1 \(\)1 0 4 4
Suppose the received data is
4 4 0 \(\)1 \(\)1 0 \(\)1 0 0 \(\)1 \(\)1 0 0 \(\)1 0 \(\)1 \(\)1 0 4 4
Declarations
Authors’ contributions
DS conceptualized this study and drafted the manuscript. The second author gave the shape to the manuscript by working out the algorithm and checking the complexity. All authors read and approved the final manuscript.
Acknowledgements
The authors express gratitude to Mr. Dhananjay Kulkarni who was always there in prior discussion and helping in writing algorithms and finding complexity and to the referees who made extensive and constructively critical comments on the first version of the paper.
Competing interests
Both authors declare that they have no competing interests.
Open AccessThis article is distributed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.
Authors’ Affiliations
References
 Acharya BD (1981) A spectral criterion for cycle balance in networks. J Graph Theory 4(1):1–11View ArticleGoogle Scholar
 Acharya BD, Acharya M (1986) New algebraic models of a social system. Indian J Pure Appl Math 17(2):150–168Google Scholar
 Acharya M, Sinha D (2006) Commonedge sigraphs. AKCE Int J Graphs Comb 3(2):115–130Google Scholar
 Acharya M, Sinha D (2002) A characterizations of signed graphs that are switching equivalent to their jump signed graphs. Graph Theory Notes N Y XLIII:7–8Google Scholar
 Acharya M, Sinha D (2003) A characterizations of sigraphs whose line sigraphs and jump sigraphs are switching equivalent. Graph Theory Notes N Y XLIV:30–34Google Scholar
 Acharya M, Sinha D (2005) Characterizations of line sigraphs Nat Acad Sci Lett 28(1–2):31–34 [also, see extended abstract in: Electron. Notes Discrete Math, 15 (2003)] Google Scholar
 Behzad M, Chartrand GT (1969) Line coloring of signed graphs. Elem Math 24(3):49–52Google Scholar
 Cartwright D, Harary F (1956) Structural balance: a generalization of Heider’s theory. Psychol Rev 63:277–293View ArticleGoogle Scholar
 Chartrand GT (1977) Graphs as mathematical models. Prindle, Weber and Schmidt Inc, BostonGoogle Scholar
 Cormen T, Leiserson C, Rivest R, Stein C (2011) Introduction to algorithm, 3rd edn. PHI Learning Private LimitedGoogle Scholar
 Deo N (1995) Graph theory with appliaction to Engineering and Computer Science. Prentice Hall IndiaGoogle Scholar
 Gill MK, Patwardhan GA (1981) A characterization of signed graphs which are switching equivalent to their line signed graphs. J Math Phys Sci 7(4):567–571Google Scholar
 Gill MK, Patwardhan GA (1983) A characterization of signed graphs which are switching equivalent to their iterated line graphs. J Comb Inf Syst Sci 8:287–296Google Scholar
 Golumbic MC (2004) Algorithmic graph theory and perfect graphs, 2nd ednGoogle Scholar
 Harary F (1953) A characterization of balanced signed graphs. Mich Math J 2:143–146View ArticleGoogle Scholar
 Harary F (1969) Graph Theory. AddisonWesley Publ. Comp, ReadingGoogle Scholar
 Harary F, Norman RZ, Cartwright DW (1965) Structural models: an introduction to the theory of directed graphs. Wiley Inter Science Inc, New YorkGoogle Scholar
 Harary F, Kabell JA (1980/81) A simple algorithm to detect balance in signed graphs. Math Soc Sci 1:131–136Google Scholar
 Horowitz E, Sahni S (2004) Computer Algorithm. Galgotia PublicationsGoogle Scholar
 Lehot PGH (1974) An optimal algorithm to detect a line graph and output its root graph. J Assoc Comput Mach 21(4):569–575View ArticleGoogle Scholar
 Sinha D (2005) New frontiers in the theory of signed graph, Ph.D. Thesis, University of Delhi (Faculty of Technology)Google Scholar
 Sinha D, Acharya M (2015) Characterization of signed graphs whose iterated signed line graphs are balanced or Sconsistent. Bull Malays Math Sci Soc 28(1–2):31–34. doi:10.1007/s4084001502644 Google Scholar
 Sinha D, Sethi A (2015) An optimal algorithm to detect sign compatibility of a given sigraph. Nat Acad Sci Lett 38(3):235–238View ArticleGoogle Scholar
 Sinha D, Sethi A (2015) An algorithmic characterization of sigraphs whose commonedge sigraphs and second iterated line sigraphs are switching equivalent. J Discrete Math Sci Cryptogr 18(5):581–603. doi:10.1080/09720529.2015679 View ArticleGoogle Scholar
 Sinha D, Sethi A (2015) An algorithm to detect $$S$$ S consistency in line sigraph. J Comb Inf Syst Sci (Accepted) Google Scholar
 West DB (1996) Introduction to graph theory. PrenticeHall of India Pvt. LtdGoogle Scholar
 Zaslavsky T (1981) Characterizations of signed graphs. J Graph Theory 5:401–406View ArticleGoogle Scholar
 Zaslavsky T (1982) Signed graphs. Discrete Appl Math 4(1):47–74View ArticleGoogle Scholar