Чек-лист самопроверки
Чек-лист самопроверки
- Могу ли я объяснить, чем математическое программирование отличается от написания программ на языке Python?
- Знаю ли я три компонента задачи оптимизации (переменные, цель, ограничения)?
- Умею ли я записать задачу в стандартной форме
max cᵀxприAx ≤ b,x ≥ 0? - Могу ли я ввести slack-переменную для ограничения
≤? - Понимаю ли я, что такое выпуклое множество и почему пересечение выпуклых выпукло?
- Могу ли я объяснить, почему оптимум ЗЛП (если существует) достигается в вершине?
- Умею ли я построить допустимую область и найти оптимум графически для двух переменных?
- Распознаю ли я на графике несовместность и неограниченность цели?
- Чем метод Жордана–Гаусса отличается от «треугольного» хода Гаусса?
- Могу ли я привести систему к виду с единичным базисом в выбранных столбцах?
- Знаю ли я общую схему симплекс-метода (входящий / выходящий столбец, θ)?
- Умею ли я заполнить симплекс-таблицу и выполнить одну итерацию без ошибки в базисе?
- Знаю ли я, как проверить оптимальность по строке Z?
- Понимаю ли я, зачем нужны искусственные переменные?
- Могу ли я описать разницу между двухфазным методом и M-методом?
- Умею ли я выписать двойственную задачу к простой прямой ЗЛП?
- Знаю ли я формулировку сильной двойственности?
- Могу ли я объяснить экономический смысл двойственных переменных (тени цен)?
- Знаю ли я условие баланса в транспортной задаче?
- Умею ли я построить начальный опорный план методом северо-западного угла?
- Понимаю ли я, почему в невырожденном плане занято
m+n−1клеток? - Могу ли я вычислить потенциалы
uᵢ,vⱼи оценки Δ для пустых клеток? - Знаю ли я, что делать при вырождении (ε, блокирование)?
- Могу ли я записать уравнение Беллмана для задачи с этапами?
- Чем ДП Беллмана отличается от динамического программирования в алгоритмах (рюкзак)?
- Умею ли я перевести задачу
maxв формуminдляscipy.optimize.linprog? - Проверяю ли я решение солвера подстановкой в исходные ограничения?
- Понимаю ли я, когда ЗЛП недостаточно (целые переменные, нелинейность)?
- Могу ли я связать задачу планирования в IT с постановкой ЗЛП?
- Прошёл ли я полный учебный пример от постановки до ответа двумя способами (графика + симплекс или код)?
См. также
Другие статьи этого же раздела в боковом меню (как на странице «О разделе»). Что такое математическое программирование, линейное программирование, стандартные формы записи, примеры из планирования и IT. Теоретические основы линейного программирования, выпуклость, геометрия допустимой области и пошаговый графический метод на примере. Приведение систем линейных уравнений к ступенчатому и приведённому виду, slack-переменные и связь с симплекс-таблицей. Общая схема симплекс-метода, построение и заполнение таблицы, сокращённая форма, контроль ошибок, разбор числового примера. Двухфазный симплекс-метод, метод большого штрафа M, искусственные переменные и вывод из оптимальной таблицы. Постановка двойственной задачи, принцип двойственности, экономический смысл и связь с симплекс-таблицей. Опорный план, метод северо-западного угла, распределительный метод, потенциалы, блокирование клеток, проверка оптимальности. Общая схема ДП в исследовании операций, этапы, уравнение Беллмана, примеры и отличие от алгоритмического DP. scipy.optimize.linprog, постановка ЗЛП в Python, OR-Tools и когда доверять солверу вместо ручного симплекса. Краткие итоги раздела «Математическое программирование» — ЗЛП, симплекс, транспортная задача, двойственность, ДП Беллмана.Введение и постановка
Теория и графический метод
Метод Жордана–Гаусса
Симплекс-метод
M-метод и искусственный базис
Теория двойственности
Транспортная задача
Динамическое программирование
Решатели в коде
Итоги