Skip to content

Powell's Method

Introduction

This powell's method implementation works by optimizing each search space dimension at a time with a hill climbing algorithm. It works by setting the search space range for all dimensions except one to a single value. The hill climbing algorithms searches the best position within this dimension.

Example

from hyperactive import Hyperactive
from hyperactive.optimizers import PowellsMethod

...

optimizer = PowellsMethod(iters_p_dim=15)

hyper = Hyperactive()
hyper.add_search(model, search_space, n_iter=50, optimizer=optimizer)
hyper.run()

About the implementation

The powell's method implemented in Gradient-Free-Optimizers does only see one dimension at a time. This differs from the original idea of creating (and searching through) one search-vector at a time, that spans through multiple dimensions. After iters_p_dim iterations the next dimension is searched, while the search space range from the previously searched dimension is set to the best position, This way the algorithm finds new best positions one dimension at a time.

Parameters

iters_p_dim

Number of iterations the algorithm will let the hill-climbing algorithm search to find the best position before it changes to the next dimension of the search space.

  • type: int
  • default: 10
  • typical range: 5 ... 15