русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Вычислительный алгоритм симплекс-метода


Дата добавления: 2013-12-24; просмотров: 1648; Нарушение авторских прав


 

Вычислительный алгоритм симплекс-метода применяется для решения задачи линейного программирования (ЛП) с односторонним ограничением и требованием неотрицательности переменных:

(1)

Алгоритм симплекс-метода включает пять этапов, которые рассмотрим на примере решения следующей задачи ЛП:

(2)

Этап 1. Представить исходные данные в виде симплекс-таблицы.

Вводим дополнительные (базисные) переменные y в ограничения и записываем задачу в стандартной форме (предварительно записываем систему таким образом, чтобы в ограничениях были знаки «», и вводим дополнительные переменные):

(3)

Значения свободного члена c0 и коэффициентов cj, при свободных переменных x в уравнении целевой функции, свободных членов bi и коэффициентов аij при свободных переменных в уравнениях ограничений записываем в симплекс-таблицу (таблица 1).

 

 

Таблица 1

  Свободный член x1 x2 x3
E -2
y1 -1 -1
y2 -5 -2 -1
y3
y4

 

Этап 2. Проверить совместимость ограничений (наличие ОДР).

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

Из таблицы 1 видно, что признак 1 выполняется.

Этап 3. Найти допустимое решение (координаты любой вершины ОДР).

Признак 2. Решение является допустимым, если в строках базисных переменных симплекс-таблицы все свободные члены неотрицательные.

Из таблицы 1 видно, что признак 2 не выполняется.

Если это требование не выполняется, производится обмен переменных. На каждой итерации такого обмена одна переменная из свободных переводится в базисные, а одна базисная – в свободные.



Алгоритм перехода при обмене переменных состоит из пяти шагов.

1 Числа, содержащиеся в исходной симплекс-таблице, записать в верхних левых частях ячеек новой симплекс-таблицы.

2 Выбрать разрешающий элемент.

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

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

В качестве разрешающего столбца могут быть приняты столбцы x1 и x3. Разрешающим принят столбец x1.

В разрешающем столбце для всех элементов аij, имеющих одинаковый знак со свободным членом bi, определить отношение bi/аij. Значение может быть равно нулю. Строку с минимальным значением bi/аij выбрать в качестве разрешающей.

Для рассматриваемого примера и в качестве разрешающей принимаем строку y3.

Разрешающим элементом принимается элемент, принадлежащий разрешающим столбцу и строке.

3 Заполнить нижние правые части ячеек симплекс-таблицы по следующим правилам:

1) ячейку разрешающего элемента заполнить , где –разрешающий элемент;

2) ячейки разрешающей строки заполнить элементами, стоящими в этих ячейках, умноженными на ;

3) ячейки разрешающего столбца заполнить элементами, стоящими в этих ячейках, умноженными на минус ;

4) выделить в разрешающей строке все верхние числа, а в разрешающем столбце – все нижние числа;

5) все остальные ячейки заполнить произведением выделенных чисел, находящихся в той же строке и в том же столбце, в которых расположена данная ячейка.

Таблица 1 преобразована в таблицу 2.

 

Таблица 2

  x1 y3
  Свободныйчлен x1 x2 x3
E -2
y1 -1 -1
y2 -5 -2 -1
y3
y4

 

4 Перейти к следующей симплекс-таблице.

В новой симплекс-таблице:

1) поменять местами обмениваемые переменные;

2) в разрешающих строке и столбце записать в верхней левой части каждой ячейки число, стоящее в нижней правой части данной ячейки;

3) в остальных ячейках записать в верхней левой части сумму двух чисел, стоящих в каждой ячейке.

Новая симплекс-таблица представлена в таблице 3 (левые верхние части ячеек).

 

 

Таблица 3

  x3 y2
  Свободныйчлен y3 x2 x3
E -1
y1 -1
y2 -1 -2 -2 -1 -1
x1
y4 -1

 

