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

Кафедра МО ЭВМ

ОТЧЕТ

по лабораторной работе № 3 по дисциплине

"Методы оптимизации"

Симплексный метод

Выполнили: Воробьёв А.В.

Ламеров Д.Ю.

Швецов М.Н.

Шефер Е.В.

Факультет КТИ

Группа № 4352

Проверил Балтрашевич В.Э.

«Выполнено» «____» _______ ____

Подпись преподавателя __ _

Санкт-Петербург

2006

Цель работы. Изучение симплексного метода решения задач ли­нейного программирования.

Постановка задачи

Рассматривается следующая задача, получившая название задачи линейного программирования.

Найти минимум линейной функции ƒ n аргументов:

ƒ = c1x1 + c2x2 + ... + cnxn,

где Сi - постоянные коэффициенты, на множестве, заданном набором линейных ограничений:

α11x1 + α12x2 + ... + α1nxnB1

...

αm1x1 + αm2x2 + ... + αmnxnBm

x1 ≥ 0, ..., xn ≥ 0,

где αij, Bi - постоянные коэффициенты.

Пусть А = - m*n - матрица, а

- векторы,

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

где неравенства понимаются покоординатно.

Целевая функция ƒ может быть представлена в виде скалярного

произведения ƒ = (C, X).

Множество называется допустимым Х-многогранником.

Оптимальной точкой задачи линейного программирования называет­ся такая точка X*, что и (C, X*) ≤ (C, X) для всех . Известно, что среди оптимальных точек содержится хотя бы одна крайняя точка X.

Описание метода

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

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

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

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

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

с таблицей:

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).

Оптимальная точка не существует, если в таблице есть стол­- бец 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

Дано:

целевая функция:

f = x1 + x2;

ограничения:

y1: 3x1 + 2x2 – 6 ≥ 0;

y2: x1 + 4x2 – 4 ≥ 0;

Шаг 1:

| x1 x2 | b[i]

----------------------------

y1 | 3.00 2.00| -6.00

y2 | 1.00 4.00| -4.00

----------------------------

c[j]| 1.00 1.00| 0.00

Шаг 2:

| y1 x2 | b[i]

----------------------------

x1 | 0.33 -0.67| 2.00

y2 | 0.33 3.33| -2.00

----------------------------

c[j]| 0.33 0.33| 2.00

Шаг 3:

| y2 x2 | b[i]

----------------------------

x1 | 1.00 -4.00| 4.00

y1 | 3.00 -10.00| 6.00

----------------------------

c[j]| 1.00 -3.00| 4.00

Шаг 4:

| y2 y1 | b[i]

----------------------------

x1 | -0.20 0.40| 1.60

x2 | 0.30 -0.10| 0.60

----------------------------

c[j]| 0.10 0.30| 2.20

Координаты оптимальной точки:

x1= 1.60

x2= 0.60

Вариант 2

Дано:

целевая функция:

f = -x2;

ограничения:

y1: 2x1 - x2 + 1 ≥ 0;

y2: x1 - 2x2 + 5 ≥ 0;

y3: -x1 - x2 + 7 ≥ 0;

y4: -x1 + x2 + 3 ≥ 0;

Шаг 1:

| x1 x2 | b[i]

----------------------------

y1 | 2.00 -1.00| 1.00

y2 | 1.00 -2.00| 5.00

y3 | -1.00 -1.00| 7.00

y4 | -1.00 1.00| 3.00

----------------------------

c[j]| 0.00 -1.00| 0.00

Шаг 2:

| x1 y1 | b[i]

----------------------------

x2 | 2.00 -1.00| 1.00

y2 | -3.00 2.00| 3.00

y3 | -3.00 1.00| 6.00

y4 | 1.00 -1.00| 4.00

----------------------------

c[j]| -2.00 1.00| -1.00

Шаг 3:

| y2 y1 | b[i]

----------------------------

x2 | -0.67 0.33| 3.00

x1 | -0.33 0.67| 1.00

y3 | 1.00 -1.00| 3.00

y4 | -0.33 -0.33| 5.00

