Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
151
Добавлен:
10.12.2013
Размер:
1.07 Mб
Скачать

X1, x2  0, int (целые).

Если пренебречь целочисленностью, то легко увидеть, что оптимальным будет решение

x1= 3, x2=0.

Если округлить его по правилам арифметики, то получим недопустимое решение. Округление в большую сторону (x1=4, x2=0) приводит к допустимости, но является ли такое решение оптимальным?

Чтобы ответить на этот вопрос, рассмотрим все возможные

Таблица 7.1

x1

x2

L

3

0

-

4

0

560

3

1

540

2

2

520

1

3

500

0

4

-

0

5

600

целочисленные решения (табл.7.1). Прочерк в графе критерия означает недопустимость.

Как видно из таблицы, оптимальным является решение x1*=1, x2*=3, которое принципиально отличается от непрерывного: закупать надо в основном мешки 2-го типа, тогда как по нерерывному решению – только 1-го типа. Кроме того, округленное допустимое решение оказалось

далеким от оптимального: затраты в нем выше минимальных на 12%. ▲

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

L=21x1+11x2max;

7x1+4x2 13;

x1, x2 0, int.

Как и в задаче о садовнике, рассмотрим все возможные целочисленные решения. При этом сначала возьмем решение x1=1, x2=1 и решения, окружающие его (табл. 7.2). Целочисленные точки и ограничение показаны на рис. 7.1.

Таблица 7.2

x1

x2

L

1

1

32

0

0

0

0

1

11

1

0

21

0

2

22

1

2

-

2

2

-

2

1

-

2

0

-

0

3

33

Из таблицы следует, что в точке (1, 1) имеет место локальный экстремум, а глобальный максимум достигается в точке (0, 3). В непрерывной линейной задаче любой локальный экстремум является глобальным. То что целочисленная задача может иметь локальные экстремумы, необходимо учитывать при использовании методов частичного перебора. ▲

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

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

Возьмем многогранное множество M(B):

; (7.1)

(7.2)

где все aij – фиксированные целые числа, B =(b1,b2,…, bm)Т и m<n (ранг матрицы [aij] равен m.) Для него справедлива следующая теорема.

Теорема. Для того чтобы все вершины многогранного множества M(B) при любом целочисленном векторе B были целочисленными, необходимо и достаточно, чтобы каждый минор порядка m матрицы условий [aij] был равен либо 0, либо +1 или –1.

Если вместо равенств (7.1) множество задается неравенствами, указанные в теореме значения относятся ко всем минорам матрицы [aij].

Класс задач, удовлетворяющих теореме, очень узок (это транспортные задачи, задачи о назначениях и др.). Такие задачи относят к лекгоразрешимым (по Дж. Эдмондсу), так как для них существуют полиномиальные алгоритмы (время или число итераций растет полиномиально с увеличением размерности задачи). Остальные целочисленные задачи входят в класс трудноразрешимых задач (класс NP по Карпу и Куку).

Для решения таких задач применяются различные подходы. Из точных методов можно назвать следующие:

  1. методы отсечений;

  2. метод ветвей и границ;

  3. метод построения последовательности планов

  4. модификации динамического программирования;

  5. методы последовательного анализа вариантов.

Последние 4 метода входят в группу комбинаторных методов.

Кроме точных методов имеется также большое число приближенных методов.

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

Соседние файлы в папке Лекции по Гольду