5 Проверить признаки.

Если признак 2 выполняется, полученное решение является допустимым. В противном случае проверяется признак 1. Если признак 1 выполняется, то обмен переменных повторяется ещё раз. В противном случае допустимое решение получено быть не может.

Из таблицы 3 видно, что признак 2 не выполняется, а признак 1 выполняется.

Повторяем обмен переменных.

Результаты повторного обмена переменных представлены в таблице 4. Признак 2 выполняется и значения в таблице 4 являются допустимым решением рассматриваемого примера.

 

Таблица 4

  Свободный член y3 x2 y2
E
y1
x3 -2 -2 -1
x1
y4

 

Из таблицы 4 следует, что x1=2; x3=1; y1=2; y4=1; y3=x2=y2=0; E=3 (см. столбец свободного члена).

Этап 4. Проверить наличие оптимального решения, то есть ограниченность целевой функции.

Признак 3а. Целевая функция имеет минимальное значение (ограничена снизу), если на каждой итерации в каждом столбце, в строке целевой функции которого находится положительный элемент, есть хотя бы один положительный элемент.

Признак выполняется для таблиц 2; 3; 4.

Признак 3б. Целевая функция имеет максимальное значение (ограничена сверху), если на каждой итерации в каждом столбце, в строке целевой функции которого находится отрицательный элемент, есть хотя бы один положительный элемент.

Этап 5. Найти оптимальное решение.

Признак 4а. Целевая функция имеет максимальное значение в том случае, когда в строке целевой функции все элементы, кроме свободного члена, который не рассматривается, положительные.

Признак 4б. Целевая функция имеет минимальное значение в том случае, когда в строке целевой функции все элементы, кроме свободного члена, который не рассматривается, отрицательные.

Признак 4в. Если в строке целевой функция все элементы, кроме свободного члена, который не рассматривается, одного знака и при этом есть хотя бы один нулевой элемент, то полученное нулевое решение является альтернативным.

Последнее означает, что есть и другой набор значений переменных, при которых целевая функция имеет такое же оптимальное значение.

Признак 4б для симплекс-таблицы 4 не выполняется. В этом случае продолжается обмен переменных так же, как при поиске допустимого решения, за исключением: разрешающим принимается столбец, в строке целевой функции которого находится элемент, не соответствующий по знаку проверяемому признаку.

Очередные симплекс-таблицы для рассматриваемого примера представлены в таблицах 5-7.

В таблице 7 признак 4б выполняется и полученное решение является оптимальным (в смысле минимума целевой функции). При x1=3/2; x3=2; y1=1/2; y3=1/2; x2=y4=y2=0; min E=1.

 

Таблица 5

 
 

 

 


x2

y4
  Свободныйчлен y3 x2 y2
E -3/2 -3 -3/2 -3/2
y1 -1/2 -1 -1/2 -1/2
x3 1/2 -2 -2 1/2 -1 1/2
x1 -1/4 -1/2 -1/4 -1/4
y4 1/4 1/2 1/4 1/4

 

Таблица 6

 
 

 

 


y3

x2
  Свободныйчлен y3 y4 y2
E 3/2 -1/2 -2 -3/2 -1/2 -1/2 -1/2
y1 3/2 -1 -4 -1/2 -1 1/2 -1
x3 3/2 1/2 -1 1/2 1/2 -1/2 1/2
x1 7/4 -1/4 1/2 -1 -1/4 -1/4 -1/4 -1/4
x2 1/4 1/2 1/2 1/4 1/2 1/4 1/2

 

Таблица 7

  Свободный член x2 y4 y2
E -2 -2 -1
y1 1/2 -4 -3/2 -1/2
x3
x1 3/2 -1 -1/2 -1/2
y3 1/2 1/2 1/2

 

 



<== предыдущая лекция | следующая лекция ==>
Введение | Иерархическая модель


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.883 сек.