Binary Optimization via Stochastic Learning#
References:#
Ahmed Attia, Sven Leyffer, and Todd S. Munson. “Stochastic learning approach for binary optimization: Application to Bayesian optimal design of experiments.” SIAM Journal on Scientific Computing 44, no. 2 (2022): B395-B427.
[1]:
from pyoed.optimization.binary_optimization import BinaryReinforceOptimizer
from pyoed.optimization.test_functions.binary_test_functions import AlternatingSignOptimizationFunction
import matplotlib.pyplot as plt
Maximization problem#
Create the optimizer, solve maximization problem, and then plot results
[2]:
## Settings
# Objective function (Define your own)
fun = AlternatingSignOptimizationFunction(10)
# Dimension of the optimization variable
size = 10
# Create the optimizer
optimizer = BinaryReinforceOptimizer(
configs=dict(
fun=fun,
size=size,
maxiter=500,
maximize=True,
random_seed=1011, # for reproducibility
)
)
[3]:
# Solve
maximization_results = optimizer.solve()
Iter: [000001] ; Step-Update-Norm: 1.03172338e-01
Iter: [000002] ; Step-Update-Norm: 8.96925542e-02
Iter: [000003] ; Step-Update-Norm: 9.59917911e-02
Iter: [000004] ; Step-Update-Norm: 8.24631447e-02
Iter: [000005] ; Step-Update-Norm: 8.16681111e-02
Iter: [000006] ; Step-Update-Norm: 6.73517063e-02
Iter: [000007] ; Step-Update-Norm: 6.57074791e-02
Iter: [000008] ; Step-Update-Norm: 7.05611279e-02
Iter: [000009] ; Step-Update-Norm: 6.15406295e-02
Iter: [000010] ; Step-Update-Norm: 5.51062955e-02
Iter: [000011] ; Step-Update-Norm: 4.84920423e-02
Iter: [000012] ; Step-Update-Norm: 3.12984582e-02
Iter: [000013] ; Step-Update-Norm: 3.88936097e-02
Iter: [000014] ; Step-Update-Norm: 3.46579078e-02
Iter: [000015] ; Step-Update-Norm: 3.19632400e-02
Iter: [000016] ; Step-Update-Norm: 4.60133929e-02
Iter: [000017] ; Step-Update-Norm: 2.60315694e-02
Iter: [000018] ; Step-Update-Norm: 3.69271758e-02
Iter: [000019] ; Step-Update-Norm: 4.12694955e-02
Iter: [000020] ; Step-Update-Norm: 3.12514967e-02
Iter: [000021] ; Step-Update-Norm: 2.82708138e-02
Iter: [000022] ; Step-Update-Norm: 3.44552349e-02
Iter: [000023] ; Step-Update-Norm: 2.56885063e-02
Iter: [000024] ; Step-Update-Norm: 2.94860782e-02
Iter: [000025] ; Step-Update-Norm: 2.98325322e-02
Iter: [000026] ; Step-Update-Norm: 2.54793762e-02
Iter: [000027] ; Step-Update-Norm: 2.94831176e-02
Iter: [000028] ; Step-Update-Norm: 1.51114854e-02
Iter: [000029] ; Step-Update-Norm: 2.47344914e-02
Iter: [000030] ; Step-Update-Norm: 2.19059788e-02
Iter: [000031] ; Step-Update-Norm: 1.68360216e-02
Iter: [000032] ; Step-Update-Norm: 1.22628104e-02
Iter: [000033] ; Step-Update-Norm: 1.58581363e-02
Iter: [000034] ; Step-Update-Norm: 2.11513895e-02
Iter: [000035] ; Step-Update-Norm: 1.03452685e-02
Iter: [000036] ; Step-Update-Norm: 1.07028243e-02
Iter: [000037] ; Step-Update-Norm: 1.31474450e-02
Iter: [000038] ; Step-Update-Norm: 1.59291411e-02
Iter: [000039] ; Step-Update-Norm: 1.15786368e-02
Iter: [000040] ; Step-Update-Norm: 3.19081347e-02
Iter: [000041] ; Step-Update-Norm: 1.63630071e-02
Iter: [000042] ; Step-Update-Norm: 7.06247706e-03
Iter: [000043] ; Step-Update-Norm: 8.14195231e-03
Iter: [000044] ; Step-Update-Norm: 1.47582861e-02
Iter: [000045] ; Step-Update-Norm: 1.20022755e-02
Iter: [000046] ; Step-Update-Norm: 1.81963692e-02
Iter: [000047] ; Step-Update-Norm: 1.33024742e-02
Iter: [000048] ; Step-Update-Norm: 1.61548772e-02
Iter: [000049] ; Step-Update-Norm: 8.08014912e-03
Iter: [000050] ; Step-Update-Norm: 7.31134347e-03
Iter: [000051] ; Step-Update-Norm: 6.38062159e-03
Iter: [000052] ; Step-Update-Norm: 5.12562724e-02
Iter: [000053] ; Step-Update-Norm: 1.16785381e-02
Iter: [000054] ; Step-Update-Norm: 3.49792859e-02
Iter: [000055] ; Step-Update-Norm: 1.21513352e-02
Iter: [000056] ; Step-Update-Norm: 1.64160138e-02
Iter: [000057] ; Step-Update-Norm: 1.53646551e-02
Iter: [000058] ; Step-Update-Norm: 1.24162243e-02
Iter: [000059] ; Step-Update-Norm: 8.59465117e-03
Iter: [000060] ; Step-Update-Norm: 1.06586725e-02
Iter: [000061] ; Step-Update-Norm: 1.02018006e-02
Iter: [000062] ; Step-Update-Norm: 1.05930428e-02
Iter: [000063] ; Step-Update-Norm: 7.19240084e-03
Iter: [000064] ; Step-Update-Norm: 6.86849671e-03
Iter: [000065] ; Step-Update-Norm: 5.75968674e-03
Iter: [000066] ; Step-Update-Norm: 6.95264308e-03
Iter: [000067] ; Step-Update-Norm: 8.69672527e-03
Iter: [000068] ; Step-Update-Norm: 5.56816787e-03
Iter: [000069] ; Step-Update-Norm: 5.32690319e-03
Iter: [000070] ; Step-Update-Norm: 5.17741156e-03
Iter: [000071] ; Step-Update-Norm: 3.13436275e-03
Iter: [000072] ; Step-Update-Norm: 3.69509108e-03
Iter: [000073] ; Step-Update-Norm: 3.40163061e-03
Iter: [000074] ; Step-Update-Norm: 3.93036972e-03
Iter: [000075] ; Step-Update-Norm: 2.74955380e-03
Iter: [000076] ; Step-Update-Norm: 9.01855049e-03
Iter: [000077] ; Step-Update-Norm: 3.63134061e-03
Iter: [000078] ; Step-Update-Norm: 2.32453763e-03
Iter: [000079] ; Step-Update-Norm: 2.13947280e-03
Iter: [000080] ; Step-Update-Norm: 1.80891992e-03
Iter: [000081] ; Step-Update-Norm: 1.66946539e-02
Iter: [000082] ; Step-Update-Norm: 7.76609568e-03
Iter: [000083] ; Step-Update-Norm: 1.05862308e-02
Iter: [000084] ; Step-Update-Norm: 1.08393381e-02
Iter: [000085] ; Step-Update-Norm: 5.85061897e-03
Iter: [000086] ; Step-Update-Norm: 6.62831912e-03
Iter: [000087] ; Step-Update-Norm: 5.98777834e-03
Iter: [000088] ; Step-Update-Norm: 5.89075529e-03
Iter: [000089] ; Step-Update-Norm: 6.26190930e-03
Iter: [000090] ; Step-Update-Norm: 5.46790495e-03
Iter: [000091] ; Step-Update-Norm: 5.28815600e-03
Iter: [000092] ; Step-Update-Norm: 4.57687860e-03
Iter: [000093] ; Step-Update-Norm: 4.60137885e-03
Iter: [000094] ; Step-Update-Norm: 1.90248539e-02
Iter: [000095] ; Step-Update-Norm: 4.85192877e-03
Iter: [000096] ; Step-Update-Norm: 6.36848465e-03
Iter: [000097] ; Step-Update-Norm: 6.00225741e-03
Iter: [000098] ; Step-Update-Norm: 3.36347652e-03
Iter: [000099] ; Step-Update-Norm: 1.07604156e-02
Iter: [000100] ; Step-Update-Norm: 4.37396571e-03
Iter: [000101] ; Step-Update-Norm: 5.25651863e-03
Iter: [000102] ; Step-Update-Norm: 4.92511367e-03
Iter: [000103] ; Step-Update-Norm: 5.76418355e-03
Iter: [000104] ; Step-Update-Norm: 1.26741012e-02
Iter: [000105] ; Step-Update-Norm: 2.71779190e-03
Iter: [000106] ; Step-Update-Norm: 5.49407613e-03
Iter: [000107] ; Step-Update-Norm: 3.69938731e-03
Iter: [000108] ; Step-Update-Norm: 3.89352406e-02
Iter: [000109] ; Step-Update-Norm: 2.99320800e-03
Iter: [000110] ; Step-Update-Norm: 2.77374204e-03
Iter: [000111] ; Step-Update-Norm: 2.56065883e-03
Iter: [000112] ; Step-Update-Norm: 1.87805615e-03
Iter: [000113] ; Step-Update-Norm: 1.74347780e-03
Iter: [000114] ; Step-Update-Norm: 1.85647089e-03
Iter: [000115] ; Step-Update-Norm: 1.30639570e-03
Iter: [000116] ; Step-Update-Norm: 1.41671356e-03
Iter: [000117] ; Step-Update-Norm: 1.48826211e-03
Iter: [000118] ; Step-Update-Norm: 1.00293615e-03
Iter: [000119] ; Step-Update-Norm: 8.43298037e-04
Iter: [000120] ; Step-Update-Norm: 6.76420380e-03
Iter: [000121] ; Step-Update-Norm: 2.48509005e-03
Iter: [000122] ; Step-Update-Norm: 2.40280338e-03
Iter: [000123] ; Step-Update-Norm: 3.23753707e-03
Iter: [000124] ; Step-Update-Norm: 5.08907342e-03
Iter: [000125] ; Step-Update-Norm: 1.12132519e-02
Iter: [000126] ; Step-Update-Norm: 3.30806187e-03
Iter: [000127] ; Step-Update-Norm: 4.98231632e-03
Iter: [000128] ; Step-Update-Norm: 2.72332945e-03
Iter: [000129] ; Step-Update-Norm: 4.03451846e-02
Iter: [000130] ; Step-Update-Norm: 8.22039253e-03
Iter: [000131] ; Step-Update-Norm: 1.09528181e-02
Iter: [000132] ; Step-Update-Norm: 1.16296539e-02
Iter: [000133] ; Step-Update-Norm: 9.15340231e-03
Iter: [000134] ; Step-Update-Norm: 4.66489999e-03
Iter: [000135] ; Step-Update-Norm: 1.03666854e-02
Iter: [000136] ; Step-Update-Norm: 4.24840392e-03
Iter: [000137] ; Step-Update-Norm: 6.07164767e-03
Iter: [000138] ; Step-Update-Norm: 6.00856764e-03
Iter: [000139] ; Step-Update-Norm: 4.84989065e-03
Iter: [000140] ; Step-Update-Norm: 4.08079295e-03
Iter: [000141] ; Step-Update-Norm: 1.32333957e-02
Iter: [000142] ; Step-Update-Norm: 3.12482317e-03
Iter: [000143] ; Step-Update-Norm: 3.53647051e-03
Iter: [000144] ; Step-Update-Norm: 8.72080742e-03
Iter: [000145] ; Step-Update-Norm: 7.01632954e-03
Iter: [000146] ; Step-Update-Norm: 7.57202815e-03
Iter: [000147] ; Step-Update-Norm: 4.65231922e-03
Iter: [000148] ; Step-Update-Norm: 5.90523947e-03
Iter: [000149] ; Step-Update-Norm: 5.44241020e-03
Iter: [000150] ; Step-Update-Norm: 7.65684381e-03
Iter: [000151] ; Step-Update-Norm: 1.63849236e-02
Iter: [000152] ; Step-Update-Norm: 6.13241742e-03
Iter: [000153] ; Step-Update-Norm: 1.30411266e-02
Iter: [000154] ; Step-Update-Norm: 6.20438217e-03
Iter: [000155] ; Step-Update-Norm: 5.27999390e-03
Iter: [000156] ; Step-Update-Norm: 5.18470161e-03
Iter: [000157] ; Step-Update-Norm: 4.18331281e-03
Iter: [000158] ; Step-Update-Norm: 6.15038391e-03
Iter: [000159] ; Step-Update-Norm: 5.26452927e-03
Iter: [000160] ; Step-Update-Norm: 4.04751687e-03
Iter: [000161] ; Step-Update-Norm: 4.87911324e-03
Iter: [000162] ; Step-Update-Norm: 4.82850102e-03
Iter: [000163] ; Step-Update-Norm: 2.56884254e-03
Iter: [000164] ; Step-Update-Norm: 3.70342290e-03
Iter: [000165] ; Step-Update-Norm: 5.34625619e-03
Iter: [000166] ; Step-Update-Norm: 3.35910702e-03
Iter: [000167] ; Step-Update-Norm: 3.71987535e-03
Iter: [000168] ; Step-Update-Norm: 3.20729219e-03
Iter: [000169] ; Step-Update-Norm: 4.89727711e-03
Iter: [000170] ; Step-Update-Norm: 8.92946898e-03
Iter: [000171] ; Step-Update-Norm: 6.08048392e-03
Iter: [000172] ; Step-Update-Norm: 4.55880548e-03
Iter: [000173] ; Step-Update-Norm: 6.74012309e-03
Iter: [000174] ; Step-Update-Norm: 5.19011998e-03
Iter: [000175] ; Step-Update-Norm: 6.75928682e-03
Iter: [000176] ; Step-Update-Norm: 3.32881581e-03
Iter: [000177] ; Step-Update-Norm: 4.46959169e-03
Iter: [000178] ; Step-Update-Norm: 2.88358646e-03
Iter: [000179] ; Step-Update-Norm: 3.55782587e-03
Iter: [000180] ; Step-Update-Norm: 4.02378817e-03
Iter: [000181] ; Step-Update-Norm: 2.92147228e-03
Iter: [000182] ; Step-Update-Norm: 8.60987590e-03
Iter: [000183] ; Step-Update-Norm: 3.69038348e-03
Iter: [000184] ; Step-Update-Norm: 3.94798006e-03
Iter: [000185] ; Step-Update-Norm: 5.44482533e-03
Iter: [000186] ; Step-Update-Norm: 5.50840889e-03
Iter: [000187] ; Step-Update-Norm: 3.20601557e-03
Iter: [000188] ; Step-Update-Norm: 6.78604507e-03
Iter: [000189] ; Step-Update-Norm: 3.50895040e-03
Iter: [000190] ; Step-Update-Norm: 3.19975203e-03
Iter: [000191] ; Step-Update-Norm: 5.35895352e-03
Iter: [000192] ; Step-Update-Norm: 2.81781569e-03
Iter: [000193] ; Step-Update-Norm: 3.66465177e-03
Iter: [000194] ; Step-Update-Norm: 3.59421983e-03
Iter: [000195] ; Step-Update-Norm: 2.29429801e-03
Iter: [000196] ; Step-Update-Norm: 2.28482048e-03
Iter: [000197] ; Step-Update-Norm: 6.05185312e-03
Iter: [000198] ; Step-Update-Norm: 3.64745189e-03
Iter: [000199] ; Step-Update-Norm: 3.96243355e-03
Iter: [000200] ; Step-Update-Norm: 3.60005581e-03
Iter: [000201] ; Step-Update-Norm: 4.01734718e-03
Iter: [000202] ; Step-Update-Norm: 2.81327754e-03
Iter: [000203] ; Step-Update-Norm: 4.38391371e-03
Iter: [000204] ; Step-Update-Norm: 1.93200442e-03
Iter: [000205] ; Step-Update-Norm: 5.03135661e-03
Iter: [000206] ; Step-Update-Norm: 5.24346463e-03
Iter: [000207] ; Step-Update-Norm: 5.48678090e-03
Iter: [000208] ; Step-Update-Norm: 3.59031443e-03
Iter: [000209] ; Step-Update-Norm: 3.27564678e-03
Iter: [000210] ; Step-Update-Norm: 2.91519449e-03
Iter: [000211] ; Step-Update-Norm: 3.66049490e-03
Iter: [000212] ; Step-Update-Norm: 3.07212792e-03
Iter: [000213] ; Step-Update-Norm: 3.20562054e-03
Iter: [000214] ; Step-Update-Norm: 1.67717405e-03
Iter: [000215] ; Step-Update-Norm: 1.32142515e-03
Iter: [000216] ; Step-Update-Norm: 1.20762447e-03
Iter: [000217] ; Step-Update-Norm: 1.54379983e-03
Iter: [000218] ; Step-Update-Norm: 3.45970111e-03
Iter: [000219] ; Step-Update-Norm: 1.51529183e-03
Iter: [000220] ; Step-Update-Norm: 6.59083657e-03
Iter: [000221] ; Step-Update-Norm: 2.76579505e-03
Iter: [000222] ; Step-Update-Norm: 2.76720154e-03
Iter: [000223] ; Step-Update-Norm: 1.86081714e-03
Iter: [000224] ; Step-Update-Norm: 2.72489925e-03
Iter: [000225] ; Step-Update-Norm: 1.79566278e-03
Iter: [000226] ; Step-Update-Norm: 1.54925128e-03
Iter: [000227] ; Step-Update-Norm: 1.21319310e-03
Iter: [000228] ; Step-Update-Norm: 2.44101958e-03
Iter: [000229] ; Step-Update-Norm: 7.17739693e-03
Iter: [000230] ; Step-Update-Norm: 3.33077744e-03
Iter: [000231] ; Step-Update-Norm: 3.07547148e-03
Iter: [000232] ; Step-Update-Norm: 2.25269504e-03
Iter: [000233] ; Step-Update-Norm: 2.22156906e-03
Iter: [000234] ; Step-Update-Norm: 1.81954751e-03
Iter: [000235] ; Step-Update-Norm: 1.80691242e-03
Iter: [000236] ; Step-Update-Norm: 3.03395815e-03
Iter: [000237] ; Step-Update-Norm: 1.92148780e-03
Iter: [000238] ; Step-Update-Norm: 1.51057752e-03
Iter: [000239] ; Step-Update-Norm: 1.10795291e-03
Iter: [000240] ; Step-Update-Norm: 1.24654860e-03
Iter: [000241] ; Step-Update-Norm: 1.31055691e-03
Iter: [000242] ; Step-Update-Norm: 1.32988959e-03
Iter: [000243] ; Step-Update-Norm: 8.86004822e-04
Iter: [000244] ; Step-Update-Norm: 6.84012509e-04
Iter: [000245] ; Step-Update-Norm: 8.09169257e-04
Iter: [000246] ; Step-Update-Norm: 6.18639702e-04
Iter: [000247] ; Step-Update-Norm: 4.38333548e-04
Iter: [000248] ; Step-Update-Norm: 4.92335361e-04
Iter: [000249] ; Step-Update-Norm: 3.82434435e-04
Iter: [000250] ; Step-Update-Norm: 3.73329789e-04
Iter: [000251] ; Step-Update-Norm: 3.37225916e-04
Iter: [000252] ; Step-Update-Norm: 3.19483268e-04
Iter: [000253] ; Step-Update-Norm: 2.88529425e-04
Iter: [000254] ; Step-Update-Norm: 2.58057782e-04
Iter: [000255] ; Step-Update-Norm: 3.88971650e-04
Iter: [000256] ; Step-Update-Norm: 3.44615749e-04
Iter: [000257] ; Step-Update-Norm: 2.44359261e-04
Iter: [000258] ; Step-Update-Norm: 3.05959247e-04
Iter: [000259] ; Step-Update-Norm: 2.67573414e-02
Iter: [000260] ; Step-Update-Norm: 1.38100595e-03
Iter: [000261] ; Step-Update-Norm: 1.37086883e-03
Iter: [000262] ; Step-Update-Norm: 1.02844870e-03
Iter: [000263] ; Step-Update-Norm: 1.43941728e-03
Iter: [000264] ; Step-Update-Norm: 1.11464480e-03
Iter: [000265] ; Step-Update-Norm: 1.19446540e-03
Iter: [000266] ; Step-Update-Norm: 9.10264348e-04
Iter: [000267] ; Step-Update-Norm: 6.30681385e-04
Iter: [000268] ; Step-Update-Norm: 1.12399585e-03
Iter: [000269] ; Step-Update-Norm: 5.85926292e-04
Iter: [000270] ; Step-Update-Norm: 4.50246800e-04
Iter: [000271] ; Step-Update-Norm: 4.29919105e-04
Iter: [000272] ; Step-Update-Norm: 3.42652066e-04
Iter: [000273] ; Step-Update-Norm: 3.39658713e-04
Iter: [000274] ; Step-Update-Norm: 3.16906173e-04
Iter: [000275] ; Step-Update-Norm: 3.60022181e-04
Iter: [000276] ; Step-Update-Norm: 2.21423180e-04
Iter: [000277] ; Step-Update-Norm: 2.28816973e-04
Iter: [000278] ; Step-Update-Norm: 7.47869894e-04
Iter: [000279] ; Step-Update-Norm: 3.05224178e-04
Iter: [000280] ; Step-Update-Norm: 1.56968527e-04
Iter: [000281] ; Step-Update-Norm: 1.52813097e-04
Iter: [000282] ; Step-Update-Norm: 1.50746575e-04
Iter: [000283] ; Step-Update-Norm: 1.51637619e-04
Iter: [000284] ; Step-Update-Norm: 3.43786092e-04
Iter: [000285] ; Step-Update-Norm: 1.59301761e-04
Iter: [000286] ; Step-Update-Norm: 8.78887748e-05
Iter: [000287] ; Step-Update-Norm: 7.72667837e-05
Iter: [000288] ; Step-Update-Norm: 1.48911636e-04
Iter: [000289] ; Step-Update-Norm: 1.95624683e-04
Iter: [000290] ; Step-Update-Norm: 6.18391860e-05
Iter: [000291] ; Step-Update-Norm: 6.20604827e-05
Iter: [000292] ; Step-Update-Norm: 4.45543862e-05
Iter: [000293] ; Step-Update-Norm: 5.25445662e-05
Iter: [000294] ; Step-Update-Norm: 8.34454732e-05
Iter: [000295] ; Step-Update-Norm: 2.99122326e-05
Iter: [000296] ; Step-Update-Norm: 3.70707441e-05
Iter: [000297] ; Step-Update-Norm: 3.89080398e-05
Iter: [000298] ; Step-Update-Norm: 2.23147966e-05
Iter: [000299] ; Step-Update-Norm: 2.13078486e-05
Iter: [000300] ; Step-Update-Norm: 2.23610951e-05
Iter: [000301] ; Step-Update-Norm: 2.29753697e-05
Iter: [000302] ; Step-Update-Norm: 1.66333639e-05
Iter: [000303] ; Step-Update-Norm: 9.81479454e-06
Iter: [000304] ; Step-Update-Norm: 2.53143354e-05
Iter: [000305] ; Step-Update-Norm: 1.82044482e-05
Iter: [000306] ; Step-Update-Norm: 1.06036850e-05
Iter: [000307] ; Step-Update-Norm: 1.01342343e-05
Iter: [000308] ; Step-Update-Norm: 9.45850611e-06
Iter: [000309] ; Step-Update-Norm: 1.32329017e-05
Iter: [000310] ; Step-Update-Norm: 6.15205728e-06
Iter: [000311] ; Step-Update-Norm: 8.34742309e-06
Iter: [000312] ; Step-Update-Norm: 6.17037286e-06
Iter: [000313] ; Step-Update-Norm: 6.92045497e-06
Iter: [000314] ; Step-Update-Norm: 7.21282741e-06
Iter: [000315] ; Step-Update-Norm: 5.24965997e-06
Iter: [000316] ; Step-Update-Norm: 3.30497175e-06
Iter: [000317] ; Step-Update-Norm: 3.48795933e-06
Iter: [000318] ; Step-Update-Norm: 5.25445554e-06
Iter: [000319] ; Step-Update-Norm: 4.34999067e-06
Iter: [000320] ; Step-Update-Norm: 5.36373881e-06
Iter: [000321] ; Step-Update-Norm: 3.49124811e-06
Iter: [000322] ; Step-Update-Norm: 2.06934284e-06
Iter: [000323] ; Step-Update-Norm: 2.66887270e-06
Iter: [000324] ; Step-Update-Norm: 1.61981412e-06
Iter: [000325] ; Step-Update-Norm: 1.51559975e-06
Iter: [000326] ; Step-Update-Norm: 1.79001879e-06
Iter: [000327] ; Step-Update-Norm: 1.79172864e-06
Iter: [000328] ; Step-Update-Norm: 1.06614038e-06
Iter: [000329] ; Step-Update-Norm: 9.48945242e-07
Iter: [000330] ; Step-Update-Norm: 9.96941177e-07
Iter: [000331] ; Step-Update-Norm: 7.78263299e-07
Iter: [000332] ; Step-Update-Norm: 8.37210345e-07
Iter: [000333] ; Step-Update-Norm: 1.63191856e-06
Iter: [000334] ; Step-Update-Norm: 5.96858797e-07
Iter: [000335] ; Step-Update-Norm: 6.54500010e-07
Iter: [000336] ; Step-Update-Norm: 6.38122205e-07
Iter: [000337] ; Step-Update-Norm: 3.87516200e-07
Iter: [000338] ; Step-Update-Norm: 4.56543772e-07
Iter: [000339] ; Step-Update-Norm: 5.21752254e-07
Iter: [000340] ; Step-Update-Norm: 4.30909338e-07
Iter: [000341] ; Step-Update-Norm: 2.60582865e-07
Iter: [000342] ; Step-Update-Norm: 2.41504660e-07
Iter: [000343] ; Step-Update-Norm: 1.98660198e-07
Iter: [000344] ; Step-Update-Norm: 3.14040298e-07
Iter: [000345] ; Step-Update-Norm: 1.55278922e-07
Iter: [000346] ; Step-Update-Norm: 1.51440925e-07
Iter: [000347] ; Step-Update-Norm: 1.87237359e-07
Iter: [000348] ; Step-Update-Norm: 1.33124833e-07
Iter: [000349] ; Step-Update-Norm: 1.25952275e-07
Iter: [000350] ; Step-Update-Norm: 1.27141187e-07
Iter: [000351] ; Step-Update-Norm: 9.64773047e-08
Iter: [000352] ; Step-Update-Norm: 6.74490042e-08
Iter: [000353] ; Step-Update-Norm: 8.80761352e-08
Iter: [000354] ; Step-Update-Norm: 1.03944014e-07
Iter: [000355] ; Step-Update-Norm: 6.22456660e-08
Iter: [000356] ; Step-Update-Norm: 5.34432938e-08
Iter: [000357] ; Step-Update-Norm: 3.98037925e-08
Iter: [000358] ; Step-Update-Norm: 3.49503080e-08
Iter: [000359] ; Step-Update-Norm: 7.39557852e-08
Iter: [000360] ; Step-Update-Norm: 2.97355627e-08
Iter: [000361] ; Step-Update-Norm: 3.54010495e-08
Iter: [000362] ; Step-Update-Norm: 2.90179799e-08
Iter: [000363] ; Step-Update-Norm: 4.44115196e-08
Iter: [000364] ; Step-Update-Norm: 2.77869668e-08
Iter: [000365] ; Step-Update-Norm: 2.42407002e-08
Iter: [000366] ; Step-Update-Norm: 2.02405963e-08
Iter: [000367] ; Step-Update-Norm: 1.64672334e-08
Iter: [000368] ; Step-Update-Norm: 1.67588808e-08
Iter: [000369] ; Step-Update-Norm: 3.00053434e-08
Iter: [000370] ; Step-Update-Norm: 1.18929803e-08
Iter: [000371] ; Step-Update-Norm: 8.96414125e-09
Iter: [000372] ; Step-Update-Norm: 1.50570763e-08
Iter: [000373] ; Step-Update-Norm: 1.06869988e-08
Iter: [000374] ; Step-Update-Norm: 9.67254841e-09
Iter: [000375] ; Step-Update-Norm: 1.23016521e-08
Iter: [000376] ; Step-Update-Norm: 7.01227946e-09
Iter: [000377] ; Step-Update-Norm: 9.42688912e-09
Iter: [000378] ; Step-Update-Norm: 1.43572795e-08
Iter: [000379] ; Step-Update-Norm: 8.75119644e-09
Iter: [000380] ; Step-Update-Norm: 4.80394235e-09
Iter: [000381] ; Step-Update-Norm: 4.26719039e-09
Iter: [000382] ; Step-Update-Norm: 3.93255085e-09
Iter: [000383] ; Step-Update-Norm: 3.06406796e-09
Iter: [000384] ; Step-Update-Norm: 3.79886519e-09
Iter: [000385] ; Step-Update-Norm: 4.02803126e-09
Iter: [000386] ; Step-Update-Norm: 3.29830086e-09
Iter: [000387] ; Step-Update-Norm: 2.21092299e-09
Iter: [000388] ; Step-Update-Norm: 1.92429542e-09
Iter: [000389] ; Step-Update-Norm: 2.11208176e-09
Iter: [000390] ; Step-Update-Norm: 2.01256030e-09
Iter: [000391] ; Step-Update-Norm: 1.38717406e-09
Iter: [000392] ; Step-Update-Norm: 1.15216648e-09
Iter: [000393] ; Step-Update-Norm: 1.66840956e-09
Iter: [000394] ; Step-Update-Norm: 1.18364246e-09
Iter: [000395] ; Step-Update-Norm: 9.97360229e-10
Iter: [000396] ; Step-Update-Norm: 1.29663860e-09
Iter: [000397] ; Step-Update-Norm: 7.06019314e-10
Iter: [000398] ; Step-Update-Norm: 6.30818261e-10
Iter: [000399] ; Step-Update-Norm: 9.52132281e-10
Iter: [000400] ; Step-Update-Norm: 5.35032831e-10
Iter: [000401] ; Step-Update-Norm: 5.51367852e-10
Iter: [000402] ; Step-Update-Norm: 4.44330461e-10
Iter: [000403] ; Step-Update-Norm: 4.93021936e-10
Iter: [000404] ; Step-Update-Norm: 3.21713070e-10
Iter: [000405] ; Step-Update-Norm: 3.18180008e-10
Iter: [000406] ; Step-Update-Norm: 2.64298050e-10
Iter: [000407] ; Step-Update-Norm: 2.43479950e-10
Iter: [000408] ; Step-Update-Norm: 2.62107229e-10
Iter: [000409] ; Step-Update-Norm: 2.42890643e-10
Iter: [000410] ; Step-Update-Norm: 2.25617836e-10
Iter: [000411] ; Step-Update-Norm: 2.69914058e-10
Iter: [000412] ; Step-Update-Norm: 2.25315903e-10
Iter: [000413] ; Step-Update-Norm: 1.62352780e-10
Iter: [000414] ; Step-Update-Norm: 1.28374431e-10
Iter: [000415] ; Step-Update-Norm: 8.52868271e-11
Iter: [000416] ; Step-Update-Norm: 1.48822861e-10
Iter: [000417] ; Step-Update-Norm: 1.50135455e-10
Iter: [000418] ; Step-Update-Norm: 1.53900640e-10
Iter: [000419] ; Step-Update-Norm: 7.55713047e-11
Iter: [000420] ; Step-Update-Norm: 8.21205900e-11
Iter: [000421] ; Step-Update-Norm: 7.20219858e-11
Iter: [000422] ; Step-Update-Norm: 4.24722974e-11
Iter: [000423] ; Step-Update-Norm: 5.91337968e-11
Iter: [000424] ; Step-Update-Norm: 3.64783614e-11
Iter: [000425] ; Step-Update-Norm: 3.84122526e-11
Iter: [000426] ; Step-Update-Norm: 3.08740347e-11
Iter: [000427] ; Step-Update-Norm: 3.36395545e-11
Iter: [000428] ; Step-Update-Norm: 3.06207171e-11
Iter: [000429] ; Step-Update-Norm: 3.30013690e-11
Iter: [000430] ; Step-Update-Norm: 2.71064409e-11
Iter: [000431] ; Step-Update-Norm: 2.19531995e-11
Iter: [000432] ; Step-Update-Norm: 2.92684735e-11
Iter: [000433] ; Step-Update-Norm: 1.66023739e-11
Iter: [000434] ; Step-Update-Norm: 1.59157243e-11
Iter: [000435] ; Step-Update-Norm: 2.01627502e-11
Iter: [000436] ; Step-Update-Norm: 1.15364042e-11
Iter: [000437] ; Step-Update-Norm: 1.23809604e-11
Iter: [000438] ; Step-Update-Norm: 9.76721467e-12
Iter: [000439] ; Step-Update-Norm: 7.79492816e-12
Iter: [000440] ; Step-Update-Norm: 8.06633954e-12
Iter: [000441] ; Step-Update-Norm: 7.91650479e-12
Iter: [000442] ; Step-Update-Norm: 6.77361809e-12
Iter: [000443] ; Step-Update-Norm: 6.48087812e-12
Iter: [000444] ; Step-Update-Norm: 5.48172553e-12
Iter: [000445] ; Step-Update-Norm: 4.63504345e-12
Iter: [000446] ; Step-Update-Norm: 4.14894105e-12
Iter: [000447] ; Step-Update-Norm: 3.35343085e-12
Iter: [000448] ; Step-Update-Norm: 5.18692293e-12
Iter: [000449] ; Step-Update-Norm: 2.71328282e-12
Iter: [000450] ; Step-Update-Norm: 3.12548947e-12
Iter: [000451] ; Step-Update-Norm: 7.44897817e-12
Iter: [000452] ; Step-Update-Norm: 3.54920762e-12
Iter: [000453] ; Step-Update-Norm: 1.99881267e-12
Iter: [000454] ; Step-Update-Norm: 1.73731281e-12
Iter: [000455] ; Step-Update-Norm: 1.54898649e-12
Iter: [000456] ; Step-Update-Norm: 1.58607268e-12
Iter: [000457] ; Step-Update-Norm: 1.41608322e-12
Iter: [000458] ; Step-Update-Norm: 1.35577358e-12
Iter: [000459] ; Step-Update-Norm: 1.33721755e-12
Iter: [000460] ; Step-Update-Norm: 1.00781316e-12
Iter: [000461] ; Step-Update-Norm: 8.34038398e-13
[4]:
# Use optimizer plotter for visualization
_ = optimizer.plot_results(maximization_results, bruteforce=True, overwrite=True, keep_plots=True, )
Plots saved...






