Отзыв научного руководителя на выпускную квалификационную работу Ангени Георгия Эдуардовича на тему: «Поиск эвристических правил для решения задачи булевой выполнимости методами машинного обучения» Уровень образования: бакалавриат Направление: 02.03.01 «Математика и компьютерные науки» Основная образовательная программа: СВ.5152.2019 «Математика, алгоритмы и анализ данных» Задача о булевой выполнимости — одна из ключевых и самых известных в области теории сложности, и несомненно имеет большую важность как с теоретической, так и с прикладной точек зрения. Несмотря на её очевидную трудность, эвристические алгоритмы (SAT-солверы) её решения, например, для формул, полученных для решения прикладных задач, зачастую справляются с ними за считанные секунды. Современные подходы подчас явно или неявно используют структуру формулы в КНФ, и в последние годы продолжаются исследования по возможной настройке упомянутых эвристик автоматически — методами машинного обучения; достигнутые результаты последних лет убедительно демонстрируют уменьшение числа шагов перебора. Однако сопутствующие вычислительные “накладные расходы”, требующиеся для применения, к примеру, графовых нейронных сетей (graph neural networks), весьма велики; как следствие, теоретический выигрыш в числе шагов обычно превращается в практический проигрыш во времени работы. Изменение такого положения дел является непростой и актуальной задачей, требующей как навыков в современной программной инженерии, так и понимания устройства современных SAT-солверов, нейросетевых пакетов программ (фреймворков), знания передовых методов глубокого обучения в целом и — всё чаще — обучения с подкреплением. В работе Георгия Эдуардовича Ангени представлен способ ускорения работы метода на нейросетевых эвристиках и оценивается быстродействие предложенного варианта (“Graph-Q-SAT++”) в терминах wall-clock time, то есть производятся замеры не только числа шагов перебора, но и общего реального времени работы. За основу взят один из наиболее известных из таких подходов, Graph-Q-SAT, в котором в рамках подхода обучения с подкреплением (reinforcement learning) настраивается принимающий решение о выборе переменной “оракул” (графовая нейросетевая модель, структура которой задана графом “переменные-клозы”). Базовый солвер (для объективного сравнения был использован тот же MiniSat 2.2) обращается к оракулу при каждой необходимости т. н. “расщепления” по очередной переменной. На первом этапе Георгий Эдуардович проанализировал программный код авторов исходного метода и затем существенно переписал его таким образом, чтобы сократить расходы на ввод-вывод при обращениях к “оракулу”. Для этого было предложено встроить обученную модель в солвер с привлечением PyTorch C++ API, и при этом, как следствие, удалось сохранить возможность запускать вычисления, связанные с графовой нейронной сетью, как на GPU, так и на центральном процессоре. Затем был проведён численный анализ того, сколько первых шагов солвер должен выполнять с помощью “оракула”, а в какой момент эффективнее будет переключиться на работу с помощью стандартных эвристик, реализованных в MiniSat. В тексте ВКР: ● даны необходимые введение и обзор, включая достаточно подробное описание базовой эвристики Graph-Q-SAT, ● мотивация и цель изложены ясно, ● дано описание технических вызовов, на которые соискателю пришлось потратить значительную часть времени работы над задачей, а также итоговая схема работы подхода, ● приведены результаты воспроизведения экспериментов из статьи Graph-Q-SAT, ● численно продемонстрировано превосходство предложенного Георгием Эдуардовичем Graph-Q-SAT++ над Graph-Q-SAT+MiniSat, чистым MiniSat 2.2, а также более современным и также известным солвером kissat (в его базовой модификации), в частности, к примеру, на усложненном относительно использованных в исходной статье наборе данных с выполнимыми формулами Random-3-SAT достигнуто ускорение относительно MiniSat более, чем в два раза, а относительно kissat — более, чем на 50%, ● на основании экспериментов с разным числом запросов к “оракулу” даны рекомендации по выбору этого числа, ● повествование выстроено логично, описательный материал стилистически выдержан и изложен на хорошем английском языке. Соискатель изучил современные методы машинного обучения, применяемые в задаче булевой выполнимости, на материале большого числа релевантных статей и подробно в тексте квалификационной работы описал в том числе ключевой из используемых, Graph-Q-SAT. Воспроизведение результатов и описание Graph-Q-SAT по рекомендации научного руководителя было включено в первую главу, что и объясняет её сравнительно большой размер. Несмотря на то, что проект был изначально вдохновлён проектом по тематически связанному гранту от коммерческой компании, подразумевающим командную работу, научный руководитель свидетельствует, что исследования соискателя велись исключительно автономно и полностью самостоятельно. В тексте заимствований из посторонних работ нет. Отдельно отмечу, что Георгий Эдуардович проявил неуместную скромность и не упомянул в тексте, что в ходе проекта приходилось взаимодействовать, например, с сообществом пользователей TorchScript и не только получать ответы, но и помогать другим. В современном прикладном анализе данных прямая коммуникация с разработчиками проектов с открытым исходным кодом является необходимым навыком. На основании изложенного, на взгляд научного руководителя, работа демонстрирует, что Георгий Эдуардович Ангени — готовый самостоятельный специалист, и достойна оценки “отлично”, а автор заслуживает присвоения степени бакалавра. Результаты рекомендуется дополнить экспериментами с данными, к примеру использованными на недавних соревнованиях по решению SAT, и подготовить к публикации в научном издании или представлению на релевантной конференции. Кандидат физико-математических наук Доцент факультета математики и компьютерных наук СПбГУ Авдюшенко Александр Юрьевич 6 июня 2023 года