Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
часть1.doc
Скачиваний:
3
Добавлен:
10.11.2019
Размер:
524.29 Кб
Скачать

1.8. Целочисленная задача лп

Когда часть переменных задачи ЛП или все переменные должны удовлетворять условию целочисленности, мы имеем дело с задачей целочисленного линейного программирования (ЦЛП), решить которую симплекс-методом уже не представляется возможным. В настоящее время большое распространение получили два метода решения задач ЦЛП: а) метод отсечений (алгоритмы Гомори); б) метод ветвей и границ (ВИГ). В данном разделе мы рассмотрим лишь второй метод решения, ввиду его простоты и удобства в структуризации процесса поиска оптимального решения.

Итак, рассмотрим метод ветвей и границ применительно к задаче

. (8.1)

xj – целые, j = 1,…,k; kn

Суть метода ВИГ заключается в том, что оптимальное решение исходной задачи будет удовлетворять одному из условий: либо , либо , где Ij любое целое число между предельными значениями переменных xj min и xj max. Удобно, однако, в качестве величины Ij выбрать ближайшее целочисленное значение переменной, по значению которой происходит ветвление. Эта идея изображена на рис. 1. Исходная задача решается как обычная задача ЛП, без соблюдения условия целочисленности. Если полученное при этом решение оказывается целочисленным, то задача решена. В противном случае осуществляется «ветвление» множества допустимых решений по одной из нецелочисленных переменных.

Иллюстрируем применение метода ВИГ в решении следующей задаче

.

5x1+7x2 ≤ 35

4x1+9x2 ≤ 36

x1, x2 ≥ 0, – целые

Решая эту задачу симплекс-методом, находим ее «обычное» решение в виде

.

Как видно, обе координаты не являются целочисленными. Выберем для ветвления одну из них, например, вторую координату, и составим две новые задачи: в задаче 2 к исходным ограничениям добавим ограничение х2 2, а в задаче 3 - ограничение х2 3. Дальнейший ход алгоритма в виде дерева решений показан на рис. 2.

Когда найдено новое целочисленное решение, значение целевой функции этого решения сравнивается с верхним значением (или нижним значением при минимизации). В начале работы алгоритма это значение принимается равным = -  ( = + ). Если значение целевой функции хуже предыдущего ее значения, то оно отбрасывается, а если лучше, то принимается за новое граничное значение, и т.д. В конце концов, нецелочисленные переменные примут целочисленные значения, если они существуют. Результаты решения задачи следующие: решение задачи 4: x* = (4, 2)T, f* = 14 = ; решение задач 8: x* = (5, 1)T, f*=13; решение задачи 10: x* = (7, 0)T, f* = 14 = .

Рис.2.4. К иллюстрации процесса

ветвления по координате х2.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]