----------------------------

c[j]| 0.67 -0.33| -3.00

Шаг 4:

| y2 y3 | b[i]

----------------------------

x2 | -0.33 -0.33| 4.00

x1 | 0.33 -0.67| 3.00

y1 | 1.00 -1.00| 3.00

y4 | -0.67 0.33| 4.00

----------------------------

c[j]| 0.33 0.33| -4.00

Координаты оптимальной точки:

x1= 3.00

x2= 4.00

Вариант 3

Дано:

целевая функция:

f = 2x1 + 3x2;

ограничения:

y1: 3x1 + 2x2 - 6 ≥ 0;

y2: x1 - 2x2 - 4 ≥ 0;

Шаг 1:

| x1 x2 | b[i]

----------------------------

y1 | 3.00 2.00| -6.00

y2 | 1.00 -2.00| -4.00

----------------------------

c[j]| 2.00 3.00| 0.00

Шаг 2:

| y1 x2 | b[i]

----------------------------

x1 | 0.33 -0.67| 2.00

y2 | 0.33 -2.67| -2.00

----------------------------

c[j]| 0.67 1.67| 4.00

Шаг 3:

| y2 x2 | b[i]

----------------------------

x1 | 1.00 2.00| 4.00

y1 | 3.00 8.00| 6.00

----------------------------

c[j]| 2.00 7.00| 8.00

Координаты оптимальной точки:

x1= 4.00

x2= 0.00

Вариант 4

Дано:

целевая функция:

f = x1 + 2x2;

ограничения:

y1: x1 - x2 ≥ 0;

y2: x1 + x2 - 2 ≥ 0;

Шаг 1:

| x1 x2 | b[i]

----------------------------

y1 | 1.00 -1.00| 0.00

y2 | 1.00 1.00| -2.00

----------------------------

c[j]| 1.00 2.00| 0.00

Шаг 2:

| y2 x2 | b[i]

----------------------------

y1 | 1.00 -2.00| 2.00

x1 | 1.00 -1.00| 2.00

----------------------------

c[j]| 1.00 1.00| 2.00

Координаты оптимальной точки:

x1= 2.00

x2= 0.00

Вариант 5

Дано:

целевая функция:

f = -x1;

ограничения:

y1: 2x1 - x2 + 2 ≥ 0;

y2: - x2 + 4 ≥ 0;

y3: -x1 - 2x2 + 12 ≥ 0;

y4: -x1 + x2 + 3 ≥ 0;

y5: x1 + x2 – 2 ≥ 0;

Шаг 1:

| x1 x2 | b[i]

----------------------------

y1 | 2.00 -1.00| 2.00

y2 | 0.00 -1.00| 4.00

y3 | -1.00 -2.00| 12.00

y4 | -1.00 1.00| 3.00

y5 | 1.00 1.00| -2.00

----------------------------

c[j]| -1.00 0.00| 0.00

Шаг 2:

| y5 x2 | b[i]

----------------------------

y1 | 2.00 -3.00| 6.00

y2 | 0.00 -1.00| 4.00

y3 | -1.00 -1.00| 10.00

y4 | -1.00 2.00| 1.00

x1 | 1.00 -1.00| 2.00

----------------------------

c[j]| -1.00 1.00| -2.00

Шаг 3:

| y4 x2 | b[i]

----------------------------

y1 | -2.00 1.00| 8.00

y2 | 0.00 -1.00| 4.00

y3 | 1.00 -3.00| 9.00

y5 | -1.00 2.00| 1.00

x1 | -1.00 1.00| 3.00

----------------------------

c[j]| 1.00 -1.00| -3.00

Шаг 4:

| y4 y3 | b[i]

----------------------------

y1 | -1.67 -0.33| 11.00

y2 | -0.33 0.33| 1.00

x2 | 0.33 -0.33| 3.00

y5 | -0.33 -0.67| 7.00

x1 | -0.67 -0.33| 6.00

----------------------------

c[j]| 0.67 0.33| -6.00

Координаты оптимальной точки: x1= 6.00 x2= 3.00