https://medium.com/@monocosmo77/applications-of-directed-acyclic-graphs-part1-computer-science-e11f3715c2f