Graph Class API Encapsulating Sparse Matrix Data

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The presentation of graphs using matrix data can add unnecessary complexity and inefficiency in computations, as it may require sorted row indices, prohibit duplicate entries, and not allow explicit zeros, making it unsuitable for sparse matrices and multigraphs, and can lead to excessive processing and memory usage.

Innovation Solution

The implementation of a graph class or digraph class application programming interface (API) that encapsulates graph data as an adjacency matrix and presents it as an edge list, node list, or plotted graph, allowing intuitive graph algorithm utilization without requiring matrix understanding, and enables efficient computation by storing graph data as a sparse matrix.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If graph data is presented using matrix data, then graph algorithms can be implemented, but the complexity increases and computation becomes inefficient due to requirements for sorted row indices, prohibition of duplicate entries, and inability to store explicit zeros

Engineering Contradiction:
Improvegraph algorithm implementationVSAvoidmatrix data structure complexity
Core Design Contradiction:
Ease of manufactureVSDevice complexity

Solution Approach 1:

The patent introduces a graph class API as an intermediary layer between the user and the underlying data structure. This API encapsulates the complex matrix storage requirements and provides simplified methods for creating and manipulating graphs, allowing users to work with graphs without understanding the underlying matrix complexity

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent changes the data representation from dense matrices to sparse matrices, fundamentally altering how graph data is stored and processed. This parameter change enables efficient handling of large graphs with few edges while maintaining the ability to perform standard graph algorithms

Inventive Principle:
Principle #35Parameter changes

2Productivity

If graph data is stored as a dense matrix, then all graph computations can be performed, but processing resources and memory usage become excessive

Engineering Contradiction:
Improvegraph computation capabilityVSAvoidprocessing and memory resources
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent transitions from dense matrix storage to sparse matrix storage, fundamentally changing the memory representation. This allows the system to store only non-zero elements and their positions, dramatically reducing memory usage for graphs with few edges while maintaining full computational capability

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent applies different storage densities to different parts of the data structure based on actual needs. By using sparse matrices, the system stores detailed information only where needed (non-zero entries) while using minimal space elsewhere (zero entries), optimizing the balance between computational capability and resource consumption

Inventive Principle:
Principle #3Local quality

3Ease of manufacture

If matrix data structure is used, then graph algorithms can be implemented, but the API becomes less intuitive and harder to use without requiring matrix understanding

Engineering Contradiction:
Improvegraph algorithm functionalityVSAvoidAPI usability
Core Design Contradiction:
Ease of manufactureVSEase of operation

Solution Approach 1:

The graph class API serves as an intermediary that translates high-level graph operations into the underlying matrix operations. Users interact with intuitive graph methods (adding edges, finding paths) rather than directly manipulating matrices, eliminating the need to understand matrix theory for graph programming

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the graph data structure into distinct components (nodes, edges, adjacency matrix, edge list) that can be manipulated independently through the API. This segmentation allows users to work with graphs at their own level of abstraction without being forced to understand the entire matrix system

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10346138B1Graph class application programming interfaces (APIs)
Publication Date: 2019.07.09 MATHWORKS INC
  • US10346138B1 patent drawing
  • US10346138B1 patent drawing
  • US10346138B1 patent drawing

AI summary

A device may receive a command to create an object. The object may be associated with representing a set of nodes. A first node, of the set of nodes, may be connected to a second node, of the set of nodes via an edge, of a set of edges. The device may create, based on the command, the object. The object may include a sparse matrix associated with representing the set of nodes and the set of edges. The object may include a first table associated with representing a set of properties associated with the set of nodes. The object may include a second table associated with representing a set of properties associated with the set of edges. The device may store the object.