This document discusses Warshall's algorithm for finding the transitive closure of a graph using dynamic programming. It begins with an introduction to transitive closure and how it relates to Facebook vs Google+ graph types. It then provides an explanation of Warshall's algorithm, including a visitation example and weighted example. It analyzes the time and space complexity of Warshall's algorithm as O(n3) and O(n2) respectively. It concludes with applications of Warshall's algorithm such as shortest paths and bipartite graph checking.