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

6378
знаков
18
таблиц
9
изображений

Задача №1 (Симплекс метод решения задачи линейного программирования.)

Найти Fmax = 9x1+ 10x2 + 16x3, при ограничениях:

Запишем задачу в каноническом виде:

F=9x1+ 10x2 + 16x3 → max

Заполним начальную таблицу:

Таблица 0.

0 9 10 16 0 0 0

Отношение,

θ

i

Базис

1 0

360 18 15 12 1 0 0 30
2 0

192 6 4 8 0 1 0 24
3 0

180 5 3 3 0 0 1 60
∆j 0 -9 -10 -16 0 0 0
Zj 0 0 0 0 0 0 0

Zj вычисляется по формуле

Оценки (∆j) вычисляются по формуле , где  - коэффициент из первой строки таблицы.

Выбираем минимальную (отрицательную) оценку. Она определяет направляющий столбец.

Заполняем столбец «θ», по минимальному значению определяем направляющую строку.

На пересечение строки и столбца находится направляющий элемент.

Заполняем новую таблицу

Таблица 1.

0 9 10 16 0 0 0

Отношение,

θ

i

Базис

1 0

72 9 9 0 1

0 8
2 16

24

1 0

0 48
3 0

108

0 0

-

1 72
∆j 384 3 -2 0 0 2 0
Zj 384 12 8 0 0 2 0

Изменяется базис в позиции направляющей строки. Базисным становится вектор, соответствующий направляющему столбцу, т. е.

Столбец  становится базисным, то есть единичным.

Новые значения в направляющей строке получаем делением элементов этой строки на направляющий элемент.

Остальные элементы в небазисных столбцах и в столбце  вычисляем по правилу треугольника.

Выбираем минимальную отрицательную оценку. Она определяет направляющий столбец.

Заполняем столбец «θ»

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

На пересечении направляющей строки и столбца находится направляющий элемент.

Заполнение второй таблицы осуществляется по аналогии с предыдущей.

Таблица 2.

0 9 10 16 0 0 0

Отношение,

θ

i

Базис

1 10

8 1 1 0

-

0 ______
2 16

20

0 1

-

0 ______
3 0

96

0 0

-

1 ______
∆j 400 5 0 0

0
Zj 400 14 10 16

0

Так как нет отрицательных оценок ∆j, значит выполняется признак оптимальности и не вводились искусственные переменные, то получено оптимальное решение.

Ответ:

Максимальное значение функции Fmax =400 достигается в точке с координатами:

=0

=8

=20

=0

=0

=96

Задача №2 (Метод Литтла)

Найти кратчайший путь в графе, заданном графически в виде чертежа, методом Литтла.

Из чертежа запишем матрицу расстояний. (Расстояние от т.1 до т.2 равно:

 , и т.д.)

1 2 3 4 5 6
1 18,87 49,48 51,86 80,51 97,42
2 18,87 32,06 34,48 65,15 84,01
3 49,48 32,06 31,76 61,19 83,20
4 51,86 34,48 31,76 32,14 53,15
5 80,51 65,15 61,19 32,14 22,14
6 97,42 84,01 83,20 53,15 22,14

Предположим что кратчайший путь будет следующим:

 т.1→ т.2→ т.3→ т.4→ т.5→ т.6→т.1 и составит

Решение: Первый этап.

Шаг 1. Приведем матрицу расстояний по строкам и столбцам

(в строке вычитаем из каждого элемента минимальный, затем в столбцах)


1 2 3 4 5 6
1 18,87 49,48 51,86 80,51 97,42 18,87
2 18,87 32,06 34,48 65,15 84,01 18,87
3 49,48 32,06 31,76 61,19 83,20 31,76
4 51,86 34,48 31,76 32,14 53,15 31,76
5 80,51 65,15 61,19 32,14 22,14 22,14
6 97,42 84,01 83,20 53,15 22,14 22,14

 ↓

1 2 3 4 5 6
1 0 30,61 32,99 61,64 78,55
2 0 13,19 15,61 46,28 65,14
3 17,72 0,30 0 29,43 51,44
4 20,10 2,72 0 0,38 21,39
5 58,37 43,01 39,05 10,00 0
6 75,28 61,87 61,06 31,01 0
0 0 0 0 0 0

 ↓

1 2 3 4 5 6
1 0 30,61 32,99 61,64 78,55
2 0 13,19 15,61 46,28 65,14
3 17,72 0,30 0 29,43 51,44
4 20,10 2,72 0 0,38 21,39
5 58,37 43,01 39,05 10,00 0
6 75,28 61,87 61,06 31,01 0

Шаг 2. Определим оценки нулевых клеток:

Шаг 3. Вычеркиваем клетку с максимальной оценкой. Включаем данную клетку в путь обхода. (5 – 6)

Шаг 4. Переписываем матрицу расстояний, накладывая запрет на одну из клеток для исключения преждевременного замыкания контура (в клетку 6-5 ставим ∞).

1 2 3 4 5
1 0 30,61 32,99 61,64
2 0 13,19 15,61 46,28
3 17,72 0,30 0 29,43
4 20,10 2,72 0 0,38
6 75,28 61,87 61,06 31,01

