CODES ON GRAPH Kiki Ariyanti Sugeng CIMPA Research School on Group Actions in Arithmetic and Geometry February 27, 2020 Outline

• Introduction on code and graph code of a graph INTRODUCTION ON GRAPH THEORY

Graph

• A graph Γ is a pair (푉, 퐸) where 푉 is a nonempty set and 퐸 is a set disjoint from V. The element of V are called vertices/nodes, and members of E are called edges.

• Edges are incident to one or two vertices which are called the ends of the edge. • If an edge is incident with exactly one , then its is called loop,

|V| = 4 and |E| = 6 Adjacent Vertices

• If 푢 and 푣 are vertices that are incident with an edge, then they are called neighbors or ⊆. • Two edges are called parallel if they are incident with the same vertices. • The graph is called simple if it has no loops and no parallel edges Graph: Path and Cycle

• Undirected:

• Directed:

• Mixed: Graph : Complete Graph (a) Complete bipartite graph (b) Complete graph

K3,4 K5

Clique graph : Connected Components: Subgraph

Let Γ = (푉, 퐸) be a graph. Suppose that V′ ⊆ 푉and 퐸’ ⊆ 퐸 and all the endpoints of 푒’ in 퐸’ are in 푉’. Then Γ’ = (푉’, 퐸’) is a graph and it is called a subgraph of Γ. Two vertices are connected

• Two vertices 푢 and 푣 are connected by a path from u to v if there is a 푡-tuple of mutually distinct vertices (푣1, 푣2, … , 푣푡) with 푢 = 푣1 and 푣 = 푣푡 , and (푡 − 1)-tuple of mutually distinct edges (푒1, 푒2, … , 푒푡−1) such that 푒푖 is incident with 푣푖 and 푣푖+1 for all 1 ≤ 푖 < 푡. • If moreover 푒푡 is an edge that is incident with 푢 and 푣 and distinct from 푒푖 for all 푖 < 푡, then (푒1, 푒2, … , 푒푡−1, 푒푡) is called a cycle. The length of the smallest cycles is called the girth of the graph and is denoted by 훾(Γ) Connected Graph

• The graph is called connected if every two vertices are connected by a path. • A maximal connected subgraph of Γ is called a connected component of Γ. • If Γ is not connected, then the vertex set 푉 of Γ is a disjoint union of subset 푉푖 and the set of edge is disjoint union of subset 퐸푖 such that Γ푖 = (푉푖, 퐸푖) is a connected component of Γ. The number of connected component of Γ is denoted by 푐(Γ) Adjacency Matrix

The Adjacency Matrix of a graph Γ, denoted 퐴(Γ), is an 푛 × 푛 matrix that for each (푢, 푣) contains the number of edges in 퐺 between vertex 푢 and vertex 푣. Adjacency matrix : Examples

v1

v1 v5 v2

v6

v1 v2 v3 v4 v5

v4 v3 v3 v2

v1 v2 v3 v4 v5 v1 v2 v3 v4 v5 v6 v1 v2 v3 v1 0 1 0 0 0 v1 0 0 0 0 0 1 v  v  1 0 1 1 v 0 0 0 0 0 1 2 1 0 1 0 0  2  v2 1 0 1 v3 0 1 0 1 0  v3 0 0 0 0 0 1 v   v  3 1 1 0 v 0 0 0 0 0 1 4 0 0 1 0 1 4   v5 0 0 0 1 0 v5 0 0 0 0 0 1   v 6 1 1 1 1 1 0

• Let Γ = (푉, 퐸) be a finite graph. Suppose that 푉 consists of m elements enumerated by 푣1, 푣2, … , 푣푚. Supposet that E consists of m elements enumerated by 푒1, … , 푒푛. The incidence matrix 퐼(Γ) is an 푚 × 푛 matrix with entries 푎푖푗 defined by

1, if 푒푗 is incident with 푣푖 and 푣푘 for some 푖 < 푘 • 푎푖푗 = −1, if 푒푗 is incident with 푣푖 and 푣푘 for some 푖 > 푘 0, otherwise CYCLE CODE AND GRAPH CODE OF A GRAPH Graph Code

• The graph code 퐶Γ of Γ over 퐹푞 is the 퐹푞 linear code that is generated by the rows of the incidence matrix 퐼(Γ). • The cycle code of Γ is the dual of the graph code of Γ. Notes

• Cycle code is also referred to as a graphic code, and its dual as a cographic code Cycle codes of graphs • Γ = (푉, 퐸) undirected connected graph with no loops, no multiple edges.

• 퐸 = *푒1, 푒2, . . . , 푒푚+ 푚 • Subgraph 퐻 ⊂ Γ ⟷ Characteristic vectors in 0, 1 : 푕푖 = 1퐻(푒푖 ). • Cycle 푐 ∈ 0, 1 푚 : Subgraph with all vertices incident with an even number of edges.

• Cycle space of Γ : the over 퐹2 of all cycles. It has • dimension 푚 − 푛 + 1 (cyclomotic number) Cycle Code of Graphs

Cycle code of Γ : the linear binary code [푛, 푘, 푑] defined by the cycle space of Γ with (i) length 푚 (number of edges) (ii) dimension 푘 = 푚 − 푛 + 1 (cyclotomic number) (iii) minimum distance 푑 = 푔푖푟푡푕 표푓Γ(length of smallest cycle). (iv) incidence matrix of Γ ⟷ parity-check matrix of the code (low–density parity-check code) • Binary Code of length 푁 = 푎푏  Array 푎 × 푏

• Code on 퐺퐹(2푏) of length 푁’ = 푎  Code on GF(2)

• Distance between codewords  Distance between columns: correction of column errors or column erasures • Array codes are used to address bursts of errors (as opposite to random errors). • The are implemented in the standards of CD technology (by using Reed–Solomon codes).

Array Cycle Code

• Graph 퐺 = (푉, 퐸) with 푚 = 푎푏 edges • Partition the edges in columns

• Array Cycle code: The graph cycle code turned into an array code. Minimum Distance

• The minimum distance of the array cycle code is the minimum number of colors in a cycle. • In the example, the code has |퐶 | = 215 − 10 + 1 and 퐷 = 4 = 5 − log8 |퐶 | + 1. • It is an MDS (Maximum Distance Separating) code. • This means that every three colors span a . Proposition

• Let Γ be a finite graph. Then the cycle code of Γ is a code with parameters [푛, 푘, 푑], where 푛 = |퐸|, 푘 = |퐸| − |푉| + 푐(Γ), and 푑 = 훾(Γ). These parameters are independent of the choice of the field 퐹푞

Reference

• R. Pellikaan, X-W Wu, S. Bulygin and R. Jurrius, Codes, cryptography and curves with computer algebra, Cambridge University Press, 2018 • O. Serra, An application to coding theory and cryptography, presented at CIMPA-Indonesia School, February 2 – 13, 2009 THANK YOU