Лабораторная работа №23 / mo2
.pdfСанкт-Петербургский Государственный Электротехнический Университет
(ЛЭТИ)
кафедра МО ЭВМ
Отчет по лабораторной работе №2
СИМПЛЕКСНЫЙ МЕТОД
Выполнил студент группы 1341, ФКТИ |
Пухкал И. |
Санкт-Петербург 2004
Содержание |
2 |
Содержание
1 |
Постановка задачи |
3 |
|
2 |
Выполнение работы |
4 |
|
|
2.1 |
Графический метод . . . . . . . . . . . . . . . . . . . . . . . . . . . |
4 |
|
2.2 |
Симплекс-метод . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
5 |
3 |
Вывод |
6 |
1 Постановка задачи |
3 |
1. Постановка задачи
Рассматривается следующая задача линейного программирования: найти минимум линейной функции f(x1, x2, ..., xn):
f = c1x1 + c2x2 + . . . + cnxn,
где ci — постоянные коэффициенты, на множестве, заданном набором линейных ограничений:
a1,1x1 + . . . + a1,nxn ≥ b1
am,1x1 + . . . + am,nxn ≥ bm
xi ≥ 0, i,
где ai,j , bi — постоянные коэффициенты. В матричной форме ограничения записываются следующим образом:
AX ≥ B, X ≥ 0.
Целевая функция может быть представлена в виде скалярного произведения: f = (C, X).
Алгоритм симплекс-метода
Поиск крайней точки допустимого множества Крайняя точка не существует , если в таблице симплекс-метода существует строка, все элементы которой неположительны, а последний элемент — отрицательный .
Крайняя точка найдена, если все элементы вектора-столбца B больше нуля.
1.Выбрать строку i, в которой bi < 0.
2.Выбрать столбец s, в котором ais ≥ 0;
3.В столбце s задать номер строки r разрешающего элемента так, что-
бы отрицательное отношение br было максимальным;
ars
4.Поменять местами имена координат в таблице из строки r и столбца s;
5.Рассматривая элемент ars как разрешающий, необходимо преобразовать таблицу по формулам:
1
trs ← ars
trj ← −zrj , j 6= s
ars
tis ← zis , i 6= r
ars
tij ← zij ars − ziszrj , i 6= r, j 6= s
ars
z ← t
где под z и t понимается соответственно первоначальное и преобразованное значение таблицы (кроме левого столбца и верхней строки).
2 Выполнение работы |
4 |
6.Пункты 1-5 повторять до тех пор, пока не будет дано заключение о точке.
Поиск оптимальной точки Оптимальная точка найдена, если все элементы векторстроки Ñ ≥ 0 (при этом все элементы вектор-столбца B ≥ 0).
Оптимальная точка не существует , если в таблице есть столбец j , в котором cj < 0, а все aij > 0 при любом i.
1.Выбрать столбец s, в которой cs < 0.
2.В столбце s задать номер строки r разрешающего элемента так, что-
бы отрицательное отношение br было максимальным;
ars
3.Поменять местами имена координат в таблице из строки r и столбца s;
4.Рассматривая элемент ars как разрешающий, необходимо преобразовать таблицу по формулам (см. выше):
5.Пункты 1-4 повторять до тех пор, пока не будет дано заключение о точке.
Координаты оптимальной точки 1. Если xj находится на i-м месте левого столбца, то его значение равно bi.
2.Если xi находится на j-м месте верхней строки, то его значение равно 0.
2.Выполнение работы
Вариант 5: построим допустимое множество, исходя из следующих ограничений:
2x1 − x2 ≥ −2
−x ≥ −4
2
−x1 − 2x2 ≥ −12
−x1 + x2 ≥ −3
x1 + x2 ≥ 2
2 Выполнение работы |
5 |
2.1. Графический метод
Рис. 1. Графическое решение.
На рис. 1 допустимое множество не заштриховано. Целевая функция f = −x1. Оптимальная точка: (6, 3).
2.2. Симплекс-метод
Проведем поиск крайней точки.
Øàã 1: |
|
|
| |
x1 |
x2 | b[i] |
----------------------------
y1 | 2.00 -1.00| 2.00
2 Выполнение работы |
6 |
|||
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 |
Выбираем 5ю строку (b5 < 0) и 2й столбец (a5,2 ≥ 0). Номер строки для преобразования — 1. Производим замену и преобразование.
| x1 y1 | b[i]
----------------------------
x2 |
| |
2.00 |
-1.00| |
2.00 |
y2 |
| |
-2.00 |
1.00| |
2.00 |
y3 |
| |
-5.00 |
2.00| |
8.00 |
y4 |
| |
1.00 |
-1.00| |
5.00 |
y5 |
| |
3.00 |
-1.00| |
0.00 |
----------------------------
c[j]| -1.00 0.00| 0.00
Все bi > 0 — крайняя точка обнаружена. Переходим к поиску оптимальной точки. Выберем 1й столбец (c1 < 0) и 2ю строку.
Øàã 3: |
|
|
|
|
|
|
| |
y2 |
y1 |
| |
b[i] |
---------------------------- |
|||||
x2 |
| |
-1.00 |
0.00| |
4.00 |
|
x1 |
| |
-0.50 |
0.50| |
1.00 |
|
y3 |
| |
2.50 |
-0.50| |
3.00 |
|
y4 |
| |
-0.50 |
-0.50| |
6.00 |
|
y5 |
| |
-1.50 |
0.50| |
3.00 |
|
---------------------------- |
|||||
c[j]| |
0.50 |
-0.50| |
-1.00 |
||
Выберем 2й столбец (c2 < 0) и 3ю строку. |
|||||
Øàã 4: |
|
|
|
|
|
|
| |
y2 |
y3 |
| |
b[i] |
---------------------------- |
|||||
x2 |
| |
-1.00 |
0.00| |
4.00 |
|
x1 |
| |
2.00 |
-1.00| |
4.00 |
|
y1 |
| |
5.00 |
-2.00| |
6.00 |
|
y4 |
| |
-3.00 |
1.00| |
3.00 |
|
y5 |
| |
1.00 |
-1.00| |
6.00 |
|
---------------------------- |
|||||
c[j]| |
-2.00 |
1.00| |
-4.00 |
Выберем 1й столбец (c1 < 0) и 4ю строку.
Øàã 5: |
|
|
| |
y4 |
y3 | b[i] |
3 Вывод |
|
7 |
||
---------------------------- |
||||
x2 |
| |
0.33 |
-0.33| |
3.00 |
x1 |
| |
-0.67 |
-0.33| |
6.00 |
y1 |
| |
-1.67 |
-0.33| |
11.00 |
y2 |
| |
-0.33 |
0.33| |
1.00 |
y5 |
| |
-0.33 |
-0.67| |
7.00 |
---------------------------- |
||||
c[j]| |
0.67 |
0.33| |
-6.00 |
Все ñj > 0 — оптимальная точка обнаружена. Ее координаты: (6, 3) (т. к. x1 содержится во 2й строке, а x2 — в первой).
Координаты оптимальной точки : x1= 6.00
x2= 3.00
3.Вывод
Врезультате выполнения был рассмотрен графический и симплексный методы для поиска оптимальных точек допустимого множества.