dwavesystems / dwavesystems/dwave-optimization

Use predecessor `min()` and `max()` data in `IsInNode`

Open
#581 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
C++
Stars
31
Forks
36
Avg merge
16h 55m
Merged PRs (30d)
8

Description

In its current implementation, `IsInNode` creates its state data structure without any knowledge about its predecessors `min` and `max` values. For integral predecessors, we could optimize this by preallocating the memory at construction. This could open up the door for different data structure (as opposed to the current `std::unordered_map`), e.g. a modified sparse set.

Contributor guide

Open the contributing guide

Research direction

Start by locating the IsInNode implementation and examining how it obtains predecessor min and max values. Determine how integral predecessors could provide construction-time sizing while preserving current behavior, then evaluate whether the existing std::unordered_map or an alternative data structure is appropriate. Done means the state data structure uses the available bounds without changing IsInNode semantics.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
backend
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.