3232#from multioptpy.Optimizer.ric_rfo import RedundantInternalRFO
3333from multioptpy .Optimizer .rsprfo import EnhancedRSPRFO
3434from multioptpy .Optimizer .rsirfo import RSIRFO
35+ from multioptpy .Optimizer .mf_rsirfo import MF_RSIRFO
3536#from multioptpy.Optimizer.newton import Newton
3637from multioptpy .Optimizer .lbfgs import LBFGS
3738from multioptpy .Optimizer .tr_lbfgs import TRLBFGS
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 },
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