我如何在C#中使用熱啟動


0

我一直在用C#編寫MIP。我想縮小差距,所以我正在嘗試熱身。我在solve()之前使用此代碼。

try
    {
        startvar = new IIntVar[numberOfAllNode * numberOfAllNode];
        startval = new double[numberOfAllNode * numberOfAllNode];

        for (int j = 1, idx = 0; j <= numberOfAllNode; j++)
            for (int i = 1; i <= numberOfAllNode; i++)
            {
                startvar[idx] = x[j][i];
                startval[idx] = x_value[j,i];
                idx++;
            }

        startvar = null;
        startval = null;
        Cplex.AddMIPStart(startvar[], startval[], Cplex.MIPStartEffort.SolveMIP);
    }

最後一行出現一些語法錯誤。不幸的是,我不知道我應該在startvar[]中寫什麼變量。如果有人可以幫助我,我將不勝感激。

2

This looks like a plain C# programming error.

  1. Don't set startvar and startval to null before calling AddMIPStart.
  2. Remove square brackets from startvar and startval in the cal to AddMIPStart.