Школа программирования СПбГУ

  • Главная
  • Область применения знаний, полученных в СПбГУ

Область применения знаний, полученных в СПбГУ

Дата публикации:
  • Задачи вычислительной геометрии (2d, 3d, n-мерная): поиск пересечений различных кривых (прямых, второго порядка и высших порядков), выпуклых оболочек и слоёв, триангуляций, триангуляция Делоне и диаграмма Вороного, метод движущейся прямой и др.
  • Оптимизационные задачи на строках: поиск образцов (в т. ч. множественный), суффиксные структуры данных (суфф. массив/суфф. дерево/суфф. автомат) и их применения, хеширование, дерево палиндромов, поиск ред. расстояния (в т.ч. с использованием SSE)
  • Задачи динамического программирования (в т.ч. на подмножествах, деревьях)
  • Жадные алгоритмы, матроиды
  • Задачи с использованием структур данных (дерево отрезков, в т.ч. с отложенными операциями, дерево Фенвика, сбалансированные деревья: декартовы, АВЛ, красно-чёрные, 2-3, splay и др.; B-деревья)
  • Задачи по теории чисел (в т. ч. криптографические)
  • Задачи по теории игр (игры для 2-х и n игроков, теория Гранди, теория Смита и их применения, равновесие Нэша)
  • Задачи линейной алгебры (решение СЛУ, нахождение собственных чисел и векторов и др.)
  • Задачи линейного программирования
  • Задачи выпуклого программирования
  • Нахождение корней уравнений (двоичный/троичный поиск, градиентный спуск, метод Штурма и др.)
  • Комбинаторные задачи
  • Оптимизационные задачи на графах (поиск кратчайших расстояний, паросочетаний, задача о назначениях, задачи о потоках в сетях и разрезах, в т. ч. минимальной стоимости, деревья Гомори-Ху, проверка планарности и нахождение укладки, поиск компонент связности, двусвязности и k-связности, эйлеров и гамильтонов путь, топологическая сортировка)
  • Задачи численного интегрирования, решение дифференциальных уравнений, в т. ч. в частных производных
  • Задачи вариационного исчисления
  • Методы оптимизации перебора (backtracking, метод ветвей и границ, iterative deepening)
  • Задачи теории вероятностей, производящие функции
  • Рандомизированные алгоритмы оптимизации
  • Методы решения неточных задач (метод отжига, генетические алгоритмы, метод муравьиных колоний и др.)
  • Нейронные сети (теоретические основы)
  • Методы оптимизации (использование кеша, особенностей процессора, инструкций SSE)
  • Методы автоматического тестирования
  • Список дополнительных умений:
  • Системное администрирование (windows/linux)
  • Построение больших компьютерных сетей (промышленного размера)
  • Список областей практического применения (неполный):
  • Обработка больших (гигантских) объёмов информации
  • Задачи логистики (в том числе, с учётом пробок в реальном времени) и составления расписаний
  • Задачи вычислительной биологии
  • Задачи распознавания изображений/видео и аудио
  • Контекстная реклама и рекомендации пользователю
  • Задачи борьбы со спамом и со взломом
  • Задачи математической статистики и аналитики
  • Финансовые задачи
  • Разработка криптографических систем передачи данных и систем надёжного хранения информации
  • Задачи упаковки объектов (раскроя)
  • Применение в медицинской среде (задачи моделирования распространения эпидемий, эффективности действия лекарств и т. д.)
  • Разработка эффективных протоколов передачи данных
  • Интернет вещей