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