Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

моделирование / Modul1._Modeli_matematicheskogo_programmirovanija

.pdf
Скачиваний:
21
Добавлен:
10.04.2015
Размер:
760.22 Кб
Скачать

МОДЕЛИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ

ВВЕДЕНИЕ

Математического программирование представляет собой математическую дисциплину, изучающую экстремальные задачи и методы их решения. Термин «программирование» в данной дисциплине используется в смысловом значении «планирование», т.е. составление оптимального плана (программы) действий с использованием математических методов. Содержание математического программирование составляют теория и методы решения задач о нахождении экстремумов функций на множествах, определяемых линейными и нелинейными ограничениями.

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

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

Математическое программирование это область математики, разрабатывающая теорию и численные методы решения задач на экстремум функции.

В данном пособии в сжатой и доступной форме изложен теоретический материал в первую очередь по разделу “Линейное программирование”. Основные теоретические положения наглядно проиллюстрированы большим числом примеров и решенных задач.

1.Общие сведения о математическом программировании.

Задачи математического программирования находят применение в различных областях человеческой деятельности, где необходим выбор одного из возможных образов действий(программа действий), например при решении проблем управления и планирования производственных процессов, работы различных коммерческих или финансово-кредитных учреждений, при проектировании, в перспективном планировании, в военном деле и т.д. Значительное число задач, возникающих в обществе, связано с управляемыми явлениями, т.е. с явлениями, регулируемыми на основе сознательно принимаемых решений. Термин «программирование» предполагает наличие трех смысловых значений из которых наиболее распространенным в настоящее время является третье из перечисленных:

1)Планирование(составление плана или программы действий);

2)Процесс нахождения оптимального плана (программы) с использованием математических методов(линейное, целочисленное, динамическое, квадратичное и т.д.);

3)Составление программ для ЭВМ.

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

Математическое программирование.

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

Содержание математического программирования составляют теория

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

Математическое программирование является одним из разделов науки об исследовании операций. Теория и методы решения этих задач как раз и составляют содержание математического программирования.

И наконец 4 этап – составление результатов вычислений полученных на 3м этапе с моделируемым объектом, т.е. экспертная проверка результатов (критерий практики).

На этом этапе устанавливается степень адекватности модели и моделируемого объекта в пределах точности исходной информации.

1.1.Основные направления математического программирования.

В математическом программировании можно выделить два направления:

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

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

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

В обобщенном виде математическая постановка экстремальной задачи, решаемой в математическом программировании, состоит в определении

наибольшего или наименьшего значения целевой функции.

f ( x1 , x2 , ..., x j , ..., xm ) ( j

1, m )

 

 

При условиях

 

 

 

g i ( x1 , x2 , x j , xm ) bi (i 1, n )

g

i

b

 

где f и

- заданные функции, а i – некоторые

действительные числа.

 

 

 

В зависимости от свойств функций f и g i математическое программирование можно рассматривать, как ряд самостоятельных дисциплин (разделов), занимающихся изучением и разработкой методов решения определенных классов задач. Традиционно в математическом программировании выделяют следующие разделы:

Линейное программирование – целевая функция линейна, а множество на котором ищется экстремум целевой функции, задается системой линейных равенств и неравенств.

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

Так в линейном программировании появляется класс транспортных задач.

Нелинейное программирование – не линейны целевая функция и ограничения. Нелинейное программирование принято подразделять следующим образом:

а) - выпуклое программирование – когда выпукла целевая функция(если рассматривается задача ее минимизации) и выпукло множество на котором решается экстремальная задача;

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

Отдельными классами задач математического программирования являются

задачи:

-целочисленного;

-параметрического; программирования

-дробно-линейного;

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

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

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

1.2. Математические модели задач планирования и управления.

Общая постановка задач оптимизации

Математическое программирование - это область математики, разрабатывающая теорию и численные методы решения задач на экстремум функции многих переменных с ограничениями на область изменения этих переменных.

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

1)ввести переменные величины ( x1 , x2 , ..., xn ) числовые значения которых однозначно определяют одно из возможных состояний исследуемого явления;

2)выразить взаимосвязи (присущие исследуемому параметру) в

виде математических ограничений (уравнений, неравенств), налагаемых на неизвестные величины. Эти соотношения определяют систему ограничений задачи, которая образует область

