Я пытаюсь свести к минимуму (глобально) 3 функции, которые используют общие переменные, я попытался объединить их в одну функцию и свести к минимуму, используя L-BFGS-B
(мне нужно установить границы для переменных), но показало, что очень сложно сбалансировать каждый параметр с весовыми коэффициентами, т. е. когда один сведен к минимуму, другой не будет. Я также попытался использовать метод SLSQP
, чтобы свести к минимуму один из них при установке других в качестве ограничений, но ограничения часто игнорируются/не выполняются. Вот что нужно свести к минимуму, все математические данные выполняются в meritscalculation
и meritoflength
, meritofROC
, meritofproximity
, heightorderreturned
возвращаются из вычислений как глобальные.python оптимизирует несколько функций с общими переменными
def lengthmerit(x0):
meritscalculation(x0)
print meritoflength
return meritoflength
def ROCmerit(x0):
meritscalculation(x0)
print meritofROC
return meritofROC
def proximitymerit(x0):
meritscalculation(x0)
print meritofproximity+heightorder
return meritofproximity+heightorder
я хочу, чтобы свести к минимуму все из них с помощью общего х0 (с границами) в качестве независимой переменной, есть ли способ для достижения этой цели?
да это то, что я хотел сделать, так это в основном в том числе взвешиваний в процесс оптимизации и позволить компьютеру, чтобы сбалансировать его, не так ли?А также есть большая разница между каждой функцией 'merit()' (порядок 1000 примерно), как это влияет на границы для a, b, c? будет ли оно еще «[0,1, inf]» или что-то еще? В любом случае, я тестирую этот метод сейчас, большое вам спасибо за ваши усилия, вы были наиболее полезны – dilyar