NO338779B1 - Analyse av multiple verdier under hensyn til usikkerheter - Google Patents

Analyse av multiple verdier under hensyn til usikkerheter Download PDF

Info

Publication number
NO338779B1
NO338779B1 NO20076155A NO20076155A NO338779B1 NO 338779 B1 NO338779 B1 NO 338779B1 NO 20076155 A NO20076155 A NO 20076155A NO 20076155 A NO20076155 A NO 20076155A NO 338779 B1 NO338779 B1 NO 338779B1
Authority
NO
Norway
Prior art keywords
values
variables
uncertainty
decision
algorithms
Prior art date
Application number
NO20076155A
Other languages
English (en)
Other versions
NO20076155L (no
Inventor
Keshav Narayanan
David S Heath
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 NO20076155L publication Critical patent/NO20076155L/no
Publication of NO338779B1 publication Critical patent/NO338779B1/no

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

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)
  • Complex Calculations (AREA)
  • Analysing Materials By The Use Of Radiation (AREA)
  • Investigating Or Analysing Biological Materials (AREA)
  • Stored Programmes (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Description

BAKGRUNN FOR OPPFINNELSEN
1. Oppfinnelsens område
Foreliggende oppfinnelse vedrører generelt analyse i forbindelse med avgjørelser, usikkerhet og optimering, og mer spesifikt et system og en fremgangsmåte for å optimere avgjørelser vedrørende et system av realverdier i nærvær av usikkerhet.
2. Beskrivelse av beslektet teknikk
En lang rekke aktiviteter blir typisk utført i forbindelse med undersøkelse, utvikling og drift av olje- og gassfelter (realverdier), f.eks. aktiviteter som: leie av arealer;
innsamling av seismiske data;
boring av utforskingsbrønner;
boring av produksjonslønner;
komplettering av brønnene;
oppføring av anlegg for å behandle og lagre produksjonen fra brønner.
Selv om disse aktivitetene krever store kapitalutlegg betraktes disse utleggene som investeringer i håp om å få inntekter (f.eks. fra salg av olje og gass) som er betydelig større enn de totale utleggene. Disse aktivitetene kan således refereres til her som investeringsaktiviteter.
Hver av investeringsaktivitetene krever at det tas forskjellige avgjørelser, f.eks. avgjørelser vedrørende: hvor mye areal som skal leies og hvilke arealer som skal leies;
hvordan de seismiske dataene skal samles inn, og hvor mye seismiske data som skal samles inn;
hvor mange utforskingsbrønner som skal bores, og hvor utforskings-brønnene skal bores;
hvordan felter skal utvikles;
hvor mange produksjons- og injeksjonsbrønner som skal bores, hvor brønnene skal bores og hva brønnplanen (dvs. borebanen for brønnboringen gjennom undergrunnen) skal være for hver av produksjonslønnene;
hvor mange perforeringer som skal gjøres for hver brønn, og hvordan
perforeringene skal fordeles langs brønnplanen for hver brønn;
i hvilken rekkefølge brønner skal bores og perforeres;
hvordan prosesseringsanlegg skal dimensjoneres og hvordan brønnene skal kobles til anleggene og til uttransporteringssystemer;
hvordan fluidene som produseres fra den geologiske formasjonen skal behandles;
i tilfeller med flere potensielle produktive realverdier, hvilke realverdier som skal anvendes og i hvilken rekkefølge de skal utvikles og settes i produksjon.
Disse avgjørelsene må dessuten tas i nærvær av en lang rekke fundamentale usikkerheter, f.eks. usikkerheter knyttet til faktorer som: fremtidige priser på leieavtaler i forbindelse med olje- og gass;
mengden av olje- og/eller gassreserver i et felt;
formen og de fysiske egenskapene til reservoarer i hvert felt;
hvor lang tid det vil ta å bore hver utforskingsbrønn og hver produksjonsbrønn;
fremtidig tilgjengelighet av utstyr så som borerigger og kompletterings-rigger;
kostnadene forbundet med å drive og opprettholde produksjon og injeksjon ved brønnene og anleggene;
de fremtidige prisene på olje og gass;
stabiliteten i værforholdene.
Uansett hvordan en avgjørelse tas innebærer disse fundamentale usikkerhetene usikkerheter i utbyttet, så som produksjonsvolum, overskudd og fortjeneste. Følgelig er det behov for systemer og fremgangsmåter som kan være til hjelp når en skal ta avgjørelser (der hver avgjørelse har et sett av tilgjengelige alternativer) vedrørende utnyttelse av olje- og gassfelter i lys av fundamentale usikkerheter.
OPPSUMMERING
Hovedtrekkene ved oppfinnelsen fremgår av de selvstendige patentkrav. Ytterligere trekk ved oppfinnelsen er angitt i de uselvstendige krav.
I ett sett av utførelsesformer kan en fremgangsmåte for å analysere innvirkningen av usikkerheter knyttet til et sett av realverdier omfatte det å:
(a) motta informasjon som spesifiserer et sett av usikkerhetsvariabler for flere realverdier og som spesifiserer en funksjonsrelasjon mellom en første og en andre av usikkerhetsvariablene, der den første usikkerhetsvariabelen er knyttet til en første av realverdiene og den andre usikkerhetsvariabelen er knyttet til en andre av realverdiene; (b) generere verdier for hver av usikkerhetsvariablene, der prosessen med å generere verdiene omfatter det å generere en verdi for den første usikkerhetsvariabelen og beregne en verdi for den andre usikkerhetsvariabelen fra verdien til den første usikkerhetsvariabelen basert på funksjonsrelasjonen; (c) for hver av realverdiene, bestemme et tilhørende inndatasett ved anvendelse av i hvert fall en tilhørende delmengde av usikkerhetsvariablenes verdier; (d) for hver av realverdiene, anrope eksekvering av et tilhørende sett av én eller flere algoritmer, der hvert sett av én eller flere algoritmer jobber på det tilhørende inndatasettet for å generere et tilhørende utdatasett; (e) utføre (b), (c) og (d) flere ganger for å generere flere utdatasett for hver realverdi; (f) beregne én eller flere statistikker for hver av realverdiene basert på den tilhørende samlingen av utdatasett; (g) generere resultatdata i hvert fall delvis basert på statistikken for realverdiene;
(h) vise en angivelse av resultatdataene på en fremvisningsanordning.
Trinn (c) med å bestemme inndatasettene for realverdiene kan omfatte det å: bestemme et første inndatasett svarende til den første realverdien ved anvendelse av i hvert fall verdien til den første usikkerhetsvariabelen; og
bestemme et andre inndatasett svarende til den andre realverdien med bruk av i hvert fall verdien til den andre usikkerhetsvariabelen.
Realverdiene kan være realverdier knyttet til leting etter og produksjon av olje og/eller gass. For eksempel kan realverdiene omfatte et sett av olje- og gassfelter.
Settet av én eller flere algoritmer for hver realverdi kan velges av en bruker. Algoritmene kan velges fra en rekke forskjellige støttede algoritmer.
I én utførelsesform kan trinn (d) omfatte det å:
distribuere inndatasettene for realverdiene til én eller flere fjerne datamaskiner for fjerneksekvering av de tilhørende settene av algoritmer; og motta utdatasettene fra den ene eller de flere fjerne datamaskinene.
Informasjonen som mottas i (a) kan også spesifisere én eller flere korrelasjoner mellom usikkerhetsvariablene. Trinn (b) med å generere verdier for hver av usikkerhetsvariablene tar hensyn til den ene eller de flere spesifiserte korrelasjonene. Korrelasjonene kan omfatte korrelasjoner mellom usikkerhetsvariabler på tvers av forskjellige realverdier.
I noen utførelsesformer kan trinn (c) kan omfatte det å velge én av to eller flere modeller for innlemmelse i ett av inndatasettene basert på verdien til en tredje av usikkerhetsvariablene.
I én utførelsesform kan trinn (c) omfatte det å:
velge én av to eller flere modeller basert på verdien til en tredje av usikkerhetsvariablene; og
velge én av to eller flere delmodeller av den valgte modellen basert på verdien til en fjerde av usikkerhetsvariablene.
Den valgte delmodellen kan anvendes for å bestemme data som skal innlemmes i ett (eller flere) av inndatasettene.
Mer generelt kan et hierarkisk tre av modeller med et hvilket som helst ønsket antall nivåer settes opp av brukeren. En datastruktur kan settes sammen ved å: gjennomløpe treet fra topp til bunn basert på verdiene til én eller flere av usikkerhetsvariablene, og
legge til dataene omfattet i hver node langs banen som gjennomløpes.
I hvert trinn i gjennomløpet styrer en tilhørende usikkerhetsvariabels verdi hvilken undernode som skal velges.
I noen utførelsesformer kan fremgangsmåten videre omfatte det å:
(1) motta informasjon som spesifiserer flere avgjørelsesvariabler; (2) generere verdier for avgjørelsesvariablene, der avgjørelsesvariablenes verdier anvendes for å bestemme inndatasettene for realverdiene; (3) beregne en verdi for et globalt mål fra den ene eller de flere statistikkene for hver av realverdiene; og
kjøre en optimeringsenhet for å bestemme ett eller flere sett av verdier for avgjørelsesvariablene.
Trinnet med å kjøre en optimeringsenhet kan omfatte det å utføre i hvert fall trinnene (2), (e), (f) og (3) et antall ganger, der optimeringsenheten er innrettet for å søke etter et maksimum eller minimum for det globale målet over i hvert fall en del av et rom som avgrenses av avgjørelsesvariablene.
Optimeringsenheten kan være valgbar for en bruker fra et sett av støttede optimeringsenheter.
Trinn (h) med å vise en angivelse av resultatdataene kan omfatte det å vise en grafisk representasjon av i hvert fall en delmengde av det ene eller de flere settene av verdier for avgjørelsesvariablene.
Informasjonen som mottas i (1) kan også spesifisere én eller flere begrensninger på avgjørelsesvariablene. I så fall tas det i genereringen av verdier for avgjørelsesvariablene hensyn til den ene eller de flere begrensningene.
Informasjonen som mottas i (1) kan også spesifisere én eller flere funksjonsavhengigheter mellom avgjørelsesvariablene. I så fall tas det i genereringen av verdier for avgjørelsesvariablene hensyn til den ene eller de flere funksjonsavhengighetene mellom avgjørelsesvariablene.
Hver av avgjørelsesvariablene har et tilhørende sett av oppnåelige verdier som representerer mulige utfall av en tilhørende avgjørelse. Videre har hver av usikkerhetsvariablene et tilhørende sett av oppnåelige verdier. Settene av oppnåelige verdier kan være endelige sett eller sett med uendelig kardinalitet.
I én av "optimeringsenhef-utførelsene kan fremgangsmåten videre omfatte det å: (4) beregne en verdi for en hjelpefunksjon fra den ene eller de flere statistikkene for hver av realverdiene.
I så fall kan trinnet med å kjøre optimeringsenheten omfatte det å utføre (2), (e), (f), (3) og (4) et antall ganger. Optimeringsenheten kan være innrettet for å søke etter maksimum eller minimum for det globale målet i hvert fall underlagt en begrensning på en funksjonskombinasjon av det globale målet og hjelpefunksjonen. Funksjonskombinasjonen kan være brukerspesifisert.
Trinn (h) med å vise en angivelse av resultatdataene på en fremvisningsanordning kan omfatte det å vise et plott av verdien til det globale målet mot verdien til hjelpefunksjonen.
I et annet sett av utførelsesformer kan en fremgangsmåte for å optimere avgjørelser knyttet til undersøkelse, utvikling og produksjon av olje- og gassfelter omfatte det å:
(a) motta brukerinnmating som spesifiserer to eller flere algoritmer og som spesifiserer én eller flere koblinger mellom de to eller flere algoritmene, der hver av koblingene er en kobling mellom en utmating fra én av algoritmene og innmatingen til en annen av algoritmene; (b) motta brukerinnmating som spesifiserer én eller flere datastrukturer som er i overensstemmelse med de to eller flere algoritmene; (c) jobbe på den ene eller de flere datastrukturene som reaksjon på brukerinnmating for å bygge og én eller flere modeller for de to eller flere algoritmene, der den ene eller de flere modellene omfatter én eller flere usikkerhetsvariabler og én eller flere avgjørelsesvariabler; (d) motta brukerinnmating som spesifiserer én eller flere statistikker som skal beregnes på utdata fra de to eller flere algoritmene; (e) motta brukerinnmating som spesifiserer en funksjonskombinasjon av statistikkene for å definere et globalt mål; (f) motta brukerinnmating som spesifiserer en optimeringsenhet; (g) foreta en optimering ved anvendelse av den brukerspesifiserte optimeringsenheten for å søke etter en optimal verdi for det globale målet, der nevnte optimering omfatter det å: (g1) generere én eller flere verdier for den ene eller de flere avgjørelsesvariablene;
(g2) anrope flere kjøringer av de to eller flere algoritmene i henhold til den ene eller de flere koblingene, der hver av kjøringene jobber på et tilhørende sett av én eller flere instantierte modeller bestemt av den ene eller de flere modellene, den ene eller de flere avgjørelsesvariablenes verdier og et tilhørende sett av én eller flere instantierte verdier for den ene eller de flere usikkerhetsvariablene;
(g3) beregne statistikkene basert på utmatingen fra de flere kjøringene;
(g4) beregne en verdi for det globale målet fra statistikken;
(g5) gjenta (g1) til (g4) et antall ganger.
I noen utførelsesformer kan trinnene (a)-(e) kan bli utført på en klientmaskin og trinn (g) kan bli utført på en tjenermaskin. Følgelig kan fremgangsmåten også omfatte det å sende informasjon som spesifiserer de to eller flere algoritmene, informasjon som spesifiserer den ene eller de flere koblingene, informasjon som spesifiserer den ene eller de flere statistikkene, informasjon som spesifiserer optimeringsenheten og informasjon som spesifiserer det globale målet til tjenermaskinen.
I noen utførelsesformer kan tjenermaskinen utføre trinn (g2) ved å:
(g2.1) generere et sett av én eller flere instantierte verdier for den ene eller de flere usikkerhetsvariablene;
(g2.2) bestemme én eller flere instantierte modeller fra den ene eller de flere modellene og settet av én eller flere instantierte verdier;
(g2.3) sende den ene eller de flere instantierte modellene til en fjerndatamaskin, idet fjerndatamaskinen utfører én av de flere eksekveringene av de to eller flere algoritmene på den ene eller de flere instantierte modellene; og
gjenta (g2.1) til (g2.3) for å distribuere de flere kjøringene til et sett av én eller flere fjerne datamaskiner.
I én utførelsesform kan fremgangsmåten videre omfatte det å motta brukerinnmating som spesifiserer en fordelingsenhet. Fordelingsenheten er et program som styrer prosessen med å anrope de flere eksekveringene av de to eller flere algoritmene på settet av fjerne datamaskiner. Tjeneren kan kjøre fordelingsenheten for å bevirke nevnte gjentagelse av (g2.1) til (g2.3).
Videre kan fremgangsmåten omfatte det å:
motta brukerinnmating som spesifiserer én eller flere hjelpefunksjoner, der hver hjelpefunksjon er en tilhørende funksjonell kombinasjon av en tilhørende delmengde av statistikkene; og
motta brukerinnmating som spesifiserer én eller flere begrensninger på den ene eller de flere hjelpefunksjonene og det globale målet;
I optimeringen tas det hensyn til den ene eller de flere begrensningene på den ene eller de flere hjelpefunksjonene og det globale målet.
En hvilken som helst av eller alle fremgangsmåteutførelsene (eller deler av disse) beskrevet her kan realiseres i forbindelse med programinstruksjoner. Programinstruksjonene kan lagres på hvilke som helst av forskjellige typer datamaskinlesbare minnemedier, så som magnetplatelagre, magnetbånd, forskjellige typer halvleder-minne, boblelagre, CD-ROM, etc.
Programinstruksjonene kan lagres i minnet i et datasystem (eller i minnene i et sett av datasystemer). En prosessor i datasystemet kan være innrettet for å lese og eksekvere program instruksjonene fra minnet og med det utføre fremgangsmåte-utførelsen(e) eller én eller flere deler av disse.
Programinstruksjonene (eller delmengder av programinstruksjonene) kan også bli sendt over hvilke som helst av forskjellige tilgjengelige overføringsmedier, f.eks. et datanettverk.
US-patentsøknad 10/653,829, innlevert den 3. september 2003, med tittel: "Method and System for Scenario and Case Decision Management", av oppfinnere: Cullick, Narayanan og Wilson, er blitt publisert som US 2004/0220790 A1 og angir den nærmeste teknikk.
KORT BESKRIVELSE AV FIGURENE
Foreliggende oppfinnelse vil forstås bedre når den detaljerte beskrivelsen gitt her leses sammen med de vedlagte figurene. Figur 1 illustrerer ett sett av utførelsesformer av moduler i en klientapplikasjon og en prosessflyttjener. Figur 2 illustrerer ett sett av utførelsesformer av en prosessflyt innrettet for å utføre en optimeringsanalyse for avgjørelser vedrørende flere realverdier i nærvær av forskjellige underliggende usikkerheter (som modelleres av usikkerhetsvariabler). Figur 3 illustrerer ett sett av utførelsesformer av optimeringsenheten 210 i figur 2. Figur 4 illustrerer ett sett av utførelsesformer av evalueringsprosessen 220 i figur 2. Figur 5 illustrerer ett sett av utførelsesformer av en fremgangsmåte for å optimere avgjørelser vedrørende flere realverdier. Figur 6 illustrerer ett sett av utførelsesformer av trinn 520 (dvs. trinnet med eksekvering av evalueringsprosessen) i figur 5. Figur 7 illustrerer et annet sett av utførelsesformer av fremgangsmåten for å optimalisere avgjørelser. Figur 8 illustrerer ett sett av utførelsesformer av trinn 730 (dvs. trinnet med kjøring av evalueringsprosessen) i figur 7, som fokuserer på det å distribuere iterasjonsdatasett til én eller flere andre datamaskiner for eksekvering på den eller de andre datamaskinene. Figur 9 illustrerer nok et annet sett av utførelsesformer av fremgangsmåten for å optimere avgjørelser. Figur 10 illustrerer ett sett av utførelsesformer av en fremgangsmåte for å analysere flere realverdier på en samordnet måte i lys av usikkerheter knyttet til realverdiene. Figur 11 illustrerer et eksempel på en hierarkisk modell med to valgnivåer. Figur 12A illustrerer ett sett av utførelsesformer av en fremgangsmåte for å optimere avgjørelser vedrørende undersøkelse, utvikling eller produksjon av realverdier så som olje- og/eller gassfelter. Figur 12B illustrerer ett sett av utførelsesformer av en fremgangsmåte for å foreta en optimering. Figur 13 illustrerer ett sett av utførelsesformer av et datasystem som kan fungere som tjenermaskin i noen utførelsesformer og som klientmaskin i noen utførelsesformer.
Selv om oppfinnelsen kan realiseres med forskjellige modifikasjoner og i alternative former er konkrete utførelsesformer av denne vist som et eksempel i figurene og beskrevet i detalj her. Det må imidlertid forstås at figurene og den detaljerte beskrivelsen til disse ikke er ment å begrense oppfinnelsen til den konkrete formen som er beskrevet, men tvert imot er meningen å dekke alle modifikasjoner, ekvivalenter og alternativer som faller innenfor oppfinnelsens ramme og idé, som defineres av de vedføyde kravene.
DETALJERT BESKRIVELSE AV FORETRUKNE UTFØRELSESFORMER
I ett sett av utførelsesformer kan et avgjørelsesstyringssystem være innrettet for å tilveiebringe mekanismer (f.eks. grafiske brukergrensesnitt) som lar en bruker: (a) bygge opp en vilkårlig prosessflyt; (b) bygge opp et sett av modeller som omfatter karakteriseringer av et antall usikkerheter og et antall avgjørelser; (c) spesifisere et operasjonsstyring-datasett som omfatter informasjon for å modifisere og styre eksekvering av en prosessflyt; (d) anrope eksekvering av en prosessflyt med hensyn til settet av modeller og operasjonsstyring-datasettet; og
(e) analysere resultatene av prosesseksekveringen.
En prosessflyt er et sammenkoblet sett av algoritmer for å løse et problem. Avgjørelsesstyringssystemet kan tilveiebringe et grafisk brukergrensesnitt som lar brukeren velge, importere eller bygge opp algoritmer, og koble sammen algoritmene for å danne en prosessflyt.
En prosessflyt kan være innrettet slik at den omfatter én eller flere beregningssløyfer. Sløyfene kan være nestet. Sløyfene i en prosessflyt kan tjene til hvilke som helst av forskjellige formål. For eksempel kan en prosessflyt omfatte en sløyfe for å utføre en optimering på rommet som svarer til et antall variabler. Variabler som gjennomgår optimering er her referert til som avgjørelsesvariabler. Som et annet eksempel kan en prosessflyt omfatte en sløyfe for å undersøke innvirkningen av variasjon i et rom som svarer til et antall variabler som representerer usikkerheter. Variabler som representerer usikkerheter er her referert til som usikkerhetsvariabler.
En sløyfe kan omfatte en iterator, en algoritme (eller mer generelt en samling av algoritmer) og eventuelt en fordelingsenhet. Når en prosessflyt kjører, har iteratoren ansvar for å generere iterasjonsdatasett for respektive eksekveringer av algoritmen. Hver eksekvering av algoritmen utføres på et tilhørende av iterasjonsdatasettene. Hvert iterasjonsdatasett inneholder data som anvendes som inndata av algoritmen. En gitt eksekvering av algoritmen er her referert til som en "iterasjon". Betegnelsen "iterasjon" er imidlertid ikke ment å forutsette sekvensiell behandling av én iterasjon etter en annen. Iteratoren og fordelingsenheten kan også være innrettet for å tilrettelegge for parallelle iterasjoner. For eksempel kan iteratoren være innrettet for å generere et antall iterasjonsdatasett i forventning av et motsvarende antall iterasjoner. Fordelingsenheten kan finne frem til andre datamaskiner (eller prosessorer) som har tilgjengelig beregningskapasitet og distribuere iterasjonsdatasettene til de andre datamaskinene slik at iterasjonene kan bli utført i parallell, eller i hvert fall delvis i parallell avhengig av antallet tilgjengelige datamaskiner.
I én utførelsesform kan fordelingsenheten komprimere ett eller flere av iterasjonsdatasettene for å danne en kjørefil og overføre kjørefilen til én av de fjerne datamaskinene (som har tilgjengelig beregningskapasitet). Den fjerne datamaskinen kan dekomprimere kjørefilen for å gjenopprette iterasjonsdatasettene og eksekvere algoritmen én gang for hvert av iterasjonsdatasettene. Algoritmen kan omfatte kode som returnerer resultatene av hver eksekvering til den første datamaskinen (dvs. den
datamaskinen som fordelingsenheten kjører på) for lagring.
Som angitt over kan kjørefilen omfatte komprimerte iterasjonsdatasett. Dersom en fjerndatamaskin ikke allerede har en kopi av den eksekverbare koden for algoritmen, kan fordelingsenheten komprimere en kopi av den eksekverbare koden og innlemme den komprimerte koden i kjørefilen.
Som angitt over er en prosessflyt et sammenkoblet sett av algoritmer for å løse et problem. Algoritmene jobber på datastrukturer. Forskjellige typer algoritmer jobber på forskjellige typer datastrukturer. For eksempel jobber en reservoar-strømningssimulator innrettet for å predikere produksjonsmengde av olje, gass og vann på et annet sett av datastrukturer enn en økonomisk algoritme innrettet for å predikere økonomiske inntekter. Avgjørelsesstyringssystemet kan tilveiebringe et grensesnitt som brukeren kan anvende for å spesifisere kildelagringsstedene (f.eks. filbaner i et nettverk) for filer og/eller databaser som inneholder datastrukturene. Videre kan avgjørelsesstyringssystemet anrope verktøy som lar brukeren opprette og modifisere datastrukturer.
Hver datastruktur omfatter et sett av én eller flere dataverdier. Noen av dataverdiene i en datastruktur kan imidlertid representere parametre eller størrelser som er uvisse. Følgelig kan avgjørelsesstyringssystemet tilveiebringe en mekanisme som lar brukeren velge en dataverdi i en datastruktur og forfremme dataverdien til en usikkerhetsvariabel ved å forsyne et sett av oppnåelige verdier for usikkerhetsvariabelen og en sannsynlighetsfordeling for usikkerhetsvariabelen. (Den opprinnelige dataverdien kan være innlemmet som default som én av verdiene i settet av oppnåelige verdier for usikkerhetsvariabelen.) Et hvilket som helst antall dataverdier i et hvilket som helst antall datastrukturer kan forfremmes til usikkerhetsvariabler på denne måten.
Videre kan en dataverdi i en datastruktur representere ett mulig utfall av en avgjørelse. Brukeren kan ønske å betrakte andre mulige utfall av avgjørelsen. Følgelig kan avgjørelsesstyringssystemet tilveiebringe en mekanisme som lar brukeren velge en dataverdi i en datastruktur og forfremme dataverdien til en avgjørelsesvariabel ved å forsyne et sett av oppnåelige verdier som representerer mulige utfall av avgjørelsen. (For eksempel kan antallet brønner som skal bores på et gitt felt være lik et hvilket som helst heltall fra og med A til og med B. Som et annet eksempel kan kapasiteten til en gitt pumpe ha en hvilken som helst verdi i området fra X til Y kubikkmeter i minuttet). Den opprinnelige dataverdien kan være innlemmet som default som ett av elementene i settet av oppnåelige verdier. Et hvilket som helst antall dataverdier i et hvilket som helst antall datastrukturer kan forfremmes til avgjørelsesvariabler på denne måten.
Settet av oppnåelige verdier for en avgjørelsesvariabel eller en usikkerhetsvariabel kan være et endelig sett (f.eks. et endelig sett av brukerspesifiserte numeriske verdier) eller et uendelig sett (f.eks. et intervall langs den reelle tallinjen eller et område i et n-dimensjonalt euklidsk rom, der n er et positivt heltall).
Brukeren kan spesifisere sannsynlighetsfordelingen for en usikkerhetsvariabel på forskjellige måter. Dersom usikkerhetsvariabelen har et kontinuerlig sett av oppnåelige verdier, kan avgjørelsesstyringssystemet la brukeren spesifisere en sannsynlighetstetthetsfunksjon (PDF) ved å velge en type PDF (så som normal-fordeling, uniform fordeling, trekantfordeling, etc.) og spesifisere parametre som definerer en spesifikk PDF innenfor den valgte typen. Dersom usikkerhetsvariabelen har et endelig sett av oppnåelige verdier, kan avgjørelsesstyringssystemet la brukeren mate inn sannsynlighetsverdier (eller numeriske verdier som så kan bli normalisert til sannsynlighetsverdier) for de mulige verdiene for usikkerhetsvariabelen. Avgjørelsesstyringssystemet kan la brukeren kvalitativt og kvantitativt tilpasse en PDF til et eksisterende sett av verdier for usikkerhetsvariabelen (eventuelt fra tilsvarende tilfeller).
Det vil kunne finnes to eller flere datastrukturer som alle kan bli forsynt som innmating til en gitt algoritme (eller et gitt sett av algoritmer). Brukeren kan være usikker på hvilken av de to eller flere datastrukturene han eller hun skal anvende. For eksempel kan det finnes to geocellulære modeller for det samme reservoaret, og det kan være uklart hvilken modell som gir den beste representasjonen av det fysiske reservoaret. Følgelig kan brukeren ønske å sette opp en prosessflyt som eksekverer en algoritme et antall ganger, hver gang ved anvendelse av en tilfeldig valgt av de to eller flere datastrukturene. Avgjørelsesstyringssystemet kan således tilveiebringe en mekanisme som lar brukeren opprette en usikkerhetsvariabel hvis oppnåelige verdier henholdsvis svarer til de to eller flere datastrukturene. Brukeren kan tilordne sannsynlighetsverdier til de to eller flere mulige verdiene. Hver sannsynlighetsverdi representerer sannsynligheten for at den tilhørende datastrukturen vil bli valgt i en hvilken som helst gitt realisering av usikkerhetsvariabelen. Brukeren kan velge å konstruere et hvilket som helst antall usikkerhetsvariabler av denne typen. Et sett av datastrukturer som er avbildet til de oppnåelige verdier for en usikkerhetsvariabel på denne måten sies å være "tilordnet usikkerhetsvariabelen".
Det vil også kunne finnes to eller flere datastrukturer som representerer alternative utfall av en avgjørelse. For eksempel kan det finnes to eller flere datastrukturer som alle representerer en mulig realisering for brønnposisjoner og rørforbindelser til behandlingsanlegg. Følgelig kan avgjørelsesstyringssystemet tilveiebringe en mekanisme som lar brukeren opprette en avgjørelsesvariabel med oppnåelige verdier som henholdsvis svarer til de to eller flere datastrukturene. Et sett av datastrukturer som er avbildet til de oppnåelige verdiene for en avgjørelses-variabel på denne måten sies å være "tilordnet avgjørelsesvariabelen".
Følgelig lar avgjørelsesstyringssystemet brukeren:
(1) spesifisere kildelagringssteder for datastrukturer, opprette datastrukturer og modifisere datastrukturer, (2) forfremme dataverdier i datastrukturer til usikkerhetsvariabler og avgjørelsesvariabler; (3) tilordne datastrukturer til usikkerhetsvariabler;
(4) tilordne datastrukturer til avgjørelsesvariabler.
Noen av datastrukturene kan kalles modeller siden de beskriver (eller karakteriserer) aktuelle systemer. For eksempel kan datastrukturene omfatte geocellulære reservoarmodeller, brønnplanmodeller, etc. Objektene som oppnås etter operasjonene (2), (3) og (4) er også referert til her som modeller.
Avgjørelsesstyringssystemet kan innrettes for å støtte bruk av sterkt rigorøse fysiske reservoarmodeller, brønnmodeller, produksjonsstrømningsmodeller og økonomiske modeller.
Noen av usikkerhetsvariablene kan være innbyrdes forbundet. Følgelig lar avgjørelsesstyringssystemet brukeren spesifisere korrelasjoner mellom par av usikkerhetsvariabler. For eksempel kan brukeren velge et par av usikkerhetsvariabler og mate inn en korrelasjonskoeffisient for å spesifisere korrelasjonen mellom paret av usikkerhetsvariabler. I noen utførelsesformer kan brukeren velge en gruppe av to eller flere usikkerhetsvariabler og mate inn en korrelasjonsmatrise for gruppen. Når en prosessflyt eksekveres, blir usikkerhetsvariablene instantiert på en måte som tar hensyn til de brukerspesifiserte korrelasjonene.
Noen av usikkerhetsvariablene kan ha funksjonsavhengigheter mellom seg, f.eks. funksjonsavhengigheter på formen Y=f(X), Y=f(Xi,X2), Y=f(Xi,X2,X3), osv., der X, Xi, X2, X3og Y er usikkerhetsvariabler. Følgelig kan avgjørelsesstyringssystemet tilveiebringe et brukergrensesnitt som lar brukeren spesifisere slike funksjonsavhengigheter. Hvilke som helst av en rekke forskjellige funksjoner (omfattende lineære og ikke-lineære funksjoner) kan være støttet. I noen utførelsesformer lar brukergrensesnittet brukeren konstruere en vilkårlig algebraisk funksjon av usikkerhetsvariablene. Når en prosessflyt eksekveres, blir usikkerhetsvariablene instantiert på en måte som tar hensyn til disse funksjonsavhengighetene. Dersom for eksempel Y=f(X), kan Y instantieres ved først å instantiere X og deretter evaluere funksjonen f på instansen av X. Tilsvarende kan avgjørelsesvariablene ha funksjonsavhengigheter mellom seg, f.eks. funksjonsavhengigheter på formen Y=f(X), Y=f(Xi,X2), Y=f(Xi,X2,X3), osv., der X, X1, X2, X3og Y er avgjørelsesvariabler. Følgelig kan samme brukergrensesnitt (eller et annet brukergrensesnitt) anvendes for å spesifisere slike funksjonsavhengigheter mellom avgjørelsesvariabler.
Noen av avgjørelsesvariablene eller funksjonskombinasjoner av avgjørelses-variabler kan ha begrensninger. Følgelig kan avgjørelsesstyringssystemet tilveiebringe et brukergrensesnitt som lar brukeren spesifisere begrensninger, så som:
Y .ulik. X,
Y .ulik. f(X),
Y.ulik. f(Xi,X2),
Y.ulik. f(Xi,X2,X3),
etc,
på avgjørelsesvariabler så som X, X1, X2, X3og Y, der .ulik. kan være en hvilken som helst av ulikhetsoperatorene < , < , > eller >. Hvilke som helst av en rekke forskjellige funksjoner f (omfattende lineære og ikke-lineære funksjoner) kan være støttet. I noen utførelsesformer lar brukergrensesnittet brukeren konstruere en vilkårlig algebraisk
funksjon av avgjørelsesvariablene. Når en prosessflyt eksekverer, utføres en optimering som tar hensyn til de brukerspesifiserte begrensningene på avgjørelses-variablene.
Avgjørelsesstyringssystemet kan også tilveiebringe et brukergrensesnitt som brukeren kan anvende for å spesifisere et operasjonsstyringsdatasett. Et operasjonsstyringsdatasett inneholder informasjon for å styre og kontrollere eksekveringen av en prosessflyt. For eksempel kan et operasjonsstyringsdatasett omfatte informasjon som: en instantieringsmodus for usikkerhetsvariablene i prosessflyten, og antall iterasjoner for respektive sløyfer i prosessflyten.
I en Monte Carlo-instantieringsmodus kan usikkerhetsvariablene (eller en delmengde av usikkerhetsvariablene) bli instantiert på tilfeldig måte ved anvendelse av generatorer for tilfeldige tall. I en Latin hypercube-instantieringsmodus kan usikkerhetsvariablene (eller en delmengde av usikkerhetsvariablene) bli instantiert ved anvendelse av den velkjente Latin hypercube-metoden. I en statistisk eller eksperimentelt basert instantieringsmodus kan usikkerhetsvariablene (eller en delmengde av usikkerhetsvariablene) bli instantiert ved anvendelse av en hvilken som helst av forskjellige velkjente statistiske eller eksperimentelle metoder.
Over tid brukeren kan konstruere et antall prosessflyter, et antall sett av modeller og et antall operasjonsstyringsdatasett. Avgjørelsesstyringssystemet kan la brukeren velge en prosessflyt, et sett av modeller og et operasjonsstyringsdatasett, og anrope eksekvering av prosessflyten i henhold til operasjonsstyringsdatasettet og settet av modeller. Avgjørelsesstyringssystemet kan også gi brukeren mer styring over hvordan en prosessflyt kan bli eksekvert. For eksempel kan i noen utførelses-former en prosessflyt bli eksekvert slik at den utfører bestemte iterasjoner som kan ha feilet av forskjellige grunner i tidligere eksekveringer av prosessflyten. I andre utførelsesformer kan ytterligere iterasjoner bli utført på prosessflyter som har blitt eksekvert tidligere.
Avgjørelsesstyringssystemet kan tilveiebringe forskjellige verktøy som lar brukeren bygge opp en rekke forskjellige typer prosessflyter. For eksempel kan i noen utførelsesformer avgjørelsesstyringsprogramvaren omfatte en avgjørelses-prosessflyt-bygger som er innrettet for å automatisere prosessen med å bygge opp en prosessflyt for optimering av avgjørelser knyttet til utnyttelse av et sett av realverdier (f.eks. et sett av olje- og gassfelter) på en måte som tar hensyn til forskjellige usikkerheter knyttet til settet av realverdier.
Klient/ tiener- arkitektur
Avgjørelsesstyringssystemet kan realiseres ved å kjøre avgjørelsesstyrings-programvare på et sett av én eller flere datamaskiner.
Avgjørelsesstyringsprogramvaren kan være delt inn i en klientapplikasjon og en tjenerapplikasjon og anvende en kommunikasjonsprotokoll mellom klientapplikasjonen og tjenerapplikasjonen. For eksempel kan kommunikasjonsprotokollen være realisert ved hjelp av RMI (Remote Method Invocation) eller WEB Services.
Klientapplikasjonen kan kjøre på en klientmaskin og tjenerapplikasjonen kan kjøre på en tjenermaskin. Imidlertid er det ikke noe krav om at klientapplikasjonen og tjenerapplikasjonen må kjøre på separate datamaskiner. Dersom en datamaskin har tilstrekkelig databehandlingskapasitet kan både klientapplikasjonen og tjenerapplikasjonen kjøre på denne datamaskinen.
Tjenerapplikasjonen kan være innrettet for å anvende fordelingsenheter. En fordelingsenhet er et program (eller system av programmer) innrettet for å distribuere selvstendige grupper av beregninger (f.eks. iterasjoner i en større jobb) til andre prosessorer (eller datamaskiner) for eksekvering på disse andre prosessorene. De andre prosessorene kan være distribuert over et nettverk så som et lokalt nettverk, et regionalt nettverk eller Internett. De andre prosessorene kan også være del av en minnedelingsmaskinvareenhet så som en klynge, og kan anvendes som én enkelt enhet (f.eks. i et parallellberegningsmiljø).
I noen utførelsesformer kan hovedmodulene i klientapplikasjonen og tjenerapplikasjonen (dvs. prosessflyt-tjeneren) være som vist i figur 1.
Klient- og tjenerapplikasjoner
Klientapplikasjonen 100 kan omfatte en prosessflytbygger 107, en modellstyrer 102, en prosessflytkjører 109 og en utdataanalysator 112.
Prosessflytbyggeren 107 tilveiebringer et brukergrensesnitt som brukeren anvender for å sette opp et problem og opprette en prosessflyt for å løse det.
Modellstyreren 102 tilveiebringer et grensesnitt som brukeren kan anvende for å opprette, bygge og modifisere modeller som omfatter avgjørelsesvariabler og usikkerhetsvariabler.
Prosessflytkjøreren 109 anvendes for å iverksette eksekvering av prosessflyter. Som reaksjon på en brukerforespørsel om eksekvering av en prosessflyt sender prosessflytkjøreren prosessflyten sammen med et kompatibelt sett av modeller og et kompatibelt operasjonsstyringsdatasett til prosessflyt-tjeneren slik at prosessflyten kan bli eksekvert. Prosessflytkjøreren kan også motta statusinforma sjon fra prosessflyt-tjeneren vedrørende prosessflyter som eksekveres og ventende prosessflyter, og vise statusinformasjonen for brukeren. Prosessflyt-tjeneren kan sende resultatene av eksekvering av en prosessflyt tilbake til prosessflytkjøreren og/eller lagre resultatene i en database.
Prosessflyt-tjeneren kan omfatte et fjern-AP1160 for å kommunisere med klientapplikasjoner, så som klientapplikasjonen 160.
Utdataanalysatoren 112 laren bruker utføre dataanalyse på resultatene av eksekvering av en prosessflyt.
Prosessflyt-tjeneren 155 kan eksekvere prosessflyter (eller kommandere eksekvering av prosessflyter) som er sendt inn som jobber fra klientapplikasjonen. Prosessflyt-tjeneren 155 kan forsyne statusinformasjon om jobbene som utføres til prosessflytkjøreren. Prosessflyt-tjeneren tillater også kansellering av jobber.
Klientapplikasjonsmoduler
Som angitt over kan klientapplikasjonen være delt inn i et antall moduler som antydet i figur 1. Hver modul kan ha et tilhørende API (applikasjonsprogrammerings-grensesnitt) som de forskjellige modulene kommuniserer gjennom. Følgelig kan klientapplikasjonen omfatte et modellstyrer-AP1103, et avgjørelsesprosessflytbygger-API 106, et prosessflytbygger-API 108, et prosessflytkjører-API 110 og et utdataanalysator-API 113.
I noen utførelsesformer er disse API'ene de eneste tillatte grensesnittene mellom modulene, slik at modulene kan utvikles uavhengig.
Hver av modulene som krever kommunikasjon med eksterne applikasjoner kan også ha et fjern-API. I noen utførelsesformer kan således klientapplikasjonen omfatte et modellstyrer-fjern-AP1104 og et prosessflytkjører-fjern-AP1111.
Modellstyrer
Modellstyreren 102 kan tilveiebringe et grensesnitt som lar brukeren importere, opprette, redigere og vedlikeholde modeller, f.eks. modeller som omfatter usikkerhetsvariabler og avgjørelsesvariabler som beskrevet over. Modellstyreren kan også opprettholde modellene i prosjekter eller andre organiseringer spesifisert av brukeren.
Typene datastrukturer som skal innlemmes i modellene bygget for en gitt prosessflyt vil avhenge av algoritmene inneholdt i prosessflyten. Følgelig kan modellstyreren kommunisere med prosessflytbyggeren for å sikre at brukeren forsyner datastrukturer som er i overensstemmelse med algoritmene i den aktuelle prosessflyten. For eksempel kan modellstyreren motta fra prosessflytbyggeren en liste av algoritmer i prosessflyten. Modellstyreren kan da konsentere seg om å spørre brukeren om hvilke typer datastrukturer som er passende for de listede algoritmene. Motsatt vil modellene som velges av brukeren kunne bestemme typen prosessflyt som kan bli eksekvert. Dersom brukeren bygger opp og forsyner en datastruktur, kan brukeren således bli bedt om å velge fra kun de prosessflytene som er i stand til å eksekvere denne modellen.
I noen utførelsesformer kan modellstyreren være innrettet for å anrope velkjente programvareverktøy for å opprette og redigere bestemte typer modeller. For eksempel kan hver modell ha en spesifikk type, og til hver type kan det være registrert et spesifikt verktøy som muliggjør opprettelse, redigering, visning, etc. av denne typen. Denne arkitekturen kan være tilsvarende JavaBean Property Editor, som gjør det mulig å registerere et individuelt tillpasset GUI (grafisk brukergrensesnitt) mot en JavaBean. Videre kan denne arkitekturen anvende noen av konseptene fra JavaBeans Activation Framework.
Ettersom datastrukturene som forsynes av brukeren ikke nødvendigvis omfatter avgjørelsesvariabler eller usikkerhetsvariabler kan modellstyreren tilveiebringe generiske mekanismer for å forfremme dataverdier i datastrukturer til avgjørelsesvariabler og usikkerhetsvariabler med datastrukturer og for å tilordne datastrukturer til avgjørelsesvariabler og usikkerhetsvariabler.
Modellstyreren kan tjene som en prosesstyrer som gjør det mulig å klone en eksisterende modell og endre delkomponenter.
Prosessflytbygger
Algoritmer er byggeblokkene i prosessflyter. En algoritme kan betraktes som en prosess som tar innmatinger og genererer utmatinger. En prosessflyt er et sett av algoritmer som er koblet sammen for å utføre et bestemt oppgave. Det bemerkes at en prosessflyt selv om ønsket kan omgjøres til en algoritme.
Prosessflytbyggeren 107 tilveiebringer et brukergrensesnitt som brukeren kan anvende for å bygge opp vilkårlige prosessflyter. For eksempel kan prosessflytbyggeren la brukeren velge algoritmer fra et sett av tilgjengelige algoritmer og koble sammen algoritmene (dvs. koble utmatingene fra algoritmer til innmatingene til andre algoritmer) for å skape en prosessflyt. Settet av tilgjengelige algoritmer kan omfatte en rekke forskjellige algoritmer som er nyttige for en som planlegger undersøkelse, utvikling og/eller drift av et sett av felter, f.eks. algoritmer så som geologiske eller geostatististiske simulatorer, materialbalansesimulatorer, reservoarstrømnings-simulatorer, brønnproduksjonsrørsimulatorer, prosessimulatorer, rørledningsnett-simulatorer og økonomiske algoritmer. I noen utførelsesformer kan simulatorene konfigureres ved hjelp av ett eller flere kommersielle eller fritt tilgjengelige (open souce) verktøy (f.eks. Landmarks VIP reservoarsimulator eller en annen endelig differanse-basert, endelig element-basert eller strømlinjebasert simulator, Petex GAP overflaterørledningssimulator, Microsofts Excel, Petex MBAL materialbalansesimulator, GSLIB geostatistikkgenerator).
Videre kan prosessflytbyggeren la brukeren bygge opp algoritmer fra bunn av eller importere programmer som skal anvendes som algoritmer. I noen utførelses-former kan dataflytbyggeren la brukeren spesifisere en vilkårlig algebraisk funksjon som en algoritme eller importere et nevralt nettverk for bruk som algoritme.
I ett sett av utførelsesformer kan prosessflytbyggeren, når den danner rettede koblinger mellom algoritmer, pålegge begrensninger på datatypen. For eksempel kan prosessflytbyggeren tillate at en heltallsutmating fra én algoritme kobles til en flyttallsinnmating til en annen algoritme, men ikke tillate at en flyttallsutmating kobles til en
heltallsinnmating.
Prosessflytbyggeren kan innlemme en søkemotor for å finne algoritmer. Søkemotoren kan støtte søk på algoritmekategori (så som "produksjonsprofil-algoritme"), typen innmating, typen utmating, etc.
I noen utførelsesformer kan prosessflytbyggeren konfigureres ved hjelp av ett eller flere kommersielle verktøy (f.eks. Landmarks DecisionSpace Decision Management System).
Etter at de er opprettet, kan algoritmer og prosessflyter bli registrert hos modellstyreren som: tillatt anvendt av brukeren;
tillatt anvendt av prosjektmedlemmer;
tillatt anvendt innenfor bedriften;
klar for ekstern distribusjon til kunder.
Prosessflytkjører
Prosessflytkjøreren 109 kan tilveiebringe et brukergrensesnitt som lar brukeren anrope eksekvering av prosessflyter. Når brukeren gir en kommando om å anrope eksekvering av en prosessflyt med hensyn til et sett av modeller og et operasjonsstyringsdatasett, bygger prosessflytkjøreren opp en jobb som omfatter prosessflyten, settet av modeller og operasjonsstyringsdatasettet, og sender jobben til prosessflyt-tjeneren. Prosessflyt-tjeneren kan generere en unik identifikator for jobben og sende jobb-identifikatoren til prosessflytkjøreren. Prosessflytkjøreren kan registrere jobbidentifikatoren.
I tillegg til å få prosessflyter fra prosessflytbyggeren og modeller fra modellstyreren kan prosessflytkjøreren også laste beskrivelsen av en prosessflyt og dens tilhørende modeller fra et sett av inndatafiler (f.eks. XML-filer) spesifisert av brukeren.
Prosessflytkjøreren kan vise en liste av jobber omfattende jobber som kjører (omfattende deres gjeldende status) og jobber som venter. Prosessflytkjører-grensesnittet lar brukeren kansellere jobber. Videre kan prosessflytkjører-grensesnittet gi brukeren tilgang til eventuelle resultater som allerede er tilgjengelige for en jobb. Resultatene kan bli vist gjennom utdataanalysatorens brukergrensesnitt.
Prosessflytkjøreren kan innrettes for å sende jobber til hvilke som helst av flere prosessflyt-tjenere. Prosessflyt-tjenerne kan kjøre på et antall datamaskiner over et nettverk. Prosessflytkjøreren kan la klienten bestemme hvilken prosessflyttjener en jobb skal sendes til. Forskjellige prosessflyt-tjenere kan tilpasses individuelt til å kjøre forskjellige typer jobber.
Utdataanalysator
Hovedformålet med utdataanalysatoren 112 kan være å tilveiebringe en mekanisme som forklarer for brukeren utdataene oppnådd etter kjøring av en jobb (dvs. en prosessflyt med hensyn til et spesifisert sett av modeller og operasjonsstyringsdatasett). Utdataene kan være komplekse siden prosessflyten kan ha en sammensatt struktur, f.eks. en struktur med en ytre sløyfe og flere indre sløyfer.
Utdataanalysatoren kan innrettes for å la brukeren undersøke utdataene fra en fullført prosessflyt og vise resultater fra en prosessflyt som fortsatt kjører på prosessflyt-tjeneren.
Utdataanalysatoren kan ha tilgang til et fullt sett av dataanalyseverktøy, og kan være i stand til å formatere utdataene slik at de kan analyseres i et uavhengig verktøy (så som Microsoft Excel).
Resultatberegningsgrensesnitt
Klientapplikasjonen kan også omfatte et resultatberegningsgrensesnitt (ikke vist i figurene). Resultatberegningsgrensesnittet lar brukeren spesifisere spesialberegninger som skal integreres i en prosessflyt. Spesialberegningene kan være nyttige når utmatingen fra en første algoritme (eller et første sett av algoritmer) ikke er akkurat den innmatingen som kreves av en andre algoritme (eller et andre sett av algoritmer), men kan anvendes for å beregne innmatingen som kreves av den andre algoritmen. Resultatberegningsgrensesnittet lar brukeren: velge én eller flere utparametre fra et første sett av én eller flere algoritmer i en prosessflyt, og
spesifisere en funksjon (f.eks. en vilkårlig algebraisk funksjon) av den ene eller de flere utparametrene;
spesifisere en innparameter til en andre algoritme (som er forskjellig fra den ene eller de flere algoritmene i det første settet) som skal motta resultatet fra evaluering av funksjonen på de valgte utparametrene.
Prosessflytbyggeren eller avgjørelsesprosessflytbyggeren kan anvende denne informasjonen for å generere en resultatberegningsalgoritme som implementerer den spesifiserte funksjonen, og integrere resultatberegnings-algoritmen i prosessflyten mellom det første algoritmesettet og den andre algoritmen. Brukeren kan spesifisere et hvilket som helst ønsket antall spesialberegninger som skal utføres (under eksekvering av prosessflyten) mellom algoritmer eller sett av algoritmer i en prosessflyt.
Prosessflvt- tiener
Prosessflyt-tjeneren 155 kan være delt inn i et antall separate moduler, f.eks. som antydet i figur 1. Prosessflyt-tjeneren kan være innrettet for å utføre jobber. En jobb omfatter en prosessflyt og et sett av inndata.
Avhengig av hvor mange jobber prosessflyt-tjeneren er i stand til å kjøre samtidig kan prosessflyt-tjeneren legge ventende kjøringer i kø. Prosessflyt-tjeneren kan ha mulighet til å kansellere jobber eller endre jobbers prioritet.
Et enkelt brukergrensesnitt kan være tilveiebragt mot prosessflyt-tjeneren (f.eks. i form av HTML).
Prosessflyt-tjeneren kan typisk kjøre på en annen datamaskin enn klientapplikasjonen. Prosessflyt-tjeneren kan imidlertid også kjøre på samme datamaskin som klientapplikasjonen.
Prosessflyt-tjeneren snakker med prosessflytkjøreren for å informere prosess-flytkjøreren om status for jobber, etc.
Kommunikasjonen mellom prosessflytkjøreren og prosessflyt-tjeneren kan være basert på hvilke som helst av en rekke forskjellige kjente protokoller, så som RMI eller WEB Services.
Algoritmer, modeller, iteratorer og fordelingsenheter
Avgjørelsesstyringssystemet er innrettet for å eksekvere prosessflyter som omfatter et sett av sammenkoblede algoritmer. Prosessflyten kan jobbe med modeller som tar tilhørende usikkerhetsvariabler og avgjørelsesvariabler som innmating. Foreksempel kan modeller omfatte dataverdier som er forfremmet til avgjørelsesvariabler, dataverdier som er forfremmet til usikkerhetsvariabler, datastrukturer som er tilordnet avgjørelsesvariabler, datastrukturer som er tilordnet usikkerhetsvariabler eller en hvilken som helst kombinasjon av dette.
En prosessflyt kan omfatte sløyfer innrettet for iterativ eksekvering av algoritmesett. Fordelingsenheter kan anvendes for å fordele iterasjoner til flere datamaskiner for parallell eksekvering.
En default fordelingsenhet som eksekverer alle iterasjonene i sin tilhørende sløyfe på den lokale vertsmaskinen, kan være tilveiebragt.
Et nettverk-fordelingsenhet som søker etter tilgjengelige datamaskiner i et nettverk og fordeler iterasjoner til de tilgjengelige datamaskinene, kan også være tilveiebragt.
En klynge-fordelingsenhet som fordeler iterasjoner til en klynge av datamaskiner, kan også være tilveiebragt.
Antallet modeller, spesielt modeller lagret i minne, og antallet algoritmer som virker på modellene vil trolig øke med tiden. Følgelig kan avgjørelsesstyrings-systemet innrettes for å muliggjøre innplugging av nye modeller og algoritmer etter behov.
I noen utførelsesformer kan avgjørelsesstyringssystemet ha et kommando-type grensesnitt. Brukerinnmatinger som gis gjennom kommandogrensesnittet kan bli registrert og lagret. Dette gjør det mulig å gjenta et sett av vekselvirkninger om ønsket.
Avgjørelsesprosessflvtbygger
Klientapplikasjonen i avgjørelsesstyringsprogramvaren kan også omfatte en avgjørelsesprosessflytbygger. Avgjørelsesprosessflytbyggeren kan tilveiebringe et brukergrensesnitt som gjør det raskere å bygge opp en prosessflyt for optimering av avgjørelser vedrørende undersøkelse, utvikling og produksjon av realverdier så som olje- og gassfelter.
I noen utførelsesformer kan avgjørelsesprosessflytbyggeren være spesielt innrettet for å gjøre det raskere å konstruere en prosessflyt som omfatter en ytre optimeringssløyfe og et sett av indre "usikkerhetsanalysesløyfer", f.eks. én indre sløyfe for hver realverdi.
Avgjørelsesprosessflytbyggeren kan tilveiebringe et grafisk brukergrensesnitt som brukeren kan anvende for å: a) spesifisere navnene på realverdier som skal analyseres; b) spesifisere en type for hver av realverdiene, f.eks. fra typer så som letefelt, utviklingsfelt og produksjonsfelt; c) spesifisere én eller flere algoritmer (f.eks. prosessimuleringsalgoritmer) som skal innlemmes i en indre sløyfe for hver realverdi; d) spesifisere kilder for datastrukturer som er i overensstemmelse med algoritmene spesifisert i (c); e) jobbe på datastrukturene for å bygge modeller for hver av realverdiene, der modellene kan omfatte usikkerhetsvariabler og/eller avgjørelsesvariabler som beskrevet over; f) spesifisere globale avgjørelsesvariabler og globale usikkerhetsvariabler; g) spesifisere funksjonsavhengigheter mellom usikkerhetsvariabler og funksjonsavhengigheter mellom avgjørelsevariabler, omfattende funksjonsavhengigheter innenfor realverdier og på tvers av realverdier; h) spesifisere korrelasjoner mellom usikkerhetsvariabler, omfattende korrelasjoner mellom usikkerhetsvariabler innenfor realverdier og på tvers av realverdier; i) spesifisere begrensninger på avgjørelsesvariablene eller funksjonskombinasjoner av avgjørelsesvariablene; j1) spesifisere én eller flere aktuelle størrelser for hver realverdi A(k), k= 1, 2, ..., Na, der hver av størrelsene representerer en funksjonskombinasjon av én eller flere av utparametrene fra algoritmene forbundet med realverdien A(k);
j2) spesifisere statistikk som skal beregnes for hver realverdi A(k), k= 1, 2, ..., Na basert på den ene eller de flere spesifiserte størrelsene for realverdien A(k);
k1) spesifisere et globalt mål S som en funksjonskombinasjon av en første delmengde av statistikkene;
k2) spesifisere én eller flere hjelpefunksjoner, der hver hjelpefunksjon er en funksjonskombinasjon av en tilhørende delmengde av statistikkene;
k3) spesifisere én eller flere begrensninger som involverer den ene eller de flere hjelpefunksjonene og/eller det globale målet;
I) velge en optimeringsenhet (dvs. fra et sett av støttede optimeringsenheter) for den ytre optimeringssløyfen;
m) velge en fordelingsenhet fra et sett av støttede fordelingsenheter;
n) spesifisere hvorvidt optimeringen skal være en maksimering eller minimering;
Avgjørelsesprosessflytbyggeren kan generere en prosessflyt med en ytre optimeringssløyfe og et sett av indre sløyfer i henhold til informasjonen spesifisert av brukeren.
Som angitt i (b) over kan typen realverdier omfatte letefelt, utviklingsfelt og operasjonelle felter. Andre typer realverdier er også tenkelig.
Som angitt i (c) over kan brukeren spesifisere én eller flere algoritmer (f.eks. prosessimuleringsalgoritmer) som skal innlemmes i en indre sløyfe for hver realverdi. Avgjørelsesprosessflytbyggeren kan motta brukerinnmating som spesifiserer en gitt realverdi som det nå skal fokuseres på, og vise en liste (eller en grafisk representasjon) av et sett av algoritmer passende for typen realverdi som betraktes, som brukeren kan velge fra. Forskjellige typer algoritmer er egnet for forskjellige realverdier.
Som angitt i (d) over kan brukeren spesifisere kilder for datastrukturer som er kompatible med algoritmene spesifisert i (c). For eksempel kan avgjørelsesprosess-flytbygger-grensesnittet være innrettet for å la brukeren spesifisere, for hver realverdi, lagringssteder i et filsystem (f.eks. baner i et datanettverk) for datafiler eller databaser som inneholder datastrukturene. Videre kan brukeren spesifisere poster (eller sett av poster) i databaser som inneholder datastrukturene.
Eksempler på datastrukturer for en realverdi omfatter:
(1) realverdiens underjordiske strukturelle oppbygning, geometri og volum; (2) realverdiens underjordiske, 3-dimensjonale (3D) fordeling av egenskaper, omfattende, men ikke begrenset til porevolum, metning av hydrokarbonolje og -gass, vannmetning, geologisk litologi, forkastninger og sprekker; (3) realverdiens fysiske posisjon i forhold til havoverflaten eller land-overflaten, og realverdiens geografiske posisjon; (4) antallet brønner og posisjonene til brønner som vil kunne bli boret i fremtiden for realverdien; (5) antallet brønner som allerede er boret for realverdien; (6) volumet av hydrokarboner knyttet til realverdien; (7) de potensielle reservene for realverdien; (8) historien av produksjon av olje, gass og vann for realverdien; (9) historien av injeksjon av gass og vann ved realverdien;
(10) typene anlegg som er knyttet til realverdien; og
(11) typen anlegg som vil kunne bli bygget i fremtiden for realverdien.
Andre eksempler på datastrukturer omfatter: reservoarmodeller, økonomiske modeller, rørledningsnettmodeller, produksjonsbehandlingsmodeller og brønnproduk-sjonsrørmodeller.
Typene datastrukturer som spesifiseres for en realverdi kan avhenge av typen algoritmer som skal anvendes for realverdien. For eksempel kan en materialbalansesimulator med analytiske eller algebraiske uttrykk anvende en "tankmodell" for en realverdi, der tankmodellen har ett enkelt sett av egenskaper som representerer hele realverdien. En reservoarstrømningssimulator med en representasjon av strømning i porøse medier basert på partielle differensialslikninger og en endelig differanseformulering kan anvende en 3-dimensjonal romlig reservoarmodell for å predikere strømning av olje, gass og vann overtid. En økonomisk algoritme kan anvende en økonomisk modell omfattende priser, skattetakster og skattemessige vurderinger for å predikere fortjeneste over tid. Avgjørelsesprosessflytbyggeren kan be brukeren mate inn datastrukturer av typer som er i overensstemmelse med algoritmene som allerede er spesifisert for realverdien i (c).
Som angitt i (e) over kan brukeren jobbe på datastrukturene for å bygge modeller for hver av realverdiene, spesielt modeller som omfatter avgjørelses-variabler og usikkerhetsvariabler. For eksempel kan brukeren: forfremme dataverdier i datastrukturer til usikkerhetsvariabler;
forfremme dataverdier i datastrukturer til avgjørelsesvariabler;
tilordne datastrukturer til usikkerhetsvariabler; og
tilordne datastrukturer til avgjørelsesvariabler.
Eksempler på avgjørelsesvariabler for realverdier omfatter:
antall brønner;
overflateposisjonen til brønner;
størrelsen til rørledninger; og
størrelsen til kompressorer;
brønntype (med mulige verdier som horisontal, vertikal eller forgrenings-brønn);
brønngeometri;
brønnboringsbane (i et reservoar forbundet med realverdien);
plattformtype (med mulige verdier som undervannsplattform og strekk-forankret plattform);
en avgjørelsesvariabel som underordner et sett av brønnsboringsplaner;
en avgjørelsesvariabel som underordner et sett av brønnkompletterings-planer;
en avgjørelsesvariabel som underordner et sett av planer for prosessanlegg.
Eksempler på usikkerhetsvariabler for realverdier omfatter:
volum av hydrokarboner;
produserbarhet av hydrokarboner;
kostnad for brønner og/eller prosessanlegg; og
priser på olje og gass.
Globale avgjørelsesvariabler er avgjørelsesvariabler som ikke er entydig knyttet til noen spesifikk realverdi. Mengden kapital som må være tilgjengelig for settet av realverdier er et eksempel på en global avgjørelsesvariabel. Globale usikkerhetsvariabler er usikkerhetsvariabler som ikke er entydig knyttet til noen spesifikk realverdi. Oljepris er et eksempel på en global usikkerhetsvariabel.
Som angitt i (g) over kan brukeren spesifisere funksjonsavhengigheter mellom usikkerhetsvariabler og funksjonsavhengigheter mellom avgjørelsesvariabler. I noen utførelsesformer kan avgjørelsesprosessflytbygger-grensesnittet være innrettet for å la brukeren: velge en usikkerhetsvariabel (fra settet Vun av usikkerhetsvariabler knyttet til det aktuelle problemet) som avhengig variabel og velge én eller flere andre usikkerhetsvariabler (fra settet Vun) som uavhengige variabler; og
spesifisere en funksjon (f.eks. en vilkårlig algebraisk funksjon) av de uavhengige variablene for å definere en funksjonsavhengighet mellom de uavhengige variablene og den avhengige variabelen.
Settet Vun av usikkerhetsvariabler knyttet til det aktuelle problemet omfatter usikkerhetsvariablene spesifisert i (e) og de globale usikkerhetsvariablene.
Videre kan avgjørelsesprosessflytbygger-grensesnittet være innrettet for å la brukeren: velge en avgjørelsesvariabel (fra settet Vdav avgjørelsesvariabler knyttet til det aktuelle problemet) som avhengig variabel og velge én eller flere andre avgjørelsesvariabler (fra settet Vd) som uavhengige variabler; og
spesifisere en funksjon (f.eks. en vilkårlig algebraisk funksjon) av de uavhengige variablene for å definere en funksjonsavhengighet mellom de uavhengige variablene og den avhengige variabelen.
Settet Vd av usikkerhetsvariabler knyttet til det aktuelle problemet kan omfatte de globale avgjørelsesvariablene og avgjørelsesvariablene spesifisert i (e).
Avgjørelsesprosessflyt-byggeren kan la brukeren spesifisere et hvilket som helst antall funksjonsavhengigheter ved gjentatt bruk av avgjørelsesprosessflyt-bygger-grensesnittet som beskrevet over. For eksempel kan brukeren spesifisere funksjonsavhengigheter på følgende former: funksjonsavhengighet mellom usikkerhetsvariabler (eller avgjørelsesvariabler) innenfor en realverdi, dvs. der den avhengige variabelen og den ene eller de flere uavhengige variablene tilhører samme realverdi;
funksjonsavhengighet mellom usikkerhetsvariabler (eller avgjørelsesvariabler) på tvers av realverdier, dvs. der den avhengige variabelen og den ene eller de flere uavhengige variablene tilhører to eller flere realverdier; og
funksjonsavhengighet mellom usikkerhetsvariabler (eller avgjørelsesvariabler) der den avhengige variabelen og/eller én eller flere av de uavhengige variablene er globale variabler.
En "algebraisk funksjon" er en funksjon som defineres av et uttrykk som kun omfatter de algebraiske operasjonene addisjon, subtraksjon, multiplikasjon, divisjon, heltalls-(eller rasjonale tall)-røtter og heltalls-(eller rasjonale tall)-potenser av funksjonsargumentene.
Som angitt i (h) over kan brukeren spesifisere korrelasjoner mellom usikkerhetsvariabler. I ett sett av utførelsesformer kan avgjørelsesprosessflytbygger-grensesnittet være innrettet for å la brukeren: velge et par av usikkerhetsvariabler fra settet Vun av usikkerhetsvariabler, og
mate inn en korrelasjonskoeffisient for å spesifisere korrelasjonen mellom paret av usikkerhetsvariabler.
Brukeren kan spesifisere et hvilket som helst antall slike korrelasjoner ved gjentatt bruk av avgjørelsesprosessflytbygger-grensesnittet som beskrevet over. For eksempel kan brukeren spesifisere korrelasjoner mellom par av usikkerhetsvariabler på følgende former: par av usikkerhetsvariabler innenfor en realverdi (dvs. tilknyttet samme realverdi);
par av usikkerhetsvariabler på tvers av realverdier (dvs. der den ene variabelen i paret tilhører én realverdi og den andre variabelen i paret tilhører en annen realverdi);
par av usikkerhetsvariabler der den ene eller begge er globale usikkerhetsvariabler.
I noen utførelsesformer kan brukeren velge en gruppe av to eller flere usikkerhetsvariabler, og mate inn en korrelasjonsmatrise for gruppen.
Når en prosessflyt eksekveres, blir usikkerhetsvariablene instantiert på en måte som tar hensyn til de brukerspesifiserte korrelasjonene.
Som angitt i (i) over kan brukeren spesifisere begrensninger på avgjørelses-variablene eller på funksjonskombinasjoner av avgjørelsesvariablene. I ett sett av utførelsesformer kan avgjørelsesprosessflytbygger-grensesnittet være innrettet for å la brukeren: velge en første avgjørelsesvariabel Y fra settet Vdav avgjørelsesvariabler; velge et sett av én eller flere avgjørelsesvariabler Xi, X2, ..., Xn (forskjellige fra Y) fra settet Vdav avgjørelsesvariabler, der N er et positivt heltall; eventuelt spesifisere en funksjon f (f.eks. en vilkårlig algebraisk funksjon) av den ene eller de flere avgjørelsesvariablene X1, X2, ..., Xn, og velge en ulikhetsoperator angitt som ".ulik." fra settet {<,<,> eller >} for å definere en begrensning på formen:
Videre kan avgjørelsesprosessflytbygger-grensesnittet være innrettet for å la brukeren spesifisere begrensninger på formen: Y .ulik. C, der C er en brukerspesifisert konstant.
Settet Vdav avgjørelsesvariabler kan omfatte de globale avgjørelses-variablene og avgjørelsesvariablene spesifisert i (e). Hvilke som helst av en rekke forskjellige funksjoner f (omfattende lineære og ikke-lineære funksjoner) kan være støttet. I noen utførelsesformer lar avgjørelsesprosessflytbygger-grensesnittet brukeren konstruere en vilkårlig algebraisk funksjon av de valgte avgjørelses-variablene X1, X2, ..., Xn.
Avgjørelsesprosessflytbygger-grensesnittet kan være innrettet for å la brukeren spesifisere et hvilket som helst antall begrensninger på avgjørelses-variablene ved gjentatt bruk av avgjørelsesprosessflytbygger-grensesnittet som beskrevet over. For eksempel kan brukeren spesifisere begrensninger med følgende former: begrensninger på avgjørelsesvariabler innenfor en realverdi, dvs. der avgjørelsesvariablene omfattet av begrensningen alle er knyttet til samme realverdi;
begrensninger på avgjørelsesvariabler på tvers av realverdier, dvs. der avgjørelsesvariablene omfattet av begrensningen er knyttet til to eller flere realverdier;
begrensninger på avgjørelsesvariabler som omfatter én eller flere globale avgjørelsesvariabler.
Når en prosessflyt eksekveres, utføres en optimering som tar hensyn til de brukerspesifiserte begrensningene.
Som angitt i (j1) over kan brukeren spesifisere én eller flere aktuelle størrelser for hver realverdi A(k), k= 1, 2, ..., Na. I ett sett av utførelsesformer kan brukeren spesifisere en størrelse for realverdien A(k) ved å: velge én eller flere utparametre fra algoritmene knyttet til realverdi A(k) og/eller velge én eller flere størrelser som tidligere er spesifisert for realverdien A(k); og
spesifisere en funksjon (f.eks. en vilkårlig algebraisk funksjon) av de valgte utparametrene og/eller tidligere spesifiserte størrelser.
Et hvilket som helst antall størrelser kan spesifiseres for hver realverdi ved anvendelse av denne prosessen.
Videre kan avgjørelsesprosessflytbygger-grensesnittet vise en liste av mye brukte størrelser egnet for den typen algoritmer som er knyttet til realverdien A(k) som betraktes. Brukeren kan spesifisere aktuelle størrelser ved å velge størrelser fra listen.
Eksempler på aktuelle størrelser for en realverdi omfatter størrelser så som netto nåtidsverdi, totale reserver, totalt produsert olje, etc.
Som angitt i (j2) kan brukeren spesifisere statistikk som skal beregnes for hver realverdi A(k), k= 1, 2, ..., Na, dvs. statistikk om den ene eller de flere størrelsene som er spesifisert for realverdien A(k). I ett sett av utførelsesformer kan avgjørelsesprosessflytbygger-grensesnittet la brukeren spesifisere en statistikk for hver av den ene eller de flere størrelsene spesifisert for hver realverdi ved å:
mate inn et matematisk uttrykk som definerer statistikken, eller
velge statistikken fra en liste av mye brukte statistikker.
Eksempler på mye brukte statistikker omfatter:
forventningen,
standardavviket;
fraktilen av orden p, der p er en brukerspesifisert verdi mellom null og én.
Videre kan avgjørelsesprosessflytbygger-grensesnittet la brukeren spesifisere flere enn én statistikk på samme størrelse. For eksempel kan brukeren ønske å beregne både forventningen og standardavviket for netto nåtidsverdi for en realverdi.
Som del av eksekveringen av en prosessflyt kan den ene eller de flere størrelsene spesifisert for hver realverdi bli evaluert et antall ganger slik at det skapes et sett av verdier for hver størrelse. Hver statistikk spesifisert for en størrelse beregnes på det tilhørende verdisettet.
Som angitt i (k1) over kan brukeren spesifisere et globalt mål S som en funksjonskombinasjon av en første delmengde av statistikkene. For å muliggjøre dette kan i ett sett av utførelsesformer avgjørelsesprosessflytbygger-grensesnittet være innrettet for å la brukeren: definere den første delmengden ved å velge én eller flere av statistikkene som er spesifisert for hver realverdi; og
spesifisere en funksjon (f.eks. en lineær kombinasjon eller en vilkårlig algebraisk funksjon) av statistikkene for den første delmengden.
I ett typisk scenario kan brukeren velge én statistikk Sk svarende til hver realverdi A(k), k = 1, 2, ..., Na, og spesifisere det globale målet S som en lineær kombinasjon på formen:
Brukeren kan mate inn verdier for koeffisientene a som skal multipliseres med de respektive statistikkene Sk. Som et eksempel kan brukeren innrette det globale målet S til å representere en lineær kombinasjon av den forventede netto nåtidsverdien for hver realverdi A(k).
Som angitt over i (k2) kan brukeren spesifisere én eller flere hjelpefunksjoner, der hver hjelpefunksjon er en funksjonskombinasjon av en tilhørende delmengde av statistikkene. I ett sett av utførelsesformer, for å spesifisere en hjelpefunksjon, kan avgjørelsesprosessflytbygger-grensesnittet la brukeren: velge én eller flere av statistikkene som er spesifisert for hver realverdi; og
spesifisere en funksjon (f.eks. en vilkårlig algebraisk funksjon) av statistikken til de valgte statistikkene.
Brukeren kan spesifisere et hvilket som helst antall hjelpefunksjoner gjennom denne prosessen.
I ett typisk scenario kan brukeren definere en hjelpefunksjon H ved å velge én statistikk Tk svarende til hver realverdi A(k), k = 1, 2, ..., Na og spesifisere en lineær kombinasjon på formen: eller på formen:
Brukeren kan mate inn verdiene for koeffisientene ak som skal multipliseres med de respektive statistikkene. Som et eksempel kan brukeren innrette hjelpefunksjonen H til å representere en lineær kombinasjon av kvadratet av standardavviket for netto nåtidsverdi for hver realverdi A(k).
Som angitt i (k3) over kan brukeren spesifisere én eller flere begrensninger som involverer den ene eller de flere hjelpefunksjonene og/eller det globale målet S. I ett sett av utførelsesformer kan brukeren spesifisere én eller flere begrensninger, hver på formen:
J .relop. C,
der J er en brukerspesifisert funksjon som tar argumenter valgt fra settet Fc omfattende den ene eller de flere hjelpefunksjonene og den globale målfunksjonen S, der .relop. er en relasjonsoperator valgt fra settet {<, < >, >, =} og der C er en brukerspesifisert konstant. Brukeren kan spesifisere en slik begrensning ved å: velge ett eller flere argumenter for funksjonen J fra settet Fc;
spesifisere en funksjonskombinasjon (f.eks. en vilkårlig algebraisk funksjonskombinasjon) av det ene eller de flere valgte argumentene;
velge relasjonsoperatoren .relop. fra settet {< >, =}; og spesifisere konstanten C.
Et hvilket som helst antall begrensninger kan spesifiseres på denne måten.
I ett typisk scenario kan brukeren anvende denne prosedyren for å spesifisere en begrensning på formen J = H/S < C, der H er en hjelpefunksjon og S er det globale målet. Som et eksempel kan H være en lineær kombinasjon av kvadrerte NPV-standardavvik, ett for hver realverdi, og S kan være en lineær kombinasjon av NPV-forventninger, én forventning for hver realverdi.
Som angitt i (I) over kan brukeren velge en optimeringsenhet. I ett sett av
utførelsesformer kan avgjørelsesprosessflyt-byggeren la brukeren velge fra et sett av støttede optimeringsenheter. Det globale målet S er gjerne sterkt ikke-lineært og har gjerne mange lokale minima (eller maksima) over det globale rommet som defineres av avgjørelsesvariablene. Videre kan dette globale rommet som optimeringen skal gjøres over ha isolerte øyer av anvendelige vektorer i et hav av uanvendelige vektorer. Følgelig er det ønskelig å anvende optimeringsenheter som ikke avslutter når de har funnet ett enkelt lokalt minimum (eller maksimum) og som ikke låser seg til én enkelt øy. Følgelig kan settet av støttede optimeringsenheter omfatte stokastiske optimeringsenheter, dvs. optimeringsenheter som anvender tilfeldighet i sin søke-metode.
I noen utførelsesformer kan avgjørelsesprosessflyt-byggeren la brukeren velge fra et sett av optimeringsenheter som for eksempel omfatter følgende: (1) en spredningssøk-basert optimeringsenhet; (2) en tabusøk-basert optimeringsenhet; (3) en optimeringsenhet basert på en metaheuristisk kombinasjon av spredningssøk, tabusøk, nevrale nettverk og lineærprogrammering;
(4) en optimeringsenhet basert på en genetisk algoritme.
Settet Vdav avgjørelsesvariabler i en prosessflyt representerer avgjørelser som er styrt. Hver avgjørelsesvariabel har et brukerspesifisert sett av oppnåelige verdier. Det kartesiske produktet av settene av oppnåelige verdier for avgjørelses-variablene i Vder et globalt avgjørelsesrom som optimeringen skal utføres over, underlagt eventuelle begrensninger brukeren kan ha spesifisert for avgjørelses-variablene eller funksjonskombinasjoner av avgjørelsesvariablene, og underlagt den ene eller de flere begrensningene definert i (k3) som involverer den ene eller de flere hjelpefunksjonene og/eller det globale målet.
En vektor i det globale avgjørelsesrommet refereres til som en avgjørelses-vektor. Med andre ord er en avgjørelsesvektor en vektor av verdier, dvs. én verdi valgt fra hvert av settene av oppnåelige verdier for avgjørelsesvariablene i Vd.
I noen utførelsesformer vil avgjørelsesprosessflyt-byggeren kunne la brukeren tilveiebringe et sett av innledende gjettvektorer som optimeringsenheten kan anvende i søkeprosessen.
Settet Vun av usikkerhetsvariabler i en prosessflyt representerer usikkerheter. Hver usikkerhetsvariabel har et brukerspesifisert sett av oppnåelige verdier. Det kartesiske produktet av settene av oppnåelige verdier for usikkerhetsvariablene i Vun er et globalt usikkerhetsrom som skal undersøkes iterativt. En vektor i det globale usikkerhetsrommet refereres til som en usikkerhetsvektor. Med andre ord er en usikkerhetsvektor en vektor med verdier, dvs. én verdi valgt fra hvert av settene av oppnåelige verdier for usikkerhetsvariablene i Vun.
I noen utførelsesformer kan avgjørelsesprosessflyt-byggeren generere en prosessflyt 200 som reaksjon på informasjonen (a)-(n) spesifisert av brukeren. Prosessflyten 200 kan omfatte optimeringsenheten 210 valgt av brukeren i (I) og en evalueringsprosess 220 som illustrert i figur 2. Optimeringsenheten 210 kan generere avgjørelsesvektorer x i det globale avgjørelsesrommet underlagt de brukerspesifiserte begrensningene på avgjørelsesvariablene. Evalueringsprosessen 220 jobber på avgjørelsesvektorer x for å generere tilhørende verdier S(x) for det globale målet S og tilhørende verdier H(x) for en hjelpefunksjon H som beskrevet nedenfor. De globale målverdiene S(x) og hjelpefunksjonsverdiene H(x) forsynes til optimeringsenheten. Optimeringsenheten anvender disse verdiene for å generere opp-daterte avgjørelsesvektorer i et forsøk på å minimere (eller maksimere) det globale målet underlagt de brukerspesifiserte begrensningene på hjelpefunksjonen H(x) (eller på en kombinasjon av hjelpefunksjonen og det globale målet). Optimeringsenheten kan følge en hvilken som helst av en rekke mulige optimeringsalgoritmer. Sløyfe-strukturen som omfatter optimeringsenheten og evalueringsprosessen refereres her til som den "ytre" sløyfen.
I ett sett av utførelsesformer kan optimeringsenheten 210 være innrettet for å følge fremgangsmåten illustrert i figur 3. Optimeringsenheten kan kjøre på tjenermaskinen.
I trinn 310 kan optimeringsenheten 210 bygge opp et referansesett av anvendelige avgjørelsesvektorer. (En avgjørelsesvektor sies å være anvendelig dersom den oppfyller de brukerspesifiserte begrensningene på avgjørelses-variablene.) I den første iterasjonen i trinn 310 kan referansesettet konstrueres ved å generere et innledende sett av avgjørelsesvektorer som er romlig ulike (f.eks. ved anvendelse av tilfeldighetsbaserte metoder), og så avbilde det innledende settet av avgjørelsesvektorer til anvendelige avgjørelsesvektorer. I en hvilken som helst etterfølgende iterasjon av trinn 310 kan referansesettet konstrueres ved å: velge at antall m av de "beste" avgjørelsesvektorene fra en foregående versjon av referansesettet (dvs. "best" som målt med det globale målet),
generere et sett av romlig ulike vektorer (f.eks. ved anvendelse av tilfeldighetsbaserte metoder);
avbilde de ulike vektorene for å frembringe ulike, anvendelige vektorer;
legge et antall n2av de ulike, anvendelige vektorene til de m vektorene for å øke referansesettets romlige mangfold.
Optimeringsenheten kan sortere de m beste avgjørelsesvektorene i rekke-følge av deres globale målverdier S(x). Optimeringsenheten kan også sortere de n2tilleggsvektorene i henhold til et avstandsmål.
I trinn 320 kan optimeringsenheten 210 generere nye vektorer xny ved å danne kombinasjoner (f.eks. lineære kombinasjoner) av delmengder av vektorene i referansesettet. De nye vektorene er ikke nødvendigvis anvendelige. Delmengdene kan omfatte to eller flere vektorer fra referansesettet.
I trinn 330 kan optimeringsenheten 210 avbilde de nye avgjørelses-vektorerene til anvendelige avgjørelsesvektorerXfved anvendelse av et lineær-program og/eller et blandet heltallprogram.
I trinn 340 kan optimeringsenheten 210 forsyne de anvendelige avgjørelses-vektoreneXftil evalueringsprosessen 220 for beregning av de globale målverdiene S(xf) og hjelpefunksjonsverdiene H(xf) svarende til de anvendelige avgjørelses-vektoreneXf.
I trinn 350 kan optimeringsenheten oppdatere referansesettet ved anvendelse av de globale målverdiene S(xf) og hjelpefunksjonsverdiene H(xf) beregnet i trinn 340. I én utførelsesform kan optimeringsenheten undersøke hver av de anvendelige vektoreneXffor å bestemme: (1) om den anvendelige vektoren har en bedre global målverdi H(xf) enn den nåværende dårligste av de m avgjørelsesvektorene med hensyn til global målverdi, og i så fall kan den anvendelige vektorenXferstatte den dårligste vektoren; (2) om den anvendelige vektoren har en større avstandsmålverdi enn den dårligste av de n2tilleggsvektorene.
I alle tilfelle kan optimeringsenheten bytte ut den dårligste vektoren med den anvendelige vektoren. Dersom ingen av de anvendelige vektoreneXfoppfyller noen av betingelsene (1) eller (2), forblir referansesettet uendret, dvs. at oppdateringen er en nulloppdatering.
I trinn 360 kan optimeringsenheten bestemme om referansesettet er endret som følge av trinn 350. I så fall kan optimeringsenheten gjennomføre en ny iterasjon av trinnene 320-360. Dersom referansesettet ikke er endret, kan optimeringsenheten fortsette med trinn 365.
I trinn 365 kan optimeringsenheten bestemme om en avsetningsbetingelse er oppfylt. Dersom avsetningsbetingelsen ikke er oppfylt, kan optimeringsenheten fortsette med trinn 310 og generere referansesettet på nytt med et annet sett av n2ulike, anvendelige vektorer. Dersom avsetningsbetingelsen er oppfylt, kan optimeringsenheten fortsette med trinn 370.
Forskjellige avsetningsbetingelser kan tenkes anvendt i forskjellige utførelsesformer. For eksempel kan avsetningsbetingelsen være at: (1) minst én avgjørelsesvektor i referansesettet har en global målverdi som er bedre enn en brukerdefinert terskel samtidig som den oppfyller den ene eller de flere begrensningene som involverer den ene eller de flere hjelpefunksjonene og/eller det globale målet; eller (2) et gitt antall nmax iterasjoner i den ytre sløyfen (omfattende trinnene 310 til 365) er utført; eller
(3) en gitt mengde Tmaxberegningstid har forløpt; eller
(4) en hvilken som helst kombinasjon av (1), (2) og (3).
Det maksimale antallet iterasjoner nmax og den maksimale beregningstiden l max kan være spesifisert av brukeren.
I trinn 370 kan optimeringsenheten lagre vektorene i referansesettet sammen med deres tilhørende globale målverdier og hjelpefunksjonsverdier i en database. Utdataanalysatoren kan lese databasen og vise en grafisk representasjon av den globale målverdien og hjelpefunksjonsverdien(e) for hver av vektorene i referansesettet (eller alternativt for de m beste vektorene i referansesettet).
I ett sett av utførelsesformer kan evalueringsprosessen 220 være innrettet for å følge fremgangsmåten angitt i figur 4. Evalueringsprosessen kan kjøre på tjenermaskinen.
I trinn 410 kan evalueringsprosessen motta en avgjørelsesvektor x fra optimeringsenheten.
I trinn 420 kan en instantieringsmodul i evalueringsprosessen generere Ni usikkerhetsvektorer på en måte som tar hensyn til de brukerspesifiserte funksjonsavhengighetene og korrelasjonene mellom usikkerhetsvariablene, der Ni er et brukerspesifisert positivt heltall. De Ni usikkerhetsvektorene utforsker det globale usikkerhetsrommet. Usikkerhetsvektorene kan bli generert i henhold til en brukerspesifisert instantieringsmodus som beskrevet over. Hver usikkerhetsvektor Uj, j = 1, 2, ..., Ni, inneholder en instantiert verdi for hver av usikkerhetsvariablene i settet Vun (dvs. settet av alle usikkerhetsvariablene knyttet til det aktuelle problemet). Hver instantierte verdi er valgt fra settet av oppnåelige verdier for en gitt usikkerhetsvariabel.
I trinn 425 kan evalueringsprosessen generere Ni iterasjonsdatasett fra modeller i forventning om Ni iterasjoner i den "indre sløyfen" for hver realverdi A(k), k = 1, 2, ..., Na, der Ni er antallet iterasjoner og Na er antallet realverdier. For eksempel kan evalueringsprosessen generere iterasjonsdatasettene i henhold til følgende pseudokode:
For k = 1 to Na:
For j = 1 to Ni:
Generer et iterasjonsdatasett IDS(k,j) for algoritmene for realverdi A(k) ved anvendelse av en delvektor x(k) av avgjørelsesvektoren x som er relevant for realverdi A(k) og en delvektor Uj(k) av usikkerhetsvektoren Uj som er relevant for realverdi A(k);
Lagre iterasjonsdatasettet IDS(k,j) i et iterasjonsbuffer IBUFF(k) for realverdi A(k);
End For
End For.
For-sløyfen over indeksen k trenger ikke bli utført på en strengt sekvensiell måte. For eksempel kan denne For-sløyfen være innrettet for å bli utført i flere prosesstråder, f.eks. én prosesstråd for hver verdi av k.
Husk at avgjørelsesstyringssystemet lar brukeren bygge modeller ved å:
(1) tilordne sett av datastrukturer til avgjørelsesvariabler; (2) tilordne sett av datastrukturer til usikkerhetsvariabler;
(3) forfremme dataverdier i datastrukturer til avgjørelsesvariabler; og
(4) forfremme dataverdier i datastrukturer til usikkerhetsvariabler.
Verdiene i avgjørelse-delvektoren x(k) og verdiene i usikkerhet-delvektoren Uj(k) kan anvendes for å bestemme én eller flere datastrukturer fra modellene. Spesielt kan én eller flere av verdiene i avgjørelse-delvektoren x(k) og/eller én eller flere av verdiene i usikkerhet-delvektoren Uj(k) anvendes for å velge datastrukturer fra modeller, omfattende sett av alternative datastrukturer. Videre kan én eller flere verdier fra avgjørelse-delvektoren x(k) og/eller én eller flere verdier fra usikkerhet-delvektoren Uj(k) bli satt inn i modeller som omfatter avgjørelsesvariabler og/eller usikkerhetsvariabler. Datastrukturene som bestemmes av verdiene i avgjørelse-delvektoren x(k) og verdiene i usikkerhet-delvektoren Uj(k), kan innlemmes i iterasjonsdatasettet IDS(k,j). Iterasjonsdatasettet kan omfatte nok data til å eksekvere settet av algoritmer som er tilordnet til realverdi A(k). Delvektorene x(k) er ikke nødvendigvis disjunkte. For eksempel kan verdier svarende til de globale avgjørelsesvariablene finnes i flere enn én av delvektorene x(k). Tilsvarende er ikke delvektorene Uj(k) nødvendigvis disjunkte.
I trinn 430 kan en fordelingsenhet i evalueringsprosessen distribuere (dvs. sende ut) de Ni iterasjonsdatasettene for hver realverdi A(k), k = 1, 2, ..., Na, til én eller flere andre datamaskiner, der Ni er antallet iterasjoner som skal utføres på hver realverdi. For eksempel kan fordelingsenheten kjøre i henhold til følgende pseudokode:
For k = 1 to Na:
While (iterasjonsbufferet IBUFF(k) ikke er tomt):
Finn en tilgjengelig datamaskin Cp;
Les ett eller flere iterasjonsdatasett IDS(k,j) fra iterasjonsbufferet IBUFF(k);
Komprimer det ene eller de flere iterasjonsdatasettene og pakk inn komprimerte data i en kjøredatafil;
Send kjøredatafilen til datamaskinen Cp for eksekvering av hver av det ene eller de flere iterasjonsdatasettene på datamaskinen Cp;
EndWhile
EndFor.
Fordelingsenheten kan innlemme en kopi av den eksekverbare koden for algoritmene for realverdi A(k) i kjøredatafilen dersom datamaskinen Cp ikke allerede har en kopi av denne koden. Videre kan fordelingsenheten innlemme en adresse til et databuffer INB(k) knyttet til realverdi A(k) i kjøredatafilen. Databufferet INB(k) kan være allokert i minnet på tjenermaskinen. Datamaskinen Cp eksekverer settet av algoritmer for realverdi A(k) på hvert iterasjonsdatasett IDS(kJ) inneholdt i kjøre-datafilen, samler inn utdataene (fra algoritmene) fra eksekveringen i et tilhørende utdatasett ODS(kj), og sender utdatasettet ODS(k,j) til databufferet INB(k).
For-sløyfen over indeksen k trenger ikke bli utført på en strengt sekvensiell måte. For eksempel kan denne For-sløyfen være innrettet for å bli utført i flere prosesstråder, f.eks. én prosesstråd for hver verdi av k.
Videre trenger ikke trinnene 425 og 430 bli utført på en strengt sekvensiell måte. For eksempel kan de flere prosesstrådene for For-sløyfen i trinn 430 bli eksekvert med multithreading sammen med de flere prosesstrådene for For-sløyfen (over indeks k) i trinn 425. I én utførelsesform kan k-te prosesstråd bli startet like etterat k-te IDS-genereringstråd er startet. Foreksempel kan k-te IDS-genereringstråd starte k-te For-prosesstråd etter å ha lagret ett eller flere iterasjonsdatasett i iterasjonsbufferet IBUFF(k).
Tjenermaskinen kan omfatte én eller flere prosessorer.
I trinn 440 kan en resultatakkumulator i evalueringsprosessen lagre utdatasett ODS(k,j) generert av de andre datamaskinene (som eksekveringsdatasettene ble distribuert til). Utdatasett ODS(k,j) representerer utmatingen fra algoritmene knyttet til realverdi A(k) som er eksekvert med hensyn til iterasjonsdatasettet IDS(k,j). I ett sett av utførelsesformer kan resultatakkumulatoren kjøre i henhold til følgende pseudokode:
For k = 1 to Na:
j<-0;
While (j < Ni):
Motta utdatasett ODS(kJ) fra innbuffer INB(k);
Dekomprimere nyttedata i utdatasettet ODS(kJ);
Lagre de dekomprimerte dataene fra utdataene ODS(kJ) i en database (f.eks. i en database indeksert ved k og j);
j<<->j<+i>;
EndWhile
EndFor.
For-sløyfen over indeks k trenger ikke bli utført på en strengt sekvensiell måte. For eksempel kan denne For-sløyfen være innrettet for å bli utført i flere prosesstråder, f.eks. én prosesstråd for hver verdi av k.
Videre trenger ikke trinnene 430 og 440 bli utført på en strengt sekvensiell måte. For eksempel kan de flere prosesstrådene for For-sløyfen i trinn 440 bli eksekvert med multithreading samtidig med de flere prosesstrådene for For-sløyfen i trinn 430. I én utførelsesform kan k-te akkumuleringstråd bli startet like etter at k-te distribueringstråd er startet. For eksempel kan k-te distribueringstråd starte k-te akkumuleringstråd etter å ha distribuert en første kjøredatafil for realverdi A(k).
I trinn 445A kan en resultatberegningsenhet i evalueringsprosessen for hver realverdi A(k), k = 1, 2, ..., Na, og for hver iterasjon j = 1, 2, ..., Ni, beregne en verdi for hver brukerspesifiserte størrelse for realverdien ved anvendelse av utparameter-verdierfra utdatasettet ODS(k,j). Følgelig genererer resultatberegningsenheten et sett av Ni verdier for hver brukerspesifiserte størrelse.
I trinn 445B kan resultatberegningsenheten for hver realverdi A(k), k = 1, 2, ..., Na, beregne en verdi for hver brukerspesifiserte statistikk for realverdien basert på et tilhørende sett.
Trinnene 445A og 445B refereres til kollektivt som trinn 445.
I ett sett av utførelsesformer kan resultatberegningsenheten være innrettet for å utføre trinn 445 i henhold til følgende pseudokode:
For k = 1 to Na:
j<-0;
While (j<£ Ni):
For hver brukerspesifiserte størrelse knyttet til realverdi A(k):
Les utparameterverdien(e) fra utdatasett ODS(kJ) for å beregne en verdi for den brukerspesifiserte størrelsen;
Beregn og lagre verdien for størrelsen;
EndFor
EndWhile
For hver brukerspesifiserte statistikk knyttet til realverdi A(k):
Beregn en verdi for den brukerspesifiserte statistikken fra de Ni verdiene for den tilhørende brukerspesifiserte størrelsen.
EndFor
EndFor.
For-sløyfen over indeks k trenger ikke bli utført på en strengt sekvensiell måte. For eksempel kan denne For-sløyfen være innrettet for å bli utført i flere prosesstråder, f.eks. én prosesstråd for hver verdi av k.
Videre trenger ikke trinnene 440 og 445 bli utført på en strengt sekvensiell måte. For eksempel kan de flere prosesstrådene for For-sløyfen i trinn 445 bli eksekvert med multithreading sammen med de flere prosesstrådene for For-sløyfen i trinn 440. I én utførelsesform kan k-te beregningstråd bli startet like etter at k-te resultatakkumuleringstråd er startet. For eksempel kan k-te resultatakkumuleringstråd starte k-te resultatberegningstråd etter å ha lagret et første utdatasett ODS(kj) i databasen.
I trinn 450 kan en global resultatberegningsenhet beregne:
verdien S(x) til det globale målet S basert på den brukerspesifiserte første delmengden av settet Gt av statistikker (dvs. unionen av statistikkene fra hver realverdi);
en verdi for hver hjelpefunksjon basert på den tilhørende brukerspesifiserte delmengden av det totale settet Gt av statistikker.
I ett sett av utførelsesformer kan en fremgangsmåte for å optimere avgjørelser vedrørende flere realverdier omfatte trinnene illustrert i figur 5.
I trinn 510 kan en datamaskin (f.eks. en tjenermaskin med én eller flere prosessorer) motta informasjon som spesifiserer: avgjørelsesvariabler og usikkerhetsvariabler for flere realverdier, og for hver realverdi et tilhørende sett av én eller flere algoritmer.
I trinn 515 kan datamaskinen generere en avgjørelsesvektor. Avgjørelses-vektoren omfatter en verdi for hver av avgjørelsesvariablene. Hver av avgjørelses-variablene har et tilhørende sett av oppnåelige verdier.
I trinn 520 kan datamaskinen utføre en evalueringsprosess på avgjørelses-vektoren for å bestemme i hvert fall en verdi for et globalt mål for avgjørelses-vektoren. Se nedenfor for en beskrivelse av evalueringsprosessen.
I trinn 530 kan datamaskinen kjøre en optimeringsenhet. Kjøringen av optimeringsenheten omfatter det å utføre trinnene 515 og 520 gjentatte ganger, og med det generere flere avgjørelsesvektorer og tilhørende globale målverdier. Optimeringsenheten anvender de flere avgjørelsesvektorene og de tilhørende globale målverdiene for å generere og fortløpende oppdatere et referansesett av avgjørelsesvektorer for å optimere det globale målet.
I trinn 540 kan datamaskinen lagre data omfattende de flere avgjørelses-vektorene og deres tilhørende globale målverdier i et minne (f.eks. i datamaskinens systemminne).
I trinn 545 kan datamaskinen vise en grafisk representasjon av i hvert fall en delmengde av avgjørelsesvektorene i referansesettet.
Optimeringsenheten kan realiseres av hvilke som helst av en rekke mulige optimeringsenheter, spesielt stokastiske optimeringsenheter. For eksempel kan optimeringsenheten være: (1) en spredningssøk-basert optimeringsenhet; (2) en tabusøk-basert optimeringsenhet; (3) en optimeringsenhet basert på en metaheuristisk kombinasjon av spredningssøk, tabusøk, nevrale nettverk og lineærprogrammering;
(4) en optimeringsenhet basert på en genetisk algoritme.
Trinn 520 med gjennomføring av evalueringsprosessen kan omfatte følgende trinn, som illustrert i figur 6.
I trinn 520A kan datamaskinen generere en usikkerhetsvektor. Usikkerhetsvektoren omfatter en verdi for hver av usikkerhetsvariablene.
I trinn 520B kan datamaskinen for hver realverdi generere et datasett for det tilhørende settet av algoritmer ved anvendelse av en tilhørende delmengde av én eller flere verdier i avgjørelsesvektoren og en tilhørende delmengde av én eller flere verdier i usikkerhetsvektoren.
I trinn 520C kan datamaskinen anrope eksekvering av settet av algoritmer for hver realverdi på det tilhørende datasettet for å frembringe utparametre svarende til realverdien. Datamaskinen kan anrope eksekvering på andre datamaskiner, f.eks. ved å sende datasettene til de andre datamaskinene (og om nødvendig den eksekverbare koden for de respektive algoritmene).
I trinn 520D kan datamaskinen for hver realverdi beregne én eller flere verdier for én eller flere respektive størrelser fra utparametrene svarende til realverdien.
I trinn 520E kan datamaskinen utføre trinnene 520A til 520D et antall ganger, og med det generere et sett av verdier for hver størrelse for hver realverdi.
I trinn 520F kan datamaskinen beregne én eller flere statistikker for hver realverdi basert på de tilhørende av settene.
I trinn 520G kan datamaskinen kombinere en første delmengde av statistikkene for å bestemme den globale målverdien svarende til avgjørelses-vektoren. Den første delmengden av statistikker kan bli kombinert i henhold til en brukerspesifisert funksjonskombinasjon (f.eks. en lineær kombinasjon).
Informasjonen (referert til i 510 over) kan spesifisere én eller flere funksjonsavhengigheter mellom usikkerhetsvariablene. Trinnet 520A med å generere usikkerhetsvektoren kan utføres på en måte som tar hensyn til den ene eller de flere funksjonsavhengighetene mellom usikkerhetsvariablene. Brukeren kan spesifisere de funksjonsavhengighetene f.eks. gjennom et klient-GUl som kjører på en annen datamaskin (f.eks. en klientmaskin).
Informasjonen kan også spesifisere én eller flere korrelasjoner mellom usikkerhetsvariablene. I dette tilfellet kan trinn 520A med å generere usikkerhetsvektoren bli utført på en måte som tar hensyn til nevnte korrelasjoner. Usikkerhetsvariablene kan omfatte to eller flere delmengder knyttet til to eller flere av realverdiene. Korrelasjonene kan omfatte korrelasjoner mellom usikkerhetsvariabler på tvers av forskjellige realverdier.
Informasjonen kan også spesifisere én eller flere begrensninger på avgjørel-sesvariablene. I dette tilfellet kan trinnet 515 med å generere avgjørelsesvektoren ta hensyn til den ene eller de flere begrensningene på avgjørelsesvariablene.
Trinn 520 med å utføre evalueringsprosessen på avgjørelsesvektoren kan produsere en tilhørende verdi for en hjelpefunksjon i tillegg til nevnte globale målverdi. Følgelig kan trinn 520 i tillegg omfatte det å: (520H) kombinere en andre delmengde av statistikkene for å bestemme hjelpefunksjonsverdien svarende til avgjørelsesvektoren.
Optimeringsenheten kan anvende de globale målverdiene og hjelpefunksjonsverdiene svarende til de flere avgjørelsesvektorene i nevnte fortløpende oppdatering av referansesettet for å optimere målfunksjonen underlagt én eller flere begrensninger.
Brukeren kan spesifisere strukturen til den ene eller de flere begrensningene. For eksempel kan brukeren spesifisere en begrensning på en funksjonskombinasjon av hjelpefunksjonen og det globale målet. (Funksjonskombinasjonen kan også være spesifisert av brukeren.) Som et annet eksempel kan brukeren spesifisere en begrensning kun på hjelpefunksjonen.
Trinn 520H kan omfatte det å kombinere den andre delmengden av statistikkene i henhold til en lineær kombinasjon med koeffisienter som spesifiseres av nevnte informasjon.
Hver av avgjørelsesvariablene har et tilhørende sett av oppnåelige verdier som representerer mulige utfall av en tilhørende avgjørelse. Hver av usikkerhetsvariablene har også et tilhørende sett av oppnåelige verdier. Settene av oppnåelige verdier kan være endelige sett av numeriske verdier, datastrukturer, programmer, etc. Settene av oppnåelige verdier kan også være intervaller langs tallinjen, eller mer generelt brukerspesifiserte områder i et n-dimensjonalt rom, der n er et positivt heltall.
I én utførelsesform kan et plott av den globale målverdien mot hjelpefunksjonsverdien for hver av nevnte flere avgjørelsesvektorer bli vist på en fremvisningsanordning (så som en monitor, projektor, hjelmmontert fremvisningsanordning, etc).
Trinn 540 med å lagre dataene kan omfatte det å lagre de flere avgjørelses-vektorene sammen med deres tilhørende globale målverdier og de tilhørende hjelpefunksjonsverdiene i en database i minnet.
I noen utførelsesformer kan datamaskinen:
bruke databasen for å identifisere en delmengde av de flere avgjørelses-vektorene som har optimale verdier for det globale målet for en gitt hjelpefunksjons-verdi.
gjenta nevnte bruk av databasen for flere hjelpefunksjonsverdier; og lagre delmengdene som identifiseres i nevnte gjentatte bruk.
Videre kan datamaskinen også:
bruke databasen for å bestemme lokasjonene til optimale verdier for det globale målet med hensyn til hjelpefunksjonsverdien; og
vise lokasjonene til optimale verdier.
En grafisk representasjon av en delmengde av de flere avgjørelsesvektorene som svarer til et punkt ved lokasjonen til den optimale verdien kan bli vist som reaksjon på at en bruker velger punktet.
Brukeren kan spesifisere de flere realverdiene, avgjørelsesvariablene og usikkerhetsvariablene for hver realverdi samt et sett av én eller flere algoritmer for hver realverdi. Avgjørelsesvariablene er variabler som gjennomgår optimering. Usikkerhetsvariablene kan bli tilfeldig (eller pseudo-tilfeldig) utforsket for å skape variasjon i innmatingen som forsynes til algoritmer for hver realverdi.
Settet av én eller flere algoritmer for minst én av realverdiene kan omfatte en algoritme for å estimere olje- og gassproduksjon over tid og økonomi for realverdien. Algoritmen for å estimere olje- og gassproduksjon over tid kan være: en materialbalansesimulator som jobber på en tankmodell-datastruktur;
en materialbalanseberegning som utføres i regnearkmodeller;
et reservoarstrømningssimulator som jobber på en 3-dimensjonal (3D) datastruktur;
en algoritme definert av et sett av én eller flere brukerspesifiserte algebraiske uttrykk.
Videre kan settet av én eller flere algoritmer for minst én av realverdiene omfatte én eller flere av: en algoritme for å estimere olje- og gasstransport ved overflaten, f.eks. en prosessimulator for rørledningsnett på overflaten,
en algoritme for å estimere transport av olje, gass og vann ved overflaten, f.eks. en analytisk modell for et rørledningsnett på overflaten eller et sett av én eller flere brukerspesifiserte algebraiske uttrykk, og
en algoritme for å estimere olje- og gassvolum og 3D reservoaregenskaper.
Algoritmen for å estimere olje- og gassvolum og 3D reservoaregenskaper kan realiseres av:
en geostatistisk algoritme for å generere undergrunnsegenskaper,
et definert sett av ett eller flere brukerspesifiserte algebraiske uttrykk; eller en materialbalansesimulator.
Algoritmen for å beregne økonomien for realverdien kan realiseres av: algoritmer basert på regneark som kan omfatte fulle budsjettmodeller og produksjonsdelingsmodeller;
algoritmer basert på analytiske økonomiske modeller og et sett av ett eller flere brukerspesifiserte algebraiske uttrykk.
I et annet sett av utførelsesformer kan en fremgangsmåte for å optimere avgjørelser vedrørende flere realverdier ved å kjøre programkode på en første datamaskin (f.eks. en tjenermaskin) omfatte følgende trinn som illustrert i figur 7.
I trinn 710 kan en første datamaskin (f.eks. en tjenermaskin med én eller flere prosessorer) motta informasjon som spesifiserer avgjørelsesvariabler og usikkerhetsvariabler for de flere realverdiene og som for hver realverdi spesifiserer et tilhørende sett av én eller flere algoritmer.
I trinn 720 kan den første datamaskinen generere en avgjørelsesvektor, der avgjørelsesvektoren omfatter en verdi for hver av avgjørelsesvariablene.
I trinn 730 kan den første datamaskinen utføre en evalueringsprosess på avgjørelsesvektoren for å bestemme i hvert fall en verdi for et globalt mål for avgjørelsesvektoren.
I trinn 740 kan den første datamaskinen kjøre en optimeringsenhet, der det å kjøre optimeringsenheten omfatter det å utføre trinn 720 og 730 gjentatte ganger og med det generere flere avgjørelsesvektorer og tilhørende globale målverdier, og der optimeringsenheten anvender de flere avgjørelsesvektorene og de tilhørende globale målverdiene for å generere og fortløpende oppdatere et referansesett av avgjørelsesvektorer for å optimere det globale målet.
I trinn 750 kan den første datamaskinen lagre data omfattende de flere avgjørelsesvektorene og deres tilhørende globale målverdier i minnet.
Trinn 730 med å utføre evalueringsprosessen kan omfatte følgende trinn som illustrert i figur 8.
I trinn 730A kan den første datamaskinen generere Ni usikkerhetsvektorer, der hver usikkerhetsvektor inneholder instantierte verdier for hver av usikkerhetsvariablene, der Ni er et positivt heltall.
I trinn 730B kan den første datamaskinen generere Ni iterasjonsdatasett for hver realverdi, der hvert av iterasjonsdatasettene genereres ved anvendelse av en del av avgjørelsesvektoren og en del av en tilhørende av usikkerhetsvektorene.
I trinn 730C kan den første datamaskinen fordele de Ni iterasjonsdatasettene for hver realverdi til én eller flere andre datamaskiner for å anrope eksekvering av settet av algoritmer for realverdien på hver av de tilhørende Ni iterasjonsdatasettene, der hver eksekvering av settet av algoritmer for realverdien på et iterasjonsdatasett genererer et tilhørende utdatasett.
I trinn 730D kan den første datamaskinen motta de Ni utdatasettene for hver av realverdiene fra den ene eller de flere andre datamaskinene og lagre de Ni utdatasettene i et minne.
I trinn 730E kan den første datamaskinen for hver realverdi og hvert av de Ni utdatasettene som svarer til realverdien beregne én eller flere verdier for én eller flere respektive størrelser basert på dataene i utdatasettet, og med det generere et verdisett av Ni verdier av hver størrelse for hver realverdi.
I trinn 730F kan den første datamaskinen beregne én eller flere statistikker for hver realverdi basert på tilhørende av verdisettene.
I trinn 730G kan den første datamaskinen kombinere en første delmengde av statistikkene for å bestemme den globale målverdien svarende til avgjørelses-vektoren.
Den første datamaskinen og den ene eller de flere andre datamaskinene kan være forbundet gjennom et datanettverk, f.eks. et lokalt nettverk, et intranett, et regionalt nettverk, Internett, etc.
Det trinn å distribuere iterasjonsdatasettene bevirker distribuert eksekvering av settene av algoritmer med iterasjonsdatasettene på flere andre datamaskiner. De andre datamaskinene kan være organisert i en klyngestruktur.
I én utførelsesform kan en delmengde av iterasjonsdatasettet bli eksekvert lokalt av den første datamaskinen, delvis avhengig av hvor mye prosesseringskapasitet som er tilgjengelig på den første datamaskinen.
Informasjonen kan bli innhentet fra en bruker av en prosess som kjører på en klientmaskin og sendt til den første datamaskinen av denne prosessen.
I nok et annet sett av utførelsesformer kan en fremgangsmåte for å optimere avgjørelser vedrørende flere realverdier omfatter følgende trinn som illustrert i figur 9.
I trinn 910 kan en datamaskin (f.eks. en tjenermaskin med én eller flere prosessorer) motta informasjon som spesifiserer de flere realverdiene, et realverdi-mål for hver av realverdiene og et sett av algoritmer for hver realverdi.
I trinn 920 kan datamaskinen generere en avgjørelsesvektor som omfatter verdier for et sett av avgjørelsesvariabler.
I trinn 930 kan datamaskinen generere Ni usikkerhetsvektorer, der hver av de Ni usikkerhetsvektorene er oppnådd fra en egen instantiering av et sett av usikkerhetsvariabler, der Ni er et positivt heltall.
I trinn 940 kan datamaskinen beregne et første verdisett av Ni verdier for hvert realverdi-mål ved å utføre Ni iterasjoner av eksekvering av det tilhørende settet av algoritmer og operere på utdataene generert i hver av de Ni iterasjonene av nevnte eksekvering, der hver eksekvering av det tilhørende settet av algoritmer jobber på et inndatasett bestemt av verdiene til avgjørelsesvariablene og av en tilhørende av usikkerhetsvektorene.
I trinn 950 kan datamaskinen beregne en første realverdi-statistikk for hvert realverdi-mål fra det tilhørende verdisettet.
I trinn 960 kan datamaskinen beregne en verdi for et globalt mål basert på den første realverdi-statistikken.
I trinn 970 kan datamaskinen kjøre en optimeringsenhet, der kjøringen av optimeringsenheten omfatter det å utføre trinnene 920 til 960 gjentatte ganger og med det generere flere avgjørelsesvektorer og tilhørende globale målverdier, og der optimeringsenheten anvender de flere avgjørelsesvektorene og de tilhørende globale målverdiene for å generere og fortløpende oppdatere et referansesett av avgjørelsesvektorer for å optimere det globale målet.
I noen utførelsesformer kan datamaskinen:
beregne en andre realverdi-statistikk for hver realverdi fra et tilhørende av verdisettene; og
beregne en verdi for en hjelpefunksjon basert på den andre realverdier-statistikken.
Kjøringen av optimeringsenheten kan forsøke å optimere (dvs. maksimere eller minimere) det globale målet underlagt en begrensning på én eller flere av hjelpefunksjonen og det globale målet.
I ett sett av utførelsesformer kan en fremgangsmåte for å analysere innvirkningen av usikkerheter knyttet til et sett av realverdier omfatte følgende handlinger, som illustrert i figur 10. Fremgangsmåten kan bli utført av en datamaskin (f.eks. en datamaskin med én eller flere prosessorer) eller et sett av datamaskiner.
Ved 1010 kan datamaskinen motta informasjon som spesifiserer et sett av usikkerhetsvariabler for flere realverdier og som spesifiserer en funksjonsrelasjon mellom en første og en andre av usikkerhetsvariablene. Den første usikkerhetsvariabelen kan være knyttet til et første av realverdiene. Den andre usikkerhetsvariabelen kan være knyttet til et andre av realverdiene. Informasjonen kan bli forsynt av en bruker gjennom et grafisk brukergrensesnitt, f.eks. et grensesnitt i avgjørelses-styringssystemet eller avgjørelsesprosessflyt-byggeren som beskrevet over.
Ved 1012 kan datamaskinen generere verdier for hver av usikkerhetsvariablene. En hvilken som helst av forskjellige instantieringsmodi kan anvendes for å generere verdiene til usikkerhetsvariablene, som beskrevet flere steder her. Instantieringsmodus kan velges av brukeren.
Prosessen med å generere verdiene for usikkerhetsvariablene kan omfatte det å generere en verdi for den første usikkerhetsvariabelen og beregne en verdi for den andre usikkerhetsvariabelen fra verdien til den første usikkerhetsvariabelen basert på funksjonsrelasjonen. Følgelig sies den første usikkerhetsvariabelen å være avhengig av den andre usikkerhetsvariabelen. Et hvilket som helst antall slike avhengigheter mellom usikkerhetsvariabler kan opprettes, f.eks. som beskrevet i forskjellige utførelsesformer over. Avhengigheter kan opprettes innenfor realverdier så vel som på tvers av realverdier.
Ved 1014 kan datamaskinen for hver av realverdiene bestemme et tilhørende inndatasett ved anvendelse av i hvert fall en tilhørende delmengde av usikkerhetsvariabel-verdiene. Prosessen med å bestemme inndatasettene kan omfatte det å: bestemme et første inndatasett svarende til den første realverdien ved anvendelse av i hvert fall verdien til den første usikkerhetsvariabelen; og
bestemme et andre inndatasett svarende til den andre realverdien ved anvendelse av i hvert fall verdien til den andre usikkerhetsvariabelen.
Forskjellige eksempler på bestemmelse av inndatasett ved anvendelse av usikkerhetsvariabel-verdier er gitt i forskjellige utførelsesformer over. For eksempel kan en usikkerhetsvariabel-verdi bli substituert inn i et inndatasett, eller kan anvendes for å styre valget av datastruktur som skal settes inn i et inndatasett.
Ved 1016 kan datamaskinen, for hver av realverdiene, anrope eksekvering av et tilhørende sett av én eller flere algoritmer. Hvert sett av én eller flere algoritmer kan jobbe på det tilhørende inndatasettet for å generere et tilhørende utdatasett.
Ved 1018 kan datamaskinen utføre 1012, 1014 og 1016 flere ganger for å generere flere utdatasett for hver realverdi. Utdatasettene kan bli lagret på et minnemedium, f.eks. for senere fremvisning og/eller analyse. I én utførelsesform kan minnemediet være en harddisk.
Ved 1020 kan datamaskinen beregne én eller flere statistikker for hver av realverdiene basert på den tilhørende samlingen av utdatasett. Statistikkene kan være spesifisert av en bruker. Se de forskjellige eksempler på statistikker gitt i forskjellige utførelsesformer beskrevet over, f.eks. utførelsesformene beskrevet i forbindelse med figurene 4, 6, 8 og 9. Statistikkene kan også bli lagret på minnemediet.
Ved 1022 kan datamaskinen generere resultatdata i hvert fall delvis basert på statistikkene for realverdiene. For eksempel kan resultatdataene omfatte en funksjonskombinasjon av statistikkene for de flere realverdiene, f.eks. en brukerspesifisert funksjonskombinasjon.
Ved 1024 kan datamaskinen vise en angivelse av resultatdataene på en fremvisningsanordning.
I noen utførelsesformer kan realverdiene være knyttet til leting etter og produksjon av olje og/eller gass. For eksempel kan realverdiene omfatte et sett av olje- og gassfelter.
Settet av én eller flere algoritmer for hver realverdi kan være valgt av en bruker. Algoritmene kan velges fra et bredt spekter av støttede algoritmer. Se de forskjellige eksemplene på algoritmer beskrevet over.
I én utførelsesform kan trinnet 1016 med å anrope eksekvering omfatte det å: distribuere inndatasettene for realverdiene til én eller flere fjerne datamaskiner for fjerneksekvering av det tilhørende settet av algoritmer; og
motta utdatasett fra den ene eller de flere fjerndatamaskinene.
Se eksemplene beskrevet over, spesielt eksemplene på fordelingsenheten beskrevet over.
Informasjonen som mottas ved 1010 kan også spesifisere én eller flere korrelasjoner mellom usikkerhetsvariablene. I så fall tar trinnet 1012 med å generere verdier for hver av usikkerhetsvariablene hensyn til den ene eller de flere spesifiserte korrelasjonene. Korrelasjonene kan omfatte korrelasjoner mellom usikkerhetsvariabler innenfor realverdier eller på tvers av forskjellige realverdier. Korrelasjoner mellom tre eller flere usikkerhetsvariabler er også tenkelig, som beskrevet over.
I noen utførelsesformer kan trinnet 1014 med å bestemme inndatasett for realverdiene omfatte det å velge én av to eller flere modeller for innlemmelse i ett av inndatasettene basert på verdien til en tredje av usikkerhetsvariablene. Husk fra beskrivelsen over at modellene kan bli underordnet usikkerhetsvariabler. Usikkerhetsvariablene styrer valget av én av de underordnede modellene.
I én utførelsesform kan trinn 1014 omfatte det å:
velge én av to eller flere modeller basert på verdien til en tredje av usikkerhetsvariablene; og
velge én av to eller flere delmodeller under den valgte modellen basert på verdien til en fjerde av usikkerhetsvariablene.
Den valgte delmodellen kan anvendes for å bestemme data som skal innlemmes i ett (eller flere) av inndatasettene.
Mer generelt kan en modell representere et hierarkisk tre av modeller med tilhørende usikkerhetsvariabler. Brukeren kan bygge slike hierarkiske modeller med et hvilket som helst ønsket antall nivåer. En datastruktur kan settes sammen ved å: gjennomløpe treet fra topp til bunn basert på verdiene til én eller flere av usikkerhetsvariablene, og
legge til dataene inneholdt i hver node langs banen som gjennomløpes.
I hver fase av gjennomløpet styrer en tilhørende usikkerhetsvariabel-verdi hvilken undernode som skal velges. Foreksempel illustrerer figur 11 en hierarkisk modell med to nivåer av valg. En usikkerhetsvariabel X styrer et første valg av FiM eller {FN2,Param3}, henholdsvis med sannsynlighet 0,6 og 0,4. En andre usikkerhetsvariabel Y styrer et andre valg av Paraml eller Param2, henholdsvis med sannsynlighet 0,2 og 0,8. FiM og Fil2 representerer datafiler, og Paraml, Param2 og Param3 representerer parameterverdier.
I noen utførelsesformer kan fremgangsmåten videre omfatte det å:
(1) motta informasjon som spesifiserer flere avgjørelsesvariabler; (2) generere verdier for avgjørelsesvariablene, der avgjørelsesvariablenes verdier anvendes for å bestemme inndatasettene for realverdiene; (3) beregne en verdi for et globalt mål fra den ene eller de flere statistikkene for hver av realverdiene; og
kjøre en optimeringsenhet for å bestemme ett eller flere sett av verdier for avgjørelsesvariablene.
Prosessen med å kjøre en optimeringsenhet kan omfatte det å utføre i hvert fall trinnene (2), 1018, 1020 og (3) et antall ganger, der optimeringsenheten er innrettet for å søke etter et maksimum eller minimum for det globale målet over i hvert fall en del av et rom som avgrenses av avgjørelsesvariablene. For eksempler på (1), (2), (3) og nevnte kjøring av optimeringsenheten henvises til fremgangsmåte-utførelsene beskrevet over i forbindelse med figurene 2-9.
Optimeringsenheten kan være valgbar for en bruker fra et sett av støttede optimeringsenheter.
Trinnet 1024 med å vise en angivelse av resultatdataene kan omfatte det å vise en grafisk representasjon av i hvert fall en delmengde av det ene eller de flere settene av verdier for avgjørelsesvariablene. Den grafiske representasjonen kan omfatte en graf, et diagram, en tabell, en liste, et bilde annotert med symboler, etc.
Informasjonen som mottas i (1) kan også spesifisere én eller flere begrensninger på avgjørelsesvariablene. I så fall tas det i genereringen av verdier for avgjørelsesvariablene hensyn til den ene eller de flere begrensningene. Begrensningene kan være spesifisert av en bruker, f.eks. som beskrevet flere steder over. Begrensningene kan omfatte lineære og/eller ikke-lineære begrensninger.
Informasjonen som mottas i (1) kan også spesifisere én eller flere funksjonsavhengigheter mellom avgjørelsesvariablene. I så fall tas det i genereringen av verdier for avgjørelsesvariablene hensyn til den ene eller de flere funksjonsavhengighetene mellom avgjørelsesvariablene. De funksjonsavhengighetene kan være spesifisert av en bruker, f.eks. som beskrevet forskjellige steder over.
Hver av avgjørelsesvariablene har et tilhørende sett av oppnåelige verdier som representerer mulige utfall av en tilhørende avgjørelse. Hver av usikkerhetsvariablene har videre et tilhørende sett av oppnåelige verdier. Settene av oppnåelige verdier kan være endelige sett eller sett med uendelig kardinalitet.
I én utførelsesform kan fremgangsmåten videre omfatte det å:
(4) beregne en verdi for en hjelpefunksjon fra den ene eller de flere statistikkene for hver av realverdiene.
I så fall kan prosessen med å kjøre optimeringsenheten omfatte det å utføre (2), 1018, 1020, (3) og (4) et antall ganger. Optimeringsenheten kan være innrettet for å søke etter maksimum eller minimum for det globale målet i hvert fall underlagt en begrensning på en funksjonskombinasjon av det globale målet og hjelpefunksjonen. Funksjonskombinasjonen kan være brukerspesifisert. Se eksempler på hjelpefunksjonen og funksjonskombinasjonen gitt i forskjellige utførelsesformer over.
Trinn 1024 med å vise en angivelse av resultatdataene på en fremvisningsanordning kan omfatte det å vise et plott av den globale målverdien mot hjelpefunksjonsverdien.
I et annet sett av utførelsesformer kan en fremgangsmåte for å optimere avgjørelser knyttet til undersøkelse, utvikling og produksjon av olje- og gassfelt omfatte følgende handlinger, som illustrert i figur 12A.
Ved 1210 kan det mottas brukerinnmating som spesifiserer to eller flere algoritmer og spesifiserer én eller flere koblinger mellom de to eller flere algoritmene. Hver av koblingene er en kobling mellom en utmating fra én av algoritmene og innmatingen til en annen av algoritmene. Brukeren kan anvende et grafisk brukergrensesnitt (f.eks. et grafisk brukergrensesnitt fra prosessflytbyggeren eller fra avgjørelsesprosessflyt-byggeren som beskrevet forskjellige steder over).
Ved 1212 kan det mottas brukerinnmating som spesifiserer én eller flere datastrukturer som er i overensstemmelse med de to eller flere algoritmene. Se forskjellige eksempler gitt over.
Ved 1214 kan den ene eller de flere datastrukturene bli manipulert som reaksjon på brukerinnmating for å bygge én eller flere modeller for de to eller flere algoritmene. Den ene eller de flere modellene kan omfatte én eller flere usikkerhetsvariabler og én eller flere avgjørelsesvariabler. Prosessen med å bygge modeller fra datastrukturer kan omfatte det å forfremme dataverdier i datastrukturer til usikkerhetsvariabler og tilordne to eller flere datastrukturer til en usikkerhetsvariabel, som beskrevet over.
Ved 1216 kan det mottas brukerinnmating som spesifiserer én eller flere statistikker som skal beregnes på utdata fra de to eller flere algoritmene. Se de forskjellige eksemplene på statistikker gitt over.
Ved 1218 kan det mottas brukerinnmating som spesifiserer en funksjonskombinasjon av statistikkene som definerer et globalt mål. En hvilken som helst av forskjellige funksjonskombinasjoner er tenkelig, omfattende lineære og ikke-lineære kombinasjoner.
Ved 1220 kan det mottas brukerinnmating som spesifiserer en optimeringsenhet. Optimeringsenheten kan bli valgt fra et sett av støttede optimeringsenheter. I én utførelsesform kan programkode for en optimeringsenhet enkelt legges til i det støttede settet av brukeren.
Ved 1222 kan en optimering bli utført ved anvendelse av den brukerspesifiserte optimeringsenheten for å lete etter en optimal verdi for det globale målet. For eksempel kan optimeringen bli gjort som beskrevet over i forbindelse med figurene 2-9.
I noen utførelsesformer kan trinnene 1216 og 1218 utelates.
I noen utførelsesformer kan fremgangsmåten videre omfatte det å vise en grafisk representasjon av progresjonen i optimeringen, som beskrevet forskjellige steder over. For eksempel kan fremgangsmåten omfatte én eller flere av å: vise en graf av målfunksjonen mot den ytre iterasjonsindeksen (dvs. indeksen i optimeringssløyfen);
vise en graf av målfunksjonsverdien mot hjelpefunksjonsverdien, omfattende punkter som representerer iterasjonene i den ytre sløyfen (dvs. optimeringssløyfen);
vise en graf av målfunksjon mot en funksjonskombinasjon av målfunksjonen og hjelpefunksjonen, der grafen omfatter punkter som representerer iterasjonene i den ytre sløyfen;
vise en graf av posisjonen til en optimal verdi som beskrevet over; og
vise en grafisk representasjon av avgjørelsesvariabel-verdiene som genereres i optimeringen.
Optimeringsprosessen kan omfatte følgende handlinger, som illustrert i figur 12B.
Ved 1230 kan det bli generert én eller flere verdier for den ene eller de flere avgjørelsesvariablene. Se for eksempel beskrivelsen over av generering av avgjørelsesvektorer fra settet av avgjørelsesvariabler.
Ved 1232 kan det bli anropt flere eksekveringer av de to eller flere algoritmene i henhold til den ene eller de flere koblingene. Hver av eksekveringene kan jobbe på et tilhørende sett av én eller flere instantierte modeller bestemt av den ene eller de flere modellene, den ene eller de flere avgjørelsesvariabel-verdiene og et tilhørende sett av én eller flere instantierte verdier for den ene eller de flere usikkerhetsvariablene. For eksempler på anrop av de flere eksekveringene henvises til beskrivelsen over i forbindelse med handlingene 410 til 445A i figur 4, beskrivelsen over i forbindelse med handlingene 520A til 520E i figur 6, beskrivelsen over i forbindelse med handlingene 730A til 730E i figur 8 og beskrivelsen over i forbindelse med handlingene 930 og 940 i figur 9.
Ved 1234 kan statistikkene bli beregnet basert på utmatingen fra de flere eksekveringene.
Ved 1236 kan det bli beregnet en verdi for det globale målet fra statistikkene i henhold til den brukerspesifiserte funksjonskombinasjonen.
Ved 1238 kan trinnene 1230 til 1238 bli gjentatt et antall ganger, f.eks. inntil en avsetningsbetingelse er oppfylt. Se forskjellige eksempler på avsetningsbetingelser gitt over.
I noen utførelsesformer kan trinnene 1210 til 1220 bli utført på en klientmaskin, og trinn 1222 kan bli utført på en tjenermaskin. Følgelig kan fremgangsmåten kan også omfatte det å sende informasjon som spesifiserer de to eller flere algoritmene, informasjon som spesifiserer den ene eller de flere koblingene, informasjon som spesifiserer den ene eller de flere statistikkene, informasjon som spesifiserer optimeringsenheten samt informasjon som spesifiserer det globale målet til tjenermaskinen.
I noen utførelsesformer kan tjenermaskinen utføre prosessen 1222 ved å:
(1) generere et sett av én eller flere instantierte verdier for den ene eller de flere usikkerhetsvariablene; (2) bestemme én eller flere instantierte modeller fra den ene eller de flere modellene og settet av én eller flere instantierte verdier; (3) sende den ene eller de flere instantierte modellene til en fjerndatamaskin, der den fjerne datamaskinen utfører én av de flere kjøringene av de to eller flere algoritmene på den ene eller de flere instantierte modellene; og
gjenta (1) til (3) for å fordele de flere kjøringene til et sett av én eller flere fjerne datamaskiner.
I én utførelsesform kan fremgangsmåten videre omfatte det å motta brukerinnmating som spesifiserer en instantieringsmodus, som beskrevet over. Instantieringsmodusen styrer hvordan de instantierte verdiene blir generert fra usikkerhetsvariablene.
I én utførelsesform kan fremgangsmåten videre omfatte det å motta brukerinnmating som spesifiserer en fordelingsenhet. Fordelingsenheten er et program som styrer prosessen med å anrope de flere kjøringene av de to eller flere algoritmene på settet av fjerne datamaskiner. Tjeneren kan kjøre fordelingsenheten for å iverksette nevnte gjentagelse av (1) til (3). I én utførelsesform kan programkode for nye fordelingsenheter innlemmes i avgjørelsesstyringssystemet av brukeren.
Fremgangsmåten kan videre omfatte det å:
motta brukerinnmating som spesifiserer én eller flere hjelpefunksjoner, der hver hjelpefunksjon er en funksjonskombinasjon av en tilhørende delmengde av statistikkene; og
motta brukerinnmating som spesifiserer én eller flere begrensninger på den ene eller de flere hjelpefunksjonene og det globale målet;
Prosessen med å utføre optimeringen tar hensyn til den ene eller de flere begrensningene på den ene eller de flere hjelpefunksjonene og det globale målet.
Den ene eller de flere algoritmene kan omfatte algoritmer som simulerer prosesser knyttet til undersøkelse, utvikling eller produksjon av olje- eller gassfelter. For eksempel kan den ene eller de flere algoritmene omfatte algoritmer som simulerer prosesser knyttet til ett eller flere felter så som letefelter, utviklingsfelter og produksjonsfelter.
I én utførelsesform kan fremgangsmåten videre omfatte det å motta brukerinnmating som spesifiserer funksjonsavhengigheter mellom usikkerhetsvariablene, f.eks. som beskrevet over. Prosessen med å generere instantierte verdier for usikkerhetsvariablene tar hensyn til de funksjonsavhengighetene mellom usikkerhetsvariablene.
I én utførelsesform kan fremgangsmåten videre omfatte det å motta brukerinnmating som spesifiserer funksjonsavhengigheter mellom avgjørelsesvariablene, f.eks. som beskrevet over. Prosessen med å generere verdiene for avgjørelses-variablene tar hensyn til de funksjonsavhengighetene mellom avgjørelsesvariablene.
I én utførelsesform kan brukeren spesifisere korrelasjoner mellom usikkerhetsvariablene, f.eks. som beskrevet over. Prosessen med å generere instantierte verdier for usikkerhetsvariablene tar hensyn til de brukerspesifiserte korrelasjonene.
I én utførelsesform kan det mottas brukerinnmating som spesifiserer beregninger som skal utføres mellom utmatingen fra én eller flere algoritmer og innmatingen til en annen algoritme. (Denne brukerinnmatingen kan være del av brukerinnmatingen mottatt i 1210.) Programkode som representerer beregningene kan være integrert i en beregningsalgoritme. Se beskrivelsen over av resultatberegningsenheten og resultatberegnings-grensesnittet. De to eller flere algoritmene i 1210 kan omfatte én eller flere slike beregningsalgoritmer.
Figur 13 - Datasystem
Figur 13 er et blokkdiagram som representerer ett sett av utførelser av et datasystem 1300 som kan fungere som tjenermaskin eller klientmaskin som beskrevet forskjellige steder her eller datamaskinen beskrevet over i forbindelse med figur 10.
Datasystemet 1300 kan omfatte minst én sentralprosesseringsenhet (CPU) 1360 (dvs. prosessor) som er koblet til en vertsbuss 1362. CPU 1360 kan være en hvilken som helst av forskjellige typer, omfattende, men ikke begrenset til en x86-prosessor, en PowerPC-prosessor, en CPU fra SPARC-familien av RISC-prosessorer, blant annet. Et minnemedium, typisk omfattende halvleder-RAM, referert til her som hovedminne 1366, kan være koblet til vertsbussen 1362 ved hjelp aven minnestyringsenhet 1364. Hovedminnet 1366 kan lagre programmer som kan kjøres for å realisere en hvilken som helst av eller alle, eller en hvilken som helst delmengde av, de forskjellige fremgangsmåteutførelsene beskrevet her. Hovedminnet kan også lagre operativsystemprogramvare, så vel som annen programvare for drift av datasystemet.
Vertsbussen 1362 kan være koblet til en ekspansjonsbuss eller inn/ut-buss 1370 via en busstyringsenhet 1368 eller bussovergangslogikk. Ekspansjonsbussen 1370 kan omfatte seter for forskjellige anordninger så som et skjermkort 1380, en harddisk 1382, lagringsanordninger 1390 (så som en CD-stasjon, et bånddrev, en diskettstasjon, etc.) og et nettverksgrensesnitt 1322. Skjermkortet 1380 kan være koblet til en fremvisningsanordning så som en dataskjerm, en projektor eller en hjelmmontert fremvisningsanordning. Nettverksgrensesnittet 1322 (f.eks. en Ethernet-anordning) kan anvendes for å kommunisere med andre datamaskiner over et nettverk.
Datasystemet 1300 kan også omfatte inn/ut-anordninger 1392 så som en mus, et tastatur og høyttalere.
Utførelser av datasystemet 1300 innrettet til bruk som en tjenermaskin kan være utstyrt med mer prosesseringskapasitet (f.eks. med flere prosessorer), minne-kapasitet og nettverksbåndbredde enn utførelser innrettet til bruk som en klientmaskin. Klientmaskinen kan omfatte musen, tastaturet, høyttalerne og skjermkortet (eller en grafikkaksellerator), mens en tjenermaskin ikke nødvendigvis trenger omfatte disse komponentene.
Enhver fremgangsmåteutførelse (eller deler av denne) beskrevet her kan realiseres i programinstruksjoner. Programinstruksjonene kan lagres på hvilke som helst av forskjellige typer datamaskinlesbare minnemedier. Programinstruksjonene kan leses og eksekveres (av en datamaskin eller et sett av datamaskiner) for å gjennomføre fremgangsmåteutførelsen (eller deler av denne).
Terminologi
Følgende terminologi er anvendt her.
Algoritme: En algoritme er en beregningsmetode.
Parameter: Innmatingene til og utmatingene fra en algoritme er referert til som parametre. En parameter kan enten være en innmating til en algoritme, en utmating fra en algoritme eller både en innmating og en utmating. Hver parameter kan ha et entydig navn (innenfor algoritmen det er definert for) og også en spesifikk type objekt den kan overføre (f.eks. et flyttall, et heltall, en
datastreng, etc).
Parameterkart: Samlingen av parametre som hører til en algoritme refereres til
som dets parameterkart.
Sløyfe: En sløyfe anvendes for å utføre en algoritme et antall ganger (imidlertid ikke nødvendigvis sekvensielt, som angitt over). En
sløyfe kan dannes av en algoritmeiterator, en algoritme og eventuelt en fordelingsenhet (dvs. en mekanisme for å distribuere iterasjoner av algoritmen). Prosessflytbyggeren kan gi brukeren mulighet til å velge forskjellige algoritmeiteratorer for bruk i en sløyfe, og mulighet til å velge forskjellige fordelingsenheter for bruk i sløyfen. En sløyfe er selv en algoritme. Parameterkartet for en sløyfe kan være definert som en kombinasjon av parameterkartet for algoritmeiteratoren og
parameterkartet for algoritmen.
Minnemedium Et minnemedium er et medium innrettet for lagring av informasjon. Eksempler på minnemedier omfatter forskjellige typer magnetiske medier (f.eks. magnetbånd eller magnetplatelagre); forskjellige typer optiske medier (f.eks. CD-ROM);
forskjellige typer halvlederbaserte RAM og ROM; forskjellige medier basert på lagring med elektriske ladninger eller andre
fysiske størrelser; etc.
Algoritmeiterator: En algoritmeiterator anvendes for å generere iterasjonsdatasett for den aktuelle algoritmen innenfor en sløyfe. Algoritmeiteratoren kan ha et par av parameterkart. Ett parameterkart eksponeres gjennom sløyfen til utsiden og anvendes som innmatingene til og utmatingene fra algoritmeiteratoren. Det andre parameterkartet anvendes for å kommunisere med den
aktuelle algoritmen innenfor sløyfen.
Fordelingsenhet: En fordelingsenhet anvendes for å fordele iterasjoner av en gitt
algoritme.
Skriptalgoritme: En skriptalgoritme er et skript (så som et Jython-skript eller Perl-skript) integrert i en algoritme. Innparametrene til algoritmen kan bli forsynt til skriptet, og utparametrene fra skriptet kan være
utparametrene fra algoritmen.
Prosessalgoritme: En prosessalgoritme er en ekstern prosess som er integrert i en algoritme. Prosessalgoritmer kan omfatte prosessimuleringsalgoritmer og optimeringsalgoritmer. En prosessimuleringsalgoritme gjør en simulering av et fysisk system, typisk basert på
én eller flere modeller forsynt som innmating. Ett eksempel på prosessimuleringsalgoritme er en simulator for fluidstrømning
gjennom porøse medier, referert til som en reservoarsimulator. Prosessflyt: En prosessflyt er et sammenkoblet sett av algoritmer. For å koble en utparameter fra én algoritme til en innparametertil en andre algoritme kan prosessflytbyggeren kreve matching av parameterens navn og type. For eksempel kan en heltallsutmating bli sendt til en flyttallsinnmating. Imidlertid kan det å sende en datastreng-utmating til en heltallsinnmating være forbudt. Et grafisk brukergrensesnitt kan tilveiebringes for å muliggjøre manuell sammenkobling av parametere for forskjellige algoritmer. Når den er opprettet, kan om ønsket en prosessflyt bli konvertert til en algoritme.
Selv om utførelsesformene over er beskrevet i betydelig detalj vil en rekke varianter og modifikasjoner sees av fagmannen når beskrivelsen over er fullt forstått. Det er meningen av de følgende kravene skal tolkes å omfatte alle slike varianter og modifikasjoner.