Minimization problem#
You can either recreate the optimizer with configuration maximize
set to False
, or simply update this configuration as follows
[5]:
# Set the optimization objective to minimization
optimizer.update_configurations(maximize=False)
# Solve
minimization_results = optimizer.solve()
Iter: [000001] ; Step-Update-Norm: 1.08913933e-01
Iter: [000002] ; Step-Update-Norm: 1.05078084e-01
Iter: [000003] ; Step-Update-Norm: 1.27931595e-01
Iter: [000004] ; Step-Update-Norm: 1.14399859e-01
Iter: [000005] ; Step-Update-Norm: 1.28601572e-01
Iter: [000006] ; Step-Update-Norm: 1.14012620e-01
Iter: [000007] ; Step-Update-Norm: 1.30406720e-01
Iter: [000008] ; Step-Update-Norm: 1.28884242e-01
Iter: [000009] ; Step-Update-Norm: 1.47773135e-01
Iter: [000010] ; Step-Update-Norm: 1.26499661e-01
Iter: [000011] ; Step-Update-Norm: 4.18627213e-02
Iter: [000012] ; Step-Update-Norm: 1.10129434e-01
Iter: [000013] ; Step-Update-Norm: 7.97901592e-02
Iter: [000014] ; Step-Update-Norm: 1.53177993e-02
Iter: [000015] ; Step-Update-Norm: 1.00618323e-01
Iter: [000016] ; Step-Update-Norm: 4.33638945e-02
Iter: [000017] ; Step-Update-Norm: 9.33403699e-03
Iter: [000018] ; Step-Update-Norm: 2.27476548e-02
Iter: [000019] ; Step-Update-Norm: 2.28075324e-03
Iter: [000020] ; Step-Update-Norm: 1.02120302e-01
Iter: [000021] ; Step-Update-Norm: 1.05731686e-02
Iter: [000022] ; Step-Update-Norm: 8.72084195e-03
Iter: [000023] ; Step-Update-Norm: 1.68006948e-02
Iter: [000024] ; Step-Update-Norm: 2.77842837e-03
Iter: [000025] ; Step-Update-Norm: 7.59176221e-03
Iter: [000026] ; Step-Update-Norm: 2.20911346e-03
Iter: [000027] ; Step-Update-Norm: 6.68111376e-02
Iter: [000028] ; Step-Update-Norm: 3.83142275e-02
Iter: [000029] ; Step-Update-Norm: 1.16624083e-02
Iter: [000030] ; Step-Update-Norm: 9.74207186e-02
Iter: [000031] ; Step-Update-Norm: 1.72002563e-03
Iter: [000032] ; Step-Update-Norm: 5.39758819e-02
Iter: [000033] ; Step-Update-Norm: 1.18421192e-02
Iter: [000034] ; Step-Update-Norm: 2.55186509e-02
Iter: [000035] ; Step-Update-Norm: 1.06237976e-02
Iter: [000036] ; Step-Update-Norm: 1.16861774e-02
Iter: [000037] ; Step-Update-Norm: 8.71452049e-02
Iter: [000038] ; Step-Update-Norm: 4.09324859e-02
Iter: [000039] ; Step-Update-Norm: 4.70260694e-04
Iter: [000040] ; Step-Update-Norm: 0.00000000e+00
[6]:
# Use optimizer plotter for visualization
_ = optimizer.plot_results(minimization_results, bruteforce=True, overwrite=True, keep_plots=True, )
Plots saved...






[ ]: