Originally posted by: JoeBen
I don't understand why I get this error : invalid operands to binary expression ('double' and 'IloNumVarArray') ? in this line:
model.add(0.9*Pg[i]=Plac[i]+Pex[i]*0.8-0.9*Pwt[i]);
and Here is my code :
#include <stdio.h>
#include <string.h>
#include <ilcplex/ilocplex.h>
#include <ilcplex/ilocplexi.h>
#include <ilconcert/iloenv.h>
#include <ilcplex/cplex.h>
#include <iomanip>
#include <iostream>
#include <fstream>
#include <sstream>
#include <time.h>
#include <vector>
#include <assert.h>
int main(int argc, char** argv){
//déclaration des trois classes principales
IloEnv env; // environnement : permet d utiliser les fonctions de Concert Technology
IloModel model(env); // modèle : représente le programme linéaire
IloCplex cplex (model); // classe Cplex : permet d 'accéder aux fonctions d'optimisation
std::ifstream infile("/Users/nabil/Desktop/input.txt");
if(!infile.is_open())
{
//if file is not opened
std::cout<<"Error opening the file"<< std::endl;
}
if (infile.is_open())
{
std::string line;
std::getline(infile, line); // skip first line
std::vector<float> Ppv_max;
std::vector<float> Pwt_max;
std::vector<float> Pb_max;
std::vector<float> Plac_max;
std::vector<float> Pldc_max;
std::vector<float> Pg_max;
std::vector<float> Pex_max;
std::vector<int> Time;
//déclaration des trois classes principales
IloEnv env; // environnement : permet d utiliser les fonctions de Concert Technology
IloModel model(env); // modèle : représente le programme linéaire
IloCplex cplex (model); // classe Cplex : permet d 'accéder aux fonctions d'optimisation
// ----------------------- VARIABLES ----------------------- //déclaration de 2 variables
while (std::getline(infile, line))
{
float temp;
std::stringstream ss(line);
ss >> temp; // column A
Time.push_back(temp);
ss >> temp; // column A
Ppv_max.push_back(temp);
ss >> temp; // column B
Pwt_max.push_back(temp);
ss >> temp; // column C
Pb_max.push_back(temp);
ss >> temp; // column A
Time.push_back(temp);
ss >> temp; // column A
Plac_max.push_back(temp);
ss >> temp; // column B
Pldc_max.push_back(temp);
ss >> temp; // column C
Pg_max.push_back(temp);
ss >> temp; // column C
Pex_max.push_back(temp);
}
// your product vectors are now populated and you can
// do whatever you need with the column data here
IloArray<IloFloatVarArray> Ppv(env,(int)Time.size());
IloArray<IloFloatVarArray> Pwt(env,(int)Time.size());
IloArray<IloFloatVarArray> Pb(env,(int)Time.size());
IloArray<IloFloatVarArray> Plac(env,(int)Time.size());
IloArray<IloFloatVarArray> Pldc(env,(int)Time.size());
IloArray<IloFloatVarArray> Pg(env,(int)Time.size());
IloArray<IloFloatVarArray> Pex(env,(int)Time.size());
for(int i=0; i<(int)Time.size(); i++)
{
Ppv[i] = IloFloatVarArray(env,(int)Time.size(),0,Ppv_max[i]);
Pwt[i] = IloFloatVarArray(env,(int)Time.size(),0,Pwt_max[i]);
Pb[i] = IloFloatVarArray(env,(int)Time.size(),0,Pb_max[i]);
Plac[i] = IloFloatVarArray(env,(int)Time.size(),0,Plac_max[i]);
Pldc[i] = IloFloatVarArray(env,(int)Time.size(),0,Pldc_max[i]);
Pg[i] = IloFloatVarArray(env,(int)Time.size(),0,Pg_max[i]);
Pex[i] = IloFloatVarArray(env,(int)Time.size(),0,Pex_max[i]);
}
for (int i = 0; i < (int)Time.size(); i++)
{
IloNum Epsilon_G, epsilon_in, epsilon_WT;
model.add(0.9*Pg[i]=Plac[i]+Pex[i]*0.8-0.9*Pwt[i]);
model.add(Ppv[i]=Pwt[i]);
}
for (int i = 0; i < (int)Time.size(); i++)
{
std::cout << ":" << Ppv[i]<< std::endl;
}
env.end(); //libération de l'environnement
}
}
#CPLEXOptimizers#DecisionOptimization