Parallel Seed Generation for Shuffle Algorithms

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current shuffle algorithms for media content playback require computationally expensive and time-consuming processes to generate seeds that produce suitable shuffle orders, as they often result in unsuitable playback orders due to randomization, and different devices may not recreate the same shuffled order accurately.

Innovation Solution

Distribute the seed generation computation across multiple computing devices, allowing each device to perform only a part of the total computation in parallel, thereby reducing the computational burden and time required to identify a seed with the best fitness score, which can be stored at a central server.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If seeds are generated and tested sequentially on a single device, then the fitness score can be accurately determined, but the computational time and resources required become excessively long and expensive

Engineering Contradiction:
Improvefitness score accuracyVSAvoidseed generation time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent divides the seed generation and testing process into multiple segments that can be executed in parallel across different computing devices. Each device generates and tests a portion of the candidate seeds, rather than one device handling all seeds sequentially. This segmentation maintains accurate fitness score determination while significantly reducing total computation time by distributing the workload.

Inventive Principle:
Principle #1Segmentation

2Reliability

If multiple seeds are generated to find a suitable shuffle order, then the quality of playback order improves, but the computational burden on individual devices increases

Engineering Contradiction:
Improveplayback order suitabilityVSAvoidcomputation load
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system segments the generation and evaluation of multiple seeds across different computing devices. Instead of one device generating and testing all candidate seeds (which would create high computational burden), the workload is divided so that multiple devices each handle a portion of the seed generation and fitness evaluation, reducing individual device complexity while maintaining overall system capability to find high-quality shuffle orders.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent combines the computational resources of multiple computing devices to collectively generate and evaluate multiple candidate seeds. By merging the capabilities of several devices, the system can test more seeds and find better playback orders without overburdening any single device, as the total computational load is shared across the networked devices.

Inventive Principle:
Principle #5Merging (Combining)

3Adaptability or versatility

If a random seed is used for shuffling, then the shuffle order changes, but the playback order may still be unsuitable (e.g., same artist for consecutive songs)

Engineering Contradiction:
Improveshuffle order variationVSAvoidplayback order quality
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system implements feedback through fitness score evaluation for each generated seed. Rather than simply using random seeds, each candidate seed is evaluated against quality criteria (such as avoiding consecutive songs by the same artist). The fitness score provides feedback on how well each seed produces a suitable playback order, allowing the system to select only those seeds that meet quality thresholds while still providing variety in shuffle orders.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11720329B2Generating a shuffle seed
Publication Date: 2023.08.08 SPOTIFY
  • US11720329B2 patent drawing
  • US11720329B2 patent drawing
  • US11720329B2 patent drawing

AI summary

A method for generating a seed for a shuffle algorithm, the method performed by a plurality of computing devices and comprising, at each computing device in the plurality, generating a respective plurality of seeds for a shuffle algorithm, determining a fitness score for each of the generated seeds, and identifying a seed among the generated seeds having the best fitness score, wherein the number of generated seeds is determined based on a predetermined limit.