Влияние стоимости штрафа в задачах оптимизации - PullRequest
0 голосов
/ 29 октября 2018

У меня проблема с оптимизацией, когда я пытаюсь минимизировать стоимость проекта, которая обычно оценивается в 100–5 млрд долларов. Я использую доступную часть COBYLA пакета Scipy в Python 2.7.

      newsol = minimize(ObjectiveFunction,X0,bounds=Bounds,constraints = Constraints,method='COBYLA') 

Я сформулировал 5 уравнений несвязанности в рамках COBYLA. Если они нарушаются, я добавляю штраф в размере 1 триллиона долларов к стоимости проекта.

# check constraints - for each constraint violated add a large penalty #### 
  for constraint in Constraints:
    constraintValue = constraint["fun"](newsol.x) 
    numViolations = np.sum(constraintValue < 0 )

    if(numViolations):  
       penaltyCost = 1e12
       penaltyMult = 1.0
       if("penaltyMultiplier" in constraint):
         penaltyMult = constraint["penaltyMultiplier"](newsol.x) 
OptimizedProjectCost += penaltyMult*numViolations*penaltyCost

Мой вопрос: является ли это значение штрафа вне допустимого диапазона с учетом порядка предоставленных затрат по проекту. Есть ли влияние этого значения на оптимизацию конвергенции?

...