Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций кп.doc
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
4.41 Mб
Скачать

1. Линейное программирование

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

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

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

Различные задачи оптимального управления и планирования на железнодорожном транспорте можно свести к моделям ЛП.

ЛП позволяет изучать задачи нахождения оптимального (наилучшего) значения линейной целевой функции F при линейных ограничениях на параметры управления - переменные задачи.

Общей задачей ЛП (ОЗЛП) называется задача, состоящая в определении оптимального (max или min, одним словом - extr) значения F целевой функции: F = (1.1)

при условиях (ограничениях):

i =

(1.2)

, (1.3)

где aij , cj , bi - вещественные числа, символ - один из знаков отношений .

Следовательно, в ОЗЛП отыскивается extr целевой функции (1.1) на множестве решений системы равенств и неравенств (1.2) при условии неотрицательности некоторых переменных. Отметим, что требование неотрицательности (1.3) может быть наложено на все переменные (L={1,2,...,n}) или вообще отсутствовать (L=0).

Совокупность чисел X=(x1 , x2 , ... , xn ), удовлетворяющую ограничениям (1.2), (1.3) называют допустимым решением или планом.

План X*=( ), при котором целевая функция принимает

экстремальное значение, называется оптимальным.

Таким образом, при любом плане X оптимальный план X* удовлетворяет условию: F(X*) F(X) или F(X*) F(X).

Не всякая задача ЛП имеет оптимальный план. Это связано с тем, что множество решений D системы ограничений (1.2), (1.3) может быть пустым или форма F на D не ограничена сверху или снизу.

Например: 1. Для ОЗЛП найти max целевой функции F = x1 + x2 при ограничениях:

x 1+x2 3, .

x1 1,

x2 1.

Здесь D=0, поскольку ограничения противоречивы, оптимальный план отсутствует.

2. Для ОЗЛП найти min целевой функции F = x1 + 2x2 при ограничениях:

x 1+x2 2,

-x1+x2 5,

x2 0.

При пара X1= - C, X2 = 0 является планом, однако F не ограничена снизу, поэтому оптимальный план отсутствует.

Среди множества задач ЛП выделяют класс так называемых канонических, или основных задач, в которых находится min F целевой функции (1.1) при ограничениях (1.2), (1.3) где есть =.

Иными словами, в канонической задаче ЛП (КЗЛП) находится min F на множестве решений системы уравнений при неотрицательности всех параметров (переменных) задачи.

Несложными преобразованиями нахождение основных задач ЛП (ОЗЛП) всегда может быть сведено к решению некоторой КЗЛП.

Покажем, как это делается.

1. Прежде всего нахождение max F заменяется нахождением min F,

т.е. max F= - min (-F).

2. Всякое ограничение в задаче ЛП вида

i =1,m

,

заменяется условием - равенством с неотрицательностью новой вспомогательной переменной xn+i , которую следует интерпретировать как остаток, или неиспользованную часть данного ресурса, если исходное ограничение определяет расход некоторого продукта.

(1.4)

i =1,m;

3 . Ограничение вида , i =1,m необходимо преобразовать, так как левая часть этого ограничения не может быть меньше правой. Для обращения исходного неравенства в равенство вычтем из его левой части избыточную переменную xn+ i > 0. В результате имеем:

(1.5)

i =1,m

Замечание. 1. Правую часть равенства всегда можно сделать неотрицательной, умножая обе части на -1. Например, равенство

2x1 + 3x2 -7x3 = -5 эквивалентно равенству -2x1 - 3x2 +7x3 = 5.

2. Знак неравенства изменится на противоположный при умножении обеих частей на -1. Например, можно вместо 2 < 4 записать -2 > -4, неравенство 2x1 - x2 -5 заменить на -2x1 + x2 5.

4. Переменные Xp , на которые не наложены условия неотрицательности, представляются в (1.1) и (1.2) в виде разности неотрицательных величин:

X k=Wk - Vk,

Wk 0 ; Vk 0 .

