Análisis y predicción del comportamiento de producción de pozos petroleros con Algoritmos Genéticos (Inteligencia Artificial)
Analysis and prediction of oil well production behavior using genetic algorithms (artificial intelligence)
1Instituto Tecnológico Superior Quito Metropolitano. Carán N3-195 y Calle B (Nueva Tola 2) Quito, Ecuador; epineda@itsqmet.edu.ec
ÉLITE 2025, Vol. 7. Núm. 2
ISSN: 2600-5875
Recibido: 20/08/2025
Revisado: 11/09/2025
Aceptado: 14/09/2025
Publicado: 20/09/2025
Resumen: Introducción: Determinar la cantidad de petróleo remanente en los pozos de un campo, fundamental para administrar las inversiones necesarias, por lo tanto, predecir la tasa de producción con mayor precisión reduce el riesgo económico asociado a estas actividades, haciendo rentable la industria del petróleo, al implementar y aprovechar la inteligencia artificial, como los algoritmos genéticos, aumenta significativamente la precisión de resultados de predicción y al mismo tiempo reducción del tiempo de cálculo, resolviendo la incertidumbre de los datos con los que se realiza estas predicciones, generalmente los datos se encuentran con mediciones erróneas nada confiables. Objetivo: Generar un software con la capacidad de encontrar las variables de reservorio (incluidas en el cálculo de la predicción, etc.) mediante la implementación de algoritmos genéticos necesarios para calcular el perfil de producción, y reproducir la data histórica del pozo usando Visual Basic en Excel. Métodos: El método implementado se basa en la teoría de la evolución de las especies de Charles Darwin, corresponde a la capacidad de encriptar en código binario variable a encontrar(individuos), someterle a un proceso de selección dentro una población (conjunto de respuestas), y hacerlo evolucionar generación a generación (iteración), hasta encontrar un individuo lo suficientemente adaptado ante el problema (respuesta encontrada). Resultados: Proporcionar ayuda a ingenieros de petróleos al reducir tiempo en encontrar las variables adecuadas, para realizar estimaciones precisas de producción a futuro. Conclusiones: El software desarrollado permitió obtener resultados que demuestra la eficiencia del método y complementar la ausencia de datos que se presentan en cada pozo.
Palabras clave: Algoritmos Genéticos; Inteligencia Artificial; Curvas de Declinación; Predicción de Producción; Pozo Petróleo
Abstract: Introduction: Determining the amount of oil remaining in a field's wells is essential for managing the necessary investments. Therefore, predicting the production rate more accurately reduces the economic risk associated with these activities, making the oil industry profitable. Implementing and leveraging artificial intelligence, such as genetic algorithms, significantly increases the accuracy of prediction results while reducing calculation time, resolving the uncertainty of the data used to make these predictions, which is often unreliable due to erroneous measurements. Objective: To generate software with the ability to find reservoir variables (included in the prediction calculation, etc.) by implementing the genetic algorithms necessary to calculate the production profile and reproduce historical well data using Visual Basic in Excel. Methods: The method implemented is based on Charles Darwin's theory of evolution of species. It corresponds to the ability to encrypt variables to be found (individuals) in binary code, subject them to a selection process within a population (set of responses), and make them evolve from generation to generation (iteration) until an individual sufficiently adapted to the problem (response found) is found. Results: Provide assistance to petroleum engineers by reducing the time needed to find the appropriate variables to make accurate estimates of future production. Conclusions: The software developed allowed us to obtain results that demonstrate the efficiency of the method and complement the absence of data presented in each well.
Keywords: Genetic Algorithms; Artificial Intelligence; Decline Curves; Production Forecasting; Oil Well
I. INTRODUCCIÓN
En la industria petrolera el uso de software computacional especializado es fundamental para procesar la gran cantidad de información que se genera cada día, permitir visualizar la información para tomar decisiones se ha convertido en una actividad indispensable y diaria en todo el mundo. Para la perforación de un pozo se requiere de altos conocimientos de geología e ingeniería, y obtener resultados satisfactorios por ende pueda ser rentable, el promedio de costo de perforación en Ecuador dependiendo de la profundidad de llegada a los reservorios, cuesta entre 4 a 7 millones de dólares por pozo. Por lo tanto, identificar la localización precisa es clave, y encontrar petróleo aún más, debe cubrir los costos de perforación y mantenimiento durante la vida productiva del mismo, entre 3 a 50 años de producción, no obstante, no solo es encontrar petróleo, sino optimizar las actividades para que el pozo pueda producir de manera eficiente, con altas tasas de producción, y sin la menor intervención posible.
Dia a día, se registran la producción de petróleo de cada pozo en Ecuador, tal como en la mayoría de países del mundo, y se envían estos datos fiscalizados al ministerio de energía y minas, u entes que regulan y garantizan la fidelidad e integridad de estas mediciones. Gracias a esto, con el pasar del tiempo, se puede visualizar la tasa de producción respecto al tiempo en que el pozo está abierto produciendo, obteniendo una imagen del comportamiento de esta producción (Figura 1). Este análisis básico del comportamiento de esta curva, permite revisar si el pozo ha sido exitoso durante su producción, generalmente un pozo con producción de 500 barriles diarios de petróleo promedio en 10 meses se ha pagado su inversión, por lo tanto, si produce hasta 10, 20, 30 o 50 años es una excelente rentabilidad (Paliwal, 2020). Adicional, mantener la producción es otro reto, aquí es donde entra el análisis de la producción de los pozos, usando métodos tradicionales como Curvas de Declinación, o comúnmente llamadas DCA (Decline Curve Analysis) (Pietersz, 2020). Esto permite conocer con los datos históricos un estimado hasta cuándo va a producir el pozo. Estos métodos han identificado mediante estas curvas los principales mecanismos de producción en los reservorios de petróleo, que son la fuerza interna de los yacimientos, que permite que un pozo pueda producir de forma natural, solo con la presión del reservorio. Esta puede ser de manera natural o artificial mediante mecanismos de inyección de agua, (pozo cercano que inyecta agua y ayuda a recuperar más petróleo en la zona. Conocer hasta cuando es el límite de producción en el tiempo de los pozos, permite calcular las inversiones necesarias para optimizar la producción, calcular costos de trabajos u operaciones especiales en el pozo para extraer más rápido el hidrocarburo, y optimizar los flujos de caja de las empresas petroleras, principal ventaja de realizar estos análisis. Adicional, si en un escenario es necesario vender el campo, a otra compañía, generalmente mediante este análisis de las curvas se puede calcular las reservas de petróleo que le quedan a los pozos, y, por lo tanto, cuantificar el costo que tendría que pagar una empresa nueva para adquirir este activo. En resumen, encontrar la mejor predicción de estos pozos a futuro garantiza tanto para quien opera el campo, un menor riesgo económico en inversiones, también garantiza tanto para quien vende como para quien compra, que la transacción haya sido realizada de la manera más honesta posible, y nadie sienta que ejecutó un mal negocio.
Recientemente, en la ingeniería de petróleos, se han generado ecuaciones matemáticas que involucran variables conocidos de reservorio, que ayudan a reproducir este historial de producción en los pozos (Guo, Lyons, & Ghalambor, 2008; Ling & He, 2012), permitiendo tener un segundo método que compruebe el historial de producción y garantice el comportamiento de producción del pozo obteniendo la predicción de manera más acertada con menos riego económico (El-Sebakhy, 2022). Sin embargo, son tantas las operaciones que un pozo requiere y la intervención de personas, que registran, calculan y analizan datos, siendo común introducir incertidumbre en las mediciones, y por lo tanto, no se tienen parámetros del reservorio que sean representativos del pozo. Aquí, está un problema, con esos parámetros, puede reproducir historiales de producción subestimados o sobrestimadas, que influyen en la toma de decisiones de cada pozo y por ende del campo.
El uso o integración de otras disciplinas como la ingeniería de desarrollo de software, es fundamental, ayuda a esta industria a ser más precisa y ahorro de tiempo en cálculos de ingeniería. Encontrar estas variables de reservorio es el reto, implementando estas ecuaciones y la optimización de las mismas, mediante algoritmos genéticos, es el enfoque de este artículo (Noor & Mohd Sarim, 2024; Al-Mudhafar & Al-Hashim, 2020). Integrar estas metodologías computacionales, llamadas Inteligencia Artificial ahora popularmente, permite reducir esta incertidumbre y acelerar los cálculos de manera impactante (Chennakrishnan, 2024; Chaves & da Silva, 2024; Fang et al., 2022).
II. METODOLOGÍA
2.1. Computación Evolutiva
El origen de las especies, es el libro clave en este trabajo, Charles Darwin, identificó y dejo plasmado como ha sido el proceso de adaptación de los seres en la naturaleza ante adaptabilidad y reproducción de los mejor calificados, comúnmente conocida como la evolución de las especies. Durante la historia de la informática, cada día con procesadores más rápidos ha permitido desarrollar software para ser implementados en optimización de procesos, es decir, reducir el error en los cálculos entre valores medidos y reproducidos mediante ecuaciones, hasta llegar al mínimo margen de error. Durante cada intento de cálculo, considerado una iteración, se obtiene una respuesta que es comparado contra un dato real medido, esto permite, encontrar variables con un margen de error (tolerancia), lo cual es la diferencia entre dos muestras deben ser cercanas a cero, dependiendo del grado de precisión necesario en los resultados y la naturaleza de la variable a encontrar.
Los datos reales históricos de producción de un pozo petrolero, se considera información con la menor incertidumbre posible, la misma que hay que tratar de reproducir, únicamente con los valores de las ecuaciones desarrolladas con los parámetros de reservorio. En la Figura 1 se muestra un ejemplo de un pozo en el Ecuador, en el eje X se muestra el tiempo, y en el eje Y la tasa de producción histórica de barriles, por día, se observa que en los primeros años, el pozo produce entre 1200 y 1300 barriles de petróleo, y empieza a declinar a 1100 en noviembre de 1993, luego en abril de 1994 baja a 900 barriles, y en febrero de 1995 a 600 barriles, hasta a finales de 1995 se encuentra produciendo a 400 barriles, y luego sigue produciendo, pero con trabajos realizados sobre el pozo, se logra mantener la producción. Este es el dato que se quiere predecir, este comportamiento de producción del pozo, por lo tanto, se debe recrear matemáticamente esta curva de producción, asociada a este pozo. Recordemos que es información real medida, y con la mayor fiscalización posible en la medición, utilizada por el ministerio de hidrocarburos para pagar cada barril de petróleo extraído a la compañía operadora del pozo.
Los parámetros que reproducen esta curva, o variables, son los que deben ser encontrados, entre una serie de datos mínimos y máximos asignados por el ingeniero como punto de partida para el algoritmo genético (Al-Rbeawi, 2024). Los valores iniciales de estas variables, deben ser generados aleatoriamente entre el mínimo y máximo de cada valor.
Figura 1. Producción diaria de Petróleo de un Pozo Ecuatoriano Ejemplo.
En la evolución de las especies, cada individuo dentro de una ambiente o área específica, debe adaptarse al entorno, los más fuertes tienen la probabilidad de pasar su material genético a la siguiente generación, con mayor probabilidad de reproducirse, y los menos adaptados, tienden a desaparecer en esta misma generación (Idrobo, Santos, Peña, Martínez, Pineda, Meza, & Patarroyo, 2005). Dentro de la población el más apto compite para poder reproducirse, esto lleva a transportar su código genético, que llamaremos genotipo (características internas de los cromosomas), y fenotipo (características fisiológicas que este cromosoma generar en los individuos, color de ojos, cabello, altura, contextura). Una vez este individuo pasa su material genético a la siguiente generación, logrará tener una población con mejores individuos (hijos), en esta nueva población, como en la naturaleza, nuevamente los individuos compiten entre sí, dando nuevamente a los mejores adaptados, la opción de tener mayor probabilidad de reproducirse para la siguiente generación, y puede mezclarse con los otros individuos de la población. Un individuo muy bueno puede reproducirse con otro también bueno, y logrará obtener probablemente algo mejor para la siguiente generación, pero también el mejor individuo puede reproducirse con alguno que no tenga las mejores características, pero igual, se transmite los mejores genes al nuevo individuo.
2.2. Implementación del Algoritmo Genético
En el mecanismo de reproducción, hay varios tipos o métodos que pueden suceder, uno es la reproducción, pasar el material genético tal como tiene el individuo, el segundo es el cruzamiento, es mezclar parte de los individuos a partir de los dos cromosomas de cada uno de ellos, y el último super importante, la mutación, es alterar aleatoriamente alguna parte en el material genético que permite obtener un individuo extremadamente bueno o malo, tal como se han presentado en la naturaleza permitiendo evolucionar aún más rápido a los individuos (Mohammadpour et al., 2024).
Por lo tanto, la metodología se basa en encapsular estas variables de los pozos, pero implementando la misma analogía, poner a adaptar y evolucionar una población durante muchas generaciones, hasta que cumpla con un criterio que le otorguemos al algoritmo (Mondavi, 2014).
Son 11 variables que corresponden a datos del pozo, que deben ser encontradas, generalmente lo más cercanas a la realidad, estas 11 variables al ser usadas en la siguiente ecuación (1):
(1)
Gracias a esta ecuación aplicada a cada instante de tiempo, genera un valor de producción de petróleo, el cual, luego se compara en el mismo tiempo con los datos reales. Cabe destacar que el software desarrollado tiene programadas diferentes tipos de ecuaciones, que se adapta ante diferentes variantes de tipos de pozos, pero para mostrar el ejemplo en este artículo solo se utilizará la exponencial, existe de tipo hiperbólico y armónico, en yacimientos subsaturados y saturados (Morad, 2025; Mustapha et al., 2023). En este ejemplo, se utilizará la empleada para yacimiento subsaturados. El tratar de encontrar la diferencia mínima entre las dos curvas es la función objetivo (FO) que llamaremos, es decir, cuando las dos curvas sean lo más cercanas posible o parecidas entre sí, ahí termina el proceso (Li et al., 2022).
2.3. Población Inicial – Código Binario
Se debe iniciar con una población inicial, la constituyen individuos iniciales, para la llamada generación cero. Los individuos son representaciones de las 11 variables mencionadas anteriormente, generados aleatoriamente entre rangos posibles establecidos por el usuario. Cada individuo es una posible respuesta. Cada uno de estos posibles individuos generará una curva de resultados. Para esto debemos encapsular los valores mediante código binario para que pueda representar el cromosoma de cada individuo. Se crea una tabla de valores de cada variable, entre mayor cantidad de bits se empleen, mayor precisión en los datos. En este caso, cada individuo tiene un solo cromosoma, con 10 genes, que corresponden a las 10 variables. Estos genes son codificados en el sistema binario, de cadena de caracteres de 0 y 1, de longitud fija, definidos por el nivel de precisión en las respuestas. Dependiendo del tipo de problema a resolver se pueden emplear más cromosomas, esta es una ventaja super importante en este tipo de técnicas, ya que pueden ser optimizadas la cantidad de variables que se deseen y no depende de un número limitado, solo de la capacidad de hardware computacional.
Estos posibles conjuntos de respuestas (población) son evaluadas ante la función objetivo, cada individuo es representado por genotipos y fenotipos, para esta técnica, el genotipo, material genético, es la información almacenada en el cromosoma, con los 11 genes, posibles respuestas codificadas en sistema binario. Al ser evaluados, genera una curva de información de datos de producción de petróleo en cada instante de tiempo, esta respuesta es considerada el fenotipo, tal como en las especies, características físicas, color de piel, pelaje, ojos, etc.
La población inicial tendrá que evolucionar secuencialmente de generación a generación hasta llegar a las respuestas, en cada generación los individuos compiten entre sí para determinar cuál tiene una mejor solución a la respuesta, es decir, se acerca más a la curva de producción histórica de petróleo real. Todas las posibles respuestas son evaluadas ante la función objetivo y se puntúan las que mejor se acercan a los datos históricos, esto se conoce como modelar el comportamiento del individuo en el entorno en que se encuentra, también nombrado, aptitud del individuo ante la solución del problema. Estos individuos que representan mejor el problema, los mejor adaptados al medio, como en la evolución de las especies, son quienes tienen mejor oportunidad para pasar su material genético (mejores respuestas), a la siguiente generación; esta es una característica super importante del algoritmo genético, la mejor respuesta siempre permanece hasta que encuentra una mejor, en una futura generación. Adicionalmente, los mejores individuos son seleccionados para reproducirse, cruzarse o mutarse, dando oportunidad a crear un nuevo individuo con mejores genes, que puedan superar la mejor respuesta actual en su momento.
Se garantiza preservar el mejor material genético para la siguiente generación, mediante los llamados operadores genéticos. Estos son mecanismo que permiten que los individuos se reproduzcan, crucen o muten en cada generación. Los individuos mejor adaptados, son los que tendrán más oportunidad de mezclar su material genético o mejores respuestas, con otros individuos. Esto se logra a través de los operadores genéticos, encargados de mezclar los cromosomas y genes de los mejores individuos para crear nuevas poblaciones, y por ende puedan evolucionar.
2.4. Operadores Genéticos
Los operadores genéticos implementados son: selección, cruzamiento y mutación. Dentro de la población, primero seleccionan un porcentaje de la población a ser cruzada, puede ser un 30% a 50%, dependiendo de los parámetros establecidos por el usuario; los mejores individuos pasan a la siguiente generación sin sufrir algún cambio en su material genético. Luego estos mismos, crean otros nuevos, mediante el cruce del material genético de los mejores con otros que se encuentra en ese grupo de seleccionados, su materia genético o cadena de caracteres de ceros y unos, se cruzan para formar otro nuevo individuo. Por último, se establece, solo una selección de los mejores adaptados un porcentaje bajo de mutación, si este valor es muy alto, el algoritmo se convierte en un método más aleatorio que de optimización encontrada las respuestas.
Se implementan tres tipos de cruzamiento:
- Cruzamiento a nivel de bits, se da en cualquier punto de la cadena del cromosoma, desde ese punto se intercambia el material genético, se genera 2 individuos nuevos.
- Cruzamiento a nivel de genes, solo se combina los genes de los cromosomas, se respeta la longitud de un gen, también genera dos individuos nuevos.
- Cruzamiento multipunto, se da a nivel de bits en dos puntos de la cadena del cromosoma, esto generar seis nuevos individuos, ya que queda en tres secciones divido.
El mecanismo de mutación se realiza escogiendo un bit dentro del cromosoma de manera aleatoria y es cambiado, de un individuo seleccionado aleatoriamente dentro de la población, tal como sucede en la naturaleza. Adicional, este mecanismo es muy importante, porque permite saltar a una posible solución en el espacio de búsqueda y no quede atascado en un mínimo o máximo local, en otras palabras, permite explorar gran parte del espacio de búsqueda.
Después que han sido generados los nuevos individuos, la nueva población es decodificada (pasar de código binario a número real), del sistema binario al real, luego son empleados en la ecuación (1) para generar los datos de producción del pozo, y nuevamente son sometidos a la evaluación en la función objetivo (la sumatoria de las diferencias de los valores de petróleo calculado e histórico, a cada tiempo, elevada al cuadrado (Ghoneim & Hamed, 2022)).
El proceso se repite hasta llegar al criterio de parada, que contiene las respuestas que pueden generar la curva de producción más cercana a la data histórica del pozo.
2.5. Codificación de Variables de Reservorio
Todo individuo dentro de la población está definido por un cromosoma con diez genes, correspondientes a las variables a optimizar. Idrobo, Santos y Pérez Vega (2005) afirman que "la aplicación de los algoritmos genéticos es especialmente valiosa en escenarios con múltiples variables y restricciones" (p. 145). A continuación, se listan las variables a encontrar:
1. Permeabilidad promedio del Intervalo, k (mD)
2. Petróleo inicial en el área del pozo, Ni (STB)
3. Presión actual del Yacimiento, PR (Psig)
4. Presión de fondo Fluyente, Pwf (Psig)
5. Producción de petróleo, qo (STB/Día)
6. Factor de daño total, S (adimensional)
7. Viscosidad del petróleo, μo (cp)
8. Compresibilidad total de componentes, Ct (1/Psig)
9. Radio de drenaje, re (ft)
10. Radio del pozo, rw (ft)
La población inicial está constituida por valores posibles aleatorios del espacio de búsqueda, entre rangos permitidos dependiendo de la naturaleza de cada variable, por ejemplo, los valores de permeabilidad en un pozo son valores positivos, nunca es posible tener negativos o cero, así como también valores bajos anormales, generalmente en la naturaleza son valores de 0.001 hasta 15000 milidarcies, los parámetros deben estar entre un margen de medición real. En la Tabla 1, se muestra un ejemplo de población inicial con 4 individuos, a modo de ejemplo, una población de 100 individuos es un buen número, dependiendo de la cantidad de variables necesarias a optimizar.
Tabla 1. Población ejemplo con 4 individuos en valores reales.
|
POBLACIóN |
|||
Variables |
Ind. 1 |
Ind. 2 |
Ind. 3 |
Ind. 4 |
K |
2500 |
2800 |
3000 |
2000 |
Ni |
50000000 |
45000000 |
52000000 |
55000000 |
Bo |
1.092 |
1.182 |
1.075 |
1.222 |
Pwf |
500 |
420 |
580 |
520 |
S |
13.5 |
10.5 |
7.5 |
15.5 |
Uo |
3 |
2 |
2.3 |
3.2 |
Ct |
0.00001 |
0.00002 |
0.00003 |
0.00004 |
Re |
2305 |
2000 |
1500 |
1800 |
Rw |
0.3 |
0.5 |
0.7 |
0.9 |
h |
10 |
20 |
15 |
7 |
Dependiendo de la cantidad de bits necesarios a emplearse se genera una tabla de correspondencia, para implementar los valores en el procedimiento, una tabla con valores de 10 bits, es decir, 210, genera 1024 valores, entre los rangos mínimos y máximos establecidos para cada variable o gen. Entre mayor cantidad de bits se empleen mayor será la precisión en los resultados y el espacio de búsqueda será más grande. En la Tabla 2 se muestra la codificación para la variable permeabilidad, una de las 10 a ser codificadas, se puede apreciar 3 columnas, en la primera columna corresponde al valor en binario 00000 correspondientes para el valor de permeabilidad de 1750 milidarcies, y 00001 para 1751.5 y así sucesivamente, independiente del valor entero decimal correspondiente. Para cada variable existe la tabla generada previamente, por lo tanto, los valores codificados en la población inicial se muestran a continuación. Además, esta misma tabla es empleada para decodificar los valores binarios a los reales correspondientes al dato real empleado para la ecuación (1) y función objetivo.
Tabla 2. Tabla ejemplo codificada en binario de la variable permeabilidad.
Valor Binario - |
Entero |
Valor Real |
00000 |
0 |
1750.0 |
00001 |
1 |
1751.5 |
00010 |
2 |
1752.9 |
00011 |
3 |
1754.4 |
00100 |
4 |
1755.9 |
00101 |
5 |
1757.3 |
00110 |
6 |
1758.8 |
00111 |
7 |
1760.3 |
01000 |
8 |
1761.7 |
01001 |
9 |
1763.2 |
01010 |
10 |
1764.7 |
01011 |
11 |
1766.1 |
01100 |
12 |
1767.6 |
01101 |
13 |
1769.1 |
01110 |
14 |
1770.5 |
01111 |
15 |
1772.0 |
10000 |
16 |
1773.5 |
10001 |
17 |
1774.9 |
10010 |
18 |
1776.4 |
10011 |
19 |
1777.9 |
10100 |
20 |
1779.3 |
10101 |
21 |
1780.8 |
10110 |
22 |
1782.3 |
10111 |
23 |
1783.7 |
11000 |
24 |
1785.2 |
11001 |
25 |
1786.7 |
11010 |
26 |
1788.1 |
11011 |
27 |
1789.6 |
11100 |
28 |
1791.1 |
11101 |
29 |
1792.5 |
La siguiente tabla muestra los valores transformados en el sistema explicado anteriormente, de la población inicial ejemplo con los 4 individuos, como se observa son. Estos valores se encuentran codificados como un arreglo unidimensional en codificación binaria de cada variable. La precisión está regida por la cantidad de bits empleados para su codificación, a su vez que establece la longitud del cromosoma.
Tabla 3. Población ejemplo con 4 individuos en valores binarios.
|
POBLACIóN |
|||
Variables |
Individuo 1 |
Individuo 2 |
Individuo 3 |
Individuo 4 |
K |
0110000001 |
1001100110 |
1011111110 |
0011000000 |
Ni |
1000000000 |
0011000000 |
1100000000 |
1111000000 |
Bo |
0101010101 |
1001100110 |
0000000000 |
1111111111 |
Pwf |
0110000001 |
0011000000 |
1001100110 |
0111111100 |
S |
1010011111 |
0110110000 |
0011000000 |
1100111111 |
Uo |
0110000001 |
0011000000 |
0100110010 |
1001100110 |
Ct |
0000000000 |
0011000000 |
0110000001 |
1001100110 |
Re |
0110000001 |
0100110010 |
0011000000 |
0011000000 |
Rw |
0110010101 |
0110010101 |
1001101010 |
1001101010 |
h |
0110000001 |
1001100110 |
0111111100 |
0011000000 |
2.6. Ranqueo de Individuos
Para evaluar cada individuo (competir entre ellos), se emplea la función objetivo, es la sumatoria de las diferencias de los valores de petróleo calculado e histórico, a cada tiempo, elevada al cuadrado (Ghoneim & Hamed, 2022). cuando este valor se acerca a cero, indica que las curvas están muy cercanas entre sí, por ende, está representando la declinación de la producción del pozo. Este valor asignado a cada individuo representa la aptitud ante su entorno y de esta manera se clasifican los más aptos, y luego se ranquea cada individuo desde el menor valor de la función objetivo de la función objetivo hasta el valor mayor (diferencia grande entre curvas de producción de petróleo), permitiendo ordenar el mejor individuo de primerio hasta el peor (con baja probabilidad para pasar su material genético a la siguiente generación), en otras palabras establecer una jerarquía en la población; basados en este ranking se seleccionan los individuos para la reproducción y los cruzamientos. La población del algoritmo genético es de tamaño constante en cada generación, es decir, son la misma cantidad de individuos, gracias a un ranqueo entre individuos padres e hijos para destacar los de menor aptitud.
Luego de ser ranqueados, el proceso iterativo continuo, con una siguiente generación con nuevos individuos, con operaciones de cruzamiento y mutación, y nuevamente se evalúan, y continua el proceso evolutivo hasta el criterio de parada.
Son dos los criterios de parada, el primero cuando se encuentre el valor óptimo que reproduzca la producción del pozo con el menor error posible dentro del rango de tolerancia establecida por el usuario, y el segundo criterio, al llegar al número máximo de intentos, que en otras palabras es el número de generaciones máximas permitidas dentro del algoritmo.
III. RESULTADOS
El algoritmo es probado con información de datos históricos de pozos productores de petróleo, y datos de reservorio asociados al pozo, por lo tanto, el ingeniero de reservorios debe conocer algunos parámetros del reservorio. Los datos mínimos, como el mecanismo de producción del pozo, si el yacimiento es saturado o subsaturado.
La interfaz de inicio del software para el ingreso de los datos de producción y variables de reservorio, donde se debe ingresar la producción en su requerido tiempo y la producción acumulada que se tenga para las respectivas fechas.
Se debe ingresar toda la información conocida del yacimiento y del pozo. Aquí, el usuario puede seleccionar qué información optimizar con el algoritmo (haciendo clic en los controles checkbox correspondientes a cada parámetro, esto activa los ingresos de valores mínimos y máximos entre los que se puede encontrar un respectivo parámetro y qué información desea ingresar como fija. Si no se desea optimizar un parámetro, entonces este debe obligatoriamente establecer un valor fijo.
Posteriormente, se debe proceder a la sección de gráficos para el análisis de curvas de declinación adecuadas para el caso que se esté analizando. El usuario debe seleccionar el tipo de declinación que mejor se ajuste con la curva de producción que se genere con base en la producción ingresada.
Nótese que
para cada tipo de declinación hay que ingresar cierta información (ver Figura 2).
Figura 2. Información requerida para cada tipo de curva de declinación.
Una vez seleccionado el tipo de declinación, en la Figura 3 de la interfaz de Gráficos se puede observar el patrón que toma la curva de declinación que se escogió (curva verde). Se hace una comparación con la curva real (curva azul) y el usuario deberá decidir si es el caso más conveniente para el pozo que está trabajando. Las curvas estándar son una guía visual para que el usuario determine cuál es el método ideal para el pozo que esté analizando (Tadjer et al., 2025; Memon et al., 2024).
Figura 3. Patrón de curvas declinación disponibles.
Una vez que el usuario haya seleccionado el método que considere ideal, se debe proceder a la interfaz de Arranque, presionando el botón de comando “ARRANQUE”, que se puede observar en la Figura 4. Si el usuario desea cambiar alguna información de entrada, puede volver a la interfaz de inicio presionando el botón de comando “INICIO”.
3.1.
Parámetros de Control del Algoritmo Genético
Figura 4. Parámetros iniciales para el Algoritmo Genético.
A continuación el usuario debe ingresar el tamaño de la población que desee (se recomienda que sea mayor a 20 para mejores resultados), el porcentaje de población a cruzarse (se recomienda mayor al 50% para lograr mayor cantidad de respuestas posibles), el tipo de cruzamiento (Si es de un punto, entonces se dispondrá de los niveles de cruce en bits o genes, si es multipunto entonces se permitirá solo a nivel de bits), el porcentaje de mutación (este debe procurar ser menor a un 15% debido a que los principios evolutivos aplicarían débilmente) el tipo de mutación (a nivel de bits, genes o individuo completo), la tolerancia (se puede observar que se recomienda entre un 1% y 5%, pero para un mejor funcionamiento se deben colocar tolerancias menores al 3%), el número de bits por variable (Para un funcionamiento rápido y eficiente se recomienda entre 4 y 10 bits, ya que esto también depende de los rangos que se hayan ingresado, es decir, si se ingresaron rangos muy amplios, se recomienda mayor cantidad de bits).
Una vez ingresados los parámetros del algoritmo genético, se procede a la ejecución. Para esto se debe presionar el botón de comando “Arrancar Algoritmo”.
En la Figura 5, se visualiza el progreso del algoritmo genético conforme calcula los resultados para cada generación. Para esto hay dos secciones, una para parámetros estáticos y la otra para parámetros dinámicos.
El resultado final corresponde a la Figura 6, se visualiza la cercanía de las dos curvas, pero no solamente, es esto, adicional, se encuentra los parámetros optimizados para la generación de la misma, ver Tabla 4, la de color verde la predicción, y la histórica del pozo corresponde a la azul.
Figura 6. Resultado Final de Ajuste de Curvas de Producción Real versus Calculada.
Por otro lado, para el mismo pozo con una tolerancia de 2% entre las curvas de producción, tenemos los siguientes valores, mostrados en la Tabla 4.
Tabla 4. Resultado de las variables encontradas versus las medidas.
Variable |
Valor Encontrado X Algoritmo Genético
|
Valor Real Medido |
Permeabilidad (MD)
|
166.97 |
169 |
Espesor de formación (FT)
|
18.91 |
14 |
Presión de fondo fluyente (Psig)
|
1578.89 |
1471 |
Daño de formación
|
2.63 |
1.25 |
Viscosidad (Cp) |
2.02 |
1.36 |
Factor volumétrico del petróleo (Rb/Stb)
|
1.056 |
1.139 |
Compresibilidad Total De Componentes (1/Psig) |
1.82047E-05 |
1.51431E-05 |
IV. DISCUSIÓN
La generación de curvas de declinación o representación de producción del pozo histórico seleccionado, es fundamental realizar la implementación del algoritmo genético, de otra forma, sería un trabajo manual estar cambiando parámetros y luego revisar nuevamente los datos y verificar visualmente si los datos son cercanos a los históricos. Mediante el método planteado existe ahora una herramienta software que cuantifica la similitud de las dos curvas de producción, la generada y el histórico, con lo cual encuentra los parámetros de reservorios necesarios.
Comparando los resultados de los valores de las tablas vemos que son muy similares, en este caso en este pozo se probó con el conocimiento de los valores de reservorios medidos, sin ninguna incertidumbre, para probar principalmente el algoritmo, vemos que solo en el valor de permeabilidad hay una diferencia de 30 milidarcies, muy baja en términos petroleros. Adicional, cada variable tiene un rango de acuerdo a su naturaleza de la variable, que permite determinar qué tan cercano fue encontrada de la medida, por ende, del resultado de la curva de producción generada.
Hay que considerar que el software construye toda esta información solo a partir de un modelo de declinación de producción, por ende, no se puede esperar a que sea muy exacto, principalmente en eventos realizados en el pozo que no son propios o naturales en los reservorios, por ejemplos, trabajos de fractura miento hidráulico o inyección de agua de algún pozo cercano que afectan la presión y condiciones del reservorio, por mecanismos artificiales para aumentar su producción y por ende, reducir la declinación.
Es fundamental, identificar la parte de la curva de producción que declina por condiciones naturales, y no tener en cuenta en el análisis los datos generados por eventos alternos ajenos a las condiciones naturales del pozo.
V. CONCLUSIONES
Se ha demostrado que, aunque el software de desarrollo empleado es una herramienta de oficina de la suite de Microsoft Office, los límites mediante estas herramientas son nulos, ya que depende de la calidad y las habilidades del desarrollador del software en el lenguaje Visual Basic, lo cual, permite integrar datos tratados día a día en el ámbito petrolero, como son las hojas de cálculo electrónicas, Excel.
El algoritmo demostró que puede encontrar los parámetros y al mismo tiempo generar la curva de producción cercana a los datos históricos del campo Con esta información calibrada, ahora se puede extender en el tiempo y realizar proyecciones de la tasa de petróleo muchos años y con esto conocer, cuantas reservas de petróleo remanente puedo obtener, por ende, mejores análisis económicos y el riesgo de inversiones disminuye, así como conocer los valores estimados a recuperar en dinero y barriles.
VI. RECOMENDACIONES
Generar nuevas herramientas basadas en otras formas de Inteligencia artificial, como las redes neuronales, minería de datos, colonias de hormigas, o machine learning, ya que solo hemos analizado un pozo de un campo de un solo reservorio. Realmente son más datos recopilados de un campo ecuatoriano, por ejemplo, pueden ser 100 pozos con 5 reservorios produciendo, es una cantidad inmensa de información que mediante un machine learning podría comprender este comportamiento y hacer predicciones con todos los pozos en todo el campo, ahorrando tiempos y cálculos pozo a pozo.
REFERENCIAS
1. Al-Mudhafar, W. J., & Al-Hashim, A. H. (2020). Genetic algorithms for production optimization in oil and gas reservoirs. CRC Press.
2. Al-Rbeawi, A. A. A. (2024). Study curve fitting using genetic algorithms and improve data analysis. EKB Journal Management System. 1. Obtenido de: https://journals.ekb.eg/article_371943_a0b13e7f5efa69fd6bc3165265575c07.pdf
3. Chaves, J. A. F., & da Silva, G. F. (2024). Optimización del procesamiento de petróleo en FPSO: Un sistema especializado con algoritmos genéticos para el control del punto de ajuste. Revista De Ciencia Y Tecnología, 42(1), 28–38. 1. Obtenido de: https://www.fceqyn.unam.edu.ar/recyt/index.php/recyt/article/view/852
4. Chennakrishnan, B. (2024). Decline curve analysis using artificial intelligence. ResearchGate. 1. Obtenido de: https://www.researchgate.net/publication/337123408_Decline_Curve_Analysis_Using_Artificial_Intelligence
5. El-Sebakhy, M. (2022). An optimized gradient boosting model by genetic algorithm for forecasting crude oil production. Energies, 15(17), 6416. 1. Obtenido de: https://www.mdpi.com/1996-1073/15/17/6416
6. El-Sebakhy, M. A., & Al-Mutairi, A. (2022). Modified aquila optimizer for forecasting oil production. Oil & Gas Science and Technology – Revue d’IFP Energies nouvelles. 1. Obtenido de: https://www.tandfonline.com/doi/full/10.1080/10095020.2022.2068385
7. Fang, X., Wang, Q., & Zhang, P. (2022). Optimize well placement based on genetic algorithm and productivity potential maps. Frontiers in Energy Research, 10, 860220. 1. Obtenido de: https://www.frontiersin.org/journals/energy-research/articles/10.3389/fenrg.2022.860220/full
8. Ghoneim, K. S., & Hamed, S. A. (2022). Removing the outlier from the production data for the decline curve analysis of shale gas reservoirs: A comparative study using machine learning. Applied Sciences, 12(18), 9476512. 1. Obtenido de: https://pmc.ncbi.nlm.nih.gov/articles/PMC9476512/
9. Guo, B., Lyons, W. C., & Ghalambor, A. (2008). Petroleum production engineering: A computer-assisted approach. Elsevier.
10. Idrobo, E. A., Santos, N., Peña, H., Martínez, E. E., Pineda, E., Meza, G. D., & Patarroyo, J. A. (2005). Localización óptima de pozos de desarrollo mediante la integración de modelamiento geoestadístico basado en objetos y computación evolutiva. Congreso Internacional de la Industria del Petróleo y Gas (INGEPET 2005), Lima, Perú.
11. Idrobo, E. A., Santos, N., & Pérez Vega, H. H. (2005). Aplicación de algoritmos genéticos como herramienta de optimización en la ubicación de pozos de desarrollo y en el trazado de los canales en yacimientos de depositación fluvial. CT&F - Ciencia, Tecnología y Futuro, 3(1), 139-149. 1. Obtenido de: http://www.scielo.org.co/scielo.php?script=sci_arttext&pid=S0122-53832005000100011
12. Li, S., Zhang, S., Yang, J., & Han, Y. (2022). Development of decline curve analysis parameters for tight oil wells using a machine learning algorithm. Journal of Energy and Power Engineering, 16(4), 133-143. 1. Obtenido de: https://www.researchgate.net/publication/359724232_Development_of_Decline_Curve_Analysis_Parameters_for_Tight_Oil_Wells_Using_a_Machine_Learning_Algorithm
13. Ling, K., & He, J. (2012). Theoretical bases of Arps empirical decline curves. SPE Annual Technical Conference and Exhibition. SPE
14. Memon, Z. A., Panhwar, S., Soomro, M. A., & Tunio, A. H. (2024). An improved decline curve analysis method via ensemble learning for shale gas reservoirs. Energies, 17(23), 5910. 1. Obtenido de: https://www.mdpi.com/1996-1073/17/23/5910
15. Mohammadpour, M., Haghighi, M., & Kazemi, F. (2024). Application of a genetic algorithm in co-optimization of geological CO2 storage based on artificial neural networks. Clean Energy, 8(1), 111-122. 1. Obtenido de: https://academic.oup.com/ce/article/8/1/111/7515047
16. Mondavi, D. (2014). Implementación de algoritmos genéticos para la optimización de parámetros de yacimiento mediante curvas de producción de pozos seleccionados en un campo del Oriente Ecuatoriano [Tesis de ingeniería en petróleo]. Universidad Politécnica Salesiana. https://www.dspace.espol.edu.ec/handle/123456789/30922
17. Morad, I. (2025). Bayesian-based probabilistic decline curve analysis study in unconventional reservoirs. Journal of Petroleum Exploration and Production
18. Technology. 1. Obtenido de: https://pmc.ncbi.nlm.nih.gov/articles/PMC10998136/
19. Mustapha, M., Abdullah, M. H., & Al-Yasari, A. J. (2023). Probabilistic decline curve analysis: State-of-the-art review. Energies, 16(10), 4117. 1. Obtenido de: https://www.mdpi.com/1996-1073/16/10/4117
20. Noor, M. S., & Mohd Sarim, M. H. (2024). Genetic algorithms in oil industry: An overview. ResearchGate. 1. Obtenido de: https://www.researchgate.net/publication/223702548Genetic_algorithms_in_oil_industry_An_overview
21. Paliwal, S. (2020). Forecasting oil and gas using decline curves. CEDengineering.com. 1. Obtenido de: https://www.cedengineering.com/userfiles/Forecasting%20Oil%20and%20Gas%20Using%20Decline%20Curves.pdf
22. Pietersz, D. (2020). An automated algorithm for decline analysis. Oxford University Press. 1. Obtenido de: https://miis.maths.ox.ac.uk/170/1/decline_analysis.pdf
23. Tadjer, A., Hong, A., & Bratvold, R. B. (2025). Machine learning based decline curve analysis for short-term oil production forecast. Energy Exploration & Exploitation. 1. Obtenido de: https://www.researchgate.net/publication/351665596Machine_learning_based_decline_curve_analysis_for_short-term_oil_production_forecast