Is there any difference between large scale optimization problems and complex optimization problems? I will be very appreciated if you explain the differences very briefly.
Large scale is related to the dimension of the problems (the number of decision variables), while complexity is related to the difficulty of the problem (non-linearity, large number of modes or local minima). Therefore it is very easy to solve a large scale linear optimization problem, but it can be very difficult to solve a complex optimization problem (to find its global minimum), even with a small dimension.
I would also add that "large-scale" is very much a dependent term - whether a problem is "large-scale" depends on whether a problem depends on the state-of-the-art of methodologies as well as the richness of theory of the problem type. As was mentioned earlier, linear programming is easy - whatever data you use, and almost whatever size your problem has, it can be solved. But even for linear programming you can imagine applying a heuristic that might fail to even reach an optimal solution, just like metaheuristics typically fail to find optimal solutions to large-scale combinatorial problems.
In my opinion, large scale problems may be or may not be complex. The complexity mainly depends on how many constraints (mostly nonlinear) and how we are handling those constraints to get the global optimum solutions.
Complexity, as usually is understood, is related to how long does it take to solve the problem, as a function of its size (number of variables, number of nodes or arcs of a network,...). In turn, the time is related to the number of basic operations needed to solve it, again as a function of the number of variables.
"easy" problems are solved in a time that is proportional to a polinomy of the number of variables, for example k*n^4, where k is a constant, n is the number of nodes of a network. "Difficult" problems are not possible to solve in a time that is proportional to a polinomy in the numbner of variables (e.g., exponential, 2^n, or n!) . Naturally, as the problem size increases, the time increases accordingly. If the problem is polynomial, a large scale instance could be solved in a reasonable time. If it is not, a large scale problem will be intractable.
See http://udel.edu/~heinz/classes/2014/4-667/materials/readings/Garey%20and%20Johnson/Chapter%20One.pdf
If we face an optimization problem that is complex and, in addition, large-scale, we are actually unlucky and having big trouble. Usually, there must be much complications when we formulated the problem from the very beginning .
Dear all, Thanks for considering my question. Your responses were very helpful for me. I conclude that a large-scale problem can be a complex problem or not and solving such problems will be very difficult as Dr. Karam Maalawi pointed out. Now this question arises that which techniques can be useful and efficient for solving such problems?
Dear all.... As a fundamental phase in solving an optimization problem is the appropriate formulation, including the choice of the most significant design variables, active design constraints and the real objective functions that actually reflects the needed design goal. Unwise formulation would waste your time and money. So, please be true and logical with yourself..Non-relevant variables can be given some reasonable fixed values depending on the problem physics and environment. Pay much attention in the selection of the constraints. In many situations you can take wrong decision and consider contradicted constraints, which is truly very harmful to find a solution. Please make your best effort to simplify your problem without loosing some main features you know. I would elect Sequential Quadratic Programming "SQD", which is well documented in MatLab Optimization Tool Box routines......
If you can't explain it simply, you don't understand it well enough. Albert Einstein
It is perhaps possible to optimize large and complex problems from the mathematical point of view, and I agree with what our colleagues say about it, and this is an interesting academic question.
However, I believe that is also important to take into account the complexity encountered in practical applications of algorithms in MCDM, and I also know that not many practitioners are interested in optimal solutions, there are more concerned with solutions that satisfy them.
Consequently, I define complex problems those including real facts of life for instance:
1. In a large scenario for maximizing the use of water from a river, where different projects can take place such as agriculture, hydroelectricity, factories, navigation, etc., users down stream complain about contamination from different sources upstream, therefore, a MCDM scenario should consider that circumstance.
2. In a portfolio of projects there may be projects on different stages of execution, that is, some of them already started, others in the last stages, and many waiting to be started. There are restrictions related to annual maximum budget, which cannot be surpassed, as well as different annual percentages of complexion. These aspects have to be considered.
3. Scenarios where there is not enough funding or other resources for all projects, that is, there is restrictions of resources, and then the MCDM must find theses undertakings that maximize the use of available resources.
4. In many projects there are precedence amongst projects or alternatives, in the sense that project C cannot be executed if project D is not chosen, or may be that project A must precede project N.
5. In many international tenders there could be room for temporary joint ventures. A MCDM model must consider that.
6. There are practically in all scenarios relationships between criteria expressed perhaps by correlation coefficients. This is certainly a complication, but it is real, and then MCDM models must be able to tackle this situation.
7. Scenarios where alternatives are a mix of different projects such as to rehabilitate a structure (such as a bridge for instance) or demolish and build a new one, considering different aspects as remaining life of structure, load it can support, etc.
First of all, one should be sure that the formulation of the optimization problem under study is adequate and correct, i.e the selected design variables, constraints and objective functions are correct. Usually unwise selection would certainly lead to complicated unsolvable problem. I am sure that real and logical problems, whatever large-scale or complex nonlinear should be solved in a reasonable computer time.
There are theoretical problems like benchmark functions where you can set the dimensionality from hundreds, thousands to analyze the performance of algorithms, usually the are no constraited.
This is sort of a tricky question to answer since most large-scale problems are classified as complex problems in literature and the two terms are often used interchangeably. However, if I had to provide attributes that distinguish the two, I would say that large-scale problems refer to optimization tasks that have a large number of design variables involved (high dimensionality), and complex problems entail objective functions that are heavily constrained (multiple inequality constraints). It is a well-established fact that constrained problems are much more difficult to solve than unconstrained ones. It's only natural to assume that as the number of constraints involved in a problem increase, so does its complexity. That of course is in addition to the nature of the search space itself (problem type) like whether it is multimodal and so on.
In my opinion, we can't talk in general about optimization problems because, in practice,e optimality, in general, is impossible. Just in a simple problem, try to optimize benefits and costs at the same time; it is impossible, it must be either, one or the other, or to find an equilibrium, a compromise, where b both concepts agree, which is what all MCDM methods do.
A complex problem is difficult to model and even if we can model, difficult to solve. The difficulty normally originates from the characteristics of the problem. If a problem has hundreds of alternatives and criteria, there is precedence between alternatives, where an alternative can be in several different scenarios, and where all projects do not start at the same time, there you have a complex problem