Важная особенность переменных Wk и V k состоит в том, что при любом допустимом решении только одна из переменных может принимать положительное решение, т.е. если Wk >0, то X k = 0, и наоборот. Это позволяет рассматривать Wk как остаточную переменную, а X k - как избыточную, причем лишь одна из этих переменных может принимать положительное значение.

После всех этих преобразований удобно опять переобозначить Wk на X k , а другие вспомогательные неизвестные заменить на X n+1, X n+2 , ... , X n+t, где t есть сумма количества неравенств в (1.2) и количества переменных без ограничений. Тогда мы получим следующую КЗЛП.

Найти новую линейную форму min F1 (1.6)

при ограничениях:

(1.6*)

(1.6**)

, i= 1, m ; j= 1, n+t

Заметим, что каждому плану X* ( ) (1.7)

задачи (1.1), (1.2), (1.3) можно поставить в соответствие некоторый план:

X * ( ) (1.8)

задачи (1.6), (1.6*), (1.6**), где числа (j= 1, n+t ) получаются по той же схеме, по которой реализовывался переход от ОЗЛП к КЗЛП. Имея план (1.8) для задачи (1.4), (1.5), (1.6) можем получить план (1.7) для (1.1), (1.2), (1.3), элементы которого равны соответствующим элементам (1.8) или их некоторым разностям. Последнее имеет место при наличии в ОЗЛП переменных без ограничений.

Нетрудно убедиться, что кроме полученного взаимно однозначного соответствия между планами ОЗЛП и КЗЛП значение целевой функции F на соответствующих планах одинаковы. Таким образом, оптимальному решению задачи (1.1), (1.2), (1.3) соответствует оптимальное решение (1.6), (1.6*), (1.6**). В этом смысле указанные задачи эквивалентны.

Пример 1.1. Записать в форме КЗЛП следующую ОЗЛП:

Найти max целевой функции F= 3x1 – 2x2 – 5x4 + x5 при ограничениях

2 x1+ x3 - x4 + x5 2,

x1 - x3 + 2x4 + x5 3,

2x2 + x3 - x4 + 2x5 6,

x1 + x4 - 5x6 8.

Решение. В данной задаче требуется найти max F, а система ограничений содержит четыре неравенства. Следовательно, чтобы записать ее в форме КЗЛП нужно:

1. Вместо нахождения max F записать F1 = -F.

2. Перейти от ограничений-неравенств к ограничениям-равенствам.

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

Следовательно, исходная задача может быть записана в форме КЗЛП таким образом:

- минимизировать функцию F= - 3X1 + 2X2 + 5X4 - X5

2 X1+ X3 - X4 + X5 + X6 = 2,

X1 - X3 + 2X4 + X5 + X7 = 3,

2X2 + X3 - X4 + 2X5 +X8 = 6,

X1 + X4 - 5X6 - X9 = 8,

Пример 1.2. записать в форме КЗЛП следующую ОЗЛП. Найти max целевой функции F = X1 + X2 - X3 при ограничениях

2 X1 - X2 - X3 + X4 6,

X1+ 2X2 + X3 - X4 8,

3X1 - X2 + 2X3 + 2X4 10,

- X1+ 3X2 + 5X3 - 3X4 = 15.

.

Решение. В данной задаче требуется найти max F, а система ограничений содержит три неравенства. Следовательно, чтобы записать ее в форме КЗЛП, нужно составить нахождение min F при ограничениях, полученных из исходной задачи добавлением к левым частям каждого из неравенств вида “ дополнительной неотрицательной переменной и вычитанием дополнительных переменных из левых частей каждого из ограничений-неравенств вида “ ” за исключением четвертого уравнения.

Следовательно, исходная задача может быть записана в КЗЛП так:

Найти min F=-X1 + 2X2 - X3 + X4

при условиях

2 X1 - X2 - X3 + X4 + X5 = 6,

X1 + 2X2+ X3 - X4 - X6 = 8,

3X1 - X2 + 2X3+2X4 + X7 = 10,

- X1 +3X2 +5X3 - 3X4 = 15.

.

Пример 1.3 записать в форме КЗЛП следующую ОЗЛП: найти max целевой функции F = X1 + X2 - X3 при ограничениях

X 1 + X2 + X3 7,

2X1 - X2 + X3 2,

X1 - X2 + 5X3 = 8,

X1 0.

Решение. Сначала избавимся от отсутствия условий неотрицательности на переменные Х2 и Х3. Для этого сделаем замены:

X

2 = X2 - X4 , X3 = X3 - X5 , после чего получим, что ..

Тогда исходная задача будет записана в следующей форме:

X 1 + X2 + X3 - X4 - X5 7,

2X1 - X2 + X3 + X4 - X5 2,

X1 - X2 + 5X3 + X4 - 5X5 = 8,

.

и F = - X1 - X2 +X3 +X4 - X5 min .

Введя в систему еще две неотрицательные переменные X6 и X7, избавимся от неравенств и получим следующую КЗЛП:

X 1 + X2 + X3 - X4 - X5 + X6 = 7,

2X1 - X2 + X3 + X4 - X5 + X7 = 2,

X1 - X2 + 5X3 + X4 - 5X5 = 8,

и F = - X1 - X2 +X3 +X4 - X5 min.

Использование матриц дает возможность записать ОЗЛП в компактной форме.

Введем:

1. Матрицу коэффициентов (условий)

A =

2. Вектор параметров

X =

3. Вектор ограничений

B =

4. Вектор цели. C =

Тогда эту задачу можно записать в виде

AX B , (1.9)

X 0 , (1.10)

F = CX extr . (1.11)

З десь Сх означает скалярное произведение векторов С и Х (C·X= ); Ах - произведение матрицы А на вектор Х с компонентами , i=1,m , которые согласно векторному равенству должны равняться соответствующим компонентам вектора В, т.е. ; векторное неравенство Х 0 означает, что каждая компонента вектора Х должна быть неотрицательной.

Теперь ОЗЛП может быть сформулирована так: найти неотрицательный вектор (1.10), удовлетворяющий ограничению (1.9), при котором целевая функция (1.11) обращается в экстремум.

    1. Примеры применения методов линейного программирования

Пример1.4. Небольшая фабрика изготовляет два вида красок: для внутренних (В) и наружных работ (Н). Продукция обоих видов поступает в оптовую продажу. Для производства красок используются два исходных продукта - А и Б. Максимально возможные суточные запасы этих продуктов составляют 6 и 8 т соответственно. Расходы А и Б на 1 т соответствующих красок приведены в табл. 1.1.

Таблица 1.1

Исходный продукт

Расход исходных продуктов (т)

на 1 т краски

Максимально возможный

Запас (т)

Краска Н

Краска В

А

1

2

6

Б

2

1

8

Изучение рынка сбыта показало, что суточный спрос на краску В никогда не превышает спроса на краску Н более, чем на 1 т. Установлено, что спрос на краску Н никогда не превышает 2 т. в сутки.

Оптовая цена краски В - 3 тыс. руб.; краски В - 2 тыс. руб.

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

Построение математической модели (ММ)

Процесс построения ММ для решения поставленной задачи нужно начать с ответов на вопросы:

  1. Для определения каких величин должна быть построена ММ? Другими словами, как идентифицировать (идентификация – отождествление) переменные (искомые величины) данной задачи?

  2. Какие ограничения должны быть наложены на переменные, чтобы выполнить условия, характерные для моделирования системы?

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

Выразим словесно суть проблемы (словесная формулировка задачи):

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

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

Переменные

Так как нужно определить объёмы производства каждого вида краски, то переменными в модели являются:

Х1 - суточный объём производства краски Н, т;

Х2 - суточный объём производства краски В, т.

Целевая функция

Так как стоимость 1 т краски Н равна 3 тыс. руб., суточный доход от её продажи составит 1 тыс. руб.

Аналогично доход от реализации х2 т краски В составит 2 тыс. руб. При допущении независимости объёмов сбыта каждой из красок общий доход равен сумме двух слагаемых - дохода от продажи краски Н и дохода от продажи краски В.

