AI Glossary / Graphs and symbolic AI / Advanced

Flow-based disjoint paths

Definition

Flow-based disjoint paths are routes between a source and destination found by translating a path-separation requirement into a network-flow problem. Edge-disjoint paths share no edges; internally node-disjoint paths share no intermediate vertices. A suitable maximum-flow construction can find the greatest number of such paths for the specified source and destination.

What it means

Two routes drawn differently on a map are not necessarily independent. They may use the same road segment or pass through the same critical junction. Disjoint-path analysis makes the intended separation explicit and distinguishes link redundancy from intermediate-node redundancy.

The word flow refers to a mathematical allocation through capacity-limited connections, not necessarily fluid movement. In the basic path-counting reduction, unit capacities limit use of each modeled resource. The result concerns connectivity in the supplied graph. It does not establish independence from unmodeled shared risks such as two cables occupying the same physical duct.

How it works

For edge-disjoint paths in a directed graph, assign capacity one to each edge and compute a maximum flow from source s to destination t. With integral capacities, an integral maximum flow exists. After removing any circulation components, its flow can be decomposed into unit source-to-destination paths that do not reuse an edge.

For internally node-disjoint paths, a standard construction splits each intermediate vertex into an entry and exit vertex joined by a unit-capacity edge. Original connections are redirected through this split structure. The source and destination are treated separately because all requested paths are allowed to share them. Direct source-destination edges and graph multiplicity need the chosen construction's explicit conventions.

The flow algorithm's residual network allows earlier routing choices to be revised. This is important: greedily selecting a path and deleting its edges can block a larger feasible set. Suitable constructions also handle undirected graphs while respecting each original edge as the shared resource.

Three practical examples

1. A network planner checks how many routes connect two sites without sharing communication links. A second analysis excludes shared intermediate switches to test a stronger form of redundancy.

2. A logistics model examines alternative connections between a depot and destination. Edge and node definitions must reflect the infrastructure failures the analysis is intended to represent.

3. A graph-analysis tool checks whether several separate paths exist between two important entities. The interpretation depends on what an edge means; a mathematical route through a knowledge graph is not automatically an operational fallback.

Think of it this way

Think of sending messengers along routes that may share the same departure and arrival buildings but should avoid sharing particular streets or intermediate buildings. The rules determine which overlap is allowed. The analogy is limited because a flow model abstracts travel details, timing and correlated disruptions; disjointness in that abstraction does not guarantee independent journeys in reality.

Worked example

Consider a directed graph with edges s to a, s to b, a to v, b to v, v to c, v to d, c to t and d to t. Give every edge capacity one.

Two edge-disjoint paths are s-a-v-c-t and s-b-v-d-t. They share vertex v but no edge. Sending one unit along each gives a feasible flow of value two. No larger flow is possible because only two unit-capacity edges leave s. This matching feasible flow and upper bound establish that two is the maximum edge-disjoint path count.

For internally node-disjoint paths, both routes depend on v. Removing v disconnects s from t, and every route must pass through it. At most one internally node-disjoint path can therefore be selected; one exists, so the maximum is one. Splitting v with capacity one exposes that bottleneck in a flow construction. The example shows why the word disjoint must specify edges or nodes.

Illustrative case study

Fictional case study: Rowan Connect reports two backup routes between offices based on an edge-disjoint calculation. An infrastructure reviewer observes that both modeled routes pass through the same intermediate exchange. The team reruns the analysis with node separation and then checks the physical meaning of each graph component.

It also records shared facilities that the graph does not yet represent. The case illustrates how a technically correct path count can answer a weaker question than the organization intended. It makes no claim that a particular network is resilient to real failures.

Common misconceptions and mistakes

Edge-disjoint paths can share intermediate nodes. Node-disjoint paths normally share their source and destination, so the precise term is internally node-disjoint. Neither property automatically requires the paths to have equal lengths or minimum total travel cost.

A maximum flow on arbitrary real-world bandwidth capacities measures throughput, not directly a count of separate unit-capacity routes. Use the appropriate reduction. Also, a set of paths found before a cutoff need not be maximum if the algorithm stopped early. Finally, mathematical disjointness does not account for common failures absent from the graph.

Business use

Define the resource whose reuse is forbidden before selecting an algorithm. Decide whether vertices represent sites, devices, people or logical states, and whether edges are directed. Validate the graph against actual infrastructure and document shared-risk assumptions.

Use the returned paths and a corresponding connectivity bound to explain the result. Review path length, capacity and operational feasibility separately when those matter. If the task seeks several routes for multiple source-destination pairs simultaneously, do not assume a single-commodity maximum-flow reduction solves that different problem. Clear problem definition is as important as the flow computation.

People also ask

Can edge-disjoint routes meet at a junction?

Yes. They cannot share an edge, but may share a vertex unless node disjointness is also required.

Does maximum flow always mean maximum disjoint paths?

Only with the appropriate graph construction and capacities. A general flow value can represent a different resource quantity.

Must the routes be shortest paths?

No. Maximizing the count of disjoint paths is a different objective from minimizing their lengths.

Check your understanding

Why do the worked example's two edge-disjoint paths fail the stronger node-disjoint requirement?

Answer: Both pass through intermediate vertex v. Their edges differ, but their reliance on v remains shared, limiting internally node-disjoint connectivity to one.

Related terms

  • Maximum Flow
  • residual network
  • edge connectivity
  • node connectivity
  • minimum cut
  • Menger's theorem
  • capacity
  • graph redundancy

Learn next

Solve a small unit-capacity flow problem and decompose its integral flow into paths. Then split intermediate nodes and compare the node-disjoint result, checking which infrastructure failure each version represents.

More in Graphs and symbolic AI

  • First-choice hill climbing - First-choice hill climbing is a local-search method that samples neighboring solutions and moves to the first one that improves the current objective.
  • First-order logic - First-order logic is a formal language for describing objects, their properties and relationships, and statements quantified over those objects.
  • First-order Markov process - A first-order Markov process is a sequence of random states in which the next state's conditional distribution depends on the current state rather than the...
  • Flow-based Minimum Cuts - Flow-based minimum cuts are graph partitions found using a maximum-flow calculation.
  • Fluent - A fluent is a property or quantity whose truth or value can vary between situations or over time in an action model.
  • Fluid Communities - Fluid Communities is a graph community-detection algorithm that divides a network into a chosen number of groups.

Sources

Primary implementation documentation: NetworkX edge-disjoint paths: https://networkx.org/documentation/stable/reference/algorithms/generated/networkx.algorithms.connectivity.disjoint_paths.edge_disjoint_paths.html ; node-disjoint paths: https://networkx.org/documentation/stable/reference/algorithms/generated/networkx.algorithms.connectivity.disjoint_paths.node_disjoint_paths.html . The hand graph and fictional case are original illustrations; no software execution is claimed.

Previous: Flow-based clustering Next: Flow-based generative model

  • Home
  • Daily AI Updates
  • Blog
  • AIFBL Academy
  • AI Glossary
  • Products and Tools
  • Store
  • Free CFO AI Prompt Pack
  • About Shihan Sheriff
  • Privacy Policy
  • Terms of Use
  • Refund Policy
  • Cookie Policy
  • Earnings Disclaimer