Skip to content

Commit 10662f9

Browse files
authored
Add files via upload
1 parent 905d432 commit 10662f9

1 file changed

Lines changed: 126 additions & 4 deletions

File tree

multioptpy/optimizer.py

Lines changed: 126 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
#from multioptpy.Optimizer.ric_rfo import RedundantInternalRFO
3333
from multioptpy.Optimizer.rsprfo import EnhancedRSPRFO
3434
from multioptpy.Optimizer.rsirfo import RSIRFO
35+
from multioptpy.Optimizer.mf_rsirfo import MF_RSIRFO
3536
#from multioptpy.Optimizer.newton import Newton
3637
from multioptpy.Optimizer.lbfgs import LBFGS
3738
from multioptpy.Optimizer.tr_lbfgs import TRLBFGS
@@ -81,7 +82,113 @@
8182
"adamlookaheadlars": {"optimizer": Adam, "lookahead": LookAhead(), "lars": LARS()},
8283
}
8384

84-
quasi_newton_mapping = {
85+
quasi_newton_mapping = {
86+
"mwsmf_rsirfo_bfgs_dd": {"delta": 0.50, "rfo_type": 1},
87+
"mwsmf_rsirfo_bfgs": {"delta": 0.50, "rfo_type": 1},
88+
"mwsmf_rsirfo_block_bfgs_dd": {"delta": 0.50, "rfo_type": 1},
89+
"mwsmf_rsirfo_block_bfgs": {"delta": 0.50, "rfo_type": 1},
90+
"mwsmf_rsirfo_fsb_dd": {"delta": 0.50, "rfo_type": 1},
91+
"mwsmf_rsirfo_fsb": {"delta": 0.50, "rfo_type": 1},
92+
"mwsmf_rsirfo_block_fsb_dd": {"delta": 0.50, "rfo_type": 1},
93+
"mwsmf_rsirfo_block_fsb_weighted": {"delta": 0.50, "rfo_type": 1},
94+
"mwsmf_rsirfo_block_fsb": {"delta": 0.50, "rfo_type": 1},
95+
"mwsmf_rsirfo_block_cfd_fsb_dd": {"delta": 0.50, "rfo_type": 1},
96+
"mwsmf_rsirfo_block_cfd_fsb_weighted": {"delta": 0.50, "rfo_type": 1},
97+
"mwsmf_rsirfo_block_cfd_fsb": {"delta": 0.50, "rfo_type": 1},
98+
"mwsmf_rsirfo_cfd_fsb_dd": {"delta": 0.50, "rfo_type": 1},
99+
"mwsmf_rsirfo_cfd_fsb": {"delta": 0.50, "rfo_type": 1},
100+
"mwsmf_rsirfo_bofill": {"delta": 0.50, "rfo_type": 1},
101+
"mwsmf_rsirfo_block_bofill_weighted": {"delta": 0.50, "rfo_type": 1},
102+
"mwsmf_rsirfo_block_bofill": {"delta": 0.50, "rfo_type": 1},
103+
"mwsmf_rsirfo_block_cfd_bofill_weighted": {"delta": 0.50, "rfo_type": 1},
104+
"mwsmf_rsirfo_block_cfd_bofill": {"delta": 0.50, "rfo_type": 1},
105+
"mwsmf_rsirfo_cfd_bofill": {"delta": 0.50, "rfo_type": 1},
106+
"mwsmf_rsirfo_pcfd_bofill": {"delta": 0.50, "rfo_type": 1},
107+
"mwsmf_rsirfo_msp": {"delta": 0.50, "rfo_type": 1},
108+
"mwsmf_rsirfo_sr1": {"delta": 0.50, "rfo_type": 1},
109+
"mwsmf_rsirfo_psb": {"delta": 0.50, "rfo_type": 1},
110+
"mwsmf_rsirfo_flowchart": {"delta": 0.50, "rfo_type": 1},
111+
112+
113+
"mwmf_rsirfo_bfgs_dd": {"delta": 0.50, "rfo_type": 1},
114+
"mwmf_rsirfo_bfgs": {"delta": 0.50, "rfo_type": 1},
115+
"mwmf_rsirfo_block_bfgs_dd": {"delta": 0.50, "rfo_type": 1},
116+
"mwmf_rsirfo_block_bfgs": {"delta": 0.50, "rfo_type": 1},
117+
"mwmf_rsirfo_fsb_dd": {"delta": 0.50, "rfo_type": 1},
118+
"mwmf_rsirfo_fsb": {"delta": 0.50, "rfo_type": 1},
119+
"mwmf_rsirfo_block_fsb_dd": {"delta": 0.50, "rfo_type": 1},
120+
"mwmf_rsirfo_block_fsb_weighted": {"delta": 0.50, "rfo_type": 1},
121+
"mwmf_rsirfo_block_fsb": {"delta": 0.50, "rfo_type": 1},
122+
"mwmf_rsirfo_block_cfd_fsb_dd": {"delta": 0.50, "rfo_type": 1},
123+
"mwmf_rsirfo_block_cfd_fsb_weighted": {"delta": 0.50, "rfo_type": 1},
124+
"mwmf_rsirfo_block_cfd_fsb": {"delta": 0.50, "rfo_type": 1},
125+
"mwmf_rsirfo_cfd_fsb_dd": {"delta": 0.50, "rfo_type": 1},
126+
"mwmf_rsirfo_cfd_fsb": {"delta": 0.50, "rfo_type": 1},
127+
"mwmf_rsirfo_bofill": {"delta": 0.50, "rfo_type": 1},
128+
"mwmf_rsirfo_block_bofill_weighted": {"delta": 0.50, "rfo_type": 1},
129+
"mwmf_rsirfo_block_bofill": {"delta": 0.50, "rfo_type": 1},
130+
"mwmf_rsirfo_block_cfd_bofill_weighted": {"delta": 0.50, "rfo_type": 1},
131+
"mwmf_rsirfo_block_cfd_bofill": {"delta": 0.50, "rfo_type": 1},
132+
"mwmf_rsirfo_cfd_bofill": {"delta": 0.50, "rfo_type": 1},
133+
"mwmf_rsirfo_pcfd_bofill": {"delta": 0.50, "rfo_type": 1},
134+
"mwmf_rsirfo_msp": {"delta": 0.50, "rfo_type": 1},
135+
"mwmf_rsirfo_sr1": {"delta": 0.50, "rfo_type": 1},
136+
"mwmf_rsirfo_psb": {"delta": 0.50, "rfo_type": 1},
137+
"mwmf_rsirfo_flowchart": {"delta": 0.50, "rfo_type": 1},
138+
139+
"smf_rsirfo_bfgs_dd": {"delta": 0.50, "rfo_type": 1},
140+
"smf_rsirfo_bfgs": {"delta": 0.50, "rfo_type": 1},
141+
"smf_rsirfo_block_bfgs_dd": {"delta": 0.50, "rfo_type": 1},
142+
"smf_rsirfo_block_bfgs": {"delta": 0.50, "rfo_type": 1},
143+
"smf_rsirfo_fsb_dd": {"delta": 0.50, "rfo_type": 1},
144+
"smf_rsirfo_fsb": {"delta": 0.50, "rfo_type": 1},
145+
"smf_rsirfo_block_fsb_dd": {"delta": 0.50, "rfo_type": 1},
146+
"smf_rsirfo_block_fsb_weighted": {"delta": 0.50, "rfo_type": 1},
147+
"smf_rsirfo_block_fsb": {"delta": 0.50, "rfo_type": 1},
148+
"smf_rsirfo_block_cfd_fsb_dd": {"delta": 0.50, "rfo_type": 1},
149+
"smf_rsirfo_block_cfd_fsb_weighted": {"delta": 0.50, "rfo_type": 1},
150+
"smf_rsirfo_block_cfd_fsb": {"delta": 0.50, "rfo_type": 1},
151+
"smf_rsirfo_cfd_fsb_dd": {"delta": 0.50, "rfo_type": 1},
152+
"smf_rsirfo_cfd_fsb": {"delta": 0.50, "rfo_type": 1},
153+
"smf_rsirfo_bofill": {"delta": 0.50, "rfo_type": 1},
154+
"smf_rsirfo_block_bofill_weighted": {"delta": 0.50, "rfo_type": 1},
155+
"smf_rsirfo_block_bofill": {"delta": 0.50, "rfo_type": 1},
156+
"smf_rsirfo_block_cfd_bofill_weighted": {"delta": 0.50, "rfo_type": 1},
157+
"smf_rsirfo_block_cfd_bofill": {"delta": 0.50, "rfo_type": 1},
158+
"smf_rsirfo_cfd_bofill": {"delta": 0.50, "rfo_type": 1},
159+
"smf_rsirfo_pcfd_bofill": {"delta": 0.50, "rfo_type": 1},
160+
"smf_rsirfo_msp": {"delta": 0.50, "rfo_type": 1},
161+
"smf_rsirfo_sr1": {"delta": 0.50, "rfo_type": 1},
162+
"smf_rsirfo_psb": {"delta": 0.50, "rfo_type": 1},
163+
"smf_rsirfo_flowchart": {"delta": 0.50, "rfo_type": 1},
164+
165+
166+
"mf_rsirfo_bfgs_dd": {"delta": 0.50, "rfo_type": 1},
167+
"mf_rsirfo_bfgs": {"delta": 0.50, "rfo_type": 1},
168+
"mf_rsirfo_block_bfgs_dd": {"delta": 0.50, "rfo_type": 1},
169+
"mf_rsirfo_block_bfgs": {"delta": 0.50, "rfo_type": 1},
170+
"mf_rsirfo_fsb_dd": {"delta": 0.50, "rfo_type": 1},
171+
"mf_rsirfo_fsb": {"delta": 0.50, "rfo_type": 1},
172+
"mf_rsirfo_block_fsb_dd": {"delta": 0.50, "rfo_type": 1},
173+
"mf_rsirfo_block_fsb_weighted": {"delta": 0.50, "rfo_type": 1},
174+
"mf_rsirfo_block_fsb": {"delta": 0.50, "rfo_type": 1},
175+
"mf_rsirfo_block_cfd_fsb_dd": {"delta": 0.50, "rfo_type": 1},
176+
"mf_rsirfo_block_cfd_fsb_weighted": {"delta": 0.50, "rfo_type": 1},
177+
"mf_rsirfo_block_cfd_fsb": {"delta": 0.50, "rfo_type": 1},
178+
"mf_rsirfo_cfd_fsb_dd": {"delta": 0.50, "rfo_type": 1},
179+
"mf_rsirfo_cfd_fsb": {"delta": 0.50, "rfo_type": 1},
180+
"mf_rsirfo_bofill": {"delta": 0.50, "rfo_type": 1},
181+
"mf_rsirfo_block_bofill_weighted": {"delta": 0.50, "rfo_type": 1},
182+
"mf_rsirfo_block_bofill": {"delta": 0.50, "rfo_type": 1},
183+
"mf_rsirfo_block_cfd_bofill_weighted": {"delta": 0.50, "rfo_type": 1},
184+
"mf_rsirfo_block_cfd_bofill": {"delta": 0.50, "rfo_type": 1},
185+
"mf_rsirfo_cfd_bofill": {"delta": 0.50, "rfo_type": 1},
186+
"mf_rsirfo_pcfd_bofill": {"delta": 0.50, "rfo_type": 1},
187+
"mf_rsirfo_msp": {"delta": 0.50, "rfo_type": 1},
188+
"mf_rsirfo_sr1": {"delta": 0.50, "rfo_type": 1},
189+
"mf_rsirfo_psb": {"delta": 0.50, "rfo_type": 1},
190+
"mf_rsirfo_flowchart": {"delta": 0.50, "rfo_type": 1},
191+
85192
"rsirfo_bfgs_dd": {"delta": 0.50, "rfo_type": 1},
86193
"rsirfo_bfgs": {"delta": 0.50, "rfo_type": 1},
87194
"rsirfo_block_bfgs_dd": {"delta": 0.50, "rfo_type": 1},
@@ -107,7 +214,9 @@
107214
"rsirfo_sr1": {"delta": 0.50, "rfo_type": 1},
108215
"rsirfo_psb": {"delta": 0.50, "rfo_type": 1},
109216
"rsirfo_flowchart": {"delta": 0.50, "rfo_type": 1},
110-
217+
218+
219+
111220
"rsprfo_bfgs_dd": {"delta": 0.50, "rfo_type": 1},
112221
"rsprfo_bfgs": {"delta": 0.50, "rfo_type": 1},
113222
"rsprfo_block_bfgs_dd": {"delta": 0.50, "rfo_type": 1},
@@ -158,6 +267,7 @@ def __init__(self, DELTA, element_list, saddle_order=0, FC_COUNT=-1, temperatur
158267
exit()
159268

160269
self.CALC_TRUST_RADII.set_max_trust_radius(self.max_trust_radius)
270+
161271
if self.max_trust_radius is None:
162272
if saddle_order > 0:
163273
self.max_trust_radius = 0.1
@@ -176,8 +286,7 @@ def __init__(self, DELTA, element_list, saddle_order=0, FC_COUNT=-1, temperatur
176286
print("min_trust_radius must be greater than 0.0")
177287
exit()
178288
if self.trust_radii < self.min_trust_radius:
179-
print("min_trust_radius must be smaller than max_trust_radius")
180-
exit()
289+
self.trust_radius = self.min_trust_radius
181290

182291
self.CALC_TRUST_RADII.set_min_trust_radius(self.min_trust_radius)
183292

@@ -315,6 +424,19 @@ def _append_enhancements(lower_m, is_newton_method, specific_lookahead=None, spe
315424
print(key)
316425
if "rsprfo" in key:
317426
optimizer = EnhancedRSPRFO(method=m, saddle_order=self.saddle_order, element_list=self.element_list, trust_radius_max=self.max_trust_radius, trust_radius_min=self.min_trust_radius)
427+
428+
elif "mwsmf_rsirfo" in key:
429+
optimizer = MF_RSIRFO(method=m, saddle_order=self.saddle_order, element_list=self.element_list, trust_radius_max=self.max_trust_radius, trust_radius_min=self.min_trust_radius, adaptive_mode_following=False)
430+
431+
elif "mwmf_rsirfo" in key:
432+
optimizer = MF_RSIRFO(method=m, saddle_order=self.saddle_order, element_list=self.element_list, trust_radius_max=self.max_trust_radius, trust_radius_min=self.min_trust_radius)
433+
434+
elif "smf_rsirfo" in key:
435+
optimizer = MF_RSIRFO(method=m, saddle_order=self.saddle_order, trust_radius_max=self.max_trust_radius, trust_radius_min=self.min_trust_radius, adaptive_mode_following=False)
436+
437+
elif "mf_rsirfo" in key:
438+
optimizer = MF_RSIRFO(method=m, saddle_order=self.saddle_order, trust_radius_max=self.max_trust_radius, trust_radius_min=self.min_trust_radius)
439+
318440
elif "rsirfo" in key:
319441
optimizer = RSIRFO(method=m, saddle_order=self.saddle_order, element_list=self.element_list, trust_radius_max=self.max_trust_radius, trust_radius_min=self.min_trust_radius)
320442
else:

0 commit comments

Comments
 (0)