Обозначив общий доход (в тыс. руб.) через F, можем дать следующую математическую формулировку целевой функции:

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

F = 3 х1+2 х2 .

Ограничения

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

Ограничения на расход имеют вид:

это приводит к следующим двум ограничениям:

х1 + 2х2 6 (для А);

1 + х2 8 (для В).

ограничение на величину спроса на продукцию имеет вид:

П ревышение спроса на

к раску В относительно 1 т/сут.

спроса на краску Н

Математически эти ограничения записываются следующим образом:

х2 - х1 1 (соотношение спроса на краску В и краску Н);

х2 2 (максимальная величина спроса на краску В).

Неявное (т.е. подразумеваемое) ограничение заключается в том, что объёмы производства продукции не могут принимать отрицательные значения (т.е. быть меньше нуля). Потребуем выполнения условия неотрицательности переменных, т.е. введём ограничение на знак:

Х2 0 (объём производства краски В);

Х1 0 (объём производства краски Н)

(или х 0).

Итак, ММ можно записать так:

Определить суточные объёмы производства (х2 и х1) краски В и краски Н (в т), при которых достигается

F = 3 х1 + 2 х2 max.

при

x 1 + х2 6,

1 + х2 8,

- х1 + х2 1,

х2 2

х 0

Целевая функция и ограничения - линейные.

Линейность предполагает наличие двух свойств:

  • пропорциональности;

  • аддитивности.

Пропорциональность означает, что вклад каждой переменной в целевую функцию и общий объём потребления соответствующих ресурсов прямо пропорционален уровню этой переменной. Если, например, фирма будет предоставлять скидку покупателям, скажем, продавая краску Н по цене 2,5 тыс. руб. за 1 т при объёме закупок свыше 2 т, то в такой ситуации не будет выполняться исходное условие задачи, заключающееся в том, что производство одной тонны краски Н обеспечивает доход от реализации, равный 3 тыс. руб. В новых условиях этот доход будет равен 3 тыс. руб. при х1  2 т и 2,5 тыс. руб. при х1>2, т.е. прямая пропорциональность между доходом фирмы и величиной х1 не имеет места.

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

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

Пример 1.5. (Задача об ассортименте продукции.) Фирма выпускает три вида продукции (изделий). В процессе производства используются три технологические операции. На рис. 1.1 показана технологическая схема производства изделий видов 1, 2 и 3. При изготовлении изделия 2 технологическая операция 2 не выполняется, а при производстве изделия 3 используются только технологические операции 1 и 2.

Рис. 1.1

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

для первой операции — 430 мин,

для второй операции — 460 мин,

для третьей операции — 420 мин.

Изучение рынка сбыта показало, что ожидаемая прибыль от продажи одного изделия видов 1, 2 и 3 составляет 3, 2 и 5 руб. соответственно.

Каков наиболее выгодный суточный объем производства каждого вида продукции?

Словесная формулировка задачи

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

Математическая формулировка

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

Пусть

x1 — количество изделий вида 1,

x2 количество изделий вида 2,

x3 количество изделий вида 3.

Или в более общей форме:

xj количество изделий j-го вида, где j =1, 2 и 3.

При использовании этих обозначений математическая формулировка задачи принимает вид:

максимизировать F = 3х1 + 2х2 + 5x3 (величина прибыли за сутки)

при ограничениях

д

(предельное время использования операций в течение суток),

ля операции 1 1x1 + 2x2 + 1x3  430

для операции 2 3x1 + 0x2 + 2x3  460

для операции 3 1x1 + 4x2 + 0x3  420

х 0, (условие неотрицательности переменных).

Главным отличием этой модели является наличие более двух переменных. В этом случае возможность графического решения задачи становится по крайней мере проблематичной. Для решения задач ЛП с большим числом переменных существует алгебраический метод (симплекс метод).

