- •6.030509, 6.030504, 6.030601Дневной и заочной форм обучения
- •1.Решение систем линейных уравнений методом гаусса – жордана
- •1.1. Основные понятия
- •1.2. Приведение системы линейных уравнений к жордановой форме
- •1.3. Понятие общего, частного и базисного решений.
- •2. Общие свойства задачи линейного программирования
- •2.І. Пример задачи линейного программирования - задача об использовании оборудования.
- •2.2. Задача об использовании сырья.
- •2.3. Задача составления рациона (задача о диете).
- •2.4. Общая постановка задачи линейного программирования
- •2.5. Геометрический метод решения злп.
- •Пример 1
- •2.6. Канонический вид злп.
- •2.7. Понятие опорного плана злп.
- •3. Симплексный метод решения злп
- •3.1. Общая характеристика и основные этапы симплекс – метода
- •3.2. Табличный вид злп. Симплекс - таблицы.
- •3.3. Условие оптимальности опорного плана.
- •3.4. Условие неразрешимости злп из-за неограниченности снизу на одр целевой функции.
- •3.5. Переход к новому опорному плану.
- •3.6. Табличный симплекс-алгоритм.
- •После выбора генерального элемента переходим к таблице 3.11
- •Снова выбираем генеральный элемент и переходим к таблице 3.14
- •3.7. Отыскание исходного опорного плана злп методом искусственного базиса
- •3.8. Вырожденность опорного плана. Зацикливание.
- •Двойственность в линейном программировании
- •Экономическая интерпретация двойственных задач
- •Понятие двойственной задачи
- •Теоремы двойственности
- •Транспортная задача.
- •Задача о перевозках.
- •Общая постановка транспортной задачи.
- •Отыскание исходного опорного плана перевозок.
- •5.4. Циклы пересчета
- •5.4.1. Понятие цикла пересчета
- •5.4.2. Максимально допустимый сдвиг по циклу пересчета.
- •5.4.3. Цена цикла пересчета
- •5.5. Потенциалы.
- •5.6. Алгоритм решения транспортной задачи методом потенциалов.
- •5.7. Открытые транспортные задачи.
- •6. Целочисленное линейное программирование
- •6.1. Общая постановка задачи целочисленного линейного программирования (зцлп).
- •6.2. Целочисленная задача об использовании сырья.
- •6.3. Задача о рюкзаке.
- •6.4. Решение зцлп методом округления.
- •6.5. Метод ветвей и границ.
- •Оптимальный план оптимальный план
- •7. Общая постановка и разновидности задач математического программирования
- •Литература
- •Содержание
6. Целочисленное линейное программирование
Целочисленное программирование – раздел математического программирования, рассматривающий оптимизационные задачи, в которых все или некоторые переменные могут принимать только целые значения. Как правило, требование целочисленности переменных значительно усложняет задачу. Целочисленное программирование систематически изучается с 1956 года, но и сейчас этот раздел находится в стадии развития.
6.1. Общая постановка задачи целочисленного линейного программирования (зцлп).
Мы будем рассматривать только полностью целочисленные задачи, в которых требование целочисленности наложено на все переменные. Общий вид такой ЗЦЛП отличается от ЗЛП только тем, что ко всем переменным предъявляется требование целочисленности. В частности, в каноническом виде ЗЦЛП ставится так:
(6.1)
Для ЗЦЛП используется та же терминология, что и для ЗЛП: целевая функция, допустимое решение, оптимальное решение и т.д. Если в ЗЦЛП отбросить требование целочисленности, то получится так называемая ослабленная задача. Ослабленная задача является ЗЛП, в то время как ЗЦЛП таковой не является. Дело в том, что требование целочисленности переменных нельзя записать в виде линейного ограничения. Аналитически его записать можно. Действительно, обозначим через [a] целую часть числа а, т.е. наибольшее целое, которое не больше а. Например, [3.4] =3; [-7.2]= -8. Требование целочисленности переменной xj можно записать так: xj -[xj ] =0. Однако это соотношение не является линейным. Таким образом, нельзя сказать, что ЗЦЛП – частный случай ЗЛП – она вообще не является ЗЛП.
Для ЗЦЛП не существует такого универсального эффективного метода решения, каким является симплекс-метод для ЗЛП. Из точных методов решения отметим метод отсечения Гомори и комбинированный метод ветвей и границ. Суть этого комбинированного метода мы изложим.
На практике большинство ЗЦЛП решается приближенно. При этом часто приходится разрабатывать приближенный метод, учитывающий специфические особенности задачи.
Приведем примеры ЗЦЛП.
6.2. Целочисленная задача об использовании сырья.
Предприятие выпускает n видов штучной продукции стоимостью за штуку. Для изготовления продукции используетсяm видов сырья, запасы которого на предприятии равны соответственно. Известна (m X n) – матрица (aij), в которой - расходi – го сырья на производство единицы продукции j –го вида. Требуется составить такой план производства, при котором выручка от реализации продукции была бы наибольшей.
Математическая модель задачи имеет вид:
f =→ max
при ограничениях:
Здесь - количество продукцииj –го вида.
Это задача целочисленного линейного программирования.
Целочисленность переменных существенна в тех случаях, когда речь идет о производстве дорогостоящей продукции.
6.3. Задача о рюкзаке.
Целочисленная задача об использовании сырья не является ярко выраженной ЗЦЛП. К типичным ЗЦЛП относятся т.н. комбинаторные оптимизационные задачи. В комбинаторных задачах имеется конечное множество вариантов, из которых нужно выбрать оптимальный. Примером такой задачи является задача о рюкзаке.
Имеется рюкзак вместимостью V и n предметов объемами v1, v2 , ...,vn и стоимостями с1, c2 ,..., c n . Требуется упаковать рюкзак так, чтобы стоимость упакованных предметов была максимальной.
Составим математическую модель этой задачи.
Пусть xj – переменная, принимающая только два значения: 0 или 1, причем xj =0, если j-й предмет не упаковывается в рюкзак; xj = 1, если j-й предмет упаковывается в рюкзак. Тогда задача записывается так:
при ограничениях
Это ЗЦЛП, называемая задачей булева программирования. Ограничения задачи можно записать иначе: