我有一個直截了當(我希望)的問題,我一直在努力整天。我試圖用音樂會技術在C++中命名2D決策變量。我的模型是一個真正的人生分配問題 - 所以我需要將我的變量與實際的資源和任務名稱進行索引,以便爲決策者提供解決方案。 OPL使用元組很容易。但是,我對音樂會技術感到困惑。我有2個決策變量(a)一個二維變量布爾變量,用於指示哪個資源已分配給哪個任務,以及(b)一維布爾指示符變量,用於指示是否在分配解決方案中選擇了特定資源。 命名1D變量已經很簡單。我有以下地圖,其中包含資源名稱和經驗級別。我用這個Map來迭代變量並將其命名如下:名稱二維變量CPLEX Concert技術C++
map<string, string> Map; // The first string holds the name and the second string the experience level
IloNumVarArray Y(env); // My 1D variable
map<string, string>::iterator Name; // Iterator for the Map
for (Name = Map.begin(); Name != Map.end(); Name++)
{
string getName = Name->first;
char convertedName[100];
strcpy_s(convertedName, getName.c_str());
Y.add(IloNumVar(env, 0, 1, ILOINT, convertedName));
}
那麼我該如何爲2D變量做如下操作。它的形式是Xij,其中i是資源名稱,j是任務名稱。我已經聲明的變量如下:
IloArray<IloNumVarArray> X;
我還有一個地圖這表明我&Ĵ之間的配合。它是:
Map<string, map<string, float>> fitMap; //first string is the resource name, second string is the` task name and the float is the fit value.
任何想法將不勝感激!