Claims (27)

1. Fremgangsmåte, omfattende det å: (a) motta informasjon som spesifiserer et sett av usikkerhetsvariabler for flere realverdier og spesifiserer en funksjonsrelasjon mellom en første og en andre av usikkerhetsvariablene, der den første usikkerhetsvariabelen er knyttet til en første av realverdiene og den andre usikkerhetsvariabelen er knyttet til en andre av realverdiene; (b) generere verdier for hver av usikkerhetsvariablene, der det å generere verdiene omfatter det å generere en verdi for den første usikkerhetsvariabelen og beregne en verdi for den andre usikkerhetsvariabelen fra verdien til den første usikkerhetsvariabelen basert på funksjonsrelasjonen; (c) for hver av realverdiene, bestemme et tilhørende inndatasett ved anvendelse av i hvert fall en tilhørende delmengde av usikkerhetsvariabel-verdiene, der det å bestemme omfatter det å: bestemme et første inndatasett svarende til den første realverdien ved anvendelse av i hvert fall verdien til den første usikkerhetsvariabelen; og bestemme et andre inndatasett svarende til den andre realverdien ved anvendelse av i hvert fall verdien til den andre usikkerhetsvariabelen; (d) for hver av realverdiene, anrope eksekvering av et tilsvarende sett av én eller flere algoritmer, der hvert sett av én eller flere algoritmer jobber på det tilsvarende inndatasettet for å generere et tilsvarende utdatasett; (e) utføre (b), (c) og (d) flere ganger for å generere flere utdatasett for hver realverdi; (f) beregne én eller flere statistikker for hver av realverdiene basert på den tilsvarende samlingen av utdatasett; (g) generere resulterende data i hvert fall delvis basert på statistikken for realverdiene; (h) vise en angivelse av de resulterende data på en fremvisningsanordning.
2. Fremgangsmåte ifølge krav 1, der realverdiene er knyttet til leting etter og produksjon av olje og/eller gass.
3. Fremgangsmåte ifølge krav 1, der settet av én eller flere algoritmer for hver realverdi velges av en bruker.
4. Fremgangsmåte ifølge krav 1, der (d) omfatter det å: distribuere inndatasettene for realverdiene til én eller flere fjerne datamaskiner for fjerneksekvering av det tilhørende settet av algoritmer; og motta utdatasettene fra den ene eller de flere fjerne datamaskinene.
5. Fremgangsmåte ifølge krav 1, der nevnte første informasjon også spesifiserer én eller flere korrelasjoner mellom usikkerhetsvariablene, idet nevnte generering av verdier for hver av usikkerhetsvariablene tar hensyn til den ene eller de flere spesifiserte korrelasjonene.
6. Fremgangsmåte ifølge krav 5, der usikkerhetsvariablene omfatter en tredje usikkerhetsvariabel og en fjerde usikkerhetsvariabel forbundet med forskjellige av realverdiene, der den ene eller de flere korrelasjonene omfatter en korrelasjon mellom den tredje og den fjerde usikkerhetsvariabelen.
7. Fremgangsmåte ifølge krav 1, der (c) omfatter det å velge én av to eller flere modeller for innlemmelse i ett av inndatasettene basert på verdien til en tredje av usikkerhetsvariablene.
8. Fremgangsmåte ifølge krav 1, der (c) omfatter det å: velge én av to eller flere modeller basert på verdien til en tredje av usikkerhetsvariablene; velge én av to eller flere delmodeller under den valgte modellen basert på verdien til en fjerde av usikkerhetsvariablene; der den valgte delmodellen kan anvendes for å bestemme data som skal innlemmes i ett av inndatasettene.
9. Fremgangsmåte ifølge krav 1, videre omfattende det å: (i) motta annen informasjon som spesifiserer flere avgjørelsesvariabler; (j) generere verdier for avgjørelsesvariablene, der avgjørelsesvariablenes verdier anvendes for å bestemme inndatasettene for realverdiene; (k) beregne en verdi for et globalt mål fra den ene eller de flere statistikkene for hver av realverdiene; kjøre en optimeringsenhet for å bestemme ett eller flere sett av verdier for avgjørelsesvariablene, der det å kjøre optimeringsenheten omfatter det å utføre i hvert fall (j), (e), (f) og (k) et antall ganger, idet optimeringsenheten er innrettet for å søke etter et maksimum eller minimum for det globale målet over i hvert fall en del av et rom som avgrenses av avgjørelsesvariablene.
10. Fremgangsmåte ifølge krav 9, der optimeringsenheten kan velges av en bruker fra et sett av støttede optimeringsenheter.
11. Fremgangsmåte ifølge krav 9, der det å vise en angivelse av resultatdataene omfatter det å vise en grafisk representasjon av i hvert fall en delmengde av det ene eller de flere settene av verdier for avgjørelsesvariablene.
12. Fremgangsmåte ifølge krav 9, der nevnte annen informasjon også spesifiserer én eller flere begrensninger på avgjørelsesvariablene, der nevnte generering av verdier for avgjørelsesvariablene tar hensyn til den ene eller de flere begrensningene.
13. Fremgangsmåte ifølge krav 9, der nevnte annen informasjon også spesifiserer én eller flere funksjonelle avhengigheter mellom avgjørelsesvariablene, idet nevnte generering av verdier for avgjørelsesvariablene tar hensyn til nevnte én eller flere funksjonelle avhengigheter mellom avgjørelsesvariablene.
14. Fremgangsmåte ifølge krav 9, der hver av avgjørelsesvariablene har et tilhørende sett av oppnåelige verdier som representerer mulige utfall av en tilhørende avgjørelse, der hver av usikkerhetsvariablene har et tilhørende sett av oppnåelige verdier.
15. Fremgangsmåte ifølge krav 9, videre omfattende det å: (I) beregne en verdi for en hjelpefunksjon fra den ene eller de flere statistikkene for hver av realverdiene; der det å utføre optimeringen omfatter det å utføre (j), (e), (f), (k) og (I) et antall ganger.
16. Fremgangsmåte ifølge krav 15, der optimeringsenheten innrettes for å søke etter nevnte maksimum eller minimum for det globale målet underlagt i hvert fall en begrensning på en funksjonskombinasjon av det globale målet og hjelpefunksjonen.
17. Fremgangsmåte ifølge krav 15, der det å vise en angivelse av resultatdataene på en fremvisningsanordning omfatter det å: vise et plott av den globale målverdien mot hjelpefunksjonsverdien.
18. Fremgangsmåte, omfattende det å: (a) motta første brukerinnmating som spesifiserer to eller flere algoritmer og spesifiserer én eller flere koblinger mellom de to eller flere algoritmene, der hver av koblingene er en kobling mellom en utmating fra én av algoritmene og innmatingen til en annen av algoritmene; (b) motta en andre brukerinnmating som spesifiserer én eller flere datastrukturer som er i overensstemmelse med de to eller flere algoritmene; (c) jobbe på den ene eller de flere datastrukturene som reaksjon på en tredje brukerinnmating for å bygge opp én eller flere modeller for de to eller flere algoritmene, der den ene eller de flere modellene omfatter én eller flere usikkerhetsvariabler og én eller flere avgjørelsesvariabler; (d) motta fjerde brukerinnmating som spesifiserer en optimeringsenhet; og (e) utføre en optimering ved anvendelse av den brukerspesifiserte optimeringsenheten for å optimere en målfunksjon, der det å utføre optimeringen omfatter det å: (e1) generere én eller flere verdier for den ene eller de flere avgjørelses-variablene; (e2) anrope flere eksekveringer av de to eller flere algoritmene i henhold til den ene eller de flere koblingene, der hver av eksekveringene jobber på et tilhørende sett av én eller flere instantierte modeller som bestemmes av den ene eller de flere modellene, den ene eller de flere avgjørelsevariabel-verdiene og et tilhørende sett av én eller flere instantierte verdier for den ene eller de flere usikkerhetsvariablene; (e3) beregne én eller flere statistikker basert på utmating fra de to eller flere algoritmene fra nevnte flere eksekveringer; (e4) beregne en verdi for målfunksjonen fra den ene eller de flere statistikkene; og (e5) gjenta (e1) til (e4) et antall ganger.
19. Fremgangsmåte ifølge krav 18, der (a)-(d) utføres på en første datamaskin, idet fremgangsmåten videre omfatter det å: sende informasjon som spesifiserer de to eller flere algoritmene, informasjon som spesifiserer den ene eller de flere koblingene, informasjon som spesifiserer den ene eller de flere statistikkene, informasjon som spesifiserer optimeringsenheten og informasjon som spesifiserer det globale målet til en tjenermaskin, idet (e) utføres på tjenermaskinen.
20. Fremgangsmåte ifølge krav 18, der tjenermaskinen utfører (e2) ved å: (e2.1) generere et sett av én eller flere instantierte verdier for den ene eller de flere usikkerhetsvariablene; (e2.2) bestemme én eller flere instantierte modeller fra den ene eller de flere modellene og settet av én eller flere instantierte verdier; (e2.3) sende den ene eller de flere instantierte modellene til en fjerndatamaskin, der den fjerne datamaskinen utfører én av nevnte flere eksekveringer av de to eller flere algoritmene på den ene eller de flere instantierte modellene; og gjenta (e2.1) til (e2.3) for å fordele de flere kjøringene til et sett av én eller flere fjerne datamaskiner.
21. Fremgangsmåte ifølge krav 20, videre omfattende det å: motta brukerinnmating som spesifiserer en fordelingsenhet, der fordelingsenheten er et program som styrer nevnte gjentagelse av (e2.1) til (e2.3).
22. Fremgangsmåte ifølge krav 18, videre omfattende det å: motta brukerinnmating som spesifiserer én eller flere hjelpefunksjoner, der hver hjelpefunksjon er en funksjonskombinasjon av en tilhørende delmengde av den ene eller de flere statistikkene; motta brukerinnmating som spesifiserer én eller flere begrensninger som involverer den ene eller de flere hjelpefunksjonene og det globale målet; der nevnte gjennomføring av optimeringen tar hensyn til ene eller de flere begrensningene som involverer den ene eller de flere hjelpefunksjonene og det globale målet.
23. Fremgangsmåte ifølge krav 18, der den ene eller de flere algoritmene omfatter algoritmer som simulerer prosesser knyttet til leting etter, bearbeiding eller produksjon av olje eller gass.
24. Fremgangsmåte ifølge krav 18, videre omfattende det å: motta en femte brukerinnmating som spesifiserer den ene eller de flere statistikkene som skal beregnes på utmatingen fra de to eller flere algoritmene; og motta en sjette brukerinnmating som spesifiserer en funksjonskombinasjon av den ene eller de flere statistikkene for å definere målfunksjonen.
25. Fremgangsmåte ifølge krav 18, videre omfattende det å: vise en grafisk representasjon av progresjonen i optimeringsprosessen.
26. Datamaskinlesbart minnemedium innrettet for å lagre programinstruksjoner, der programinstruksjonene kan bli eksekvert for å utføre hvilke som helst av fremgangsmåtene ifølge kravene 1 til 25.
27. Datasystem, omfattende: et minne innrettet for å lagre programinstruksjoner; minst én prosessor innrettet for å lese og eksekvere programinstruksjonene, der nevnte programinstruksjoner kan bli eksekvert for å utføre hvilke som helst av fremgangsmåtene ifølge kravene 1 til 25.
NO20076155A 2005-04-29 2007-11-29 Analyse av multiple verdier under hensyn til usikkerheter NO338779B1 (no)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US67648405P 2005-04-29 2005-04-29
US20381505A 2005-08-15 2005-08-15
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/016476 WO2006119119A2 (en) 2005-04-29 2006-05-01 Analysis of multiple assets in view of uncertainties