Далее повторяем шаги 1 – 4, пока не дойдем до одной клетки.

Второй этап.

Шаг 1. Приведем матрицу расстояний по строкам и столбцам.

1 2 3 4 5
1 0 30,61 32,99 61,64
2 0 13,19 15,61 46,28
3 17,72 0,30 0 29,43
4 20,10 2,72 0 0,38
6 75,28 61,87 61,06 31,01
0 0 0 0 0,38

1 2 3 4 5
1 0 30,61 32,99 61,26
2 0 13,19 15,61 45,90
3 17,72 0,30 0 29,05
4 20,10 2,72 0 0
6 75,28 61,87 61,06 31,01

Шаг 2. Определим оценки нулевых клеток:

Шаг 3. Вычеркиваем клетку с максимальной оценкой. Включаем данную клетку в путь обхода. (1 – 2)

Шаг 4. Переписываем матрицу расстояний, накладывая запрет на одну из клеток для исключения преждевременного замыкания контура (в клетку 2 – 1 ставим ∞).

1 3 4 5
2 13,19 15,61 45,90
3 17,72 0 29,05
4 20,10 0 0
6 75,28 61,06 31,01

Третий этап.

Шаг 1. Приведем матрицу расстояний по строкам и столбцам.

1 3 4 5
2 13,19 15,61 45,90
3 17,72 0 29,05
4 20,10 0 0
6 75,28 61,06 31,01
17,72 0 0 0

 ↓

1 3 4 5
2 13,19 15,61 45,90 13,19
3 0 0 29,05 0
4 2,38 0 0 0
6 57,56 61,06 31,01 31,01

 ↓

1 3 4 5
2 0 2,42 32,71
3 0 0 29,05
4 2,38 0 0
6 26,55 30,05 0

Шаг 2. Определим оценки нулевых клеток:


Шаг 3. Вычеркиваем клетку с максимальной оценкой. Включаем данную клетку в путь обхода. (4 – 5)

Шаг 4. Переписываем матрицу расстояний, накладывая запрет на одну из клеток для исключения преждевременного замыкания контура (в клетку 6 – 4 ставим ∞).

1 3 4
2 0 2,42
3 0 0
6 26,55 30,05

Четвертый этап.

Шаг 1. Приведем матрицу расстояний по строкам и столбцам.

1 3 4
2 0 2,42 0
3 0 0 0
6 26,55 30,05 26,55

 ↓

1 3 4
2 0 2,42
3 0 0
6 0 3,50

Шаг 2. Определим оценки нулевых клеток:

Шаг 3. Вычеркиваем клетку с максимальной оценкой. Включаем данную клетку в путь обхода. (3 – 4)

Шаг 4. Переписываем матрицу расстояний, накладывая запрет на одну из клеток для исключения преждевременного замыкания контура (в клетку 6 – 3 ставим ∞).


1 3
2 0
6 0

 

Пятый этап.

Остались не задействованными связи 2 – 3 и 6 – 1.

В результате получаем следующую цепочку:

1→ 2→ 3 → 4→ 5→ 6 →1

Длина пути составляет:

L=18,87+32,06+31,76+32,14+22,14+97,42=234,39

это и есть кратчайший путь.


Информация о работе «Симплекс метод решения задачи линейного программирования»
Раздел: Информатика, программирование
Количество знаков с пробелами: 6378
Количество таблиц: 18
Количество изображений: 9

Похожие работы

Скачать
33353
9
3

... ограничения несовместны, множество планов пусто и задача ЛП решения не имеет.    Рис. 1.4 Рис. 1.5 Рис. 1.6 2. Симплекс-метод   2.1 Идея симплекс-метода Рассмотрим универсальный метод решения канонической задачи линейного программирования , , , с n переменными и m ограничениями-равенствами, известный как симплекс-метод.  Множество планов канонической задачи – ...

Скачать
25011
8
6

... . 1.3. Построение ограничений и градиента целевой функции : 1.4. Область допустимых решений – отрезок AB. 1.5. Точка А – оптимальная. Координаты т. А: ; ; . 2. Решение задачи линейного программирования симплекс-методом. Прямая задача. Задачу линейного программирования для любой вершины в компактной форме можно представить в виде: Для получения используем алгоритм, приведённый в ...

Скачать
36149
6
0

... положит в такой симплекс-таблице текущие базисные переменные равными Ai,0, а свободные - нулю, то будет получено оптимальное решение. Практика применения симплекс метода показала, что число итераций, требуемых для решения задачи линейного программирования обычно колеблется от 2m до 3m, хотя для некоторых специально построенных задач вычисления по правилам симплекс метода превращаются в прямой ...

Скачать
34424
6
3

... задачи линейного программирования, они очень сложны и решаются специальными, обычно многостадийными приемами с использованием эвристических элементов. 3. Решение задач   3.1. Решение задачи линейного программирования   3.1.1.Постановка задачи Сформулируем задачу: Определить значения переменных, обеспечивающие минимизацию целевой функции. Составим целевую функцию и зададим ограничения. ...

0 комментариев


Наверх