Generalized Moving Peaks Benchmark (dynamic minimization wrapper)

A stateful dynamic optimization benchmark that wraps GMPB’s native maximization objective and negates it to fit this package’s minimization-oriented optimization API.

See Optimization Problem Catalog for the optimization family index.

Quick Facts

Field

Value

Problem ID

gmpb_default_dynamic_min

Problem Family

optimization

Implementation

design_research_problems.problems.optimization._gmpb:GMPBOptimizationProblem

Capabilities

baseline-solver, bounded-variables, external-adapter, statement-markdown

Study Suitability

none

Tags

optimization, continuous, dynamic, benchmark, single-objective

Taxonomy

Formulation

nonlinear_program

Convexity

not_guaranteed

Design Variable Type

continuous

Is Dynamic

yes

Orientation

mathematical

Objective Mode

single

Constraint Nature

hard

Bounds Summary

five continuous variables bounded on [-100, 100]

Tags

optimization, continuous, dynamic, benchmark, single-objective

Statement

This packaged optimization problem wraps the external Generalized Moving Peaks Benchmark (GMPB). GMPB is defined as a dynamic maximization benchmark whose evaluation counter advances through changing environments.

To fit the optimization API in this package, the wrapper reports the negated native GMPB objective, so lower values are better. Evaluations remain stateful: each call consumes benchmark budget in the current environment, and the environment changes automatically when the configured change frequency is exhausted.

Problem Shape

Field

Value

Design Variable Count

5

Bound Summary

five continuous variables bounded on [-100, 100]

Total Constraint Count

0

Equality Constraint Count

0

Inequality Constraint Count

0

Variable Bounds

Variable

Lower Bound

Upper Bound

x[0]

-100

100

x[1]

-100

100

x[2]

-100

100

x[3]

-100

100

x[4]

-100

100

Manifest Parameters

Key

Value

change_frequency

1000

component_count

10

dimension

5

environment_count

100

lower_bound

-100

seed

7

upper_bound

100

Library Interface

  • generate_initial_solution(seed=None)

  • objective(x)

  • evaluate(x)

  • solve(initial_solution=None, seed=None, maxiter=200)