Publications (2)

Publication Number Publication Date
NO20076155L NO20076155L (no) 2008-01-18
NO338779B1 true NO338779B1 (no) 2016-10-17

Family

ID=36691850

Family Applications (3)

Application Number Title Priority Date Filing Date
NO20076155A NO338779B1 (no) 2005-04-29 2007-11-29 Analyse av multiple verdier under hensyn til usikkerheter
NO20076156A NO339285B1 (no) 2005-04-29 2007-11-29 Optimalisering av avgjørelser vedrørende multiple verdier ved tilstedeværelse av ulike underliggende usikkerheter
NO20160843A NO341596B1 (no) 2005-04-29 2016-05-20 Analyse av multiple verdier under hensyn til usikkerheter

Family Applications After (2)

Application Number Title Priority Date Filing Date
NO20076156A NO339285B1 (no) 2005-04-29 2007-11-29 Optimalisering av avgjørelser vedrørende multiple verdier ved tilstedeværelse av ulike underliggende usikkerheter
NO20160843A NO341596B1 (no) 2005-04-29 2016-05-20 Analyse av multiple verdier under hensyn til usikkerheter

Country Status (6)

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

Families Citing this family (11)

* 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
US8775347B2 (en) 2008-04-18 2014-07-08 Exxonmobil Upstream Research Company Markov decision process-based support tool for reservoir development planning
CA2716976A1 (en) 2008-04-21 2009-10-29 Vikas Goel Stochastic programming-based decision support tool for reservoir development planning
BRPI0923412A2 (pt) 2008-12-16 2016-05-24 Exxonmobil Upstream Res Co método, e, produto de programa de computador.
US8473435B2 (en) * 2010-03-09 2013-06-25 Schlumberger Technology Corporation Use of general bayesian networks in oilfield operations
US10163420B2 (en) * 2014-10-10 2018-12-25 DimensionalMechanics, Inc. System, apparatus and methods for adaptive data transport and optimization of application execution
US10062354B2 (en) 2014-10-10 2018-08-28 DimensionalMechanics, Inc. System and methods for creating virtual environments
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 (주)스페이스 수준측량을 위한 측지 측량시스템

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040220790A1 (en) * 2003-04-30 2004-11-04 Cullick Alvin Stanley Method and system for scenario and case decision management

Family Cites Families (1)

* 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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040220790A1 (en) * 2003-04-30 2004-11-04 Cullick Alvin Stanley Method and system for scenario and case decision management

Also Published As

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

Similar Documents

Publication Publication Date Title
US8458000B2 (en) Analysis of multiple assets in view of functionally-related uncertainties
US8457997B2 (en) Optimization of decisions regarding multiple assets in the presence of various underlying uncertainties
NO20160843A1 (no) Analyse av multiple verdier under hensyn til usikkerheter
AU2004237165B2 (en) Method and system for scenario and case decision management
Ciaurri et al. Application of derivative-free methodologies to generally constrained oil production optimization problems
US8532967B2 (en) Executing a utility in a distributed computing system based on an integrated model
CN101093559B (zh) 一种基于知识发现的专家系统构造方法
AU2009244721B2 (en) Systems and methods for connectivity analysis using functional obejects
CA2527864A1 (en) Stochastically generating facility and well schedules
US9047565B2 (en) Intelligent plant development library environment
RU2413992C2 (ru) Анализ многочисленных объектов с учетом неопределенностей
US8244471B2 (en) Oilfield analysis system and method
Parashar et al. Application of grid-enabled technologies for solving optimization problems in data-driven reservoir studies
Aliakbargolkar et al. Architecting methodology for spatially and temporally distributed resource extraction systems
HShah et al. Hydrocarbon Production Optimization: Theory and Practices