- •Учреждение образования белорусский государственный университет информатики и электроники
- •Рабочая программа
- •Тема 9. Применение нелинейного программирования в задачах организации и планирования связи.
- •Тема 10. Динамическое программирование в электросвязи.
- •Тема 11. Сетевые методы планирования и управления.
- •I. Основы оптимизации управленческих решений
- •II. Использование методов линейного программирования в задачах связи
- •III. Транспортная задача линейного программирования в задачах связи
- •IV. Использование методов линейного программирования дня построения графиков работы на предприятиях связи
- •V. Нелинейное програмирование. Одномерный поиск.
- •VI. Методы многомерного поиска
- •VII динамическое программирование
- •Лабораторная работа n 4
- •Метод равномерного поиска
- •Метод поразрядного приближения
- •Метод последовательного перебора
- •Поиск минимума функции одной переменной методом квадратичной параболы
- •Минимизация функции методом Квадратичной интерполяции-экстраполяции
- •Метод пауэлла
- •Литература.
- •3.Построение опорного плана
- •3.1. Метод северо-западного угла.
- •3. 2. Метод наименьшей стоимости.
- •3.3. Метод Фогеля.
- •4.Оптимизация задачи методом потенциалов.
- •Для всех пустых клеток проверим критерий оптимальности:
- •Литература.
II. Использование методов линейного программирования в задачах связи
2.1. Задача линейного программирования
Под словом "программирование" здесь и в дальнейшем будем понимать не написание программы, а составление алгоритма, планирование. Основные идеи линейного программирования возникли во время войны в связи с поиском оптимальных стратегий при ведении военных операций. С той поры они начали широко использоваться в различных сферах человеческой деятельности, в том числе и в связи. Этими методами можно решить многие (хотя и не все) задачи, связанные с эффективным использованием ограниченных ресурсов.
В общем виде задача линейного программирования состоит в максимизации (или минимизации) линейной функции
F=c1x1+c2x2+…+cnxn
при условии, что переменные xi имеют линейные ограничения вида
a11x1+a12x2+…+a1nxn ≤ (=, ≥) b1
a21x1+a22x2+…+a2nxn ≤ (=, ≥) b2
………………………………….
am1x1+am2x2+…+amnxn ≤ (=, ≥) bm
и xi ≥0.
Значения bi, cj, aij предполагаются известными.
Существуют и другие формы записи задачи линейного программирования. Очень часто некоторые или все ограничения записываются в форме неравенств. Однако независимо от формы записи задача линейного программирования состоит из двух составных частей: формирования линейной целевой функции и записи ограничений, записанных в виде линейных равенств или неравенств.
Задача линейного программирования может решаться с помощью ряда методов, носящих явно выраженный алгоритмический характер, что позволяет решать ее с помощью ЭВМ. Задачи меньшего объема можно решать теми же методами вручную с применением калькуляторов.
При решении задач линейного программирования можно выделить три основных этапа: первый - составление исходного варианта, второй - анализ полученного решения, отыскание в нем признаков неоптимальности, третий - составление нового решения, более близкого к оптимальному. Затем вновь переходят ко второму этапу. Таким образом, второй и третий этапы все время повторяются, а первый является
подготовительным.
Существует несколько методов решения задач линейного программирования. Одним из них является графический.
2.2. Графический метод
Графический метод решения задач линейного программирования является наиболее простым и наглядным. Проиллюстрируем этот метод
на примере.
Имеется 14 каналов радиорелейной связи и 10 каналов тропосферной. По ним необходимо передать информацию трех видов: А, Б и В. Причем информация А=300 условных единиц, Б=3000, В=5000 (под информацией можно понимать и число телефонных разговоров, передачу ' данных и пр.). Возможности каналов следующие:
|
А |
Б |
В |
Тропосферная связь |
90 |
-- |
300 |
РРС |
30 |
1000 |
1200 |
Затраты на обслуживание одного канала РРС - 1,5 тыс. рублей, а тропосферной связи - 2,5 тыс. рублей.
Требуется отыскать задействованное количество каналов обоих видов, необходимое для передачи требуемой информации, чтобы стоимость эксплуатации была минимальной.
Решение.
Обозначим через x1 количество каналов тропосферной связи, а через x2 - количество каналов радиорелейной связи. Тогда функцию цели можно записать
F=2.5x1+1.5x2
Ограничения можно записать в следующем виде:
90x1+30x2≤300
x1≥0, 1000x2 ≤3000,
x3≥0, 300x1+1200x2 ≤5000,
x1≤10, x2≤14
Построим область допустимых значений. Поскольку точки, удовлетворяющие линейному неравенству, образуют полуплоскость с границей, определяемой соответствующим уравнением, преобразуем неравенства ограничений в равенства:
x1=10, x2=14
90x1+30x2=300
1000x2 =3000,
300x1+1200x2 =5000,
Каждое из этих уравнений изобразим прямой линией на рис.2.1. Исходя из условий задачи любая точка, расположенная между этими прямыми линиями, представляет собой допустимое решение, так как удовлетворяет всем неравенствам, составляющим систему ограничений.
Построим теперь на этом же рисунке целевую функцию. Для этого произвольно предположим, что расходы на эксплуатацию составили 4,5 тыс. руб. (эта произвольная цифра нужна для того, чтобы построить по двум точкам прямую). Как видно из рис. 2.1, прямая эта не пересекла область допустимых значений. Это говорит о том, что в данной задаче невозможно добиться таких расходов. Теперь предположим, что расходы составили 6 тыс. руб. Новая прямая прошла параллельно первой и несколько приблизилась к области допустимых значений (ОДЗ), по-прежнему не пересекая ее. Значит, расходы будут еще выше. Перенесем параллельно двум построенным прямым прямую до касания с первой точкой ОДЗ. Эта точка и будет оптимальной. Т.е. для того чтобы передать с наименьшими затратами требующуюся информацию, необходимо взять 2 канала первого типа и 4 канала второго типа. Стоимость в этом случае будет равна
2,5*2 + 1,5*4 = 11 тыс. руб.
2.3. Решение задач линейного программирования симплекс-методом
Использование графического способа удобно только при решении заданий линейного программирования с двумя переменными. При большем числе переменных необходимо применение алгебраического аппарата. В этой ситуации используется общий метод решения задач ЛП, называемый симплекс-методом.
Симплекс-метод носит итерационный характер. Это значит, что однотипные вычислительные процедуры в определенной последовательности повторяются до тех пор, пока не будет получено оптимальное решение.
При использовании симплекс-метода целевая функция и ограничения на
Рис. 2.1
переменные должны быть представлены в так называемой стандартной форме. При стандартной форме линейной модели:
1) все ограничения записываются в виде равенств с неотрицательной правой
частью;
2) значения всех переменных модели должны быть неотрицательны;
3) целевая функция максимизируется или минимизируется.
Исходное ограничение, записанное в виде неравенства, можно представить в виде равенства, прибавляя некоторую переменную к левой части ограничения. Например, в левую часть исходного ограничения
2x1+5x2+3x3≤6
вводится переменная xu>0, в результате чего исходное неравенство обращается в равенство
2x1+5x2+3x3 +x4=6
Если правая часть равенства отрицательна, то, умножая обе части на -1, ее можно сделать неотрицательной.
Максимизацию функции F всегда можно заменить минимизацией функции -F и наоборот.
Например,
Max F=7x1+x2+5x3
можно заменить
Min (-F) =-7x1-x2-5x3
Если переменная, входящая в ограничения, неограниченна по знаку, то такую переменную можно представить как разность двух положительных переменных:
x1=x1'-x1'', x1’≥0, x1'' ≥0
Пример: требуется минимизировать функцию
F=3x1+4x2
при условии
x1+x2=10
-2x1+3x2≤-5
7x1-4x2≤6
x2≥0
x1 не ограничена по знаку.
Для решения задачи неравенства превратим в равенства путем добавления новых переменных, а переменную x1 представим как разность двух положительных переменных:
Min F=3 x1'-3x1''+4x2
x1'-x1''+x2=10,
2x1'-2x1''-3x2-s1=5,
7x1'-7x1''-4x2+s2=6,
x1', x1'', x2, s1, s2 ≥0
Общую идею симплекс-метода можно проиллюстрировать на примере.
Пусть требуется максимизировать функцию
F=3x1+2x2
при ограничениях
x1+2x2≤6,
2x1+x2≤8,
-x1+x2≤1,
x2≤2; x1, x2 ≥0.
Приведенная линейная модель может быть сведена к стандартной форме
Max F=3x1+2x2+0x3+0x4+0x5+0x6
при ограничениях
x1+2x2+x3 =6,
4x1+2x2 +x4 =8,
-x1+ x2 +x5 =1,
x2 +x6=2
x1, x2, x3, x4, x5, x6 ≥0.
На рис.2.2 представлено пространство решений данной задачи. Каждую точку этого пространства можно определить c помощью переменных, входящих в модель стандартной формы. Например, при x3=0 первое ограничение принимает вид равенства 2x1+4x2=12 , которое можно представить прямой 3-4.
Поскольку стандартная модель содержит четыре уравнения и шесть неизвестных, в каждой из экстремальных точек две переменные (=6-4) должны иметь нулевые значения. Например, в точке 1 – x1 и x2 равны нулю, в точке 2 – x4 и x2, в точке 3 – x3 и x4. Можно заметить, что экстремальные точки отличаются только одной переменной Переменные, имеющие
Рис 2.2
отличное от нуля значение, называются базисными, остальные – небазисными переменными.
Каждую последующую экстремальную точку можно определить путем замены одной из текущих небазисных переменных текущей базисной переменной.
Алгоритм симплекс-метода состоит из следующих шагов.
Шаг 1. Используя линейную модель стандартной формы, определяют
начальное допустимое базисное решение.
Шаг 2. Из числа текущих небазисных переменных выбирается одна, которая включается в новый базис. Увеличение этой переменной должно обеспечить улучшение значения целевой функции. Затем осуществляется переход к следующему шагу.
Шаг 3. Из числа базисных переменных выбирается одна, которая должна принять, нулевое значение (т.е. стать небазисной) при введении в состав базисных новой переменной.
Шаг 4. Находится новое базисное решение, соответствующее новым составам базисных и небазисных переменных.
В нашем примере точку I можно использовать как начальное допустимое решение. В этой точке x1=x2=0 и x3=6, x4=8, x5=1, x6=2, а функция F=0.
Преобразовав уравнение целевой функции так, чтобы его правая часть стала равна нулю
F-3x1+2x2=0
можно убедиться, что правые части уравнений целевой функции и ограничений полностью характеризуют начальное решение.
Полученные результаты удобно представить в виде табл.2.1.
Первый столбец этой таблицы содержит переменные пробного базиса x3, x4, x5, x6, значения которых приведены в последнем столбце.
Является ли полученное решение оптимальным? Нет. Об этом свидетельствует наличие в строке целевой функции отрицательных чисел.
Таблица 2.1
Базисные переменные |
F |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
Решение |
x3 |
0 |
1 |
2 |
1 |
0 |
0 |
0 |
6 |
x4 |
0 |
2 |
1 |
0 |
1 |
0 |
0 |
8 |
x5 |
0 |
-1 |
1 |
0 |
0 |
1 |
0 |
1 |
x6 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
2 |
F |
1 |
-3 |
-2 |
0 |
0 |
0 |
0 |
0 |
Это эквивалентно наличию положительных коэффициентов при этих переменных в исходной целевой функции. Поскольку речь идет о максимизации, значение F может быть увеличено при увеличении как x1, так и x2. Если бы в отроке целевой функции не было отрицательных чисел, это означало бы, что функция цели уже не пересекает оси в области положительных решений.
А в качестве переменной, включаемой в базис, выберем x1, так как коэффициент при ней больше и функция цели изменяется сильнее. Исключаемая переменная выбирается из совокупности базисных переменных x3, x4, x5, x6. Этой переменной является та, которая первой обращается в нуль при увеличении включаемой переменной вплоть до значения, соответствующего смежной экстремальной точке. В нашем случае переменная x1 достигает максимально допустимого значения, равного 4, в точке 2, при этом исключаемой из базиса переменной становится x4.
Отношение, фиксирующее искомую точку пересечения и идентифицирующее исключаемую переменную, можно определить прямо из симплекс-таблицы. Для этого в столбце, соответствующем вводимой переменной x, вычеркиваются отрицательные и нулевые элементы ограничений. Затем вычисляются отношения постоянных, фигурирующих в правых частях этих ограничений, к оставшимся элементам столбца, соответствующего вводимой переменной x1. Исключаемой переменной будет та переменная базиса, для которой указанное выше отношение минимально.
Указанная процедура иллюстрируется табл.2.2.
Таблица 2.2
Базисные переменные |
F |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
Решение |
x3 |
0 |
1 |
2 |
1 |
0 |
0 |
0 |
6 (6/1=6) |
x4 |
0 |
2 |
1 |
0 |
1 |
0 |
0 |
8 (8/2=4) |
x5 |
0 |
-1 |
1 |
0 |
0 |
1 |
0 |
1 |
x6 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
2 |
F |
1 |
-3 |
-2 |
0 |
0 |
0 |
0 |
0 |
Столбец симплекс-таблицы, ассоциируемый с вводимой переменной, будет называть ведущим столбцом. Строку, соответствующую исключаемой переменной, назовем ведущей строкой, а элемент таблицы, находящийся на пересечении ведущего столбца и ведущей строки, будем называть ведущим элементом.
Все элементы новой ведущей строки получаются путем деления элементов предыдущей ведущей отроки на ведущий элемент. Все остальные уравнения получаются по правилу
(Новое уравнение) = (Предыдущее уравнение) -
-(Коэффициент ведущего столбца предыдущего уравнения)*
*(Новая ведущая строка).
В новом ведущем уравнении ведущий элемент становится равным 1, а все остальные коэффициенты, фигурировавшие в ведущем столбце, становятся равными 0.
Составим по этому правилу новую симплекс-таблицу. Новая ведущая строка:
|
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
Решение |
0 |
1 |
1/2 |
0 |
1/2 |
0 |
0 |
8/2=4 |
Для строки получим
(
)
-
1
-3
-2
0
0
0
0
0
-
(
)
-
0
3
3/2
0
3/2
0
0
12
(
)
-
1
0
-1/2
0
3/2
0
0
12
Для x3 – уравнения
)
)
(
(
-
0
1
2
1
0
0
0
6
1
-1
-1/2
0
-1/2
0
0
-4
(
)
-
0
0
3/2
1
-1/2
0
0
2
Для x5 – уравнения
-
0
(
(
1
2
1
0
0
0
6
)
)
1
-1
-1/2
0
-1/2
0
0
-4
(
)
-
0
0
3/2
1
-1/2
0
0
2
x6 - уравнение останется таким же, постольку соответствующий коэффициент ведущего столбца равен нулю.
Таким образом, симплекс- таблица примет вид
Таблица 2.3
Базисные переменные |
F |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
Решение |
x3 |
0 |
0 |
3/2 |
1 |
-1/2 |
0 |
0 |
2 (4/3) |
x1 |
0 |
1 |
1/2 |
0 |
1/2 |
0 |
0 |
4 (8) |
x5 |
0 |
0 |
3/2 |
0 |
1/2 |
1 |
0 |
5 (10/3) |
x6 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
2 (2) |
F |
1 |
0 |
-1/2 |
0 |
3/2 |
0 |
0 |
12 |
Из последней таблицы следует, что на очередной итерации в качестве вводимой переменной следует выбрать x2, т.к. коэффициент при этой переменной в F -уравнении равен -1/2. Исключаемой переменной будет x3 , а включаемой – x2 . Новая симплекс-таблица будет иметь вид табл.2.4.
Таблица 2.4
Базисные переменные |
F |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
Решение |
x3 |
0 |
0 |
1 |
2/3 |
-1/3 |
0 |
0 |
4/3 |
x1 |
0 |
1 |
0 |
-1/3 |
2/3 |
0 |
0 |
10/3 |
x5 |
0 |
0 |
0 |
-1 |
1 |
1 |
0 |
3 |
x6 |
0 |
0 |
0 |
-2/3 |
1/3 |
0 |
1 |
2/3 |
F |
1 |
0 |
0 |
1/3 |
4/3 |
0 |
0 |
38/3 |
В новом базисном решении x1=10/3 и x2=4/3. Значение F увеличилось с 12 (предыдущая таблица) до 38/3. Этот прирост целевой функции обусловлен увеличением x2 от 0 до 4/3, так как из F -строки предыдущей симплекс-таблицы следует, что возрастанию данной переменной на единицу соответствует увеличение функции на 1/2.
Последняя симплекс-таблица соответствует оптимальному решению задачи, так как в F -строке ни одна из небазисных переменных не фигурирует c отрицательным коэффициентом. На этом и завершаются вычислительные процедуры симплекс-метода.
В случае минимизации функции цели в алгоритме необходимо изменить только условие оптимальности: в качестве новой базисной переменной следует выбрать ту переменную, которая в F -строке имеет наибольший положительный коэффициент.
2.4. Частные случаи использования симплекс-метода.
Рассмотрим пример. Требуется минимизировать функцию
F=4x1+x2
при ограничениях
3x1+x2=3,
4x1+3x2≥6,
x1+2x2≤4,
x1, x2 ≥0
Запишем задачу в стандартной форме
3x1+ x2 =3,
4x1+3x2-x3 =6,
x1+2x2 +x4=4,
Таким образом, имеются три уравнения и четыре неизвестных. В отличие от случая, когда каждое уравнение содержит остаточную переменную, в заданном случае уже нельзя быть уверенным в том, что при нулевом значении одной из переменных все базисные переменные будут неотрицательными. В этом случае используется метод искусственных переменных.
Искусственные переменные вводятся только для того, чтобы получить базисное решение.
В нашем примере в первом и втором уравнениях нет переменных, выполняющих роль остаточных. Поэтому введем в каждое из этих уравнений по одной искусственной переменной (R1 и R2):
3x1+x2 + R1 =3,
4x1+3x2-x3 + R2 =6,
x1+2x2 +x4=4,
За использование этих переменных в составе целевой функции нужно ввести штраф, приписывая им большой коэффициент М.
Тогда функция цели примет вид:
Min F=4x1+x2+MR1+MR2.
Начальное допустимое решение при этом будет
R1=3, R2=6 и x4=4.
Т.к. мы имеем дело с описанием минимума, а переменные R1 и R2 введены в функцию цели с большим коэффициентом М, то метод минимизации должен привести к тому, что в оптимальном решении они обратятся в ноль.
Для построения симплекс-таблицы выразим искусственные переменные через небазисные:
R1=3-3x1-x2
R2=6-4x1-3x2+x3
F=4x1+x2+M (3-3x1-x2) +M (6-4x1-3x2+x3) = (4-7M) x1+ (1-4M) x2+Mx3+9M
Тогда первая симплекс-таблица будет иметь вид
Базисные переменные |
x1 |
x2 |
x3 |
|
|
x4 |
Решение |
F |
-4+7M |
-1+4M |
-M |
0 |
0 |
0 |
9M |
R1 |
3 |
1 |
0 |
1 |
0 |
0 |
3 |
R2 |
4 |
3 |
-1 |
0 |
1 |
0 |
6 |
x4 |
1 |
2 |
0 |
0 |
0 |
1 |
4 |
Далее решение ведется обычным образом. Оптимальному решению соответствует точка x1=2/5, x2=9/5, где F=17/5.
Отметим, что при максимизации F штраф М необходимо брать c обратным знаком.
Рассмотрим другой пример.
Max F=3x1+9x2
при условии
x1+4x2≤8,
x1+2x2≤4,
x1, x2 ≥0
Введя остаточные переменные x3 и x4, построим симплекс-таблицу
|
x1 |
x2 |
x3 |
x4 |
|
F |
-3 |
-9 |
0 |
0 |
0 |
x3 |
1 |
4 |
1 |
0 |
8 |
x4 |
1 |
2 |
0 |
1 |
4 |
x3- выводится, x2 вводится
На следующем шаге
|
x1 |
x2 |
x3 |
x4 |
|
F |
-3/4 |
0 |
9/4 |
0 |
18 |
x1 |
1/4 |
1 |
1/4 |
0 |
2 |
x4 |
1/2 |
0 |
-1/2 |
1 |
0 |
x4- выводится, x1 - вводится
Получим
|
x1 |
x2 |
x3 |
x4 |
|
F |
0 |
0 |
3/2 |
3/2 |
18 |
x2 |
0 |
1 |
1/2 |
-1/2 |
2 |
x1 |
1 |
0 |
-1 |
2 |
0 |
Заметим, что после двух итераций значение функции цели не уменьшилось (18). Т.е. налицо зацикливание. Что же это означает? Рассмотрим рис.2.3. Через точку оптимума проходят три прямые, а задача содержит только две переменные. Отсюда следует вывод, что одно из ограничений лишнее.
Max F=2x1+4x2
при условии
Рис. 2.3
Рис. 2.4
Рис. 2.5
x1+2x2≤5,
x1 + x2≤4,
x1, x2 ≥0
Рис. 2.4 иллюстрирует суть дела. Целевая функция параллельна одной из прямой ограничений. Это означает, что задача имеет бесконечное множество решений.
Может быть, случай, когда решение отсутствует вообще.
Пример:
Max F=3x1+2x2
при условии
2x1+ x2≤2,
x1+4x2≥12,
x1, x2 ≥0.
Рис.2.5 хорошо иллюстрирует суть дела.
