BRPI0609919A2 - método para otimizar decisões em relação a vantagens múltiplas na presença de várias incertezas fundamentadas, meio de memória legìvel por computador e sistema de computador - Google Patents

método para otimizar decisões em relação a vantagens múltiplas na presença de várias incertezas fundamentadas, meio de memória legìvel por computador e sistema de computador Download PDF

Info

Publication number
BRPI0609919A2
BRPI0609919A2 BRPI0609919-0A BRPI0609919A BRPI0609919A2 BR PI0609919 A2 BRPI0609919 A2 BR PI0609919A2 BR PI0609919 A BRPI0609919 A BR PI0609919A BR PI0609919 A2 BRPI0609919 A2 BR PI0609919A2
Authority
BR
Brazil
Prior art keywords
decision
variables
values
uncertainty
vector
Prior art date
Application number
BRPI0609919-0A
Other languages
English (en)
Inventor
David S Heath
Keshav Narayanan
Alvin Stanley Cullick
Original Assignee
Landmark Graphics Corp
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
Priority claimed from US11/215,737 external-priority patent/US8457997B2/en
Application filed by Landmark Graphics Corp filed Critical Landmark Graphics Corp
Publication of BRPI0609919A2 publication Critical patent/BRPI0609919A2/pt

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00—Machine learning
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00—Computing arrangements using knowledge-based models
    • G06N5/02—Knowledge representation; Symbolic representation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Testing And Monitoring For Control Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Complex Calculations (AREA)
  • Analysing Materials By The Use Of Radiation (AREA)
  • Investigating Or Analysing Biological Materials (AREA)
  • Stored Programmes (AREA)

Abstract

MéTODO PARA OTIMIZAR DECISOES EM RELAçãO A VANTAGENS MúLTIPLAS NA PRESENçA DE VáRIAS INCERTEZAS FUNDAMENTADAS, MEIO DE MEMóRIA LEGìVEL POR COMPUTADOR E SISTEMA DE COMPUTADOR. A presente invenção refere-se a método para receber informações especificando variáveis de decisão e variáveis incertas para uma pluralidade de vantagens e especificando para cada uma das vantagens um conjunto correspondente de um ou mais algoritmos, gerar um vetor de decisão, em que o vetor de decisão inclui um valor para cada uma das variáveis de decisão, executar um processo de avaliação sobre o vetor de decisão para determinar pelo menos um valor de um objetivo global para o vetor de decisão, executar um otimizador, em que a execução do otimizador inclui realizar (b) e (c) repetidamente, através disso gerar uma pluralidade de vetores de decisão valores objetivos globais correspondentes, e em que o otimizador usa a pluralidade de vetores de decisão e os valores objetivos globais correspondentes para gerar e repetidamente atualizar um conjunto de referencia de vetores de decisão para otimizar o objetivo global, e armazenar dados incluindo a pluralidade de vetores de decisões e seus correspondentes valores objetivos globais em uma memória.

Description

