RU2417443C2 - Optimisation of solutions for multitude of objects with various basic uncertainties - Google Patents

Optimisation of solutions for multitude of objects with various basic uncertainties Download PDF

Info

Publication number
RU2417443C2
RU2417443C2 RU2007144174/08A RU2007144174A RU2417443C2 RU 2417443 C2 RU2417443 C2 RU 2417443C2 RU 2007144174/08 A RU2007144174/08 A RU 2007144174/08A RU 2007144174 A RU2007144174 A RU 2007144174A RU 2417443 C2 RU2417443 C2 RU 2417443C2
Authority
RU
Russia
Prior art keywords
values
variables
uncertainty
decision
objective function
Prior art date
Application number
RU2007144174/08A
Other languages
Russian (ru)
Other versions
RU2007144174A (en
Inventor
Дэвид ХИТ (US)
Дэвид ХИТ
Кешав НАРАЯНАН (US)
Кешав НАРАЯНАН
Алвин Стэнли КАЛЛИК (US)
Алвин Стэнли КАЛЛИК
Original Assignee
Лэндмарк Графикс Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Лэндмарк Графикс Корпорейшн filed Critical Лэндмарк Графикс Корпорейшн
Publication of RU2007144174A publication Critical patent/RU2007144174A/en
Application granted granted Critical
Publication of RU2417443C2 publication Critical patent/RU2417443C2/en

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

FIELD: oil and gas production.
SUBSTANCE: here is disclosed method for optimisation of solutions for multitude of objects like oil and/or gas deposits. The method includes stages when there is received information setting alternate decisions and variable uncertainties for multitude of objects. This information specifies a corresponding set of one or several algorithms for each object. In the method there is formed a decision vector; the decision vector is evaluated for determination of at least value of a global target function for the decision vector; there is found an optimiser, thus there is created a multitude of decision vectors and corresponding values of the global target function. Data are retained in a memory unit. A row of boreholes is drilled in a multitude of deposits; also, number of boreholes is determined by choice of one of vectors of decision of a reference set.
EFFECT: increased yield of oil and gas.
29 cl, 10 dwg

Description

Предпосылки создания изобретенияBACKGROUND OF THE INVENTION

1. Область техники, к которой относится изобретение 1. The technical field to which the invention relates.

В общем это изобретение относится к области принятия решения, неопределенности и анализу оптимизации, а более конкретно к системе и способу для оптимизации решений, относящихся к системе объектов, при наличии неопределенности.In general, this invention relates to the field of decision making, uncertainty and optimization analysis, and more specifically to a system and method for optimizing decisions related to a system of objects in the presence of uncertainty.

2. Описание уровня техники 2. Description of the prior art

Имеется большая группа работ, которые обычно выполняются в процессе разведки, разработки и эксплуатации нефтегазовых месторождений (объектов), например таких работ, какThere is a large group of works that are usually carried out in the process of exploration, development and operation of oil and gas fields (facilities), for example, works such as

аренда земли;land lease;

регистрация сейсмических данных;seismic data recording;

бурение разведочных скважин;exploratory well drilling;

бурение продуктивных скважин;production wells drilling;

заканчивание скважин;well completion;

монтаж оборудования для технологического процесса и хранения добычи из скважин.installation of equipment for the process and storage of production from wells.

Хотя для проведения этих работ требуются большие капитальные затраты, эти затраты рассматриваются как инвестиции в надежде на получение доходов от реализации (например, от продажи нефти и газа), которые существенно превышают общую сумму затрат. Поэтому в настоящей заявке эти работы могут быть отнесены к инвестиционной деятельности.Although large capital expenditures are required to carry out these works, these expenditures are considered as investments in the hope of generating sales revenues (for example, from the sale of oil and gas) that significantly exceed the total cost. Therefore, in this application, these works can be attributed to investment activities.

При каждой инвестиционной деятельности требуется принимать различные решения, например решения относительно того,For each investment activity, various decisions are required, for example, decisions regarding

сколько земли арендовать и какие участки земли арендовать;how much land to rent and what land to rent;

как регистрировать сейсмические данные и какой объем сейсмических данных регистрировать;how to record seismic data and how much seismic data to record;

сколько бурить разведочных скважин и где бурить разведочные скважины;how many exploratory wells to drill and where to drill exploratory wells;

как разрабатывать месторождения;how to develop deposits;

сколько бурить продуктивных и нагнетательных скважин, где бурить скважины и какая конструкция скважины (то есть траектория ствола скважины через пространство) должна быть для каждой из продуктивных скважин;how many productive and injection wells to drill, where to drill wells and what well design (i.e., the path of the wellbore through space) should be for each of the productive wells;

сколько интервалов перфорации делать в каждой скважине и как распределять местоположения интервалов перфорации вдоль конструкции скважины для каждой скважины;how many perforation intervals to do in each well and how to distribute the location of the perforation intervals along the well structure for each well;

какой порядок бурения и перфорирования скважин;what order of drilling and perforation of wells;

какой объем отвести для сооружения технологического оборудования и каким образом соединять скважины с оборудованием и с системами комплексной подготовки нефти и газа;how much to devote to the construction of technological equipment and how to connect wells with equipment and with integrated oil and gas treatment systems;

как обрабатывать флюиды, добываемые из геологического пласта;how to process fluids extracted from the geological formation;

какие объекты и в каком порядке разрабатывать и осуществлять добычу на объектах в случае большого количества потенциальных продуктивных объектов.what facilities and in what order to develop and carry out production at the facilities in case of a large number of potential productive facilities.

Кроме того, эти решения должны приниматься с учетом всего большого количества фундаментальных неопределенностей, например неопределенностей таких факторов, какIn addition, these decisions must be made taking into account the large number of fundamental uncertainties, such as the uncertainties of factors such as

фьючерсные цены на сдачу в аренду нефтегазоносных участков;futures prices for leasing oil and gas areas;

запасы нефти и/или газа на месторождении;oil and / or gas reserves in the field;

форма и физические свойства коллекторов на каждом месторождении;the shape and physical properties of the reservoirs in each field;

количество времени, которое будет затрачено на бурение каждой разведочной скважины и каждой продуктивной скважины;the amount of time that will be spent on drilling each exploratory well and each production well;

возможность получения в будущем оборудования, такого как буровое оборудование и передвижная установка для заканчивания скважин;the possibility of obtaining equipment in the future, such as drilling equipment and a mobile installation for completing wells;

затраты, связанные с эксплуатацией и техническим обслуживанием продуктивных и нагнетательных скважин и оборудования;costs associated with the operation and maintenance of productive and injection wells and equipment;

фьючерсные цены на нефть и газ;oil and gas futures prices;

устойчивость погодных условий.weather resistance.

В любом случае при принятии решения эти фундаментальные неопределенности влекут за собой неопределенности в выигрыше, а именно в объеме добычи, объеме продаж и прибыли. Поэтому существует необходимость в системах и способах, способных помочь при принятии решений (каждое решение имеет диапазон возможных вариантов), относящихся к разработке нефтегазового месторождения, с учетом фундаментальных неопределенностей.In any case, when making a decision, these fundamental uncertainties entail uncertainties in gain, namely in production volume, sales volume and profit. Therefore, there is a need for systems and methods that can help in making decisions (each decision has a range of possible options) related to the development of an oil and gas field, taking into account fundamental uncertainties.

Сущность изобретенияSUMMARY OF THE INVENTION

Согласно одному ряду осуществлений способ оптимизации решений, касающихся большого количества объектов, может содержать этапы, при выполнении которыхAccording to one set of implementations, a method for optimizing decisions regarding a large number of objects may comprise steps in which

(а) принимают информацию, задающую переменные решения и переменные неопределенности для большого количества объектов и задающую для каждого объекта соответствующий набор из одного или нескольких алгоритмов (например, алгоритмов, которыми моделируется добыча флюидов из коллектора, экономические показатели и другие выходные данные для объектов);(a) receive information specifying decision variables and uncertainty variables for a large number of objects and setting for each object an appropriate set of one or more algorithms (for example, algorithms that simulate production of fluids from the reservoir, economic indicators, and other output data for objects);

(b) образуют вектор решения, при этом вектор решения включает в себя значение для каждой из переменных решения;(b) form a solution vector, wherein the solution vector includes a value for each of the decision variables;

(с) выполняют процесс оценивания относительно вектора решения для определения по меньшей мере значения глобальной целевой функции для вектора решения;(c) performing an estimation process with respect to the solution vector to determine at least the value of the global objective function for the solution vector;

(d) выполняют оптимизатор, при этом указанное выполнение оптимизатора включает в себя многократное осуществление (b) и (с), в результате чего образуется большое количество векторов решения и соответствующих значений глобальной целевой функции, и при этом оптимизатор использует большое количество векторов решения и соответствующих значений глобальной целевой функции для образования и многократной корректировки эталонного набора векторов решения, чтобы оптимизировать глобальную целевую функцию;(d) an optimizer is performed, wherein said optimizer implementation includes the repeated implementation of (b) and (c), resulting in a large number of solution vectors and corresponding values of the global objective function, and the optimizer uses a large number of solution vectors and corresponding the values of the global objective function for the formation and multiple adjustments of the reference set of solution vectors in order to optimize the global objective function;

(е) сохраняют данные, включающие в себя большое количество векторов решения и соответствующие им значения глобальной целевой функции, в запоминающем устройстве (например, в системной памяти хост-компьютера).(e) store data, including a large number of solution vectors and the corresponding values of the global objective function, in a storage device (for example, in the system memory of the host computer).

Кроме того, способ может включать в себя отображение графического представления по меньшей мере одного поднабора векторов решения из эталонного набора.In addition, the method may include displaying a graphical representation of at least one subset of the solution vectors from the reference set.

Оптимизация может быть реализована с помощью любого из ряда оптимизаторов, в частности с помощью стохастического оптимизатора. Например, оптимизатором может использоваться процедура поиска с запретом и/или процедура поиска с разбросом.Optimization can be implemented using any of a number of optimizers, in particular using a stochastic optimizer. For example, the optimizer may use a forbidden search procedure and / or a scatter search procedure.

Операция процесса оценивания может включать в себяThe evaluation process operation may include

(с1) образование вектора неопределенности, при этом вектор неопределенности включает в себя значение для каждой из переменных неопределенности;(c1) the formation of an uncertainty vector, wherein the uncertainty vector includes a value for each of the uncertainty variables;

(с2) образование для каждого объекта набора данных для соответствующего набора алгоритмов с использованием соответствующего подмножества из одного или нескольких значений в векторе решения и соответствующего подмножества из одного или нескольких значений в векторе неопределенности;(c2) the formation for each object of a data set for the corresponding set of algorithms using the corresponding subset of one or more values in the solution vector and the corresponding subset of one or more values in the uncertainty vector;

(с3) инициирование выполнения набора алгоритмов для каждого объекта на основании соответствующего набора данных для получения выходных данных, соответствующих объекту;(c3) initiating the execution of a set of algorithms for each object based on the corresponding data set to obtain output data corresponding to the object;

(с4) вычисление для каждого объекта одного или нескольких значений одной или нескольких соответствующих величин, при этом каждое из значений величин для объекта вычисляют на основании по меньшей мере части выходных данных набора алгоритмов для объекта;(c4) calculating for each object one or more values of one or more corresponding values, wherein each of the values of the values for the object is calculated based on at least a portion of the output of the set of algorithms for the object;

(с5) выполнение операций, включающих в себя с (с1) по (с4), несколько раз, в результате чего образуется совокупность значений каждой величины для каждого объекта;(c5) performing operations including (c1) to (c4) several times, resulting in a set of values of each quantity for each object;

(с6) вычисление одного или нескольких статистических показателей для каждого объекта на основании соответствующей одной из совокупностей; и(c6) calculating one or more statistical indicators for each object based on the corresponding one of the aggregates; and

(с7) комбинирование первого поднабора статистических показателей для определения значения глобальной целевой функции, соответствующего вектору решения.(c7) combining the first subset of statistical indicators to determine the value of the global objective function corresponding to the solution vector.

Согласно некоторым осуществлениям подмножество из одной или нескольких значений величин для объекта может быть вычислено с использованием входных данных (например, данных из набора данных), а также выходных данных набора алгоритмов для объекта.According to some implementations, a subset of one or more value values for an object can be calculated using input data (e.g., data from a data set) as well as output from a set of algorithms for the object.

Информация (относящаяся к (а) выше) может задавать одну или несколько функциональных зависимостей между переменными неопределенности. Операция (с1) образования вектора неопределенности может быть осуществлена способом, в котором учитываются одна или несколько функциональных зависимостей между переменными неопределенности.Information (related to (a) above) may specify one or more functional relationships between uncertainty variables. The operation (c1) of generating the uncertainty vector can be carried out in a way that takes into account one or more functional dependencies between the uncertainty variables.

Кроме того, информация может задавать одну или несколько корреляционных связей между переменными неопределенности. В этом случае указанные корреляционные связи учитываются в операции (с1) образования вектора неопределенности. Переменные неопределенности могут включать в себя два или более поднаборов, относящихся к двум или более объектам, соответственно. Корреляционные связи могут включать в себя корреляционные связи между переменными неопределенности по различным объектам.In addition, the information may specify one or more correlation relationships between the uncertainty variables. In this case, the indicated correlation relationships are taken into account in the operation (c1) of the formation of the uncertainty vector. Uncertainty variables may include two or more subsets related to two or more objects, respectively. Correlation relationships may include correlation relationships between uncertainty variables for various objects.

Кроме того, информация может задавать одно или несколько ограничений на переменные решения. В этом случае операция (b) образования вектора решения может выполняться с соблюдением одного или нескольких ограничений на переменные решения.In addition, the information may specify one or more constraints on the decision variables. In this case, the operation (b) of the formation of the solution vector can be performed in compliance with one or more restrictions on the decision variables.

Информация может также задавать одну или несколько функциональных зависимостей между переменными решения. В этом случае операция (b) образования вектора решения может выполняться с учетом одной или нескольких функциональных зависимостей между переменными решения.Information can also define one or more functional dependencies between decision variables. In this case, the operation (b) of the formation of the solution vector can be performed taking into account one or more functional dependencies between the decision variables.

При осуществлении операции (с) выполнения процесса решения относительно вектора решения можно получать соответствующее значение вспомогательной функции в дополнение к указанному значению глобальной целевой функции. Поэтому операция (с) может дополнительно включать в себя (с8) комбинирование второго поднабора статистических показателей для определения значения вспомогательной функции, соответствующего вектору решения.In the operation (c) of the decision process with respect to the solution vector, the corresponding value of the auxiliary function can be obtained in addition to the specified value of the global objective function. Therefore, operation (c) may additionally include (c8) combining a second subset of statistical indicators to determine the value of the auxiliary function corresponding to the solution vector.

Оптимизатор может использовать значения глобальной целевой функции и значения вспомогательной функции, соответствующие большому количеству векторов решения при указанной многократной корректировке эталонного набора, чтобы оптимизировать целевую функцию, подчиненную одному или нескольким ограничениям.The optimizer can use the values of the global objective function and the values of the auxiliary function corresponding to a large number of solution vectors for the specified multiple adjustment of the reference set in order to optimize the objective function subject to one or more constraints.

Пользователь может задавать структуру одного или нескольких ограничений. Например, пользователь может задавать ограничение на функциональную комбинацию вспомогательной функции и глобальной целевой функции (сама функциональная комбинация может быть задана пользователем). В качестве другого примера, пользователь может задавать ограничение на вспомогательную функцию.The user can specify the structure of one or more constraints. For example, the user can set a restriction on the functional combination of the auxiliary function and the global objective function (the functional combination itself can be set by the user). As another example, a user may define a restriction on an auxiliary function.

Операция (с8) может включать в себя комбинирование второго поднабора статистических показателей в соответствии с линейной комбинацией, коэффициенты которой задаются указанной информацией.Operation (c8) may include combining a second subset of statistical indicators in accordance with a linear combination, the coefficients of which are specified by the specified information.

Каждая из переменных решения имеет относящееся к ней множество достижимых значений, представляющих возможные результаты соответствующего решения. Кроме того, каждая из переменных неопределенности имеет относящееся к ней множество достижимых значений. Множества достижимых значений могут быть конечными множествами числовых значений, структурами данных, программами и т.д. Кроме того, множества достижимых значений могут быть интервалами вещественной числовой линии или, в более общем случае, заданными пользователем областями в n-мерном пространстве, где n - целое положительное число.Each of the decision variables has a set of attainable values related to it, representing the possible results of the corresponding solution. In addition, each of the uncertainty variables has a set of attainable values related to it. The sets of reachable values can be finite sets of numerical values, data structures, programs, etc. In addition, the sets of attainable values can be intervals of a real number line or, more generally, user-defined areas in n-dimensional space, where n is a positive integer.

Согласно одному осуществлению способ может также включать в себя отображение графика зависимости значения глобальной целевой функции от значения вспомогательной функции для каждого из указанного большого количества векторов решения.According to one embodiment, the method may also include displaying a graph of the dependence of the value of the global objective function on the value of the auxiliary function for each of the specified large number of decision vectors.

Операция (е) сохранения может включать в себя сохранение векторов решения из большого количества векторов решения вместе с соответствующими им значениями глобальной целевой функции и соответствующими значениями вспомогательной функции в базе данных в запоминающем устройстве.The save operation (e) may include storing solution vectors from a large number of solution vectors together with their corresponding values of the global objective function and the corresponding values of the auxiliary function in the database in the storage device.

Согласно некоторым осуществлениям способ может дополнительно включать в себяAccording to some implementations, the method may further include

осуществление действий над базой данных для идентификации поднабора из большого количества векторов решения, которые имеют оптимальные значения глобальной целевой функции при определенном значении вспомогательной функции;carrying out actions on the database to identify a subset of a large number of decision vectors that have optimal values of the global objective function for a certain value of the auxiliary function;

повторение указанного действия для множества значений вспомогательной функции; иrepeating the specified action for the set of values of the auxiliary function; and

сохранение поднаборов, идентифицированных при указанном повторении.saving subsets identified at the specified repetition.

Согласно некоторым осуществлениям способ может также включать в себяAccording to some implementations, the method may also include

осуществление действия над базой данных для определения геометрического места оптимальных значений глобальной целевой функции с учетом значения вспомогательной функции; иtaking action on the database to determine the geometric location of the optimal values of the global objective function, taking into account the value of the auxiliary function; and

отображение геометрического места оптимальных значений.display of a geometrical place of optimum values.

Графическое представление поднабора из большого количества векторов решения, которые соответствуют точке на геометрическом месте оптимальных значений, может быть отображено в ответ на выбор пользователем точки.A graphical representation of a subset of a large number of solution vectors that correspond to a point at a geometric location of optimal values can be displayed in response to a user selecting a point.

Пользователь может задавать большое количество объектов, переменных решения и переменных неопределенности для каждого объекта и набор из одного или нескольких алгоритмов для каждого объекта. Переменные решения являются переменными, которые подвергаются оптимизации.The user can set a large number of objects, decision variables and uncertainty variables for each object and a set of one or more algorithms for each object. Decision variables are variables that undergo optimization.

Переменные неопределенности являются переменными, которые исследуются случайным (или псевдослучайным) образом для создания вариации во входных данных, привносимых в алгоритмы для каждого объекта.Uncertainty variables are variables that are examined in a random (or pseudo-random) manner to create variations in the input data introduced into the algorithms for each object.

Набор из одного или нескольких алгоритмов для по меньшей мере одного из объектов может включать в себя алгоритм для оценивания добычи нефти и газа в динамике во времени и алгоритм для оценивания экономических показателей объекта. Алгоритмом для оценивания добычи нефти и газа в динамике во времени может бытьA set of one or more algorithms for at least one of the objects may include an algorithm for estimating oil and gas production over time and an algorithm for evaluating the economic performance of an object. An algorithm for estimating oil and gas production over time can be

имитатор материального баланса, который оперирует со структурой данных резервуарной модели;a material balance simulator that operates with the data structure of the reservoir model;

вычисление материального баланса, выполняемое в электронно-табличных моделях;calculation of material balance performed in spreadsheet models;

имитатор движения флюидов в коллекторе, который оперирует трехмерной структурой данных (например, имитатор движения флюидов в коллекторе с конечно-разностным представлением, представлением на основе метода линий тока или представлением на основе метода конечных элементов);a fluid motion simulator in a reservoir that operates with a three-dimensional data structure (for example, a fluid motion simulator in a reservoir with a finite-difference representation, a flow line based representation, or a finite element representation);

алгоритм, определяемый набором из одного или нескольких заданных пользователем алгебраических выражений.an algorithm defined by a set of one or more user-defined algebraic expressions.

Кроме того, набор из одного или нескольких алгоритмов для по меньшей мере одного из объектов может включать в себя один или несколько изIn addition, a set of one or more algorithms for at least one of the objects may include one or more of

алгоритма для оценивания транспортировки нефти и газа на поверхности, например, имитатора процесса в сети наземных трубопроводов,algorithms for evaluating the transportation of oil and gas to the surface, for example, a process simulator in a network of onshore pipelines,

алгоритма для оценивания транспортировки нефти, газа и воды на поверхности, например, аналитической модели сети наземных трубопроводов или набора из одного или нескольких заданных пользователем алгебраических выражений, иalgorithms for evaluating the transportation of oil, gas and water to the surface, for example, an analytical model of a network of land pipelines or a set of one or more user-defined algebraic expressions, and

алгоритма для оценивания объема нефти и газа и трехмерных свойств коллектора.algorithms for estimating the volume of oil and gas and the three-dimensional properties of the reservoir.

Алгоритм для оценивания объема нефти и газа и трехмерных свойств коллектора может быть реализован с помощьюAn algorithm for estimating the volume of oil and gas and the three-dimensional properties of the reservoir can be implemented using

геостатистического алгоритма формирования свойств геологической среды;geostatistical algorithm for the formation of the properties of the geological environment;

алгоритма формирования структурного строения геологической среды;an algorithm for the formation of the structural structure of the geological environment;

алгоритма, определяемого набором из одного или нескольких заданных пользователем алгебраических выражений; илиan algorithm defined by a set of one or more user-defined algebraic expressions; or

имитатора материального баланса.a simulator of material balance.

Алгоритм для вычисления экономических показателей объекта может быть реализован в видеThe algorithm for calculating the economic indicators of the object can be implemented as

алгоритмов, основанных на электронных таблицах, которые могут включать в себя полные фискальные модели и модели долевого распределения добычи;spreadsheet-based algorithms, which may include full fiscal models and production sharing models;

алгоритмов, основанных на аналитических экономических моделях и наборе из одного или нескольких заданных пользователем алгебраических выражений.algorithms based on analytical economic models and a set of one or more user-defined algebraic expressions.

Согласно другому ряду осуществлений способ оптимизации решений, касающихся большого количества объектов, путем выполнения программного кода на первом компьютере (например, серверном компьютере) может включать в себя операции, при выполнении которыхAccording to another set of implementations, a method for optimizing decisions regarding a large number of objects by executing program code on a first computer (eg, a server computer) may include operations in which

(а) принимают информацию, задающую переменные решения и переменные неопределенности для большого количества объектов и задающую для каждого объекта соответствующий набор из одного или нескольких алгоритмов;(a) receive information defining decision variables and uncertainty variables for a large number of objects and defining for each object an appropriate set of one or more algorithms;

(b) образуют вектор решения, при этом вектор решения включает в себя значение для каждой из переменных решения;(b) form a solution vector, wherein the solution vector includes a value for each of the decision variables;

(с) выполняют процесс оценивания относительно вектора решения для определения по меньшей мере значения глобальной целевой функции для вектора решения;(c) performing an estimation process with respect to the solution vector to determine at least the value of the global objective function for the solution vector;

(d) выполняют оптимизатор, при этом указанное выполнение оптимизатора включает в себя многократное осуществление (b) и (с), в результате чего образуется большое количество векторов решения и соответствующих значений глобальной целевой функции, и при этом оптимизатор использует большое количество векторов решения и соответствующих значений глобальной целевой функции для образования и многократной корректировки эталонного набора векторов решения, чтобы оптимизировать глобальную целевую функцию;(d) an optimizer is performed, wherein said optimizer implementation includes the repeated implementation of (b) and (c), as a result of which a large number of solution vectors and corresponding values of the global objective function are generated, while the optimizer uses a large number of solution vectors and corresponding the values of the global objective function for the formation and multiple adjustments of the reference set of solution vectors in order to optimize the global objective function;

(е) сохраняют данные, включающие в себя большое количество векторов решения и соответствующих им значений глобальной целевой функции, в запоминающем устройстве.(e) store data, including a large number of solution vectors and their corresponding global objective function values, in a storage device.

Переменные решения могут включать в себя переменные числовые решения и сценарные переменные решения. Числовая переменная решения представляет собой переменную решения, достижимые значения которой являются числовыми значениями. Например, однозначная переменная решения может быть использована для представления возможных результатов для ряда скважин, подлежащих бурению на определенном объекте. Сценарная переменная решения представляет собой переменную решения, достижимые значения которой являются структурами данных, описывающими соответствующие сценарии. Например, сценарная переменная решения может быть использована для представления решения между различными сценариями, при этом каждым сценарием представляется различный набор альтернатив для ряда скважин на определенном объекте, графиков бурения скважин и геометрий бурения скважин.Solution variables may include variable numerical solutions and scenario decision variables. A numerical solution variable is a solution variable whose attainable values are numerical values. For example, a unique decision variable can be used to represent possible results for a number of wells to be drilled at a particular site. A scripted decision variable is a decision variable whose reachable values are data structures that describe the corresponding scenarios. For example, a scenario solution variable can be used to represent a solution between different scenarios, with each scenario representing a different set of alternatives for a number of wells at a particular site, well drilling schedules, and well drilling geometries.

Значение глобальной целевой функции может быть вычислено на основании выходных данных, образуемых с помощью одного или нескольких алгоритмов, оперирующих с переменными решения. Согласно некоторым осуществлениям значение глобальной целевой функции может быть общим балансовым запасом нефти или газа, или суммарной добычей, или чистой приведенной стоимостью. Согласно другому осуществлению значение глобальной целевой функции может быть статистическим, например средним значением запасов или чистой приведенной стоимости. Согласно некоторым осуществлениям необходимы другие статистические показатели значения глобальной целевой функции для соответствия, например, условию среднеквадратического отклонения или любому значению квантиля.The value of the global objective function can be calculated on the basis of output data generated using one or more algorithms that operate with decision variables. According to some implementations, the value of the global objective function may be the total carrying amount of oil or gas, or total production, or net present value. According to another implementation, the value of the global objective function may be statistical, for example, the average value of stocks or net present value. According to some implementations, other statistical indicators of the value of the global objective function are needed to match, for example, the standard deviation condition or any quantile value.

Операция (с) выполнения процесса оценивания может включать в себяOperation (c) of the evaluation process may include

(с1) образование NI векторов неопределенности, при этом каждый вектор неопределенности содержит приписываемые значения для каждой из переменных неопределенности, где NI - целое положительное число;(c1) the formation of N I uncertainty vectors, with each uncertainty vector containing the assigned values for each of the uncertainty variables, where N I is a positive integer;

(с2) образование NI наборов итерационных данных для каждого объекта, при этом каждый из наборов итерационных данных образуют, используя часть вектора решения и часть соответствующего одного из векторов неопределенности;(c2) the formation of N I sets of iterative data for each object, wherein each of the sets of iterative data is formed using part of the solution vector and part of the corresponding one of the uncertainty vectors;

(с3) распределение NI наборов итерационных данных для каждого объекта к одному или нескольким вторичным компьютерам для инициирования выполнения наборов алгоритмов для объекта на основании каждого из соответствующих NI наборов итерационных данных, причем при каждом выполнении набора алгоритмов для объекта на основании набора итерационных данных образуют соответствующий набор выходных данных;(c3) distributing N I sets of iterative data for each object to one or more secondary computers to initiate the execution of sets of algorithms for the object based on each of the corresponding N I sets of iterative data, and each time a set of algorithms for the object is executed based on the set of iterative data corresponding set of output data;

(с4) прием NI наборов выходных данных для каждого из объектов от одного или нескольких вторичных компьютеров и сохранение NI наборов выходных данных в запоминающем устройстве;(c4) receiving N I sets of output data for each of the objects from one or more secondary computers and storing N I sets of output data in a storage device;

(с5) вычисление для каждого объекта и каждого из NI наборов выходных данных, соответствующих объекту, одного или нескольких значений одной или нескольких соответствующих величин на основании данных в наборе выходных данных, в результате чего образуется совокупность NI значений каждой величины для каждого объекта;(c5) calculating for each object and each of N I sets of output data corresponding to the object, one or more values of one or more corresponding values based on data in the set of output data, resulting in a collection of N I values of each value for each object;

(с7) вычисление одного или нескольких статистических показателей для каждого объекта на основании соответствующей одной из совокупностей; и(c7) calculating one or more statistical indicators for each object based on the corresponding one of the aggregates; and

(с8) комбинирование первого поднабора статистических показателей для определения значения глобальной целевой функции, соответствующего вектору решения.(c8) combining the first subset of statistical indicators to determine the value of the global objective function corresponding to the solution vector.

Некоторые из одной или нескольких величин, вычисляемые для каждого объекта, могут быть вычислены на основании входных данных (например, данных соответствующего набора итерационных данных), а также выходных данных от набора алгоритмов для объекта.Some of one or more values calculated for each object can be calculated on the basis of input data (for example, data of the corresponding set of iterative data), as well as output from a set of algorithms for the object.

Первый компьютер и один или несколько вторичных компьютеров могут быть связаны с помощью компьютерной сети, например локальной вычислительной сети, интрасети, глобальной сети, Интернета и т.д.The first computer and one or more secondary computers can be connected using a computer network, such as a local area network, intranet, wide area network, Internet, etc.

На этапе операции распределения наборов итерационных данных инициируется распределенное выполнение наборов алгоритмов на основании наборов итерационных данных на большом количестве вторичных компьютеров. Вторичные компьютеры могут быть объединены в сетевую структуру.At the stage of the operation of distributing sets of iterative data, distributed execution of sets of algorithms based on sets of iterative data on a large number of secondary computers is initiated. Secondary computers can be combined into a network structure.

Согласно одному осуществлению поднабор из наборов итерационных данных может быть выполнен локально с помощью первого компьютера, что отчасти зависит от имеющейся производительности системы обработки данных на первом компьютере.According to one embodiment, a subset of the iterative data sets can be performed locally using the first computer, which partly depends on the available performance of the data processing system on the first computer.

Информация может быть получена от пользователя при выполнении процесса на клиентском компьютере и передана на первый компьютер при выполнении этого процесса.Information can be obtained from the user during the process on the client computer and transmitted to the first computer during this process.

Согласно еще одному ряду осуществлений способ оптимизации решений, касающихся большого количества объектов, может включать в себя операции, при выполнении которыхAccording to another set of implementations, a method for optimizing decisions regarding a large number of objects may include operations in which

(а) принимают информацию, задающую большое количество объектов, целевую функцию объекта для каждого из объектов и набор алгоритмов для каждого объекта;(a) receive information specifying a large number of objects, the objective function of the object for each of the objects, and a set of algorithms for each object;

(b) образуют вектор решения, включающий в себя значения для набора переменных решения;(b) form a solution vector including values for a set of decision variables;

(с) образуют NI векторов неопределенности, при этом каждый из NI векторов неопределенности является следствием отдельной конкретизации набора векторов неопределенности, где NI - положительное целое число;(c) form N I uncertainty vectors, wherein each of the N I uncertainty vectors is the result of a separate specification of a set of uncertainty vectors, where N I is a positive integer;

(d) вычисляют первую совокупность NI значений для каждой целевой функции объекта, осуществляя NI итераций выполнения соответствующего набора алгоритмов и оперируя с выходными данными, образующимися при каждой из NI итераций указанного выполнения, причем при каждом выполнении соответствующего набора алгоритмов оперируют с входными данными, определенными с помощью значений переменных решения и с помощью соответствующего одного из векторов неопределенности;(d) calculate the first set of N I values for each objective function of the object, performing N I iterations of the execution of the corresponding set of algorithms and operating with the output data generated at each of the N I iterations of the specified execution, and with each execution of the corresponding set of algorithms they operate with the input data determined using the values of the decision variables and using the corresponding one of the uncertainty vectors;

(е) вычисляют первый статистический показатель объекта по каждой целевой функции объекта на основании соответствующей совокупности значений;(e) calculating the first statistical indicator of the object for each objective function of the object based on the corresponding set of values;

(f) вычисляют значение глобальной целевой функции на основании первых статистических показателей объекта;(f) calculating the value of the global objective function based on the first statistical indicators of the object;

(g) выполняют оптимизатор, при этом указанное выполнение оптимизатора включает в себя осуществление с (b) по (е) многократно, в результате чего образуется большое количество векторов решения и соответствующих значений глобальной целевой функции, и где оптимизатор использует большое количество векторов решения и соответствующих значений глобальной целевой функции для образования и многократной корректировки эталонного набора векторов решения, чтобы оптимизировать глобальную целевую функцию.(g) an optimizer is performed, wherein said optimizer implementation includes performing (b) to (e) multiple times, resulting in a large number of solution vectors and corresponding values of the global objective function, and where the optimizer uses a large number of solution vectors and corresponding values of the global objective function for the formation and multiple adjustments of the reference set of solution vectors in order to optimize the global objective function.

Способ может также включать в себя операцииThe method may also include operations

вычисления второго статистического показателя объекта для каждого объекта по соответствующей одной из совокупностей; иcalculating a second statistical indicator of the object for each object according to the corresponding one of the populations; and

вычисления значения вспомогательной функции на основании вторых статистических показателей объекта.calculating the value of the auxiliary function based on the second statistical indicators of the object.

При выполнении оптимизатора делается попытка оптимизировать (то есть максимизировать или минимизировать) глобальную целевую функцию, подчиненную ограничению на одну или более функцию из вспомогательной функции и глобальной целевой функции.When performing the optimizer, an attempt is made to optimize (that is, maximize or minimize) the global objective function, subordinate to the restriction on one or more functions from the auxiliary function and the global objective function.

Путем использования глобальной целевой функции, которая является функциональной комбинацией (например, линейной комбинацией с положительными весовыми коэффициентами), могут быть реализованы способы согласно различным осуществлениям, описанные в настоящей заявке, обеспечивающие оптимизацию решений, касающихся большого количества объектов, взятых вместе. В способах согласно осуществлениям могут выполняться операции над переменными неопределенности, включающими в себя зависимости по различным объектам. Кроме того, способами согласно осуществлению пользователю может предоставляться возможность задания ограничений на переменные решения, включая ограничения на переменные решения по различным объектам.By using the global objective function, which is a functional combination (for example, a linear combination with positive weights), the methods of the various embodiments described in this application can be implemented to optimize decisions regarding a large number of objects taken together. In the methods of the embodiments, operations can be performed on uncertainty variables including dependencies on various objects. In addition, by methods according to an implementation, a user may be given the opportunity to set constraints on decision variables, including restrictions on decision variables on various objects.

Способы (или части их) согласно любому или всем осуществлениям, описанным в настоящей заявке, могут быть реализованы на основе программных команд. Программные команды могут храниться на считываемых компьютером запоминающих средах различных видов, таких как магнитный диск, магнитная лента, полупроводниковое запоминающее устройство различных видов, запоминающее устройство на цилиндрических магнитных доменах, компакт-диск, доступный только для чтения, и т.д.Methods (or parts thereof) according to any or all of the implementations described in this application can be implemented based on program instructions. Program instructions can be stored on various types of computer-readable media, such as magnetic disk, magnetic tape, various types of semiconductor memory, cylindrical magnetic domain memory, read-only compact disc, etc.

Программные команды могут храниться в запоминающем устройстве компьютерной системы (или в запоминающих устройствах группы компьютерных систем). Процессор компьютерной системы может быть сконфигурирован для чтения и выполнения программных команд из запоминающего устройства и, таким образом, для реализации способов согласно осуществлению (осуществлениям) или частей способов.Program instructions may be stored in a storage device of a computer system (or in storage devices of a group of computer systems). A computer system processor may be configured to read and execute program instructions from a storage device and, thus, to implement methods according to an implementation (s) or parts of methods.

Кроме того, программные команды (или поднаборы программных команд) могут быть переданы через любую из различных передающих сред, например, по компьютерной сети.In addition, program instructions (or subsets of program instructions) can be transmitted through any of a variety of transmission media, for example, over a computer network.

Заявка регистрационный номер 10/653829 на патент США, поданная 9/03/2003 под названием “Method and system for scenario and case decision management”, в которой в качестве изобретателей указаны Cullick, Narayanan и Wilson, полностью включена в настоящую заявку посредством ссылки.Application for registration number 10/653829 for US patent, filed 09/03/2003 under the name "Method and system for scenario and case decision management", in which the inventors are Cullick, Narayanan and Wilson, is fully incorporated into this application by reference.

Краткое описание чертежейBrief Description of the Drawings

Лучшее понимание настоящего изобретения может быть достигнуто при рассмотрении подробного описания, представленного в настоящей заявке, в сочетании с сопровождающими чертежами, на которых:A better understanding of the present invention can be achieved by considering the detailed description presented in this application, in combination with the accompanying drawings, in which:

фигура 1 - иллюстрация модулей клиентского приложения и потокового сервера согласно одному ряду осуществлений;figure 1 is an illustration of the modules of the client application and the streaming server according to one set of implementations;

фигура 2 - иллюстрация потока согласно одному ряду осуществлений, сконфигурированного для выполнения анализа оптимизации решений, относящихся к большому количеству объектов при наличии различных основополагающих неопределенностей (которые моделируются переменными неопределенности);figure 2 is an illustration of a flow according to one series of implementations configured to perform an analysis of optimization decisions related to a large number of objects in the presence of various fundamental uncertainties (which are modeled by uncertainty variables);

фигура 3 - иллюстрация оптимизатора 210 из фигуры 2 согласно одному ряду осуществлений;figure 3 is an illustration of the optimizer 210 of figure 2 according to one series of implementations;

фигура 4 - иллюстрация процесса 220 оценивания из фигуры 2 согласно одному ряду осуществлений;figure 4 is an illustration of the evaluation process 220 of figure 2 according to one series of implementations;

фигура 5 - иллюстрация способа оптимизации решений, относящихся к большому количеству объектов, согласно одному ряду осуществлений;figure 5 is an illustration of a method for optimizing decisions related to a large number of objects, according to one series of implementations;

фигура 6 - иллюстрация операции 520 (то есть операции выполнения процесса оценивания) из фигуры 5 согласно одному ряду осуществлений;figure 6 is an illustration of the operation 520 (that is, the operation of the evaluation process) of figure 5 according to one series of implementations;

фигура 7 - иллюстрация способа оптимизации решений согласно другому ряду осуществлений;figure 7 is an illustration of a method for optimizing solutions according to another series of implementations;

фигура 8 - иллюстрация операции 730 (то есть операции выполнения процесса оценивания) из фигуры 7 согласно одному ряду осуществлений с акцентированием действия по распределению наборов итерационных данных к другому компьютеру (компьютерам) для выполнения на другом компьютере (компьютерах);figure 8 is an illustration of the operation 730 (that is, the operation of the evaluation process) of figure 7 according to one series of implementations with emphasis on the action of distributing sets of iterative data to another computer (s) for execution on another computer (s);

фигура 9 - иллюстрация способа оптимизации решений согласно еще одному ряду осуществлений;figure 9 is an illustration of a method for optimizing solutions according to another series of implementations;

фигура 10 - структурная схема компьютерной системы согласно одному ряду осуществлений, которая может выполнять функцию серверного компьютера в некоторых осуществлениях и клиентского компьютера в некоторых осуществлениях.figure 10 is a structural diagram of a computer system according to one set of implementations, which can serve as a server computer in some implementations and a client computer in some implementations.

Хотя допускаются различные модификации и альтернативные формы изобретения, конкретные осуществления его показаны для примера на чертежах и описаны подробно в настоящей заявке. Однако должно быть понятно, что чертежи и подробное описание не предполагаются ограничивающими изобретение конкретными раскрытыми формами, а напротив, изобретение охватывает все модификации, эквиваленты и варианты, попадающие в рамки сущности и объема настоящего изобретения, определенные прилагаемой формулой изобретения.Although various modifications and alternative forms of the invention are allowed, specific embodiments thereof are shown by way of example in the drawings and are described in detail in this application. However, it should be understood that the drawings and detailed description are not intended to limit the invention to the particular forms disclosed, but rather, the invention covers all modifications, equivalents, and variations that fall within the spirit and scope of the present invention as defined by the appended claims.

Подробное описание предпочтительных осуществленийDETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

Согласно одному ряду осуществлений система управления принятием решений может быть сконфигурирована с предоставлением пользователю средств (например, графических интерфейсов пользователя) дляIn one set of implementations, a decision management system may be configured to provide a user with means (e.g., graphical user interfaces) for

(а) построения произвольного потока;(a) constructing an arbitrary flow;

(b) построения набора моделей, включающих в себя описания некоторого количества неопределенностей и некоторого количества решений;(b) constructing a set of models including descriptions of a certain number of uncertainties and a certain number of solutions;

(с) задания набора данных для управления выполнением, включающего в себя информацию для квалификации и управления выполнением потока;(c) defining a data set for execution control, including information for qualifying and controlling flow execution;

(d) инициирования выполнения потока с учетом набора моделей и набора данных для управления выполнением; и(d) initiating flow execution based on a set of models and a set of data to control execution; and

(е) анализа результатов выполнения потока.(e) analyzing the results of the execution of the stream.

Поток представляет собой набор взаимосвязанных алгоритмов, предназначенных для решения задачи. Системой управления принятием решений может предоставляться графический интерфейс пользователя, который позволяет пользователю выбирать, импортировать или создавать алгоритмы и связывать алгоритмы друг с другом для формирования потока.A stream is a set of interconnected algorithms designed to solve a problem. A decision management system may provide a graphical user interface that allows a user to select, import, or create algorithms and link algorithms to each other to form a stream.

Поток может быть скомпонован с включением в него одного или нескольких вычислительных циклов. Циклы могут быть вложенными. Циклы потока могут использоваться с любой из разнообразных целей. Например, поток может включать в себя цикл для осуществления оптимизации по пространству, соответствующему некоторому количеству переменных. Переменные, которые подвергаются оптимизации, в настоящей заявке именуются переменными решения. В качестве другого примера, поток может включать в себя цикл для исследования влияния вариации в пространстве, соответствующем некоторому количеству переменных, которые представляют неопределенности. Переменные, которые представляют неопределенности, в настоящей заявке именуются переменными неопределенности.A stream can be arranged to include one or more computational cycles. Loops can be nested. Flow loops can be used for any of a variety of purposes. For example, a stream may include a loop for optimizing over a space corresponding to a number of variables. Variables that are optimized are referred to in this application as decision variables. As another example, a flow may include a cycle to investigate the effect of variation in space corresponding to a number of variables that represent uncertainties. Variables that represent uncertainties are referred to herein as uncertainty variables.

Цикл может включать в себя итератор, алгоритм (или, в более общем случае, библиотеку алгоритмов) и, при желании, диспетчер. При выполнении потока итератор является ответственным за образование наборов итерационных данных для соответствующих выполнений алгоритмов. Каждое выполнение алгоритма осуществляется на основании соответствующего одного из наборов итерационных данных. Каждый набор итерационных данных содержит данные, используемые для алгоритма в качестве входных данных. В настоящей заявке каждое выполнение алгоритма именуется «итерацией». Однако термин «итерация» не означает требования последовательной обработки одной итерации после другой. На самом деле итератор и диспетчер могут быть сконфигурированы для осуществления параллельных итераций. Например, в предвидении соответствующего числа итераций итератор может быть сконфигурирован для образования некоторого количества наборов итерационных данных. Диспетчер может обнаруживать другие компьютеры (или процессоры), которые имеют незанятый диапазон вычислительных возможностей, и распределять наборы итерационных данных к другим компьютерам с тем, чтобы итерации могли быть осуществлены параллельно или, в зависимости от числа свободных компьютеров, по меньшей мере частично параллельно.The loop may include an iterator, an algorithm (or, in a more general case, a library of algorithms) and, if desired, a dispatcher. When executing the stream, the iterator is responsible for generating sets of iterative data for the corresponding executions of the algorithms. Each execution of the algorithm is based on the corresponding one of the sets of iterative data. Each iterative data set contains data used as input for the algorithm. In this application, each execution of the algorithm is referred to as an “iteration”. However, the term “iteration” does not mean the requirement of sequential processing of one iteration after another. In fact, the iterator and dispatcher can be configured to perform parallel iterations. For example, in anticipation of an appropriate number of iterations, the iterator may be configured to form a number of sets of iterative data. The dispatcher can detect other computers (or processors) that have an unoccupied range of computing capabilities, and distribute iterative data sets to other computers so that iterations can be performed in parallel or, depending on the number of free computers, at least partially in parallel.

Согласно одному осуществлению диспетчер может сжимать один или несколько наборов итерационных данных для формирования исполняемого файла и передавать исполняемый файл на один из удаленных компьютеров (имеющий незанятый диапазон вычислительных возможностей). В удаленном компьютере исполняемый файл может быть распакован для восстановления наборов итерационных данных и осуществлено выполнение алгоритма, один раз для каждого из наборов итерационных данных. Алгоритм может включать в себя код, который передает результаты каждого выполнения обратно на первый компьютер (то есть на компьютер, на котором выполняется программа-диспетчер) для сохранения.According to one embodiment, the dispatcher can compress one or more sets of iterative data to form an executable file and transfer the executable file to one of the remote computers (having an unoccupied range of computing capabilities). On the remote computer, the executable file can be unpacked to restore the sets of iterative data and the algorithm is executed, once for each of the sets of iterative data. The algorithm may include code that transfers the results of each execution back to the first computer (that is, to the computer on which the dispatch program is running) for storage.

Как отмечалось выше, исполняемый файл может включать в себя сжатые наборы итерационных данных. Если в удаленном компьютере еще нет копии выполняемого кода для алгоритма, диспетчер может сжать копию выполняемого кода и включить сжатый код в исполняемый файл.As noted above, an executable file may include compressed sets of iterative data. If the remote computer does not yet have a copy of the executable code for the algorithm, the dispatcher can compress the copy of the executable code and include the compressed code in the executable file.

Как указывалось выше, поток представляет собой набор взаимосвязанных алгоритмов, предназначенных для решения задачи. Алгоритмы работают на основании структур данных. Алгоритмы различных видов работают на основании структур данных различных видов. Например, имитатор движения флюидов в коллекторе, разработанный для прогнозирования объемов добычи нефти, газа и воды, функционирует при ином наборе структур данных, чем экономический алгоритм, разработанный для прогнозирования экономической отдачи. Системой управления принятием решений может предоставляться интерфейс, через который пользователь может задавать местоположения источников файлов (например, местоположения файловой системы в сети) и/или баз данных, содержащих структуры данных. Кроме того, системой управления принятием решений могут инициироваться инструментальные средства, которые позволяют пользователю создавать и модифицировать структуры данных.As indicated above, a stream is a set of interconnected algorithms designed to solve a problem. Algorithms work on the basis of data structures. Algorithms of various kinds work on the basis of data structures of various kinds. For example, a reservoir fluid simulator designed to predict oil, gas and water production volumes operates with a different set of data structures than the economic algorithm designed to predict economic returns. A decision management system may provide an interface through which a user can specify locations of file sources (e.g., locations of a file system on a network) and / or databases containing data structures. In addition, the decision management system may initiate tools that allow the user to create and modify data structures.

Каждая структура данных включает в себя множество из одного или нескольких значений данных. Однако некоторые значения данных из структуры данных могут представлять собой параметры или величины, которые являются неопределенными. Поэтому системой управления принятием решений пользователю может предоставляться механизм для выбора значения данных в структуре данных и для продвижения значения данных в переменную неопределенности путем привнесения множества достижимых значений для переменной неопределенности и распределения вероятностей для переменной неопределенности. (По умолчанию исходное значение данных может быть включено в качестве одного из значений во множество достижимых значений переменной неопределенности). Любое количество значений данных из любого количества структур данных может быть продвинуто таким образом в переменные неопределенности.Each data structure includes a plurality of one or more data values. However, some data values from the data structure may be parameters or values that are uncertain. Therefore, a decision management system can provide the user with a mechanism for selecting the data value in the data structure and for moving the data value into the uncertainty variable by introducing the set of achievable values for the uncertainty variable and the probability distribution for the uncertainty variable. (By default, the original data value may be included as one of the values in the set of achievable values of the uncertainty variable). Any number of data values from any number of data structures can thus be advanced into uncertainty variables.

Кроме того, значение данных в структуре данных может представлять один возможный результат решения. Пользователь может захотеть рассмотреть другие возможные результаты решения. Поэтому системой управления принятием решений может предоставляться пользователю механизм для выбора значения данных из структуры данных и для продвижения значения данных в переменную решения путем привнесения множества достижимых значений, представляющих возможные результаты решения. (Например, количество скважин, подлежащих бурению на определенном месторождении, может быть равно любому целому числу от А до В включительно. В качестве другого примера, производительность определенного насоса может быть равна любому значению в диапазоне от X до Y, выраженному в кубических футах в секунду). По умолчанию исходное значение данных может быть включено в качестве одного из элементов множества достижимых значений. Любое количество значений данных из любого количества структур данных может быть продвинуто таким образом в переменные решения.In addition, the value of the data in the data structure may represent one possible outcome of the decision. The user may want to consider other possible outcomes of the solution. Therefore, a decision management system can provide the user with a mechanism for selecting the data value from the data structure and for promoting the data value in the decision variable by introducing a plurality of achievable values representing possible decision results. (For example, the number of wells to be drilled in a given field can be equal to any integer from A to B. Including. As another example, the productivity of a particular pump can be any value in the range from X to Y, expressed in cubic feet per second ) By default, the original data value can be included as one of the elements of the set of reachable values. Any number of data values from any number of data structures can thus be promoted into decision variables.

Множество достижимых значений для переменной решения или переменной неопределенности может быть конечным множеством (например, конечным множеством численных значений, задаваемых пользователем) или бесконечным множеством (например, интервалом вещественной линии или области в n-мерном пространстве Евклида, где n - целое положительное число).The set of attainable values for a solution variable or a variable of uncertainty can be a finite set (e.g., a finite set of numerical values specified by the user) or an infinite set (e.g., an interval of a real line or region in n-dimensional Euclidean space, where n is a positive integer).

Пользователь может различными способами задавать распределение вероятностей для переменной неопределенности. Если переменная неопределенности имеет множество достижимых значений, которое является непрерывным, системой управления принятием решений может предоставляться пользователю возможность задавать плотность распределения вероятностей (ПРВ) путем выбора вида плотности распределения вероятностей (например, нормального, равномерного, треугольного и т.д.) и задавать параметры, определяющие конкретную плотность распределения вероятностей в рамках выбранного вида. Если переменная неопределенности имеет множество достижимых значений, которое является конечным, системой управления принятием решений может предоставляться пользователю возможность ввода значений вероятности (или численных значений, которые в дальнейшем могут быть нормированы относительно значений вероятности) для достижимых значений переменной неопределенности. Системой управления принятием решений может предоставляться пользователю возможность приводить плотность распределения вероятностей в качественное и количественное согласие с существующим множеством значений для переменной неопределенности (возможно, по аналогии).The user can set the probability distribution for the variable uncertainty in various ways. If the uncertainty variable has a set of achievable values that is continuous, the decision management system can provide the user with the opportunity to set the probability distribution density (PRV) by choosing the type of probability distribution density (for example, normal, uniform, triangular, etc.) and set the parameters that determine the specific probability distribution density within the selected type. If the uncertainty variable has a set of achievable values, which is finite, the decision management system can provide the user with the ability to enter probability values (or numerical values that can later be normalized with respect to probability values) for the achievable values of the uncertainty variable. The decision management system may provide the user with the opportunity to bring the probability distribution density into qualitative and quantitative agreement with the existing set of values for the uncertainty variable (possibly by analogy).

Возможен случай, когда структур данных две или более, при этом каждая может быть привнесена в качестве входных данных в определенный алгоритм (или в определенный набор алгоритмов). Пользователю может быть точно не известно, какую из двух или более структур данных использовать. Например, для одного и того же коллектора могут быть две геоклеточные модели, и может быть неясно, какая модель является лучшим представлением физического коллектора. Следовательно, пользователь может захотеть создать поток, в котором алгоритм выполняется несколько раз, при этом каждый раз с использованием случайно выбранной одной из двух или более структур данных. Поэтому системой управления принятием решений пользователю может быть предоставлен механизм для образования переменной неопределенности, достижимые значения которой согласованы соответственно с двумя или более структурами данных. Пользователь может присвоить значения вероятности двум или более достижимым значениям. Каждое значение вероятности представляет вероятность того, что соответствующая структура данных будет выбрана из любой определенной реализации переменной неопределенности. Пользователь может делать выбор, чтобы образовывать любое количество переменных неопределенности этого вида. Набор структур данных, которые таким образом преобразуются в достижимые значения переменной неопределенности, называется «подчиненным переменной неопределенности».A case is possible when there are two or more data structures, each of which can be introduced as input into a specific algorithm (or a specific set of algorithms). The user may not know exactly which of two or more data structures to use. For example, for the same reservoir, there may be two geocellular models, and it may not be clear which model is the best representation of the physical reservoir. Therefore, the user may want to create a thread in which the algorithm is executed several times, each time using a randomly selected one of two or more data structures. Therefore, a decision management system may provide the user with a mechanism for generating a variable uncertainty whose achievable values are consistent with two or more data structures, respectively. The user can assign probability values to two or more attainable values. Each probability value represents the probability that the corresponding data structure will be selected from any particular implementation of the uncertainty variable. The user can make a choice to form any number of uncertainty variables of this kind. A set of data structures that are thus converted to attainable values of the uncertainty variable is called a "subordinate to the uncertainty variable."

Кроме того, возможен случай, когда структур данных две или более, при этом они представляют альтернативные результаты решения. Например, структур данных может быть две или более, при этом каждая представляет возможную реализацию для местоположений скважин и соединений трубопроводов оборудования. Поэтому системой управления принятием решений пользователю может предоставляться механизм для образования переменной решения, достижимые значения которой согласованы соответственно с двумя или более структурами данных. Набор структур данных, которые таким образом преобразуются в достижимые значения переменной решения, называется «подчиненным переменной решения».In addition, there may be a case where the data structures are two or more, while they represent alternative solutions. For example, there may be two or more data structures, each representing a possible implementation for well locations and equipment piping connections. Therefore, a decision management system may provide the user with a mechanism for generating a decision variable whose achievable values are consistent with two or more data structures, respectively. A set of data structures that are thus converted to reachable values of the decision variable is called a “subordinate of the decision variable”.

Поэтому системой управления принятием решений пользователю предоставляется возможностьTherefore, the decision management system provides the user with the opportunity

(1) задавать местоположения источников для структур данных, создавать структуры данных и модифицировать структуры данных;(1) specify source locations for data structures, create data structures, and modify data structures;

(2) продвигать значения данных из структур данных в переменные неопределенности и переменные решения;(2) to advance data values from data structures into uncertainty variables and decision variables;

(3) подчинять структуры данных переменным неопределенности;(3) subordinate data structures to uncertainty variables;

(4) подчинять структуры данных переменным решения.(4) subordinate data structures to decision variables.

Некоторые структуры данных могут быть отнесены к моделям, поскольку они описывают (характеризуют) представляющие интерес системы. Например, структуры данных могут включать в себя геоклеточные модели коллекторов, модели конструкций скважин и т.д. Объекты, вытекающие из операций (2), (3) и (4), в настоящей заявке также именуются моделями.Some data structures can be categorized as models because they describe (characterize) systems of interest. For example, data structures may include geo-cellular reservoir models, well design models, etc. Objects arising from operations (2), (3) and (4) are also referred to as models in this application.

Система управления принятием решений может быть сконфигурирована для поддержки использования очень точных моделей физического коллектора, моделей скважин, моделей продуктивного потока и экономических моделей.A decision management system can be configured to support the use of very accurate physical reservoir models, well models, production flow models, and economic models.

Некоторые из переменных неопределенности могут быть коррелированными. Поэтому системой управления принятием решений пользователю предоставляется возможность задавать корреляционные связи между парами переменных неопределенности. Например, пользователь может выбирать пару переменных неопределенности и вводить коэффициент корреляции, чтобы задавать корреляционную связь между парой переменных неопределенности. Согласно некоторым осуществлениям пользователь может выбирать группу из двух или более переменных неопределенности и вводить корреляционную матрицу для группы. При выполнении потока переменные неопределенности конкретизируются способом, в котором принимаются во внимание корреляционные связи, заданные пользователем.Some of the uncertainty variables may be correlated. Therefore, the decision management system provides the user with the opportunity to set correlation relationships between pairs of uncertainty variables. For example, a user can select a pair of uncertainty variables and enter a correlation coefficient to specify a correlation between a pair of uncertainty variables. In some embodiments, a user may select a group of two or more uncertainty variables and enter a correlation matrix for the group. When the flow is executed, the uncertainty variables are specified in a way that takes into account the correlation relationships specified by the user.

Некоторые переменные неопределенности могут иметь между собой функциональные зависимости, например функциональные зависимости вида Y=f(X), Y=f(X1,X2), Y=f(X1,X2,X3) и т.д., где X, X1, X2, X3 и Y суть переменные неопределенности. Поэтому системой управления принятием решений может предоставляться интерфейс пользователя, который позволяет пользователю задавать такие функциональные зависимости. Могут поддерживаться любые из большого разнообразия функций (включая линейные и нелинейные функции). Согласно некоторым осуществлениям интерфейс пользователя позволяет пользователю конструировать произвольную алгебраическую функцию переменных неопределенности. При выполнении потока переменные неопределенности конкретизируются способом, в котором принимаются во внимание эти функциональные зависимости. Например, если Y=f(X), конкретизация для Y может быть получена прежде всего конкретизацией X и затем оцениванием функции f на основании конкретизации X. Аналогичным образом, переменные решения могут иметь функциональные зависимости между собой, например функциональные зависимости вида Y=f(X), Y=f(X1,X2), Y=f(X1,X2,X3) и т.д., где X, X1, X2, X3 и Y суть переменные решения. Поэтому один и тот же интерфейс пользователя (или другой интерфейс пользователя) может быть использован для задания таких функциональных зависимостей между переменными решения.Some uncertainty variables can have functional dependencies among themselves, for example, functional dependencies of the form Y = f (X), Y = f (X 1 , X 2 ), Y = f (X 1 , X 2 , X 3 ), etc. where X, X 1 , X 2 , X 3, and Y are uncertainty variables. Therefore, a decision management system may provide a user interface that allows the user to define such functional dependencies. Any of a wide variety of functions (including linear and non-linear functions) can be supported. According to some implementations, the user interface allows the user to construct an arbitrary algebraic function of the uncertainty variables. When a thread executes, the uncertainty variables are instantiated in a manner in which these functional dependencies are taken into account. For example, if Y = f (X), the concretization for Y can be obtained first of all by concretizing X and then evaluating the function f based on the concretization of X. Similarly, decision variables can have functional relationships among themselves, for example, functional dependencies of the form Y = f ( X), Y = f (X 1 , X 2 ), Y = f (X 1 , X 2 , X 3 ), etc., where X, X 1 , X 2 , X 3 and Y are solution variables. Therefore, the same user interface (or another user interface) can be used to specify such functional dependencies between decision variables.

Некоторые из переменных решения или функциональных комбинаций переменных решения могут быть подчинены ограничениям. Поэтому системой управления принятием решений может предоставляться интерфейс пользователя, который позволяет пользователю задавать ограничивающие условия, такие какSome of the decision variables or functional combinations of decision variables may be subject to constraints. Therefore, a decision management system may provide a user interface that allows the user to set restrictive conditions, such as

Y ″неравенство″ Х,Y ″ inequality ″ X,

Y ″неравенство″ f(X),Y ″ inequality ″ f (X),

Y ″неравенство″ f(X1,X2),Y ″ inequality ″ f (X 1 , X 2 ),

Y ″неравенство″ f(X1,X2,X3),Y ″ inequality ″ f (X 1 , X 2 , X 3 ),

и т.д.,etc.,

на переменные решения, такие как X, X1, X2, X3 и Y, где ″неравенство″ может быть любым из операторов неравенства, <, ≤, > или ≥. Может поддерживаться любая из большого разнообразия функций f (в том числе линейные и нелинейные функции). Согласно некоторым осуществлениям интерфейс пользователя предоставляет пользователю возможность конструировать произвольную алгебраическую функцию переменных решения. При выполнении потока осуществляется оптимизация, при которой принимаются во внимание ограничивающие условия, заданные пользователем на переменные решения.to decision variables such as X, X 1 , X 2 , X 3, and Y, where ″ inequality ″ can be any of the inequality operators, <, ≤,> or ≥. Any of a wide variety of f functions (including linear and non-linear functions) can be supported. According to some implementations, the user interface allows the user to construct an arbitrary algebraic function of the decision variables. When the flow is executed, optimization is carried out, in which the limiting conditions set by the user on the decision variables are taken into account.

Кроме того, системой управления принятием решений может предоставляться интерфейс пользователя, через который пользователь может задавать набор данных для управления выполнением. Набор данных для управления выполнением содержит информацию для регулирования и квалификации выполнения потока. Например, набор данных для управления выполнением может включать в себя такую информацию, какIn addition, a decision management system may provide a user interface through which the user can define a data set for execution control. The data set for execution control contains information for regulating and qualifying the flow. For example, a data set for execution control may include information such as

способ конкретизации переменных неопределенности в потоке; иa way of concretizing the variables of uncertainty in the stream; and

количество итераций для соответствующих циклов в потоке.number of iterations for the corresponding cycles in the stream.

В способе конкретизации методом Монте-Карло переменные неопределенности (или некоторый поднабор переменных неопределенности) могут быть конкретизированы случайным образом путем использования генераторов случайных чисел. В способе конкретизации на основе латинского гиперкуба переменные неопределенности (или некоторый поднабор переменных неопределенности) могут быть конкретизированы путем использования хорошо известного метода латинского гиперкуба. В способе конкретизации на основе планирования эксперимента переменные неопределенности (или некоторый поднабор переменных неопределенности) могут быть конкретизированы путем использования любого из различных хорошо известных методов планирования эксперимента.In the Monte Carlo concretization method, the uncertainty variables (or some subset of the uncertainty variables) can be instantiated concretely by using random number generators. In the Latin hypercube-based concretization method, uncertainty variables (or some subset of the uncertainty variables) can be instantiated using the well-known Latin hypercube method. In the concretization method based on the design of the experiment, the uncertainty variables (or some subset of the uncertainty variables) can be instantiated using any of various well-known experimental design methods.

С течением времени пользователь может сконструировать некоторое количество потоков, некоторое количество наборов моделей и некоторое количество наборов данных для управления выполнением. Системой управления принятием решений пользователю может предоставляться возможность выбора потока, набора моделей и набора данных для управления выполнением и инициирования выполнения потока с учетом набора данных для управления выполнением и набора моделей. Кроме того, системой управления принятием решений пользователю может предоставляться больший контроль над тем, каким образом поток может быть выполнен. Например, согласно некоторым осуществлениям поток может выполняться для осуществления конкретных итераций, которые по различным причинам могут отрицательно сказываться на предшествующих выполнениях потока. Согласно другим осуществлениям дополнительные итерации могут быть произведены относительно потоков, которые были выполнены ранее.Over time, the user can design a certain number of threads, a certain number of sets of models and a certain number of data sets to control the execution. The decision management system may provide the user with the ability to select a stream, a set of models and a data set to control the execution and initiate the execution of the stream, taking into account the data set for execution control and a set of models. In addition, the decision management system may provide the user with greater control over how the flow can be performed. For example, according to some implementations, the stream may be performed to perform specific iterations, which for various reasons may adversely affect the previous execution of the stream. According to other implementations, additional iterations can be performed on the threads that were performed previously.

Системой управления принятием решений пользователю могут предоставляться различные средства для создания потоков различных видов. Например, согласно некоторым осуществлениям программа для управления принятием решений может включать в себя построитель потока решений, который сконфигурирован для автоматизации процесса построения потока с целью оптимизации решений, относящихся к разработке набора объектов (например, набора нефтегазовых месторождений) способом, в котором учитываются различные неопределенности, относящиеся к набору объектов.The decision management system may provide the user with various means for creating flows of various kinds. For example, according to some implementations, the decision management program may include a decision flow builder that is configured to automate the flow construction process in order to optimize decisions related to developing a set of objects (e.g., a set of oil and gas fields) in a manner that takes into account various uncertainties, related to a set of objects.

Архитектура клиент-серверClient server architecture

Система управления принятием решений может быть реализована путем выполнения программы управления принятием решений в одной группе из одного или нескольких компьютеров.A decision management system can be implemented by executing a decision management program in one group of one or more computers.

Программа управления принятием решений может быть разделена на клиентское приложение и серверное приложение с протоколом связи между клиентским приложением и серверным приложением. Например, протокол связи может быть реализован путем использования удаленного вызова метода (RMI) или Web-служб.The decision management program can be divided into a client application and a server application with a communication protocol between the client application and the server application. For example, a communication protocol can be implemented using a remote method call (RMI) or Web services.

Клиентское приложение может выполняться на клиентском компьютере, а серверное приложение может выполняться на серверном компьютере. Однако условие, что клиентское приложение и серверное приложение должны выполняться на отдельных компьютерах, не является необходимым. Если компьютер имеет достаточную вычислительную мощность, клиентское приложение и серверное приложение могут выполняться на этом компьютере.The client application can run on the client computer, and the server application can run on the server computer. However, the condition that the client application and the server application must be run on separate computers is not necessary. If the computer has sufficient computing power, the client application and the server application can run on that computer.

Серверное приложение может быть сконфигурировано для использования диспетчеров. Диспетчер представляет собой программу (или систему программ), сконфигурированную для распределения независимых групп вычислений (например, итераций большого задания) по другим процессорам (или компьютерам) для выполнения на этих других процессорах. Другие процессоры могут быть распределены по сети, такой как локальная вычислительная сеть, глобальная сеть или Интернет. Кроме того, другие процессоры могут быть частью аппаратного устройства с разделяемой памятью, такого как кластер, и могут быть использованы как единый блок (например, в ситуации параллельного выполнения вычислений).The server application can be configured to use dispatchers. A dispatcher is a program (or system of programs) configured to distribute independent groups of calculations (for example, iterations of a large task) among other processors (or computers) for execution on these other processors. Other processors may be distributed over a network, such as a local area network, wide area network, or the Internet. In addition, other processors can be part of a shared memory hardware device, such as a cluster, and can be used as a single unit (for example, in a situation of parallel computing).

Согласно некоторым осуществлениям основные модули клиентского приложения и серверного приложения (то есть потоковый сервер) могут быть такими, какие показаны на фигуре 1.In some embodiments, the core modules of the client application and the server application (i.e., the streaming server) may be as shown in FIG. 1.

Клиентское и серверное приложенияClient and server applications

Клиентское приложение 100 может включать в себя построитель 107 потоков, менеджер 102 моделей, исполнитель 109 потоков и выходной анализатор 112.The client application 100 may include a stream builder 107, a model manager 102, a stream executor 109, and an output analyzer 112.

Построителем 107 потоков предоставляется интерфейс пользователя, через который пользователь осуществляет постановку задачи и создает поток для решения ее.The builder 107 threads provides a user interface through which the user sets the task and creates a thread to solve it.

Менеджером 102 моделей предоставляется интерфейс, через который пользователь может осуществлять создание, построение и модификацию моделей, включающих в себя переменные решения и переменные неопределенности.The model manager 102 provides an interface through which the user can create, build, and modify models that include decision variables and uncertainty variables.

Исполнитель 109 потоков используется для инициирования выполнения потоков. В ответ на требование пользователя о выполнении потока исполнитель потоков отправляет поток вместе с совместимым набором моделей и совместимым набором данных управления выполнением в потоковый сервер с тем, чтобы поток мог быть выполнен. Кроме того, исполнитель потоков может принимать информацию о состоянии из потокового сервера, относящуюся к выполняемым в настоящее время потокам и очередным потокам, и отображать для пользователя информацию о состоянии. Потоковый сервер может отправлять результаты выполнения потока обратно в исполнитель потоков и/или сохранять результаты в базе данных.Thread artist 109 is used to initiate thread execution. In response to a user request for thread execution, the thread executor sends the stream along with a compatible set of models and a compatible set of execution control data to the stream server so that the stream can be executed. In addition, the thread executor can receive status information from the streaming server related to the currently executing streams and successive streams, and display status information to the user. The streaming server may send the results of the stream to the stream executor and / or store the results in a database.

Потоковый сервер может включать в себя удаленный интерфейс 160 прикладного программирования (API-интерфейс), предназначенный для связи с клиентскими приложениями, такими как клиентское приложение 100.The streaming server may include a remote application programming interface 160 (API) for communicating with client applications, such as client application 100.

Выходным анализатором 112 пользователю предоставляется возможность осуществления анализа данных по результатам выполнения потока.The output analyzer 112 provides the user with the ability to analyze data based on the results of the stream.

Потоковый сервер 155 может выполнять потоки (или управлять выполнением потоков), которые передаются в качестве заданий от клиентского приложения. Потоковым сервером 155 может предоставляться информация о состоянии выполняемых заданий в исполнитель потоков. Кроме того, потоковый сервер обеспечивает возможность снятия заданий.Stream server 155 may execute threads (or control the execution of threads) that are transmitted as jobs from the client application. The streaming server 155 may provide information about the status of the jobs being performed to the streaming agent. In addition, the streaming server provides the ability to remove tasks.

Модули клиентского приложенияClient Application Modules

Как отмечалось выше, клиентское приложение может быть разделено, как показано на фигуре 1, на ряд модулей. Каждый модуль может иметь относящийся к нему интерфейс прикладного программирования (API-интерфейс), и через эти интерфейсы осуществляется связь различных модулей. Таким образом, клиентское приложение может включать в себя API-интерфейс 103 менеджера моделей, API-интерфейс 106 построителя потока решений, API-интерфейс 108 построителя потоков, API-интерфейс 110 исполнителя потоков и API-интерфейс 113 выходного анализатора.As noted above, the client application can be divided, as shown in figure 1, into a number of modules. Each module can have an application programming interface (API) related to it, and various modules communicate through these interfaces. Thus, the client application may include a model manager API 103, a decision flow builder API 106, a flow builder API 108, a flow executor API 110, and an output analyzer API 113.

Согласно некоторым осуществлениям эти API-интерфейсы являются только обеспечивающими сопряжение между модулями, поэтому модули могут быть разработаны независимо.According to some implementations, these APIs are only capable of interfacing between modules, so the modules can be developed independently.

Кроме того, каждый из модулей, для которого требуется связь с внешними приложениями, может иметь удаленный интерфейс прикладного программирования. Поэтому согласно некоторым осуществлениям клиентское приложение может включать в себя удаленный API-интерфейс 104 менеджера моделей и удаленный API-интерфейс 111 исполнителя потоков.In addition, each of the modules, which requires communication with external applications, can have a remote application programming interface. Therefore, according to some implementations, the client application may include a remote model manager API 104 and a remote thread executor API 111.

Менеджер моделейModel manager

Менеджером 102 моделей может предоставляться интерфейс, который позволяет пользователю импортировать, создавать, редактировать и сопровождать модели, например модели, включающие в себя переменные неопределенности и переменные решения, описанные выше. Менеджер моделей также может сопровождать модели в проектах или других структурах, задаваемых пользователем.Model manager 102 may provide an interface that allows the user to import, create, edit, and maintain models, for example, models that include uncertainty variables and decision variables described above. The model manager can also accompany models in projects or other user-defined structures.

Виды структур данных, подлежащих включению в модели, предназначенные для определенного потока, зависят от алгоритмов, включаемых в поток. Поэтому менеджер моделей может осуществлять связь с построителем потоков для уверенности в том, что пользователь поставляет структуры данных, которые являются согласованными с алгоритмами определенного потока. Например, менеджером моделей может приниматься от построителя потоков перечень алгоритмов в потоке. В таком случае менеджер модели может сосредотачиваться на запросе от пользователя видов структур данных, подходящих для перечисленных алгоритмов. И наоборот, модели, выбранные пользователем, могут определять вид потока, который может быть выполнен. Поэтому, если пользователь создает и вводит структуру данных, то в таком случае пользователю может быть рекомендовано выбирать только те потоки, которые способны выполнять эту модель. Согласно некоторым осуществлениям менеджер моделей может быть сконфигурирован для запуска хорошо известных инструментальных программных средств с целью создания и редактирования моделей определенных видов. Например, каждая модель может быть специфического вида, а каждый вид может иметь специфическое инструментальное средство, зарегистрированное для обеспечения возможности создания модели, редактирования ее, просмотра и т.д. Такое решение может быть аналогичным редакторам свойств по технологии JavaBean, которыми предоставляется специализированный графический интерфейс пользователя, регистрируемый по технология JavaBean. Кроме того, в таком решении могут использоваться некоторые из представлений в рамках каркаса активации по технологии JavaBeans.The types of data structures to be included in the models intended for a particular stream depend on the algorithms included in the stream. Therefore, the model manager can communicate with the stream builder to ensure that the user supplies data structures that are consistent with the algorithms of a particular stream. For example, a list of algorithms in a stream may be received from the flow builder by the model manager. In this case, the model manager can focus on requesting from the user the types of data structures suitable for the above algorithms. Conversely, models selected by the user can determine the type of stream that can be executed. Therefore, if the user creates and enters a data structure, then in this case the user may be recommended to select only those threads that are capable of executing this model. In some embodiments, the model manager may be configured to run well-known software tools to create and edit certain types of models. For example, each model may be of a specific type, and each type may have a specific tool registered for enabling the creation of a model, editing, viewing, etc. Such a solution can be similar to JavaBean property editors, which provide a specialized graphical user interface that is registered using JavaBean technology. In addition, some of the views within the framework of the activation framework using JavaBeans technology can be used in such a solution.

Поскольку нет необходимости в том, чтобы структуры данных, поставляемые пользователем, включали в себя переменные решения или переменные неопределенности, менеджером моделей могут предоставляться обобщенные механизмы для продвижения значений данных из структур данных в переменные решения и переменные неопределенности совместно со структурами данных и для подчинения структур данных переменным решения и переменным неопределенности.Since there is no need for user-supplied data structures to include decision variables or uncertainty variables, the model manager can provide generic mechanisms for moving data values from data structures to decision variables and uncertainty variables together with data structures and to subordinate data structures decision variables and uncertainty variables.

Менеджер моделей может функционировать как менеджер ситуаций, позволяя клонировать существующую модель и изменять субкомпоненты.The model manager can function as a situation manager, allowing you to clone an existing model and change subcomponents.

Построитель потоковThread builder

Алгоритмы являются компоновочными блоками потоков. Алгоритм может рассматриваться как процесс, который имеет входные данные и образует выходные данные. Поток представляет собой набор алгоритмов, которые взаимосвязаны друг с другом для решения определенной задачи. Следует отметить, что при желании сам поток может быть преобразован в алгоритм.Algorithms are building blocks of threads. The algorithm can be considered as a process that has input data and forms output data. A stream is a set of algorithms that are interconnected to solve a specific problem. It should be noted that, if desired, the stream itself can be converted into an algorithm.

Построителем 107 потоков предоставляется интерфейс пользователя, с помощью которого пользователь может создавать произвольные потоки. Например, построителем потоков пользователю может предоставляться возможность выбора алгоритмов из набора имеющихся алгоритмов и связи алгоритмов друг с другом (то есть связи выходных данных алгоритмов с входными данными других алгоритмов) для формирования потока. Набор имеющихся алгоритмов может включать в себя ряд алгоритмов, полезных для планирования разведки, разработки и/или эксплуатации ряда месторождений, например таких алгоритмов, как геологические или геостатистические имитаторы, имитаторы материального баланса, имитаторы движения флюидов в коллекторе, имитаторы насосно-компрессорных труб, имитаторы процессов в оборудовании, имитаторы сети трубопроводов и экономические алгоритмы. Согласно некоторым осуществлениям имитаторы могут быть выполнены путем использования одного или нескольких инструментальных средств, коммерческих или с открытым исходным кодом (например, имитатора Landmark повышения экономической эффективности коллектора или другого имитатора на основе конечно-разностного метода или метода конечных элементов, или имитатора линий тока, имитатора Petex GAP наземного трубопровода, Microsoft's Excel, имитатора Petex MBAL материального баланса, геостатистического генератора GSLIB).The thread builder 107 provides a user interface with which the user can create arbitrary threads. For example, the stream builder may provide the user with the option of selecting algorithms from the set of available algorithms and linking the algorithms to each other (that is, linking the output of the algorithms to the input of other algorithms) to form the stream. The set of available algorithms may include a number of algorithms useful for planning exploration, development and / or exploitation of a number of fields, for example, algorithms such as geological or geostatistical simulators, material balance simulators, reservoir fluid flow simulators, tubing simulators, simulators processes in equipment, pipeline network simulators and economic algorithms. In some embodiments, simulators can be performed using one or more tools, either commercial or open source (for example, a Landmark simulator to increase the cost-effectiveness of a collector or other simulator based on a finite difference or finite element method, or a streamline simulator, a simulator Petex GAP onshore pipeline, Microsoft's Excel, Petex MBAL material balance simulator, GSLIB geostatistical generator).

Кроме того, построителем потоков пользователю может предоставляться возможность построения алгоритмов из рабочей памяти или импортирования программ, которые могут быть использованы как алгоритмы. Согласно некоторым осуществлениям построителем потоков пользователю может предоставляться возможность задания произвольной алгебраической функции в качестве алгоритма или импортирования нейронной сети для использования в качестве алгоритма.In addition, the thread builder may provide the user with the opportunity to build algorithms from the working memory or import programs that can be used as algorithms. According to some implementations, the flow builder may provide the user with the option of defining an arbitrary algebraic function as an algorithm or importing a neural network for use as an algorithm.

Согласно одному ряду осуществлений при формировании направленных связей между алгоритмами построителем потоков могут накладываться ограничения на вид данных. Например, построителем потоков может разрешаться присоединение выходных целочисленных данных от одного алгоритма к входным данным с плавающей запятой второго алгоритма, но запрещаться присоединение выходных данных с плавающей запятой к входным целочисленным данным.According to one set of implementations, when forming directional relationships between algorithms, the flow builder may impose restrictions on the type of data. For example, the stream builder may allow the attachment of output integer data from one algorithm to the floating-point input of the second algorithm, but the attachment of floating-point output to the input integer may be prohibited.

В построителе потоков может использоваться механизм поиска для нахождения алгоритмов. Механизм поиска может поддерживать поиск по категории алгоритма (такой, как «алгоритм динамики добычи»), виду входных данных, виду выходных данных и т.д.The thread builder can use a search engine to find algorithms. The search engine can support searches by category of algorithm (such as “mining dynamics algorithm”), type of input, type of output, etc.

Согласно некоторым осуществлениям построитель потоков может быть сконфигурирован путем использования одного или нескольких коммерческих инструментальных средств (например, системы Landmark управления принятием решений в пространстве решений).In some embodiments, the stream builder may be configured using one or more commercial tools (e.g., a Landmark decision management system in a decision space).

После создания алгоритмы и потоки могут быть зарегистрированы менеджером моделей какOnce created, algorithms and threads can be registered by the model manager as

пригодные к использованию пользователем;suitable for use by the user;

пригодные к использованию членами коллектива, совместно работающими над проектом;suitable for use by team members working together on a project;

пригодные к использованию в компании;suitable for use in the company;

готовые для внешнего распределения по заказчикам.ready for external distribution to customers.

Исполнитель потоковStream executor

Исполнителем 109 потоков может предоставляться интерфейс пользователя, который позволяет пользователю инициировать выполнение потоков. Когда пользователь выдает команду на инициирование выполнения потока с учетом набора моделей и набора данных для управления выполнением, исполнитель потоков составляет задание, включающее в себя поток, набор моделей и набор данных для управления выполнением, и представляет задание в потоковый сервер. Потоковый сервер может сгенерировать уникальный идентификатор для задания и переслать идентификатор задания в исполнитель потоков. В исполнителе потоков идентификатор задания может быть записан.The thread executor 109 may provide a user interface that allows the user to initiate thread execution. When the user issues a command to initiate the execution of a stream, taking into account a set of models and a data set for controlling execution, the stream executor composes a task including a stream, a set of models and a data set for controlling execution, and submits the task to the streaming server. The streaming server can generate a unique identifier for the job and forward the job identifier to the stream executor. In the thread executor, the job identifier can be written.

В дополнение к получению потоков с построителя потоков и моделей от менеджера моделей исполнитель потоков может также загружать описание потока и относящихся к нему моделей из набора входных файлов (например, XML-файлов), задаваемых пользователем. Исполнитель потоков может отображать перечень заданий, включающий в себя задания, которые выполняются в настоящее время (в том числе текущее состояние их), и задания, которые находятся на стадии ожидания. Интерфейс исполнителя потоков позволяет пользователю снимать задания. Кроме того, интерфейс исполнителя потоков может позволять пользователю получать доступ к любым уже имеющимся результатам задания. Результаты могут быть отображены через пользовательский интерфейс выходного анализатора.In addition to receiving streams from the stream builder and models from the model manager, the stream executor can also download a description of the stream and its related models from a set of input files (for example, XML files) specified by the user. The thread executor can display a list of tasks that includes tasks that are currently being performed (including their current status) and tasks that are waiting. The thread executor interface allows the user to take off tasks. In addition, the thread executor’s interface can allow the user to access any existing task results. Results can be displayed through the user interface of the output analyzer.

Исполнитель потоков может быть сконфигурирован для направления заданий на любой из большого количества потоковых серверов. Потоковые серверы можно создавать из группы компьютеров, связанных через сеть. Исполнителем потока клиенту может предоставляться возможность решать, на какой потоковый сервер должно быть направлено задание. Для выполнения заданий различных видов различные потоковые серверы могут быть изготовлены по индивидуальным заказам.The streaming artist can be configured to direct jobs to any of a large number of streaming servers. Streaming servers can be created from a group of computers connected through a network. The streaming agent may provide the client with the opportunity to decide which streaming server the job should be directed to. To perform tasks of various kinds, various streaming servers can be made to order.

Выходной анализаторOutput analyzer

Основной задачей выходного анализатора 112 может быть предоставление пользователю средства для осмысливания выходных данных, получаемых в результате выполнения задания (то есть потока с учетом заданного набора моделей и набора данных для управления выполнением). Выходные данные могут быть сложными, поскольку поток может иметь сложную структуру, например структуру с внешним циклом и многочисленными внутренними циклами.The main task of the output analyzer 112 may be to provide the user with a means to comprehend the output obtained from the task (i.e., the stream, taking into account a given set of models and a data set to control the execution). The output can be complex because the stream can have a complex structure, for example, a structure with an outer loop and multiple inner loops.

Выходной анализатор может быть сконфигурирован для обеспечения пользователю возможности исследования выходных данных от выполненного потока и наблюдения результатов от потока, все еще выполняемого на потоковом сервере.The output analyzer may be configured to allow the user to examine the output from the executed stream and observe the results from the stream still running on the stream server.

Выходной анализатор может иметь доступ ко всему набору инструментальных средств анализа данных, а также способен форматировать выходные данные с тем, чтобы они могли быть проанализированы в стороннем инструментальном средстве (таком, как Microsoft Excel).The output analyzer can have access to the entire set of data analysis tools, and is also able to format the output so that it can be analyzed in a third-party tool (such as Microsoft Excel).

Интерфейс вычислителя результатовResult Calculator Interface

Клиентское приложение может также включать в себя интерфейс вычислителя результатов (не показанный на чертежах). Интерфейс вычислителя результатов позволяет пользователю задавать специальные вычисления, которые должны быть встроены в поток. Специальные вычисления могут полезными в случае, когда выходные данные первого алгоритма (или первого набора алгоритмов) не являются точно входными данными, необходимыми для второго алгоритма (или второго набора алгоритмов), но могут быть использованы для вычисления входных данных, необходимых для второго алгоритма. Интерфейс вычислителя результатов позволяет пользователюThe client application may also include a result calculator interface (not shown in the drawings). The result calculator interface allows the user to specify special calculations that must be built into the stream. Special calculations can be useful when the output of the first algorithm (or the first set of algorithms) is not exactly the input required for the second algorithm (or the second set of algorithms), but can be used to calculate the input data needed for the second algorithm. The result calculator interface allows the user

выбирать один или несколько выходных аргументов из первого набора из одного или нескольких алгоритмов потока иselect one or more output arguments from the first set of one or more flow algorithms and

задавать функцию (например, произвольную алгебраическую функцию) одного или нескольких выходных аргументов;define a function (for example, an arbitrary algebraic function) of one or more output arguments;

задавать входной аргумент второго алгоритма (отличного от одного или нескольких алгоритмов из первого набора), то есть получать результат оценивания функции по выбранным выходным аргументам.set the input argument of the second algorithm (different from one or more algorithms from the first set), that is, get the result of evaluating the function for the selected output arguments.

В построителе потоков или построителе потока решений эта информация может использоваться для образования алгоритма вычислителя результатов, который реализует заданную функцию, с тем чтобы алгоритм вычислителя результатов был встроен в поток между первым набором алгоритмов и вторым алгоритмом. Пользователь может задавать любое желаемое количество специальных вычислений, чтобы они производились (во время выполнения потока) между алгоритмами или наборами алгоритмов в потоке.In the flow builder or decision flow builder, this information can be used to form a result calculator algorithm that implements a given function so that the result calculator algorithm is embedded in the stream between the first set of algorithms and the second algorithm. The user can specify any desired number of special calculations so that they are performed (during the execution of the stream) between the algorithms or sets of algorithms in the stream.

Потоковый серверStream server

Потоковый сервер 155 может быть разделен, как показано на фигуре 1, на некоторое количество отдельных модулей. Потоковый сервер может быть сконфигурирован для выполнения заданий. Задание включает в себя поток и набор входных данных.Stream server 155 may be divided, as shown in FIG. 1, into a number of separate modules. The streaming server can be configured to perform tasks. The task includes a stream and a set of input data.

В зависимости от количества заданий потоковый сервер может выполнять их параллельно, при этом потоковый сервер может устанавливать очередь ожидания выполнений. Потоковый сервер может обладать способностью снимать задания или изменять приоритет заданий.Depending on the number of jobs, the streaming server can execute them in parallel, while the streaming server can set a queue for waiting for executions. A streaming server may have the ability to remove tasks or change the priority of tasks.

Потоковый сервер может быть снабжен простым интерфейсом пользователя (например, по HTML-форме).The streaming server can be equipped with a simple user interface (for example, in HTML form).

В отличие от клиентского приложения потоковый сервер обычно может выполняться на другом компьютере. Однако потоковый сервер можно также выполнять на том же самом компьютере, что и клиентское приложение.Unlike a client application, a streaming server can usually run on another computer. However, the streaming server can also be run on the same computer as the client application.

Потоковый сервер поддерживает диалог с исполнителем потока, информируя исполнитель потока о состоянии заданий и т.д.The stream server maintains a dialogue with the stream executor, informing the stream executor about the status of tasks, etc.

Связь между исполнителем потока и потоковым сервером может быть основана на любом из большого разнообразия известных протоколов, таких как дистанционный вызов метода (RMI) или Web-службы.The connection between the stream executor and the streaming server can be based on any of a wide variety of known protocols, such as remote method call (RMI) or Web services.

Алгоритмы, модели, итераторы и диспетчерыAlgorithms, Models, Iterators, and Dispatchers

Система управления принятием решений сконфигурирована для выполнения потоков, которые включают в себя набор взаимосвязанных алгоритмов. Поток может выполняться на основании моделей с относящимися к ним переменными неопределенности и переменными решения в качестве входных данных. Например, модели могут включать в себя значения данных, которые продвинуты в переменные решения, значения данных, которые продвинуты в переменные неопределенности, структуры данных, которые подчинены переменным решения, структуры данных, которые подчинены переменным неопределенности, или любое сочетание их.A decision management system is configured to execute threads that include a set of interconnected algorithms. A flow can be performed based on models with related uncertainty variables and decision variables as input. For example, models can include data values that are advanced in decision variables, data values that are advanced in uncertainty variables, data structures that are subordinate to decision variables, data structures that are subordinate to uncertainty variables, or any combination of them.

Поток может включать в себя циклы, сконфигурированные для итерационного выполнения наборов алгоритмов. Диспетчеры могут быть использованы для распределения итераций по многочисленным компьютерам для параллельного выполнения.A stream may include loops configured to iteratively execute sets of algorithms. Dispatchers can be used to distribute iterations across multiple computers for parallel execution.

По умолчанию может быть предусмотрен диспетчер, который выполняет все итерации относящегося к нему цикла на локальном хост-компьютере.By default, a dispatcher can be provided that performs all iterations of the related cycle on the local host computer.

Кроме того, может быть предусмотрен сетевой диспетчер, который осуществляет поиск свободных компьютеров в сети и распределение итераций по этим свободным компьютерам.In addition, a network dispatcher may be provided that searches for free computers on the network and distributes iterations to these free computers.

Кроме того, может быть предусмотрен диспетчер метакомпьютерной сети, который распределяет итерации по сети компьютеров.In addition, a metacomputer network manager may be provided that distributes iterations over a network of computers.

Весьма вероятно, что количество моделей, особенно моделей, постоянно находящихся в памяти, и количество алгоритмов, которые работают в согласовании с моделями, будет возрастать с течением времени. Поэтому система управления принятием решений может быть сконфигурирована для перекрытия по своему усмотрению притока новых моделей и алгоритмов.It is very likely that the number of models, especially models that are constantly in memory, and the number of algorithms that work in accordance with the models will increase over time. Therefore, the decision management system can be configured to block at its discretion the influx of new models and algorithms.

Согласно некоторым осуществлениям система управления принятием решений может иметь интерфейс командного типа. Входные данные пользователя, направляемые через интерфейс командного типа, могут быть собраны и сохранены. При желании этим обеспечивается способ повторения набора интеракций.According to some implementations, the decision management system may have a command type interface. User input routed through the command type interface can be collected and stored. If desired, this provides a way to repeat a set of interactions.

Построитель потока решенийSolution Flow Builder

Клиентское приложение программы управления принятием решений может также включать в себя построитель потока решений. Построителем потока решений может предоставляться интерфейс пользователя, который ускоряет процесс построения потока с целью оптимизации решений, относящихся к разведке, разработке и эксплуатации объектов, таких как нефтегазовые месторождения.A decision management client application may also include a decision flow builder. The decision flow builder may provide a user interface that accelerates the flow construction process in order to optimize decisions related to exploration, development and operation of facilities such as oil and gas fields.

Согласно некоторым осуществлениям построитель потока решений может быть специально сконфигурирован для ускорения конструирования потока, включающего в себя внешний цикл оптимизации и набор внутренних циклов «исследования неопределенности», например, по одному внутреннему циклу на объект.In some embodiments, the decision flow builder may be specifically configured to speed up the design of the flow, including an external optimization loop and a set of internal “uncertainty studies” cycles, for example, one internal cycle per object.

Построителем потока решений может предоставляться графический интерфейс пользователя, через который пользователь можетThe decision flow builder may provide a graphical user interface through which the user can

а) задавать наименования объектов, подлежащих анализу;a) set the names of objects to be analyzed;

b) задавать вид для каждого из объектов, например, из таких видов, как разведочное месторождение, вскрытое месторождение и эксплуатируемое месторождение;b) specify a view for each of the objects, for example, from species such as an exploratory field, an discovered field and an exploited field;

с) задавать один или несколько алгоритмов (например, алгоритмов имитации процесса), подлежащих включению во внутренний цикл для каждого объекта;c) define one or more algorithms (for example, process simulation algorithms) to be included in the internal loop for each object;

d) задавать источники структур данных, согласованных с алгоритмами, задаваемыми на этапе (с);d) specify the sources of data structures consistent with the algorithms specified in step (c);

е) производить операции над структурами данных с целью построения моделей для каждого из объектов, при этом модели могут включать в себя переменные неопределенности и/или переменные решения, описанные выше;f) to perform operations on data structures in order to build models for each of the objects, while the models may include uncertainty variables and / or decision variables described above;

f) задавать глобальные переменные решения и глобальные переменные неопределенности;f) set global decision variables and global uncertainty variables;

g) задавать функциональные зависимости между переменными неопределенности и функциональные зависимости между переменными решения, в том числе функциональные зависимости в пределах объектов и по объектам;g) define functional relationships between uncertainty variables and functional relationships between decision variables, including functional relationships within and across objects;

h) задавать корреляционные связи между переменными неопределенности, в том числе корреляционные связи между переменными неопределенности в пределах объектов и по объектам;h) define correlation relationships between uncertainty variables, including correlation relationships between uncertainty variables within and across objects;

i) задавать ограничения на переменные решения или функциональные комбинации переменных решения;i) define constraints on decision variables or functional combinations of decision variables;

j1) задавать одну или несколько представляющих интерес величин для каждого объекта A(k), k=1, 2, …,NA, где каждая из величин представляет функциональную комбинацию из одного или нескольких выходных аргументов алгоритмов, относящихся к объекту A(k);j1) define one or more variables of interest for each object A (k), k = 1, 2, ..., N A , where each of the quantities represents a functional combination of one or more output arguments of algorithms related to object A (k) ;

j2) задавать статистические показатели, подлежащие вычислению, для каждого объекта A(k), k=1, 2, …,NA, на основании одной или нескольких заданных величин для объекта A(k);j2) set the statistical indicators to be calculated for each object A (k), k = 1, 2, ..., N A , based on one or more specified values for the object A (k);

k1) задавать глобальную целевую функцию S в виде функциональной комбинации из первого поднабора статистических показателей;k1) define the global objective function S in the form of a functional combination from the first subset of statistical indicators;

k2) задавать одну или несколько вспомогательных функций, при этом каждая вспомогательная функция является функциональной комбинацией, соответствующей поднабору статистических показателей;k2) define one or more auxiliary functions, with each auxiliary function being a functional combination corresponding to a subset of statistical indicators;

k3) задавать одно или несколько ограничений, в том числе на одну или несколько вспомогательных функций и/или глобальную целевую функцию;k3) specify one or more restrictions, including one or more auxiliary functions and / or global objective function;

l) выбирать оптимизатор (то есть из набора поддерживаемых оптимизаторов) для внешнего цикла оптимизации;l) select an optimizer (i.e. from a set of supported optimizers) for an external optimization cycle;

m) выбирать диспетчер из набора поддерживаемых диспетчеров;m) select a dispatcher from the set of supported dispatchers;

n) задавать, должна ли оптимизация быть максимизацией или минимизацией.n) specify whether optimization should be maximization or minimization.

В соответствии с информацией, задаваемой пользователем, построитель потока решений может образовывать поток, имеющий внешний цикл оптимизации и набор внутренних циклов.In accordance with the information specified by the user, the decision flow builder can form a flow having an external optimization cycle and a set of internal cycles.

Как указано в (b) выше, виды объектов могут включать в себя разведочное месторождение, вскрытое месторождение и эксплуатируемое месторождение. Также предполагаются другие виды объектов.As indicated in (b) above, the types of facilities may include an exploratory field, an discovered field and an exploited field. Other types of objects are also contemplated.

Как указано в (с) выше, пользователь может задавать один или несколько алгоритмов (например, алгоритмов имитации процесса), подлежащих включению во внутренний цикл для каждого объекта. Построитель потока решений может принимать входные данные пользователя, задающие конкретный объект, на который в настоящее время должно быть обращено внимание, и отображать перечень (или некоторое графическое представление) набора алгоритмов, соответствующих виду рассматриваемого объекта, из которого пользователь может осуществлять выбор. Различные виды алгоритмов соответствуют различным объектам.As indicated in (c) above, the user can specify one or more algorithms (for example, process simulation algorithms) to be included in the internal loop for each object. The builder of the decision flow can receive user input specifying a specific object that is currently to be addressed, and display a list (or some graphical representation) of a set of algorithms corresponding to the type of the object in question, from which the user can make a choice. Different kinds of algorithms correspond to different objects.

Как указано в (d) выше, пользователь может задавать источники структур данных, согласованных с алгоритмами, задаваемыми в (с). Например, интерфейс построителя потока решений может быть сконфигурирован так, чтобы пользователь мог задавать для каждого объекта местоположения файловых систем (например, местоположения файловых систем в компьютерной сети) для файлов данных или баз данных, содержащих структуры данных. Кроме того, пользователь может задавать информационные входы (или наборы информационных входов) в базы данных, содержащие структуры данных.As indicated in (d) above, the user can specify the sources of data structures consistent with the algorithms specified in (c). For example, the decision flow builder interface may be configured so that a user can set file system locations (for example, file system locations on a computer network) for each data file or database containing data structures. In addition, the user can specify information inputs (or sets of information inputs) to databases containing data structures.

Примеры структур данных для объекта включают в себяExamples of data structures for an object include

(1) приповерхностную (подземную) структурную архитектуру, геометрию и объем объекта;(1) subsurface (underground) structural architecture, geometry and volume of the object;

(2) подземное трехмерное распределение свойств объекта, включая, но без ограничения ими, объем порового пространства, нефтенасыщенность и газонасыщенность, водонасыщенность, геологическую литологию, разрывы и трещины;(2) an underground three-dimensional distribution of the properties of an object, including, but not limited to, pore space, oil and gas saturation, water saturation, geological lithology, gaps and cracks;

(3) физическое местоположение объекта относительно поверхности моря или земной поверхности и географическое местоположение объекта;(3) the physical location of the object relative to the surface of the sea or the earth's surface and the geographical location of the object;

(4) количество скважин и местоположения скважин на объекте, которые могут быть пробурены в дальнейшем;(4) the number of wells and the location of wells at the facility that can be drilled in the future;

(5) количество скважин, которые уже пробурены на объекте;(5) the number of wells that have already been drilled at the facility;

(6) объем углеводородов, соотнесенный с объектом;(6) the volume of hydrocarbons associated with the asset;

(7) потенциальные запасы, соотнесенные с объектом;(7) potential reserves associated with the asset;

(8) картину изменения во времени добычи нефти, газа и воды, соотнесенную с объектом;(8) a picture of the change in time of oil, gas and water production correlated with the object;

(9) картину изменения во времени закачивания газа и воды, соотнесенную с объектом;(9) a picture of the change in the time of injection of gas and water, correlated with the object;

(10) виды оборудования, которое относится к объекту; и(10) types of equipment that relates to the facility; and

(11) виды оборудования, которое может быть изготовлено в дальнейшем для объекта.(11) types of equipment that can be further manufactured for the facility.

Другие примеры структур данных включают в себя модели коллектора, экономические модели, модели сети трубопроводов, модели технологического оборудования и модели насосно-компрессорных труб скважины.Other examples of data structures include reservoir models, economic models, pipeline network models, process equipment models, and well tubing models.

Виды структур данных, которые задаются для объекта, могут зависеть от видов алгоритмов, которые должны быть использованы для объектов. Например, имитатор материального баланса, состоящий из аналитических или алгебраических выражений, может основываться на «резервуарной» модели для объекта, при этом резервуарная модель имеет единственный набор свойств для представления всего объекта. Для прогнозирования потоков нефти, газа и воды в динамике во времени имитатор движения флюидов в коллекторе с представлением дифференциальными уравнениями в частных производных движения флюидов в пористых средах и с конечно-разностной формулировкой может быть основан на трехмерной пространственной модели коллектора. Экономический алгоритм для прогнозирования прибыли в динамике во времени может быть основан на экономической модели, включающей в себя цены, ставки налогообложения и фискальные сложности. Построитель потока решений может подсказывать пользователю, чтобы он вводил структуры данных того вида, который согласован с алгоритмами, уже заданными для объекта в (с).The types of data structures that are specified for an object may depend on the types of algorithms that should be used for the objects. For example, a simulator of material balance, consisting of analytical or algebraic expressions, can be based on a “reservoir” model for an object, while the reservoir model has a single set of properties to represent the entire object. To predict the flow of oil, gas and water over time, a simulator of fluid motion in a reservoir with the representation of partial differential equations of fluid derivatives in porous media and with a finite-difference formulation can be based on a three-dimensional spatial model of the reservoir. The economic algorithm for predicting profit over time can be based on an economic model that includes prices, tax rates, and fiscal complexities. The builder of the decision flow can prompt the user to enter data structures of the kind that is consistent with the algorithms already defined for the object in (c).

Как указано в (е) выше, заявитель может производить операции над структурами данных с целью построения моделей для каждого из объектов, особенно для моделей, включающих в себя переменные неопределенности и переменные решения. Например, пользователь можетAs indicated in (e) above, the applicant may perform operations on data structures in order to build models for each of the objects, especially for models that include uncertainty variables and decision variables. For example, a user may

продвигать значения данных из структур данных в переменные неопределенности;push data values from data structures into uncertainty variables;

продвигать значения данных из структур данных в переменные решения;push data values from data structures to decision variables;

подчинять структуры данных переменным неопределенности; иSubordinate data structures to uncertainty variables and

подчинять структуры данных переменным решения.Subordinate data structures to decision variables.

Примеры переменных решения для объектов включают в себяExamples of solution variables for objects include

количество скважин;number of wells;

местоположения скважин на поверхности;surface location of wells;

диаметр трубопроводов;diameter of pipelines;

объем компрессоров;volume of compressors;

вид скважины (имеющей достижимые значения, такой как горизонтальная, вертикальная или многоствольная);type of well (having achievable values, such as horizontal, vertical, or multi-hole);

геометрию скважины;well geometry;

траекторию бурения скважины (в коллекторе, относящемся к объекту);well drilling path (in the reservoir related to the object);

вид платформы (имеющей достижимые значения, такой как подводная и на оттяжках);type of platform (having achievable values, such as underwater and on guy lines);

переменную решения, подчиняющуюся набору графиков бурения скважин;a decision variable that obeys a set of well drilling schedules;

переменную решения, подчиняющуюся набору графиков заканчивания скважин;a decision variable that obeys a set of well completion schedules;

переменную решения, подчиняющуюся набору графиков ввода в действие оборудования.a decision variable that obeys a set of equipment commissioning schedules.

Примеры переменных неопределенности для объектов включают в себяExamples of uncertainty variables for objects include

объем углеводородов;hydrocarbon volume;

продуктивность углеводородов;hydrocarbon productivity;

стоимость скважин и/или оборудования; иcost of wells and / or equipment; and

цены на нефть и газ.oil and gas prices.

Глобальные переменные решения представляют собой переменные решения, которые неоднозначно связаны с единственным объектом. Например, размер капитала, имеющегося в наличии для группы объектов, является примером глобальной переменной решения. Глобальные переменные неопределенности представляют собой переменные неопределенности, которые неоднозначно связаны с единственным объектом. Например, цена на нефть является примером глобальной переменной неопределенности.Global decision variables are decision variables that are ambiguously associated with a single entity. For example, the amount of capital available to a group of objects is an example of a global decision variable. Global uncertainty variables are uncertainty variables that are ambiguously associated with a single entity. For example, the price of oil is an example of a global variable of uncertainty.

Как указано выше в (g), пользователь может задавать функциональные зависимости между переменными неопределенности и функциональные зависимости между переменными решения. Согласно некоторым осуществлениям интерфейс построителя потока решений может быть сконфигурирован для обеспечения пользователю возможностиAs indicated in (g) above, the user can define functional dependencies between uncertainty variables and functional dependencies between decision variables. In some embodiments, the decision flow builder interface may be configured to enable a user to

выбора переменной неопределенности (из набора VUN переменных неопределенности, относящихся к текущей задаче) в качестве зависимой переменной и выбора одной или нескольких других переменных неопределенности (из набора VUN) в качестве независимых переменных; иselecting an uncertainty variable (from a set of V UN uncertainty variables related to the current task) as a dependent variable and selecting one or more other uncertainty variables (from a set of V UN ) as independent variables; and

задания функции (например, произвольной алгебраической функции) независимых переменных для нахождения функциональной зависимости между независимыми переменными и зависимой переменной.assigning a function (for example, an arbitrary algebraic function) of independent variables to find a functional relationship between independent variables and a dependent variable.

Набор VUN переменных неопределенности, относящихся к текущей задаче, включает в себя переменные неопределенности, заданные в (е), и глобальные переменные неопределенности.The set V UN of the uncertainty variables related to the current task includes the uncertainty variables defined in (e) and global uncertainty variables.

Кроме того, интерфейс построителя потока решений может быть сконфигурирован для обеспечения пользователю возможностиIn addition, the decision flow builder interface can be configured to allow the user to

выбора переменной решения (из набора VD переменных решения, относящихся к текущей задаче) в качестве зависимой переменной и выбора одной или нескольких других переменных решения (из набора VD) в качестве независимых переменных; иselecting a solution variable (from a set of V D solution variables related to the current task) as a dependent variable and selecting one or more other solution variables (from a set of V D ) as independent variables; and

задания функции (например, произвольной алгебраической функции) независимых переменных для определения функциональной зависимости между независимыми переменными и зависимой переменной.defining a function (for example, an arbitrary algebraic function) of independent variables to determine the functional relationship between independent variables and the dependent variable.

Набор VD переменных неопределенности, относящихся к текущей задаче, может включать в себя глобальные переменные решения и переменные решения, заданные в (е).The set V D of the uncertainty variables related to the current task may include global decision variables and solution variables defined in (e).

Построителем потока решений может предоставляться пользователю возможность задания любого количества функциональных зависимостей путем многократного использования интерфейса построителя потока решений, описанного выше. Например, пользователь может задавать функциональные зависимости следующих видов:The decision flow builder can provide the user with the ability to specify any number of functional dependencies by reusing the decision flow builder interface described above. For example, a user can define functional dependencies of the following types:

функциональную зависимость между переменными неопределенности (или переменными решения) в пределах объекта, то есть когда зависимая переменная и одна или несколько независимых переменных относятся к одному и тому же объекту;the functional relationship between the uncertainty variables (or decision variables) within the object, that is, when the dependent variable and one or more independent variables relate to the same object;

функциональную зависимость между переменными неопределенности (или переменными решения) по объектам, то есть когда зависимая переменная и одна или несколько независимых переменных относятся к двум или более объектам; иthe functional relationship between the uncertainty variables (or decision variables) for the objects, that is, when the dependent variable and one or more independent variables relate to two or more objects; and

функциональную зависимость между переменными неопределенности (или переменными решения), где зависимая переменная и/или одна или несколько независимых переменных являются глобальными переменными.a functional relationship between uncertainty variables (or decision variables), where the dependent variable and / or one or more independent variables are global variables.

«Алгебраическая функция» представляет собой функцию, которая определяется выражением, включающим в себя только алгебраические действия над аргументами функции, такие как сложение, вычитание, умножение, деление, извлечение целочисленного (или рационального) корня и возведение в целую (или рациональную) степень.An “algebraic function” is a function that is defined by an expression that includes only algebraic operations on the arguments of the function, such as addition, subtraction, multiplication, division, extraction of an integer (or rational) root and raising to an integer (or rational) degree.

Как указано в (h) выше, пользователь может задавать корреляционные связи между переменными неопределенности. Согласно одному ряду осуществлений интерфейс построителя потока решений может быть сконфигурирован для обеспечения пользователю возможностиAs indicated in (h) above, the user can specify correlation relationships between the uncertainty variables. In one set of embodiments, the decision flow builder interface may be configured to provide the user with the ability

выбора пары переменных неопределенности из набора VUN переменных неопределенности; иselecting a pair of uncertainty variables from a set of V UN uncertainty variables; and

ввода коэффициента корреляции для задания корреляционной связи между парой переменных неопределенности.entering a correlation coefficient to specify a correlation between a pair of uncertainty variables.

Пользователь может задавать любое количество таких корреляционных связей путем многократного использования интерфейса построителя потока решений, описанного выше. Например, пользователь может задавать корреляционные связи между парами переменных неопределенности, к которым относятся следующие формы:The user can specify any number of such correlations by reusing the interface of the decision flow builder described above. For example, the user can specify correlation relationships between pairs of uncertainty variables, which include the following forms:

пара переменных неопределенности в пределах объекта (то есть относящаяся к одному и тому же объекту);a pair of uncertainty variables within an object (that is, referring to the same object);

пара переменных неопределенности по объектам (то есть когда одна переменная из пары относится к одному объекту, а другая переменная из пары относится к другому объекту);a pair of variables of uncertainty over objects (that is, when one variable from a pair refers to one object, and another variable from a pair refers to another object);

пара переменных неопределенности, где одна или обе переменные являются глобальными переменными неопределенности.a pair of uncertainty variables, where one or both variables are global uncertainty variables.

Согласно некоторым осуществлениям пользователь может выбирать группу из двух или более переменных неопределенности и вводить корреляционную матрицу для группы.In some embodiments, a user may select a group of two or more uncertainty variables and enter a correlation matrix for the group.

При выполнении потока переменные неопределенности конкретизируются способом, в котором учитываются заданные пользователем корреляционные связи.When the flow is executed, the uncertainty variables are specified in a way that takes into account user-defined correlation relationships.

Как указано в (i) выше, пользователь может задавать ограничения на переменные решения или функциональные комбинации переменных решения. Согласно одному ряду осуществлений интерфейс построителя потока решений может быть сконфигурирован для обеспечения пользователю возможностиAs indicated in (i) above, the user can set constraints on decision variables or functional combinations of decision variables. In one set of embodiments, the decision flow builder interface may be configured to provide the user with the ability

выбора первой переменной Y решения из набора VD переменных решения;selecting a first decision variable Y from a set of V D decision variables;

выбора набора из одной или нескольких переменных X1, X2,…,XN решения (отличных от Y) из набора VD переменных решения, где N суть целое положительное число;selecting a set of one or more variables X 1 , X 2 , ..., X N of a solution (other than Y) from a set of V D solution variables, where N is a positive integer;

задания при желании функции f (например, произвольной алгебраической функции) одной или нескольких переменных X1, X2,…,XN решения; иthe task, if desired, of the function f (for example, an arbitrary algebraic function) of one or more variables X 1 , X 2 , ..., X N of a solution; and

выбора оператора неравенства, обозначаемого как «неравенство», из набора {<, ≤, > или ≥}, чтобы задавать ограничение видаselecting an inequality operator, denoted as “inequality”, from the set {<, ≤,> or ≥} to define a constraint of the form

Y «неравенство» f(X1, X2, …, XN).Y “inequality” f (X 1 , X 2 , ..., X N ).

Кроме того, интерфейс построителя потока решений может быть сконфигурирован для обеспечения пользователю возможности задания ограничений вида Y «неравенство» С, где С - заданная пользователем постоянная.In addition, the interface of the decision flow builder can be configured to provide the user with the possibility of setting constraints of the form Y “inequality” C, where C is the user-defined constant.

Набор VD переменных решения может включать в себя глобальные переменные решения и переменные решения, заданные в (е). Любая из большого разнообразия функций f (включая линейные и нелинейные функции) может быть поддержана. Согласно некоторым осуществлениям интерфейс построителя потока решений позволяет пользователю конструировать произвольную алгебраическую функцию выбранных переменных X1, X2, …, XN решения.The set of V D decision variables may include global decision variables and decision variables defined in (e). Any of a wide variety of f functions (including linear and non-linear functions) can be supported. According to some implementations, the decision flow builder interface allows the user to construct an arbitrary algebraic function of the selected decision variables X 1 , X 2 , ..., X N.

Интерфейс построителя потока решений может быть сконфигурирован для обеспечения пользователю возможности задания любого количества ограничений на переменные решения путем многократного использования интерфейса построителя потока решений, описанного выше. Например, пользователь может задавать ограничения, к которым относятся следующие формы:The decision flow builder interface may be configured to allow a user to set any number of constraints on decision variables by reusing the decision flow builder interface described above. For example, the user can set restrictions, which include the following forms:

ограничение на переменные решения в пределах объекта, то есть, когда все переменные решения, охваченные ограничением, относятся к одному и тому же объекту;restriction on decision variables within an object, that is, when all decision variables covered by the restriction relate to the same object;

ограничение на переменные решения по объектам, то есть, когда переменные решения, охваченные ограничением, относятся к двум или более объектам;restriction on decision variables by objects, that is, when decision variables covered by the restriction relate to two or more objects;

ограничение на переменные решения, в том числе на одну или несколько глобальных переменных решения.restriction on decision variables, including one or more global decision variables.

При выполнении потока осуществляется оптимизация, в процессе которой учитываются заданные пользователем ограничения.When a stream is executed, optimization is performed, during which the user-defined restrictions are taken into account.

Как указано в (j1) выше, пользователь может задавать одну или несколько представляющих интерес величин для каждого объекта A(k), k=1, 2, …, NA.As indicated in (j1) above, the user can specify one or more values of interest for each object A (k), k = 1, 2, ..., N A.

Согласно одному ряду осуществлений пользователь может задавать величину для объекта A(k) путемIn one set of embodiments, a user can specify a value for an object A (k) by

выбора одного или нескольких выходных аргументов из алгоритмов, относящихся к объекту A(k), и/или выбора одной или нескольких величин, которые ранее были заданы для объекта A(k); иselecting one or more output arguments from the algorithms related to the object A (k), and / or selecting one or more values that were previously set for the object A (k); and

задания функции (например, произвольной алгебраической функции) выбранных выходных аргументов и/или ранее заданных величин.defining a function (for example, an arbitrary algebraic function) of the selected output arguments and / or previously specified values.

Путем использования этой процедуры для каждого объекта может быть задано любое количество величин.By using this procedure, any number of values can be set for each object.

Кроме того, интерфейс построителя потока решений может отображать перечень обычно используемых величин, согласованных с видами алгоритмов, которые относятся к текущему рассматриваемому объекту A(k). Пользователь может задавать представляющие интерес величины путем выбора величин из перечня.In addition, the decision flow builder interface can display a list of commonly used values consistent with the types of algorithms that relate to the current object A (k) under consideration. The user can specify values of interest by selecting values from the list.

Примеры представляющих интерес величин, относящихся к объекту, включают в себя такие величины, как чистая приведенная стоимость, общие балансовые запасы, общее количество добытой нефти и т.д.Examples of object-related quantities of interest include such values as net present value, total carrying reserves, total oil produced, etc.

Как указано в (j2) выше, пользователь может задавать статистические показатели, подлежащие вычислению, для каждого объекта A(k), k=1, 2, …, NA, то есть статистические показатели на основании одной или нескольких величин, которые были заданы для объекта A(k). Согласно одному ряду осуществлений интерфейс построителя потока решений может предоставлять пользователю возможность задания статистического показателя для каждой из одной или нескольких величин, которые были заданы для каждого объекта путемAs indicated in (j2) above, the user can set the statistical indicators to be calculated for each object A (k), k = 1, 2, ..., N A , that is, statistical indicators based on one or more of the values that were set for the object A (k). According to one set of implementations, the decision flow builder interface may provide the user with the ability to set a statistical metric for each of one or more values that have been set for each object by

ввода математического выражения, определяющего статистический показатель;entering a mathematical expression defining a statistical indicator;

выбора статистического показателя из перечня обычно используемых статистических показателей.selecting a statistical indicator from the list of commonly used statistical indicators.

Примеры обычно используемых статистических показателей включают в себяExamples of commonly used statistics include

среднее значение;average value;

среднеквадратическое отклонение;standard deviation;

квантиль порядка p, где p - задаваемое пользователем значение между нулем и единицей.quantile of order p, where p is a user-defined value between zero and one.

Кроме того, интерфейс построителя потока решений может предоставлять пользователю возможность задания более чем одного статистического показателя на основании одной и той же величины. Например, пользователь может захотеть вычислить среднее значение и среднеквадратическое отклонение от чистой приведенной стоимости для объекта.In addition, the decision flow builder interface may provide the user with the ability to specify more than one statistic based on the same value. For example, a user may want to calculate the mean and standard deviation from the net present value of an object.

Как часть выполнения потока одна или несколько величин, заданных для каждого объекта, могут быть оценены несколько раз с получением совокупности значений для каждой величины. Каждый статистический показатель, заданный для величины, вычисляется по соответствующей совокупности.As part of the execution of the flow, one or more values specified for each object can be evaluated several times to obtain a set of values for each value. Each statistic specified for a quantity is calculated from the corresponding population.

Как указано в (k1) выше, пользователь может задавать глобальную целевую функцию S в виде функциональной комбинации первого поднабора статистических показателей. С этой целью согласно одному ряду осуществлений интерфейс построителя потока решений может быть сконфигурирован для обеспечения пользователю возможностиAs indicated in (k1) above, the user can set the global objective function S as a functional combination of the first subset of statistical indicators. To this end, in one set of embodiments, the decision flow builder interface may be configured to provide the user with the ability

нахождения первого поднабора путем выбора одного или нескольких статистических показателей, которые были заданы для каждого объекта; иfinding the first subset by selecting one or more statistical indicators that were set for each object; and

задания функции (например, линейной комбинации или произвольной алгебраической функции) статистических показателей из первого поднабора.assigning a function (for example, a linear combination or an arbitrary algebraic function) of statistical indicators from the first subset.

В соответствии с одним типичным сценарием пользователь может выбирать один статистический показатель S k, соответствующий каждому объекту A(k), k=1, 2, …, NA, и задавать глобальную целевую функцию S как линейную комбинацию видаIn accordance with one typical scenario, the user can select one statistical indicator S k corresponding to each object A (k), k = 1, 2, ..., N A , and set the global objective function S as a linear combination of the form

Figure 00000001
.
Figure 00000001
.

Пользователь может вводить значения коэффициентов c k, чтобы они умножались на соответствующие статистические показатели S k. Например, пользователь может придавать глобальной целевой функции S такую форму, чтобы она представляла собой линейную комбинацию среднего значения чистой приведенной стоимости для каждого объекта A(k).The user can enter the values of the coefficients c k so that they are multiplied by the corresponding statistical indicators S k . For example, the user can give the global objective function S such a shape that it is a linear combination of the average value of the net present value for each object A (k).

Как указано в (k2) выше, пользователь может задавать одну или несколько вспомогательных функций, при этом каждая вспомогательная функция является функциональной комбинацией соответствующего поднабора статистических показателей. Согласно одному ряду осуществлений для задания вспомогательной функции интерфейс построителя потока решений может предоставлять пользователю возможностьAs indicated in (k2) above, the user can specify one or more auxiliary functions, with each auxiliary function being a functional combination of the corresponding subset of statistical indicators. According to one set of implementations for defining an auxiliary function, the interface of the decision flow builder may provide the user with the opportunity

выбора одного или нескольких статистических показателей, которые были заданы для каждого объекта; иselecting one or more statistical indicators that were set for each object; and

задания функции (например, произвольной алгебраической функции) статистик выбранных статистических показателей.specifying a function (for example, an arbitrary algebraic function) of the statistics of the selected statistical indicators.

Используя эту процедуру, пользователь задает любое количество вспомогательных функций.Using this procedure, the user defines any number of auxiliary functions.

В соответствии с одним типичным сценарием пользователь может находить вспомогательную функцию Н путем выбора одного статистического показателя T k, соответствующего каждому объекту A(k), k=1, 2, …, NA, и задания линейной комбинации видаIn accordance with one typical scenario, the user can find the auxiliary function H by selecting one statistical indicator T k corresponding to each object A (k), k = 1, 2, ..., N A , and setting a linear combination of the form

Figure 00000002
Figure 00000002

или видаor kind

Figure 00000003
.
Figure 00000003
.

Пользователь может вводить значения коэффициентов

Figure 00000004
, чтобы они были умножены на соответствующие статистические показатели. Например, пользователь может придать вспомогательной функции Н такую форму, чтобы она представляла собой линейную комбинацию квадрата среднеквадратического отклонения от чистой приведенной стоимости для каждого объекта A(k).User can enter coefficient values
Figure 00000004
so that they are multiplied by the relevant statistics. For example, the user can give the auxiliary function H such that it is a linear combination of the square of the standard deviation from the net present value for each object A (k).

Как указано в (k3) выше, пользователь может задавать одно или несколько ограничений, в том числе на одну или несколько вспомогательных функций и/или глобальную целевую функцию S. Согласно одному ряду осуществлений пользователь может задавать одно или несколько ограничений, каждое из которых имеет видAs indicated in (k3) above, the user can specify one or more restrictions, including one or more auxiliary functions and / or the global objective function S. According to one series of implementations, the user can set one or more restrictions, each of which has the form

J «взаимосвязь» С,J “relationship” C,

где J - задаваемая пользователем функция, аргументы которой выбираются из набора FC, включающего в себя одну или несколько вспомогательных функций и глобальную целевую функцию S, при этом «взаимосвязь» представляет собой зависимость, выбираемую из набора {<, ≤, >, ≥, =}, где С - задаваемая пользователем постоянная. Пользователь может задавать такое ограничение путемwhere J is a user-defined function whose arguments are selected from the set F C , which includes one or more auxiliary functions and the global objective function S, while the “relationship” is a dependence selected from the set {<, ≤,>, ≥, =}, where C is a user-defined constant. The user can set such a restriction by

выбора одного или нескольких аргументов для функции J из набора FC;selecting one or more arguments for function J from the set F C ;

задания функциональной комбинации (например, произвольной алгебраической функциональной комбинации) из одного или нескольких выбранных аргументов;defining a functional combination (for example, an arbitrary algebraic functional combination) from one or more selected arguments;

выбора зависимости «взаимосвязь» из набора {<, ≤, >, ≥, =}; иselecting the relationship "relationship" from the set {<, ≤,>, ≥, =}; and

задания постоянной С.job constant C.

Путем использования этой процедуры может быть задано любое количество ограничений.By using this procedure, any number of restrictions can be specified.

В соответствии с одним типичным сценарием пользователь может основываться на этой процедуре для задания ограничения вида J=H/S<C, где H - вспомогательная функция и S - глобальная целевая функция. Например, Н может быть линейной комбинацией квадратов среднеквадратических отклонений от чистой приведенной стоимости при одном отклонении на объект, а S может быть линейной комбинацией средних значений чистых приведенных стоимостей при одном среднем значении на объект.In accordance with one typical scenario, a user can rely on this procedure to specify a constraint of the form J = H / S <C, where H is an auxiliary function and S is a global objective function. For example, H may be a linear combination of squares of standard deviations from the net present value at one deviation per object, and S may be a linear combination of average values of net present values at one average value per object.

Как указано в (l) выше, пользователь может выбирать оптимизатор. Согласно одному ряду осуществлений построителем потока решений пользователю может предоставляться возможность выбора из набора поддерживаемых оптимизаторов. Предполагается, что глобальная целевая функция S является сугубо нелинейной и имеющей много локальных минимумов (или максимумов) на протяжении глобального пространства, определяемого переменными решения. Кроме того, это глобальное пространство, на протяжении которого должна осуществляться оптимизация, может иметь изолированные островки допустимых векторов среди огромного количества недопустимых векторов. Следовательно, желательно использовать оптимизаторы, которые не ограничиваются нахождением единственного локального минимума (или максимума) и не останавливаются внутри единственного островка. Поэтому набор поддерживаемых оптимизаторов может включать в себя стохастические оптимизаторы, например оптимизаторы, которые в методике поиска используют случайность.As indicated in (l) above, the user can select an optimizer. According to one set of implementations, a decision flow builder may provide a user with a choice of a set of supported optimizers. It is assumed that the global objective function S is purely non-linear and has many local minima (or maxima) throughout the global space defined by the decision variables. In addition, this global space over which optimization should be carried out can have isolated islands of admissible vectors among a huge number of invalid vectors. Therefore, it is desirable to use optimizers that are not limited to finding a single local minimum (or maximum) and do not stop inside a single island. Therefore, the set of supported optimizers may include stochastic optimizers, for example, optimizers that use randomness in the search technique.

Согласно некоторым осуществлениям построителем потока решений пользователю может предоставляться возможность выбора из оптимизаторов такого оптимизатора, какAccording to some implementations, the decision flow builder may provide the user with the opportunity to choose from an optimizer such an optimizer as

(1) оптимизатор поиска с разбросом;(1) scatter search optimizer;

(2) оптимизатор поиска с запретом;(2) search optimizer with a ban;

(3) оптимизатор, основанный на метаэвристическом сочетании поиска с разбросом, поиска с запретом, нейронных сетей и линейного программирования;(3) an optimizer based on a metaheuristic combination of scatter search, forbidden search, neural networks, and linear programming;

(4) оптимизатор, основанный на генетическом алгоритме.(4) an optimizer based on a genetic algorithm.

Набором VD переменных решения из потока представлены решения, которые поддаются управлению. Каждая переменная решения имеет заданное пользователем множество достижимых значений. Декартово произведение множеств достижимых значений переменных решения в VD является глобальным пространством решений, на протяжении которого должна осуществляться оптимизация и при этом подчиняться любым ограничениям, которые пользователь может задавать на переменные решения или функциональные комбинации переменных решения, и подчиняться одному или нескольким ограничениям, определенным в (k3), в том числе на одну или несколько вспомогательных функций и/или глобальную целевую функцию.A set of V D decision variables from the stream presents solutions that are manageable. Each decision variable has a user-defined set of reachable values. The Cartesian product of the sets of attainable values of the solution variables in V D is the global solution space during which optimization should be carried out and at the same time obey any restrictions that the user can set on solution variables or functional combinations of solution variables, and obey one or more of the constraints defined in (k3), including one or more auxiliary functions and / or global objective function.

Вектор в глобальном пространстве решений именуется вектором решения. Иначе говоря, вектор решения представляет собой вектор значений, то есть одного значения, выбираемого из каждого множества достижимых значений переменных решения в VD.A vector in the global decision space is called a solution vector. In other words, the solution vector is a vector of values, that is, one value selected from each set of attainable values of the solution variables in V D.

Согласно некоторым осуществлениям построителем потока решений может предоставляться пользователю возможность привнесения набора начальных оценочных векторов, которых оптимизатор может использовать в процессе поиска.In some embodiments, the decision flow builder may provide the user with the ability to introduce a set of initial estimation vectors that the optimizer may use in the search process.

Набор VUN переменных неопределенности из потока отражает неопределенности. Каждая переменная неопределенности имеет заданное пользователем множество достижимых значений. Декартово произведение множеств достижимых значений переменных неопределенности в VUN является глобальным пространством неопределенностей, которое должно быть итерационно исследовано. Вектор в глобальном пространстве неопределенностей именуется вектором неопределенности. Иначе говоря, вектор неопределенности является вектором значений, то есть, одного значения, выбираемого из каждого множества достижимых значений переменных неопределенности в VUN.A set of V UN variables of uncertainty from a stream reflects uncertainty. Each uncertainty variable has a user-defined set of attainable values. The Cartesian product of the sets of attainable values of the uncertainty variables in V UN is a global space of uncertainties that should be iteratively explored. A vector in the global space of uncertainties is called an uncertainty vector. In other words, the uncertainty vector is a vector of values, that is, one value selected from each set of attainable values of the uncertainty variables in V UN .

Согласно некоторым осуществлениям построитель потока решений может формировать поток 200 в ответ на информацию (a)-(n), заданную пользователем. Как показано на фигуре 2, поток 200 может включать в себя оптимизатор 210, выбранный пользователем в (l), и процесс 220 оценивания. Оптимизатор 210 может формировать векторы x решения в глобальном пространстве решений, подчинять переменные решения заданным пользователем ограничениям. Процесс 220 оценивания осуществляется относительно векторов x решения для образования соответствующих значений S(x) глобальной целевой функции S и соответствующих значений H(x) вспомогательной функции Н, описанной ниже. Значения S(x) глобальной целевой функции и значения H(x) вспомогательной функции поступают на оптимизатор. Оптимизатором эти значения используются для образования скорректированных векторов решения при попытке минимизации (или максимизации) глобальной целевой функции с использованием заданного пользователем ограничения на вспомогательную функцию H(x) (или на сочетание вспомогательной функции и глобальной целевой функции). Оптимизатор может работать в соответствии с любым из ряда алгоритмов оптимизации. Структура цикла, включающая в себя оптимизатор и процесс оценивания, именуется в настоящей заявке «внешним» циклом.In some embodiments, the decision flow builder may generate flow 200 in response to information (a) - (n) specified by the user. As shown in FIG. 2, stream 200 may include an optimizer 210 selected by the user in (l) and an evaluation process 220. Optimizer 210 can generate decision vectors x in the global decision space, subordinate decision variables to user-defined constraints. The evaluation process 220 is carried out with respect to the decision vectors x for generating the corresponding values S (x) of the global objective function S and the corresponding values H (x) of the auxiliary function H described below. The S (x) values of the global objective function and the H (x) values of the auxiliary function are sent to the optimizer. The optimizer uses these values to form adjusted solution vectors when trying to minimize (or maximize) the global objective function using a user-defined constraint on the auxiliary function H (x) (or on a combination of the auxiliary function and the global objective function). The optimizer can work in accordance with any of a number of optimization algorithms. The structure of the cycle, including the optimizer and the evaluation process, is referred to in this application as the "external" cycle.

Согласно одному ряду осуществлений оптимизатор 210 может быть сконфигурирован для выполнения операций в соответствии с нижеследующей методикой, показанной на фигуре 3. Оптимизатор может выполняться на серверном компьютере.In one set of embodiments, the optimizer 210 may be configured to perform operations in accordance with the following methodology shown in FIG. 3. The optimizer may be run on a server computer.

При выполнении операции 310 оптимизатор 210 может создавать эталонный набор допустимых векторов решения (вектор решения считается допустимым, если он удовлетворяет заданным пользователем ограничениям на переменные решения). При первой итерации в соответствии с операцией 310 эталонный набор может быть образован путем формирования начального набора векторов решения, которые являются пространственно различными (то есть получены путем использования методов случайного формирования), и затем преобразования начального набора векторов решения в допустимые векторы решения. Однако при любой итерации после операции 310 эталонный набор может быть образован путемIn step 310, the optimizer 210 can create a reference set of valid solution vectors (a solution vector is considered valid if it satisfies the user-defined constraints on the solution variables). At the first iteration in accordance with operation 310, a reference set can be formed by forming an initial set of solution vectors that are spatially different (i.e. obtained by using random formation methods), and then transforming the initial set of solution vectors into valid solution vectors. However, in any iteration after operation 310, a reference set can be formed by

выбора «наилучших» векторов решения в количестве n1 из предыдущей версии эталонного набора (то есть «наилучших» в соответствии с оценкой с помощью глобальной целевой функции);selecting the “best” solution vectors in the amount of n 1 from the previous version of the reference set (that is, the “best” in accordance with the assessment using the global objective function);

образования набора пространственно различных векторов (например, полученных путем использования методов случайного формирования);the formation of a set of spatially different vectors (for example, obtained by using random formation methods);

преобразования различных векторов для получения различных допустимых векторов;transforming various vectors to obtain various valid vectors;

добавления разнообразных допустимых векторов в количестве n2 к векторам в количестве n1 для повышения пространственного разнообразия эталонного набора.adding a variety of valid vectors in an amount of n 2 to vectors in an amount of n 1 to increase the spatial diversity of the reference set.

Оптимизатор может рассортировывать n1 наилучших векторов решения по порядку значений S(x) их глобальной целевой функции. Оптимизатор может также рассортировывать n2 дополнительных векторов в соответствии с мерой расстояния.The optimizer can sort the n 1 best solution vectors in order of S (x) of their global objective function. The optimizer can also sort n 2 additional vectors according to the distance measure.

При выполнении операции 320 оптимизатор 210 может образовывать новые векторы xновые путем формирования комбинаций (например, линейных комбинаций) поднаборов векторов эталонного набора. Новые векторы необязательно должны быть допустимыми векторами. Поднаборы могут включать в себя два или более векторов эталонного набора.In step 320, the optimizer 210 may form a new vector x by forming the new combinations (e.g., linear combination) subsets of the reference set of vectors. New vectors do not have to be valid vectors. The subsets may include two or more vectors of the reference set.

При выполнении операции 330 оптимизатор 210 может преобразовывать новые векторы решения в допустимые векторы xf решения с использованием линейной программы и/или частично-целочисленной программы.In step 330, the optimizer 210 can convert the new solution vectors to feasible solution vectors x f using a linear program and / or a partially integer program.

При выполнении операции 340 оптимизатор 210 может представлять допустимые векторы xf решения для выполнения процесса 220 оценивания с целью вычисления значений S(xf) глобальной целевой функции и значений H(xf) вспомогательной функции, соответствующих допустимым векторам xf решения.In step 340, the optimizer 210 may present valid decision vectors x f for the evaluation process 220 to calculate the global objective function values S (x f ) and the auxiliary function values H (x f ) corresponding to the allowed solution vectors x f .

При выполнении операции 350 оптимизатор может корректировать эталонный набор путем использования значений S(xf) глобальной целевой функции и значений H(xf) вспомогательной функции, вычисленных на этапе операции 340. Согласно одному осуществлению оптимизатор может исследовать каждый из допустимых векторов xf, чтобы установитьIn step 350, the optimizer can adjust the reference set by using the global objective function values S (x f ) and the auxiliary function values H (x f ) calculated in step 340. According to one embodiment, the optimizer can examine each of the valid vectors x f so that to establish

(1) условие, заключающееся в том, что допустимый вектор имеет лучшее значение H(xf) глобальной целевой функции, чем текущие наихудшие n1 векторов решения в функции значения глобальной целевой функции, и в этом случае допустимый вектор xf может заменить наихудший вектор;(1) the condition that the feasible vector has a better value H (x f ) of the global objective function than the current worst n 1 solution vectors in the value function of the global objective function, and in this case, the feasible vector x f can replace the worst vector ;

(2) условие, заключающееся в том, что допустимый вектор имеет большую меру расстояния, чем текущие наихудшие n2 дополнительных векторов.(2) the condition that the feasible vector has a greater measure of distance than the current worst n 2 additional vectors.

В любом случае оптимизатор может заменять наихудший вектор допустимым вектором. Если никакой из допустимых векторов xf не удовлетворяет условию (1) или (2), эталонный набор остается тем же самым, то есть корректировка является нулевой корректировкой.In either case, the optimizer can replace the worst vector with a valid vector. If none of the valid vectors x f satisfies condition (1) or (2), the reference set remains the same, that is, the adjustment is a zero correction.

При выполнении операции 360 оптимизатор может определять, не изменился ли эталонный набор в результате выполнения операции 350. Если это произошло, оптимизатор может осуществить еще одну итерацию согласно операциям 320-360. Если опорный набор не изменился, оптимизатор может переходить к операции 365.In step 360, the optimizer can determine if the reference set has changed as a result of step 350. If this happens, the optimizer can perform another iteration according to steps 320-360. If the reference set has not changed, the optimizer can proceed to operation 365.

При выполнении операции 365 оптимизатор может определять, удовлетворяется ли условие окончания. Если условие окончания не удовлетворяется, оптимизатор может осуществить продолжение с операции 310, чтобы регенерировать эталонный набор с другим набором из n2 различных допустимых векторов. Если условие окончания удовлетворяется, оптимизатор может осуществлять продолжение с операции 370.In step 365, the optimizer may determine whether the termination condition is satisfied. If the termination condition is not satisfied, the optimizer can proceed with operation 310 to regenerate the reference set with another set of n 2 different valid vectors. If the termination condition is satisfied, the optimizer may continue with operation 370.

Согласно различным осуществлениям предполагаются разные условия окончания. Например, условие окончания может быть условием, при которомAccording to various implementations, different termination conditions are contemplated. For example, an end condition may be a condition under which

(1) по меньшей мере один вектор решения из эталонного набора имеет лучшее достижимое значение глобальной целевой функции, чем определенный пользователем порог, в то время как удовлетворяется одно или несколько ограничений, касающихся одной или нескольких вспомогательных функций и/или глобальной целевой функции; или(1) at least one solution vector from the reference set has a better achievable value of the global objective function than the user-defined threshold, while one or more constraints regarding one or more auxiliary functions and / or the global objective function are satisfied; or

(2) выполняется заданное количество nмакс итераций внешнего цикла (являющихся результатом осуществления операций с 310 по 365); или(2) a given number of n max iterations of the outer loop (resulting from operations 310 to 365) is performed; or

(3) проходит заданное время Tмакс вычислений; или(3) a predetermined time T max of calculations elapses; or

(4) выполняется любое сочетание из (1), (2) и (3).(4) any combination of (1), (2) and (3) is satisfied.

Максимальное количество nмакс итераций и максимальное время Tмакс вычислений могут быть заданы пользователем.The maximum number n max iterations and the maximum time T max calculations can be set by the user.

При выполнении операции 370 оптимизатор может сохранять в базе данных векторы эталонного набора вместе с соответствующими им значениями глобальной целевой функции и значениями вспомогательной функции. Выходным анализатором может осуществляется считывание из базы данных и отображение графического представления значения глобальной целевой функции и значения (значений) вспомогательной функции для каждого из векторов эталонного набора (или в качестве альтернативы для n1 наилучших векторов эталонного набора).In step 370, the optimizer can store the reference set vectors in the database along with their corresponding global objective function values and auxiliary function values. The output analyzer can read from the database and display a graphical representation of the value of the global objective function and the value (s) of the auxiliary function for each of the vectors of the reference set (or, alternatively, for n 1 best vectors of the reference set).

Согласно одному ряду осуществлений процесс 220 оценивания может быть организован для выполнения действий в соответствии с приведенной ниже методикой, показанной на фигуре 4. Процесс оценивания может выполняться на серверном компьютере.According to one set of implementations, the evaluation process 220 may be arranged to perform actions in accordance with the following methodology shown in FIG. 4. The evaluation process may be performed on a server computer.

При выполнении операции 410 для процесса оценивания из оптимизатора может приниматься вектор x решения.In operation 410, a decision vector x may be received from the optimizer for the estimation process.

При выполнении операции 420 модулем конкретизация процесса оценивания могут создаваться NI векторов неопределенности способом, в котором учитываются заданные пользователем функциональные зависимости и корреляционные связи между переменными неопределенности, при этом NI является заданным пользователем целым положительным числом. С помощью NI векторов неопределенности исследуется глобальное пространство неопределенностей. Векторы неопределенности могут быть образованы в соответствии с заданным пользователем способом конкретизации, описанным выше. Каждый вектор Uj неопределенности, j=1, 2,…, NI, имеет конкретизированное значение для каждой из переменных неопределенности в наборе VUN (то есть в наборе всех переменных неопределенности, относящихся к текущей задаче). Каждое конкретизированное значение выбирается из набора достижимых значений соответствующей одной из переменных неопределенности.In step 420 of the module, the specification of the estimation process can create N I uncertainty vectors in a way that takes into account user-defined functional dependencies and correlation between uncertainty variables, while N I is a user-defined integer positive number. Using N I uncertainty vectors, the global space of uncertainties is investigated. Uncertainty vectors can be formed in accordance with the user-specified instantiation method described above. Each uncertainty vector U j , j = 1, 2, ..., N I , has a specific value for each of the uncertainty variables in the set V UN (that is, in the set of all uncertainty variables related to the current task). Each specified value is selected from the set of attainable values corresponding to one of the uncertainty variables.

При выполнении операции 425 процесса оценивания могут создаваться NI наборов итерационных данных на основании моделей в предвидении NI итераций «внутреннего цикла» для каждого объекта A(k), k=1, 2, …, NA, где NI - количество итераций и NA - количество объектов. Например, в процессе оценивания могут создаваться наборы итерационных данных в соответствии со следующим псевдокодом:In operation 425 of the estimation process, N I sets of iterative data can be created based on models in anticipation of N I iterations of the “inner loop” for each object A (k), k = 1, 2, ..., N A , where N I is the number of iterations and N A is the number of objects. For example, during the evaluation process, iterative data sets may be created in accordance with the following pseudo-code:

для k от 1 до NA:for k from 1 to N A :

для j от 1 до NI:for j from 1 to N I :

создается набор IDS(k,j) итерационных данных для алгоритмов объекта A(k) с использованием подвектора x(k) вектора x решения, который соответствует объекту A(k), и подвектора Uj(k) вектора Uj неопределенности, который соответствует объекту A(k);a set of IDS (k, j) iterative data is created for the algorithms of object A (k) using the subvector x (k) of the solution vector x that corresponds to the object A (k) and the subvector U j (k) of the uncertainty vector U j object A (k);

сохраняется набор IDS(k,j) итерационных данных в буфере IBUFF(k) итераций для объекта A(k);a set of IDS (k, j) iteration data is stored in the IBUFF (k) iteration buffer for object A (k);

End ForEnd for

End For.End for.

Нет необходимости в выполнении команды For Loop (прерывание цикла после выполнения фиксированное число раз) относительно показателя k строго последовательным образом. Например, эта команда For Loop может быть сконфигурирована для выполнения операций многопоточным образом, например, с использованием одного потока на каждое значение k.There is no need to execute the For Loop command (interrupting the loop after executing a fixed number of times) with respect to the exponent k in a strictly sequential manner. For example, this For Loop command can be configured to perform multi-threaded operations, for example, using one thread for each k value.

Следует напомнить, что системой управления принятием решений пользователю предоставляется возможность построения моделей путемIt should be recalled that the decision-making management system provides the user with the opportunity to build models by

(1) подчинения наборов структур данных переменным решения;(1) subordinating sets of data structures to decision variables;

(2) подчинения наборов структур данных переменным неопределенности;(2) subordinating sets of data structures to uncertainty variables;

(3) продвижения значений данных из структур данных в переменные решения; и(3) moving data values from data structures to decision variables; and

(4) продвижения значений данных из структур данных в переменные неопределенности.(4) moving data values from data structures to uncertainty variables.

Значения подвектора x(k) решения и значения подвектора Uj(k) неопределенности могут быть использованы для определения одной или нескольких структур данных на основании моделей. В частности, одно или несколько значений подвектора x(k) решения и/или одно или несколько значений подвектора Uj(k) неопределенности могут быть использованы для выбора структур данных на основании моделей, в том числе наборов альтернативных структур данных. Кроме того, одно или несколько значений подвектора x(k) решения и/или одно или несколько значений подвектора Uj(k) неопределенности могут быть подставлены в модели, включающие в себя переменные решения и/или переменные неопределенности. Структуры данных, определяемые значениями подвектора x(k) решения и значениями подвектора Uj(k) неопределенности, могут быть включены в набор IDS(k,j) итерационных данных. Набор итерационных данных может включать в себя достаточно данных для выполнения набора алгоритмов, которые определены для объекта A(k). Подвекторы x(k) необязательно должны быть непересекающимися. Например, значения, соответствующие глобальным переменным решения, могут обнаруживаться в более чем одном из подвекторов x(k). Аналогичным образом, подвекторы Uj(k) необязательно должны быть непересекающимися.The values of the subvector x (k) of the solution and the values of the subvector U j (k) of uncertainty can be used to determine one or more data structures based on models. In particular, one or more values of the subvector x (k) of the solution and / or one or more values of the subvector U j (k) of uncertainty can be used to select data structures based on models, including sets of alternative data structures. In addition, one or more values of the subvector x (k) of the solution and / or one or more values of the subvector U j (k) of uncertainty can be substituted into models that include solution variables and / or uncertainty variables. Data structures defined by the values of the subvector x (k) of the solution and the values of the subvector U j (k) of the uncertainty can be included in the set of IDS (k, j) iterative data. A set of iterative data may include enough data to execute a set of algorithms that are defined for object A (k). The subvectors x (k) do not have to be disjoint. For example, values corresponding to global decision variables can be found in more than one of the subvectors x (k). Similarly, the subvectors U j (k) need not be disjoint.

При выполнении операции 430 диспетчер процесса оценивания может распределять (то есть посылать) NI наборов итерационных данных для каждого объекта A(k), k=1, 2, …,NA, на один или несколько других компьютеров, где NI - количество итераций, подлежащих выполнению относительно каждого объекта. Например, диспетчер может работать в соответствии со следующим псевдокодом:In step 430, the evaluation process manager can distribute (i.e. send) N I sets of iterative data for each object A (k), k = 1, 2, ..., N A , to one or more other computers, where N I is the number iterations to be performed on each object. For example, a dispatcher may operate in accordance with the following pseudo-code:

для k от 1 до NA:for k from 1 to N A :

While (пока выполняется условие), что буфер IBUFF(k) итераций не является пустым:While (while the condition is fulfilled) that the IBUFF (k) iteration buffer is not empty:

обнаружение свободного компьютера CP;detecting a free computer C P ;

считывание одного или нескольких наборов IDS(k,j) итерационных данных из буфера IBUFF(k) итераций;reading one or more sets of IDS (k, j) iteration data from the IBUFF (k) iteration buffer;

сжатие одного или нескольких наборов итерационных данных и упаковка сжатых данных в исполняемый файл данных;compressing one or more sets of iterative data and packing the compressed data into an executable data file;

передача исполняемого файла в компьютер CP для создания каждого из одного или нескольких наборов итерационных данных на компьютере CP;transferring the executable file to the computer C P to create each of one or more sets of iterative data on the computer C P ;

EndWhile (окончание при выполнении условия)EndWhile (end on condition)

EndFor.Endfor.

Диспетчер может включать копию выполняемого кода для алгоритмов, относящихся к объекту A(k), в исполняемый файл данных в том случае, когда компьютер CP еще не имеет копии этого кода. Кроме того, диспетчер может включать адресацию буфера INB(k) данных, относящихся к объекту A(k), в исполняемый файл данных. Буфер INB(k) данных может быть размещен в запоминающем устройстве серверного компьютера. Компьютер CP выполняет набор алгоритмов, относящихся к объекту A(k), на основании каждого набора IDS(k,j) итерационных данных, включенного в исполняемый файл данных, собирает выходные данные (алгоритмов), полученные в результате выполнения, в соответствующий набор ODS(k,j) выходных данных и передает набор ODS(k,j) выходных данных в буфер INB(k) данных.The dispatcher may include a copy of the executable code for the algorithms related to the object A (k) in the executable data file when the computer C P does not yet have a copy of this code. In addition, the dispatcher may include addressing the buffer INB (k) of data related to object A (k) in an executable data file. The data buffer INB (k) may be located in the storage device of the server computer. Computer C P executes a set of algorithms related to object A (k), on the basis of each set of IDS (k, j) iterative data included in the executable data file, collects output data (algorithms) resulting from execution into the corresponding ODS set (k, j) output and transmits a set of ODS (k, j) output to the data buffer INB (k).

Нет необходимости в выполнении команды For Loop относительно показателя k строго последовательным образом. Например, эта команда For Loop может быть сконфигурирована для выполнения операций многопоточным образом, например, с использованием одного потока на каждое значение k.There is no need to execute the For Loop command with respect to exponent k in a strictly sequential manner. For example, this For Loop command can be configured to perform multi-threaded operations, for example, using one thread for each k value.

Кроме того, нет необходимости в выполнении операций 425 и 430 строго последовательным образом. Например, многочисленные цепочки задач по команде For Loop могут быть выполнены многопоточным образом на этапе операции 430 вместе с многочисленными цепочками задач по команде For Loop (относительно показателя k) на этапе операции 425. Согласно одному осуществлению k-й поток диспетчера может быть запущен сразу же после начала образования k-го потока набора итерационных данных. Например, при образовании k-го потока набора итерационных данных k-й поток диспетчера может запускаться после сохранения одного или нескольких наборов итерационных данных в буфере IBUFF(k) итераций.In addition, there is no need to perform operations 425 and 430 in a strictly sequential manner. For example, multiple For Loop task chains can be multi-threaded in step 430 along with multiple For Loop task chains (relative to metric k) in step 425. According to one embodiment, the k-th dispatch thread can be started immediately after the beginning of the formation of the k-th stream of a set of iterative data. For example, when the k-th stream of the iterative data set is generated, the k-th dispatcher stream can start after saving one or more sets of iterative data in the IBUFF (k) iteration buffer.

Серверный компьютер может включать в себя один или несколько процессоров.The server computer may include one or more processors.

При выполнении операции 440 накапливающий сумматор результатов процесса оценивания может сохранять наборы ODS(k,j) выходных данных, образованные другими компьютерами (на которые наборы данных были распределены для выполнения). Набор ODS(k,j) выходных данных представляет собой выходные данные алгоритмов, относящихся к объекту A(k), выполненных на основании набора IDS(k,j) итерационных данных. Согласно одному ряду осуществлений накапливающий сумматор результатов может выполнять операции в соответствии со следующим псевдокодом:In step 440, the accumulating adder of the results of the evaluation process may store the ODS (k, j) sets of output data generated by other computers (onto which the data sets were distributed for execution). The set ODS (k, j) of the output data is the output of the algorithms related to the object A (k), executed on the basis of the set of IDS (k, j) iterative data. According to one set of implementations, the accumulating adder of results can perform operations in accordance with the following pseudo-code:

для k от 1 до NA:for k from 1 to N A :

j←0;j ← 0;

While (пока выполняется условие) j≤NI While (while the condition is fulfilled) j≤N I

осуществляется прием набора ODS(k,j) выходных данных из буфера INB(k) входных данных;receiving a set of ODS (k, j) output data from the input data buffer INB (k);

осуществляется распаковка данных информационного наполнения из набора ODS(k,j) выходных данных;unpacking the content data from the set of ODS (k, j) output data;

осуществляется сохранение распакованных данных из набора ODS(k,j) выходных данных в базе данных (то есть в базе данных, снабженной индексами k и j);the unpacked data from the set of ODS (k, j) output data is stored in the database (that is, in the database equipped with the indices k and j);

j←j+1;j ← j + 1;

EndWhile (окончание при выполнении условия)EndWhile (end on condition)

EndFor (команда).EndFor (command).

Нет необходимости в выполнении команды For Loop относительно показателя k строго последовательным образом. Например, эта команда For Loop может быть сконфигурирована для выполнения операций многопоточным образом, например, с использованием одного потока на каждое значение k.There is no need to execute the For Loop command with respect to exponent k in a strictly sequential manner. For example, this For Loop command can be configured to perform multi-threaded operations, for example, using one thread for each k value.

Кроме того, нет необходимости в выполнении операций 430 и 440 строго последовательным образом. Например, многочисленные цепочки задач по команде For Loop могут быть выполнены многопоточным образом на этапе операции 440 вместе с многочисленными цепочками задач по команде For Loop на этапе операции 430. Согласно одному осуществлению k-й поток накапливающего сумматора может быть запущен сразу же после начала k-го потока диспетчера. Например, k-й поток диспетчера может запускать k-й поток накапливающего сумматора после получения распределенного первого исполняемого файла данных для объекта A(k).In addition, there is no need to perform operations 430 and 440 in a strictly sequential manner. For example, multiple For Loop task chains can be multi-threaded in step 440 along with multiple For Loop task chains in step 430. According to one embodiment, the kth accumulative adder stream can be started immediately after k- th dispatcher thread. For example, the k-th stream of the dispatcher can start the k-th stream of the accumulating adder after receiving the distributed first executable data file for the object A (k).

При выполнении операции 445 вычислителем результатов процесса оценивания для каждого объекта A(k), k=1, 2, …, NA и для каждой итерации j=1, 2, …, NI может вычисляться значение каждой заданной пользователем величины для объекта с использованием значений выходного аргумента из набора ODS(k,j) выходных данных. Поэтому вычислитель результатов образует совокупность NI значений для каждой заданной пользователем величины.In step 445, the evaluator of the results of the evaluation process for each object A (k), k = 1, 2, ..., N A, and for each iteration j = 1, 2, ..., N I , the value of each user-defined value for the object with using the values of the output argument from the set of ODS (k, j) output. Therefore, the results calculator forms a set of N I values for each value set by the user.

При выполнении операции 445В вычислителем результатов для каждого объекта A(k), k=1, 2, …, NA может вычисляться значение каждого заданного пользователем статистического показателя для объекта на основании соответствующей одной из совокупностей.In step 445B, the result calculator for each object A (k), k = 1, 2, ..., N A, can calculate the value of each user-specified statistical indicator for the object based on the corresponding one of the populations.

Операции 445А и 445В совместно именуются операцией 445.Operations 445A and 445B are collectively referred to as operations 445.

Согласно одному ряду осуществлений вычислитель результатов может быть сконфигурирован для выполнения операции 445 в соответствии со следующим псевдокодом:According to one set of implementations, the result computer can be configured to perform operation 445 in accordance with the following pseudo-code:

для k от 1 до NA:for k from 1 to N A :

j←0;j ← 0;

While (пока выполняется условие j≤NI),While (while the condition j≤N I is satisfied),

для каждой заданной пользователем величины, относящейся к объекту A(k):for each user-defined value related to the object A (k):

осуществляется считывание значения (значений) из набора ODS(k,j) выходных данных для вычисления значения заданной пользователем величины;reading the value (s) from the set of ODS (k, j) output data to calculate the value of a user-defined value;

осуществляются вычисление и сохранение значения величины;calculating and storing the value of the value;

EndForEndfor

j←j+1;j ← j + 1;

EndWhile (окончание при выполнении условия)EndWhile (end on condition)

для каждого заданного пользователем статистического показателя, относящегося к объекту A(k):for each user-defined statistic related to the object A (k):

вычисления значения заданного пользователем статистического показателя по NI значениям соответствующей, заданной пользователем величины.calculating the value of a user-defined statistical indicator for N I values of the corresponding user-specified value.

EndForEndfor

EndFor.Endfor.

Команду For Loop относительно индекса k нет необходимости выполнять поточным образом. Например, эта команда For Loop может быть сконфигурирована для выполнения операций многопоточным образом, например, с использованием одного потока на каждое значение k.The For Loop command relative to index k need not be executed in a thread-wise manner. For example, this For Loop command can be configured to perform multi-threaded operations, for example, using one thread for each k value.

Кроме того, нет необходимости в выполнении операций 440 и 445 строго последовательным образом. Например, многочисленные цепочки задач по команде For Loop могут быть выполнены многопоточным образом на этапе операции 445 вместе с многочисленными цепочками задач по команде For Loop на этапе операции 440. Согласно одному осуществлению k-й поток вычисления результатов может быть запущен сразу же после начала k-го потока суммирования результатов. Например, k-й поток суммирования результатов может запускать k-й поток вычисления результатов после помещения первого из наборов ODS(k,j) выходных данных в базу данных.In addition, there is no need to perform operations 440 and 445 in a strictly sequential manner. For example, multiple For Loop task chains can be multi-threaded in step 445 along with multiple For Loop task chains in step 440. According to one embodiment, the kth result calculation stream can be started immediately after k- th stream of summation of results. For example, the k-th stream of summing the results can start the k-th stream of calculating the results after placing the first of the ODS (k, j) sets of output data in the database.

При выполнении операции 450 вычислитель глобальных результатов может вычислятьIn step 450, the global result calculator can calculate

значение S(x) глобальной целевой функции S на основании заданного пользователем первого поднабора из набора GT статистических показателей (то есть объединения статистических показателей из каждого объекта);the value S (x) of the global objective function S based on a user-defined first subset of a set of G T statistical indicators (i.e., a combination of statistical indicators from each object);

значение каждой вспомогательной функции на основании соответствующего, заданного пользователем поднабора из полного набора GT статистических показателей.the value of each auxiliary function based on the corresponding user-defined subset of the full set of G T statistical indicators.

Согласно одному ряду осуществлений способ оптимизации решений, касающихся большого количества объектов, может включать в себя следующие операции, показанные на фигуре 5.According to one set of implementations, a method for optimizing decisions regarding a large number of objects may include the following operations shown in FIG. 5.

На этапе операции 510 компьютер (например, серверный компьютер, включающий в себя один или несколько процессоров) может принимать информацию, задающую:At step 510, a computer (for example, a server computer including one or more processors) may receive information specifying:

переменные решения и переменные неопределенности для большого количества объектов; иdecision variables and uncertainty variables for a large number of objects; and

для каждого объекта соответствующий набор из одного или нескольких алгоритмов.for each object, a corresponding set of one or more algorithms.

На этапе операции 515 компьютер может образовывать вектор решения. Вектор решения включает в себя значение для каждой из переменных решения. Каждая из переменных решения имеет относящийся к ней набор достижимых значений.At step 515, the computer may form a solution vector. The solution vector includes a value for each of the decision variables. Each of the decision variables has a set of attainable values related to it.

На этапе операции 520 компьютер может выполнять процесс оценивания относительно вектора решения для определения по меньшей мере значения глобальной целевой функции для вектора решения. См. ниже описание процесса оценивания.At step 520, the computer can perform an estimation process with respect to the solution vector to determine at least the value of the global objective function for the solution vector. See below for a description of the assessment process.

На этапе операции 530 компьютер может выполнять оптимизатор. Выполнение оптимизатора включает в себя многократное осуществление операций 515 и 520, в результате чего образуются большое количество векторов решения и соответствующих значений глобальной целевой функции. Оптимизатор использует большое количество векторов решения и соответствующих значений глобальной целевой функции для образования и многократной корректировки эталонного набора векторов решения, чтобы оптимизировать глобальную целевую функцию.At operation 530, the computer may perform an optimizer. The implementation of the optimizer includes the repeated implementation of operations 515 and 520, resulting in the formation of a large number of solution vectors and the corresponding values of the global objective function. The optimizer uses a large number of solution vectors and corresponding values of the global objective function to form and repeatedly adjust the reference set of solution vectors in order to optimize the global objective function.

На этапе операции 540 компьютер может сохранять в запоминающем устройстве (например, в системной памяти компьютера) данные, включающие в себя большое количество векторов решения и соответствующие им значения глобальной целевой функции.At step 540, the computer can store data in the storage device (for example, in the system memory of the computer) including a large number of decision vectors and the corresponding global objective function values.

На этапе операции 545 компьютер может отображать графическое представление по меньшей мере поднабора векторов решения из эталонного набора.At step 545, the computer can display a graphical representation of at least a subset of the solution vectors from the reference set.

Оптимизатор может быть реализован как любой из ряда оптимизаторов, в частности как стохастический оптимизатор. Например, оптимизатором может бытьThe optimizer can be implemented as any of a number of optimizers, in particular as a stochastic optimizer. For example, the optimizer may be

(1) оптимизатор поиска с разбросом;(1) scatter search optimizer;

(2) оптимизатор поиска с запретом;(2) search optimizer with a ban;

(3) оптимизатор, основанный на метаэвристическом сочетании поиска с разбросом, поиска с запретом, нейронных сетей и линейного программирования; или(3) an optimizer based on a metaheuristic combination of scatter search, forbidden search, neural networks, and linear programming; or

(4) оптимизатор, основанный на генетическом алгоритме.(4) an optimizer based on a genetic algorithm.

Операция 520 выполнения процесса оценивания может включать в себя следующие операции, показанные на фигуре 6.Operation 520 for performing the evaluation process may include the following operations shown in FIG. 6.

На этапе операции 520А компьютер может образовывать вектор неопределенности. Вектор неопределенности включает в себя значение для каждой из переменных неопределенности.At operation 520A, the computer may generate an uncertainty vector. The uncertainty vector includes a value for each of the uncertainty variables.

На этапе операции 520В компьютер может образовывать для каждого объекта набор данных для соответствующего набора алгоритмов с использованием соответствующего поднабора из одного или нескольких значений в векторе решения и соответствующего поднабора из одного или нескольких значений в векторе неопределенности.At step 520B, the computer can generate a data set for each object for the corresponding set of algorithms using the appropriate subset of one or more values in the solution vector and the corresponding subset of one or more values in the uncertainty vector.

На этапе операции 520С компьютер может инициировать выполнение набора алгоритмов для каждого объекта на основании соответствующего набора данных, чтобы получать выходные аргументы, соответствующие объекту. Компьютер может инициировать выполнение на других компьютерах, например, путем пересылки наборов данных на другие компьютеры (и при необходимости, выполняемого кода для соответствующих алгоритмов).At operation 520C, the computer can initiate a set of algorithms for each object based on the corresponding data set to obtain output arguments corresponding to the object. A computer can initiate execution on other computers, for example, by sending data sets to other computers (and, if necessary, executable code for the corresponding algorithms).

На этапе операции 520D компьютер может вычислять для каждого объекта одно или несколько значений одной или нескольких соответствующих величин по выходным аргументам, соответствующим объекту.At operation 520D, the computer can calculate for each object one or more values of one or more corresponding values from the output arguments corresponding to the object.

На этапе операции 520Е компьютер может выполнять операции, включающие в себя операции с 520А по 520D, несколько раз, в результате чего образуется совокупность значений каждой величины для каждого объекта.At step 520E, the computer can perform operations including operations 520A through 520D several times, resulting in a set of values of each value for each object.

На этапе операции 520F компьютер может вычислять один или несколько статистических показателей для каждого объекта на основании одной из совокупностей.At step 520F, the computer can calculate one or more statistics for each object based on one of the populations.

На этапе операции 520G компьютер может комбинировать первый поднабор статистических показателей для определения значения глобальной целевой функции, соответствующего вектору решения. Комбинирование первого поднабора статистических показателей может быть осуществлено в соответствии с заданной пользователем функциональной комбинацией (например, в соответствии с линейной комбинацией).In step 520G, the computer can combine the first subset of statistics to determine the value of the global objective function corresponding to the solution vector. The combination of the first subset of statistical indicators can be carried out in accordance with a user-defined functional combination (for example, in accordance with a linear combination).

Информацией (относящейся к 510 выше) может задаваться одна или несколько функциональных зависимостей между переменными неопределенности. Операция 520А образования вектора неопределенности может быть выполнена способом, в котором учитывается одна или несколько функциональных зависимостей между переменными неопределенности. Пользователь может задавать функциональные зависимости, например, через клиентский графический интерфейс пользователя, который реализуется на другом компьютере (например, на клиентском компьютере).Information (relating to 510 above) may specify one or more functional relationships between the uncertainty variables. An operation of generating an uncertainty vector 520A may be performed in a manner that takes into account one or more functional relationships between the uncertainty variables. The user can specify functional dependencies, for example, through the client graphical user interface, which is implemented on another computer (for example, on the client computer).

Информацией также может задаваться одна или несколько корреляционных связей между переменными неопределенности. В этом случае операция 520А образования вектора неопределенности может быть выполнена способом, в котором учитываются указанные корреляционные связи. Переменные неопределенности могут составлять два или более поднаборов, относящихся соответственно к двум или более объектам. Корреляционные связи могут включать в себя корреляционные связи между переменными неопределенности по различным объектам.Information can also specify one or more correlations between uncertainty variables. In this case, the operation 520A of the formation of the uncertainty vector can be performed by a method in which these correlation relationships are taken into account. Uncertainty variables can comprise two or more subsets related to two or more objects, respectively. Correlation relationships may include correlation relationships between uncertainty variables for various objects.

Информацией также может задаваться одно или несколько ограничений на переменные решения. В этом случае операция 515 образования вектора решения может выполняться с учетом одного или нескольких ограничений на переменные решения.Information can also specify one or more constraints on decision variables. In this case, the operation 515 of the formation of the solution vector can be performed taking into account one or more restrictions on the decision variables.

Операция 520 выполнения процесса оценивания относительно вектора решения может обеспечить получение соответствующего значения вспомогательной функции в дополнение к указанному значению глобальной целевой функции. Поэтому операция 520 может дополнительно включать в себя операцию (520Н) комбинирования второго поднабора статистических показателей для определения значения вспомогательной функции, соответствующего вектору решения.Operation 520 of performing the estimation process with respect to the solution vector can provide an appropriate value of the auxiliary function in addition to the specified value of the global objective function. Therefore, operation 520 may further include an operation (520H) combining a second subset of statistical indicators to determine the value of the auxiliary function corresponding to the solution vector.

Оптимизатор может использовать значения глобальной целевой функции и значения вспомогательной функции, соответствующие большому количеству векторов решения, при указанной многократной корректировке эталонного набора, чтобы оптимизировать целевую функцию, подчиненную одному или нескольким ограничениям.The optimizer can use the values of the global objective function and the values of the auxiliary function corresponding to a large number of solution vectors, with the specified multiple adjustments of the reference set, in order to optimize the objective function subject to one or more constraints.

Пользователь может задавать структуру одного или нескольких ограничений. Например, пользователь может задавать ограничение на функциональную комбинацию вспомогательной функции и глобальной целевой функции (сама функциональная комбинация может быть задана пользователем). В качестве другого примера, пользователь может задавать ограничение только на вспомогательную функцию. Операция 520Н может включать в себя комбинирование второго поднабора статистических показателей в соответствии с линейной комбинацией, коэффициенты которой заданы с помощью указанной информации.The user can specify the structure of one or more constraints. For example, the user can set a restriction on the functional combination of the auxiliary function and the global objective function (the functional combination itself can be set by the user). As another example, a user can set a restriction only on an auxiliary function. Operation 520H may include combining a second subset of statistical indicators in accordance with a linear combination, the coefficients of which are set using the specified information.

Каждая из переменных решения имеет относящееся к ней множество достижимых значений, представляющих возможные результаты соответствующего решения. Кроме того, каждая из переменных неопределенности имеет относящееся к ней множество достижимых значений. Множества достижимых значений могут быть конечными множествами числовых значений, структурами данных, программами и т.д. Множества достижимых значений также могут быть интервалами числовой линии или, в более общем случае, заданными пользователем областями в n-мерном пространстве, где n - целое положительное число.Each of the decision variables has a set of attainable values related to it, representing the possible results of the corresponding solution. In addition, each of the uncertainty variables has a set of attainable values related to it. The sets of reachable values can be finite sets of numerical values, data structures, programs, etc. The sets of reachable values can also be numerical line intervals or, more generally, user-defined areas in n-dimensional space, where n is a positive integer.

Согласно одному осуществлению график зависимости значения глобальной целевой функции от значения вспомогательной функции для каждого из указанного большого количества векторов решения может быть отображен с использованием дисплейного устройства (такого как монитор, проектор, головной дисплей и т.д.).According to one embodiment, a graph of a global objective function value versus an auxiliary function value for each of the indicated large number of decision vectors can be displayed using a display device (such as a monitor, projector, head display, etc.).

Операция 540 сохранения данных может включать в себя сохранение большого количества векторов решения вместе с соответствующими им значениями глобальной целевой функции и соответствующими значениями вспомогательной функции в базе данных в запоминающем устройстве.Data storage operation 540 may include storing a large number of decision vectors together with their corresponding global objective function values and corresponding auxiliary function values in a database in a storage device.

Согласно некоторым осуществлениям компьютер можетIn some embodiments, a computer may

производить операции над базой данных для идентификации поднабора из большого количества векторов решения, которые имеют оптимальные значения глобальной целевой функции для определенного значения вспомогательной функции;perform operations on the database to identify a subset of a large number of solution vectors that have optimal values of the global objective function for a certain value of the auxiliary function;

повторять указанные операции для большого количества значений вспомогательной функции; иrepeat the indicated operations for a large number of auxiliary function values; and

сохранять поднаборы, идентифицированные при указанном повторении.save the subsets identified at the specified repetition.

Кроме того, компьютер также можетIn addition, the computer can also

производить операции над базой данных для определения геометрического места оптимальных значений глобальной целевой функции с учетом значения вспомогательной функции; иperform operations on the database to determine the geometric location of the optimal values of the global objective function, taking into account the value of the auxiliary function; and

отображать геометрическое место оптимальных значений.display the geometric location of the optimal values.

Графическое представление поднабора из большого количества векторов решения, которое соответствует точке на геометрическом месте оптимальных значений, может быть отображено в ответ на выбор точки пользователем.A graphical representation of a subset of a large number of solution vectors that corresponds to a point at the geometrical location of the optimal values can be displayed in response to a user choosing a point.

Пользователь может задавать большое количество объектов, переменные решения и переменные неопределенности для каждого объекта и набор из одного или нескольких алгоритмов для каждого объекта. Переменными решения являются переменные, которые подвергаются оптимизации.The user can set a large number of objects, decision variables and uncertainty variables for each object and a set of one or more algorithms for each object. Decision variables are variables that undergo optimization.

Переменные неопределенности могут быть исследованы случайным образом (или псевдослучайным образом) для создания вариации во входных данных, поступающих в алгоритмы для каждого объекта.Uncertainty variables can be examined randomly (or in a pseudo-random way) to create variations in the input to the algorithms for each object.

Набор из одного или нескольких алгоритмов для по меньшей мере одного из объектов может включать в себя алгоритм для оценивания добычи нефти и газа в динамике во времени и экономических показателей для объекта. Алгоритмом для оценивания добычи нефти и газа в динамике во времени может бытьA set of one or more algorithms for at least one of the objects may include an algorithm for estimating oil and gas production over time and economic indicators for the object. An algorithm for estimating oil and gas production over time can be

имитатор материального баланса, который оперирует со структурой данных резервуарной модели;a material balance simulator that operates with the data structure of the reservoir model;

вычисление материального баланса, выполняемое в электронно-табличных моделях;calculation of material balance performed in spreadsheet models;

имитатор движения флюидов в коллекторе, который оперирует с трехмерной структурой данных;a fluid motion simulator in a reservoir that operates with a three-dimensional data structure;

алгоритм, задаваемый набором из одного или нескольких заданных пользователем алгебраических выражений.an algorithm defined by a set of one or more user-defined algebraic expressions.

Кроме того, набор из одного или нескольких алгоритмов для по меньшей мере одного из объектов может включать в себя один или несколько изIn addition, a set of one or more algorithms for at least one of the objects may include one or more of

алгоритма для оценивания транспортировки нефти и газа на поверхности, например, имитатора процесса в сети наземных трубопроводов,algorithms for evaluating the transportation of oil and gas to the surface, for example, a process simulator in a network of onshore pipelines,

алгоритма для оценивания транспортировки нефти, газа и воды на поверхности, например, аналитической модели сети наземных трубопроводов или набора из одного или нескольких заданных пользователем алгебраических выражений, иalgorithms for evaluating the transportation of oil, gas and water to the surface, for example, an analytical model of a network of land pipelines or a set of one or more user-defined algebraic expressions, and

алгоритма для оценивания объема нефти и газа и трехмерных свойств коллектора.algorithms for estimating the volume of oil and gas and the three-dimensional properties of the reservoir.

Алгоритм для оценивания объема нефти и газа и трехмерных свойств коллектора может быть реализован в видеAn algorithm for estimating the volume of oil and gas and the three-dimensional properties of the reservoir can be implemented as

геостатистического алгоритма формирования свойств геологической среды, определяемого с помощью набора из одного или нескольких заданных пользователем алгебраических выражений; илиa geostatistical algorithm for the formation of the properties of the geological environment, determined using a set of one or more user-defined algebraic expressions; or

имитатора материального баланса.a simulator of material balance.

Алгоритм для вычисления экономических показателей объекта может быть реализован в видеThe algorithm for calculating the economic indicators of the object can be implemented as

алгоритмов, основанных на электронных таблицах, которые могут включать в себя полные фискальные модели и модели долевого распределения добычи;spreadsheet-based algorithms, which may include full fiscal models and production sharing models;

алгоритмов, основанных на аналитических экономических моделях и наборе из одного или нескольких заданных пользователем алгебраических выражений.algorithms based on analytical economic models and a set of one or more user-defined algebraic expressions.

Согласно другому ряду осуществлений способ оптимизации решений, относящихся к большому количеству объектов, осуществляемый путем выполнения программного кода на первом компьютере (например, на серверном компьютере) может включать в себя следующие операции, показанные на фигуре 7.According to another set of implementations, a method for optimizing decisions relating to a large number of objects, carried out by executing program code on a first computer (eg, a server computer), may include the following operations shown in FIG. 7.

На этапе операции 710 первый компьютер (например, серверный компьютер, включающий в себя один или несколько процессоров) может принимать информацию, задающую переменные решения и переменные неопределенности для большого количества объектов и задающую для каждого объекта соответствующий набор из одного или нескольких алгоритмов.At step 710, the first computer (for example, a server computer including one or more processors) can receive information defining decision variables and uncertainty variables for a large number of objects and defining for each object a corresponding set of one or more algorithms.

На этапе операции 720 первый компьютер может создавать вектор решения, при этом вектор решения включает в себя значение для каждой из переменных решения.At operation 720, the first computer can create a solution vector, the solution vector including a value for each of the decision variables.

На этапе операции 730 первый компьютер может выполнять процесс относительно вектора решения, чтобы определять по меньшей мере значения глобальной целевой функции для вектора решения.At step 730, the first computer can execute the process relative to the solution vector to determine at least the values of the global objective function for the solution vector.

На этапе операции 740 первый компьютер может выполнять оптимизатор, при этом указанное выполнение оптимизатора включает в себя многократное выполнение действий 720 и 730, в результате чего образуется большое количество векторов решения и соответствующих значений глобальной целевой функции, а оптимизатор использует большое количество векторов решения и соответствующих значений глобальной целевой функции для образования и многократной корректировки эталонного набора векторов решений, чтобы оптимизировать глобальную целевую функцию.At step 740, the first computer can execute the optimizer, while the specified optimizer execution includes the repeated execution of actions 720 and 730, resulting in a large number of solution vectors and corresponding values of the global objective function, and the optimizer uses a large number of solution vectors and corresponding values global objective function for education and multiple adjustments of the reference set of decision vectors in order to optimize the global objective function.

На этапе операции 750 первый компьютер может сохранять в запоминающем устройстве данные, включающие в себя большое количество векторов решения и соответствующих им значений глобальной целевой функции.At step 750, the first computer may store in the storage device data including a large number of solution vectors and their corresponding global objective function values.

Операция 730 по выполнению процесса оценивания может включать в себя следующие операции, показанные на фигуре 8.Operation 730 for performing the evaluation process may include the following operations shown in FIG. 8.

На этапе операции 730А первый компьютер может образовывать NI векторов неопределенности, при этом каждый вектор неопределенности содержит конкретизированные значения для каждой из переменных неопределенности, где NI - целое положительное число.At step 730A, the first computer can generate N I uncertainty vectors, with each uncertainty vector containing specific values for each of the uncertainty variables, where N I is a positive integer.

На этапе операции 730В первый компьютер может образовывать NI наборов итерационных данных для каждого объекта, при этом каждый из наборов итерационных данных образуется с использованием части вектора решения и части соответствующего одного из векторов неопределенности.At step 730B, the first computer can generate N I sets of iterative data for each object, with each of the sets of iterative data being generated using part of the solution vector and part of the corresponding one of the uncertainty vectors.

На этапе операции 730С первый компьютер может распределять NI наборов итерационных данных для каждого объекта на один или несколько вторичных компьютеров для инициирования выполнения набора алгоритмов для объекта на основании каждого из соответствующих NI наборов итерационных данных, где при каждом выполнении набора алгоритмов для объекта на основании набора итерационных данных образуется соответствующий набор выходных данных.At step 730C, the first computer can distribute N I sets of iterative data for each object to one or more secondary computers to initiate the execution of a set of algorithms for the object based on each of the corresponding N I sets of iterative data, where at each execution of the set of algorithms for the object based on a set of iterative data, an appropriate set of output data is generated.

На этапе операции 730D первый компьютер может принимать NI наборов выходных данных для каждого из объектов от одного или нескольких вторичных компьютеров и сохранять в запоминающем устройстве NI наборов выходных данных.At step 730D, the first computer can receive N I sets of output data for each of the objects from one or more secondary computers and store N I sets of output data in memory.

На этапе операции 730Е первый компьютер может вычислять для каждого объекта и каждого из NI наборов выходных данных, соответствующих объекту, одно или несколько значений для одной или нескольких соответствующих величин по данным в наборе выходных данных, в результате чего образуется совокупность NI значений каждой величины для каждого объекта.At step 730E, the first computer can calculate, for each object and each of the N I sets of output data corresponding to the object, one or more values for one or more corresponding values from the data in the set of output data, resulting in a collection of N I values of each value for each object.

На этапе операции 730F первый компьютер может вычислять один или несколько статистических показателей для каждого объекта на основании соответствующей одной из совокупностей.At step 730F, the first computer can calculate one or more statistics for each object based on the corresponding one of the populations.

На этапе операции 730G первый компьютер может осуществлять комбинирование первого поднабора статистических показателей для определения значения глобальной целевой функции, соответствующего вектору решения.In step 730G, the first computer can combine the first subset of statistics to determine the value of the global objective function corresponding to the solution vector.

Первый компьютер и один или несколько вторичных компьютеров могут быть связаны с помощью компьютерной сети, например локальной вычислительной сети, интрасети, глобальной сети, Интернета и т.д.The first computer and one or more secondary computers can be connected using a computer network, such as a local area network, intranet, wide area network, Internet, etc.

При осуществлении операции распределения наборов итерационных данных инициируется распределенное выполнение на большом количестве вторичных компьютеров наборов алгоритмов на основании наборов итерационных данных. Вторичные компьютеры могут быть объединены в мегакомпьютерную сетевую структуру.During the operation of distributing sets of iterative data, distributed execution of sets of algorithms based on sets of iterative data is initiated on a large number of secondary computers. Secondary computers can be combined into a mega-computer network structure.

Согласно одному осуществлению в зависимости от имеющейся производительности системы обработки на первом компьютере поднабор из наборов итерационных данных может быть выполнен локально первым компьютером.According to one embodiment, depending on the available processing system performance on the first computer, a subset of the iterative data sets may be executed locally by the first computer.

Информация может быть получена от пользователя при выполнении процесса на клиентском компьютере и передана на первый компьютер в соответствии с этим процессом.Information can be obtained from the user during the process on the client computer and transferred to the first computer in accordance with this process.

Согласно еще одному ряду осуществлений способ оптимизации решений, касающихся большого количества объектов, может включать в себя следующие операции, показанные на фигуре 9.According to yet another set of implementations, a method for optimizing decisions regarding a large number of objects may include the following operations shown in FIG. 9.

На этапе операции 910 компьютер (например, серверный компьютер, включающий в себя один или несколько процессоров) может принимать информацию, задающую большое количество объектов, объектную целевую функцию для каждого из объектов и набор алгоритмов для каждого объекта.At step 910, a computer (for example, a server computer including one or more processors) can receive information specifying a large number of objects, an objective objective function for each of the objects, and a set of algorithms for each object.

На этапе операции 920 компьютер может создавать вектор решения, включающий в себя значения для набора переменных решения.At step 920, the computer can create a solution vector including values for a set of decision variables.

На этапе операции 930 компьютер может создавать NI векторов неопределенности, при этом каждый из NI векторов неопределенности является следствием отдельной конкретизации набора переменных неопределенности, где NI - положительное целое число.At step 930, the computer can create N I uncertainty vectors, each of the N I uncertainty vectors being the result of a separate specification of a set of uncertainty variables, where N I is a positive integer.

На этапе операции 940 компьютер может вычислять первую совокупность NI значений для каждой целевой функции объекта путем осуществления NI итераций выполнения соответствующего набора алгоритмов и оперирования с выходными данными, создаваемыми на каждой из NI итераций указанного выполнения, и при каждом выполнении соответствующего набора алгоритмов производятся действия над набором входных данных, определенным с помощью значений переменных решения и соответствующего одного из векторов неопределенности.At step 940, the computer can calculate the first set of N I values for each objective function of the object by performing N I iterations of the execution of the corresponding set of algorithms and operating with the output data generated at each of the N I iterations of the specified execution, and each time the corresponding set of algorithms is executed, actions on a set of input data defined using the values of decision variables and the corresponding one of the uncertainty vectors.

На этапе операции 950 компьютер может вычислять первый статистический показатель объекта по каждой целевой функции объекта на основании соответствующей совокупности значений.At step 950, the computer can calculate the first statistical indicator of the object for each objective function of the object based on the corresponding set of values.

На этапе операции 960 компьютер может вычислять значение глобальной целевой функции на основании первого статистического показателя объекта.At step 960, the computer can calculate the value of the global objective function based on the first statistic of the object.

На этапе операции 970 компьютер может выполнять оптимизатор, при этом выполнение оптимизатора включает в себя многократное осуществление операций с 920 по 960, в результате чего образуется большое количество векторов решения и соответствующих значений глобальной целевой функции, и при этом оптимизатор использует большое количество векторов решения и соответствующих значений глобальной целевой функции для образования и многократной корректировки эталонного набора векторов решения, чтобы оптимизировать глобальную целевую функцию.At step 970, the computer can perform the optimizer, while the optimizer includes repeatedly performing operations 920 to 960, resulting in a large number of solution vectors and corresponding values of the global objective function, and the optimizer uses a large number of solution vectors and corresponding values of the global objective function for the formation and multiple adjustments of the reference set of solution vectors in order to optimize the global objective function.

Согласно некоторым осуществлениям компьютер можетIn some embodiments, a computer may

вычислять второй статистический показатель для каждого объекта по соответствующей одной из совокупностей; иcalculate the second statistical indicator for each object for the corresponding one of the populations; and

вычислять значение вспомогательной функции на основании второго статистического показателя объекта.calculate the value of the auxiliary function based on the second statistical indicator of the object.

При выполнении оптимизатора может осуществляться попытка оптимизации (то есть максимизации или минимизации) глобальной целевой функции, подчиненной ограничению, наложенному на одну или несколько функций из вспомогательных функций и глобальной целевой функции.When performing the optimizer, an attempt may be made to optimize (i.e., maximize or minimize) the global objective function, subject to a restriction imposed on one or more functions from auxiliary functions and the global objective function.

Фигура 10 - структурная схема компьютерной системыFigure 10 - structural diagram of a computer system

На фигуре 10 представлена структурная схема, отображающая компьютерную систему 1082 согласно одному ряду осуществлений, которая может выполнять функции серверного компьютера или клиентского компьютера, как это было описано различным образом в настоящей заявке.FIG. 10 is a block diagram showing a computer system 1082 according to one set of embodiments that can act as a server computer or a client computer, as described variously in the present application.

Компьютерная система 1082 может включать в себя по меньшей мере один блок 1160 центрального процессора (то есть процессор), который соединен с главной шиной 1162. Блок 1160 центрального процессора может быть любым из различных типов, включая, но без ограничения ими, процессор x86, процессор PowerPC, блок центрального процессора из семейства SPARC (с масштабируемой архитектурой процессора) процессоров RISC (с упрощенным набором команд), а также и другие. Запоминающая среда, обычно включающая в себя полупроводниковое оперативное запоминающее устройство и называемая в настоящей заявке основной памятью 1166, может быть связана с главной шиной 1162 через посредство контроллера 1164 памяти. В основной памяти 1166 могут храниться программы, выполняемые для реализации любого или всех или любой подгруппы различных способов согласно осуществлениям, описанным в настоящей заявке. В основной памяти также может храниться программное обеспечение операционной системы, а также другое программное обеспечение для работы компьютерной системы.Computer system 1082 may include at least one central processing unit 1160 (i.e., a processor) that is connected to a host bus 1162. The central processing unit 1160 may be any of various types, including, but not limited to, an x86 processor, processor PowerPC, a central processor unit from the SPARC family (with scalable processor architecture) of RISC processors (with a simplified instruction set), as well as others. A storage medium, typically including a semiconductor random access memory and referred to in this application as main memory 1166, may be connected to the main bus 1162 via a memory controller 1164. In the main memory 1166 can be stored programs that are executed to implement any or all or any subgroup of various methods according to the implementations described in this application. The main memory can also store operating system software, as well as other software for operating a computer system.

Главная шина 1162 может быть связана с шиной 1170 расширения или ввода/вывода через шинный контроллер 1168 или шинную мостовую логику. Шина 1170 расширения может включать в себя слоты для различных устройств, таких как видеокарта 1180, жесткий диск 1182, устройства 1190 хранения информации (такие как дисковод для компакт-дисков, ленточный накопитель, накопитель на гибких дисках и т.д.) и сетевой интерфейс 1122. Видеокарту 1180 можно соединять с дисплейным устройством, таким как монитор, проекционный аппарат или головной дисплей. Сетевой интерфейс 1122 (например, устройство сети Ethernet) может быть использован для связи с другими компьютерами через сеть.The host bus 1162 may be coupled to an expansion or I / O bus 1170 via a bus controller 1168 or bus bridge logic. The expansion bus 1170 may include slots for various devices, such as a video card 1180, a hard disk 1182, information storage devices 1190 (such as a CD-ROM drive, tape drive, floppy disk drive, etc.) and a network interface 1122. The video card 1180 can be connected to a display device, such as a monitor, projection apparatus, or head-mounted display. A network interface 1122 (e.g., an Ethernet device) can be used to communicate with other computers over the network.

Компьютерная система 1082 может также включать в себя устройства 1192 ввода-вывода, такие как мышь, клавиатура, громкоговорители.Computer system 1082 may also include input / output devices 1192, such as a mouse, keyboard, and speakers.

Компьютерная система 1082 согласно вариантам осуществления, нацеленная на использование в качестве серверного компьютера, может быть усилена за счет более высокой производительности процессора (например, могут иметься несколько процессоров), большей емкости запоминающего устройства и большей пропускной способности доступа к сети, чем компьютерная система согласно вариантам осуществления, нацеленная на использование в качестве клиентского компьютера. Клиентский компьютер может включать в себя мышь, клавиатуру, громкоговорители и видеокарту (или графический ускоритель), тогда как нет необходимости в том, чтобы серверный компьютер включал в себя эти предметы.A computer system 1082 according to embodiments aimed at being used as a server computer can be enhanced by higher processor performance (for example, there may be several processors), more storage capacity, and more network access bandwidth than a computer system according to embodiments implementation aimed at using as a client computer. A client computer may include a mouse, keyboard, speakers, and a video card (or graphics accelerator), while there is no need for the server computer to include these items.

