An Analytic Graph is a directed labelled multigraph made and used for problem solving.

Analytic Graphs are used:

– to represent information about a problem and its solutions;

– to incrementally and iteratively design a problem and its solutions;

– to answer questions about problems and solutions that they represent.

Formally, an Analytic Graph G is the tuple G = ( N, L, A ) such that:

– N is a non-empty set of nodes;

– L is a potentially empty multiset (bag) of directed edges, that is, ordered pairs of nodes, such that (a, b) is an edge directed from node a to node b;

– A is a function which returns the label of a given node or edge;

– Every node must have at least one label;

– Every link must have exactly one label;

– There can be different types of labels.

Labels are often defined in order to enable computations over an Analytic Graph. For example, labels can be defined to enable the application of optimisation algorithms, in order to find an optimal part of a graph, which may correspond to the best solution to the problem that the overall graph describes.

Analytic Graphs came out from my research on the design of formal languages for problem solving in requirements engineering and system design. The book “The Design of Requirements Modeling Languages” (Springer, 2015) gives examples of Analytic Graphs applied to problem solving in system design.

Analytic Graphs are related to:

– multidimensional networks, in that if if only links can have labels, then an Analytic Graph becomes a multidimensional network;

– multilayer networks, if there is a partition of A, and each subgraph of G which has only the labels from a single partition is treated as a layer, and all interconnections between layers are identity relations on nodes.