Skip to content

Support for Warm-Start / Resume From Existing Solution in Strip Packing #7

Description

@mathurinadvanthink

@JeroenGar
Follow this conversation JeroenGar/sparrow#124

Currently, StripPackingInstance.solve() always starts the search from scratch with no option to:

provide an initial solution (e.g., a previously found layout),

resume from a partially explored state,

or influence the solver using a known good arrangement as a starting point.

For large item counts (N > 50), this would be extremely useful, because:

most runs converge to similar solutions with the same seed,

improvements become very rare even with long computation times,

a previously found “good but not optimal” solution could guide the solver away from repeatedly exploring the same local minima.

Proposed API Idea (High-Level)

For example:

fn solve_with_initial( &self, initial_solution: &StripPackingSolution, config: &StripPackingConfig, ) -> StripPackingSolution
Or on the Python side (spyrrow):

instance.solve(initial_solution=my_previous_solution, config=cfg)
Alternatively, a resume() function using an exported intermediate state would also work.

It would greatly improve solver diversity and final packing quality.

It would allow iterative refinement loops (reduce strip height → resume → refine).

It would reduce total compute time for users exploring stepwise height decreases.

It aligns with workflows in industrial cutting & nesting applications.

Thank you for your help.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions