bundles / scipy 1.17.1 / scipy / optimize / _shgo_lib / _complex / Complex / triangulate
function
scipy.optimize._shgo_lib._complex:Complex.triangulate
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.symmetryEx. 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 hypercubeprintout: 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