Speak now
Please Wait Image Converting Into Text...
Embark on a journey of knowledge! Take the quiz and earn valuable credits.
Challenge yourself and boost your learning! Start the quiz now to earn credits.
Unlock your potential! Begin the quiz, answer questions, and accumulate credits along the way.
General Tech Technology & Software 2 years ago
Posted on 16 Aug 2022, this text provides information on Technology & Software related to General Tech. Please note that while accuracy is prioritized, the data presented might not be entirely correct or up-to-date. This information is offered for general knowledge and informational purposes only, and should not be considered as a substitute for professional advice.
Turn Your Knowledge into Earnings.
I have a straightforward (I hope) issue that I have been grappling with all day. I am trying to name a 2D decision variable in C++ using concert technology. My model is a real life assignment problem - so I need to index my variables with the actual resource and task names in order to provide the solution to the decision makers. This is easy with OPL using tuples. However, I am confused with concert technology. I have 2 decision variables (a) a 2D variable boolean variable that indicates which resource has been assigned to which task, and (b) a 1D boolean indicator variable that indicates if a particular resource has been selected in the assignment solution. It has been straightforward to name the 1D variable. I have the following Map which holds the name of the resources and their experience levels. I use this Map to iterate the variable and name it as follows:
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)); }
So how do I do the following for the 2D variable. It is of the form Xij where i is the Resource Name and j is the Task Name. I have declared the variable as follows:
IloArray<IloNumVarArray> X;
I have another Map which indicates the fit between i & j. It is:
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.
Any ideas will be very appreciated!
I have often found it easiest to just do the naming in a separate loop over all the variables in an array, so something like (apologies for the approximate syntax):
for (i=0; i<M; i++) for (j=0; j<N; j++) X[i][j].setName(resourceName[i] + "_" + taskName[j]);
Obviously the setName() calls could be folded into the loop(s) where you actually create the variables if that is more convenient
But I never use the naming of the variables to convey useful information other than for my own debugging etc. I would usually walk over the variables in my code and use the values from CPLEX to decide what to draw in a user interface, create reports etc. based on the solution
No matter what stage you're at in your education or career, TuteeHub will help you reach the next level that you're aiming for. Simply,Choose a subject/topic and get started in self-paced practice sessions to improve your knowledge and scores.
General Tech 10 Answers
General Tech 7 Answers
General Tech 3 Answers
General Tech 9 Answers
General Tech 2 Answers
Ready to take your education and career to the next level? Register today and join our growing community of learners and professionals.