Relatório Descritivo da Patente de Invenção para "MÉTODOPARA OTIMIZAR DECISÕES EM RELAÇÃO A VANTAGENS MÚLTIPLASNA PRESENÇA DE VÁRIAS INCERTEZAS FUNDAMENTADAS, MEIO DEMEMÓRIA LEGÍVEL POR COMPUTADOR E SISTEMA DE COMPUTADOR"
Antecedentes da Invenção
Campo da Invenção
A presente invenção refere-se, geralmente ao campo de deci-sões, incertezas, e análise de otimização e, mais especificamente, a um sis-tema e método para otimizar as decisões referentes a um sistema de ativosna presença de incertezas.
Descrição da Técnica Relacionada
Existe uma ampla gama de atividades que são tipicamente exe-cutadas no processo de explorar, desenvolver e operar os campos de óleo ede gás (ativos), por exemplo, as atividades tais como:
arrendar a terra;
adquirir dados sísmicos;
perfurar poços exploratórios;
perfurar poços de produção;
completar os poços;
construir instalações para processar e armazenar a produção dos poços.
Apesar destas atividades requererem grandes dispêndios decapital, estes dispêndios são vistos como investimentos na esperança deganhar receita (por exemplo, da venda de óleo e de gás) que excedam signi-ficativamente a quantidade total dos dispêndios. Assim, estas atividades po-dem ser aqui referidas como atividades de investimento.
Cada uma das atividades de investimento requer que se tomevárias decisões, por exemplo, decisões referentes a:
quanta terra arrendar, e, quais parcelas de terra arrendar;
como adquirir os dados sísmicos, e, quantos dados sísmicos adquirir;quantos poços exploratórios perfurar, e, onde perfurar poços ex-ploratórios;
como desenvolver os campos;
quantos poços de produção e de injeção perfurar, onde perfuraros poços, e, qual o plano de poço (isto é, a trajetória através do espaço parao furo de poço) deve ser para cada um dos poços de produção;
quantas perfurações fazer para cada poço, e, como distribuir aslocalizações de perfuração ao longo do plano de poço para cada poço;em qual ordem perfurar e canhonear os poços;
de qual tamanho construir as instalações de processamento ecomo conectar os poços nas instalações e nos sistemas de exportação;
como processar os fluidos produzidos da formação geológica;
nos casos com uma pluralidade de ativos produtivos potenciais,quais ativos e em qual ordem desenvolver e produzir os ativos.
Mais ainda, estas decisões devem ser feitas no contexto de umaenorme quantidade de incertezas fundamentais, por exemplo, incertezas emfatores tais como:
os preços futuros de arrendamentos de óleo e de gás;
a quantidade de reservas de óleo e/ou gás em um campo;
aiforma e as propriedades físicas de reservatórios em cadacampo;
a quantidade de tempo que levará para perfurar cada poço ex-ploratório e cada poço de produção;
a disponibilidade futura de equipamentos tais como as platafor-mas de perfuração e as plataformas de completamento;
os custos associados com a operação e a manutenção de pro-dução e injeção dos poços e das instalações;
os preços futuros de óleo e de gás;
a estabilidade de condições climáticas.
De qualquer modo que se tomar uma decisão, estas incertezasfundamentais implicam em incertezas em recompensas tais como o volumede produção, a receita e o lucro. Portanto, existe uma necessidade de siste-mas e métodos capazes de auxiliar em tomar-se decisões (cada decisãotendo uma gama de opções disponíveis) referentes à exploração de camposde óleo e de gás em vista de incertezas fundamentais.
Sumário da Invenção
Em um conjunto de modalidades, um método para otimizar asdecisões referentes a uma pluralidade de ativos pode envolver as operaçõesde:
(a) receber as informações que especificam as variáveis de de-cisão e as variáveis de incerteza para uma pluralidade de ativos e especifi-car para cada ativo um conjunto correspondente de um ou mais algoritmos(por exemplo, algoritmos que modelem a produção de fluidos do reservató-rio, os dados econômicos e outros resultados para os ativos);
(b) gerar um vetor de decisão, onde o vetor de decisão inclui umvalor para cada uma das variáveis de decisão;
(c) executar um processo de avaliação no vetor de decisão paradeterminar pelo menos um valor de um objetivo global para o vetor de deci-são;
(d) executar um otimizador, onde a dita execução do otimizadorinclui executar (b) e (c) repetidamente por meio disto gerando uma pluralida-de de vetores de decisão e de valores de objetivo global correspondentes, e,onde o otimizador utiliza a pluralidade de vetores de decisão e os valores deobjetivo global correspondentes para gerar e repetidamente atualizar umconjunto de referência de vetores de decisão de modo a otimizar o objetivoglobal;
(e) armazenar os dados que incluem a pluralidade de vetores dedecisão e seus valores de objetivo global correspondentes em uma memória(por exemplo, na memória de sistema de um computador principal).
Mais ainda, o método pode envolver exibir uma representaçãográfica de pelo menos um subconjunto dos vetores de decisão do conjuntode referência.
A otimização pode ser executada por qualquer um de uma vari-edade de otimizadores, especialmente os otimizadores estocásticos. Porexemplo, o otimizador pode empregar um procedimento de pesquisa de in-terdição e/ou um procedimento de pesquisa de dispersão.
A operação para executar o processo de avaliação pode incluir:(d) gerar um vetor de incerteza, onde o vetor de incerteza incluium valor para cada uma das variáveis de incerteza;
(c2) gerar para cada ativo um conjunto de dados para o conjuntocorrespondente de algoritmos utilizando um subconjunto correspondente deum ou mais valores no vetor de decisão e um subconjunto correspondentede um ou mais valores no vetor de incerteza;
(c3) invocar a execução do conjunto de algoritmos para cadaativo sobre o conjunto de dados correspondente para obter um resultado quecorresponde ao ativo;
(c4) computar para cada ativo um ou mais valores de uma oumais respectivas quantidades, onde cada um dos valores de quantidade pa-ra um ativo é computado de pelo menos uma porção do resultado do conjun-to de algoritmos do ativo;
(c5) executar as operações que incluem (d) até (c4) um númerode vezes, por meio disto gerando uma população de valores de cada quanti-dade para cada ativo;
(c6) computar uma ou mais estatísticas para cada ativo com ba-se em umas correspondentes das populações; e
(c7) combinar um primeiro subconjunto de estatísticas para de-terminar o valor de objetivo global que corresponde ao vetor de decisão.
Em algumas modalidades, um subconjunto dos um ou mais valo-res de quantidade para o ativo pode ser computado utilizando os dados deentrada (por exemplo, os dados do conjunto de dados) assim como os dadosde resultado do conjunto de algoritmos do ativo.
As informações (referidas em (a) acima) podem especificar umaou mais dependências funcionais entre as variáveis de incerteza. A opera-ção (d) de gerar o vetor de incerteza pode ser executada em um modo querespeite as uma ou mais dependências funcionais entre as variáveis de in-certeza.As informações podem também especificar uma ou mais corre-lações entre as variáveis de incerteza. Neste caso, a operação (Cl) de geraro vetor de incerteza respeita as ditas correlações. As variáveis de incertezapodem incluir dois ou mais subconjuntos associados com dois ou mais dosativos respectivamente. As correlações podem incluir as correlações entreas variáveis de incerteza através dos diferentes ativos.
As informações podem também especificar uma ou mais restri-ções sobre as variáveis de incerteza. Neste caso, a operação (b) de gerar ovetor de decisão pode respeitar as uma ou mais restrições sobre as variá-veis de incerteza.
As informações podem também especificar uma ou mais depen-dências funcionais entre as variáveis de decisão. Neste caso, a operação (b)de gerar o vetor de decisão pode respeitar as uma ou mais dependênciasfuncionais entre as variáveis de decisão.
A operação (c) de executar o processo de avaliação no vetor dedecisão pode produzir um valor correspondente de uma função auxiliar alémdo dito valor de objetivo global. Assim, a operação (c) pode adicionalmenteincluir:
(c8) combinar um segundo subconjunto das estatísticas paradeterminar o valor de função auxiliar que corresponde ao vetor de decisão.
O otimizador pode utilizar os valores de objetivo globais e os va-lores de função auxiliar que correspondem à pluralidade de vetores de deci-são na dita atualização repetida do conjunto de referência de modo a otimi-zar a função objetiva sujeita a uma ou mais restrições.
O usuário pode especificar a estrutura da uma ou mais restri-ções. Por exemplo, o usuário pode especificar uma restrição sobre umacombinação funcional da função auxiliar e do objetivo global. (A combinaçãofuncional pode ser esta própria especificada pelo usuário). Como outro e-xemplo, o usuário pode especificar uma restrição da função auxiliar. A ope-ração (c8) pode incluir combinar o segundo subconjunto das estatísticas deacordo com uma combinação linear cujos coeficientes são especificadospela dita informação.Cada uma das variáveis de decisão tem um conjunto associadode valores atingíveis que representam os possíveis resultados de uma deci-são correspondente. Mais ainda, cada uma das variáveis de incerteza temum conjunto associado de valores atingíveis. Os conjuntos de valores atingí-veis podem ser conjuntos finitos de valores numéricos, estruturas de dados,programas, etc. Os conjuntos de valores atingíveis podem também ser inter-valos da linha de número real, ou mais genericamente, as regiões especifi-cadas pelo usuário em um espaço n dimensional, onde n é um inteiro positivo.
Em uma modalidade, o método pode também envolver exibiruma plotagem do valor de objetivo global versus o valor de função auxiliarpara cada uma da dita pluralidade de vetores de decisão.
A operação (e) de armazenamento pode incluir armazenar osvetores de decisão da pluralidade de vetores de decisão junto com seus va-lores de objetivo global correspondentes e os valores de função auxiliarescorrespondentes em um banco de dados na memória.
Em algumas modalidades, o método pode ainda incluir:operar nos bancos de dados para identificar um subconjunto dapluralidade de vetores de decisão que tenham valores ótimos do objetivoglobal para um dado valor de função auxiliar;
repetir a dita operação para uma pluralidade de valores de fun-ções auxiliares; e
armazenar os subconjuntos identificados na dita repetição.
Em algumas modalidades, o método pode também envolver:
operar no banco de dados para determinar um lugar de valores
ótimos do objetivo global em relação ao valor de função auxiliar; eexibir o lugar dos valores ótimos.
Uma representação gráfica de um subconjunto da pluralidade devetores de decisão que corresponde a um ponto no lugar do valor ótimo po-de ser exibida em resposta a uma seleção do usuário do ponto.
Um usuário pode especificar uma pluralidade de ativos, as variá-veis de decisão e as variáveis de incerteza para cada ativo. As variáveis dedecisão são variáveis que estão sujeitas à otimização.
As variáveis de incerteza são variáveis que são aleatoriamente(ou pseudoaleatoriamente) exploradas de modo a criar uma variação na en-trada suprida para os algoritmos de cada ativo.
O conjunto de um ou mais algoritmos para pelo menos um dosativos pode incluir um algoritmo para estimar a produção de óleo e de gáscom o transcorrer do tempo e um algoritmo para estimar a economia para oativo. O algoritmo para estimar a produção de óleo e de gás com o transcor-rer do tempo pode ser:
um simulador de equilíbrio de material que opera sobre uma es-trutura de dados de modelo de tanque;
um cálculo de equilíbrio de material executado em modelos deplanilhas;
um simulador de fluxo de reservatório que opera em uma estru-tura de dados tridimensional (3D) (por exemplo, um simulador de fluxo dereservatório com uma formulação de diferença finita, uma formulação aero-dinâmica, ou uma formulação de elemento finito);
um algoritmo definido por um conjunto de uma ou mais expres-sões algébricas especificadas pelo usuário.
Mais ainda, o conjunto de um ou mais algoritmos para pelo me-nos um dos ativos pode incluir um ou mais de:
um algoritmo para estimar o transporte de óleo e de gás na su-perfície, por exemplo, um simulador de processo de rede de tubulação desuperfície,
um algoritmo para estimar o transporte de óleo, gás e água nasuperfície, por exemplo um modelo analítico de rede de tubulação de super-fície ou um conjunto de uma ou mais expressões algébricas especificadaspelo usuário, e
um algoritmo para estimar o volume de óleo e de gás e as pro-priedades de reservatório em 3D.
O algoritmo para estimar o volume de óleo e de gás e as propri-edades de reservatório em 3D pode ser executado por:um algoritmo geoestatístico de geração de propriedade de sub-superfície,
um algoritmo de geração de armação estrutural de subsuperfície,
um algoritmo definido por um conjunto de uma ou mais expressões algébricas especificadas pelo usuário; ou
um simulador de equilíbrio de material.
O algoritmo para calcular a economia do ativo pode ser executado por:
algoritmos baseados em planilhas que podem incluir modelos fiscais totais e modelos de compartilhamento de produção;
algoritmos baseados em modelos econômicos analíticos e umconjunto de uma ou mais expressões algébricas especificadas pelo usuário.
Em outro conjunto de modalidades, um método para otimizar asdecisões referentes a uma pluralidade de ativos por meio de execução deum código de programa em um primeiro computador (por exemplo, um com-putador do servidor) pode envolver as operações de:
(a) receber as informações que especificam as variáveis de de-cisão e as variáveis de incerteza para a pluralidade de ativos e especificarpara cada ativo um conjunto correspondente de um ou mais algoritmos;
(b) gerar um vetor de decisão, onde o vetor de decisão inclui umvalor para cada uma das variáveis de decisão;
(c) executar um processo de avaliação no vetor de decisão paradeterminar pelo menos um valor de um objetivo global para o vetor de decisão;
(d) executar um otimizador, onde a dita execução do otimizadorinclui executar (b) e (c) repetidamente, por meio disto gerando uma plurali-dade de vetores de decisão e de valores de objetivo global correspondentes,e, onde o otimizador utiliza a pluralidade de vetores de decisão e os valoresde objetivo global correspondentes para gerar e repetidamente atualizar umconjunto de referência de vetores de decisão de modo a otimizar o objetivoglobal;(e) armazenar os dados que incluem a pluralidade de vetores dedecisão e seus valores de objetivo global correspondentes na memória.
As variáveis de decisão podem incluir as variáveis de decisãovaloradas numericamente e as variáveis de decisão valoradas quanto aocenário. Uma variável de decisão valorada numericamente é uma variável dedecisão cujos valores atingíveis são valores numéricos. Por exemplo, umavariável de decisão valorada única pode ser utilizada para representar osresultados possíveis para o número de poços a serem perfurados em umdado ativo. Uma variável de decisão valorada quanto ao cenário é uma vari-10 ável de decisão cujos valores atingíveis são estruturas de dados que des-crevem os cenários correspondentes. Por exemplo, uma variável de decisãovalorada quanto ao cenário pode ser utilizada para representar uma decisãoentre múltiplos cenários, cada cenário representando um diferente conjuntode escolhas para o número de poços em um dado ativo. As programaçõesde perfuração para os poços, e as geometrias de perfuração para os poços.
O valor de objetivo global pode ser computado com base emdados de saída gerados por um ou mais algoritmos que atuam sobre as va-riáveis de decisão. Em algumas modalidades, o valor de objetivo global podeser as reservas de óleo e de gás totais ou a produção ou o valor presentelíquido. Em outra modalidade, o valor de objetivo global pode ser uma esta-tística, por exemplo, a média das reservas ou do valor presente líquido. Emalgumas modalidades outras estatísticas do valor de objetivo global são re-queridas serem atendidas, por exemplo um desvio padrão ou qualquer valorquantílio.
A operação (c) para executar o processo de avaliação pode in-cluir:
(d) gerar N( vetores de incerteza, onde cada vetor de incertezacontém valores instanciados para cada uma das variáveis de incerteza, ondeN| é um inteiro positivo;
(c2) gerar N( conjuntos de dados de iteração para cada ativo,onde cada um dos conjuntos de dados de iteração é gerado utilizando umaporção do vetor de decisão e um uma porção de um correspondente dosvetores de incerteza;
(c3) expedir os N| conjuntos de dados de iteração para cada ati-vo para um ou mais segundos computadores para invocar a execução doconjunto de algoritmos para cada ativo sobre cada um dos Ni conjuntos dedados de iteração correspondentes, onde cada execução do conjunto dealgoritmos para o ativo em um conjunto de dados de iteração gera um con-junto de dados de saída corresponde;
(c4) receber os Ni conjuntos de dados de saída para cada umdos ativos dos um ou mais segundos computadores e armazenar os N| con-juntos de dados de saída em uma memória;
(c5) computar para cada ativo e cada um dos Ni conjuntos dedados de saída que correspondem ao ativo um ou mais valores de uma oumais respectivas quantidades com base nos dados no conjunto de dados desaída, por meio disto gerando uma população de N| valores de cada quanti-dade para cada ativo;
(c6) computar uma ou mais estatísticas para cada ativo com ba-se em correspondentes das populações; e
(c7) combinar um primeiro subconjunto das estatísticas 'para de-terminar o valor de objetivo global que corresponde ao vetor de decisão.
Algumas das uma ou mais quantidades computadas para cadaativo podem ser computadas com base em dados de entrada (por exemplo,os dados do conjunto de dados de iteração correspondentes) assim como osdados de saída do conjunto de algoritmos do ativo.
O primeiro computador e os um ou mais segundos computado-res podem estar acoplados através de uma rede de computadores, por e-xemplo, uma rede de área local, uma intranet, uma rede de área ampla, aInternet, etc.
A operação de expedir os conjuntos de dados de iteração induzuma execução distribuída dos conjuntos de algoritmos nos conjuntos de da-dos de iterações em uma pluralidade dos segundos computadores. Os se-gundos computadores podem estar organizados em uma estrutura de grade.
Em uma modalidade, um subconjunto dos conjuntos de dadosde iteração pode ser executado localmente pelo primeiro computador, de-pendendo em parte de quanta largura de banda de processamento está dis-ponível no primeiro computador.
As informações podem ser coletadas de um usuário por um pro-cesso que executa em um computador do cliente e enviadas para o primeirocomputador por este processo.
Em ainda outro conjunto de modalidades, um método para otimi-zar as decisões referentes a uma pluralidade de ativos pode envolver as o-perações de:
(a) receber as informações que especificam a pluralidade de ati-vos, um objetivo de ativo para cada um dos ativos, e um conjunto de algorit-mos para cada ativo;
(b) gerar um vetor de decisão que inclui valores para cada umconjunto de variáveis de decisão;
(c) gerar N( vetores de incerteza, onde cada um dos N, vetoresde incerteza resulta de uma instanciação separada de um conjunto de variá-veis de incerteza, onde N| é um inteiro positivo;
(d) computar uma primeira população de N| valores para cadaobjetivo de ativo pela execução de Ni iterações de execução do conjunto dealgoritmos correspondentes e operar nos dados de saída gerados em cadauma das Ni iterações da dita execução, onde cada execução do conjunto dealgoritmos correspondente opera em um conjunto de dados de entrada de-terminado pelos valores das variáveis de decisão e por um correspondentedos vetores de incerteza;
(e) computar uma primeira estatística de ativo em cada objetivode ativo da população de valores correspondente;
(f) computar um valor de um objetivo global com base na primei-ra estatística de ativo;
(g) executar um otimizador, onde a dita execução do otimizadorinclui executar (b) até (e) repetidamente, por meio disto gerando uma plurali-dade de vetores de decisão e de valores de objetivo global correspondentes,e, onde o otimizador utiliza a pluralidade de vetores de decisão e os valoresde objetivo global correspondentes para gerar e repetidamente atualizar umconjunto de referência de vetores de decisão de modo a otimizar o objetivoglobal;
O método pode também incluir as operações de:
computar uma segunda estatística de ativo para cada ativo deuma correspondente das populações; e
computar um valor de uma função auxiliar com base na segundaestatística de ativo.
A execução do otimizador tenta otimizar (isto é, maximizar ouminimizar) o objetivo global sujeito a uma restrição em uma ou mais da fun-ção auxiliar e do objetivo global.
Pelo emprego de um objetivo global o qual é uma combinaçãofuncional (por exemplo, uma combinação linear com coeficientes de ponde-ração positivos), várias modalidades de método aqui descritas podem serconfiguradas para permitir que a otimização de decisões referentes a umapluralidade de ativos sejam tomadas juntas. As modalidades de método po-dem manipular as dependências de variáveis de incerteza que incluem asdependências através de diferentes ativos. Mais ainda, as modalidades demétodo podem permitir a um usuário especificar as restrições sobre as vari-áveis de decisão que incluem as restrições sobre as variáveis de decisãoatravés de diferentes ativos.
Qualquer uma ou todas as modalidades de método aqui descri-tas podem ser implementadas em termos de instruções de programa. Asinstruções de programa podem ser armazenadas em qualquer um de váriostipos de meios de memória legíveis por computador tais como disco magné-tico, fita magnética, memória de semicondutor de vários tipos, memória debolha, CD-ROM, etc.
As instruções de programa podem ser armazenadas na memóriade um sistema de computador (ou nas memórias de um conjunto de siste-mas de computador). Um processador do sistema de computador pode estarconfigurado para ler e executar as instruções de programa da memória, epor meio disto, implementar a(s) modalidade(s) de método desejada(s) ouuma sua porção.
As instruções de programa (ou subconjuntos das instruções deprograma) podem também ser transmitidas através de qualquer um de vá-rios meios de transmissão, por exemplo, uma rede de computadores.
O Pedido de Patente U.S. Número 10/653.829, depositado em09/03/2003, intitulado "Método e Sistema Para Gerenciamento de Cenário eDecisão de Caso", inventado por Cullick, Narayanan e Wilson, está por meiodisto incorporado por referência em sua totalidade.
Breve Descrição dos Desenhos
Uma melhor compreensão da presente invenção pode ser obtidaquando a descrição detalhada aqui apresentada é considerada em conjuntocom os desenhos seguintes.
A figura 1 ilustra um conjunto de modalidades de módulos emuma aplicação do cliente e um servidor de fluxo.
A figura 2 ilustra um conjunto de modalidades de um fluxo confi-gurado para executar uma análise de otimização para as decisões relativasa uma pluralidade de ativos na presença de várias incertezas subjacentes(as quais são modeladas por variáveis de incerteza).
A figura 3 ilustra um conjunto de modalidades do otimizador 210da Figura 2.
A figura 4 ilustra um conjunto de modalidades do processo deavaliação 220 da Figura 2.
A figura 5 ilustra um conjunto de modalidades de um métodopara otimizar as decisões referentes a uma pluralidade de ativos.
A figura 6 ilustra um conjunto de modalidades da operação 520(isto é, a operação de executar o processo de avaliação) da Figura 5.
A figura 7 ilustra outro conjunto de modalidades de um métodopara otimizar as decisões.
A figura 8 ilustra um conjunto de modalidades da operação 730(isto é, a operação de executar o processo de avaliação) da Figura 7, desta-cando o ato de expedir os conjuntos de dados de iterações para outro(s)computador(es) para execução no(s) outro(s) computador(es).A figura 9 ilustra ainda outro conjunto de modalidades de ummétodo para otimizar as decisões.
A figura 10 ilustra um conjunto de modalidades de um sistemade computador que pode assumir o papel do computador do servidor emalgumas modalidades e do computador do cliente em algumas modalidades.
Apesar da invenção ser susceptível a várias modificações e for-mas alternativas, as suas modalidades específicas estão mostradas comoexemplo nos desenhos e estão aqui descritas em detalhes. Deve ser com-preendido, no entanto, que os desenhos e a descrição detalhada destes nãopretendem limitar a invenção à forma específica descrita, mas ao contrário, aintenção é de cobrir todas as modificações, equivalentes e alternativas quecaiam dentro do espírito e do escopo da presente invenção como definido nas reivindicações anexas.
Descrição Detalhada das Modalidades Preferidas
Em um conjunto de modalidades, um sistema de gerenciamentode decisões pode estar configurado para prover os mecanismos (por exem-plo, interfaces gráficas do usuário) para um usuário:
(a) construir um fluxo arbitrário;
(b) construir um conjunto de modelos que incluem as caracteri-zações de um número de incertezas e um número de decisões;
(c) especificar um conjunto de dados de controle de execuçãoque incluem as informações para qualificar e controlar a execução de umfluxo;
(d) invocar a execução de um fluxo em relação ao conjunto demodelos e ao conjunto de dados de controle de execução; e
(e) analisar os resultados da execução de fluxo.
Um fluxo é um conjunto interconectado de algoritmos para resol-ver um problema. O sistema de gerenciamento de decisões pode proveruma interface gráfica do usuário que permite ao usuário selecionar, importar,ou construir os algoritmos, e, conectar os algoritmos juntos para formar um fluxo.
Um fluxo pode estar configurado para incluir um ou mais laçosde computação. Os laços podem estar embutidos. Os laços de um fluxo po-dem servir a qualquer um de vários propósitos. Por exemplo, um fluxo podeincluir um laço de modo a executar uma otimização no espaço que corres-ponde a um número de variáveis. As variáveis que estão sujeitas à otimiza-ção são aqui referidas como variáveis de decisão. Como outro exemplo, umfluxo pode incluir um laço de modo explorar o impacto de variação em umespaço que corresponde a um número de variáveis que representam as in-certezas. As variáveis que representam as incertezas são aqui referidas co-mo variáveis de incerteza.
Um laço pode incluir um iterador, um algoritmo (ou, mais geral-mente, uma coleção de algoritmos), e opcionalmente, um expedidor. Quandoum fluxo é executado, o iterador é responsável para gerar os conjuntos dedados de iteração para as respectivas execuções do algoritmo. Cada execu-ção do algoritmo é executada em um correspondente dos conjuntos de da-dos de iteração. Cada conjunto de dados de iteração contém os dados utili-zados como entrada pelo algoritmo. Cada execução do algoritmo é aqui refe-rida como uma "iteração". No entanto, o termo "iteração" não significa reque-rer um processamento seqüencial de uma iteração após a outra. Realmente,o iterador e o expedidor podem estar configurados para dispor iterações pa-ralelas. Por exemplo, o iterador pode estar configurado para gerar um núme-ro de conjuntos de dados de iteração em antecipação a um número, de itera-ções correspondentes. O expedidor pode localizar outros computadores (ouprocessadores) que tenham uma largura de banda computacional disponí-vel, e, distribuir os conjuntos de dados de iteração para os outros computa-dores de modo que as iterações possam ser executadas em paralelo, oupelo menos parcialmente em paralelo dependendo do número de computa-dores disponíveis.
Em uma modalidade, o expedidor pode comprimir um ou maisdos conjuntos de dados de iteração para formar um arquivo de execução etransferir o arquivo de execução para um dos computadores remoto (quetenha uma largura de banda computacional disponível). O computador remo-to pode descomprimir o arquivo de execução para recuperar os conjuntos dedados de iteração, e, executar o algoritmo uma vez para cada um dos con-juntos de dados de iteração. O algoritmo pode incluir um código que envia osresultados de cada execução de volta para o primeiro computador (isto é, ocomputador no qual o expedidor está executando) para armazenamento.
Como acima notado, o arquivo de execução pode incluir conjun-tos de dados de iteração comprimidos. Se um computador remoto já nãotiver uma cópia do código executável para o algoritmo, o expedidor podecomprimir uma cópia do código executável e incluir o código comprimido noarquivo de execução.
Como acima indicado, um fluxo é um conjunto de algoritmos in-terconectados para resolver um problema. Os algoritmos operam sobre asestruturas de dados. Os diferentes tipos de algoritmos operam em diferentestipos de estruturas de dados. Por exemplo, um simulador de fluxo de reser-vatório, configurado para predizer as taxas de produção de óleo, gás e água,opera em um diferente conjunto de estruturas de dados do que um algoritmoeconômico configurado para predizer as receitas econômicas. O sistema degerenciamento de decisões pode prover uma interface através da qual o u-suário pode especificar as localizações de fonte (por exemplo, as localiza-ções de sistema de arquivo em uma rede) de arquivos e/ou bancos de dadosque contém as estruturas de dados. Mais ainda, o sistema de gerenciamentode decisões pode invocar ferramentas que permitam ao usuário criar e modi-ficar as estruturas de dados.
Cada estrutura de dados inclui um conjunto de um ou mais valo-res de dados. No entanto, alguns dos valores de dados de uma estrutura dedados podem representar parâmetros ou quantidades que são incertos. As-sim, o sistema de gerenciamento de decisões pode prover um mecanismopara o usuário selecionar um valor de dados em uma estrutura de dados epromover o valor de dados para uma variável de incerteza aplicando umconjunto de valores atingíveis para a variável de incerteza e uma distribuiçãode probabilidade para a variável de incerteza. (O valor de dados original po-de ser incluído por padrão como um dos valores no conjunto de valores atin-gíveis da variável de incerteza). Qualquer número de valores de dados emqualquer número de estrutura de dados podem assim ser promovidos a vari-áveis de incerteza.
Mais ainda, um valor de dados em uma estrutura de dados poderepresentar um resultado possível de uma decisão. O usuário pode desejarconsiderar outros resultados possíveis da decisão. Assim, o sistema de ge-renciamento de decisões pode prover um mecanismo para o usuário sele-cionar um valor de dados em uma estrutura de dados e promover o valor dedados para uma variável de decisão pelo suprimento de um conjunto de va-lores atingíveis que representam os possíveis resultados da decisão. (Porexemplo, o número de poços a serem perfurados em um dado campo podeser igual a qualquer inteiro de A até B inclusive. Como outro exemplo, a ca-pacidade de uma dada bomba pode ser igual a qualquer valor na faixa de Xaté Y pés cúbicos por minuto). O valor de dados original pode ser incluídopor padrão como um dos elementos do conjunto de valores atingíveis. Qual-quer número de valores de dados em qualquer número de estrutura de da-dos pode ser deste modo promovido a variáveis de decisão.
O conjunto de valores atingíveis para uma variável de decisãoou uma variável de incerteza pode ser um conjunto finito (por exemplo, umconjunto finito de valores numéricos especificados pelo usuário), ou, um con-junto infinito (por exemplo, um intervalo da linha real ou uma região em umespaço Euclidiano n dimensional, onde n é um inteiro positivo).
O usuário pode especificar a distribuição de probabilidade parauma variável de incerteza por vários meios. Se a variável de incerteza tiverum conjunto de valores atingíveis que é contínuo, o sistema de gerencia-mento de decisões pode permitir ao usuário especificar uma função de den-sidade de probabilidade (PDF) pela seleção de um tipo de PDF (tal comonormal, uniforme, triangular, etc.) e especificar os parâmetros que definemum PDF específico dentro do tipo selecionado. Se a variável de incertezativer um conjunto de valores atingíveis que é finito, o sistema de gerencia-mento de decisões pode permitir ao usuário inserir os valores de probabili-dade (ou os valores numéricos que podem ser subseqüentemente normali-zados para valores de probabilidade) para os valores atingíveis da variávelde incerteza. O sistema de gerenciamento de decisões pode permitir ao u-suário adaptar qualitativamente e quantitativamente um PDF para um con-junto de valores existentes para a variável de incerteza (possivelmente deanálogos).
É possível que existam duas ou mais estruturas de dados, cadauma das quais poderia ser suprida como uma entrada para um dado algorit-mo (ou um dado conjunto de algoritmos). O usuário pode estar incerto quan-to a qual das duas ou mais estruturas de dados utilizar. Por exemplo, podemexistir dois modelos geocelulares para o mesmo reservatório, e, pode nãoestar claro qual modelo é uma melhor representação do reservatório físico.Assim, o usuário pode desejar preparar um fluxo que executa um algoritmoum número de vezes, cada vez utilizando uma aleatoriamente selecionadadas duas ou mais estruturas de dados. Portanto, o sistema de gerenciamen-to de decisões pode prover um mecanismo para o usuário criar uma variávelde incerteza cujos valores atingíveis correspondam respectivamente às duasou mais estruturas de dados.
O usuário pode atribuir valores de probabilidade para os dois oumais valores atingíveis. Cada valor de probabilidade representa a probabili-dade de que a estrutura de dados correspondente será selecionada emqualquer dada realização da variável de incerteza. O usuário pode escolherconstruir qualquer número de variáveis de incerteza deste tipo. Um conjuntode estruturas de dados que estão mapeados para os valores atingíveis deuma variável de incerteza deste modo são ditas serem "subordinadas à vari-ável de incerteza".
Mais ainda, é possível que existam duas ou mais estruturas dedados as quais representam os resultados alternativos de uma decisão. Porexemplo, podem existir duas ou mais estruturas de dados, cada uma dasquais representa uma realização possível para as localizações de poços eas conexões de tubulação de instalações. Assim, o sistema de gerenciamen-to de decisões pode prover um mecanismo para o usuário criar uma variávelde decisão cujos valores atingíveis correspondem respectivamente às duasou mais estruturas de dados. Um conjunto de estruturas de dados que sãomapeadas para os valores atingíveis de uma variável de decisão deste modosão ditas serem "subordinadas à variável de decisão".
Assim, o sistema de gerenciamento de decisões permite ao usu-ário:
(1) especificar as localizações de fonte para as estruturas dedados, criar as estruturas de dados, e modificar as estruturas de dados;
(2) promover os valores de dados nas estruturas de dados paravariáveis de incerteza e variáveis de decisão;
(3) subordinar as estruturas de dados às variáveis de incerteza;
(4) subordinar as estruturas de dados às variáveis de decisão.
Algumas das estruturas de dados podem ser referidas comomodelos já que estas descrevem (ou caracterizam) os sistemas de interesse.
Por exemplo, as estruturas de dados podem incluir os modelos de reservató-rio geocelular, os modelos de plano de poço, etc. Os objetos que resultamdas operações (2), (3) e (4) são também aqui referidos como modelos.
O sistema de gerenciamento de decisões pode estar configuradopara suportar a utilização de modelos de reservatórios físicos altamente rigo-rosos, modelos de poços, modelos de fluxos de produção, e modelos eco-nômicos.
Alguma das variáveis de incerteza podem estar correlacionadas.Assim, o sistema de gerenciamento de decisões permite ao usuário especifi-car as correlações entre pares de variáveis de incerteza. Por exemplo, o u-suário pode selecionar um par de variáveis de incerteza, e, inserir um coefi-ciente de correlação para especificar a correlação entre o par de variáveis deincerteza. Em algumas modalidades, o usuário pode selecionar um grupo deduas ou mais variáveis de incerteza, e, inserir uma matriz de correlação parao grupo. Quando um fluxo é executado, as variáveis de incerteza são instan-ciadas em um modo que respeite as correlações especificadas pelo usuário.
Algumas das variáveis de incerteza podem ter dependênciasfuncionais entre as mesmas, por exemplo, dependências funcionais da for-ma Y = f(X), Y = f(X1f X2), Y = f(Xi, X2, X3), e assim por diante, onde X, X^X2, X3 e Y são variáveis de incerteza. Assim, o sistema de gerenciamento dedecisões pode prover uma interface do usuário a qual permite ao usuárioespecificar tais dependências funcionais. Qualquer uma de uma ampla vari-edade de funções (incluindo as funções lineares e não lineares) pode sersuportada. Em algumas modalidades, a interface do usuário permite ao usu-ário construir uma função algébrica arbitrária das variáveis de incerteza.Quando um fluxo é executado, as variáveis de incerteza são instanciadasem um modo que respeite estas dependências funcionais. Por exemplo, seY = f(X), uma instanciação para Y pode ser obtida primeiro instanciando X eentão avaliando a função f da instanciação de X. Similarmente, as variáveisde decisão podem ter dependências funcionais entre as mesmas, por exem-plo, dependências funcionais da forma Y = f(X), Y = f(Xi, X2), Y = f(Xi, X2,X3), e assim por diante, onde X, X-i, X2, X3 e Y são variáveis de decisão. As-sim, a mesma interface do usuário (ou uma diferente interface do usuário)pode ser utilizada para especificar tais dependências funcionais entre as va-riáveis de decisão.
Algumas das variáveis de decisão ou combinações funcionais devariáveis de decisão podem ser restritas. Assim, o sistema de gerenciamen-to de decisões pode prover uma interface do usuário a qual permite ao usuá-rio especificar restrições tais como:
Y .ineq. X,
Y .ineq. f(X),
Y.ineq.f(X1>X2)>
Y .ineq. f(Xi, X2) X3),
e assim por diante,
em variáveis de decisão tais como X, Xi, X2, X3 e Y, onde .ineq. pode serqualquer um dos operadores de desigualdades <, < > ou >. Qualquer umade uma ampla variedade de funções f (incluindo as funções lineares e nãolineares pode ser suportada). Em algumas modalidades, a interface do usuá-rio permite ao usuário construir uma função algébrica arbitrária das variáveisde decisão. Quando um fluxo executa, uma otimização é executada que res-peita as restrições especificadas pelo usuário sobre as variáveis de decisão.
O sistema de gerenciamento de decisões pode também proveruma interface do usuário através da qual o usuário pode especificar um con-junto de dados de controle de execução. Um conjunto de dados de controlede execução contém as informações para controlar e qualificar a execuçãode um fluxo. Por exemplo, um conjunto de dados de controle de execuçãopode incluir informações tais como:
um modo de instanciação para as variáveis de incerteza no flu-xo, e
números de iterações para os respectivos laços no fluxo.
Em um modo de instanciação Monte Cario, as variáveis de incer-teza (ou algum subconjunto das variáveis de incerteza) podem ser instancia-das aleatoriamente utilizando geradores de números aleatórios. Em modo deinstanciação de hipercubo Latino, as variáveis de incerteza (ou algum sub-conjunto das variáveis de incerteza) podem ser instanciadas utilizando o mé-todo de hipercubo Latino bem-conhecido. Em um modo de instanciação deprojeto experimental, as variáveis de incerteza (ou algum subconjunto dasvariáveis de incerteza) podem ser instanciadas utilizando qualquer um devários métodos de projeto experimentais bem-conhecidos.
Ao longo do tempo o usuário pode construir um número de flu-xos, um número de conjuntos de modelos, e um número de conjuntos dedados de controle de execução. O sistema de gerenciamento de decisõespode permitir ao usuário selecionar um fluxo, um conjunto de modelos e umconjunto de dados de controle de execução, e, invocar a execução do fluxoem relação ao conjunto de dados de controle de execução e ao conjunto demodelos. O sistema de gerenciamento de decisões pode também prover aousuário mais controle sobre como um fluxo pode ser executado. Por exem-plo, em algumas modalidades, um fluxo pode ser executado para operar ite-rações específicas que podem não ter sido executadas por uma variedadede razões em execuções anteriores do fluxo. Em outras modalidades, asiterações adicionais podem ser executadas em fluxos que já foram anterior-mente executados.
O sistema de gerenciamento de decisões pode prover váriasferramentas para o usuário projetar vários diferentes tipos de fluxos. Por e-xemplo, em algumas modalidades, o software de gerenciamento de decisõespode incluir um construtor de fluxo de decisão que está configurado paraautomatizar o processo de construir um fluxo para a otimização de decisõesrelativas à exploração de um conjunto de ativos (por exemplo, um conjuntode campos de óleo e de gás) em um modo que leva em conta várias incerte-zas associadas com o conjunto de ativos.
Arquitetura de Cliente - Servidor
O sistema de gerenciamento de decisões pode ser implementa-do pela execução de um software de gerenciamento de decisões em umconjunto de um ou mais computadores.
O software de gerenciamento de decisões pode ser dividido emum aplicativo do cliente e um aplicativo do servidor com um protocolo decomunicação entre o aplicativo do cliente e o aplicativo do servidor. Por e-xemplo, o protocolo de comunicação pode ser executado utilizando uma in-vocação de método remoto (RMI) ou Serviços da WEB.
O aplicativo do cliente pode executar em um computador do cli-ente e o aplicativo do servidor pode executar em um computador do servi-dor. No entanto, não existe nenhuma especificação de que o aplicativo docliente e o aplicativo do servidor devam executar em computadores separa-dos. Se um computador tiver uma potência computacional suficiente, tanto oaplicativo do cliente quanto o aplicativo do servidor podem executar naquelecomputador.
O aplicativo do servidor pode estar configurado para utilizar osexpedidores. Um expedidor é um programa (ou um sistema de programas)configurado para distribuir grupos de computações autocontidos (por exem-plo, as iterações de um grande trabalho) para outros processadores (oucomputadores) para execução nestes outros processadores. Os outros pro-cessadores podem estar distribuídos através de uma rede tal como uma re-de de área local, uma rede de área ampla, ou a Internet. Os outros proces-sadores podem também fazer parte de uma unidade de hardware de memó-ria compartilhada tal como um grupamento e podem ser utilizados como umaúnica unidade (por exemplo, em um ambiente de computação paralela).Em algumas modalidades, os módulos principais do aplicativo docliente e do aplicativo do servidor (isto é, o servidor de fluxo) pode ser comomostrado na Figura 1.
Aplicativos do Cliente e do Servidor
O aplicativo do cliente 100 pode incluir um construtor de fluxo107, um gerenciador de modelo 102, um operador de fluxo 109 e um anali-sador de saída 112.
O construtor de fluxo 107 prove uma interface do usuário atravésda qual o usuário apresenta um problema e cria um fluxo para resolvê-lo.
O gerenciador de modelo 102 prove uma interface através daqual o usuário pode criar, construir e modificar os modelos que incluem asvariáveis de decisão e as variáveis de incerteza.
O operador de fluxo 109 é utilizado para lançar a execução defluxos. Em resposta a uma solicitação do usuário para a execução de umfluxo, o operador de fluxo envia o fluxo juntamente com um conjunto de mo-delos compatível e um conjunto de dados de controle de execução compatí-vel para o servidor de fluxo de modo que o fluxo possa ser executado. O o-perador de fluxo pode também receber as informações de status do servidorde fluxo referentes aos fluxos que executam atualmente e aos fluxos pen-dentes e exibir as informações de status para o usuário. O servidor de fluxopode enviar os resultados de uma execução de fluxo de volta para o opera-dor de fluxo, e/ou, armazenar os resultados em um banco de dados.
O servidor de fluxo pode incluir uma API remota 160 para comu-nicar com os aplicativos do cliente tal como o aplicativo do cliente 160.
O analisador de saída 112 permite ao usuário executar uma aná-lise de dados nos resultados de execução de fluxo.
O servidor de fluxo 155 pode executar os fluxos (ou, direcionar aexecução de fluxos) os quais são submetidos como trabalhos do aplicativodo cliente. O servidor de fluxo 155 pode prover as informações de status so-bre os trabalhos que estão sendo executados para o operador de fluxo. Oservidor de fluxo também permite que os trabalhos sejam cancelados.Módulos de Aplicativo do ClienteComo acima notado, o aplicativo do cliente pode ser dividido emum número de módulos como sugerido na Figura 1. Cada módulo pode teruma API (interface de programação de aplicativos) associada, através daqual os diferentes módulos comunicam-se. Assim, o aplicativo do cliente po-de incluir uma API de gerenciador de modelo 103, uma API de construtor defluxo de decisão 106, uma API de construtor de fluxo 108, uma API de ope-rador de fluxo 110, e uma API de analisador de saída 113.
Em algumas modalidades, estas APIs são as únicas interfacespermitidas entre os módulos, assim permitindo que os módulos sejam inde-pendentemente desenvolvidos.
Cada um dos módulos que requerem comunicação com aplicati-vos externos podem também ter uma API remota. Assim, em algumas moda-lidades, o aplicativo do cliente pode incluir uma API remota de gerenciadorde modelo 104 e uma API remota de operador de fluxo 111.Gerenciador de Modelo
O gerenciador de modelo 102 pode prover uma interface a qualpermita ao usuário importar, criar, editar e manter os modelos, por exemplo,os modelos que incluem as variáveis de incerteza e as variáveis de decisãocomo acima descrito. O gerenciador de modelo pode também manter osmodelos em projetos ou outras organizações especificados pelo usuário.
Os tipos de estruturas de dados a serem incluídos nos modelosdestinados a um dado fluxo dependerão dos algoritmos incluídos no fluxo.Assim, o gerenciador de modelo pode comunicar-se com o construtor defluxo para assegurar que o usuário supra as estruturas de dados que sãoconsistentes com os algoritmos do dado fluxo. Por exemplo, o gerenciadorde modelo pode receber do construtor de fluxo uma lista de algoritmos nofluxo. O gerenciador de modelo pode então focalizar em avisar o usuáriosobre os tipos de estruturas de dados apropriadas para os algoritmos lista-dos. Ao contrário, os modelos escolhidos pelo usuário podem ditar o tipo defluxo que pode ser executado. Assim, se o usuário constrói e supre uma es-trutura de dados, o usuário pode então ser avisado para escolher entre so-mente aqueles fluxos que são capazes de executar aquele modelo. Em al-gumas modalidades, o gerenciador de modelo pode estar configurado parainvocar ferramentas de software bem-conhecidas para criar e editar certostipos de modelos. Por exemplo, cada modelo pode ter um tipo específico, e,cada tipo pode ter uma ferramenta específica registrada para permitir a suacriação, edição, observação, etc. Este projeto pode ser similar aos Editoresde Propriedade JavaBean, o que permite que uma GUI (interface gráfica dousuário) personalizada seja registrada em relação a uma JavaBean. Maisainda, este projeto pode utilizar algumas das noções dentro da Estrutura deAtivação de JavaBean.
Como as estruturas de dados supridas pelo usuário podem nãonecessariamente incluir as variáveis de decisão ou as variáveis de incerteza,o gerenciador de modelo pode prover mecanismos genéricos para promoveros valores de dados em estruturas de dados para variáveis de decisão e va-riáveis de incerteza com as estruturas de dados e para subordinar as estru-turas de dados às variáveis de decisão e às variáveis de incerteza.
O gerenciador de modelo pode funcionar como um gerenciadorde caso, permitindo que um modelo existente seja clonado e os subcompo-nentes alterados.
Construtor de Fluxo
Os algoritmos são os blocos de construção de fluxos. Um algo-ritmo pode ser visto como um processo que tem entradas e gera saídas. Umfluxo é um conjunto de algoritmos que foram ligados juntos para executaruma certa tarefa. É notado que um fluxo pode este próprio ser convertido emum algoritmo se desejado.
O construtor de fluxo 107 prove uma interface do usuário (Ul)através da qual o usuário pode construir fluxos arbitrários. Por exemplo, oconstrutor de fluxo pode permitir ao usuário selecionar os algoritmos de umconjunto de algoritmos disponíveis e conectar os algoritmos juntos (isto é,conectar as saídas de algoritmos nas entradas de outros algoritmos) paraformar um fluxo. O conjunto de algoritmos disponíveis pode incluir uma vari-edade de algoritmos úteis para planejar-se a exploração, desenvolvimentoe/ou operação do conjunto de campos, por exemplo, os algoritmos tais comoos simuladores de geologia ou de geoestatísticas, os simuladores de equilí-brio de material, os simuladores de fluxo de reservatório, os simuladores detubulação de poço, os simuladores de processo de instalações, os simulado-res de rede de oleodutos, e os algoritmos econômicos. Em algumas modali-dades os simuladores podem ser configurados utilizando uma ou mais fer-ramentas comerciais ou abertas (por exemplo o simulador de reservatórioVIP da Landmark ou outro simulador de diferença finita, elemento finito, ousimulador aerodinâmico, simulador de linha de tubo de superfície PetexGAP, Microsoft Excel, simulador de equilíbrio de material Petex MBAL, gera-dor de geoestatísticas GSLIB).
Mais ainda, o construtor de fluxo pode permitir ao usuário cons-truir os algoritmos de rascunhos, ou, importar os programas que devem serutilizados como algoritmos. Em algumas modalidades, o construtor de fluxopode permitir ao usuário especificar uma função algébrica arbitrária comoum algoritmo, ou, importar uma rede neural para utilizar como um algoritmo.
Em um conjunto de modalidades, quando formando conexõesdiretas entre os algoritmos, o construtor de fluxo pode impor restrições detipo de dados. Por exemplo, o construtor de fluxo pode permitir que uma saí-da de inteiro de um algoritmo seja conectada em uma entrada de ponto flu-tuante de um segundo algoritmo, mas não permitir uma conexão de umasaída flutuante para uma entrada de inteiro.
O construtor de fluxo pode incorporar uma máquina de buscapara encontrar os algoritmos. A máquina de busca pode suportar a buscasobre categoria de algoritmos (tal como "algoritmo de perfil de produção"),tipo de entrada, tipo de saída, etc.
Em algumas modalidades, o construtor de fluxo pode ser confi-gurado utilizando uma ou mais ferramentas comerciais (por exemplo, o Sis-tema de Gerenciamento de decisões DecisionSpace da Landmark).
Uma vez criados, os algoritmos e os fluxos podem ser registra-dos com o gerenciador de modelo como:
utilizáveis pelo usuário;
utilizáveis pelos membros do projeto;utilizáveis dentro da companhia;
pronto para distribuição externa para os clientes.
Operador de Fluxo
O operador de fluxo 109 pode prover uma interface do usuárioque permite ao usuário invocar a execução de fluxos. Quando o usuário a-firma um comando para invocar a execução de um fluxo em relação a umconjunto de modelos e um conjunto de dados de controle de execução, ooperador de fluxo monta um trabalho que inclui o fluxo, o conjunto de mode-los e o conjunto de dados de controle de execução, e, submete o trabalhopara o servidor de fluxo. O servidor de fluxo pode gerar uma ID única para otrabalho e enviar a ID de trabalho para o operador de fluxo. O operador defluxo pode gravar a ID de trabalho.
Além de adquirir os fluxos do construtor de fluxo e os modelosdo gerenciador de modelos, o operador de fluxo pode também carregar adescrição de um fluxo e de seus modelos relativos de um conjunto de arqui-vos de entrada (por exemplo, arquivos XML) especificados pelo usuário.Ooperador de fluxo pode exibir uma lista de trabalhos que inclui os trabalhosque estão atualmente operando (incluindo o seu status atual) e os trabalhosque estão pendentes. A interface de operador de fluxo permite ao usuáriocancelar os trabalhos. Mais ainda, a interface de operador de fluxo podepermitir ao usuário acessar quaisquer resultados já disponíveis para um tra-balho. Os resultados podem ser exibidos através da interface do usuário deanalisador de saída.
O operador de fluxo pode estar configurado para submeter ostrabalhos para qualquer um de uma pluralidade de servidores de fluxo. Osservidores de fluxo podem executar em um número de computadores atra-vés de uma rede. O operador de fluxo pode permitir ao cliente decidir a qualservidor de fluxo um trabalho deve ser submetido. Os diferentes servidoresde fluxo podem ser personalizados para executar os diferentes tipos de tra-balhos.
Analisador de Saída
O propósito primário do analisador de saída 112 pode ser deprover um meio para o usuário compreender os dados de saída obtidos daexecução de um trabalho (isto é, um fluxo em relação a um conjunto especí-fico de modelos e um conjunto de dados de controle de execução). Os da-dos de saída podem ser complexos já que o fluxo pode ter uma estruturacomplexa, por exemplo, uma estrutura com um laço externo e múltiplos la-ços internos.
O analisador de saída pode estar configurado para permitir aousuário examinar os dados de saída de um fluxo completado, e, ver os resul-tados de um fluxo ainda em execução no servidor de fluxo.
O analisador de saída pode ter acesso a um conjunto completode ferramentas de análise de dados, assim como ser capaz de formatar osdados de saída de modo que estes possam ser analisados em uma ferra-menta de terceiros (tal como o Microsoft Excel).Interface de Calculador de Resultados
O aplicativo do cliente pode também incluir uma interface de cal-culador de resultados (não ilustrada nas figuras). A interface de calculadorde resultados permite que o usuário especifique cálculos especiais que de-vem ser incorporados em um fluxo. Os cálculos especiais podem ser úteisquando a saída de um primeiro algoritmo (ou primeiro conjunto de algorit-mos) não é exatamente a entrada requerida por um segundo algoritmo (ousegundo conjunto de algoritmos) mas pode ser utilizada para calcular a en-trada requerida pelo segundo algoritmo. A interface de calculador de resulta-dos permite ao usuário:
selecionar um ou mais argumentos de saída de um primeiro con-junto de um ou mais algoritmos de um fluxo, e
especificar uma função (por exemplo, uma função algébrica arbi-trária) dos um ou mais argumentos de saída;
especificar um argumento de entrada de um segundo algoritmo(diferente dos um ou mais algoritmos do primeiro conjunto) que deve recebero resultado de avaliação da função sobre os argumentos de saída selecio-nados.
O construtor de fluxo ou o construtor de fluxo de decisão podemutilizar estas informações para gerar um algoritmo de calculador de resulta-dos que implementa a função especificada, para incorporar o algoritmo decalculador de resultados no fluxo entre o primeiro conjunto de algoritmos e osegundo algoritmo. O usuário pode especificar qualquer número desejado decálculos especiais a serem executados (no momento da execução de fluxo)entre os algoritmos ou conjuntos de algoritmos em um fluxo.
Servidor de Fluxo
O servidor de fluxo 155 pode estar dividido em um número demódulos separados, por exemplo, como sugerido na Figura 1. O servidor defluxo pode estar configurado para executar os trabalhos. Um trabalho incluium fluxo e um conjunto de dados de entrada.
Dependendo do número de trabalhos que o servidor de fluxo écapaz de operar concorrentemente, o servidor de fluxo pode enfileirar asexecuções pendentes. O servidor de fluxo pode ter a capacidade de cance-lar os trabalhos ou mudar a prioridade dos trabalhos.
Uma simples interface do usuário (Ul) pode ser provida para oservidor de fluxo (por exemplo, na forma de HTML).
O servidor de fluxo pode tipicamente executar em um diferentecomputador do que o aplicativo do cliente. No entanto, o servidor de fluxopode também executar no mesmo computador que o aplicativo do cliente.
O servidor de fluxo mantém uma conversação com, o operadorde fluxo, informando ao operador de fluxo sobre o status de trabalhos, etc.
A comunicação entre o operador de fluxo e o servidor de fluxopode estar baseada em qualquer uma de uma ampla variedade de protoco-los conhecidos tais como RMI e Serviços da WEB.
Algoritmos, Modelos, Iteradores & Expedidores
O sistema de gerenciamento de decisões está configurado paraexecutar os fluxo os quais incluem um conjunto de algoritmos interconecta-dos. O fluxo pode operar em modelos com variáveis de incerteza e variáveisde decisão associadas como entrada. Por exemplo, os modelos podem in-cluir os valores de dados que foram promovidos para variáveis de decisão,os valores de dados que foram promovidos para variáveis de incerteza, asestruturas de dados que estão subordinadas a variáveis de decisão, as es-truturas de dados que estão subordinadas a variáveis de incerteza, ou, qual-quer sua combinação.
Um fluxo pode incluir os laços configurados para executar iterati-vamente os conjuntos de algoritmos. Os expedidores podem ser utilizadospara distribuir as iterações para múltiplos computadores para uma execuçãoparalela.
Um expedidor padrão, o qual executa todas as iterações de seulaço associado no computador principal local, pode estar provido.
Um expedidor de rede, o qual procura por computadores dispo-níveis em uma rede e distribui as iterações para aqueles computadores dis-poníveis, pode também estar provido.
Um expedidor de grade, o qual distribui as iterações para umagrade de computadores, pode também estar provido.
O número de modelos, especialmente os modelos residentes emmemória, e o número de algoritmos que atuam sobre os modelos são muitoprováveis de aumentar ao longo do tempo. Assim, o sistema de gerencia-mento de decisões pode estar configurado para permitir que novos modelose algoritmos sejam plugados à vontade.
Em algumas modalidades, o sistema de gerenciamento de deci-sões pode ter uma interface do tipo de comando. As entradas do usuáriodirecionadas através da interface do tipo de comando podem ser capturadase armazenadas. Isto prove um meio para repetir um conjunto de iterações sedesejado.
Construtor de Fluxo de Decisão
O aplicativo do cliente do software do gerenciamento de deci-sões pode também incluir um construtor de fluxo de decisão. O construtor defluxo de decisão pode prover uma interface do usuário que acelera o proces-so de construir um fluxo para a otimização de decisões em relação à explo-ração, desenvolvimento e produção de ativos tais como os campos de óleo ede gás.
Em algumas modalidades, o construtor de fluxo de decisão podeestar especialmente configurado para acelerar a construção de um fluxo queinclui um laço de otimização externo e um conjunto de laços de "exploraçãode incerteza" internos, por exemplo, um laço interno por ativo.
O construtor de fluxo de decisão pode prover uma interface grá-fica do usuário através da qual o usuário pode:
a) especificar os nomes de ativos a serem analisados;
b) especificar um tipo para cada um dos ativos, por exemplo, detipos tais como campo de exploração, campo de desenvolvimento, e campode produção;
c) especificar um ou mais algoritmos (por exemplo, algoritmos desimulação de processo) a serem incluídos em um laço interno para cada ati-vo;
d) especificar as fontes de estrutura de dados consistentes comos algoritmos especificados em (c);
e) operar sobre as estruturas de dados para construir os mode-los para cada um dos ativos, onde os modelos podem incluir as variáveis deincerteza e/ou as variáveis de decisão como acima descrito;
f) especificar as variáveis de decisão globais e as variáveis deincerteza globais;
g) iespecificar as dependências funcionais entre as variáveis deincerteza e as dependências funcionais entre as variáveis de decisão, queincluem as dependências funcionais dentro de ativos e através de ativos;
h) especificar as correlações entre as variáveis de incerteza queincluem as correlações entre as variáveis de incerteza dentro de ativos eatravés de ativos;
i) especificar as restrições sobre as variáveis de decisão ou ascombinações funcionais das variáveis de decisão;
j1) especificar uma ou mais quantidades de interesse para cadaativo A(k), k = 1, 2, NA, onde cada uma das quantidades representa umacombinação funcional de um ou mais dos argumentos de saída dos algorit-mos associados com o ativo A(k);
j2) especificar as estatísticas a serem computadas para cadaativo A(k), k =1, 2, NA, com base nas uma ou mais quantidades especifi-cadas para o ativo A(k);
k1) especificar um objetivo global S como uma combinação fun-cional de um primeiro subconjunto das estatísticas;
k2) especificar uma ou mais funções auxiliares, cada função au-xiliar sendo uma combinação funcional de um subconjuntos das estatísticascorrespondente;
k3) especificar uma ou mais restrições que envolvem as uma oumais funções auxiliares e/ou o objetivo global;
I) selecionar um otimizador (isto é, de um conjunto de otimizado-res suportados) para o laço de otimização externo;
m) selecionar um expedidor de entre um conjunto de expedido-res suportados;
n) especificar se a otimização deve ser uma maximização ouuma minimização;
O construtor de fluxo de decisão pode gerar um fluxo que temum laço de otimização externo e um conjunto de laços internos de acordocom as informações especificadas pelo usuário.
Como notado em (b) acima, os tipos de ativos podem incluir umcampo de exploração, um campo de desenvolvimento, e um campo opera-cional. Outros tipos de ativos estão também contemplados.
Como notado (c) acima o usuário pode especificar um ou maisalgoritmos (por exemplo, os algoritmos de simulação de processo) a seremincluídos em um laço interno para cada ativo. O construtor de fluxo de deci-são pode receber uma entrada do usuário que especifica um ativo específicosobre o qual a atenção deve ser atualmente focalizada, e, exibir uma lista(ou alguma representação gráfica) de um conjunto de algoritmos, apropria-dos para o tipo do ativo sob consideração, dos quais o usuário pode esco-lher. Diferentes tipos de algoritmos são apropriados para os diferentes ati-vos.
Como notado em (d) acima, o usuário pode especificar as fontesde estruturas de dados consistentes com os algoritmos especificados em (c)por exemplo, a interface de construtor de fluxo de decisão pode estar confi-gurada para permitir ao usuário especificar, para cada ativo, as localizaçõesde sistema de arquivo (por exemplo, as localizações de sistema de arquivoem uma rede de computadores) para os arquivos de dados ou os bancos dedados que contém as estruturas de dados. Mais ainda, o usuário pode espe-cificar as entradas (ou conjuntos de entradas) em bancos de dados que con-tém as estruturas de dados.
Exemplos de estrutura de dados para um ativo incluem:
(1) a arquitetura, geometria e volume estruturais de subsuperfí-cie (subterrâneas) do ativo;
(2) a distribuição tridimensional (3D) subterrânea de proprieda-des do ativo que incluem mas não estão limitadas ao volume de poros, satu-ração de óleo e de gás de hidrocarboneto, a saturação de água, a litologiageológica, as falhas, e as fraturas;
(3) a localização física do ativo em relação à superfície do marou à superfície da terra e a localização geográfica do ativo;
(4) o número de poços e as localizações de poços que podemser perfurados no futuro para o ativo;
(5) o número de poços que já foram perfurados para o ativo;
(6) o volume de hidrocarbonetos associados com o ativo;
(7) as reservas potenciais associadas com o ativo;
(8) o histórico de produção de óleo, gás, e água associado como ativo;
(9) o histórico de injeção gás e água associado com o ativo;
(10) os tipos de instalações que estão associadas com o ativo; e
(11) os tipos de instalações que podem ser construídas no futuropara o ativo.
Outros exemplos de estruturas de dados incluem: os modelos dereservatório, os modelos econômicos, os modelos de rede de oleoduto, osmodelos de processamento de instalações, e os modelos de tubulação depoço.
Os tipos de estruturas de dados que são especificados para umativo podem depender dos tipos de algoritmos que devem ser utilizados parao ativo. Por exemplo, um simulador de equilíbrio de material de expressõesanalíticas ou algébricas pode basear-se em um modelo de "tanque" para umativo, onde o modelo de tanque tem um único conjunto de propriedades pararepresentar o ativo inteiro. Um simulador de fluxo de reservatório com umarepresentação de equação diferencial parcial de fluxo em um meio poroso euma formulação de diferença finita pode basear-se em um modelo de reser-vatório espacial tridimensional para predizer os fluxos de óleo, gás e água aolongo do tempo. Um algoritmo econômico pode basear-se em um modeloeconômico que inclui os preços, as tarifas de impostos e as complexidadesfiscais para predizer a receita ao longo do tempo. O construtor de fluxo dedecisão pode avisar o usuário para inserir estruturas de dados de tipos con-sistentes com os algoritmos que já foram especificados para o ativo em (c).
Como notado em (e) acima, o usuário pode operar nas estrutu-ras de dados para construir modelos para cada um dos ativos, especialmen-te os modelos que incluem as variáveis de decisão e as variáveis de incerte-za. Por exemplo, o usuário pode:
promover os valores de dados em estruturas de dados para va-riáveis de incerteza;
promover os valores de dados em estruturas de dados para va-riáveis de decisão;
subordinar as estruturas de dados a variáveis de incerteza; e
subordinar as estruturas de dados a variáveis de decisão.
Exemplos de variáveis de decisão para os ativos incluem:
número de poços;
localização de superfície de poços;
tamanho de oleodutos; e
tamanho de compressores.
tipo de poço (que tem valores atingíveis tais como horizontal,vertical ou multilateral);
geometria de poço;
percurso de perfuração de poço (em um reservatório associadocom o ativo);
tipo de plataforma (que tem valores atingíveis tais como subma-rina e perna de tensão);
uma variável de decisão que subordina um conjunto de progra-mações de perfuração de poço;
uma variável de decisão que subordina um conjunto de progra-mações de completamento de poço;
uma variável de decisão que subordina um conjunto de progra-mações de implementação de instalações.
Exemplos de variáveis de incerteza para os ativos incluem:
volume de hidrocarbonetos;
produtibilidade de hidrocarbonetos;
custo de poços e/ou instalações; e
preços de óleo e de gás.
As variáveis de decisão globais são variáveis de decisão quenão estão unicamente associadas com um único ativo. Por exemplo, a quan-tidade de capital a ser disponível para o conjunto de ativos é um exemplo deuma variável de decisão global. As variáveis de incerteza globais são variá-veis de incerteza que não estão unicamente associadas com um único ativo.Por exemplo, o preço do óleo é um exemplo de uma variável de incertezaglobal.
Como notado em (g) acima, o usuário pode especificar as de-pendências funcionais entre as variáveis de incerteza e as dependên-cias funcionais entre as variáveis de decisão. Em algumas modalidades, ainterface de construtor de fluxo de decisão pode estar configurada para per-mitir ao usuário:
selecionar uma variável de incerteza (do conjunto Vun de variá-veis de incerteza associadas com o problema atual) para ser uma variáveldependente, e, selecionar uma ou mais outras variáveis de incerteza (doconjunto Vun) para serem variáveis independentes; e
especificar uma função (por exemplo, uma função algébrica arbi-trária) das variáveis independentes de modo a definir uma dependência fun-cional entre as variáveis independentes e a variável dependente.
O conjunto Vun de variáveis de incerteza associadas com o pro-blema atual inclui as variáveis de incerteza especificadas em (e) e as variá-veis de incerteza globais.
Mais ainda, a interface de construtor de fluxo de decisão podeestar configurada para permitir o usuário:
selecionar uma variável de decisão (do conjunto VD de variáveisde decisão associadas com o problema atual) para ser uma variável depen-dente, e, selecionar uma ou mais outras variáveis de decisão (do conjuntoVd) para serem variáveis independentes; e
especificar uma função (por exemplo, uma função algébrica arbi-trária) das variáveis independentes de modo a definir uma dependência fun-cional entre as variáveis independentes e a variável dependente.
O conjunto Vd de variáveis de decisão associadas com o pro-blema atual pode incluir as variáveis de decisão globais e as variáveis dedecisão especificadas em (e).
O construtor de fluxo de decisão pode permitir ao usuário espe-cificar qualquer número de dependências funcionais pela utilização repetidada interface de construtor de fluxo de decisão como acima descrito. Por e-xemplo, o usuário pode especificar as dependências funcionais das seguin-tes formas:
dependência funcional entre as variáveis de incerteza (ou as va-riáveis de decisão) dentro de um ativo, isto é, onde a variável dependente eas uma ou mais variáveis independentes pertencem ao mesmo ativo;
dependência funcional entre as variáveis de incerteza (ou as va-riáveis de decisão) através de ativos, isto é, onde a variável dependente e asuma ou mais variáveis independentes pertencem a dois ou mais ativos; e
dependência funcional entre as variáveis de incerteza (ou as va-riáveis de decisão) onde a variável dependente, e/ou, uma ou mais das vari-áveis independentes são variáveis globais.
Uma "função algébrica" é uma função a qual é determinada poruma expressão que envolve somente as operações algébricas de adição,subtração, multiplicação, divisão, extração de raiz de inteiro (ou racional), epotências de inteiro (ou racional) nos argumentos de função.
Como notado em (h) acima, o usuário pode especificar as corre-lações entre as variáveis de incerteza. Em um conjunto de modalidades, ainterface de construtor de fluxo de decisão pode estar configurada para per-mitir ao usuário:
selecionar um par de variáveis de incerteza do conjunto Vun devariáveis de incerteza, e,
inserir um coeficiente de correlação para especificar a correlaçãoentre o par de variáveis de incerteza.
O usuário pode especificar qualquer número de tais correlaçõespela utilização repetida da interface de construtor de fluxo de decisão comoacima descrito. Por exemplo, o usuário pode especificar as correlações entrepares de variáveis de incerteza que tem as seguintes formas:
par de variáveis de incerteza de um ativo (isto é, associadascom o mesmo ativo);
par de variáveis de incerteza através de ativos (isto é, onde umavariável do par pertence a um ativo e a outra variável do par pertence a outroativo);
par de variáveis de incerteza onde uma ou ambas são variáveisde incerteza globais.
Em algumas modalidades, o usuário pode selecionar um grupode duas ou mais variáveis de incerteza, e, inserir uma matriz de correlaçãopara o grupo.
Onde um fluxo é executado, as variáveis de incerteza são ins-tanciadas em um modo que respeita as correlações especificadas pelo usuá-rio.
Como notado em (i) acima, o usuário pode especificar as restri-ções sobre as variáveis de decisão ou as combinações funcionais das variá-veis de decisão. Em um conjunto de modalidades, a interface de construtorde fluxo de decisão pode estar configurada para permitir ao usuário:
selecionar uma primeira variável de decisão Y do conjunto Vd devariáveis de decisão;
selecionar um conjunto de uma ou mais variáveis de decisão XlX2, XN (diferente de Y) do conjunto VD de variáveis de decisão, onde N éum inteiro positivo;
opcionalmente especificar uma função f (por exemplo, uma fun-ção algébrica arbitrária) das uma ou mais variáveis de decisão X^ X2, XN,e
selecionar um operador de desigualdade denotado ".ineq." doconjunto {<, <, > ou >},
de modo a definir uma restrição da forma
Y.ineq. f(X1)X2, XN).
Mais ainda, a interface de construtor de fluxo de decisão podeestar configurada para permitir ao usuário especificar as restrições da forma:
Y .ineq. C, onde C é uma constante especificada pelo usuário.
O conjunto Vd de variáveis de decisão pode incluir as variáveisde decisão globais e as variáveis de decisão especificadas em (e). Qualqueruma de uma ampla variedade de funções f (que incluem as funções linearese não lineares) pode ser suportada. Em algumas modalidades, a interface deconstrutor de fluxo de decisão permite que o usuário construa uma funçãoalgébrica arbitrária das variáveis de decisão X-i, X2,XN selecionadas.
A interface de construtor de fluxo de decisão pode estar configu-rada para permitir ao usuário especificar qualquer número de restrições so-bre as variáveis de decisão pela utilização repetida da interface de construtorde fluxo de decisão como acima descrito. Por exemplo, o usuário pode es-pecificar as restrições tendo as seguintes formas:
restrição sobre as variáveis de decisão dentro de um ativo, istoé, onde as variáveis de decisão envolvidas na restrição estão todas associa-das com o mesmo ativo;
restrição sobre as variáveis de decisão através de ativos, isto é,onde as variáveis de decisão envolvidas na restrição estão associadas comdois ou mais ativos;
restrição sobre as variáveis de decisão que incluem uma oumais variáveis de decisão globais.
Quando um fluxo executa, uma otimização é executada que res-peita as restrições especificadas pelo usuário.
Como notado em (j1) acima, o usuário pode especificar uma oumais quantidades de interesse para cada ativo A(k), k = 1, 2, .... NA. Em umconjunto de modalidades, o usuário pode especificar uma quantidade para oativo A(k):
selecionando um ou mais argumentos de saída para os algorit-mos associados com o ativo A(k) e/ou selecionando uma ou mais quantida-des que foram anteriormente especificadas para o ativo A(k); e
especificando uma função (por exemplo, uma função algébricaarbitrária) dos argumentos de saída selecionados e/ou quantidades anteri-ormente especificadas.
Qualquer número de quantidades pode ser especificado paracada ativo utilizando este procedimento.
Mais ainda, a interface de construtor de fluxo de decisão podeexibir uma lista de quantidades comumente utilizadas apropriadas para ostipos de algoritmos que estão associados com o ativo A(k) sob consideraçãoatual. O usuário pode especificar as quantidades de interesse pela seleçãode quantidades da lista.
Exemplos de quantidades de interesse para um ativo incluem asquantidades tais como o valor presente líquido, as reservas totais, o óleoproduzido total, etc.
Como notado em (j2), o usuário pode especificar as estatísticasa serem computadas para cada ativo A(k), k = 1, 2.....NA, isto é, as estatís-ticas sobre as uma ou mais quantidades que foram especificadas para o ati-vo A(k). Em um conjunto de modalidades, a interface de construtor de fluxode decisão pode permitir ao usuário especificar uma estatística para cadauma das uma ou mais quantidades que foram especificadas para cada ativo:
inserindo uma expressão matemática que define a estatística; ou
selecionando a estatística de uma lista de estatísticas comumen-te utilizadas.Exemplos de estatísticas comumente utilizadas incluem:
a média,
o desvio padrão;
o quantílio de ordem p, onde p é um valor especificado pelo u-suário entre zero e um.
Mais ainda, a interface de construtor de fluxo de decisão podepermitir ao usuário especificar mais do que uma estatística sobre a mesmaquantidade. Por exemplo, o usuário pode desejar computar tanto a médiaquanto o desvio padrão do valor presente líquido para um ativo.
Como parte da execução de um fluxo, as uma ou mais quantida-des especificadas para cada ativo podem ser avaliadas um número de vezesresultando em uma população de valores para cada quantidade. Cada esta-tística especificada para uma quantidade é computada na população corres-pondente.
Como notado em (k1) acima, o usuário pode especificar um ob-jetivo global S como uma combinação funcional de um primeiro subconjuntodas estatísticas. Para este fim, em um conjunto de modalidades, a interfacede construtor de fluxo de decisão pode estar configurada para permitir aousuário:
definir o primeiro subconjunto pela seleção de uma ou mais dasestatísticas que foram especificadas para cada ativo; e
especificar uma função (por exemplo, uma combinação linear ouuma função algébrica arbitrária) das estatística do primeiro subconjunto.
Em um cenário típico, o usuário pode selecionar uma estatísticaSk que corresponde a cada ativo A(k), k = 1, 2, Na, e, especificar o objeti-vo global S como uma combinação linear da forma
PÁGINA 21 (FÓRMULA 1)
O usuário pode inserir os valores dos coeficientes ck que devemmultiplicar as respectivas estatísticas Sk. Como um exemplo, o usuário podeconfigurar o objetivo global S para representar uma combinação linear dovalor presente líquido médio para cada ativo A(k).
Como acima notado em (k2), o usuário pode especificar uma oumais funções auxiliares, cada função auxiliar sendo uma combinação funcio-nal de um subconjunto correspondente das estatísticas. Em um conjunto demodalidades, de modo a especificar uma função auxiliar, a interface deconstrutor de fluxo de decisão pode permitir ao usuário:
selecionar uma ou mais das estatísticas que foram especificadaspara cada ativo; e
especificar uma função (por exemplo, uma função algébrica arbi-trária) da estatística das estatísticas selecionadas.
O usuário pode especificar qualquer número de funções auxilia-res utilizando este procedimento.
Em um cenário típico, o usuário pode definir uma função auxiliarH pela seleção de uma estatística Tk que corresponde a cada A(k), k = 1, 2,
NA, e, especificar uma combinação linear da forma
PÁGINA 21 (FÓRMULA 2) ou da forma
PÁGINA 21 (FÓRMULA 3)
O usuário pode inserir os valores dos coeficientes ak que devemmultiplicar as respectivas estatísticas. Como um exemplo, o usuário podeconfigurar a função auxiliar H para representar uma combinação linear dodesvio padrãouquadrático de valor presente líquido para cada ativo A(k).
Como notado em (k3) acima, o usuário pode especificar uma oumais restrições que envolvem as uma ou mais funções auxiliares e/ou o ob-jetivo global S. Em um conjunto de modalidades, o usuário pode especificaruma ou mais restrições cada uma tendo a forma
J.rel.C,
onde J é uma função especificada pelo usuário cujos argumentos estão se-lecionados do conjunto Fc que inclui as uma ou mais funções auxiliares e afunção de objetivo global S, onde .rei. é uma relação selecionada do conjun-to {<, <, >, >, =}, onde C é uma constante especificada pelo usuário. O usuário pode especificar uma tal restrição:
selecionando um ou mais argumentos para a função J do con-junto Fc;
especificando uma combinação funcional (por exemplo, umacombinação funcional algébrica arbitrária) dos um ou mais argumentos sele-cionados;
selecionando a relação .rei. do conjunto {<, < >, >, =}; eespecificando a constante C.
Qualquer número de restrições pode ser especificado utilizandoeste procedimento.
Em um cenário típico, o usuário pode basear-se neste procedi-mento para especificar uma restrição da forma J=H/S<C, onde H é uma fun-ção auxiliar eSéo objetivo global. Como um exemplo, H pode ser umacombinação linear de desvios padrão NPV quadráticos, um por ativo, e, Spode ser uma combinação linear de médias NPV, uma média por ativo.
Como notado em (1) acima, o usuário pode selecionar um otimi-zador. Em um conjunto de modalidades, o construtor de fluxo de decisãopode permitir ao usuário selecionar de um conjunto de otimizadores suporta-dos. O objetivo global S é provável ser altamente não linear e ter muitos mí-nimos (ou máximos) locais sobre o espaço global definido pelas variáveis dedecisão. Mais ainda, este espaço global sobre o qual a otimização deve serexecutada pode ter ilhas isoladas de vetores factíveis em mais de vetoresinfactíveis. Assim, é desejável utilizar os otimizadores que não terminamquando encontrando um único mínimo (ou máximo) local e que não fiquemaprisionados dentro de uma única ilha. Assim, o conjunto de otimizadoressuportados pode incluir os otimizadores estocásticos, isto é, os otimizadoresque utilizam uma aleatoriedade em sua metodologia de pesquisa.
Em algumas modalidades, o construtor de fluxo de decisão podepermitir ao usuário selecionar de otimizadores tais como os seguintes:
(1) um otimizador de pesquisa de dispersão;
(2) um otimizador de pesquisa de tabu;
(3) um otimizador com base em uma combinação meta-heurística de pesquisa de dispersão, de pesquisa de tabu, de redes neuraise de programação linear;(4) um otimizador com base em um algoritmo genético.
O conjunto VD de variáveis de decisão de um fluxo representa asdecisões que estão sujeitas a serem controladas. Cada variável de decisãotem um conjunto de valores atingíveis especificado pelo usuário. O produtoCartesiano dos conjuntos de valores atingíveis das variáveis de decisão emVD é um espaço de decisão global sobre o qual a otimização deve ser exe-cutada, sujeito a quaisquer restrições que o usuário possa especificar paraas variáveis de decisão ou as combinações funcionais das variáveis de deci-são, e sujeito às uma ou mais restrições definidas em (k3) que envolvem asuma ou mais funções auxiliares e/ou o objetivo global.
Um vetor no espaço de decisão global é referido como um vetorde decisão. Em outras palavras, um vetor de decisão é um vetor de valores,isto é, um valor selecionado de cada um dos conjuntos de valores atingíveisdas variáveis de decisão em VD.
Em algumas modalidades, o construtor de fluxo de decisão podepermitir ao usuário suprir um conjunto de vetores de estimativa inicial que ootimizador pode utilizar em seu processo de pesquisa.
O conjunto Vun de variáveis de incerteza de um fluxo representaas incertezas. Cada variável de incerteza tem um conjunto de valores atingí-veis especificado pelo usuário. O produto Cartesiano dos conjuntos de valo-res atingíveis das variáveis de incerteza em Vun é um espaço de incertezaglobal o qual deve ser iterativamente explorado. Um vetor no espaço de in-certeza global é referido como um vetor de incerteza. Em outras palavras,um vetor de incerteza é um vetor de valores, isto é, um valor selecionado decada um dos conjuntos de valores atingíveis das variáveis de incerteza emVUN.
Em algumas modalidades, o construtor de fluxo de decisão podegerar um fluxo 200 em resposta às informações (a)-(n) especificadas pelousuário. O fluxo 200 pode incluir o otimizador 210 selecionado pelo usuárioem (1) e um processo de avaliação 220 como ilustrado na Figura 2. O otimi-zador 210 pode gerar os vetores de decisão x no espaço de decisão globalsujeitos às restrições especificadas pelo usuário sobre as variáveis de deci-são. O processo de avaliação 220 opera nos vetores de decisão x para geraros valores S(x) correspondentes do objetivo global S e os valores H(x) deuma função auxiliar H como abaixo descrito. Os valores de objetivo globalS(x) e os valores de função auxiliar H(x) são supridos para o otimizador. Ootimizador utiliza estes valores para gerar os vetores de decisão atualizadosem uma tentativa de minimizar (ou maximizar) o objetivo global sujeito à res-trição especificada pelo usuário sobre a função auxiliar H(x) (ou sobre umacombinação da função auxiliar e do objetivo global). O otimizador pode ope-rar de acordo com qualquer um de uma variedade de algoritmos de otimiza-ção. A estrutura de laço que inclui o otimizador e o processo de avaliaçãoestá aqui referida como o laço "externo".
Em um conjunto de modalidades, o otimizador 210 pode estarconfigurado para operar de acordo com a seguinte metodologia como ilus-trado na Figura 3. O otimizador pode executar no computador do servidor.
Na operação 310, o otimizador 210 pode construir um conjuntode referência de vetores de decisão factíveis. (Um vetor de decisão é ditoser factível se este satisfaz as restrições especificadas pelo usuário sobre asvariáveis de decisão). Na primeira iteração da operação 310, o conjunto dereferência pode ser construído pela geração de um conjunto inicial de veto-res de decisão que são parcialmente diversos (por exemplo, utilizando mé-todos aleatórios) e então mapeando o conjunto inicial de vetores de decisãopara vetores de decisão factíveis. No entanto, em qualquer iteração suce-dente da operação 310, o conjunto de referência pode ser construído:
selecionando um número n-i dos "melhores" vetores de decisãode uma versão anterior do conjunto de referência (isto é, "melhores" comomedido pelo objetivo global),
gerando um conjunto de vetores espacialmente diversos (porexemplo, utilizando métodos aleatórios);
mapeando os diversos vetores para obter diversos vetores factí-veis;
adicionando um número n2 dos diversos vetores factíveis aos nivetores de modo a aumentar a diversidade espacial do conjunto de referên-cia.
O otimizador pode classificar os rii melhores vetores de decisãona ordem de seus valores de objetivo global S(x). O otimizador pode tam-bém classificar os n2 vetores adicionais de acordo com uma medida de dis-tância.
Na operação 320, o otimizador 210 pode gerar novos vetoresxnew pela formação de combinações (por exemplo, combinações lineares) desubconjuntos dos vetores de conjunto de referência. Os novos vetores nãosão necessariamente vetores factíveis. Os subconjuntos podem incluir doisou mais vetores de conjunto de referência.
Na operação 330, o otimizador 210 pode mapear os novos veto-res de decisão para vetores de decisão factíveis xf utilizando um programalinear e/ou um programa de inteiros mistos.
Na operação 340, o otimizador 210 pode suprir os vetores dedecisão factíveis Xf para o processo de avaliação 220 para a computaçãodos valores de objetivo global S(xf) e dos valores de função auxiliar H(xO quecorrespondem aos vetores de decisão factíveis Xf.
Na operação 350, o otimizador pode atualizar o conjunto de refe-rência utilizando os valores de objetivo global S(xO e os valores de funçãoauxiliar H(xf) computados na operação 340. Em uma modalidade, o otimiza-dor pode examinar cada um dos vetores factíveis xf para determinar:
(1) se o vetor factível tiver um melhor valor de objetivo globalS(Xf) do que o pior atual dos ni vetores de decisão em termos de valor obje-tivo global, em cujo caso o vetor factível Xf pode substituir o pior vetor;
(2) se o vetor factível tiver um maior valor de medida de distân-cia do que o pior atual dos n2 vetores adicionais.
Em qualquer caso, o otimizador pode substituir o pior vetor pelovetor factível. Se nenhum dos vetores factíveis Xf satisfizer nenhuma dascondições (1) ou (2), o conjunto de referência permanece o mesmo, isto é, aatualização é uma atualização nula.
Na operação 360, o otimizador pode determinar se o conjunto dereferência mudou como um resultado da operação 350. Se afirmativo, o oti-mizador pode executar outra iteração de operações 320-360. Se o conjuntode referência não mudou, o otimizador pode continuar com a operação 365.
Na operação 365, o otimizador pode determinar se uma condi-ção de término é satisfeita. Se a condição de término não for satisfeita, ootimizador pode continuar com a operação 310 de modo a regerar o conjun-to de referência com um diferente conjunto de n2 vetores factíveis diversos.Se a condição de término for satisfeita, o otimizador pode continuar com aoperação 370.
Várias condições de término são contempladas para várias mo-dalidades. Por exemplo, a condição de término pode ser a condição que:
(1) pelo menos um vetor de decisão do conjunto de referênciaatingiu um valor de objetivo global melhor do que um limite definido pelo u-suário enquanto atendendo uma ou mais restrições que envolvem as uma oumais funções auxiliares e/ou o objetivo global; ou
(2) um dado número nmax de iterações do laço externo (incluindoas operações 310 até 365) foi executado; ou
(3) uma dada quantidade Tmax de tempo de computação decor-reu; ou
(4) qualquer combinação de (1), (2) e (3).
A contagem de iteração máxima nmax e o tempo de computaçãomáximo-Tmax podem ser especificados pelo usuário.
Na operação 370, o otimizador pode armazenar os vetores deconjunto de referência juntamente com os seus valores de objetivo global eos valores de função auxiliar correspondentes em um banco de dados. Oanalisador de saída pode ler o banco de dados e exibir uma representaçãográfica do valor de objetivo global e do(s) valor(es) de função auxiliar paracada um dos vetores de conjunto de referência (ou alternativamente, para osni melhores vetores do conjunto de referência).
Em um conjunto de modalidades, o processo de avaliação 220pode estar configurado para operar de acordo com a seguinte metodologiacomo indicado na Figura 4. O processo de avaliação pode executar no com-putador do servidor.Na operação 410, o processo de avaliação pode receber um ve-tor de decisão x do otimizador.
Na operação 420, um módulo de instanciação do processo deavaliação pode gerar Ni vetores de incerteza em um modo que respeite asdependências funcionais especificadas pelo usuário e as correlações entreas variáveis de incerteza, onde N| é um inteiro positivo especificado pelo u-suário. Os Ni vetores de incerteza exploram o espaço de incerteza global.Os vetores de incerteza podem ser gerados de acordo com um modo de ins-tanciação especificado pelo usuário como acima descrito. Cada vetor de in-certeza Uj, j = 1, 2, N|, contém um valor instanciado para cada uma dasvariáveis de incerteza no conjunto Vun (isto é, o conjunto de todas as variá-veis de incerteza associadas com o problema atual). Cada valor instanciadoé selecionado do conjunto de valores atingíveis de uma correspondente dasvariáveis de incerteza.
Na operação 425, o processo de avaliação pode gerar Ni conjun-tos de dados de iteração de modelos em antecipação de Ni iterações de "la-ço interno" para cada ativo A(k), k = 1, 2, NA, onde N, é o número de ite-rações e NA é o número de ativos. Por exemplo, o processo de avaliaçãopode gerar os conjuntos de dados de iteração de acordo com o seguintepseudocódigoi
Para k = 1 a NA:
Para j = 1 a Ni:
Gerar um conjunto de dados de iteração IDS(k.j) para os algo-ritmos do ativo A(k) utilizando o subvetor x(k) do vetor de decisão x que érelevante para o ativo A(k) e um subvetor Uj(k), do vetor de incerteza Uj queé relevante para o ativo A(k);
Armazenar o conjunto de dados de iteração IDS(k.j) em um ar-mazenamento de iteração IBUFF(k) para o ativo A(k);
EndFor
EndFor
O ForLoop no índice k não precisa executar em um modo estri-tamente seqüencial. Por exemplo, este ForLoop pode estar configurado paraoperar em um modo de múltiplas cadeias, por exemplo uma cadeia por valor k.
Lembrar que o sistema de gerenciamento de decisões permiteao usuário construir modelos:
(1) subordinando conjuntos de estruturas de dados a variáveis de decisão:
(2) subordinando conjuntos de estruturas de dados a variáveisde incerteza;
(3) promover os valores de dados em estruturas de dados paravariáveis de decisão; e
(4) promover os valores de dados em estruturas de dados paravariáveis de incerteza.
Os valores do subvetor de decisão x(k) e os valores do subvetorde incerteza Uj(k) pode ser utilizado para determinar uma ou mais estruturasde dados dos modelos. Especificamente, um ou mais dos valores de subve-tor de decisão x(k) e/ou, um ou mais dos valores de subvetor de incertezaUj(k) podem ser utilizados para selecionar as estruturas de dados de mode-los que incluem os conjuntos de estruturas de dados alternativos. Mais ain-da, um ou mais valores do subvetor de decisão x(k), e/ou, um ou mais valo-res do subvetor de incerteza Uj(k) podem ser substituídos nos modelos inclu-indo as variáveis de decisão e/ou as variáveis de incerteza. As estruturas dedados determinadas pelos valores do subvetor de decisão x(k) e os valoresdo subvetor de incerteza Uj(k) podem ser incluídas no conjunto de dados deiteração IDS(kJ). O conjunto de dados de iteração pode incluir dados sufici-entes para executar o conjunto de algoritmos que foi atribuído ao ativo A(k).Os subvetores x(k) não são necessariamente desarticulados. Por exemplo,os valores que correspondem às variáveis de decisão globais podem apare-cer em mais do que um dos subvetores x(k). Similarmente, os subvetoresUj(k) não são necessariamente desarticulados.
Na operação 430, um expedidor do processo de avaliação podeexpedir (isto é, enviar) os N| conjuntos de dados de iteração para cada ativoA(k), k = 1, 2..... NA, para um ou mais outros computadores, onde N| é onúmero de iterações a serem executadas em cada ativo. Por exemplo, o ex-pedidor pode operar de acordo com o seguinte pseudocódigo:
Para k = 1 a NA:
Enquanto (Armazenamento de iteração IBUFF(k) não está vazio):
Localizar um computador CP disponível;
Ler um ou mais conjuntos de dados de iteração IDS(k,j) do ar-mazenamento de iteração IBUFF(k);
Comprimir os um ou mais conjuntos de dados de iteração e em-pacotar os dados comprimidos em um arquivo de dados de execução;
Enviar o arquivo de dados de execução para o computador CPpara execução de cada um dos um ou mais conjuntos de dados de iteraçãono computador Cp;
EndWhile
EndFor.
O expedidor pode incluir uma cópia do código executável paraos algoritmos associados com o ativo A(k) no arquivo de dados de execuçãono caso em que o computador CP ainda não tenha uma cópia deste código.Mais ainda, o expedidor pode incluir um endereço de um armazenamento dedados INB(k) associado com o ativo A(k) no arquivo de dados de execução.O armazenamento de dados INB(k) pode estar alocado na memória do com-putador do servidor. O computador CP executa o conjunto de algoritmos as-sociados com o ativo A(k) sobre cada conjunto de dados de iteração IDS(kj)incluído no arquivo de dados de execução, coleta os dados de saída (dosalgoritmos) da execução em um conjunto de dados de saída ODS(k,j), e en-via o conjunto de dados de saída ODS(k.j) para o armazenamento de dadosINB(k).
O ForLoop no índice k não precisa executar em um modo estri-tamente seqüencial. Por exemplo, este ForLoop pode estar configurado paraoperar em um modo de múltiplas cadeias, por exemplo, uma cadeia por va-lor de k.
Mais ainda, as operações 425 e 430 não precisam executar emum modo estritamente seqüencial. Por exemplo, as múltiplas cadeias doForLoop na operação 430 podem ser executadas em um modo de múltiplascadeias com as múltiplas cadeias do ForLoop (no índice k) na operação 425.Na modalidade, a k- cadeia de expedição pode ser iniciada logo após a kâcadeia de geração de IDS ser iniciada. Por exemplo, a kâ cadeia de geraçãode IDS pode iniciar a kâ cadeia de expedição após ter armazenado um oumais conjuntos de dados de iteração no armazenamento de iteração I-BUFF(k).
O computador do servidor pode incluir um ou mais processado-res.
Na operação 440, o acumulador de resultados do processo deavaliação pode armazenar os conjuntos de dados de saída ODS(k.j) geradospelos outros computadores (para os quais os conjunto de dados de execu-ção foram distribuídos). O conjuntos de dados de saída ODS(k,j) representaa saída dos algoritmos associados com o ativo A(k) tendo sido executadosno conjunto de dados de iteração IDS(k,j). Em um conjunto de modalidades,o acumulador de resultados pode operar de acordo com o seguinte pseudo-código:
Para k = 1 a NA:j---0
Enquanto (j < Nt):
Receber o conjunto de dados de saída ODS(k,j) do armazena-mento de entrada INB(k);
Descomprimir os dados de carga do conjunto de dados de saídaODS(kJ);
armazenar os dados descomprimidos dos dados de saídaODS(k,j) em um banco de dados (por exemplo, em um banco de dados in-dexado por k e j);
EndWhileEndFor.
O ForLoop no índice k não precisa executar em um modo estri-tamente seqüencial. Por exemplo, este ForLoop pode estar configurado paraoperar em um modo de múltiplas cadeias, por exemplo, uma cadeia por va-lor de k.
Mais ainda, as operações 430 e 440 não precisam executar emum modo estritamente seqüencial. Por exemplo, as múltiplas cadeias doForLoop na operação 440 podem ser executadas em um modo de múltiplascadeias com as múltiplas cadeias do ForLoop na operação 430. Em umamodalidade, a kâ cadeia de acumulação pode ser iniciada logo após a kâ ca-deia de expedição ser iniciada. Por exemplo, a kâ cadeia de expedição podeiniciar a kâ cadeia de acumulação após ter expedido o primeiro arquivo dedados de execução para o ativo A(k).
Na operação 445A, um calculador de resultados do processo deavaliação pode computar para cada ativo A(k), k = 1, 2, NA, e para cadaiteração j = 1, 2.....Ni, um valor para cada quantidade especificada pelo u-suário para o ativo utilizando os valores de argumento de saída do conjuntode dados de saída ODS(kj). Assim, o calculador de resultados gera umapopulação de Ni valores para cada quantidade especificada pelo usuário.
Na operação 445B, o calculador de resultados pode computarpara cada ativo A(k), k = 1, 2, NA) um valor para cada estatística especifi-cada pelo usuário para o ativo com base em uma correspondente das popu-lações.
As operações 445A e 445B são coletivamente referidas comooperação 445.
Em um conjunto de modalidades, o calculador de resultados po-de estar configurado para implementar a operação 445 de acordo com o se-guinte pseudocódigo:
Para k = 1 a NA:
j--O
Enquanto (j < N,):
Para cada quantidade especificada pelo usuário associada como ativo A(k):
Ler o(s) valor(es) de argumento de saída do conjunto de dadosde saída ODS(kJ) para a computação de um valor da quantidade especifica-da pelo usuário;
Computar e armazenar o valor de quantidade;
EndFor
j<-j+1;
EndWhile
Para cada estatística especificada pelo usuário associada com oativo A(k);
Computar um valor da estatística especificada pelo usuário dosNi valores da quantidade especificada pelo usuário correspondente.
EndForEndFor.
O ForLoop no índice k não precisa executar em um modo estri-tamente seqüencial. Por exemplo, este ForLoop pode estar configurado paraoperar em um modo de múltiplas cadeias, por exemplo, uma cadeia por va-lor de k.
Mais ainda, as operações 440 e 445 não precisam executar emum modo estritamente seqüencial. Por exemplo, as múltiplas cadeias doForLoop na operação 445 podem ser executadas em um modo de múltiplascadeias com as múltiplas cadeias do ForLoop na operação 440. Em umamodalidade, a kâ cadeia de cálculo de resultados pode ser iniciada logo apósa kâ cadeia de acumulação de resultados ser iniciada. Por exemplo, a kâ ca-deia de acumulação de resultados pode iniciar a kâ cadeia de cálculo de re-sultados após ter armazenado um primeiro dos conjuntos de dados de saídaODS(k.j) no banco de dados.
Na operação 450, um calculador de resultados globais podecomputar:
o valor S(x) do objetivo global S com base no primeiro subcon-junto especificado pelo usuário do conjunto Gj de estatísticas (isto é, a uniãodas estatísticas para cada ativo);
um valor de cada função auxiliar com base no subconjunto es-pecificado pelo usuário correspondente do conjunto total GT de estatísticas.Em um conjunto de modalidades, um método para otimizar asdecisões referentes a uma pluralidade de ativos pode envolver as seguintesoperações como ilustrado na Figura 5.
Na operação 510, um computador (por exemplo, um computadordo servidor que inclui um ou mais processadores) pode receber informaçõesque especificam:
as variáveis de decisão e as variáveis de incerteza para umapluralidade de ativos; e
para cada ativo um conjunto correspondente de um ou mais al-goritmos.
Na operação 515, o computador pode gerar um vetor de deci-são. O vetor de decisão inclui um valor para cada uma das variáveis de de-cisão. Cada uma das variáveis de decisão tem um conjunto associado devalores atingíveis.
Na operação 520, o computador pode executar um processo deavaliação no vetor de decisão para determinar pelo menos um valor de umobjetivo global para o vetor de decisão. Ver abaixo para uma descrição doprocesso de avaliação.
Na operação 530, o computador pode executar um otimizador. Aexecução do otimizador inclui executar as operações 515 e 520 repetida-mente, por meio disto gerando uma pluralidade_de vetores de decisão e va-lores de objetivo global correspondentes. O otimizador utiliza a pluralidadede vetores de decisão e os valores de objetivo global correspondentes paragerar e repetidamente atualizar um conjunto de referência de vetores de de-cisão de modo a otimizar o objetivo global.
Na operação 540, o computador pode armazenar os dados queincluem a pluralidade de vetores de decisão e seus valores de objetivo glo-bal correspondentes em uma memória (por exemplo, na memória de sistemado computador).
Na operação 545, o computador pode exibir uma representaçãográfica de pelo menos um subconjunto dos vetores de decisão do conjuntode referência.O otimizador pode ser executado por qualquer um de uma varie-dade de otimizadores, especialmente os otimizadores estocásticos. Por e-xemplo, o otimizador pode ser:
(1) um otimizador de pesquisa de dispersão;
(2) um otimizador de pesquisa de tabu;
(3) um otimizador com base em uma combinação meta-heurística de pesquisa de dispersão, de pesquisa de tabu, de redes neuraise de programação linear; ou
(4) um otimizador com base em um algoritmo genético.
A operação 520 de executar o processo de avaliação pode inclu-ir as seguintes operações como ilustrado na Figura 6.
Na operação 520A, o computador pode gerar um vetor de incer-teza. O vetor de incerteza inclui um valor para cada uma das variáveis deincerteza.
Na operação 520B, o computador pode gerar para cada ativo umconjunto de dados para o conjunto de algoritmos correspondente utilizandoum subconjunto correspondente de um ou mais valores no vetor de decisãoe um subconjunto correspondente de um ou mais valores no vetor de incer-teza.
Na operação 520C, o computador pode invocar a execução doconjunto de algoritmos para "cada ativo sobre o conjunto de dados corres-pondente para obter os argumentos de saída que correspondem ao ativo. Ocomputador pode invocar a execução em outros computadores, por exem-plo, pelo envio dos conjuntos de dados para os outros computadores (e ocódigo executável para os respectivos algoritmos se necessário).
Na operação 520D, o computador pode computar para cada ati-vo um ou mais valores de uma ou mais respectivas quantidades dos argu-mentos de saída que correspondem ao ativo.
Na operação 520E, o computador pode executar as operaçõesque incluem 520A até 520D um número de vezes, por meio disto gerandouma população de valores de cada quantidade para cada ativo.
Na operação 520F, o computador pode computar uma ou maisestatísticas para cada ativo com base em umas correspondentes das popu-lações.
Na operação 520G, o computador pode combinar um primeirosubconjunto das estatísticas para determinar o valor de objetivo global quecorresponde ao vetor de decisão. O primeiro subconjunto de estatísticas po-de ser combinado de acordo com uma combinação funcional especificadapelo usuário (por exemplo, uma combinação linear).
As informações (referidas em 510 acima) podem especificar umaou mais dependências funcionais entre as variáveis de incerteza. A opera-ção 520A de gerar o vetor de incerteza pode ser executada em um modoque respeite as uma ou mais dependências funcionais entre as variáveis deincerteza. O usuário pode especificar as dependências funcionais, por e-xemplo, através de uma GUI do cliente que executa em outro computador(por exemplo, um computador do cliente).
As informações podem também especificar uma ou mais corre-lações entre as variáveis de incerteza. Neste caso, a operação 520A de ge-rar o vetor de incerteza pode ser executada em um modo que respeite asditas correlações. As variáveis de incerteza podem incluir dois ou mais sub-conjuntos associados com dois ou mais dos ativos respectivamente. As cor-relações podem incluir as correlações entre as variáveis de incerteza atravésde diferentes ativos.
As informações podem também especificar uma ou mais restri-ções sobre as variáveis de decisão. Neste caso, a operação 515 de gerar ovetor de decisão pode respeitar as uma ou mais restrições sobre as variá-veis de decisão.
A operação 520 de executar o processo de avaliação no vetor dedecisão pode produzir um valor correspondente de uma função auxiliar alémdo dito valor de objetivo global. Assim, a operação 520 pode adicionalmenteincluir:
(520H) combinar um segundo subconjunto das estatísticas paradeterminar o valor de função auxiliar que corresponde ao vetor de decisão.
O otimizador pode utilizar os valores de objetivo global e os valo-res de função auxiliar que correspondem à pluralidade de vetores de decisãona dita atualização repetida do conjunto de referência de modo a otimizar afunção objetiva sujeita a uma ou mais restrições.
O usuário pode especificar a estrutura das uma ou mais restri-ções. Por exemplo, o usuário pode especificar uma restrição sobre umacombinação funcional da função auxiliar e do objetivo global. (A combinaçãofuncional pode esta própria ser especificada pelo usuário). Como outro e-xemplo, o usuário pode especificar uma restrição apenas sobre a funçãoauxiliar. A operação 520H pode incluir combinar o segundo subconjunto dasestatísticas de acordo com uma combinação linear cujos coeficientes sãoespecificados pelas ditas informações.
Cada uma das variáveis de decisão tem um conjunto associadode valores atingíveis que representam os possíveis resultados de uma deci-são correspondente. Mais ainda, cada uma das variáveis de incerteza temum conjunto associado de valores atingíveis. Os conjuntos de valores atingí-veis podem ser conjuntos finitos de valores numéricos, estruturas de dados,programas, etc. Os conjuntos de valores atingíveis podem também ser inter-valos da linha de número, ou mais geralmente, regiões especificadas pelousuário em um espaço n dimensional, onde n é um inteiro positivo.
Em uma modalidade, um gráfico de um valor de objetivo globalversus um valor de função auxiliar para cada um da dita pluralidade de veto-res de decisão pode ser exibido utilizando um dispositivo de exibição (talcomo um monitor, um projetor, um display montado na cabeça, etc).
A operação 540 de armazenar os dados pode incluir armazenara pluralidade de vetores de decisão juntamente com os seus valores de ob-jetivo global correspondentes e os valores de função auxiliar correspondenteem um banco de dados na memória. Em algumas modalidades, o computa-dor pode:
operar sobre o banco de dados para identificar um subconjuntode pluralidade de vetores de decisão que tem valores ótimos do objetivo glo-bal para um dado valor de função auxiliar;
repetir a dita operação por uma pluralidade de valores de funçãoauxiliar; e
armazenar os subconjuntos identificados na dita repetição.
Mais ainda, o computador pode também:
operar sobre o banco de dados para determinar um local de va-lores ótimos do objetivo global em relação ao valor de função auxiliar; eexibir o local de valores ótimos.
Uma representação gráfica de um subconjunto da pluralidade devetores de decisão que corresponde a um ponto sobre o local de valor ótimopode ser exibida em resposta a uma seleção do usuário do ponto.
O usuário pode especificar a pluralidade de ativos, as variáveisde decisão e as variáveis de incerteza para cada ativo, e um conjunto de umou mais algoritmos para cada ativo. As variáveis de decisão são variáveisque estão sujeitas à otimização. As variáveis de incerteza podem ser aleato-riamente (ou pseudoaleatoriamente) exploradas para criar uma variação naentrada suprida para os algoritmos de cada ativo.
O conjunto de um ou mais algoritmos para pelo menos um dosativos pode incluir um algoritmo para estimar a produção de óleo e de gás aolongo do tempo e a economia para o ativo. O algoritmo para estimar a pro-dução de óleo e de gás ao longo do tempo pode ser:
urh simulador de equilíbrio de material que opera sobre uma es-trutura de dados de modelo de tanque;
um cálculo de equilíbrio de material executado em modelos deplanilha;
um simulador de fluxo de reservatório que opera em uma estru-tura de dados tridimensional (3D);
um algoritmo definido por um conjunto de uma ou mais expres-sões algébricas especificadas pelo usuário.
Mais ainda, o conjunto de um ou mais algoritmos para pelo me-nos um dos ativos pode incluir um ou mais de:
um algoritmo para estimar o transporte de óleo e de gás na su-perfície, por exemplo, um simulador de processo de rede de tubulação desuperfície,um algoritmo para estimar o transporte de óleo, gás e água nasuperfície, por exemplo um modelo analítico de rede de tubulação de super-fície ou um conjunto de uma ou mais expressões algébricas especificadaspelo usuário, e
um algoritmo para estimar o volume de óleo e de gás e as pro-priedades de reservatório em 3D.
O algoritmo para estimar o volume de óleo e de gás e as propri-edades de reservatório em 3D pode ser executado por:
um algoritmo geoestatístico de geração de propriedade de sub-superfície,
definido por um conjunto de uma ou mais expressões algébricasespecificadas pelo usuário; ou
um simulador de equilíbrio de material.
O algoritmo para calcular a economia do ativo pode ser executa-do por:
algoritmos baseados em planilhas que podem incluir modelosfiscais totais e modelos de compartilhamento de produção;
algoritmos baseados em modelos econômicos analíticos e umconjunto de uma ou mais expressões algébricas especificadas pelo usuário.
Em outro conjunto de modalidades, um método para otimizar asdecisões referentes a uma pluralidade _de ativos por meio de execução deum código de programa em um primeiro computador (por exemplo, um com-putador do servidor) pode envolver as seguintes operações como ilustradona Figura 7.
Na operação 710, um primeiro computador (por exemplo, umcomputador do servidor que inclui um ou mais processadores) pode receberas informações que especificam as variáveis de decisão e as variáveis deincerteza para a pluralidade de ativos e especificam para cada ativo um con-junto correspondente de um ou mais algoritmos.
Na operação 720, o primeiro computador pode gerar um vetor dedecisão, onde o vetor de decisão inclui um valor para cada uma das variá-veis de decisão.Na operação 730, o primeiro computador pode executar um pro-cesso de avaliação no vetor de decisão para determinar pelo menos um va-lor de um objetivo global para o vetor de decisão.
Na operação 740, o primeiro computador pode executar um oti-mizador, onde a dita execução do otimizador inclui executar as operações720 e 730 repetidamente, por meio disto gerando uma pluralidade de vetoresde decisão e de valores de objetivo global correspondentes, e, onde o otimi-zador utiliza a pluralidade de vetores de decisão e os valores de objetivoglobal correspondentes para gerar e repetidamente atualizar um conjunto dereferência de vetores de decisão de modo a otimizar o objetivo global.
Na operação 750, o primeiro computador pode armazenar osdados que incluem a pluralidade de vetores de decisão e seus valores deobjetivo global correspondentes na memória.
A operação 730 de executar o processo de avaliação pode incluir as seguintes operações como ilustrado na Figura 8.
Na operação 730A, o primeiro computador pode gerar N, vetoresde incerteza, onde cada vetor de incerteza contém valores instanciados paracada uma das variáveis de incerteza, onde Ni é um inteiro positivo.
Na operação 730B, o primeiro computador pode gerar N, conjun-tos de dados de iteração para cada ativo, onde cada um dos conjuntos dedados de iteração é gerado utilizando uma porção do vetor de decisão e umuma porção de um correspondente dos vetores de incerteza.
Na operação 730C, o primeiro computador pode expedir os Niconjuntos de dados de iteração para cada ativo para um ou mais segundoscomputadores para invocar a execução do conjunto de algoritmos para oativo em cada um dos N( conjuntos de dados de iteração correspondentes,onde cada execução do conjunto de algoritmos para o ativo em um conjuntode dados de iteração gera um conjunto de dados de saída correspondente.
Na operação 730D, o primeiro computador pode receber os N|conjuntos de dados de saída para cada um dos ativos dos um ou mais se-gundos computadores e armazenar os N( conjuntos de dados de saída emuma memória.Na operação 730E, o primeiro computador pode computar paracada ativo e cada um dos N| conjuntos de dados de saída que correspon-dem ao ativo, um ou mais valores de uma ou mais respectivas quantidadescom base nos dados no conjunto de dados de saída, por meio disto gerandouma população de N( valores de cada quantidade para cada ativo.
Na operação 730F, o primeiro computador pode computar umaou mais estatísticas para cada ativo com base em umas correspondentesdas populações.
Na operação 730G, o primeiro computador pode combinar umprimeiro subconjunto das estatísticas para determinar o valor de objetivoglobal que corresponde ao vetor de decisão.
O primeiro computador e os um ou mais segundos computado-res podem estar acoplados através de uma rede de computadores, por e-xemplo, uma rede de área local, uma intranet, uma rede de área ampla, a Internet, etc.
A operação de expedir os conjuntos de dados de iteração induzuma execução distribuída dos conjuntos de algoritmos nos conjuntos de da-dos de iterações em uma pluralidade dos segundos computadores. Os se-gundos computadores podem estar organizados em uma estrutura de grade.
Em uma modalidade, um subconjunto dos conjuntos de dadosde iteração pode ser executado localmente pelo primeiro computador, de-pendendo em parte de quanta largura de banda de processamento está dis-ponível no primeiro computador.
As informações podem ser coletadas de um usuário por um pro-cesso que executa em um computador do cliente e enviadas para o primeirocomputador por este processo.
Em ainda outro conjunto de modalidades, um método para otimi-zar as decisões referentes a uma pluralidade de ativos pode envolver as se-guintes operações como ilustrado na Figura 9.
Na operação 910, um computador (por exemplo, um computadordo servidor que inclui um ou mais processadores) pode receber as informa-ções que especificam a pluralidade de ativos, um objetivo de ativo para cadaum dos ativos, e um conjunto de algoritmos para cada ativo.
Na operação 920, o computador pode gerar um vetor de decisãoque inclui valores para um conjunto de variáveis de decisão.
Na operação 930, o computador pode gerar N, vetores de incer-teza, onde cada um dos N| vetores de incerteza resulta de uma instanciaçãoseparada de um conjunto de variáveis de incerteza, onde Ni é um inteiro po-sitivo.
Na operação 940, o computador pode computar uma primeirapopulação de N| valores para cada objetivo de ativo pela execução de N| ite-rações de execução do conjunto de algoritmos correspondentes e operarnos dados de saída gerados em cada uma das Ni iterações da dita execu-ção, onde cada execução do conjunto de algoritmos correspondente operaem um conjunto de dados de entrada determinado pelos valores das variá-veis de decisão e por um correspondente dos vetores de incerteza.
Na operação 950, o computador pode computar uma primeiraestatística de ativo em cada objetivo de ativo da população de valores cor-respondente.
Na operação 960, o computador pode computar um valor de umobjetivo global com base na primeira estatística de ativo.
Na operação 970, o computador pode executar um otimizador,onde a execução do otimizador inclui executar 920 até 960 repetidamente,por meio disto gerando uma pluralidade de vetores de decisão e de valoresde objetivo global correspondentes, e, onde o otimizador utiliza a pluralidadede vetores de decisão e os valores de objetivo global correspondentes paragerar e repetidamente atualizar um conjunto de referência de vetores de de-cisão de modo a otimizar o objetivo global.
Em algumas modalidades, o computador pode:
computar uma segunda estatística de ativo para cada ativo deuma correspondente das populações; e
computar um valor de uma função auxiliar com base na segundaestatística de ativo.
A execução do otimizador pode tentar otimizar (isto é, maximizarou minimizar) o objetivo global sujeito a uma restrição em uma ou mais da
função auxiliar e do objetivo global.
Figura 10 - Diagrama de Blocos do Sistema de Computador
A Figura 10 é um diagrama de blocos que representa um conjun-to de modalidades de um sistema de computador 1082 que pode tomar opapel do computador do servidor ou do computador do cliente como váriasvezes aqui descrito.
O sistema de computador 1082 pode incluir pelo menos umaunidade de processamento central CPU 1160 (isto é, um processador) aqual está acoplada em um barramento principal 1162. A CPU 1160 pode serqualquer uma de vários tipos incluindo, mas não limitado a, um processadorx86, um processador PowerPC, uma CPU da família SPARC ou processado-res RISC, assim como outros. Um meio de memória, que tipicamente incluiuma RAM de semicondutor, e aqui referida como memória principal 1166,pode estar acoplada no barramento principal 1162 por meio do controladorde memória 1164. A memória principal 1166 pode armazenar os programasoperáveis para implementar qualquer ou todos ou qualquer subconjunto dasvárias modalidades de método aqui descritas. A memória principal podetambém armazenar um software de sistema operacional, assim como outrossoftwares para a operação do sistema de computador.
O barramento principal 1162 pode acoplar em uma expansão oubarramento de entrada / saída 1170 através de um controlador de barramen-to 1168 ou uma lógica de ponte de barramento. O barramento de expansão1170 pode incluir conectores para vários dispositivos tais como uma placade vídeo 1180, um disco rígido 1182, dispositivos de armazenamento 1190(tais como uma unidade de CD-ROM, uma unidade de fita, uma unidade dedisco flexível, etc.) e uma interface de rede 1122. A placa de vídeo 1180 po-de acoplar em um dispositivo de exibição tal como um monitor, um projetor,ou um display montado na cabeça. A interface de rede 1122 (por exemplo,um dispositivo de Ethernet) pode ser utilizada para comunicar com outroscomputadores através de uma rede.
O sistema de computador 1082 pode também incluir dispositivosde l/O 1192 tais como um mouse, um teclado, alto-falantes.
As modalidades do sistema de computador 1082 destinados pa-ra utilização como um computador do servidor pode ser mais ricamente do-tado com uma capacidade de processador (por exemplo, tendo múltiplosprocessadores), uma capacidade de memória e uma largura de banda deacesso de rede do que as modalidades destinadas para utilização como umcomputador do cliente. O computador do cliente pode incluir o mouse, o te-clado, os alto-falantes e a placa de vídeo (ou acelerador gráfico), enquantoque um computador do servidor não necessariamente inclui estes itens.
Qualquer modalidade de método (ou sua porção) aqui descritapode ser implementada em termos de instruções de programa. As instruçõesde programa podem ser armazenadas em qualquer um de vários tipos demeios de memória legível por computador. As instruções de programa sãolegíveis e executáveis (por um computador ou um conjunto de computado-res) para implementar a modalidade de método (ou sua porção). Ver a defi-nição de meio de memória dada na lista de Terminologia abaixo.
Terminologia
A seguinte terminologia é aqui utilizada.
Algoritmo: Um algoritmo é um método computacional.
Argumento: As entradas e saídas de um algoritmo são referidascomo argumentos. Um argumento pode ou ser uma entrada para um algo-ritmo, uma saída de um algoritmo, ou, tanto uma entrada quanto uma saída.Cada argumento pode ter um nome único (relativo ao algoritmo para o qualeste está definido) e também um tipo de objeto específico que este podetransportar (por exemplo, uma flutuação, um inteiro, uma cadeia, etc).
Mapa de argumentos: A coleção de argumentos que pertence aum algoritmo é referida como o seu mapa de argumentos.
Laço: Um laço é utilizado para executar um algoritmo um núme-ro de vezes (no entanto não necessariamente seqüencialmente como foiacima notado). Um laço pode ser construído de um iterador de algoritmo, umalgoritmo e um expedidor opcional (isto é, um mecanismo para distribuir asiterações do algoritmo). O construtor de fluxo pode dar ao usuário uma esco-lha de diferentes iteradores de algoritmo para utilizar em um laço, e, umaescolha de diferentes expedidores para utilizar no laço. Um laço é este pró-prio um algoritmo. O mapa de argumentos de um laço pode ser definido co-mo uma combinação do mapa de argumentos do iterador de algoritmo e omapa de argumentos do algoritmo.
Meio de Memória: Um meio de memória é um meio configuradopara o armazenamento de informações. Exemplos de meio de memória in-cluem vários tipos de meios magnéticos (por exemplo, fita magnética ou dis-co magnético); vários tipos de meios óticos (por exemplo, CD-ROM); váriostipos de RAM e ROM de semicondutor; vários meios baseados no armaze-namento de cargas elétricas ou outras quantidades físicas; etc.
Iterador de Algoritmo: Um iterador de algoritmo é utilizado paraproduzir os conjuntos de dados de iteração para o algoritmo associado den-tro de um laço. O iterador de algoritmo pode ter um par de mapas de argu-mentos. Um mapa de argumentos é exposto através do laço para o exteriore é utilizado como as entradas e saídas do iterador de algoritmo. O segundomapa de argumentos é utilizado para comunicar com o algoritmo associadodentro do laço.
Expedidor: Um expedidor é utilizado para distribuir as iteraçõesdo algoritmo associado.
Algoritmo de Script: Um algoritmo de script é um script (tal comoum script Jython ou um script Perl) incorporado em um algoritmo. Os argu-mentos de entrado do algoritmo podem ser supridos para o script, e os ar-gumentos de saída do script podem ser os argumentos de saída do algorit-mo.
Algoritmo de Processo: um algoritmo de processo é um proces-so externo que é incorporador em um algoritmo. Os algoritmos de processopodem incluir os algoritmos de simulação de processo e os algoritmos deotimização. Um algoritmo de simulação de processo executa uma simulaçãode um sistema físico, tipicamente, com base em um ou mais modelos supri-dos como entrada. Um exemplo de um algoritmo de simulação de processoé um simulador de fluxo de fluido através de um meio poroso, referido comoum simulador de reservatório.
Fluxo: Um fluxo é um conjunto de algoritmos interconectados.Para conectar um argumento de saída de um algoritmo em um argumentode entrada de um segundo algoritmo, o construtor de fluxo pode requereruma coincidência de nome e tipo de argumento. Por exemplo, uma saídaINT pode ser passada para uma entrada FLOAT. No entanto, passar umasaída STRING para uma entrada INT pode ser proibido. Uma interface gráfi-ca do usuário pode ser suprida para permitir que os argumentos de diferen-tes algoritmos sejam conectados manualmente. Uma vez criado, um fluxopode ser convertido para um algoritmo, se desejado.
Apesar das modalidades acima terem sido descritas em conside-ráveis detalhes, numerosas variações e modificações ficarão aparentes paraaqueles versados na técnica uma vez que a descrição acima for totalmenteapreciada. É pretendido que as reivindicações seguintes sejam interpretadaspara abranger todas tais variações e modificações.

Claims (29)

1. Método compreendendo:(a) receber informações especificando variáveis de decisão evariáveis incertas para uma pluralidade de vantagens e especificando paracada uma das vantagens um conjunto correspondente de um ou mais algo-ritmos;(b) gerar um vetor de decisão, em que o vetor de decisão incluium valor para cada uma das variáveis de decisão;(c) executar um processo de avaliação sobre o vetor de decisãopara determinar pelo menos um valor de um objetivo global para o vetor dedecisão, em que a dita execução do processo de avaliação inclui:(c1) gerar um vetor de incerteza, em que o vetor de incertezainclui um valor para cada uma das variáveis de incerteza;(c2) gerar para cada vantagem um conjunto de dados para oconjunto correspondente de algoritmos usando um subconjunto correspon-dente de um ou mais valores no vetor de decisão e um subconjunto corres-pondente de um ou mais valores no vetor de incerteza;(c3) realizar a execução de um conjunto de algoritmos para cadavantagem nos conjunto de dados correspondentes para obter argumentos desaída correspondentes à vantagem;(c4) computar para cada vantagem um ou mais valores de umaou mais quantidades respectivas a partir dos argumentos de saída corres-pondentes à vantagem;(c5) realizar operações incluindo (d) a (c4) um número de ve-zes, de modo a gerar uma população de valores de cada quantidade paracada vantagem;(c6) computar um ou mais estatísticas para cada vantagem combase naquelas correspondentes das populações; e(c7) combinar um primeiro subconjunto de estatísticas para de-terminar o valor objetivo global correspondente ao vetor de decisão;(d) executar um otimizador, em que a dita execução do otimiza-dor inclui realizar (b) e (c) repetidamente, através disso gerar uma pluralida-de de vetores de decisão e valores objetivos globais correspondentes, e emque o otimizador usa a pluralidade de vetores de decisão e os valores objeti-vos globais correspondentes para gerar e repetidamente atualizar um con-junto de referência de vetores de decisão para otimizar o objetivo global;(e) armazenar dados incluindo a pluralidade de vetores de deci-sões e seus correspondentes valores objetivos globais em uma memória.
2. Método, de acordo com a reivindicação 1, em que a dita etapade executar o otimizador inclui realizar um procedimento de busca de proibi-ção.
3. Método, de acordo com a reivindicação 1, em que a dita etapade executar o otimizador inclui realizar um procedimento de busca de difusão.
4. Método, de acordo com a reivindicação 1, ainda compreen-dendo:exibir uma representação gráfica de pelo menos um subconjuntode vetores de decisão do conjunto de referência.
5. Método, de acordo com a reivindicação 1, em que a dita in-formação especifica uma ou mais dependências funcionais entre as varáveisde incerteza, em que a dita geração do vetor de incerteza respeita uma oumais das ditas dependências funcionais entre as variáveis de incerteza.
6. Método, de acordo com a reivindicação 1, em que a dita in-;formação também especifica um ou mais correlações entre as variáveis deincerteza, em que a dita geração do vetor de incerteza respeita as ditas cor-relações.
7. Método, de acordo com a reivindicação 6, em que as variáveisde incerteza incluem dois ou mais subconjuntos associados com duas oumais vantagens respectivamente, em que as ditas correlações incluem cor-relações entre variáveis de incerteza através de diferentes vantagens.
8. Método, de acordo com a reivindicação 7, em que a dita in-formação também especifica uma ou mais restrições nas variáveis de deci-são, em que a dita geração do vetor de decisão respeita uma ou mais dasditas restrições das variáveis de decisão.
9. Método, de acordo com a reivindicação 1, em que as variáveisde decisão incluem um ou mais variáveis de decisão valoradas numerica-mente e uma ou mais variáveis de decisão valoradas quanto ao cenário.
10. Método, de acordo com a reivindicação 1, em que o valorobjetivo global é uma estatística de uma população de valores de objetivosde nível de vantagem, em que os valores de objetivos de nível de vantagemsão computados a partir de uma pluralidade de execuções de (d) a (c4) u-sando diferentes valores exemplificados de variáveis de incerteza.
11. Método, de acordo com a reivindicação 1, em que a dita in-formação também especifica uma ou mais dependências funcionais entre asvariáveis de decisão, em que a dita geração do vetor de decisão respeitauma ou mais dependências funcionais entre as variáveis de decisão.
12. Método, de acordo com a reivindicação 1, em que cada umadas variáveis de decisão possui um conjunto associado de valores atingíveisrepresentando possíveis resultados de uma decisão correspondente, em quecada das variáveis de incerteza possui um conjunto associado de valoresatingíveis.
13. Método, de acordo com a reivindicação 1, em que a dita e-xecução do processo de avaliação sobre o vetor de decisão produz um valorcorrespondente de uma função auxiliar além do valor objetivo global, em quea dita execução do processo de avaliação do vetor de decisão adicionalmen-te inclui: -(c8) combinar um segundo subconjunto de estatísticas para de-terminar a função auxiliar correspondente ao vetor de decisão;em que o otimizador usa valores de objetivo globais e os valoresde função auxiliar correspondentes à pluralidade de vetores de decisão nasditas atualizações repetidas do conjunto de referência de modo a otimizar afunção objetivas sujeita a um ou mais restrições.
14. Método, de acordo com a reivindicação 13, em que uma oumais restrições incluem uma restrição sobre uma combinação funcional dafunção auxiliar e objetivos globais.
15. Método, de acordo com a reivindicação 13, em que uma oumais restrições incluem uma restrição da função auxiliar.
16. Método, de acordo com a reivindicação 13, em que (c8) in-clui combinar o segundo subconjunto de estatísticas de acordo com umacombinação linear dos quais coeficientes são especificados pela dita infor-mação.
17. Método, de acordo com a reivindicação 13, ainda compreen-dendo:exibir uma plotagem dos valores de objetivos globais versus osvalores de funções auxiliares para cada uma da dita pluralidade de vetoresde decisão.
18. Método, de acordo com a reivindicação 13, em que o ditoarmazenamento inclui armazenar vetores de decisão da pluralidade de veto-res de decisão junto com seus valores de objetivo global correspondentes evalores de função auxiliares correspondentes em um banco de dados na ditamemória.
19. Método, de acordo com a reivindicação 18, ainda compreen-dendo:operar nos bancos de dados para identificar um subconjunto dapluralidade de vetores de decisão que tenham valores ótimos de objetivoglobal para um dado valor de função auxiliar;repetir a dita operação para uma pluralidade de valores de fun-ções auxiliares; earmazenar os subconjuntos identificados da dita repetição.
20. Método, de acordo com a reivindicação 18, ainda compreen-dendo:operar nos bancos de dados para determinar um lugar de valo-res ótimos dos objetivos globais em relação ao valor de função auxiliar; eexibir o lugar dos valores ótimos.
21. Método, de acordo com a reivindicação 20, ainda compreendendo:exibir a representação gráfica de um subconjunto da pluralidadede vetores de decisão que correspondem a um ponto no lugar do valor ótimoem resposta a uma seleção de usuário do dito ponto.
22. Método, de acordo com a reivindicação 1, em que o conjuntode um ou mais algoritmos para cada vantagem são selecionados pelo usuário.
23. Método, de acordo com a reivindicação 1, em que o conjuntode um ou mais algoritmos para pelo menos uma das vantagens inclui um al-goritmo para estimar a produção de óleo e gás com o transcorrer do tempo.
24. Método, de acordo com a reivindicação 1, em que o conjuntode um ou mais algoritmos para pelo menos uma das vantagens inclui umalgoritmo para estimar o transporte de óleo e gás em uma superfície.
25. Método, de acordo com a reivindicação 1, em que o conjuntode um ou mais algoritmos para pelo menos uma das vantagens inclui umprimeiro algoritmo para estimar o transporte de óleo, gás e água por umasuperfície, em que o dito primeiro algoritmo é:um modelo analítico de rede de tubulação de superfície; ouum conjunto de uma ou mais expressões algébricas específicasde usuário.
26. Método, de acordo com a reivindicação 1, em que o conjuntode algoritmos para pelo menos uma vantagem inclui um primeiro algoritmopara estimar o volume de óleo e gás e propriedades 3D de reservatório.
27. Método, de acordo com a reivindicação 1, em que o conjuntode algoritmos para pelo menos uma das vantagens inclui um primeiro algo-ritmo para estimar economias das vantagens.
28. Meio de memória legível por computador configurado paraarmazenar instruções de programa, em que as instruções de programa sãoexecutáveis para implementar qualquer um dos métodos como definidos nasreivindicações 1 a 27.
29. Sistema de computador compreendendo:uma memória configurada para armazenar instruções de programa;pelo menos um processador configurado para ler e executar asinstruções de programa, em que as ditas instruções de programa são execu-táveis para implementar qualquer um dos métodos como definidos nas rei-vindicações 1 a 27.
BRPI0609919-0A 2005-04-29 2006-04-28 método para otimizar decisões em relação a vantagens múltiplas na presença de várias incertezas fundamentadas, meio de memória legìvel por computador e sistema de computador BRPI0609919A2 (pt)

Applications Claiming Priority (7)

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
US11/215,737 US8457997B2 (en) 2005-04-29 2005-08-30 Optimization of decisions regarding multiple assets in the presence of various underlying uncertainties
PCT/US2006/016417 WO2006119099A2 (en) 2005-04-29 2006-04-28 Optimization of decisions regarding multiple assets in the presence of various underlying uncertainties

Publications (1)

Publication Number Publication Date
BRPI0609919A2 true BRPI0609919A2 (pt) 2010-05-11

Family

ID=36691850

Family Applications (2)

Application Number Title Priority Date Filing Date
BRPI0609919-0A BRPI0609919A2 (pt) 2005-04-29 2006-04-28 método para otimizar decisões em relação a vantagens múltiplas na presença de várias incertezas fundamentadas, meio de memória legìvel por computador e sistema de computador
BRPI0607659-9A BRPI0607659A2 (pt) 2005-04-29 2006-05-01 análise de múltiplos ativos em função de incertezas

Family Applications After (1)

Application Number Title Priority Date Filing Date
BRPI0607659-9A BRPI0607659A2 (pt) 2005-04-29 2006-05-01 análise de múltiplos ativos em função de incertezas

Country Status (6)

Country Link
EP (3) EP1889214B1 (pt)
BR (2) BRPI0609919A2 (pt)
CA (2) CA2610300C (pt)
MX (2) MX2007013533A (pt)
NO (3) NO339285B1 (pt)
WO (2) WO2006119099A2 (pt)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7660673B2 (en) * 2007-10-12 2010-02-09 Schlumberger Technology Corporation Coarse wellsite analysis for field development planning
US8504335B2 (en) 2008-04-17 2013-08-06 Exxonmobil Upstream Research Company Robust optimization-based decision support tool for reservoir development planning
CN102007485B (zh) 2008-04-18 2014-06-25 埃克森美孚上游研究公司 储层开发计划的基于markov决策过程的决策支持工具
EP2291799A4 (en) 2008-04-21 2013-01-16 Exxonmobil Upstream Res Co DECISION SUPPORT TOOL BASED ON STOCHASTIC PROGRAMMING FOR TANK DEVELOPMENT PLANNING
US8849623B2 (en) 2008-12-16 2014-09-30 Exxonmobil Upstream Research Company Systems and methods for reservoir development and management optimization
US8473435B2 (en) * 2010-03-09 2013-06-25 Schlumberger Technology Corporation Use of general bayesian networks in oilfield operations
US10062354B2 (en) 2014-10-10 2018-08-28 DimensionalMechanics, Inc. System and methods for creating virtual environments
US10163420B2 (en) * 2014-10-10 2018-12-25 DimensionalMechanics, Inc. System, apparatus and methods for adaptive data transport and optimization of application execution
EP3246858A1 (en) * 2016-05-19 2017-11-22 Repsol, S.A. Computer implemented method for generating a field development plan (fdp) for the exploitation of oil and gas reservoirs
RU2701093C1 (ru) * 2019-03-11 2019-09-24 Федеральное государственное казенное военное образовательное учреждение высшего образования "Военная академия Ракетных войск стратегического назначения имени Петра Великого" МО РФ Устройство нечетко-случайного моделирования сценариев развития ситуации
KR102056752B1 (ko) * 2019-06-10 2020-01-22 (주)스페이스 수준측량을 위한 측지 측량시스템
WO2024199632A1 (en) * 2023-03-28 2024-10-03 Siemens Aktiengesellschaft System and method for performing uncertainty quantification

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6772136B2 (en) * 1997-08-21 2004-08-03 Elaine Kant System and method for financial instrument modeling and using Monte Carlo simulation
US7835893B2 (en) * 2003-04-30 2010-11-16 Landmark Graphics Corporation Method and system for scenario and case decision management

Also Published As

Publication number Publication date
EP1897040A1 (en) 2008-03-12
CA2610300C (en) 2016-08-02
EP3040914B1 (en) 2017-09-13
NO341596B1 (no) 2017-12-11
NO20076156L (no) 2008-01-18
CA2610301C (en) 2015-06-30
BRPI0607659A2 (pt) 2009-09-22
NO338779B1 (no) 2016-10-17
EP3040914A1 (en) 2016-07-06
WO2006119099A2 (en) 2006-11-09
NO20160843A1 (no) 2008-01-18
CA2610301A1 (en) 2006-11-09
CA2610300A1 (en) 2006-11-09
EP1897040B1 (en) 2015-12-23
NO20076155L (no) 2008-01-18
MX2007013534A (es) 2008-01-24
EP1889214A1 (en) 2008-02-20
MX2007013533A (es) 2008-01-24
NO339285B1 (no) 2016-11-21
WO2006119119A2 (en) 2006-11-09
EP1889214B1 (en) 2015-12-02

Similar Documents

Publication Publication Date Title
US8209202B2 (en) Analysis of multiple assets in view of uncertainties
US8457997B2 (en) Optimization of decisions regarding multiple assets in the presence of various underlying uncertainties
US7895241B2 (en) Method and apparatus for oilfield data repository
US7835893B2 (en) Method and system for scenario and case decision management
CA2527864C (en) Stochastically generating facility and well schedules
NO339285B1 (no) Optimalisering av avgjørelser vedrørende multiple verdier ved tilstedeværelse av ulike underliggende usikkerheter
Chai et al. An integrated closed-loop solution to assisted history matching and field optimization with machine learning techniques
US20250341649A1 (en) Subsurface geological site framework
US20210150440A1 (en) Upper Confidence Bound Algorithm for Oilfield Logic
RU2417443C2 (ru) Оптимизация решений, касающихся многочисленных объектов, при наличии различных основополагающих неопределенностей
US20240393769A1 (en) Field equipment data system
Jankowski et al. Valuation of Prospective Resources-A Portfolio Approach

Legal Events

Date Code Title Description
B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B08F Application dismissed because of non-payment of annual fees [chapter 8.6 patent gazette]
B08K Patent lapsed as no evidence of payment of the annual fee has been furnished to inpi [chapter 8.11 patent gazette]