Пример 1.6. (Задача составления кормовой смеси, или задача о диете.) Бройлерное хозяйство птицеводческой фермы насчитывает 20000 цыплят, которые выращиваются до 8-недельного возраста и после соответствующей обработки поступают в продажу. Хотя недельный расход корма для цыплят зависит от их возраста, в дальнейшем будем считать, что в среднем (за 8 недель) он составляет 1 кг.

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

Таблица 1.2

Ингредиент

Содержание питательных веществ, кг/(кг ингредиента)

Стоимость руб. /кг

Кальций

Белок

Клетчатка

Известняк

0,38

-

-

0,04

Зерно

0,001

0,09

0,02

0,15

Соевые бобы

0,002

0,50

0,08

0,40

Заметим, что известняк не содержит ни белка, ни клетчатки.

Смесь должна содержать:

1) не менее 0,8%, но не более 1,2% кальция;

2) не менее 22% белка;

3) не более 5% клетчатки.

Словесная формулировка задачи

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

Математическая формулировка

Введем следующие обозначения:

x1 — содержание известняка в смеси, кг;

x2— содержание зерна в смеси, кг;

x3 содержание соевых бобов в смеси, кг.

Так как x1, x2 и x3 представляют веса трех ингредиентов, используемых для составления смеси, общий вес смеси будет равен x1 + x2 + x3 , причем эта сумма не должна быть меньше 20000 кг.

Так как общий расход кормов равен x1 + x2 + x3 , содержание кальция должно находиться в пределах от 0,008 (x1 + x2 + x3) до 0,012 (x1 + x2 + x3). В соответствии с табл. 1.2 содержание кальция, обусловленное включением в смесь x1 кг известняка, Х2 кг зерна и Х3 кг соевых бобов, равно

0,38 x1 + 0,001 x2 + 0,002 x3 . Отсюда следует, что ограничения, связанные с содержанием кальция в кормовом рационе, можно представить в следующем виде:

1. Смесь должна содержать не менее 0,8% кальция:

0,38 x1 + 0,001 x2 + 0,002 x3  0,008(x1 + x2 + x3).

2. Смесь должна содержать не более 1,2% кальция.

0,38 x1 + 0,001 x2 + 0,002 x3  0,012(x1 + x2 + x3).

Эти ограничения можно записать в более простой форме, объединив в левых частях неравенств члены, содержащие x1 , x2 и x3:

0,372 x1 - 0,007 x2 - 0,006 x3  0;

0,368 x1 - 0,011 x2 - 0,01 x3  0.

Окончательная математическая формулировка задачи может быть представлена в следующем виде:

Минимизировать F = 0,04 x1 + 0,15 x2 + 0,40 x3

при ограничениях:

x1 + x2 + x 3 = 20000 (минимальный недельный

рацион),

0

(содержание кальция)

,372 x1 - 0,007 x2 - 0,006 x3  0,

0,368 x1 - 0,011 x2 - 0,01 x3  0.

0,220 x1 + 0,13 x2 - 0,280 x3  0 (содержание белка),

0,050 x1 + 0,03 x2 - 0,030 x3  0 (содержание клетчатки).

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

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

Словесная формулировка задачи

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

Математическая формулировка

Как уже можно было заметить, словесные формулировки, относящиеся к определению переменных модели, не обладают требуемой однозначностью. Известна продолжительность смены — 8 ч, однако не известно, когда должна начинаться та или иная смена. Если ориентироваться на общепринятый трехсменный график работы (8:01 — 16:00 ; 16:01 — 24:00 ; 24:01 — 8:00) и обозначить количество автобусов, выходящих на линию в первую, вторую и третью смены через x1, x2, и x3 соответственно, то из рис. 1.2 можно увидеть, что x1  10, x2  12 и x3  8. Поэтому общее минимальное количество используемых автобусов будет равно x1 + x2 + x3 = 10 + 12 + 8 = 30.

Это решение приемлемо лишь в том случае, если расписание смен будет соответствовать обычному трехсменному графику работы. Однако может оказаться, что выгоднее график работы, составленный на основе оптимального выбора начала каждой из смен. Можно, например, принять такой график работы, когда начало одной смены смещено относительно начала следующей смены на 4 ч. Такой график работы с перекрывающимися сменами показан на рис. 1.3 для случая, когда смены начинаются в 0:01 , 4:01 , 8:01 , 12:01 , 16:01 , 20:01 , причем продолжительность смены составляет 8 ч. Теперь действительно есть возможность идентифицировать переменные, для чего целесообразнее использовать следующие обозначения:

