Оптимизация. Создание программного продукта для решения задач оптимизации (проект) — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
м (Ориентировочное расписание занятий)
(Критерии оценки)
 
Строка 34: Строка 34:
 
=== Критерии оценки ===
 
=== Критерии оценки ===
 
Оценки выставляются согласно возможностям конечного продукта:
 
Оценки выставляются согласно возможностям конечного продукта:
* 4: имеется интерфейс для загрузки матрицы уже сформулированной задачи и выбора метода её решения,
+
* 4-6: имеется интерфейс для загрузки матрицы уже сформулированной задачи и выбора метода её решения,
* 5: добавлена возможность выбора наилучшего алгоритма для решения задачи,
+
* 7-8: добавлена возможность выбора наилучшего алгоритма для решения задачи, анализа найденного решения и изменения части параметров для задач заданного типа,
* 6-8: добавлена возможность анализа найденного решения и изменения части параметров для задач заданного типа,
+
 
* 9-10: добавлена возможность формирования новых задач в интерфейсе программы.
 
* 9-10: добавлена возможность формирования новых задач в интерфейсе программы.
  

Текущая версия на 12:09, 31 мая 2018

Ментор Гена Федин
Учебный семестр Осень 2017
Учебный курс 2-й курс
Максимальное количество студентов, выбравших проект: 4



Что это за проект?

Оптимизационная задача - это задача, которая состоит в нахождении оптимального значения целевой функции, причем значения переменных должны принадлежать некоторой области допустимых значений. Теорию и методы решения задачи оптимизации изучает математическое программирование. Сейчас разработаны библиотеки, позволяющие достаточно эффективно решать задачи оптимизации (линейного программирования, смешанного программирования, квадратичного программирования), однако все они требуют значительной подготовки и изучения для использования. Цель проекта заключается в получении программного продукта с GUI упрощающего: а) формализацию задачи оптимизации, б) решение задачи при помощи одной из выбранных библиотек, в) анализ и визуализацию решения задачи.

Чему вы научитесь?

Вы научитесь формулировать задачи оптимизации и использовать различные библиотеки для их решения. Улучшите свои навыки программирования и получите опыт разработки программного продукта, использующего оптимизационные библиотеки.

Какие начальные требования?

Базовые знание Python, C++ и желание учиться.

Какие будут использоваться технологии?

Google Optimization Tools, CBC, CLP, GLOP, GLPK, Gurobi, CPLEX и SCIP. Для визуализации на выбор: wxPython, Python GTK или Qt (Python или C++).

Темы вводных занятий

Задачи оптимизации, двойственные задачи, задачи целочисленного программирования, задачи минимаксной робастной оптимизации.

Направления развития

В случае успешной реализации проекта, возможна публикация совместной научной работы, описывающей использование разработанного продукта при решении реальных задач. Кроме того, данный проект может развиться в курсовые и дипломные работы, связанные с математическим моделированием и анализом различных проблем, например, оптимизации логистики, размещение зарядных станций для электротранспорта, экономического планирования, формирования инвестиционного портфеля. Опыт, полученный в этом проекте, поможет грамотно сформулировать оптимизационную задачу для рассматриваемой проблемы и решить её при помощи разработанного программного продукта.

Критерии оценки

Оценки выставляются согласно возможностям конечного продукта:

  • 4-6: имеется интерфейс для загрузки матрицы уже сформулированной задачи и выбора метода её решения,
  • 7-8: добавлена возможность выбора наилучшего алгоритма для решения задачи, анализа найденного решения и изменения части параметров для задач заданного типа,
  • 9-10: добавлена возможность формирования новых задач в интерфейсе программы.

Ориентировочное расписание занятий

По договоренности.

ggfedin@yandex.ru

+7(965)381-6006