{ } Raw JSON

bundles / scipy latest / scipy / optimize / _shgo_lib / _complex / Complex / triangulate

function

scipy.optimize._shgo_lib._complex:Complex.triangulate

source: /scipy/optimize/_shgo_lib/_complex.py :359

Signature

def   triangulate ( self n = None symmetry = None centroid = True printout = False )

Summary

Triangulate the initial domain, if n is not None then a limited number of points will be generated

Parameters

n : int, Number of points to be sampled.
symmetry

Ex. Dictionary/hashtable f(x) = (x_1 + x_2 + x_3) + (x_4)**2 + (x_5)**2 + (x_6)**2

symmetry = symmetry[0]: 0, # Variable 1

symmetry[1]: 0, # symmetric to variable 1 symmetry[2]: 0, # symmetric to variable 1 symmetry[3]: 3, # Variable 4 symmetry[4]: 3, # symmetric to variable 4 symmetry[5]: 3, # symmetric to variable 4 }

centroid : bool, if True add a central point to the hypercube
printout : bool, if True print out results

Notes

Rather than using the combinatorial algorithm to connect vertices we make the following observation:

The bound pairs are similar a C2 cyclic group and the structure is formed using the cartesian product:

H = C2 x C2 x C2 ... x C2 (dim times)

So construct any normal subgroup N and consider H/N first, we connect all vertices within N (ex. N is C2 (the first dimension), then we move to a left coset aN (an operation moving around the defined H/N group by for example moving from the lower bound in C2 (dimension 2) to the higher bound in C2. During this operation connection all the vertices. Now repeat the N connections. Note that these elements can be connected in parallel.

Aliases

  • scipy.optimize._shgo.Complex.triangulate