The subject disclosure relates to modeling techniques for analyzing subterranean formations having hydrocarbon-containing reservoirs therein.
Oilfield operations (such as surveying, drilling, wireline testing, completions, production, and planning and oilfield analysis) are typically performed to locate and gather valuable downhole hydrocarbon fluids (such as oil and natural gas). Various aspects of the oilfield and its related operations are shown in
As shown in
Production can involve enhanced recovery techniques and/or stimulation processes that are performed to enhance the productivity of a well. Enhanced oil recovery can begin at any time during the productive life of an oil reservoir. Its purpose is not only to restore formation pressure, but also to improve oil displacement or fluid flow in the reservoir. The four major types of enhanced oil recovery operations are water flooding, chemical flooding (e.g., alkaline flooding or micellar-polymer flooding), miscible displacement (e.g., carbon dioxide injection or hydrocarbon injection), and thermal recovery (e.g., steamflooding steam-assisted gravity drainage, or in-situ combustion). Stimulation processes generally fall into two main groups, hydraulic fracturing processes and matrix processes. Hydraulic fracturing processes are performed above the fracture pressure of the reservoir formation and create a highly conductive flow path between the reservoir and the wellbore. Matrix processes are performed below the reservoir fracture pressure and generally are designed to restore the natural permeability of the reservoir following damage to the near-wellbore area. Stimulation in shale gas and shale oil reservoirs typically takes the form of hydraulic fracturing processes. Various equipments may be positioned about the oilfield to monitor oilfield parameters and/or to manipulate the oilfield operations.
During the oilfield operations, data is typically collected for analysis and/or monitoring of the oilfield operations. Such data may include, for example, subterranean formation, equipment, historical and/or other data. Data concerning the subterranean formation is collected using a variety of sources. Such formation data may be static or dynamic. Static data relates to, for example, formation structure and geological stratigraphy that define the geological structure of the subterranean formation. Dynamic data relates to, for example, fluids flowing through the geologic structures of the subterranean formation over time. Such static and/or dynamic data may be collected to learn more about the formations and the valuable assets contained therein.
Sources used to collect static data may be seismic tools, such as a seismic truck that sends compression waves into the earth as shown in
Sensors may be positioned about the oilfield to collect data relating to various oilfield operations. For example, sensors in the drilling equipment may monitor drilling conditions, sensors in the wellbore may monitor fluid composition, sensors located along the flow path may monitor flow rates, and sensors at the processing facility may monitor fluids collected. Other sensors may be provided to monitor downhole, surface, equipment or other conditions. The monitored data is often used to make decisions at various locations of the oilfield at various times. Data collected by these sensors may be further analyzed and processed. Data may be collected and used for current or future operations. When used for future operations at the same or other locations, such data may sometimes be referred to as historical data.
The processed data may be used to predict various aspects of the reservoir (such as downhole conditions of the reservoir) and make decisions concerning oilfield operations with respect to the reservoir. Such decisions may involve well planning, well targeting, well completions, operating levels, simulation rates and other operations and/or conditions. Often this information is used to determine when to drill new wells, re-complete existing wells, or alter wellbore production.
Data from one or more wellbores may be analyzed to plan or predict various outcomes at a given wellbore. In some cases, the data from neighboring wellbores or wellbores with similar conditions or equipment may be used to predict how a well will perform. There are typically a large number of variables and large quantities of data to consider in analyzing oilfield operations. It is, therefore, often useful to model the behavior of a reservoir and/or associated oilfield operations to determine the desired course of action. During the ongoing operations, the operating conditions may need adjustment as conditions change and new information is received.
Techniques have been developed to model the behavior of various aspects of a reservoir and associated oilfield operations, such as geological structures, downhole reservoirs, wellbores, surface facilities as well as other portions of the oilfield operation. Examples of these modeling techniques are shown in patent/Publication/application Nos. U.S. Pat. No. 5,992,519, WO2004/049216, WO1999/064896, WO2005/122001, U.S. Pat. No. 6,313,837, US2003/0216897, US2003/0132934, US2005/0149307, US2006/0197759, U.S. Pat. No. 6,980,940, US2004/0220846, and Ser. No. 10/586,283. Techniques have also been developed for performing reservoir simulation operations. See, for example, patent/Publication/application Nos. U.S. Pat. No. 6,230,101, U.S. Pat. No. 6,018,497, U.S. Pat. No. 6,078,869, GB2336008, U.S. Pat. No. 6,106,561, US2006/0184329, U.S. Pat. No. 7,164,990.
Despite the development and advancement of reservoir simulation techniques, there remains a need to consider the effects of uncertainty in computational models of reservoirs and associated oilfield operations.
This summary is provided to introduce a selection of concepts that are further described below in the detailed description. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used as an aid in limiting the scope of the claimed subject matter.
Methods and associated computational systems/frameworks are provided for modeling an aspect of a hydrocarbon-containing reservoir by constructing a first factor graph having variables and factors that describe the aspect of the hydrocarbon-containing reservoir. The first factor graph is converted to a tree-structured graph that does not have any cycle or loops. The tree-structured graph is converted to a second factor graph that does not contain any cycles or loops, wherein the second factor graph has variables and factors that describe the aspect of the hydrocarbon-containing reservoir. A query on the second factor graph is carried out involving message passing operations that perform probabilistic inference on the second factor graph with regard to the aspect of the hydrocarbon-containing reservoir that is modeled by the second factor graph.
In some examples, a subset of the variables of the second factor graph are probabilistic variables that account for uncertainty associated therewith. The message passing operations can be configured to update the probabilistic variables of the second factor graph based on the factors of the second factor graph.
In some examples, the probabilistic inference performed on the second factor graph can involve one or more of the following: i) the computation of a marginal distribution of a single probabilistic variable; ii) the joint distribution of several probabilistic variables; and iii) drawing random samples from a probability distribution with respect to the probabilistic variables of the second factor graph.
In some examples, the query that operates on the second factor graph can be any one of the following types: i) a probability of evidence query; ii) a marginalization query; iii) a maximum posterior hypothesis query; iv) a most probable explanation query; v) a sensitivity analysis; and vi) an analysis that compares hypotheses.
In some examples, the value for at least one variable of the second factor graph can be derived from oilfield operations carried out with respect to the hydrocarbon-containing reservoir. The results of the probabilistic inference on the second factor graph may be used for decision making with regard to the aspect of the hydrocarbon-containing reservoir that is modeled by the second factor graph while accounting for uncertainty therein.
In accordance with some examples a system includes a processor and a memory. The memory stores instructions executable by the processor to perform processes that include: converting a first factor graph to a tree-structured graph that does not have any cycle or loops, wherein the first factor graph includes variables and factors that describe the aspect of the hydrocarbon-containing reservoir; converting the tree-structured graph to a second factor graph that does not contain any cycles or loops, the second factor graph having variables and factors that describe the aspect of the hydrocarbon-containing reservoir; and processing a query on the second factor graph, the processing of the query involving message passing operations that perform probabilistic inference on the second factor graph with regard to the aspect of the hydrocarbon-containing reservoir that is modeled by the second factor graph.
Additional aspects and examples of the disclosed methods and systems may be understood with reference to the following detailed description taken in conjunction with the provided drawings.
The particulars shown herein are by way of example and for purposes of illustrative discussion of the examples of the subject disclosure only and are presented in the cause of providing what is believed to be the most useful and readily understood description of the principles and conceptual aspects of the subject disclosure. In this regard, no attempt is made to show details in more detail than is necessary, the description taken with the drawings making apparent to those skilled in the art how the several forms of the subject disclosure may be embodied in practice. Furthermore, like reference numbers and designations in the various drawings indicate like elements.
A surface unit 134 can be used to communicate with the drilling tool 106b and offsite operations. The surface unit 134 is capable of communicating with the drilling tool 106b to send commands to drive the drilling tool 106b, and to receive data therefrom. Sensors, such as temperature sensors, pressure sensors, stain sensors and flow meters, may be positioned throughout the reservoir, rig, oilfield equipment (such as the downhole tool), or other portions of the oilfield for gathering information about various parameters, such as surface parameters, downhole parameters, and/or operating conditions. These sensors can be configured to measure oilfield parameters during the drilling operation, such as weight on bit, torque on bit, pressures, temperatures, flow rates, compositions and other parameters of the drilling operation. The surface unit 134 can be provided with computer facilities for receiving, storing, processing, and analyzing data collected by the sensors positioned throughout the oilfield 100 during the drilling operations.
Computer facilities, such as those of the surface unit 134, may be positioned at various locations about the oilfield 100 and/or at remote locations. One or more surface units 134 may be located at the oilfield 100, or linked remotely thereto. The surface unit 134 may be a single unit, or a complex network of units used to perform the data management functions throughout the oilfield 100. The surface unit 134 may be a manual or automatic system. The surface unit 134 may be operated and/or adjusted by a user. The surface unit 134 may be provided with a transceiver 137 to allow communications between the surface unit 134 and various portions of the oilfield 100 or other locations. The surface unit 134 may also be provided with or functionally linked to a controller for actuating mechanisms at the oilfield. The surface unit 134 may then send command signals to the oilfield 100 in response to data received. The surface unit 134 may receive commands via the transceiver or may itself execute commands to the controller. A processor may be provided to analyze the data (locally or remotely) and make the decisions to actuate the controller. In this manner, the oilfield 100 may be selectively adjusted based on the data collected to optimize fluid recovery rates, or to maximize the longevity of the reservoir and its ultimate production capacity. These adjustments may be made automatically based on computer protocol, or manually by an operator. In some cases, well plans may be adjusted to select optimum operating conditions, or to avoid problems.
As previously described, sensors, surface equipment and downhole tools can be used to collect data relating to various oilfield operations. This data may be collected by the surface unit 34 and/or other data collection sources for analysis or other processing. The data collected by the sensors, surface equipment and downhole tools may be used alone or in combination with other data. The data may be collected in a database and all or select portions of the data may be selectively used for analyzing and/or predicting oilfield operations of the current and/or other wellbores. The data may be historical data, real time data, or combinations thereof. The data may also be combined with historical data or other inputs for further analysis. The data may be housed in separate databases, or combined into a single database.
The collected data may be used to perform analysis, such as modeling operations. For example, the seismic data output may be used to perform geological, geophysical, reservoir engineering, and/or production simulations. The reservoir, wellbore, surface and/or process data may be used to perform reservoir, wellbore, or other production simulations, planning analyses, and optimizations.
While simplified wellsite configurations are shown, it will be appreciated that the oilfield may cover a portion of land, sea and/or water locations that hosts one or more wellsites. Production may also include injection wells (not shown) for added recovery. One or more gathering facilities may be operatively connected to one or more of the wellsites for selectively collecting downhole fluids from the wellsite(s).
While certain data acquisition tools are depicted in
The oilfield configuration in
The respective graphs of
The subterranean formation 304 has a plurality of geological structures 306a-306d. As shown, the formation has a sandstone layer 306a, a limestone layer 306b, a shale layer 306c, and a sand layer 306d. A fault 307 extends through the formation. The static data acquisition tools can be adapted to measure the formation and detect the characteristics of the geological structures of the formation.
While a specific subterranean formation 304 with specific geological structures are depicted, it will be appreciated that the formation may contain a variety of geological structures. Fluid may also be present in various portions of the formation. Each of the measurement devices may be used to measure properties of the formation and/or its underlying structures. While each acquisition tool is shown as being in specific locations along the formation, it will be appreciated that one or more types of measurement may be taken at one or more location across one or more oilfields or other locations for comparison and/or analysis.
The data collected from various sources, such as the data acquisition tools of
To facilitate characterization and analysis of a reservoir (and/or possibly oilfield operations associated therewith), one or more computational models and an associated data processing platform can be configured to process all or part of the data collected from the various sources as described herein. The computational model(s) can be based on functional relationships between variables that represent aspects of the reservoir being modeled. There are often uncertainties in the collected data, which may reflect confidence in the measuring equipment, noise in the data or the like. Such uncertainties can be represented in the computational model(s) by probability density functions reflecting the probability that certain variables have particular values. The computational model(s) is often derived from domain knowledge, such as knowledge of scientist(s), engineer(s), and/or economist(s) that have a good idea how the reservoir functions. That is, they may know that if variable A changes, it will cause a change in variable B by a predictable amount, with greater or lesser certainty. This domain knowledge may be available for all critical variables in the domain, allowing the causal links between them to be defined. This form of information can be exploited, for example, in defining the computational model(s) of the reservoir as well as in sensitivity analyses that uses such computational model(s) and in determining the value of information that is produced from the computational model(s).
In one aspect, a Factor Graph can be used as part of a computational model (and associated computational framework) that describes aspects of a reservoir of interest. A Factor Graph is a bipartite graph composed of two sets of nodes with directed edges extending between the two sets of nodes. One set of nodes are variables which represent probabilistic or uncertain measurements, natural phenomena, model parameters and interventions with respect to the reservoir of interest. The other set of nodes are factors which represent operators that transform input probabilistic variables to output probabilistic variables. Each factor can be connected to many variables. For example, if a factor node is connected to two variables nodes A and B, a possible factor operator could be imply(A,B), meaning that if the random variable A takes value 1, then so must the random variable B. The factor operators can have weight data associated with it, which describes how much influence the factor has on its variables in relative terms. In other words, the weight encodes the confidence in the relationship expressed by the factor operator. If the weight is high and positive, there is very high confidence in the operator that the factor encodes. On the other hand, if the weight is high and negative, there is very little confidence in the operator that the factor encodes. The weight data can be learned from training data, or assigned manually.
It is common for a circular shape to represent a variable and a square shape to represent a factor in the Factor Graph. The directed edges extending between the two sets of nodes can include one or more directed edges entering a given factor and a directed edge that exits a given factor. The directed edge(s) that enter a given factor, which relates the parent variable(s) to the given factor, is commonly represented by an arrow with an open head. The directed edge that exits a given factor, which relates the given factor to a variable computed by the given factor, is commonly represented by an arrow with a closed head. An exemplary Factor Graph is shown in
The Factor Graph can be used to represent a Bayesean Network for a hydrocarbon-containing reservoir system. A Bayesian Network is a directed acyclic graph (DAG) with nodes representing the variables of the system (in this case, a hydrocarbon-containing reservoir system) as well as directed edges representing the conditional relationships between the variables from conditioning (parent) nodes to conditioned (child) nodes. Each variable may have a set of mutually exclusive states, in which case they are discrete variables. A classic Bayesian Network is illustrated in
p(X1,X2,X3,X4,X5,X6,X7)=p(X1)p(X2)p(X3)p(X4|X1,X2,X3)p(X5|X1,X3)p(X6|X4)p(X7|X5) (1)
The relationship between these probabilities and those of its parents (conditioning variables) can be represented by a Conditional Probability Table (CPT), which can be quite large as the number of columns equals the number of states of the current variable and the number of rows represents the number of permutations of all the parents' states. Minimizing the size of the CPT is a challenge when designing inference and elicitation strategies.
A variable may take on continuous values over a range. This continuous property can be discretized into intervals within the range that can then be assigned to states, or the continuity can be modeled as a Probability Density Function (PDF.) Other strategies are then available for propagating probabilities through the network such as Gibbs sampling or variational methods.
A powerful feature of representing conditional probability problems as Bayesian Networks with the property of being Directed Acyclic Graphs (DAG) is that rules of conditional dependence and independence can be defined. Specifically, when influence can flow from X to Y via Z, the trail X⇄Z⇄Y is active.
The results of this analysis for active two-edge trails are illustrated in
In block 603, the Factor Graph of block 601 is converted to a tree-structured graph which does not contain any cycles or loops. In this conversion, each variable in the Factor Graph of block 601 becomes an element (such as a clique or sub-graph) in the tree-structured graph.
In block 605, the tree-structured graph of block 603 is converted to a Factor Graph which does not contain any cycles or loops. In this conversion, the probabilistic variables remain unchanged with the addition of factors representing the factorization of the graph. The lack of cycles or loops in the Factor Graph of block 605 allows many problems to be solved efficiently with a message-passing algorithm. These problems include the computation of the marginal distribution p(x) of a single variable or the joint distribution of several variables, or the computation of random samples x from a distribution p(x).
In block 607, a query is run for analysis and/or decision making with respect to aspect of the reservoir modeled by the Factor Graph of block 605. The query is processed using message passing (such as a the sum-product algorithm) for belief network propagation and probabilistic inference on the Factor Graph. Such inference can involve the computation of the marginal distribution p(x) of a single variable or the joint distribution of several variables, and drawing random samples x from a distribution p(x) with respect to the probabilistic variables of the Factor Graph of block 605. The query of block 607 can be one of several types, such as a probability of evidence query, a marginalization query, a maximum posterior hypothesis query, and a most probable explanation query. Multiple queries can be run as part of a sensitivity analysis or analysis that compares hypotheses.
In block 609, the results of the query of block 607 can be output (for example, visually displayed on a display screen or on a plot) for communication to one or more decision maker(s) and used for analysis and/or decision making with regard to the aspect of the reservoir modeled by the Factor Graph of 605. The results can include (or are based on) the uncertainty represented by the outcome of the probabilistic inference on the Factor Graph inference that is performed in block 607. This allows the decision maker(s) to take into account and understand the uncertainty within the aspect of the reservoir modeled by the computational framework.
The processes begin in block 701 where domain knowledge (such as the knowledge of scientist(s), engineer(s), and/or economist(s) that have a good idea how the reservoir functions) is used to define the variables that represent an aspect of a reservoir. This is generally done first but can be iteratively improved in the context of defining the causal structure and factors associated with the variables. One or more the variables can be probabilistic in nature and associated with initial probability data (such as an initial probability distribution function or CPT).
The variables can be continuous, discrete, categorical, or binary. Continuous variables can be real numbers (e.g., −∞<R<∞), signed real numbers (e.g., 0<R<∞), or bounded real numbers (e.g., 0≦R≦1). An example of continuous variable defined by a real or signed real number might be a measurement, while a compositional property (such as porosity) might be represented by continuos variable defined by a bounded real number. Discrete variables may be integral or natural numbers. An example would be the number of heads in a series of coin tosses. Categorical variables are represented by a finite set of states. For example, a rock type may have one of the following states: sandstone, shale, limestone, dolostone, etc. Binary variables have two states: true or false. Binary variables can be used to make simplifying assumptions that become part of the Factor Graph and the resulting reasoning framework.
For categorical and binary variables, the discrete states are defined from information that is critical to the variable. They are not to describe the spectrum of values the variable can assume, but the critical values. Thus, the states High, Medium and Low may not be crucial for the reasoning framework, but rather High and Low with a critical value signifying the boundary between the two (now binary) states. In can be useful to strive to have as few states in a variable as possible. It is generally useful to introduce additional variables than have multiple states on a single variable. When defining the discrete states for the categorical and binary variables, the following should be considered:
The Factor Graph can be configured to model one or more points in time-related causal phenomena. In this case, the following are considered with respect to time when designing the Factor Graph:
For example,
Similar to time, the scale of the variable is to be precisely defined. For example, when defining variables that relate to an entire cementing job that may represent a depth interval of 10's to 100's of meters, the variables and states can be related to observations that might be made at a fine depth resolution, e.g., 1 cm. Thus, the probabilistic variable describing a phenomenon affecting the entire zone will be the summary variable of a probabilistic sub-graph that integrates the fine scale measurements over the entire interval. Thus, it would be meaningless to have a variable stating that fractures are present, but rather the variable would specify the depth interval fractured and conversely the un-fractured or coherent interval.
When defining the variables subject to the constraints above, it can be useful to classify variables as follows:
When a probabilistic variable has been defined, it is useful to understand if possible the prior probabilistic model describing the variable. For example, a continuous real variable may well be described with a single Gaussian or mixture model Gaussian. A compositional variable such as porosity may be described, for example, with a single Beta or mixture model Beta. For a discrete variable with multiple states, it might be useful to describe it with a Dirichlet distribution as described in chapter 9.4.3 of Barber, D., “Bayesian Reasoning and Machine Learning,” 1st ed., Cambridge University Press, 2012, herein incorporated by reference in its entirety. Note that the selection of the appropriate model for a variables probability distribution is useful as it can help the efficiency of training and solving the overall network. If, in the network, conditioning and conditioned variables have conjugate models, then the message passing inference can solved analytically rather than with a more expensive numerical sampling approach.
The process then continues to block 703 where the causal relationships between variables are identified. In some examples, a set of five idioms as defined by Neil et al., “Building Large-Scale Bayesian Networks.” The Knowledge Engineering Review 15, 1999, pgs. 257-284, can be used to represent the causal relationships between variables. These five idioms include:
The process then continues to block 705 where the factors that connect the conditioning (parent) variables and conditioned (child) variables are identified. Note that such factors can take the form of logical gates (AND gates, OR gates), conditional probability tables (CPTs), or forward modeling simulators. Specifically, the factor can be implemented as
In some examples, a factor can be realized by a Noisy OR gate if the input and output parameters are Boolean variables. Examples of Noisy OR gates are shown in
The Noisy OR gate can be used to reduce the number of conditional variables upon which a conditioned variable depends. Consider a simple network with one binary variable E (effect) conditioned on N causal variables Ci (cause) with binary states as illustrated in
It is also contemplated that the Factor Graph can employ plates that are used to represent repeated instances of the sub-graph. An example of a plate is illustrated in
It is also contemplated that the Factor Graph can employ gates that allow support for categorical variables, mixture models, and interventions.
p(x,c,m1,m2)=p(c)p(m1)p(m2)p(x|m1)δ(c=1)p(x|m2)δ(c=2) (2)
In this example, the variable c is a categorical variable that may assume the values 1 or 2. If c has the value 1, then the indicated gate is turned on, while the gate for category 2 is turned off. Conversely, if c has the value 2, then gate 2 is turned on and gate 1 is turned off. This switching behavior is implemented in the factorized probability function above, by exponentiation of the corresponding factor with the Kronecker delta function (δ). Thus, in the above equation, the following holds:
c=1→p(x|m1)δ(c=1)p(x|m2)δ(c=2)=p(x|m1)
c=2→p(x|m1)δ(c=1)p(x|m2)δ(c=2)=p(x|m2) (3)
Note that c could assume a value of 1 or 2 based on an observation of the system, or it could represent a decision that is made, or it could be probabilistic in which case Eqn. (2) is a mixture model when the joint probability is marginalized over c.
It is also contemplated that the Factor Graph can employ noise variables that represent uncertainty with regard to a measured variable. It is commonly the case that when observed, a variable may not be precisely known. That is, the measurement may have uncertainty. When the uncertainty on an observation or measurement is large, then this evidence is commonly called “soft evidence”.
It is also contemplated that the Factor Graph can employ variables that represent accuracy or trueness with regard to a measured variable. Here, accuracy or trueness is defined as the probability the measurement agrees with the “true” value. For example, if the “true” porosity of a measurement were 0.30, then a number of measurements (e.g., 0.28, 0.30, 0.32) in which the mean value is 0.30 would have a high accuracy. In contrast, if a sequence of measurements yielded a mean value different from 0.30 then the measurement's accuracy would be low, e.g., 0.30, 0.32, 0.34, 0.36 (mean value of 0.33.)
When the factor is a probabilistic function, it can afford the opportunity to integrate a forward modeling application that may be as simple or as complex as needed. For example, consider the following deterministic model with additive noise ε:
y=f(α,x)+ε, (4)
where x is the independent observed data, and
p(y|α,β,x)=N(f(α,x),β−1). (5)
Note that the actual behavior of the factor is independent of the design. Thus, the causal relationship between a set of variables and the effect is independent of how the factor relates them. An early implementation of the Factor Graph might implement the factor as a CPT trained from observed data, but a later implementation may utilize a forward model for the factor once understanding of the system improves. This is a powerful aspect of the Factor Graph approach in that the system model can be decoupled from the inference solution.
The process then continues to block 707 where network learning is carried out to define the behavior of the factors. If the factors are CPTs, then they are to be populated. There are a number of different sources of information for the network learning in the context of the reservoir system including but not limited to the following:
The operations continue to block 803 where the Directed Graph is converted to an Undirected Graph through moralization. In an Undirected Graph, the edges do not have a direction. Moralization involves connecting all common parents of a variable. In a Directed Graph, two parents (conditioning variables) are associated because they have a common child (conditioned variable). In the Undirected Graph, this association between parents is retained by directly connecting them with each other. This operation is illustrated graphically in
The operations continue to block 805 to triangulate the Undirected Graph resulting from 803. Triangulation involves every cycle of 4 or more vertices to have a chord. This operation is illustrated graphically in
The operations then continue to block 807 to identify maximal cliques in the triangulated Undirected Graph that results from 805. A clique is a sub-graph in which every vertex in the sub-graph is directly connected to the other vertices. A maximal clique is a clique that cannot be extended by adding an adjacent vertex to the clique. For the triangulated Undirected Graph of
The operations then continue to block 809 to generate a Junction Graph from the triangulated Undirected Graph that results from 805 and the maximal cliques identified in 807. The Junction Graph is formed with connecting separator nodes between the maximal cliques satisfying the running junction property, which states that the separator node on a path between maximal cliques u and v contain the intersection of maximal cliques u and v. This operation is illustrated in Junction Graph of
The operations continue to block 811 where the Junction Graph resulting from 809 is transformed into a Junction Tree. The Junction Tree is an undirected tree-structured graph in which any two vertices are connected by exactly one path and thus does not contain any cycles or loops. This can be accomplished by breaking any cycles on the Junction Graph that have the same separator nodes through removing one of the separator nodes. This operation is illustrated in Junction Graph of
Finally, the operations continue to block 813 where the Junction Tree of block 811 is converted to a Factor Graph. In this operation, the nodes of the Junction Tree become variables of the resulting Factor Graph with a factor between associated nodes according to the factorization of the Junction Tree. This operation is illustrated in
Once the Factor Graph of 811 is constructed, it is possible to use the Factor Graph for querying and probabilistic inference on the Factor Graph as well as decision-making with regard to the aspect of the reservoir that is modeled by the Factor Graph.
In one example, a probability of evidence query can be run on the Factor Graph which asks the probability of an observation or measurement given some control variables. Thus, if we know the values of some control variables X1, X2 and X3 then we infer the marginal distribution of a Measurement variable, viz:
p(X6,X7|X1,X2,X3). (6)
In another example, a marginalization query can be run on the Factor Graph. Consider a joint probability distribution
p(X1, . . . ,Xn). (7)
In this case, the marginalization query can involve obtaining the joint probability distribution as follows:
In this example, the prior marginal for the control variables is given by:
the posterior marginal for the control variables given evidence X6 and X7 is given by:
Thus, in this case, marginalization is used to estimate prior and posterior probabilities on a subset of the variables. It should be clear that probability of evidence is a special case of posterior marginalization.
In yet another example, the Factor Graph can be queried as part of a sensitivity analysis in order to understand the sensitivity of the variables of the model and possibly identify the most sensitive variables. Note that the Factor Graph is a powerful tool that allow robust propagation of evidence from uncertainties in parameters to uncertainties in outcomes. However, if interventions are proposed, it is sometimes challenging in a complex Factor Graph to determine the most sensitive variables. There has been a great deal of analysis in this area with regard to Probabilistic Networks and one of the most successful and robust approaches is Shannon's Mutual Information, which is expressed in Eqn. (12) below:
where P(t) is the prior probability of a variable T before observing X,
In still another example, the Factor Graph can be queried as part of analysis that compares different models or hypotheses. Consider Bayes' Theorem below where
where D is the data we're trying to model, and
Mi is a model under consideration.
Then, two models Mi and Mj yield the following:
Note that the term
is known as the Bayes' Factor and is generally expressed as odds of model Mi to Mj. A Factor Graph is useful in expressing this model comparison. Note that model comparison can be injected into a Factor Graph so that multiple models/hypotheses can be considered at once and easily compared. This can be accomplished with a gate as shown in
In processing the query of the Factor Graph that models an aspect of the reservoir of interest, a belief propagation method (such as the Sum-Product algorithm) can be used to perform message passing operations that performs probabilistic inference on the Factor Graph. Such inference can involve the computation of the marginal distribution p(x) of a single variable or the joint distribution of several variables, and drawing random samples x from a distribution p(x) with respect to the probabilistic variables of the Factor Graph. In some examples, the sum-product algorithm can be used for belief propagation because it allows the probabilistic inference to be computed in an efficient manner by message passing.
For example, consider marginalizing variables X2, . . . , X7 in Eqn. (1) above to obtain the marginal probability p(X1). The brute force approach (inefficient) would entail solving Eqn. (1) for every permutation of X2, . . . , X7. If, for example, these variables were binary variables, this would involve computing Eqn. (1) 64 times (26 iterations). A network with 100 binary variables would have to be evaluated 6.338×1029 times (299 iterations). In contrast, the sum-product algorithm allows the marginal distribution to be computed for each unobserved node, conditional on any observed nodes. This approach takes advantage of the structure and conditional dependencies between the variables.
On a Factor Graph, the joint probability mass can be expressed as:
where x is the vector of variables, and
The message from a variable node ν to a factor node a is computed as:
And the message from a factor node a to a variable node ν is computed as:
In these computations, μν→a is message from variable node ν to factor node a, μa→ν is the message from a factor node a to a variable node ν, N(ν)\{a} is the set of factor nodes neighboring the variable node ν excluding the recipient factor a, and N(a)\{ν} the set of variable nodes neighboring the factor node a excluding the recipient variable ν. Eqn. (17) shows that the entire marginalization of the Factor Graph can be reduced to a sum of products of simpler terms than the ones appearing in the full joint probability distribution expression. This is why it is called the Sum-Product algorithm, and schematically illustrated in
Note that the Sum-Product algorithm involves iterative message-passing. The messages are real valued variables in the probability space that are associated with the edges as described in Eqn. (17). Specifically, for each iteration μν*→a(xν*′)≧0 and Σμν*→a(xν*′)=1. Messages are normally assigned an initial uniform distribution, i.e. each state is equiprobable. Messages are then propagated through the Factor Graph via Eqns. (16) and (17). One scheduling scheme can be described as follows, Before starting, the graph is orientated by designating one node as the root, and any non-root node which is connected to only one other node is called a leaf. In the first process, messages are passed inwards: starting at the leaves, each node passes a message along the (unique) edge towards the root node. The tree structure guarantees that it is possible to obtain messages from all other adjoining nodes before passing the message on. This continues until the root has obtained messages from all of its adjoining nodes. The second process involves passing the messages back out: starting at the root, messages are passed in the reverse direction. The algorithm converges and thus is completed when all leaves have received their messages. It has been shown that for tree-structures such as the resulting Factor Graph, convergence is exact and will occur after at most t* iterations, where t* is the diameter of the graph (the maximum distance between any two nodes). After completion, the left hand side of Eqn. (16) defines the marginal probability of the respective variable.
Note that the Factor Graph representation that is queried and processed with the Sum-Product algorithm does not contain any cycles or loops. This feature allows many problems can be solved efficiently by message passing with the Sum-Product algorithm. These problems include the computation of the marginal distribution p(x) of a single variable or the joint distribution of several variables, and drawing random samples x from a distribution p(x).
Note that a factor represents an operator between the variable ρb representing the actual or true bulk density of the rock and the measurement variable ({tilde over (ρ)}b) representing the measured bulk density of the reservoir rock with the precision (βρ
p({tilde over (p)}b|ρb,βρ
Note that precision of the measurement therefore causally affects the precision of the measured bulk density, and conversely the true or actual bulk density of the model.
The second measurement variable {tilde over (ν)}t represents the measured acoustic velocity of the reservoir rock with a precision (βν
Note that a factor represents an operator between the variable νt representing the actual or true acoustic velocity of the reservoir and the measurement variable {tilde over (ν)}t representing the measured acoustic velocity of the reservoir rock with the precision (βν
p({tilde over (ν)}f|νr,βν
Note that precision of the measurement therefore causally affects the precision of the measured acoustic velocity, and conversely the true or actual acoustic velocity of the model.
The porosity φ of the reservoir rock is the parameter of interest in this example and is derived from Eqns. (17) and (19). The Factor Graph of
ρb=ρm−Φ(ρm−ρf). (21)
Similarly, the factor computing bulk density p(νt|νf,νm,Φ) evaluates the causal (or forward model) version of Eqn. (19) as follows:
Note that the conditioning variables ρf and νf also have uncertainties depending on the source of the data.
This is illustrated for the fluid density ρf in the upper left part of
p(ρf|ρw,ρo,So), (23)
where ρw is the water density,
ρf=ρw(1−So)+ρoSo. (24)
This is also illustrated for the acoustic velocity of the pore fluid of the reservoir rock νf in the upper right part of
p(νf|νw,νo,So), (25)
A Factor Graph can be used for probabilistic interference and analysis of a variety of aspects of a reservoir, such as the integrity of the cement casing of a wellbore.
Any of these paths alone could be responsible for an EPP from an adjacent formation to the perforation. Many factors combine to cause any one of these paths to result in an EPP between an adjacent reservoir and the zone of interest. A Factor Graph can be used for probabilistic analysis to determine the existence of any of these paths. An example of such a Factor Graph is shown in
The Factor Graph of
Note that the probabilities for each of the potential paths are treated in a similar manner by generating azimuthal maps and determining the effective geometry of permeable pathways. Communication between paths on adjacent maps is also considered.
In the Factor Graph of
The workflow represented in the Factor Graph applies equivalently to a deterministic or probabilistic workflow. In a deterministic workflow, none of the variables have uncertainty, while in a probabilistic workflow some of the variables will have uncertainty.
When generating an FDP, the static and initial dynamic reservoir properties are known with some uncertainty and a probabilistic value or NPV is computed by propagating belief forward through the Factor Graph. However, in other cases the value or production history of existing wells is known and these observations are used to improve the model of the reservoir, which is termed History Matching (HM). In this case, the production history observations of well performance from Time 0 to Time 1 may have been observed and probabilistic inference workflow as described herein can be applied to the Factor Graph of
The factors that are considered and evaluated to determine the existence of a viable prospect reservoir can include on or more of the following:
In unconventional reservoirs, the generated hydrocarbons have not been expelled from the source rock nor have they experienced the complex migration and entrapment as in conventional oil and gas plays. In fact, the less expulsion that has taken place, the greater the amount of generated hydrocarbons remaining in the source rock.
These causal relationships for both conventional and unconventional prospects are illustrated in the example Factor Graph of
Note that some evidence may dominate the probability of a viable prospect being present. For example, direct imaging of hydrocarbons with 3D seismic gives confidence in the presence of a prospect from which trap and reservoir can be inferred. However, while source rock deposition, hydrocarbon generation, expulsion, and migration therefore have occurred, we may not have with high confidence the nature and location of these events.
In one aspect, some of the methods and processes described above, such as the operations of the computation framework of the present disclosure, can be performed by a processor. The term “processor” should not be construed to limit the embodiments disclosed herein to any particular device type or system. The processor may include a computer system. The computer system may also include a computer processor (e.g., a microprocessor, microcontroller, digital signal processor, or general purpose computer) for executing any of the methods and processes described above. The computer system may further include a memory such as a semiconductor memory device (e.g., a RAM, ROM, PROM, EEPROM, or Flash-Programmable RAM), a magnetic memory device (e.g., a diskette or fixed disk), an optical memory device (e.g., a CD-ROM), a PC card (e.g., PCMCIA card), or other memory device.
Some of the methods and processes described above, can be implemented as computer program logic for use with the computer processor. The computer program logic may be embodied in various forms, including a source code form or a computer executable form. Source code may include a series of computer program instructions in a variety of programming languages (e.g., an object code, an assembly language, or a high-level language such as C, C++, or JAVA). Such computer instructions can be stored in a non-transitory computer readable medium (e.g., memory) and executed by the computer processor. The computer instructions may be distributed in any form as a removable storage medium with accompanying printed or electronic documentation (e.g., shrink wrapped software), preloaded with a computer system (e.g., on system ROM or fixed disk), or distributed from a server or electronic bulletin board over a communication system (e.g., the Internet or World Wide Web).
Alternatively or additionally, the processor may include discrete electronic components coupled to a printed circuit board, integrated circuitry (e.g., Application Specific Integrated Circuits (ASIC)), and/or programmable logic devices (e.g., a Field Programmable Gate Arrays (FPGA)). Any of the methods and processes described above can be implemented using such logic devices.
Although only a few examples have been described in detail above, those skilled in the art will readily appreciate that many modifications are possible in the examples without materially departing from this subject disclosure. In the claims, means-plus-function clauses are intended to cover the structures described herein as performing the recited function and not only structural equivalents, but also equivalent structures. Thus, although a nail and a screw may not be structural equivalents in that a nail employs a cylindrical surface to secure wooden parts together, whereas a screw employs a helical surface, in the environment of fastening wooden parts, a nail and a screw may be equivalent structures. It is the express intention of the applicant not to invoke 35 U.S.C. §112, paragraph 6 for any limitations of any of the claims herein, except for those in which the claim expressly uses the words “means for” together with an associated function.