Causal Graph Topological Ordering Using SSCP Matrix Sweeps

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Determining the topological order of a Directed Acyclic Graph (DAG) is a computationally difficult NP-hard problem that scales super-exponentially with the number of variables, making DAG learning computationally infeasible.

Innovation Solution

A method involving the computation of an initial sum of squares and cross products (SSCP) matrix from observation vectors to learn the topological order of a DAG by iteratively sweeping and updating the SSCP matrix and score value, ultimately outputting the topological order.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If traditional topological sorting algorithms are used to determine the topological order of a DAG, then the topological order can be obtained, but the computational complexity scales super-exponentially with the number of variables, making it computationally infeasible

Engineering Contradiction:
Improveaccuracy of topological orderVSAvoidcomputational complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The algorithm segments the problem into iterative steps where at each iteration, one variable is selected and fixed to a specific position in the topological order. The SSCP matrix is segmented and updated to reflect the fixed variable, reducing the problem size for subsequent iterations. This divides the computationally intensive task into manageable sequential steps.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The algorithm changes parameters by computing the SSCP matrix and using its elements to determine variable selections. The score values derived from SSCP matrix elements guide the selection of variables to fix at each position. By changing the parameter representation from the full DAG structure to condensed SSCP matrix elements, the computational burden is reduced while maintaining accuracy.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If the number of variables in the DAG increases, then the DAG can represent more complex relationships, but the computational time and resources required to learn the topological order increase super-exponentially

Engineering Contradiction:
Improvenumber of variablesVSAvoidcomputational time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The algorithm performs preliminary actions by pre-computing the SSCP matrix from the data before the main topological ordering process. This preliminary computation condenses the information from all variables into a matrix structure that can be efficiently queried during the iterative selection process, avoiding the need to reprocess raw data at each step.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The SSCP matrix serves as an intermediary structure between the raw data and the topological ordering algorithm. Instead of directly processing the full DAG with all variables, the algorithm uses the SSCP matrix as a mediator that captures the essential relationships in a computationally efficient format, enabling scalable processing of large variable sets.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS20260010581A1Techniques for learning causal graphs
Publication Date: 2026.01.08 SAS INSTITUTE INC
  • US20260010581A1 patent drawing
  • US20260010581A1 patent drawing
  • US20260010581A1 patent drawing

AI summary

A system and method include learning a topological order of a DAG by setting an initial index value of a first index, setting an initial score value of a score, setting an initial order list, computing an initial SSCP matrix, sweeping the initial SSCP matrix based on the first index, incrementing the first index to obtain an updated index value of the first index, determining an index value of a second index, computing an updated SSCP matrix, computing an updated score value as a sum of an initial score value and a value identified from the updated SSCP matrix, and computing an updated order list from an initial order list based on the updated index value of the first index and the index value of the second index.