Любой способ (или часть его) согласно осуществлениям, описанным в настоящей заявке, может быть реализован на основе программных команд. Программные команды могут храниться на считываемой компьютером запоминающей среде. Программные команды могут считываться и выполняться (компьютером или группой компьютеров) для реализации способа (или части его) согласно осуществлениям. См. определение запоминающей среды, данное в перечне терминов, приведенном ниже.Any method (or part of it) according to the implementations described in this application can be implemented based on program instructions. Program instructions may be stored in a computer readable storage medium. Software instructions may be read and executed (by a computer or group of computers) to implement a method (or part of it) according to implementations. See the definition of storage medium given in the list of terms below.

ТерминологияTerminology

В настоящей заявке использованы следующие термины.The following terms are used in this application.

Алгоритм:Algorithm:

Алгоритм представляет собой вычислительный метод.The algorithm is a computational method.

Аргумент:Argument:

Входные данные и выходные данные алгоритма именуются аргументами. Аргумент может быть входными данными для алгоритма или выходными данными от алгоритма или как входными, так и выходными данными. Каждый аргумент может иметь уникальное имя (относящееся к алгоритму, для которого он определен) и также конкретный тип объекта, который он может нести (например, функцию, преобразующую целое число в эквивалентное число с плавающей запятой, целое число, строку и т.д.).The input and output of the algorithm are called arguments. The argument may be input to the algorithm, or output from the algorithm, or both input and output. Each argument can have a unique name (related to the algorithm for which it is defined) and also a specific type of object that it can carry (for example, a function that converts an integer to an equivalent floating point number, integer, string, etc. )

Карта аргументов:Argument Map:

Библиотека аргументов, принадлежащих к алгоритму, именуется картой аргументов.An argument library belonging to an algorithm is called an argument map.

Цикл:Cycle:

Цикл используется для выполнения алгоритма несколько раз (однако, как отмечалось выше, необязательно последовательно). Цикл может быть образован из итератора алгоритма, алгоритма и необязательного диспетчера (то есть механизма для распределения итераций алгоритма). Построителем потоков пользователю предоставляется возможность выбора различных итераторов алгоритма для использования в цикле и выбора различных диспетчеров для использования в цикле. Цикл сам представляет собой алгоритм. Карта аргументов цикла может быть определена как комбинация карты аргументов итератора алгоритма и карты аргументов алгоритма.The loop is used to execute the algorithm several times (however, as noted above, not necessarily sequentially). A loop can be formed from an iterator of an algorithm, an algorithm, and an optional dispatcher (that is, a mechanism for distributing iterations of the algorithm). The thread builder gives the user the opportunity to select various algorithm iterators for use in the loop and to select various dispatchers for use in the loop. The loop itself is an algorithm. An argument map of a loop can be defined as a combination of an argument iterator argument map and an algorithm argument map.

Запоминающая среда:Storage medium:

Запоминающая среда представляет собой среду, сконфигурированную для хранения информации. Примеры запоминающих сред включают в себя магнитные среды различных видов (например, магнитную ленту или магнитный диск); оптические среды различных видов (например, компакт-диск, доступный только для чтения); полупроводниковые оперативные запоминающие устройства и постоянные запоминающие устройства различных видов; различные среды, основанные на сохранении электрического заряда или других физических величин; и т.д.A storage medium is an environment configured to store information. Examples of storage media include various types of magnetic media (e.g., magnetic tape or magnetic disk); optical media of various kinds (for example, a read-only CD); semiconductor random access memory and read-only memory devices of various kinds; various media based on the conservation of electric charge or other physical quantities; etc.

Итератор алгоритма:Algorithm Iterator:

Итератор алгоритма используется для получения наборов итерационных данных, предназначенных для соответствующего алгоритма в пределах цикла. Итератор алгоритма может иметь пару карт аргументов. Действие одной карты аргументов проявляется в пределах и вне цикла, и она используется в качестве входных данных и выходных данных итератора алгоритма. Вторая карта аргументов используется для связи с соответствующим алгоритмом в пределах цикла.The algorithm iterator is used to obtain sets of iterative data intended for the corresponding algorithm within the loop. An algorithm iterator may have a pair of argument maps. The action of one map of arguments appears both inside and outside the loop, and it is used as input and output from an algorithm iterator. The second argument map is used to communicate with the corresponding algorithm within the loop.

Диспетчер:Dispatcher:

Диспетчер используется для распределения итераций соответствующего алгоритма.The dispatcher is used to distribute iterations of the corresponding algorithm.

Алгоритм сценария:Script algorithm:

Алгоритмом сценария представляется сценарий (такой как сценарий Jython или сценарий Perl), встроенный в алгоритм. Входные аргументы алгоритма могут быть привнесены в сценарий, а выходные аргументы сценария могут быть выходными аргументами алгоритма.A script algorithm is a script (such as a Jython script or a Perl script) built into the algorithm. The input arguments of the algorithm can be brought into the script, and the output arguments of the script can be the output arguments of the algorithm.

Алгоритм процесса:Process algorithm:

Алгоритмом процесса представляется внешний процесс, который встраивается в алгоритм. Алгоритмы процесса могут включать в себя алгоритмы имитации процесса и алгоритмы оптимизации. Алгоритм имитации процесса осуществляет моделирование физической системы обычно на основе одной или нескольких моделей, задаваемых в виде входных данных. Одним примером алгоритма моделирования процесса является имитатор движения флюидов через пористые среды, именуемый имитатором коллектора.The process algorithm is an external process that is embedded in the algorithm. Process algorithms may include process simulation algorithms and optimization algorithms. A process simulation algorithm simulates a physical system, usually based on one or more models specified as input data. One example of a process simulation algorithm is a fluid simulator through porous media called a reservoir simulator.

Поток:Flow:

Поток представляет собой набор взаимосвязанных алгоритмов. Для связи выходного аргумента одного алгоритма с входным аргументом второго алгоритма построитель потоков может потребовать приведения в соответствие имени и типа аргумента. Например, выходные данные INT (точные числовые данные) могут быть переданы во входные данные FLOAT (приближенные числовые данные). Однако передача выходных данных STRING (строка) во входные данные INT может быть запрещена. Графический интерфейс пользователя может быть предусмотрен для обеспечения возможности связи различных алгоритмов вручную. После того как поток создан, при желании он может быть преобразован в алгоритм.A stream is a collection of interconnected algorithms. To associate the output argument of one algorithm with the input argument of the second algorithm, the thread builder may require matching the name and type of the argument. For example, the output INT (exact numeric data) can be transferred to the input FLOAT (approximate numeric data). However, passing STRING output (string) to INT input may be prohibited. A graphical user interface may be provided to enable manual communication of various algorithms. After the stream is created, if desired, it can be converted into an algorithm.

Хотя выше осуществления были описаны очень подробно, многочисленные изменения и модификации станут очевидными для специалистов в данной области техники после полного понимания приведенного выше раскрытия. Предполагается, что нижеследующая формула изобретения будет интерпретироваться с охватом всех таких изменений и модификаций.Although the embodiments have been described in great detail above, numerous changes and modifications will become apparent to those skilled in the art after fully understanding the above disclosure. It is intended that the following claims be interpreted to cover all such changes and modifications.

Claims (29)

1. Способ оптимизации решений, касающихся множества объектов, при этом, объектами являются нефте и/или газовые месторождения, способ содержит этапы, на которых
(a) принимают информацию, задающую переменные решения и переменные неопределенности для множества объектов и задающую для каждого объекта соответствующий набор из одного или нескольких алгоритмов;
(b) образуют вектор решения, при этом вектор решения включает в себя значение для каждой из переменных решения;
(c) выполняют процесс оценивания относительно вектора решения для определения, по меньшей мере, значения глобальной целевой функции для вектора решения, в котором указанное выполнение процесса оценивания включает в себя
(с1) образование вектора неопределенности, при этом вектор неопределенности включает в себя значение для каждой из переменных неопределенности;
(с2) образование для каждого объекта набора данных для соответствующего набора алгоритмов с использованием соответствующего подмножества из одного или нескольких значений в векторе решения и соответствующего подмножества из одного или нескольких значений в векторе неопределенности;
(с3) инициирование выполнения набора алгоритмов для каждого объекта на основании соответствующего набора данных для получения выходных аргументов, соответствующих объекту;
(с4) вычисление для каждого объекта одного или нескольких значений одной или нескольких соответствующих величин по выходным аргументам, соответствующим объекту;
(с5) выполнение операций, включающих в себя с (с1) по (с4), несколько раз, в результате чего образуется совокупность значений каждой величины для каждого объекта;
(с6) вычисление одного или нескольких статистических показателей для каждого объекта на основании соответствующей одной из совокупностей; и
(с7) комбинирование первого поднабора статистических показателей для определения значения глобальной целевой функции, соответствующего вектору решения;
(d) выполняют оптимизатор, при этом указанное выполнение оптимизатора включает в себя многократное осуществление (b) и (с), в результате чего образуется множество векторов решения и соответствующих значений глобальной целевой функции, и при этом оптимизатор использует множество векторов решения и соответствующих значений глобальной целевой функции для образования и многократной корректировки эталонного набора векторов решения, чтобы оптимизировать глобальную целевую функцию;
(e) сохраняют данные, включающие в себя множество векторов решения и соответствующие им значения глобальной целевой функции, в запоминающем устройстве;
(f) бурят ряд скважин во множестве месторождений, при этом количество скважин определяют посредством выбора одного из векторов решения эталонного набора;
при этом упомянутое бурение ряда скважин включает в себя бурение ряда скважин в местоположениях, определенных посредством выбора одного из векторов решения эталонного набора.
1. A method for optimizing decisions regarding a plurality of objects, the objects being oil and / or gas fields, the method comprising the steps of
(a) receive information defining decision variables and uncertainty variables for a plurality of objects and defining for each object an appropriate set of one or more algorithms;
(b) form a solution vector, wherein the solution vector includes a value for each of the decision variables;
(c) performing an estimation process with respect to the solution vector to determine at least a global objective function value for the solution vector in which said execution of the evaluation process includes
(c1) the formation of an uncertainty vector, wherein the uncertainty vector includes a value for each of the uncertainty variables;
(c2) the formation for each object of a data set for the corresponding set of algorithms using the corresponding subset of one or more values in the solution vector and the corresponding subset of one or more values in the uncertainty vector;
(c3) initiating the execution of a set of algorithms for each object based on the corresponding data set to obtain output arguments corresponding to the object;
(c4) calculating, for each object, one or more values of one or more corresponding values from the output arguments corresponding to the object;
(c5) performing operations including (c1) to (c4) several times, resulting in a set of values of each quantity for each object;
(c6) calculating one or more statistical indicators for each object based on the corresponding one of the aggregates; and
(c7) combining the first subset of statistical indicators to determine the value of the global objective function corresponding to the solution vector;
(d) an optimizer is performed, wherein said optimizer implementation includes the repeated implementation of (b) and (c), as a result of which a plurality of solution vectors and corresponding values of the global objective function are generated, and the optimizer uses a plurality of solution vectors and corresponding values of the global objective function for the formation and multiple adjustments of the reference set of decision vectors in order to optimize the global objective function;
(e) storing data including a plurality of decision vectors and their corresponding global objective function values in a storage device;
(f) drilling a number of wells in a plurality of fields, wherein the number of wells is determined by selecting one of the solution vectors of the reference set;
wherein said drilling of a number of wells includes drilling a series of wells at locations determined by selecting one of the solution vectors of the reference set.
2. Способ по п.1, в котором указанное инициирование выполнения включает в себя распределение наборов данных для месторождений на множество удаленных компьютеров, при этом указанное выполнение набора алгоритмов соответствующих наборов данных осуществляется на удаленных компьютерах.2. The method according to claim 1, wherein said initiation of execution includes distributing data sets for deposits to a plurality of remote computers, wherein said execution of a set of algorithms of corresponding data sets is performed on remote computers. 3. Способ по п.1, в котором указанная информация получена от клиентского компьютера через компьютерную сеть.3. The method according to claim 1, wherein said information is received from a client computer via a computer network. 4. Способ по п.1, в котором дополнительно отображают графическое представление, по меньшей мере, поднабора векторов решения из эталонного набора.4. The method according to claim 1, in which additionally display a graphical representation of at least a subset of the solution vectors from the reference set. 5. Способ по п.1, в котором указанная информация задает одну или несколько функциональных зависимостей между переменными неопределенности, причем при указанном образовании вектора неопределенности учитывают указанную одну или несколько функциональных зависимостей между переменными неопределенности.5. The method according to claim 1, in which the specified information defines one or more functional dependencies between the uncertainty variables, and with the specified formation of the uncertainty vector, take into account the specified one or more functional dependencies between the uncertainty variables. 6. Способ по п.1, в котором указанная информация также задает одну или несколько корреляционных связей между переменными неопределенности, причем при указанном образовании вектора неопределенности учитывают указанные корреляционные связи.6. The method according to claim 1, in which the specified information also defines one or more correlation relationships between the uncertainty variables, and with the specified formation of the uncertainty vector take into account these correlation relationships. 7. Способ по п.6, в котором переменные неопределенности включают в себя два или более поднаборов, относящихся к двум или более объектам, соответственно, при этом указанные корреляционные связи включают в себя корреляционные связи между переменными неопределенности по различным объектам.7. The method according to claim 6, in which the uncertainty variables include two or more subsets related to two or more objects, respectively, while these correlation relationships include correlation relationships between the uncertainty variables for various objects. 8. Способ по п.7, в котором указанная информация также задает одно или несколько ограничений на переменные решения, причем при указанном образовании вектора решения соблюдают указанное одно или несколько ограничений на переменные решения.8. The method according to claim 7, in which the specified information also sets one or more restrictions on the decision variables, and with the specified formation of the solution vector, the specified one or more restrictions on the decision variables are observed. 9. Способ по п.1, в котором переменные решения включают в себя одну или несколько числовых переменных решения и одну или несколько сценарных переменных решения.9. The method according to claim 1, in which the decision variables include one or more numeric decision variables and one or more scenario decision variables. 10. Способ по п.1, в котором значение глобальной целевой функции представляет собой статистический показатель совокупности значений целевой функции объектного уровня, при этом значения целевой функции объектного уровня вычисляют на основании множества выполнений с (с1) по (с4), используя различные конкретизированные значения переменных неопределенности.10. The method according to claim 1, in which the value of the global objective function is a statistical indicator of the set of values of the objective function of the object level, while the values of the objective function of the object level are calculated based on the set of executions (c1) to (c4) using various specific values variables of uncertainty. 11. Способ по п.1, в котором указанная информация также задает одну или несколько функциональных зависимостей между переменными решения, причем при указанном образовании вектора решения учитывают указанную одну или несколько функциональных зависимостей между переменными решения.11. The method according to claim 1, wherein said information also defines one or more functional dependencies between solution variables, and with said formation of a solution vector, said one or more functional dependencies between solution variables are taken into account. 12. Способ по п.1, в котором каждая из переменных решения имеет относящееся к ней множество достижимых значений, представляющих возможные результаты соответствующего решения, при этом каждая из переменных неопределенности имеет относящееся к ней множество достижимых значений.12. The method according to claim 1, in which each of the decision variables has a plurality of attainable values related thereto, representing the possible results of the corresponding solution, each of the uncertainty variables has a plurality of attainable values relating thereto. 13. Способ по п.1, в котором при указанном выполнении процесса оценивания относительно вектора решения получают соответствующее значение вспомогательной функции в дополнение к указанному значению глобальной целевой функции, при этом указанное выполнение процесса оценивания относительно вектора решения дополнительно включает в себя этап, на котором
(с8) комбинируют второй поднабор статистических показателей для определения значения вспомогательной функции, соответствующего вектору решения;
при этом оптимизатор использует значения глобальной целевой функции и значения вспомогательной функции, соответствующие множеству векторов решения при указанной многократной корректировке эталонного набора, чтобы оптимизировать целевую функцию, подчиненную одному или нескольким ограничениям.
13. The method according to claim 1, in which, when the specified evaluation process is performed relative to the solution vector, the corresponding value of the auxiliary function is obtained in addition to the specified value of the global objective function, and the specified execution of the evaluation process relative to the solution vector further includes the step of:
(c8) combine the second subset of statistical indicators to determine the value of the auxiliary function corresponding to the solution vector;
the optimizer uses the values of the global objective function and the values of the auxiliary function corresponding to the set of solution vectors for the specified multiple adjustment of the reference set in order to optimize the objective function subject to one or more restrictions.
14. Способ по п.13, в котором одно или несколько ограничений включают в себя ограничение на функциональную комбинацию вспомогательной функции и глобальной целевой функции.14. The method according to item 13, in which one or more of the restrictions include a restriction on the functional combination of the auxiliary function and the global objective function. 15. Способ по п.13, в котором одно или несколько ограничений включают в себя ограничение на вспомогательную функцию.15. The method according to item 13, in which one or more restrictions include a restriction on an auxiliary function. 16. Способ по п.13, в котором (с8) включает в себя комбинирование второго поднабора статистических показателей в соответствии с линейной комбинацией, коэффициенты которой задаются указанной информацией.16. The method according to item 13, in which (c8) includes combining a second subset of statistical indicators in accordance with a linear combination, the coefficients of which are specified by the specified information. 17. Способ по п.13, в котором дополнительно
отображают график зависимости значения глобальной целевой функции от значения вспомогательной функции для каждого из указанного множества векторов решения.
17. The method according to item 13, in which additionally
display a graph of the dependence of the value of the global objective function on the value of the auxiliary function for each of the specified set of solution vectors.
18. Способ по п.13, в котором указанное сохранение включает в себя сохранение векторов решения из множества векторов решения вместе с соответствующими им значениями глобальной целевой функции и соответствующими значениями вспомогательной функции в базе данных в указанном запоминающем устройстве.18. The method according to item 13, in which the preservation includes the storage of solution vectors from the set of solution vectors together with the corresponding values of the global objective function and the corresponding values of the auxiliary functions in the database in the specified storage device. 19. Способ по п.18, в котором дополнительно
осуществляют действие над базой данных для идентификации поднабора из множества векторов решения, которые имеют оптимальные значения глобальной целевой функции для данного значения вспомогательной функции;
повторяют указанное действие для множества значений вспомогательной функции; и
сохраняют поднаборы, идентифицированные при указанном повторении.
19. The method according to p, in which additionally
perform an action on the database to identify a subset of the set of solution vectors that have optimal values of the global objective function for a given value of the auxiliary function;
repeat the specified action for the set of values of the auxiliary function; and
retain the subsets identified at the specified repetition.
20. Способ по п.18, в котором дополнительно
осуществляют действие над базой данных для определения геометрического места оптимальных значений глобальной целевой функции относительно значения вспомогательной функции; и
отображают геометрическое место оптимальных значений.
20. The method according to p, in which additionally
perform an action on the database to determine the geometric location of the optimal values of the global objective function relative to the value of the auxiliary function; and
display the geometric location of the optimal values.
21. Способ по п.20, в котором дополнительно
отображают графическое представление поднабора из множества векторов решения, которые соответствуют точке на геометрическом месте оптимальных значений, в ответ на выбор пользователем указанной точки.
21. The method according to claim 20, in which additionally
display a graphical representation of a subset of the set of solution vectors that correspond to a point at the geometric location of the optimal values, in response to a user selecting a specified point.
22. Способ по п.1, в котором набор из одного или нескольких алгоритмов для каждого объекта выбирается пользователем.22. The method according to claim 1, in which a set of one or more algorithms for each object is selected by the user. 23. Способ по п.1, в котором набор из одного или нескольких алгоритмов для по меньшей мере одного из объектов включает в себя алгоритм для оценивания добычи нефти и газа в динамике во времени.23. The method according to claim 1, in which a set of one or more algorithms for at least one of the objects includes an algorithm for estimating oil and gas production over time. 24. Способ по п.1, в котором набор из одного или нескольких алгоритмов для по меньшей мере одного из объектов включает в себя алгоритм для оценивания транспортировки нефти и газа на поверхности.24. The method according to claim 1, in which a set of one or more algorithms for at least one of the objects includes an algorithm for evaluating the transportation of oil and gas on the surface. 25. Способ по п.1, в котором набор из одного или нескольких алгоритмов для по меньшей мере одного из объектов включает в себя первый алгоритм для оценивания транспортировки нефти, газа и воды на поверхности, при этом указанный первый алгоритм представляет собой аналитическую модель сети наземных трубопроводов; или набор из одного или нескольких заданных пользователем алгебраических выражений.25. The method according to claim 1, in which the set of one or more algorithms for at least one of the objects includes a first algorithm for estimating the transportation of oil, gas and water to the surface, said first algorithm being an analytical model of a ground network pipelines; or a set of one or more user-defined algebraic expressions. 26. Способ по п.1, в котором набор алгоритмов для по меньшей мере одного из объектов включает в себя первый алгоритм для оценивания объема нефти и газа и трехмерных свойств коллектора.26. The method according to claim 1, in which the set of algorithms for at least one of the objects includes a first algorithm for estimating the volume of oil and gas and three-dimensional properties of the reservoir. 27. Способ по п.1, в котором набор алгоритмов для по меньшей одного из объектов включает в себя первый алгоритм для оценивания экономических показателей объекта.27. The method according to claim 1, in which the set of algorithms for at least one of the objects includes a first algorithm for evaluating the economic performance of the object. 28. Считываемый компьютером запоминающий носитель, который хранит программные команды, при этом программные команды являются исполняемыми для реализации любого одного из способов по пп.1-27.28. A computer-readable storage medium that stores program instructions, wherein the program instructions are executable for implementing any one of the methods of claims 1 to 27. 29. Компьютерная система для оптимизации решений, касающихся множества объектов, при этом объектами являются нефте и/или газовые месторождения, система содержит:
запоминающее устройство, которое хранит программные команды;
по меньшей мере, один процессор, сконфигурированный для чтения и выполнения программных команд, при этом указанные программные команды являются исполняемыми для реализации любого одного из способов по пп.1-27.
29. A computer system for optimizing decisions regarding a variety of objects, the objects being oil and / or gas fields, the system contains:
a storage device that stores program instructions;
at least one processor configured to read and execute program instructions, wherein said program instructions are executable for implementing any one of the methods of claims 1 to 27.
RU2007144174/08A 2005-04-29 2006-04-28 Optimisation of solutions for multitude of objects with various basic uncertainties RU2417443C2 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US67648405P 2005-04-29 2005-04-29
US60/676,484 2005-04-29
US20381505A 2005-08-15 2005-08-15
US11/203,815 2005-08-15
US11/215,737 2005-08-30

Publications (2)

Publication Number Publication Date
RU2007144174A RU2007144174A (en) 2009-06-10
RU2417443C2 true RU2417443C2 (en) 2011-04-27

Family

ID=41024129

Family Applications (2)

Application Number Title Priority Date Filing Date
RU2007144174/08A RU2417443C2 (en) 2005-04-29 2006-04-28 Optimisation of solutions for multitude of objects with various basic uncertainties
RU2007144175/08A RU2413992C2 (en) 2005-04-29 2006-05-01 Analysis of multiple objects based on uncertainties

Family Applications After (1)

Application Number Title Priority Date Filing Date
RU2007144175/08A RU2413992C2 (en) 2005-04-29 2006-05-01 Analysis of multiple objects based on uncertainties

Country Status (1)

Country Link
RU (2) RU2417443C2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2622857C1 (en) * 2016-03-02 2017-06-20 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Пензенский государственный университет" (ФГБОУ ВПО "Пензенский государственный университет") System of transformation, analysis and evaluation of information objects of the object
RU2701093C1 (en) * 2019-03-11 2019-09-24 Федеральное государственное казенное военное образовательное учреждение высшего образования "Военная академия Ракетных войск стратегического назначения имени Петра Великого" МО РФ Device for fuzzy-random simulation of scenarios of situation development
RU199084U1 (en) * 2020-02-17 2020-08-13 Федеральное государственное бюджетное учреждение "4 Центральный научно-исследовательский институт" Министерства обороны Российской Федерации A device for analyzing and evaluating the progress of the program for the development of complex technical systems

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10435995B2 (en) 2014-01-06 2019-10-08 Schlumberger Technology Corporation Oilfield management method and system
RU2708343C2 (en) * 2018-04-16 2019-12-05 Алексей Владимирович Вейко Method of searching and recovering functional dependencies and device for implementation thereof

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2622857C1 (en) * 2016-03-02 2017-06-20 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Пензенский государственный университет" (ФГБОУ ВПО "Пензенский государственный университет") System of transformation, analysis and evaluation of information objects of the object
RU2701093C1 (en) * 2019-03-11 2019-09-24 Федеральное государственное казенное военное образовательное учреждение высшего образования "Военная академия Ракетных войск стратегического назначения имени Петра Великого" МО РФ Device for fuzzy-random simulation of scenarios of situation development
RU199084U1 (en) * 2020-02-17 2020-08-13 Федеральное государственное бюджетное учреждение "4 Центральный научно-исследовательский институт" Министерства обороны Российской Федерации A device for analyzing and evaluating the progress of the program for the development of complex technical systems

Also Published As

Publication number Publication date
RU2007144175A (en) 2009-06-10
RU2007144174A (en) 2009-06-10
RU2413992C2 (en) 2011-03-10

Similar Documents

Publication Publication Date Title
US8458000B2 (en) Analysis of multiple assets in view of functionally-related uncertainties
US8457997B2 (en) Optimization of decisions regarding multiple assets in the presence of various underlying uncertainties
EP1897040B1 (en) Analysis of multiple assets in view of uncertainties
Sacks et al. Building information modelling, artificial intelligence and construction tech
US7835893B2 (en) Method and system for scenario and case decision management
US8639545B2 (en) Generating an optimized analytical business transformation
Ciaurri et al. Application of derivative-free methodologies to generally constrained oil production optimization problems
US7546228B2 (en) Stochastically generating facility and well schedules
Cullick et al. Optimizing multiple-field scheduling and production strategy with reduced risk
CN101379498A (en) Methods, systems, and computer-readable media for fast updating of oil and gas field production models with physical and proxy simulators
RU2417443C2 (en) Optimisation of solutions for multitude of objects with various basic uncertainties
Purdy et al. Case Study of Creating a Brand New, Ultra-efficient, Data-driven Offshore Independent Operator
Nowak-Nova Cognitive Automation of Real Property Management Processes
Ndubuka et al. History Matching in a Reservoir Model Using an Automatic Approach
West Petroleum Production Planning Optimization

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20170429