Главная страница

Производственный менеджмент (лекции). Производственный менеджмент


Скачать 6.27 Mb.
НазваниеПроизводственный менеджмент
Дата06.12.2022
Размер6.27 Mb.
Формат файлаdoc
Имя файлаПроизводственный менеджмент (лекции).doc
ТипДокументы
#831628
страница52 из 54
1   ...   46   47   48   49   50   51   52   53   54

Задачи целочисленного программирования


Значительная часть задач производственного менеджмента, относящихся к задачам линейного программирования, требует целочисленного решения. К ним относятся задачи, у которых переменные величины означают количество единиц неделимой продукции.

Целочисленное программирование ориентировано на решение задач, в которых все или некоторые переменные должны принимать только целые значения. Задача называется полностью целочисленной, если условие целочисленности наложено на все ее переменные; когда это условие относится лишь к некоторым переменным, задача называется частично целочисленной.

Математическая модель линейной целочисленной задачи может быть записана следующим образом:

F( ) = (1)

, bi 0, i = 1, ..., m, (2)

xj 0, j = 1, ..., n, xj – целые. (3)

Существует эвристический подход к решению задач целочисленного программирования (ЗЦП), основанный на решении ЗЦП как задачи ЛП. Использование процедур округления нецелочисленного оптимального решения задачи ЛП дает возможность получать приближенное оптимальное целочисленное решение. Например, если в оптимальном решении двумерной задачи ЛП значения переменных х1 и х2 оказались равными 3,5 и 4,4 соответственно, то в качестве кандидатов на роль приближенного целочисленного оптимального решения необходимо рассмотреть точки (3;4), (4;4), (4;5), (3;5) полученные в результате округления. Заметим однако, что истинное оптимальное целочисленное решение может не совпадать ни с одним из четырех, указанных выше.

ПРИМЕР

F( ) = x1 – 3x2 + 3х3

при ограничениях

2x1 + x2 - х3  4

4x1 - 3x2  2

-3x1 + 2x2 + х3  3

x1, х2, х3  0, целые.

Игнорируя условия целочисленности получим . Никакое округление компонент этого плана не дает допустимого решения, так как искомое целочисленное решение . Таким образом, для решения целочисленных задач необходимы специальные методы.

Точные методы решения задач целочисленного программирования можно классифицировать как методы отсечений и комбинаторные методы.

Название “методы отсечений” связано с тем обстоятельством, что вводимые дополнительные ограничения отсекают некоторые области многогранника допустимых решений, в которых отсутствуют точки с целочисленными координатами. Метод отсекающих плоскостей, разработанный Р. Гомори, используется при решении полностью целочисленных задач.

В основе комбинаторных методов лежит идея перебора всех допустимых целочисленных решений. Разумеется, на первый план здесь выдвигается проблема разработки процедур, позволяющих непосредственно рассматривать лишь относительно небольшую часть указанных решений, а остальные допустимые решения учитывать некоторым косвенным образом. Наиболее известным комбинаторным методом является метод ветвей и границ.

Дробный алгоритм решения полностью целочисленных задач


Необходимым условием применения данного алгоритма является целочисленность всех коэффициентов и правых частей ограничений исходной задачи. Например, ограничение х1 + (1/3) х2  13/2 записывается в виде 6х1 + 2х2  39, в котором дроби отсутствуют.

На первом шаге решается задача с ослабленными ограничениями, которая возникает в результате исключения требования целочисленности переменных. Если полученное оптимальное решение оказывается целочисленным, то оно является также решением исходной задачи. В противном случае следует ввести дополнительные ограничения, порождающие (вместе с исходными ограничениями) новую задачу линейного программирования, решение которой оказывается целочисленным и совпадает с оптимальным решением исходной целочисленной задачи.

Пусть последняя симплексная таблица задачи с ослабленными ограничениями имеет следующий вид:

Базисные переменные



...



...





...



...



Решение



1

...

0

...

0















...

...

...

...

...

...

...

...

...

...

...

...



0

...

1

...

0



...



...





...

...

...

...

...

...

...

...

...

...

...

...



0

...

0

...

1



...



...







0

...

0

...

0



...



...






Через xi (i = 1, ..., m) обозначены базисные переменные, а через j (j = 1, ..., n) – небазисные переменные.

Рассмотрим i-ю строку симплексной таблицы, которой соответствует нецелое значение базисной переменной xi, и выразим xi через небазисные переменные:

, i – нецелое.

Каждую строку симплексной таблицы, порождающую аналогичное равенство, будем называть производящей строкой.

Пусть i = [i] + fi, ij = [ij] + fij.

Отсюда следует , что

0 < fi < 1, 0  fij < 1.

ПРИМЕР

а

а



3/2

1

1/2

-7/3

-3

2/3

-1

-1

0
1   ...   46   47   48   49   50   51   52   53   54


написать администратору сайта