РЕШЕНИЕ ЗАДАЧИ ВЫПОЛНИМОСТИ БУЛЕВЫХ ФОРМУЛ ДЛЯ ОПРЕДЕЛЕНИЯ СВЯЗНОСТИ ДИСКРЕТНОЙ СЕТИ ТРЕЩИН
SOLVING PROBLEM OF SATISFIABILITY OF BOOLEAN FORMULAS FOR DETERMINATION OF DISCRETE FRACTURE NETWORK CONNECTIVITY

ПЕРЕКРЕСТНЫЕ ССЫЛКИ НА РОДСТВЕННЫЕ ЗАЯВКИ
[0001] Данная заявка испрашивает приоритет по отношению к заявке США № 14/978794, поданной 22 декабря 2015 года, которая включена в данный документ в полном объеме посредством ссылки.
УРОВЕНЬ ТЕХНИКИ
[0002] При проведении изысканий месторождений углеводородов дискретная сеть трещин (ДСТ) дает информацию о разрывах в том или ином геологическом пласте, где могут находиться запасы углеводородов. Располагая информацией о ДСТ, геолог может оценить промышленный объем углеводородов. А исходя из оценочного объема производства, принимать решения о его организации таким образом, чтобы обеспечить эффективное использование производственных ресурсов. Поэтому способы быстрой, точной и эффективной обработки информации о ДСТ востребованы теми отраслями, которые заняты добычей углеводородов.
КРАТКОЕ ИЗЛОЖЕНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
[0003] Описывается способ, применяемый для идентификации связности, по меньшей мере, одной трещины в геологическом пласте с другими подобными трещинами. Способ включает: получение процессором информации о связности каждой конкретной трещины в пласте, сведений о связности каждой конкретной трещины, включая ее связи с другими трещинами; преобразование процессором информации о связности для каждой конкретной трещины в конъюнктивную нормальную форму; и определение с помощью процессора связности этой, по меньшей мере, одной трещины с другими трещинами путем получения информации о связности для каждой конкретной трещины в конъюнктивной нормальной форме с использованием решателя задач выполнимости булевых формул.
[0004] Также представлено устройство, предназначенное для определения связности, по меньшей мере, одной трещины с другими трещинами геологического пласта. Устройство содержит процессор, выполненный с возможностью: получения информации о связности каждой конкретной трещины геологического пласта, сведений о связности каждой конкретной трещины, обладающей связями с другими трещинами; преобразования процессором информации о связности для каждой конкретной трещины в конъюнктивную нормальную форму; и определения с помощью процессора связности этой, по меньшей мере, одной трещины с другими трещинами путем расчета информации о связности для каждой конкретной трещины в конъюнктивной нормальной форме, с использованием решателя задач выполнимости булевых формул.
КРАТКОЕ ОПИСАНИЕ ГРАФИЧЕСКИХ МАТЕРИАЛОВ
[0005] Следующие описания не должны рассматриваться как ограничивающие. При ссылках на прилагаемые фигуры аналогичные элементы пронумерованы одинаковым образом:
[0006] На Фиг. 1 проиллюстрированы аспекты сети трещин;
[0007] На Фиг. 2 проиллюстрированы вычислительные аспекты, возникающие при пересечении двух плоскостей трещин;
[0008] На Фиг. 3 проиллюстрированы аспекты, связанные с производственным оборудованием; и
[0009] На Фиг. 4 проиллюстрирована блок-схема, применяемая для описания связности трещин с помощью ДСТ.
ПОДРОБНОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
[0010] Подробное описание одного или нескольких вариантов реализации представленного здесь в качестве примера устройства и способа, причем фигуры не ограничивают рассмотрение иных вариантов.
[0011] При использовании традиционных способов вычисление связности трещин в больших дискретных сетях трещин (ДСТ) занимает много времени. Как будет проиллюстрировано, задача вычисления связности в сетях трещин может быть преобразована в формулу логики высказываний, которая решается путем обращения к решателю задачи выполнимости булевых формул (Boolean Satisfiability Problem, SAT). Задача выполнимости решается очень эффективно и широко используется в системах искусственного интеллекта, при проектировании схем и в процессе автоматического доказательства теорем. Идея, заложенная в основу решения этой задачи, заключается в преобразовании проблемы вычисления связности в сети трещин в формулу логики высказываний. Ее решение дает ответ на вопрос: «Какие трещины связаны с данной трещиной?» Любая трещина может быть равнозначно заменена стволом скважины или некоей произвольной границей или местоположением в пространстве,  являющимся частью модели связности сети ДСТ.
[0012] После определения связности ДСТ ее можно использовать для картирования производственных процессов добычи углеводородов в том или ином геологическом пласте. Обращаясь к карте, геолог может принимать решения, относящиеся к процессам добычи углеводородов или даже оценивать целесообразность продолжения добычи.
[0013] Сети естественных трещин геологического пласта, которые служат руслами для потоков жидкости в недрах, имеют решающее значение при выполнении оценок запасов углеводородов. Однако в реальной ситуации фактические физические характеристики каждой трещины точно неизвестны. Обычно используется гипотеза, опирающаяся на концепцию дискретной сети трещин (ДСТ), которая является дискретной реализацией для большого количества (ансамбля) возможных реализаций, имеющих одинаковое стохастическое описание. Значительный объем работ в отрасли связан с созданием и анализом одной (или нескольких, но не более) подобных ДСТ, не учитывая большое число всевозможных реализаций в подобном ансамбле. Затем на основе результатов этих исследований принимаются важные решения, связанные с большими затратами. Для формирования сети ДСТ используется подход, предусматривающий анализ керновых проб пласта, изучение изображений, полученных в результате каротажа скважины, а также данных, полученных от разных датчиков, например, данные об электрическом сопротивлении, полученные в процессе электрического каротажа скважины. Также в качестве неограничивающих примеров используются изображения, полученные в результате применения методов ядерного магнитного резонанса (ЯМР), и данные о фоне гамма-излучения. Для картирования производственных процессов по добыче углеводородов выполняется экстраполяция значений плотности трещин, их ширины и ориентации из скважины, где были получены эти данные, в пласт.
[0014] На Фиг. 1 проиллюстрирован вид сверху примера сети трещин 26 пласта 14 в земных недрах 13. Сеть трещин 26 содержит сеть трещин 27, которые могут быть связаны или не связаны с другими трещинами. В общем случае, трещины 27 являются трещинами в породе пласта 14. В варианте реализации, проиллюстрированном на  Фиг. 1, сеть трещин 26 содержит три кластера трещин, не связанных друг с другом. В одном или нескольких вариантах реализации изобретения сеть трещин 26 может представлять собой дискретную сеть трещин, как она известна в данной области техники. Понятно, что трещины 27, проиллюстрированные в виде линий на Фиг. 1, представляют собой виды сбоку плоскостей трещин, однако некоторые или даже все плоскости трещин могут иметь различные ориентации, например, нормальные компоненты вектора перпендикулярны плоскости иллюстрации, параллельны плоскости иллюстрации или являются их комбинацией.
[0015] В процессе анализа дискретной сети трещин довольно часто нужно получить эффективный ответ на вопросы о том, какие трещины связаны с конкретной трещиной (или стволом скважины) и связаны ли две данных трещины. Описанная здесь процедура или способ решения заключается в преобразовании имеющейся информации о связности трещин (1 соединена с 2, 2 соединена с 3 и т.п., как проиллюстрировано на Фиг. 1) в конъюнктивную нормальную форму (КНФ), которая является конъюнкцией (результатом выполнения логической операции И) дизъюнкций (результат выполнения логической операции ИЛИ) одного или нескольких литералов. Литерал представляет наличие трещины (истина) или ее дополнение (ложь). Данное булево выражение, хотя оно нередко будет довольно длинным, может эффективно разрешаться с помощью решателя задач выполнимости булевых формул.
[0016] Базовая КНФ для примера, проиллюстрированного на Фиг. 1, имеет следующий вид: КНФ = [[1,-2],[-1,2],[2,-3], [-2,3], [2,-5], [-2,5], [3, -4],[-3,4], [4,-5], [-4,5],[6,-7],[-6,7],[8,-9], [-8,9], [8,-10], [-8,10],[9,-10],[-9,10]].        (1)
Здесь трещина 1, связанная с трещиной 2, представлена как [1,-2]. И наоборот, поскольку трещина 2 также связана с трещиной 1, то данная связь также представляется как [-1,2].
Аналогичным образом представлены парными кортежами другие связи для каждого соединения.
[0017] Затем возникает следующий вопрос: «Какие трещины связаны с трещиной 1?» Этот вопрос может быть закодирован как ограничение на окончательный вид КНФ путем добавления (1) с помощью терма, реализующего данное ограничение.
[0018] Затем с помощью решателя задач выполнимости булевых формул (SAT-решатель) получаем все возможные решения: [1, 2, 3, 4, 5, -6, -7, -8, -9, -10]; [1, 2, 3, 4, 5, -6, -7, 8, 9, 10]; [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; [1, 2, 3, 4, 5, 6, 7, -8, -9, -10].
[0019] Если обратиться к данной трещине или некоторой другой (например, к трещине 1 в данном примере), то все несвязанные трещины являются неопределенными, а это означает, что логические значения «истина» и «ложь» одинаково часто встречаются в пространстве решений для подобных трещин. На следующем шаге для анализа пространства решений решения суммируются (т.е. суммируются значения, находящиеся в каждом столбце). В данном примере, в результате суммирования получим следующий вектор: [4, 8, 12, 16, 20, 0, 0, 0, 0, 0]. Здесь положительные значения указывают на наличие связи с трещиной 1, а нули — на отсутствие связи с трещиной 1.
[0020] Начиная с этого момента, можно выполнить перебор приведенного выше списка ответов, или сгенерировать таблицу поиска ответов на вопрос «Какая трещина связана с трещиной 1?»:
1: истина
2: истина
3: истина
4: истина
5: истина
6: ложь
7: ложь
8: ложь
9: ложь
10: ложь
[0021] Далее, для справки, подробно рассматриваются решатели задач выполнимости булевых формул, которые хорошо известны в данной области науки. В компьютерных науках задача выполнимости булевых формул (или задача SAT), которую иногда называют Propositional Satisfiability Problem (или сокращенно SATISFIABILITY) заключается в идентификации наличия интерпретации, удовлетворяющей заданной булевой формуле. Иными словами, спрашивается, могут ли переменные данной булевой формулы последовательно заменяться значениями ИСТИНА или ЛОЖЬ так, чтобы формула принимала значение ИСТИНА. Если так, то формула называется выполнимой. С другой стороны, если таких значений не существует, выраженная формулой функция принимает значение ЛОЖЬ для всех возможных значений переменных, и данная формула является невыполнимой. Например, формула «a И НЕ b» является выполнимой, поскольку можно найти значения a = ИСТИНА и b = ЛОЖЬ, которые придают формуле (a И НЕ b) = ИСТИНА. Напротив, «a И НЕ a» является невыполнимой формулой.
[0022] SAT-задача — одна из первых задач, для которой доказана NP-полнота. Это значит, что все задачи из класса сложности NP, куда входит широкий спектр задач по оптимизации и задач по нахождению естественных решений, в крайнем случае столь же трудно решить, как и SAT. Многие примеры SAT-задач, которые встречаются на практике, такие как задачи, связанные с искусственным интеллектом, разработкой схем и автоматическим доказательством теорем, могут фактически и достаточно эффективно разрешаться с использованием эвристических SAT-решателей. Подобные алгоритмы не всегда эффективны во всех случаях, когда привлекается SAT, но на практике эти алгоритмы, как правило, хорошо зарекомендовали себя во многих приложениях.
[0023] Формула логики высказываний, которую также называют булевым выражением, создается на основе переменных, операторов И (конъюнкция, также обозначаемая символом ∧), ИЛИ (дизъюнкция, ∨), НЕ (отрицание, ¬) и круглых скобок. Формула называется выполнимой, если она может принимать значение ИСТИНА, когда переменные принимают соответствующие логические значения (т.е. ИСТИНА, ЛОЖЬ). Задача выполнимости булевых формул (SAT) заключается в том, чтобы по данной формуле проверить ее выполнимость. Данная задача, связанная с возможностью выполнимости для различных формул, имеет центральное значение в компьютерных науках, включая теоретические основы информационных технологий, теорию сложности, алгоритмы, криптографию и искусственный интеллект. Существует несколько особых случаев задачи выполнимости булевых формул, когда требуются формулы, имеющие конкретную структуру. Литерал представляет собой либо переменную, и в этом случае называется положительным литералом, либо отрицание переменной, и тогда называется отрицательным литералом. Предложение — это дизъюнкция литералов (или отдельный литерал). Предложение называется предложением Хорна, если оно содержит не более одного положительного литерала. Формула представлена в конъюнктивной нормальной форме (КНФ), если является конъюнкцией предложений (или одного предложения). Например, «x1» является положительным литералом, «¬х2» является отрицательным литералом, «x1 ∨ ¬ х2» является предложением, а «(x1 ∨ ¬ х2) ∧ (¬ x1 ∨ x2 ∨ x3) ∧ ¬x1» — формула в конъюнктивной нормальной форме, ее 1-е и 3-е предложения — это предложения Хорна, но ее второе предложение не является предложением Хорна. Формула выполнима, поскольку при выборе x1 = ЛОЖЬ, x2 = ЛОЖЬ, x3 — произвольное значение, получим, что поскольку (ЛОЖЬ ∨¬ ЛОЖЬ) ∧ (¬ ЛОЖЬ ∨ ЛОЖЬ ∨ x3) ∧¬ ЛОЖЬ оценивается как (ЛОЖЬ ∨ ИСТИНА) ∧ (ИСТИНА ∨ ЛОЖЬ ∨ x3) ∧ ИСТИНА и, в свою очередь, ИСТИНА ∧ ИСТИНА ∧ ИСТИНА (т.е. ИСТИНА). Напротив, КНФ формула вида а ∧ ¬а, состоящая из двух предложений одного литерала, является невыполнимой, поскольку в случае  a = ИСТИНА и a = ЛОЖЬ она приводит к значениям ИСТИНА ∧ ¬ИСТИНА (т.е. ЛОЖЬ) и ЛОЖЬ ∧ ¬ ЛОЖЬ (т.е. снова ЛОЖЬ), соответственно.
i
n
i
[0024] Для некоторых версий SAT-задачи удобно определить понятие обобщенной конъюнктивной нормальной формы формулы, а именно, объединения произвольного числа обобщенных предложений, когда последние имеют вид R(l,...,l) для некоторого булева оператора R и (обычных) литералов l. Различные наборы допустимых булевых операторов приводят к различным версиям задачи. В качестве примера, пусть R (¬x, a, b) является обобщенным предложением, а R(¬x, a, b) ∧ R(b, y, c) ∧ R(c, d, ¬z) — обобщенная конъюнктивная нормальная форма. Данная формула используется ниже, причем R является тернарным оператором, который принимает значение ИСТИНА только в том случае, когда это значение принимает только один из его аргументов.
[0025] Используя законы булевой алгебры, каждая формула логики высказываний может быть преобразована в эквивалентную ей конъюнктивную нормальную форму, которая, однако, может быть экспоненциально длиннее. Например, преобразование формулы (xl∧yl) ∨ (x2∧y2) ∨...∨ (xn∧yn) в конъюнктивную нормальную форму приводит к выражению (x1∨x2∨...∨xn) ∧ (yl∨x2∨...∨xn) ∧ (x1∨y2∨...∨xn) ∧ (y1∨y2∨...∨xn) ∧...∧ (x1∨x2∨...∨yn) ∧ (y1∨x2∨...∨yn) ∧ (x1∨y2∨...∨yn) ∧ (y1∨y2∨...∨yn); в то время как первая является дизъюнкцией n конъюнкций двух переменных, последняя состоит из 2n предложений n переменных.
[0026] Затем обсуждаются алгоритмы, известные на данном уровне техники, которые применяются для решения SAT-задачи. Поскольку SAT-задача является NP-полной, для ее решения известны только алгоритмы с экспоненциальным порядком сложности, представляющие собой худший возможный сценарий. Несмотря на такую ситуацию, в течение последнего десятилетия разработаны эффективные и широко применяемые алгоритмы для решения SAT-задачи, которые значительно расширили возможности по решению задач при наличии десятков тысяч переменных и миллионов ограничений (т.е. предложений). Примерами подобных проблем служит автоматизация проектирования электроники (electronic design automation, EDA), куда входит проверка формальной эквивалентности, проверка модели, формальная верификация микропроцессоров с конвейерной обработкой данных, создание автоматических тестовых шаблонов, маршрутизация FPGA, планирование и задачи планирования и т.д. Механизм решения SAT-задачи является важным компонентом в панели инструментов EDA.
[0027] Имеются два класса высокопроизводительных алгоритмов, применяемых для решения практических SAT-задач: управляемый конфликтами алгоритм обучения дизъюнктам (Conflict-Driven Clause Learning), который можно рассматривать как современную версию алгоритма DPLL (известные реализации включают Chaff и GRASP) и алгоритмы стохастического локального поиска, такие как WalkSAT.
[0028] Решатель DPLL SAT использует процедуру систематического поиска с возвратом, что позволяет исследовать пространство переменных (экспоненциального порядка) при наложенных ограничениях. Основная процедура поиска предложена в двух оригинальных работах начала 1960-х годов (см. ссылки ниже) и в настоящее время обычно именуется алгоритмом Дэвиса-Патнама Логемана-Лавленда («DPLL» или «DLL»). Теоретически, для уровня сложности семейства алгоритмов DPLL доказаны экспоненциальные оценки снизу.
[0029] Противоположный подход состоит в использовании рандомизированных алгоритмов, таких как PPSZ-алгоритм, созданный Патури, Пудлаком, Саксом и Заном, когда переменные в случайном порядке принимают значения с использованием некоторых эвристических методов, например, вводится некий ограничитель ширины разрешения. Если эвристический метод не обеспечивает выбор корректных параметров  настройки, значение переменной присваивается случайным образом. Алгоритм PPSZ характеризуется малым временем выполнения для 3-SAT при задании единственного удовлетворительного присваивания для переменной. В настоящее время эта среда признана наилучшей для решения данных задач. При задании многих удовлетворительных присваиваний лучше всего пользоваться рандомизированным алгоритмом Шенинга.
[0030] Современные SAT-решатели (разработанные за последние десять лет) делятся на два типа: «управляемые конфликтами» и «предсказывающие». Решатели, управляемые конфликтами, дополняют базовый алгоритм поиска DPLL эффективным анализом конфликтов, обучением дизъюнктам, нехронологическим обратным отслеживанием (или обратным переходом), а также распространением предложений с «двумя наблюдаемыми литералами», , адаптивным разветвлением и случайными перезапусками. Эмпирически доказано, что эти «дополнения» к основному систематическому поиску необходимы для обработки больших экземпляров SAT, возникающих при автоматизации электронного проектирования (EDA). Предсказывающие решатели особенно усилили редукции (выходящие за рамки распространения предложений) и соответствующие эвристики, и они, как правило, лучше решателей, управляемых конфликтами, в случае жестких экземпляров (в то время как решатели, управляемые конфликтами, могут быть существенно лучшими при использовании вместе с большими экземплярами, которые фактически включают простые экземпляры).
[0031] Современные SAT-решатели оказывают значительное влияние на такие области, как верификация программного обеспечения, поиска ограниченных решений в области искусственного интеллекта, при исследовании операций и на ряд других областей. Мощные решатели доступны в качестве свободных программ и программ с открытым кодом. В частности, управляемый конфликтами решатель Mini SAT включает всего лишь около 600 строк кода. Современный параллельный SAT-решатель известен как ManySAT. Это программа позволяет достичь сверхлинейного ускорения при решениях важных классов проблем. Пример предсказывающего решателя — march_dl.
[0032] Некоторые разновидности больших случайных выполнимых экземпляров SAT решаются путем применения распространения опросов (survey propagation, SP). В частных случаях, в приложениях по проектированию и верификации аппаратного обеспечения выполнимость и другие логические свойства данной формулы логики высказываний описываются с помощью представления формулы в виде бинарной диаграммы решений (БДР).
[0033] Практически все SAT-решатели содержат условия для принудительного останова, поэтому они прекращают выполнение  через вполне разумный период времени, даже если решение не будет найдено. Различные SAT-решатели обнаруживают различные варианты решений легко или просто, некоторые превосходно справляются с доказательством невыполнимости, другие же — более успешны в поисках решений. Отличия в поведении SAT-решателей можно заметить в контекстах решений SAT.
[0034] Далее представлены неограничивающие варианты реализации SAT-решателей. Онлайн SAT-решатели: BoolSAT; Logictools; mini-sat-in-your-browser; SATRennesPA и somerby.net/mack/logic. Автономные SAT-решатели: MiniSAT; PicoSAT; Sat4j; Glucose (формат DIMACS-CNF); RSat; UBCSAT (поддерживает невзвешенные и взвешенные предложения), обе возможности представлены в формате DIMACS-CNF); CryptoMiniSat; Spear (поддерживает битовую векторную арифметику и может использовать как формат DIMACS-CNF, так и формат Spear); HyperSAT; BASolver; ArgoSAT; Fast SAT Solver; zChaff; и BCSAT. Поскольку SAT-решатели известны из  предшествующего уровня техники, они далее подробно не рассматриваются.
[0035] Затем более подробно рассматривается вопрос об определении связности сети ДСТ с помощью SAT-решателя. Связность дискретной сети трещин (ДСТ) представляет собой такой набор связей, когда каждая связь включает, как минимум, информацию о пересечении двух трещин. Если каждая трещина характеризуется уникальным идентификатором, то подобная связь представляется кортежем (i, j), где i и j соответственно являются идентификаторами каждой трещины.
[0036] В сети ДСТ трещина обычно моделируется как плоский участок, то есть область плоскости. Очевидно, что не все трещины пересекаются; подобными примерами могут служить параллельные трещины и деформации, геометрические центры которых находятся намного дальше один от другого, чем сумма длин линий их протяженности.
[0037] Пересечение двух трещин представляет собой линейный сегмент и определяется несколькими способами. Один из способов описан здесь со ссылкой на Фиг. 2. Сначала идентифицируется плоскость, в которой находится каждая из трещин (плоскость трещины 20). Плоскость трещины 20 может быть легко представлена вектором трещины 22 и одной точкой, являющейся частью трещины. Затем определяется пересечение двух плоскостей трещин. Данное пересечение представлено линией 21, за исключением случая, когда обе нормали трещин 22 параллельны, тогда обе плоскости трещин параллельны, и трещины не пересекаются. Эта линия пересекает контур каждой трещины в двух точках. Все эти четыре точки (по две от каждой трещины), по определению, находятся на одной линии. Две внутренние точки образуют отрезок линии, который описывает пересечение двух трещин.
[0038] Вышерассмотренное изложение выполнено в терминах трехмерной (3D) модели, где каждая трещина представлена в виде трехмерного участка, т.е. областью плоскости, описанной в трех измерениях. Преобразование в двумерную модель (2D) выполняется довольно просто. Кроме того, если рассматривать 2D-модель, для которой трещины описываются отрезками линии, каждая трещина может быть достроена в третьем направлении, тогда приведенный выше способ применяется непосредственным образом.
[0039] Информация о связности сети ДСТ может быть представлена списком кортежей, где каждый кортеж содержит два идентификатора, причем каждый идентификатор однозначно идентифицирует трещину. Целочисленное число служит идентификатором трещины, но возможны и другие варианты идентификаторов. Сеть ДСТ, которая проиллюстрирована на Фиг. 1 используется как пример для иллюстративных целей. Сеть трещин, проиллюстрированная на Фиг. 1, включает три кластера. Трещины (например, плоскости трещин) в данном примере вертикальны, и для удобства визуализации представлен вид сверху. Данное раскрытие является не ограничивающим, и подобный подход может применяться при обработке информации о трещинах, ведущих в любых направлениях.
[0040] Для применения SAT-решателя информация, содержащая связность ДСТ, должна быть закодирована в форму или формат, пригодный для восприятия SAT-решателем, например, представлена в виде базовой конъюнктивной нормальной формы (КНФ). Форма КНФ может представляться в виде списка кортежей. Каждая связность трещин (i, j) служит источником для двух кортежей в форме КНФ, например (i, -j) и (-i, j), таким образом, формируется форма КНФ для сети ДСТ, проиллюстрированная на Фиг. 1, которая рассматривалась ранее: КНФ = [(1, -2), (-1,2), (2, -3), (- 2,3), (2, -5), (- 2,5) , (3, -4), (-3,4), (4, -5), (- 4,5), (6, -7), (- 6, 7), (8, -9), (-8,9), (8, -1 0), (-8,1 0), (9, -1 0), (-9,1 0)].
[0041] Чтобы узнать, какая трещина связан с трещиной i, кортеж (i) добавляется в конце КНФ. Например, для исследования того, какая трещина связана с трещиной 1, конечная КНФ представляет собой: КНФ = [(1, -2), (-1,2), (2, -3), (-2,3), ( 2, -5), (-2,5), (3, -4), (-3,4), (4, -5), (- 4,5), (6, -7), (- 6, 7), (8, -9), (-8;-9), (8, -10), (- 8,10), (9, -10), (- 9,10), (1)], где «(1)» в конце строки КНФ означает, что решение заключается  в поддержке всех связей с трещиной 1. «(2)» в конце строки КНФ означает, что решение поддерживает все связи с трещиной 2 и т.д.
[0042] Начиная с этого момента, можно применять несколько SAT-решателей, таких как PicoSAT, популярный SAT-решатель, написанный Армином Бьиром (Armin Biere) на языке программирования C. Илан Шнелл (Ilan Schnell) поддерживает эффективные привязки Python в пакете pycosat. Одна из функций  pycosat называется itersolve. Эта функция выполняет итерации по решениям. Для получения и суммирования решений используется следующий фрагмент кода Python:
ans = zeros(N)
for sol in pycosat.itersolve(cnf):
ans += array(sol)
где функция zeros(N) возвращает массив с N нулями, метод array() передает аргументы массиву для выполнения суммирования.
[0043] Что касается рассматриваемой трещины (например, трещины 1 в данном примере), то все несвязанные трещины являются неопределенными. Это по определению, означает, значения «истина» и «ложь» одинаково часто встречаются в пространстве решений для этих трещин. Поэтому удобно использовать суммирование для анализа пространства решений. Результат, полученный SAT-решателем для данного примера, [4, 8, 12, 16, 20, 0, 0, 0, 0, 0], совпадает с результатом, представленным выше. Кроме того, как отмечалось выше, ответом может служить перебор или таблица ответов, сгенерированная в ответ на вопрос: «Какая трещина связана с трещиной 1?» В данном случае трещины 1-5 соединены с трещиной 1 (то есть «истина»), а трещины 6-10 не связаны с трещиной 1 (то есть «ложь»).
[0044] Поскольку дальнейшие действия выполняются после определения связности сети трещин, рассмотрим теперь производственное оборудование, которое реализует эти действия. На Фиг. 3 проиллюстрированы различные аспекты производственного оборудования, предназначенного для получения углеводородов из пласта (в поперечном разрезе). Буровая установка 100 выполнена с возможностью реализации действий, связанных с добычей углеводородов из скважины 12 (также может упоминаться как колодец или скважина), проникающей в земные недра 13, содержащие пласт 14. Например, буровая установка 100 может содержать насос 11 для выкачивания углеводородов, поступающих на поверхность через скважину 12. Пласт 14 может включать резервуар углеводородов, которые добываются буровой установкой 100. Скважина 12 может быть укреплена кожухом 15 для предотвращения обрушения ствола скважины 12. Буровая установка 100 включает систему по стимуляции резервуара 16, сконфигурированную для стимуляции пласта 14 с поверхности для увеличения потока углеводородов. В одном или нескольких вариантах реализации изобретения система стимулирования резервуара углеводородов 16 выполнена с возможностью гидравлического разрыва породы в пласте 14. Буровая установка 100 может также содержать систему по увеличению дебита скважины 17, которая поддерживает возможность по увеличению дебита скважины 12 (обеспечивает, например, увеличение потока углеводородов из скважины 12). В одном или нескольких вариантах реализации изобретения система по увеличению дебита скважины 17 содержит систему кислотной обработки, выполненную с возможностью введения кислоты в скважину 12 для устранения любых препятствий, блокирующих поток углеводородов.
[0045] Буровая установка 100 может быть выполнена с возможностью исследования пласта 14 с использованием скважинного инструмента 18. Различные варианты реализации скважинного инструмента 18 включают: инструмент по измерению удельного электрического сопротивления, инструмент по нейтронному зондированию, инструмент по зондированию на основе гамма-лучей, инструмент по зондированию на основе ядерного магнитного резонанса (ЯМР), и инструмент по акустическому зондированию. Скважинный инструмент 18 может перемещаться через скважину 12 посредством бронированного кабеля, который также поддерживает связь с поверхностью. Эти инструменты могут предоставлять данные для визуализации стенки ствола скважины 2 и, таким образом, формировать изображения трещин в пласте 14, позволяющие определять длину, ширину и ориентацию трещин. Скважинный инструмент 18 может быть выполнен с возможностью извлечения керновой пробы из пласта для проведения ее анализа уже на поверхности. Анализ керновой пробы, выполняемый на поверхности, помогает определять длину, ширину и ориентацию трещины. В процессе генерирования сети ДСТ может выполняться каротаж скважины и/или анализ на поверхности. Кроме того, скважинный инструмент 18 может быть выполнен с возможностью перфорирования кожуха 15 в выбранных местах для создания отверстий, которые позволяют пластовым флюидам поступать в скважину 12.
[0046] На Фиг. 3 также проиллюстрирована компьютерная вычислительная система 112. Компьютерная система  112 выполнена с возможностью реализации описанных здесь способов. Кроме того, компьютерная вычислительная система 112 может быть сконфигурирована как контроллер при управлении операциями на буровой установке 100, куда входит каротаж скважины, извлечение и анализ проб керна. Не ограничивающие примеры управляющих действий предполагают включение или выключение оборудования, реализацию процессов по стимуляции пласта и увеличению дебита скважины.
[0047] На Фиг. 4 проиллюстрирована  блок-схема способа 40 по определению связности, по меньшей мере, одной трещины с другими трещинами пласта. Блок 41 служит для получения процессором 10 информации о связности для каждой конкретной трещины пласта, сведений о связности для каждой выбранной трещины, включая идентификацию связи с другими трещинами. В вариантах реализации изобретения дискретная сеть трещин представляет собой сеть ДСТ. Информация о связности может также содержать информацию о расположении соответствующих трещин, что позволяет определить их связность как функцию местоположения. В одном или более вариантах реализации изобретения в сеть ДСТ входит описание дискретной трещины, которое описывает местоположение, ориентацию и ширину каждой трещины, представленной в сети ДСТ.
[0048] Блок 42 служит для преобразования процессором информации о связности для каждой конкретной трещины в конъюнктивную нормальную форму. Конъюнктивная нормальная форма представляет собой форму, которая обрабатывается SAT-решателем.
[0049] Блок 43 служит для определения процессором связности, по меньшей мере, одной трещины с другими трещинами путем разрешения информации о связности каждой конкретной трещины в конъюнктивной нормальной форме с использованием решателя задачи выполнимости булевых формул.
[0050] Способ 40 также может включать отображение связности, по меньшей мере, для одной трещины в зависимости от ее расположения, что формирует карту связности, использующую информацию о расположении трещин, которая получена на основе информации о связности. Способ 40 также может включать в себя реализацию производственного процесса с помощью промышленного оборудования при помощи карты связности. Карта может представлять виртуальное изображение, сохраненное в памяти и доступное для отображения на мониторе или в виде твердой копии. Различные варианты реализации производственных действий включают в первоначальную или дополнительную стимуляцию, например, применение гидравлического разрыва, увеличение дебита скважины, кислотную обработку или выполнение дополнительных перфораций в определенных местах, а также работы по ликвидации скважин, такие как прекращение их эксплуатации (например, прекращение выкачивания углеводородов).
[0051] Способ 40 может включать оценку дополнительных запасов углеводородов, которые характеризуются определенными производственными действиями с применением карты для получения входных данных при выполнении оценивания. Если доход от производственного процесса превышает стоимость подобных мероприятий, то данные мероприятия могут быть реализованы. Если не превышает, то от подобных действий придется отказаться. Аналогичным образом, если производственный процесс с использованием определенной скважины приносит небольшой доход, то для обоснования отказа от промышленного использования скважины можно обращаться к карте связности, используемой в качестве входных данных. Например, высокий уровень связности трещин в сочетании с низкой производительностью скважины может сигнализировать об истощении запасов углеводородов.
[0052] Раскрытые здесь способы и системы обеспечивают различные преимущества. Одно из преимуществ заключается в том, что реализация преобразования связности сети ДСТ в базовую форму КНФ занимает всего несколько строк кода и, таким образом, выполняется быстро и эффективно. Кроме того, базовая форма КНФ содержит полную дизъюнктивную нормальную форму, в которой  каждая переменная, относящаяся в каждой связи, появляется только один раз. Это значит, что проверка КНФ занимает немного времени, что исключает довольно распространенное требование об экспоненциальном порядке для временного промежутка, во время которого выполняется преобразование общей задачи SAT в дизъюнктивную нормальную форму. То есть, сложные булевы выражения представляются с помощью меньшего числа компонентов, что позволяет облегчить процедуру решения задачи. К базовой форме КНФ можно добавлять ограничения (например, результаты тестового соединения с трещиной или стволом скважины). Кроме того, SAT-решатели получают довольно эффективные решения для практических применений, например таких, как описанные здесь способы. Кроме того, преимуществом является возможность  анализа пространства решения, то есть, получения более одного решения, причем полученный набор решений может использоваться для получения дополнительной информации, например, для суммирования решений, как в рассмотренных выше примерах. Кроме вышеуказанных преимуществ, следует отметить, что в последнее время для многих SAT-решателей введены псевдобулевые ограничения, что позволяет решить оптимизационные проблемы. Например, представление о проницаемости трещины может применяться для ввода весовых факторов, поэтому при помощи SAT-решателя можно выбрать самый скоростной путь для потока углеводородов.
[0053] Ниже излагаются некоторые варианты реализации изобретений на основе приведенных выше описаний.
[0054] Вариант реализации изобретения 1. Способ определения связности, по меньшей мере, одной трещины с другими трещинами пласта, способ включает: получение процессором информации о связности каждой конкретной трещины пласта, получение сведений о связности каждой конкретной трещины вместе со связями с другими трещинами; преобразование процессором информации о связности для конкретной трещины в конъюнктивную нормальную форму; и определение с помощью процессора возможностей связности, по меньшей мере, одной трещины с другими трещинами путем разрешения информации о связности для конкретной трещины в конъюнктивной нормальной форме, с использованием решателя задач выполнимости булевых формул.
[0055] Вариант реализации изобретения 2. Способ по п. 1, дополнительно включающий определение процессором возможности по связыванию каждой конкретной трещины со скважиной, сформированной в пласте.
[0056] Вариант реализации изобретения 3. Способ по п. 1, отличающийся тем, что когда информация о связности для каждой конкретной трещины дополнительно включает сведения о расположении конкретной трещины, а вариант реализации дополнительно включает картирование связности, по меньшей мере, для одной трещины, в зависимости от расположения, для формирования карты связности.
[0057] Вариант реализации изобретения 4. Способ по п. 3, дополнительно включающий выполнение производственных действий промышленным оборудованием с помощью карты связности.
[0058] Вариант реализации изобретения 5. Способ по п. 4, отличающийся тем, что производственное действие предполагает стимуляцию недр, увеличение дебита скважины, которая используется для добычи углеводородов, прекращение добычи углеводородов или выполнение действий по ликвидации скважины.
[0059] Вариант реализации изобретения 6. Способ по п. 4, отличающийся тем, что карта связности является, по меньшей мере, виртуальной или печатной картой.
[0060] Вариант реализации изобретения 7. Способ по п. 1, отличающийся тем, что каждая трещина или конкретный вариант для рассмотрения идентифицируются уникальным образом.
[0061] Вариант реализации изобретения 8. Способ по п. 1, отличающийся тем, что информация о связности получена на основе дискретной сети трещин.
[0062] Вариант реализации изобретения 9. Устройство для определения связности, по меньшей мере, одной трещины с другими трещинами пласта. Устройство содержит: процессор, выполненный с возможностью реализации следующих действий: получение процессором информации о связности каждой конкретной трещины пласта, получение сведений о связности каждой конкретной трещины вместе со связями с другими трещинами; преобразование процессором информации о связности для конкретной трещины в конъюнктивную нормальную форму; и определение с помощью процессора возможностей соединения, по меньшей мере, одной трещины с другими трещинами путем расчета информации о связности для конкретной трещины в конъюнктивной нормальной форме, с использованием решателя задач выполнимости булевых формул.
[0063] Вариант реализации изобретения 10. Устройство по п. 9, отличающееся тем, что процессор дополнительно выполнен с возможностью определения связности каждой конкретной трещины со скважиной, проникающей в пласт.
[0064] Вариант реализации изобретения 11. Устройство по п. 9, отличающееся тем, что информация о связности каждой конкретной трещины дополнительно содержит сведения о расположении данной трещины, а способ дополнительно включает отображение связности, по меньшей мере, одной конкретной трещины в зависимости от ее расположения для формирования карты связности.
[0065] Вариант реализации изобретения 12. Устройство по п. 11, дополнительно включающее производственное оборудование, выполненное с возможностью реализации промышленных действий с использованием карты связности.
[0066] Вариант реализации изобретения 13. Устройство по п. 12, отличающееся тем, что производственное оборудование содержит гидравлическое устройство для стимуляции процесса добычи углеводородов.
[0067] Вариант реализации изобретения 14. Устройство по п. 12, отличающееся тем, что производственное оборудование включает систему кислотной обработки.
[0068] Для обеспечения изложенных здесь принципов могут использоваться различные компоненты анализа, включая цифровую и/или аналоговую системы. Например, буровая установка 100, скважинный инструмент 18 и/или компьютерная вычислительная система 112 могут содержат цифровые и/или аналоговые системы. Система может содержать такие компоненты, как: процессор, носитель данных, память, устройство ввода/вывода (например, дисплей или принтер), канал связи, пользовательские интерфейсы, программные продукты, сигнальные процессоры (цифровые или аналоговые) и другие подобные компоненты (такие как резисторы, конденсаторы, катушки индуктивности и т.д.) для обеспечения работы и анализа описанных здесь устройства и способов, любым из нескольких способов, хорошо зарекомендовавших себя в данной области. Предполагается, что эти установки могут, хотя и необязательно, реализовываться в сочетании с набором выполняемых компьютером инструкций, хранящихся на энергонезависимом машиночитаемом носителе, включая память (ПЗУ, ОЗУ), оптические устройства (CD-ROM) или магнитные устройства (диски, жесткие диски) или любой другой тип устройства, который при функционировании принуждает компьютер реализовывать способы данного изобретения. Такие инструкции могут поддерживать функционирование, контроль, сбор и анализ оборудования и другие функции, которые, по мнению проектировщика системы, владельца, пользователя или другого подобного персонала, считаются уместными в дополнение к функциям, описанным в данном представлении. Обработанные данные, такие как результаты реализованного способа, могут передаваться в виде сигнала через выходной интерфейс процессора устройству приема сигнала. Устройство приема сигнала может представлять компьютерный дисплей или принтер, реализующий представление результатов пользователю. Альтернативно или дополнительно, устройство приема сигнала может служить носителем данных или памятью для хранения результатов. Кроме того, может передаваться предупреждение от процессора пользовательскому интерфейсу, если результат выходит за пределы пороговых значений. Кроме того, результат может передаваться контроллеру или процессору для выполнения алгоритма, связанного с промышленным производством, где результат используется в качестве входных данных.
[0069] Элементы вариантов реализации изобретения введены либо с помощью неопределенного артикля «a», либо «an». Артикль служит для обозначения того, что имеется один или несколько этих элементов. Термины «включая», «наличие» и т. п. предназначены для описания включений, поэтому могут существовать дополнительные элементы, кроме тех, что уже перечислены. Союз «или» при использовании в списке, состоящем из, не менее чем двух терминов, означает любой термин или комбинацию терминов. Термин «выполнен  с возможностью» относится к одному или нескольким структурным ограничениям устройства, которые необходимы для устройства при выполнении функций или операций, в соответствии с которыми устройство настроено.
[0070] Представленная здесь блок-схема является примерной. Для этой диаграммы может существовать большое количество вариантов или этапов (или операций), описанных в ней, без отклонения от сущности изобретения. Например, этапы могут выполняться в другом порядке, или этапы могут быть добавлены, удалены или изменены. Все эти вариации считаются частью заявленного изобретения.
[0071] Хотя показаны и описаны один или несколько вариантов реализации изобретения, могут выполняться модификации и замены без отхода от сущности и объема изобретения. Соответственно, следует понимать, что данное изобретение описано иллюстративно, не ограничивающим способом.
[0072] Принимается во внимание, что различные компоненты или технологии обеспечивают определенные необходимые или полезные функциональные возможности или особенности. Соответственно, эти функции и особенности, которые требуются для поддержки прилагаемой формулы изобретения и ее вариаций, признаются неотъемлемо включенными в качестве части принципов данного изобретения и служат частями раскрываемого изобретения.
[0073] Хотя изобретение описано со ссылкой на примерные варианты реализации, следует понимать, что могут вноситься различные изменения, и их эквиваленты могут быть заменены на элементы, не выходящие за пределы данного изобретения. Кроме того, многие модификации служат для адаптации конкретного инструмента, ситуации или материала в соответствии с идеями изобретения, не отходя от его существенного объема. Поэтому предполагается, что изобретение не ограничено конкретным вариантом реализации, представленным для иллюстрации наиболее благоприятного режима при рассмотрении или реализации данного изобретения, но изобретение включает все варианты реализации, включенные в объем прилагаемой формулы изобретения.