x1  число автобусов, выходящих на линию в 0:01,

x2  число автобусов, выходящих на линию в 4:01,

x3  число автобусов, выходящих на линию в 8:01,

x4  число автобусов, выходящих на линию в 12:01,

x5  число автобусов, выходящих на линию в 16:01,

x6  число автобусов, выходящих на линию в 20:01.

Рис. 1.3

Примечание. Знак * означает минимальную потребность в автобусах для четырехчасовых интервалов.

Соответствующая рис. 1.3 математическая модель записывается следующим образом:

Минимизировать F = x1 + x2 + x3 + x4 + x5 + x6

при ограничениях

x1 + x6  4 (с 0:01 до 4:00),

x1 + x2  8 (с 4:01 до 8:00),

x2 + x3  10 (с 8:01 до 12:00),

x3 + x4  7 (с 12:01 до 16:00),

x4 + x5  12 (с 16:01 до 20:00),

x5 + x6  4 (с 20:01 до 0:00),

Пример 1.8. (Минимизация дисбаланса на линии сборки.)

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

Таблица 1.3

Завод

Максимальный недельный фонд времени, ч

Производительность, узел/ч

Узел 1

Узел 2

Узел З

1

100

8

5

10

2

80

6

12

4

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

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

Словесная формулировка задачи

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

Математическая формулировка

Пусть xij недельный фонд времени (в часах), выделяемый на заводе i для производства узла j. Тогда объемы производства каждого из трех комплектующих узлов будут равны:

узел 1: 8x11 + 6x21,

узел 2: 5x12 + 12x22,

узел 3: 10x13 + 4x23.

Так как в конечной сборке каждый из комплектующих узлов представлен в одном экземпляре, количество конечных изделий должно быть равно количеству комплектующих узлов, объем производств которых минимален. Если, например, объем производства двух заводов составляет 100, 112 и 108 соответствующих узлов, то количество конечных изделий будет равно min [100, 112, 108]=100. Значит, количество конечных изделий можно выразить через число комплектующих узлов следующим образом:

Min [8x11 + 6x21 , 5x12 + 12x22 , 10x13 + 4x23].

узел 1 узел 2 узел 3

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

Максимизировать F = min [8x11 + 6x21 , 5x12 + 12x22 , 10x13 + 4x23] при ограничениях

x11 + x12 + x13  100 (завод 1),

x21 + x22 + x23  80 (завод 2),

xij  0, i = 1, 2; j = 1, 2, 3.

Эта модель не является линейной, но ее можно привести к линейной форме с помощью простого преобразования. Пусть у количество изделий = min [8x11 + 6x21 , 5x12 + 12x22 , 10x13 + 4x23].

Этому выражению с математической точки зрения эквивалентна следующая формулировка: максимизировать у

при ограничениях 8x11 + 6x21 y,

5x12 + 12x22y,

10x13 + 4x23 y,

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

Таким образом, окончательно математическую модель можно записать в виде: максимизировать F = y

при ограничениях 8x11 + 6x21 - y  0,

5x12 + 12x22 - y  0

10x13 + 4x23 - y  0

x11 + x12 + x13  100 ,

x21 + x22 + x23  80 ,

, .

Пример 1.9. (Целевое программирование.)

Во всех предыдущих примерах ограничения представляют собой соот ношения, правые и левые части которых связаны знаками  ,  или =. Однако при построении моделей, адекватных реальным ситуациям, иногда целесообразно отразить тот факт, что при соответствующей компенсации (штрафе) можно допустить нарушение того или иного ограничения. Это можно пояснить на следующем примере. Фирма, предпринимающая меры по организации нового производства, обычно имеет ограниченный инвестиционный фонд, но может увеличить объем капиталовложений за счет займа необходимых средств. Штраф в этом случае есть процент, под который был получен заем. Естественно, что привлечение заемных средств окажется экономически оправданным только в том случае, если новое производство будет прибыльным с учетом выплачиваемых процентов. Такой вид математического моделирования часто называют целевым программированием, так как уже сама формулировка модели ориентирована на нахождение уровня использования тех или иных ресурсов, который соответствовал бы цели, поставленной лицом, принимающим решение.

Модель целевого программирования рассмотрим на следующем простом примере. При изготовлении изделий двух видов осуществляется последовательная обработка соответствующих заготовок на двух различных станках. Каждый станок может использоваться для производства изделий по 8 ч в сутки, однако этот фонд времени можно увеличить на 4 ч за счет сверхурочных работ. Каждый час сверхурочного времени требует дополнительных расходов в размере 5 руб. Производительность станков и прибыль в расчете на одно изделие приведены в табл. 1.4. Требуется определить объемы производства изделий каждого вида, обеспечивающие получение максимально чистой прибыли.

Таблица 1.4

Станок

Производительность, изделие/ч

Изделие 1

Изделие 2

1

5

6

2

4

8

Удельная прибыль

6 руб.

4 руб.

Словесная формулировка задачи

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

Математическая формулировка

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

Пусть

xj количество изделий j , j - 1, 2.

Если сверхурочные работы не допускаются, то ограничения имеют вид

x1 /5 + x2 /6  8 (станок 1),

x1 /4 + x2 /8  8 (станок 2).

Чтобы учесть возможность сверхурочных работ, можно видоизменить эти ограничения следующим образом:

x1 /5 + x2 /6 - y1 = 8;

x1 /4 + x2 /8 - y2 = 8,

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

Вводя переменные yi , для того чтобы учесть возможность использования сверхурочного времени, мы не принимали во внимание ограничений, накладываемых на их значения. Теперь следует отразить тот факт, что продолжительность сверхурочных работ не превышает 4 ч в сутки. Кроме того, в выражении для целевой функции нужно учесть дополнительные расходы, обусловленные сверхурочными работами. Так как переменная yi положительна только в том случае, когда используется сверхурочное время, ограничения yi  4, i = l, 2 адекватны условиям задачи, характеризующим возможность использования сверхурочного времени. Заметим, что при yi < 0 (сверхурочные работы не выполняются) эти ограничения становятся избыточными.

Рассмотрим теперь целевую функцию. Наша цель заключается в максимизации чистой прибыли, представляющей собой общую прибыль от реализации изделий, уменьшенную на величину дополнительных расходов, связанных с выполнением сверхурочных работ. Величина общей прибыли непосредственно определяется из условий задачи как 6x1+4x2 . Следует отметить, что дополнительные расходы на сверхурочные работы учитываются только при yi > 0. Таким образом, эти дополнительные расходы удобно представить в виде:

затраты на сверхурочные работы =

=затраты/час  сверхурочное время (ч) =

= 5 (max {0 , yi } )

Заметим, что max {0 , yi} = 0, если yi < 0 ; при этом (как и должно быть) расходы на сверхурочные работы равны нулю.

Таким образом, математическая формулировка задачи имеет вид

максимизировать F = 6x1 + 4x2 - 5 (max {0 , y1 } + max {0 , y2 })

при ограничениях x1 /5 + x2 /6 - y1 = 8,

x1 /4 + x2 /8 - y2 = 8,

y1  4,

y2  4,

x1 , x2  0 , y1 , y2 не ограничены в знаке.

Для приведения модели к линейной форме используем следующую подстановку: wi = max {0, уi},

которая эквивалентна введению условий

wi yi и wi  0 ,

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

максимизировать F = 6x1 + 4x2 - 5(w1 + w2)

при ограничениях x1 /5 + x2 /6 - y1 = 8,

x1 /4 + x2 /8 - y2 = 8,

y1 - w1  0,

y2 - w2  0,

y1  4,

y2  4,

; w  0,

y1 , y2 не ограничены в знаке.

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