Progressive acyclic digraphs—a tool for database integrity

A progressive acyclic diagraph (PAD) algorithm accepts are requests and maintains a graph in an acyclic state. When a request creates a cycle, nodes are “detached” until the new arc can be entered acyclically. This process is important in certain areas of database implementation in which there are constraints on the permissible sequences of actions. Two PAD algorithms are presented; one uses a simple path matrix representation and the other uses a list with an “artificial gradient.” Experiments suggest that for large <italic>N</italic> the second is considerably faster, though both are asymptotically <italic>O</italic>(<italic>NR</italic>), where <italic>N</italic> is the number of nodes and <italic>R</italic> is the expected number of nodes reachable along paths from any given node.