Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Исследование алгоритмов оптимизации.doc
Скачиваний:
15
Добавлен:
01.05.2014
Размер:
331 Кб
Скачать

Краткие общие сидения

Симплексный метод решения задач линейного программирования состоит из двух этапов:

1) поиск крайней точки допустимого множества,

2) поиск оптимальной точки путём направленного перебора край­них точек.

Преобразуем ограничения AxB к виду Y = AxB ≥ 0.

- 11 -

Графический способ решения задачи симплексным методом связан

с таблицей:

X1

X2

...

Xn

B

Y1

α11

α12

...

α1n

B1

Y2

α21

α22

...

α2n

B2

...

...

...

...

...

...

Ym

αm1

αm2

...

αmn

Bm

C1

C2

...

Cn

ƒ(X)

Крайняя точка найдена, если все элементы вектора-столбца В боль- ше нуля. Крайняя точка не существует, если в таблице существует строка, все элементы которой неположительны, а последний элемент -отрицательный.

Чтобы найти крайнюю точку надо:

1) выбрать строку i, в которой В[i] < О;

2) выбрать столбец S, в котором A[i, S] ≥ 0;

3) в столбце S задать номер строки r разрешающего элемента так, чтобы отрицательное отношение B[r]/A[r, S] было максималь-ным.

4) поменять местами имена координат в таблице из строки r и столбца S.

5) рассматривая элемент A[r, S] как разрешающий, необходимо преобразовать таблицу по формулам

ARS := A[r, s];

Z1[r, S] := 1 / ARS;

Z1[r, j] := -Z[r, j] / ARS, j ≠ S;

Z1[i, S] := Z[i, S] / ARS, i ≠ r;

Z1[i, j] := (Z[i, j] * ARS – Z[i, S] * Z[r, j]) / ARS,

ir, jS;

Z := Z1,

где под Z и Z1 понимается соответственно первоначальное и пре­образованное значение таблицы (кроме левого столбца и верхней строки).

Оптимальная, точка найдена, если все элементы вектор-строки С ≥ О (при этом все элементы вектор-столбца B ≥ 0).

- 12 -

Оптимальная точка не существует, если в таблице есть стол­- бец j, в котором С[j] < 0, а все A[i, j] > 0 при .

Чтобы найти оптимальную точку, надо:

1) выбрать столбец S, в котором C[S] < 0;

2) в столбце S задать номер строки r разрешающего элемен- ­та так, чтобы отрицательное отношение B[r] / A[r, S] было макси­мальным.

3) поменять местами в таблице имена координат из строки r и столбца S.

4) преобразовать таблицу по формулам (3.1).

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

1) если X[j] находится на i -м месте левого столбца, то его значение равно B[i];

2) если X[i] находится на j -м месте верхней строки, то его значение равно 0.

Порядок проведения лабораторной работы

1. Получить у преподавателя вариант задания и указание по ре­жиму его ввода.

Возможны следующие режимы ввода:

а) ввод из стандартного файла, при этом надо указать только номер лабораторной работы и номер варианта;

б) ввод с терминала. В этом случае ввод осуществляется по за­просу машины. Числа вводятся в свободном формате, разделителем между числами является пробел;

в) ввод из файла. В этом случае необходимо создать файл без расширения с именем, содержащим не более четырех символов.

Структура файла:

M _ N

α11 _ α12 _ ... _ α1,N-1

...

αM-1,1 _ αM-1,2 _ ... _ αM-1,N-1

B1 _ B2 _ ... _ BM-1

C1 _ C2 _ ... _ CN-1

- 13 -

2. Запустить ведущую программу.

3. В процессе диалога с машиной осуществить ввод исходных данных.

4. Записать в протокол номер бригада и ее состав, номер и ва­риант лабораторной работы. В процессе работы в протокол записывать все действия.

5. Записать в протокол работы таблицу с экрана дисплея.

6. Отвечая на вопросы машины, определить координаты разрешаю­щего элемента.

7. С помощью калькулятора, логарифмической линейки или головы провести преобразование таблицы по формулам (3.1). Результат запи­сать в протокол.

8. Записать в протокол результат преобразований таблицы ма­шиной.

9. Повторить пп. 6,7,8 до получения оптимальной точки (если она существует).

10. Определить координаты оптимальной точки.

11. Записать число и тип допущенных ошибок.

12. Вывести на АЦПУ результаты работы из файла OUT.

Требования к отчету

1. Опишите алгоритм поиска оптимальной точки.

2. Приведите полный протокол решения конкретной задачи.

3. Объясните допущенные ошибки при выполнении лабораторной работы.

4. Опишите Ваши предложения по улучшению программы, управляю­щей ходом лабораторной работы.

Контрольные вопросы

1. Как определяется, что

а) крайняя точка найдена,

б) крайняя точка не существует,

в) оптимальная точка найдена,

г) оптимальная точка не существует.

- 14 -

2. Обоснуйте пункты алгоритма поиска

а) крайней точки

б) оптимальной точки.

Лабораторная работа 4 РЕШЕНИЕ ПРЯМОЙ И ДВОЙСТВЕННОЙ ЗАДАЧ

Цели работы:

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

б. Исследование прямой и двойственной задачи.

Краткие общие сведения

Если исходная задача линейного программирования представлена в виде:

найти минимум функции ƒ = (c, x) на множестве

, (4.1).

то двойственная задача может быть сформулирована следующим обра­-зом:

найти максимум функции (B, λ) на множестве

где AT — матрица транспонированная к А.

Двойственная к двойственной задаче есть исходная задача.

Известно, что если существует решение исходной задачи, то су­ществует решение и двойственной задачи, причем значения экстрему­мов совпадают. При этом координаты экстремальной точки для двойст­венной задачи являются коэффициентами чувствительности результата в исходной задаче по коэффициентам вектора B.

Рассмотрим видоизмененную исходную задачу:

найти min(C, X) на множестве { х: Х ≥ О, Аx ≥ В + ε * еi }, где ε>0,

- 15 -

Если исходная задача имеет единственное решение, то при малых ε>0 и видоизмененная задача имеет решение; причем если -значение минимума, то существует . Оказыва­-ется, что β есть i -я координата оптимальной точки для двойст­венной задачи.

Для проведения лабораторной работы составлена программа, обеспечивающая решение задачи линейного программирования при зада­нии с терминала исходных значений параметров.