Тип работы:
Предмет:
Язык работы:


Проверка выполнимости SMT-формул с помощью нейронных сетей

Работа №144921

Тип работы

Дипломные работы, ВКР

Предмет

математика

Объем работы53
Год сдачи2024
Стоимость4700 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
18
Не подходит работа?

Узнай цену на написание


Введение 4
SMT-формулы 4
SMT-логики 6
SMT-решатели 9
Применения 10
Символьное исполнение 11
Постановка задачи 13
Обзор литературы и предметной области 15
Устройство GNN 15
FastSMT 18
GNN for Scheduling of SMT Solvers 21
NeuroSAT 23
1. Датасет 26
1.1. SMT-COMP 26
1.2. USVM 27
1.3. Метрики 31
2. Подход с использованием GNN 33
2.1. Архитектура нейронной сети для решения задачи 33
2.2. Начальные состояния вершин 35
2.3. Вычисление состояний вершин 40
2.3.1 SAGE Convolution 40
2.3.2 Transformer Convolution 41
2.3.3 Учёт начального состояния вершины 41
2.4. Классификатор и функция потерь 42
3. Эксперименты и результаты 43
3.1. Первый эксперимент 43
3.2. Второй эксперимент 44
3.3. Третий эксперимент 46
3.4. Четвёртый эксперимент 46
4. Дальнейшее развитие 49
Заключение 51
Список литературы 52
Приложение 57

