Диплом математика vs диплом программиста
Рассмотрим выпускные работы бакалавров МКН СПбГУ в 2024 году
Математика
На старших курсах М студенты, как правило, начинают специализироваться в любимой области из фундаментальной или прикладной математики: выбирать соответствующие курсы, посещать семинары, работать с научным руководителем. В течение третьего курса студенты пишут курсовую, а в течение четвертого — квалификационную работу, и это всегда исследовательская работа над открытыми задачами выбранной области.
Примеры работ выпускников ОП «Математика» МКН СПбГУ 2024:
- Когерентные пучки на особых кривых — Алексей Львов
“В своей дипломной работе я исследовал особенности алгебраических кривых, изучая гомологические свойства категорий когерентых пучков на них. Особой, например, является полукубическая кривая y^2 = x^3. Эту кривую можно параметризовать: (x, y) = (t^2, t^3), поэтому она является особой моделью аффинной прямой. Я рассматривал совокупность всех особых моделей данной кривой X и, в некотором смысле, переходил к пределу, получая «максимально особую кривую». Мне удалось доказать, что предельная «максимально особая кривая» является гладкой (в определённом гомологическом смысле), что довольно неожиданно и контринтуитивно.”
- О q-рядах, комбинаторных характеристиках разбиений и некоторых вариантах модулярности — Николай Борозенец
“Вошедшие в диплом проекты посвящены «mock» модулярности (1, 2). Это понятие возникло при изучении знаменитых 17 гипергеометрических q-рядов Рамануджана из его последнего письма к Харди, и только недавно была выведена теория, объясняющая модулярное поведение данных загадочных функций. Часто функции, происходящие из комбинаторики, теории узлов, математической физики записываются в виде сумм типа Гекке, и интересно изучить их модулярные свойства. Вопрос о модулярных свойствах двойных сумм типа Гекке был полностью изучен моим научным руководителем профессором Э. Мортенсоном и соавторами. В моей дипломной работе были рассмотрены тройные суммы типа Гекке—Аппелля, возникающие в контексте дуальности квантовых модулярных форм и «mock» модулярных форм.”
“Гауссовские процессы интересны как с точки зрения чистой математики, так и с точки зрения приложений. В классической ситуации они определяются на евклидовом пространстве (R^n), но в рамках ВКР удалось придумать, как обобщить один класс гауссовских процессов на пространство филогенетических деревьев. На мой взгляд, правильное обобщение классических понятий на более общие ситуации — это одна из самых интересных задач в математике. Я рад, что удалось объединить такую красивую математику с потенциальными прикладными применениями.”
“Можно рассматривать непрерывные отображения из пространства X в пространство Y с точностью до гомотопий — непрерывных изменений. Топологи часто пытаются это сделать, отправляя классы отображений в абелевы группы с помощью разных функций f: [X,Y] -> A. Эти функции называются инвариантами гомотопических классов. Есть понятие порядка инварианта — число, оценивающее его сложность. Я доказал двойное неравенство, оценивающее порядок инварианта, когда Y — это пространство Эйленберга — Маклейна. Для таких пространств у множества [X,Y] ясная структура, что мотивировало рассмотреть такой случай. Любопытно, что порядки некоторых инвариантов «меньше, чем они должны быть», когда они отражают нетривиальную структуру пространства X: когомологическое умножение, или высшие когомологические операции. ”
- Энтропийный анализ негауссовских мер — Виктор Хамзин
“Тему моей работы можно раскрыть с помощью наглядного примера: допустим, что на улице идет дождь, и так случилось, что мы точно знаем куда упадет какое количество воды. Задача состоит в том, чтобы понять, какое число ведер одинакового радиуса достаточно расположить на улице, чтобы собрать определенный объем воды. Если выражаться чуть более строгим математическим языком, то на пространстве с расстоянием и вероятностной мерой нас интересует, какое число шаров одинакового радиуса нужно, чтобы покрыть множество достаточно большой меры.
В данной работе сочетаются идеи как из теории вероятностей, так и из других областей: математического анализа, геометрии, что позволяет думать о задаче сразу со многих сторон. Также нам удалось пролить чуть больше света на новую, совсем не изученную тему mm-энтропии, на которую впервые обратили внимание А.М. Вершик и М.А. Лифшиц в совместной работе 2023 года. Данный факт не может не интриговать, поскольку перед нами имеется невероятно большое поле для изучения, которое открывает перспективы получения красивых результатов.”
- Модели формирования многомерных мнений с ограниченным доверием — Ирина Забарянская
“Область «Opinion dynamics» изучает математические модели, которые отражают те или иные аспекты динамики формирования мнений социальных агентов – то есть то, как люди меняют мнения. В своей работе я исследовала модель динамики многомерных мнений с ограниченным доверием. Многомерное мнение можно понимать как позицию индивидуума по нескольким темам, а свойство ограниченного доверия отражает склонность индивидуума доверять только мнениям, которые «близки» к его собственному. Получается динамическая система с разрывной правой частью, которая порождает разнообразное поведение мнений и невероятно сложна в изучении.
Оказывается, при произвольном определении «близости» двух мнений или возникновении нескольких упрямых агентов – кто никогда не меняет своего мнения – мнения в системе могут образовывать периодические траектории. Но при дополнительных предположениях я доказала, что мнения будут сходиться к равновесной точке. Примечательно, что если возникает взаимодействие агента с группой в целом (влияние общественной позиции), то мнения сойдутся к консенсусу.”
Современное программирование
Начиная с третьего курса студенты каждый семестр проходят практику в виде проектов, чаще всего это реальная индустриальная задача во внешней компании: очень похоже на стажировку, но требует меньше часов в неделю. Иногда после практики студенты остаются работать в той же команде. Такие проекты и вырастают в диплом: над выпускным проектом ребята трудятся весь учебный год. Иногда в качестве проекта студенты СП берут исследовательскую задачу из Computer Science под руководством преподавателей МКН.
Примеры работ выпускников ОП «Современное программирование» МКН СПбГУ 2024:
- Эффективные алгоритмы поиска ориентированных ациклических подграфов больше гарантированных размеров — Сергей Харгелия
“Мой диплом про теорию графов. Если коротко, то есть известная задача о поиске максимального ациклического подграфа в ориентированном графе — про неё известно, что она является NP-трудной. Я работал над тем, чтобы научиться эффективно проверять, существует ли у графа G ациклический подграф размера l(G) + k, где l — это некоторая нижняя оценка. Я значительно улучшил время работы для некоторых рассмотренных ранее оценок и получил эффективные алгоритмы для некоторых новых оценок.”
- Применение пространственно-временной диаграммы Вороного для решения задач маршрутизации транспортных средств — Алёна Черепанова
“В работе мы рассматриваем достаточно известные задачи VRP с временными окнами: расстановка заказов с окнами обслуживания по маршрутам. Интересна 'близость' соседних заказов в маршрутах. Эту 'близость' в пространстве и во времени мы описываем с помощью трёхмерной диаграммы Вороного. И далее по построенной диаграмме можно быстрее находить следующий заказ в маршрут.”
- Исследование и реализация методов верификации и тестирования конкурентных алгоритмов на C++ — Альберт Скальт
“Мой диплом про то, чтобы получить какие-то гарантии от реализации многопоточной структуры данных. Разработка многопоточных программ - дело сложное: надо учитывать все исполнения, а хочется иметь не только тестовое покрытие, а еще какую-то формальную гарантию того, что все работает правильно во всех возможных ситуациях. Инструмент, который я разрабатывал, позволяет непосредственно взять какой-нибудь многопоточный код на C++, описать спецификацию и проверить, что код ведет себя согласно спецификации.”
“В нашей работе мы с командой исследовали возможности LLM (таких как, например, ChatGPT) в задаче генерации документации к коду. В итоге мы придумали, как можно при генерации учитывать контекст проекта, в котором написан код, и с помощью этого обучили LLM генерировать более хорошую документацию.”
- Вывод инвариантов циклов на базе абстрактных реляционных доменов в задачах статического анализа программ на языке JavaScript — Иван Волков
“Работал над улучшением движка по поиску уязвимостей JavaScript-кода. Разрабатывал и переводил в код алгебраические структуры, повышающие точность анализа числовых переменных и массивов.”
“В задаче 3-SUM дан массив размера n и необходимо найти три элемента в нем, которые суммируются в ноль. 3-SUM решается за время O(n^2) довольно простым алгоритмом, но вот уже несколько десятилетий не удается как уменьшить этот полином на сколь угодно малый eps (n^(2 - eps)), так и доказать, что уменьшить его нельзя. Не так давно возникла мысль доказывать условные нижние оценки: возьмем некоторую гипотезу о том, что задача не решается быстрее некоторого времени и сведем эту задачу к 3-SUM. Самая популярная гипотеза, SETH, гласит, что задача выполнимости булевых формул SAT не решается быстрее полного перебора (то есть 2^n). В своей работе я показываю, что в предположении данной гипотезы вряд ли получится доказать суперлинейные нижние оценки для 3-SUM. А именно, если получится это сделать, то будут справедливы сильные нижние оценки на размер булевых или арифметических схем. Данный результат включен в статью, которая была опубликована на конференции SODA 2024.”
- Проверка выполнимости SMT-формул с помощью нейронных сетей — Степан Остапенко
“С помощью SMT-формул можно формально записывать логические выражения, а затем проверять их истинность. В рамках ВКР я разрабатывал нейросеть, которая могла бы оценивать вероятность того, что формула является истинной, — такая прикладная мат.логика. При обучении нейросети на произвольных формулах полученное качество оценок оставляло желать лучшего. Тогда я придумал брать данные только из какого-то специального распределения, например, только формулы, сгенерированные движком для символьного исполнения, — и качество выросло в разы и стало приемлемым для использования сети на практике. Видимо, при переходе к более узкому распределению в структуре формул появляются более простые закономерности, которым нейронная сеть легче обучается. Таким образом, анализировать с помощью методов машинного обучения можно не только картинки и тексты, но и более экзотические данные, приходящие из самых разных задач — не ChatGPT единым жив человек!”
Науки о данных
Студенты НОД за время учёбы выбирают, где они хотят специализироваться: в прикладных индустриальных задачах или в теоретических исследованиях по анализу данных и машинному обучению. Соответственно своим предпочтениям они выбирают проходить семестровую практику в проектах компаний, как студенты СП, или писать курсовую работу с научным руководителем, как студенты М. Можно попробовать и так и так, и к четвёртому курсу уже определиться с тематикой диплома.
Примеры работ выпускников ОП «Науки о данных» МКН СПбГУ 2024:
- Двухсторонние перестановочные автоматы: преобразование к односторонним и задача о непустоте — Мария Радионова
“В моей дипломной работе по теоретической информатике я изучала конечные автоматы, а именно их обратимые разновидности. Среди основных результатов — введение новой модели двусторонних перестановочных автоматов и исследование ее свойств, а также изучение задач распознавания свойств для обратимых автоматов. Меня вдохновляло то, что с помощью изучения обратимых вычислений можно приблизиться к созданию компьютеров будущего, не выделяющих тепло при работе. В научной работе всегда найдутся актуальные задачи, ожидающие исследования — это очень интересно!”
- Эффективное по параметрам дообучение моделей синтеза речи — Александр Комнацкий
“Обычно для синтеза конкретного голоса модель должна быть обучена на большом объеме аудиозаписей. Мы же в данной работе делаем так, чтобы можно было получать хорошее качество голоса на маленьком объеме обучающих данных. Делаем это с помощью добавок к модели (PEFT методы), которые зарекомендовали себя в больших языковых моделях вроде ChatGPT, — переносим схожие идеи из одной области машинного обучение в другую.
Написание диплома не похоже на взаимодействие с преподавателями во время лекций и семинаров: научный руководитель не только передает знания, но и делится своим опытом работы, очень индивидуально подходит к твоей задаче — обсуждает идеи и даёт обратную связь по проделанной работе.”
- Инфраструктура для публикации шрифтов и улучшение рендеринга sdf шрифтов на мобильных устройствах — Софья Копейкина
“Работа заключалась в том, чтобы улучшить подписи в Яндекс.Картах за счет улучшения процесса создания данных для рендеринга, и следовательно, самого рендеринга. Для этого требовалось создать специализированный инструмент для отладки данных. Мне нравится, что моя работа очень наглядная, хотя для решения проблемы нужно было провести глубокий анализ процесса создания данных для рендеринга. В итоге удалось значительно улучшить качество, практически не изменив размер данных.”
- Динамическое символьное исполнение для языка Python — Екатерина Точилина
“Символьное исполнение — это известная техника анализа кода, которая позволяет автоматически генерировать тесты и находить ошибки в коде. В случае языка Python из-за разных его особенностей таких анализаторов очень мало. В частности, анализ усложняется из-за динамической типизации. В моей работе предлагается подход, как с этим можно бороться. И хоть полученная символьная машина еще далека от идеала, но эксперименты показали, что она уже довольно сильно обгоняет по покрытию существующие аналоги.”
- Методы извлечения информации о продукте из пользовательских объявлений в социальных сетях — Леонид Петров
“Суть моего проекта заключается в обучении модели, которая могла бы извлекать из пользовательских объявлений в группах-барахолках в соцсетях стандартную информацию о товаре: наименование, количество, валюту и цену. Для этой задачи нет открытых датасетов, поэтому в процессе работы пришлось собирать свой. В работе мне больше всего нравится часть с экспериментами: я пробовал по-разному обрабатывать данные перед обучением, использовал модели различных размеров. В результате получилось провести пилотное исследование, которое показало перспективность подхода.”
“Многие алгоритмы в задаче планирования траектории роботов не учитывают, что роботы не умеют поворачивать мгновенно и им приходится тратить на это энергию и время. Также, классические функции эвристического приближения теряют в эффективности, поскольку не учитывают особенности конкретных карт, на которых ведется поиск. В моем проекте решаются обе эти проблемы с использованием современных методов машинного обучения, таких как сверточные остаточные слои и архитектура трансформера. Было интересно самостоятельно создавать большой датасет для обучения и приятно наглядно убедиться, насколько методы машинного обучения помогли ускорить и улучшить поиск. ”
Встретились любопытные темы? Посмотрите презентации по ссылкам и примерьте на себя проделанную работу. Интересно? Поступайте на МКН!
