Closed TakatoKinoshita closed 1 year ago
f28f6434c6399378692ecd4658f4ef6f6eb660ea での実行結果
{"timeout": 20000,"weights": [0.26987797048323037,0.5,0.5,0.7301220295167696],"schedule": [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]}
{"objective": [-72000.0, 1.7976931348623157e+308, 1.7976931348623157e+308, 1.7976931348623157e+308], "constraint": null, "error": null, "info": {"exe_time": 0.6100991290004458}}
f1がsys.float_info.max
ではなさそうなのが気になる.
予想される影響
56086bfa9dc8964eb81dccce8171173e6e8c57f7 での実行結果
{"timeout": 20000,"weights": [0.26987797048323037,0.5,0.5,0.7301220295167696],"schedule": [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]}
{"objective": null, "constraint": null, "error": null, "info": {"exe_time": 0.5444604110089131}}
この結果を使った,indicatorでの実行結果
{"objective": null, "constraint": null, "error": null, "info": {"exe_time": 0.5444604110089131}}
[{"objective": [0, 0.5, 1], "info": {"exe_time": 20}, "score": 0.06600000000000007}, {"objective": [0.5, 1, 0], "info": {"exe_time": 20}, "score": 0.12600000000000014}, {"objective": [1, 0.5, 0], "info": {"exe_time": 20}, "score": 0.17600000000000016}]
WARNING:__main__:Current solution is not feasible.
{"score": 0.17600000000000016}
上手くいってそうなので,とりあえずこれでPR
課題
"objective": [-72000.0, 0.0, 0.0, 0.0]
のような最強すぎる評価値が返ってくるmargin
,xi
,psiP
,zP
を0
で初期化していたため,infeasibleだと計算されず0
のまま~今の方針~
margin
,xi
,psiP
,zP
の初期化部分をsys.float_info.max
に変更~sys.float_info.max
となり,実質的な実行不可能性を表現margin
の計算箇所をif os.path.isfile(sol_file):
の中に入れる?~~今の方針~
sys.float_info.max
にリセットして返すのが良さそう?~今の方針
objective
をnull
にしてearly returnnull
の場合HVを計算しないので,とりあえずこれでOK他の選択肢
sys.float_info.max
の代わりにnull
を使う?null
の方がより中立的?sys.float_info.max
はPythonや一部の処理系贔屓?objective
の値は評価回数や計算時間の消費に関係がないっぽいnull
があれば全部null
みたいに処理する?error
に非null
な値を入れるとevaluation_error
として処理されてしまう参考