Learn about trends in digital transformation and how they affect the engineering and construction industry.
During the process of a feasibility study, project developers face some of these limitations:
As was mentioned, project developers (from now on “project developers” and “the user” will be used interchangeably) are limited by constraints and uncertainty ranges to determine the feasibility of and/or best outcome for the project. The calculations required to determine the outcome for a single set of inputs are usually simple in terms of complexity, and therefore do not require a lot of computational power. Project developers usually also only want to have one optimal outcome, or cost function, which is to obtain the highest earnings for a project. These two characteristics (low computational complexity and a single cost function) make it especially advantageous to construct an optimization. In relatively little time, the user could therefore calculate thousands to millions sets of inputs to get an optimal result.
It is therefore up to the user to determine all the inputs needed for a project*, after which should be determined which, with what interval**, and to what extent the input should vary, and what the constraints are. Any optimization has its limitations, and therefore, no matter how simplistic a calculation is, the number of sets of inputs do influence the time of the optimization immensely.
For example, let’s say a project consists of low, medium and high income segments. If the number of units would be used as variable, with every segment’s units ranging from 50 to 100, together with a 1-unit interval (assuming that constraints have been added to the equation), the number of input sets equate to 132,651 (51³)***. By increasing the interval or the number of variables will affect the number of input sets dramatically. It is therefore important for the user to critically assess the variables, and to determine to what extent they affect the outcome.
There are ways to customize the optimization to obtain an optimal value in the shortest period of time. Here is a list of changes one can bring to the optimization:
VIKTOR could play a major role in relieving pressure for the project developer. The VIKTOR platform uses a Python framework, which makes it possible for the user to define all calculations and logic using Python. The variable input can also be defined with a structure with any defaults and exceptions included, making it easier for the user to add input. The user could then use VIKTOR as a tool during discussions or meetings with stakeholders by quickly assessing the requirements and constraints being discussed. This makes it possible to make decisions much quicker on the spot. The ability to compute thousands of scenarios within seconds could further enhance the decision-making process, especially when applying a well set up optimization. VIKTOR’s central data structure also allows for multiple colleagues within the company to have access to a project’s input, therefore eliminating the process of sending the project input to colleagues.
** The VIKTOR SDK provides a variety of field options, some which are useful for repetitive inputs. Suppose a development consists of various sections, all with the same type of inputs (e.g. area, cost per square meter, revenue per square meter, etc.). These could be structured using dynamic arrays or tables within VIKTOR.
*** Assuming the optimization requires an interval for a specific variable
**** Assuming the brute force optimization method