SMT-формулы (от англ. Satisfiability Modulo Theories) являются одним из наиболее важных объектов в области практических применений матема­тической логики. Они позволяют сначала формальным образом записать раз­нообразные утверждения из различных предметных областей, а затем с по­мощью специальных вычислительных методов проверить логическую выпол­нимость (состоятельность) этих утверждений.
SMT-формула является некоторым расширением SAT-формулы, кото­рое позволяет использовать не только логические переменные и связки с ни­ми, а ещё и выражения с участием объектов из некоторого домена (например: целые числа, вещественные числа, битовые векторы, массивы) и различны­ми операциями с ними (например: числовая арифметика, битовые операции, взятие элемента массива по индексу и т. д.).
Более формально, SMT-формула является формулой в логике первого порядка, где у каждой константы и у каждого символа переменной или функ­ции есть некоторый заранее определенный тип (домен), а в качестве функци­ональных символов используются функции и операторы из разных доменов (например, те же битовые операции или взятия элемента массива по индек­су). Задача проверки выполнимости1 такой формулы состоит в том, чтобы выяснить, можно ли для каждой свободной (не находящейся под квантором) переменной подобрать значение соответствующего ей типа так, чтобы при подстановке данных значений формула была истинна. Помимо этого, чаще всего, если формула выполнима, требуется также для каждой свободной пере­менной выдать значение, сопоставляемое ей. Это отображение из множества свободных переменных в множество их значений называют моделью.
Чтобы стало более понятно, покажу несколько примеров.
Пример формулы:
(x + y + z = 2) Л (x + 2y + 3z = 2) Л (x + 2y + 4z = 1), (1)
где х, у и z — целые числа. Эта формула является выполнимой, посколь­ку при подстановке значений х —- 1, у —- 2, z — 1 формула превращается
в истинное утверждение.
Ещё пример:
(х = 2у) Л (х = 2z + 1). (2)
Если потребовать, чтобы х, у и z в этой формуле были целыми числами, то формула, очевидно, не будет выполнимой (т. к. в этом случае написанное здесь обозначает высказывание х является чётным и х является нечёт­ным). Однако, если разрешить переменным быть вещественными (или хотя бы рациональными), формула станет выполнимой. Этот пример показывает, что свойство выполнимости зависит от типовых (доменных) ограничений, наложенных на переменные и функциональные символы.
Пример формулы с кванторами:
9 х,у^ : (п > 0) Л (х > 0) Л (у > 0) Л (z > 0) Л (хп + уп = zn), (3)
где все переменные являются целыми числами. В этой формуле присут­ствует только одна свободная переменная — п, поэтому искать подходящее значение нужно только для неё. Нетрудно заметить, что нам подходят значе­ния п = 1 и п = 2, поэтому формула является выполнимой (но если условие п > 0 заменить на п > 3, формула станет невыполнимой согласно Великой теореме Ферма).
Примером формулы с битовыми векторами является формула (4).
(х > #Ь01000000) Л (х + (х shl2 #Ь00000001) + #Ь11111111 < #Ь00100000), (4)
где переменная х является битовым вектором размера 8 (фактически, это беззнаковое числом размером 1 байт). Аналогично, все константы3 в формуле тоже являются битовыми векторами размера 8 и записываются в бинарном формате. Стоит также отметить, что каждый битовый вектор мож­но однозначно отождествить с числом через его запись в двоичной систе­ме счисления (например, таким образом происходит сравнение векторов на больше-меньше).
...

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В рамках данной работы была предпринята попытка создать нейронную сеть для предсказания выполнимости SMT-формулы: собрать подходящий да- тасет, реализовать архитектуру нейронной сети, провести ряд экспериментов с обучением и валидацией моделей и сделать выводы.
Я считаю, что сформулированная в работе задача выполнена — ос­новные шаги для решения поставленной поставленной задачи, описанные в соответствующем разделе, пройдены, и требуемое исследование проведено.
В процессе работы было выяснено, что для решения задачи в общем случае протестированных методов недостаточно, и нужно использовать более умные подходы к построению векторного представления формулы, о чём написано в главе 4.
Однако, в контексте практического применения (решения формул, воз­никающих в процессе символьного исполнения на движке USVM) данная задача может быть решена с относительно хорошими результатами при по­мощи более-менее базовых методов (таблицы 5, 6 и 7). Скорее всего, это происходит из-за того, что в практической задаче возникают очень специфи­ческие формулы, которые значительно отличаются от общего случая в лице SMT-COMP, и для которых гораздо проще предсказывать ответ из-за того, что модель привязывается на некоторые особенности возникающих формул. Я думаю, что перспектива практического использования полученных резуль­татов во многом может опираться на этот факт.
Также в процессе исследования было протестировано несколько воз­можных архитектур нейронной сети (разделы 2.3.1 и 2.3.2).
Сравнение полученного решения с аналогами не проводилось, посколь­ку таковых на данный момент не существует (я не считаю аналогом модель NeuroSAT, так как в той задаче существенно отличаются ограничения и ожидаемый результат).
Проведённое исследование можно существенно расширять и допол­нять. О методах и возможных путях развития написано в главе 4.


[1] SMT-LIB 2 Logics. URL: https://smt-lib.org/logics.shtml (дата обр. 13.05.2024).
[2] Leonardo de Moura and Nikolaj Bjprner. «Z3: an efficient SMT solver». In proceedings of Tools and Algorithms for the Construction and Analysis of Systems (TACAS ’2008), pp. 337-340. Springer, 2008.
[3] Haniel Barbosa, Clark W. Barrett, Martin Brain, Gereon Kremer, Hanna Lachnitt, Makai Mann, Abdalrhman Mohamed, Mudathir Mohamed, Aina Niemetz, Andres Notzli, Alex Ozdemir, Mathias Preiner, Andrew Reynolds, Ying Sheng, Cesare Tinelli and Yoni Zohar; Dana Fisman (ed.) and Grigore Rosu (ed.). «cvc5: A Versatile and Industrial-Strength SMT Solver». In proceedings of Tools and Algorithms for the Construction and Analysis of Systems (TACAS ’2022), part I, pp. 415-442. Springer, 2022.
[4] Bruno Dutertre; Armin Biere (ed.) and Roderick Bloem (ed.). «Yices 2.2». In proceedings of Computer-Aided Verification (CAV ’2014), pp. 737-744. Springer, 2014.
[5] Aina Niemetz and Mathias Preiner; Constantin Enea (ed.) and Akash Lal (ed.). «Bitwuzla». In proceedings of Computer-Aided Verification (CAV ’2023), part II, pp. 3-17. Springer, 2023.
[6] Clark Barrett, Leonardo de Moura and Aaron Stump. «SMT-COMP: Satisfiability modulo theories competition». In proceedings of Computer- Aided Verification (CAV ’2005), pp. 503-516. Springer, 2005.
[7] SMT-COMP. URL: https://smt-comp.github.io/ (дата обр. 15.05.2024).
[8] James C. King. «Symbolic execution and program testing». In Communications of the ACM, July 1976, volume 19, number 7, pp. 385-394. Association for Computing Machinery, 1976.
[9] KLEE Symbolic Execution Engine. URL: https://klee-se.org/ (дата обр. 15.05.2024).
[10] Cristian Cadar, Daniel Dunbar and Dawson Engler. «KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs». In proceedings of the 8th USENIX conference on Operating systems design and implementation (OSDI ’2008), pp. 209-224. USENIX Association, 2008.
[11] Поспелов Сергей Андреевич. «Проектирование и разработка универ­сальной символьной виртуальной машины». Бакалаврская выпускная квалификационная работа. URL: http://hdl.handle.net/11701/42155. СПбГУ, 2023.
[12] Franco Scarselli, Marco Gori, Ah Chung Tsoi, Markus Hagenbuchner and Gabriele Monfardini. «The Graph Neural Network Model». In IEEE Transactions on Neural Networks, vol. 20, no. 1, pp. 61-80, Jan. 2009. IEEE, 2009.
[13] Justin Gilmer, Samuel S. Schoenholz, Patrick F. Riley, Oriol Vinyals and George E. Dahl. «Neural Message Passing for Quantum Chemistry». ArXiv abs:1704.01212 (2017).
[14] Michael M. Bronstein, Joan Bruna, Taco Cohen and Petar Velickovic. «Geometric Deep Learning: Grids, Groups, Graphs, Geodesics, and Gauges». ArXiv abs:2104.13478 (2021).
[15] Yujia Li, Daniel Tarlow, Marc Brockschmidt and Richard Zemel. «Gated Graph Sequence Neural Networks». ArXiv abs:1511.05493 (2016).
... всего 49 источников


Работу высылаем на протяжении 30 минут после оплаты.



Подобные работы


©2025 Cервис помощи студентам в выполнении работ