簡體   English   中英

CPLEX:錯誤 5002 目標不是凸的 -> 問題可以用最優性目標 3 解決到全局最優性 ->

[英]CPLEX: Error 5002 Objective is not convex -> Problem can be solved to global optimality with optimality target 3 ->

我在 CPLEX Optimization Studio 上收到此錯誤。 該問題是一個簡單的二次問題,具有一個等式和兩個不等式約束。

.mod 代碼如下所示(未使用 .dat):

    /*********************************************
 * OPL 12.10.0.0 Model
 * Author: qdbra
 * Creation Date: Sep 14, 2020 at 9:40:57 PM
 *********************************************/

range R = 1..5;
range B= 6..10;

dvar float x[R];
dvar boolean y[B];

minimize
  ( x[1]^2 - 2*x[2]^2 + 3*x[3]^2 + 4*x[4]^2
  - 5*x[5]^2 + 6*y[6]^2 + 7*y[7]^2 - 
  8*y[8]^2 + 9*y[9]^2 + 10*y[10]^2 +
  8*x[1]*x[2] + 17*x[3]*y[8] - 20*y[6]*y[9]
  + 26*y[9]*y[10])/2 ;
  
subject to {
  ct1: 
  x[1] + x[2] + x[3] + x[5] + y[6] + y[7] == 20;
       
  ct2: 
  x[1] + x[4] + y[8] + y[9] + y[10] >= 1;
       
  ct3: 
  x[2] - x[4] - y[6] + y[7] >= 0;
}

如果您將最優性目標設置為 3,您將得到一個結果:

execute
{
  cplex.optimalitytarget=3;
}

range R = 1..5;
range B= 6..10;

dvar float x[R];
dvar boolean y[B];

minimize
  ( x[1]^2 - 2*x[2]^2 + 3*x[3]^2 + 4*x[4]^2
  - 5*x[5]^2 + 6*y[6]^2 + 7*y[7]^2 - 
  8*y[8]^2 + 9*y[9]^2 + 10*y[10]^2 +
  8*x[1]*x[2] + 17*x[3]*y[8] - 20*y[6]*y[9]
  + 26*y[9]*y[10])/2 ;
  
subject to {
  ct1: 
  x[1] + x[2] + x[3] + x[5] + y[6] + y[7] == 20;
       
  ct2: 
  x[1] + x[4] + y[8] + y[9] + y[10] >= 1;
       
  ct3: 
  x[2] - x[4] - y[6] + y[7] >= 0;
}

會給

x = [20
         0 0 0 0];
y = [0 0 0 0 0];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM