Сургутский профессиональный колледж ХМАО-Югра. Курсовая работа по
Сургутский профессиональный колледж ХМАО-Югра. Курсовая работа по теме: «Метод Гомори решения бинарной задачи» Выполнил работу: Студент 816 группы Кравчук Евгений Проверила работу: Вакуленко Е. Ю.
Содержание: 1. Введение 2. Метод Гомори 3. Пример решения задач методом Гомори
ВВЕДЕНИЕ Существует ряд задач оптимального планирования, в которых переменные могут принимать лишь целочисленные значения. Такие задачи связаны с определением количества единиц неделимой продукции, числа станков при загрузке оборудования, численности работников в структурных подразделениях предприятия и т. д. Достаточно часто возникают задачи с так называемыми булевыми переменными, решениями которых являются суждения типа “да-нет”. Если функция и ограничения в таких задачах линейны, то мы говорим о задаче линейного целочисленного программирования.
Задача линейного целочисленного программирования формулируется следующим образом: найти такое решение (план) X = (X 1, X 2, . . . , Xn), при котором линейная функция принимает максимальное или минимальное значение при ограничениях
МЕТОД ГОМОРИ Для построения ограничения выбираем компоненту оптимального плана с наибольшей целой частью дробного члена и по соответствующей этой компоненте k-й строке симплексной таблицы записываем ограничение Гомори.
Составленное ограничение добавляем к имеющимся в симплексной таблице, тем самым получаем расширенную задачу. Чтобы получить опорный план этой задачи, необходимо ввести в базис тот вектор, для которого величина минимальна. И если для этого вектора величина получается по дополнительной строке, то в следующей симплексной таблице будет получен опорный план. Если же величина не соответствует дополнительной строке, то необходимо переходить к М-задаче (вводить искусственную переменную в ограничение Гомори).
ПРИМЕР РЕШЕНИЯ ЗАДАЧ МЕТОДОМ ГОМОРИ Задача: Найти оптимальное решение задачи целочисленного линейного программирования Целевая функция: S min = 6*x 1+1*x 2 Система ограничений: 3*x 1 -1*x 2>=9 2*x 1+3*x 2<=50 -1*x 1+4*x 2>=18 x 1, x 2 >=0; - условие не отрицательности переменных.
Целевая функция: S min = 6*x 1+1*x 2+0*x 3+0*x 4+0*x 5 Система ограничений: -3*x 1+x 2+x 3=-9 2*x 1+3*x 2+x 4=50 x 1 -4*x 2+x 5=-18 Вектора: Р 0 P 1(x 1) P 2(x 2) P 3(x 3) P 4(x 4) P 5(x 5) -9 -3 1 1 0 0 50 2 3 0 1 0 -18 1 -4 0 0 1
БП P 0 P 1 P 2 P 3 P 4 P 5 P 3 -9 -3 1 1 0 0 P 4 50 2 3 0 1 0 P 5 -18 1 -4 0 0 1 Smin= 0 -6 -1 0 0 0 Замещаемый базисный вектор: P 3 (1 -я строка) Новый базисный вектор: P 1 (1 -й столбец) Заменяем базисный вектор P 3 на P 1.
БП P 0 P 1 P 2 P 3 P 4 P 5 P 1 3 1 -0, 3333 0 0 P 4 44 0 3, 6667 0, 6667 1 0 P 5 -21 0 -3, 6667 0, 3333 0 1 Smin= 18 0 -3 -2 0 0 Замещаемый базисный вектор: P 5 (3 -я строка) Новый базисный вектор: P 2 (2 -й столбец) Заменяем базисный вектор P 5 на P 2.
БП P 0 P 1 P 2 P 3 P 4 P 5 P 1 4, 9091 1 0 -0, 3636 0 -0, 0909 P 4 23 0 0 1 1 1 P 2 5, 7273 0 1 -0, 0909 0 -0, 2727 Smin= 35, 1818 0 0 -2, 2727 0 -0, 8182 Решение не целочисленное. Применим метод Гомори: выберем в таблице строку, в которой целая часть дробного свободного члена (P 0) принимает наибольшее значение. Макс. целая часть дробного свободного члена при базисном векторе P 2 (3 -я строка). Добавляем базисный вектор: P 6 (6 -й столбец)
1) [5, 7273] – 5, 7273 = ([-0, 0909] – (-0, 0909))P 3 + ([-0, 2727] – (-0, 2727)) P 5 2) 5 – 5, 7273 = (-1 + 0, 0909) P 3 + (-1 + 0, 2727) P 5 3) -0, 7273 = -0, 9091 P 3 - 0, 7273 P 5
БП P 0 P 1 P 2 P 3 P 4 P 5 P 6 P 1 4, 9091 1 0 -0, 3636 0 -0, 0909 0 P 4 23 0 0 1 1 1 0 P 2 5, 7273 0 1 -0, 0909 0 -0, 2727 0 P 6 -0, 7273 0 0 -0, 9091 0 -0, 7273 1 Smin= 35, 1818 0 0 -2, 2727 0 -0, 8182 0 Замещаемый базисный вектор: P 6 (4 -я строка) Новый базисный вектор: P 5 (5 -й столбец) Заменяем базисный вектор P 6 на P 5.
БП P 0 P 1 P 2 P 3 P 4 P 5 P 6 P 1 5 1 0 -0, 25 0 0 -0, 125 P 4 22 0 0 -0, 25 1 0 1, 375 P 2 6 0 1 0, 25 0 0 -0, 375 P 5 1 0 0 1, 25 0 1 -1, 375 Smin= 36 0 0 -1, 25 0 0 -1, 125 Получено оптимальное решение! Из таблицы получим значения переменных целевой функции: x 1 x 2 x 3 x 4 x 5 P 6 5 6 0 22 1 0
Целевая функция: S min = 6*x 1+1*x 2 S min = 6*5+1*6 И в результате: S min = 36; Задача решена.
Спасибо за Внимание!
Кравчук Е. А..ppt
- Количество слайдов: 16

