Matrix Power Series Calculation via Pointer Swapping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for calculating matrix power series are inefficient due to high memory consumption, as they require storing all intermediate results, making them impractical for large values of n, where each matrix power must be calculated and stored before summation.

Innovation Solution

A recursive method is employed where only four data elements are maintained: the matrix, the previous series term, the current series term, and the partial sum, utilizing a recursion relation Ai = AAi-1 and Si = Si-1 + Ai, with pointers exchanged at each phase to efficiently compute the series.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If all intermediate results (matrix powers A1, A2, ..., An) are stored in memory, then the complete path matrix can be calculated, but memory consumption becomes very large

Engineering Contradiction:
Improvecompleteness of path matrix calculationVSAvoidmemory consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent extracts only the essential information needed for the final result. Instead of storing all intermediate matrix powers, it maintains only the current partial sum and the current matrix power, discarding unnecessary intermediate results. This extraction principle reduces memory consumption from O(n²) matrices to O(1) matrices while preserving the ability to compute the complete path matrix.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent implements a iterative process where intermediate matrix powers are computed, added to the partial sum, and then discarded in the next iteration. The current matrix power is recovered in the subsequent step by multiplying the previous power by the adjacency matrix. This discard-and-recover approach maintains only essential data while preserving computational completeness.

Inventive Principle:
Principle #34Discarding and recovering

2Manufacturing precision

If n is large (e.g., n=1000), then the path matrix contains many entries (10^6), but storing all intermediate results requires excessive memory (4 GB or more)

Engineering Contradiction:
Improvepath matrix calculation accuracyVSAvoidmemory space requirement
Core Design Contradiction:
Manufacturing precisionVSQuantity of substance

Solution Approach 1:

The patent segments the computation into iterative steps where the path matrix is built incrementally. Instead of computing and storing all n matrix powers simultaneously, it computes one power at a time, adds it to the partial sum, and proceeds to the next power. This segmentation reduces memory requirements from storing all intermediate results to storing only the current iteration's data, making large-scale computations feasible.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs partial computation in each iteration, calculating only the current matrix power and its contribution to the partial sum rather than computing all powers upfront. This partial action approach processes the computation in manageable chunks, reducing peak memory usage while maintaining the ability to compute the complete result with high precision for large n values.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS7454454B2Method and apparatus for efficient calculation of a matrix power series
Publication Date: 2008.11.18 SAP SE
  • US7454454B2 patent drawing
  • US7454454B2 patent drawing
  • US7454454B2 patent drawing

AI summary

The present invention provides a method and system for computing a matrix power series according to one embodiment of the present invention. Memory structures for storing a partial sum, current and previous series terms are allocated. First and second pointers are assigned to refer to a memory location storing a current series term and a previous series term respectively. During each phase of a process to compute a current partial sum, the pointers are exchanged.