допустимых решений (область экономических возможностей). Решение (план) Х= ( x1 , x2 , ..., xn ) , удовлетворяющее системе ограничений задачи, называют допустимым (базисным);

3)записать критерий оптимальности в форме целевой функции z = z(X), которая позволяет выбрать наилучший вариант из множества возможных;

4)составить математическую формулировку задачи отыскания экстремума целевой функции при условии выполнения ограничений, накладываемых на переменные. Допустимый план, доставляющий целевой функции экстремальное значение, называется оптимальным и обозначается Xopt или Х*.

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

Пример 1. Пошивочный цех изготавливает три вида обуви из поступающих из раскройного цеха заготовок. Расход заготовок на пару обуви каждого вида, запасы заготовок, а также прибыль, получаемая фабрикой при реализации пары обуви каждого вида, заданы в табл. 1.1. Сколько пар обуви каждого вида следует выпускать фабрике для получения максимальной прибыли при условии, что заготовки II вида необходимо израсходовать полностью?

Т а б л и ц а 1.1

Обувь вида

 

А

В

С

Запасы

 

заготовок, ед.

 

 

 

 

Виды

 

 

 

 

заготовок

 

 

 

 

I

1

2

-

12

II

1

-

1

4

III

2

2

-

14

Прибыль, ден.

3

2

1

 

 

ед.

 

 

 

 

 

Решение. Чтобы сформулировать эту задачу математически, обозначим через x1 , x2 , x3 ) количество пар обуви соответственно видов А, В и С, которое необходимо выпускать фабрике для получения максимальной прибыли. Согласно условиям задачи прибыль от выпуска обуви вида А составит 3 x1 ден. ед., от вида В −2x2 ден.ед., от вида С −x3 ден. ед. Следовательно, целевая функция прибыли z выразится формулой

z=3 x1+2 x2+x3→max

Поскольку переменные x1, x2 и x3 определяют количество пар обуви, они не могут быть отрицательными, т. е.

x1≥0, x2≥0, x3≥0

Согласно условиям задачи на изготовление всей обуви будет использовано x1 +2 x2 заготовок 1-го вида. А так как запасы заготовок 1-го вида составляют 12 штук, то должно выполняться неравенство x1+2 x2≤12

На изготовление всей обуви будет использовано x1+x3 заготовок 2-го вида. Но так как по условию задачи запасы заготовок 2-го вида необходимо израсходовать полностью, то должно выполняться равенство x1+x3= 4.

Аналогично для заготовок 3-го вида должно выполняться неравенство 2 x1+2x2≤14

Следовательно, система ограничений будет иметь вид

x1

2 x 2

12

( количество

заготовок

вида

I )

x1

 

x 3 4

( количество

заготовок

вида

II )

2 x1

2 x 2

14

( количество

заготовок

вида

III )

Итак, задача состоит в том, чтобы найти неотрицательные знчения x1, x2 и x3 , удовлетворяющие системе ограничений и максимизирующие целевую функцию z.

1.3.Специфика задач математического программирования.

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

И наиболее сильный метод решения экстремальных задач в классическом анализе – метод множителей Лагранжа – разработан для случая когда множество условий задается системой уравнений, а не системой неравенств.

Другой специфической особенностью является то, что в практических задачах число переменных и ограничений столь велико, что если просто перебирать все точки «подозреваемые в экстремальности», например все угловые точки множества условий, то никакая современная ЭВМ не в состоянии справится с этой задачей в разумные сроки.

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

Заметим, что наименование предмета – математическое программирование – связано с тем, что целью решения задач является выбор программы действий.

2. ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ

2.1. Формы записи задач линейного программирования.

2.1.1. Каноническая форма записи задач линейного программирования

z

c1 x1

c2 x2

...

cn xn

 

max

(целевая функция), (1.1)

 

 

 

 

 

 

 

 

 

 

a11 x1

a12 x 2

...

a1n x n

 

b1

 

a 21 x1

a 22 x 2

...

a 2 n x n

 

b 2

 

.......... .......... .......... .......... ........

 

a m 1 x1

a m 2 x 2

...

a mn x n

 

b m (система ограничений), (1.2)

 

 

 

 

 

 

 

 

 

 

 

x j

0, j

1, n

(ограничения на переменные). (1.3)

 

 

 

 

 

 

 

a11

