Definition
Directed Acyclic Graph, DAG is a finite directed graph with no directed cycles,
it has a finite number of vertices (nodes) and edges (paths), whereby every edge
directs from one vertiex to the other, follows a consistently-directed sequence
of edges that does not loop back to the start node
Graphs are ubiquitous, they can be used to model directed or undirected
connectivities in the real world.
A set of vertices {v1, v2, ..vn}
and a set of edges {e1, e2, ..em}
An edge is defined as a pair of connected vertices
{vi, vj}, where i,j ∈ {1,...n}