a12

...

a1n

 

 

 

 

A

a 21

a 22

...

a 2 n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

...

 

...

 

...

 

 

 

Здесь

a m 1

a m 2

 

a mn

- матрица коэффициентов системы ограничений

 

 

 

 

 

 

 

C (c1 , c2 ,..., cn ) - матрица-строка коэффициентов целевой функции;

b1

Bb 2

b n

- матрица-столбец свободных членов;

 

x1

x

2

X

 

x n

- матрица-столбец неизвестных.

 

Тогда каноническую форму записи задачи ЛП (1.1)-(1.3) можно представить в следующем матричном виде, эквивалентном первоначальному:

Z CX

max,

(1 .4 )

AX

B ,

(1 .5)

X

0 .

(1 .6 )

где О — нулевая матрица-столбец той же размерности, что и матрица Х.

Замечание. Не ограничивая общности, можно полагать, что свободные члены неотрицательны,

т.е. bi

 

 

0, i

 

1, m

(иначе ограничительные уравнения можно умножить на (-1)).

2.1.2. Симметричная форма записи задач линейного программирования

 

n

c

j

x

j

max,

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z

 

 

 

 

 

 

 

z

c j

, x j

min,

 

 

 

 

 

 

 

 

 

 

 

 

j

1

 

 

 

 

 

 

 

 

 

 

j 1

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

a ij x j

 

 

bi , i 1, m ,

 

 

a ij x j

bi , i 1, m ,

j

1

 

 

 

 

 

 

 

 

 

 

j

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x i

0, j 1, n.

 

 

 

 

x i

0, j 1, n.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.1.3.Общая задача линейного программирования

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

z

 

c j

x j

 

 

max(min),

(1 .7 )

 

 

j

1

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a ij x j

bi , i 1, m1 ,

(1 .8)

 

j

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a ij x j

bi , i m1

1, m 2 ,

(1 .9 )

 

j

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a ij x j

bi

, i

m 2

1, m ,

(1 .10 )

 

j

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x j

0,

j

1, n1 ,

 

 

 

(1 .11 )

 

 

 

 

 

 

 

 

 

x j

произвольн

 

ого

знака , j

n1 1, n. (1 .12 )

2.1.4. Приведение задачи к каноническому виду

Задачи ЛП могут представляться по-разному, но все их можно привести к каноническому виду, в котором целевая функция z должна быть максимизирована, а все ограничения должны быть заданы в виде равенств с неотрицательными переменными. Приведем произвольную задачу ЛП (1.7)—(1.12) к каноническому виду, используя следующие правила:

минимизация целевой функции z равносильна максимизации целевой функции

(-z). Так, если целевая функция исходной задачи исследуется на минимум, т.е. z

min , то

можно рассмотреть функцию с противоположным знаком, которая будет стремиться к

максимуму:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z

max;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ограничения-неравенства вида a i1 x1

a i 2 x 2 ...

a in x n

 

 

bi

преобразуются в

ограничения-равенства путем прибавления к левым частям дополнительных (балансовых)

неотрицательных переменных

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x n 1

0 : ai1 x1

 

ai 2 x2 ...

ain xn

xn

1

bi ,

i

1, m1 ;

 

ограничения-неравенства вида

 

 

 

 

 

 

 

 

 

 

 

 

a i1 x1

a i 2 x 2

...

a in x n

bi

преобразуются в ограничения-равенства путем вычитания

от левых частей дополнительных неотрицательных переменных

x n 1

0 :

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a i1 x1

a i 2 x 2

...

a in x n

x n

1

bi ,

i

m1

1, m 2 ;

 

 

 

дополнительные переменные в целевую функцию вводятся с коэффициентами, равными нулю:

c n 1 0, i 1, m 2 ;

переменные любого знака заменяются разностью двух других неотрицательных переменных:

x j

x 1j

x 2j , где

x 1j

0, x 2j

0 .

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

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

z

3 x1

2 x 2

 

x 3

max,

x1 2 x 2

 

 

12 ,

 

 

x1

 

x 3

4,

 

 

 

2 x1

2 x 2

 

14 ,

 

 

 

 

 

 

 

 

x j

0,

j

1,3.

 

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

первого и третьего ограничений по одной дополнительной неотрицательной переменной ( x 4 и

Соседние файлы в папке моделирование