Основы математического моделирования. Учебное пособие
.pdfСущность задачи об оптимальном раскрое состоит в разработке таких технологически допустимых планов раскроя, при котором получается необходимый комплект заготовок, а отходы по площади, весу или стоимости к минимуму. В настоящее время наиболее изучены вопросы раскроя длинномерных и листовых материалов. Задача комплектности раскроя формулируется так: на раскрой поступает m (i = 1,...,m ) материалов в объеме bi каждого. Требуется
изготовить K различных комплектующих изделий в
количестве пропорциональных: |
l1 : l2 :...: lk . Каждая единица |
i-го материала может быть |
раскроена ni (i = 1,...,n ) |
различными способами. При раскрое единицы i-го материала j-м способом получается aiik единиц k-го изделия. Обозначим через xii количество единиц i-го материала, раскраиваемого
j-м способом, а количество изготовляемых комплектов — через х.
Математическая модель задачи имеет вид:
max : z = x
при ограничениях
• на объем каждого вида материалов
n |
___ |
∑xij ≤ bt , |
i = 1,m |
j=1 |
|
• условия комплектности |
|
m n |
___ |
∑∑aijk xij = lk x, |
k =1, K |
i=1 j=1 |
|
41 |
|
•условия неотрицательности xij ≥ 0 .
Вчастности, если на раскрой поступает один вид материала в объеме b , то модель примет вид:
max : z = x
n |
___ |
∑xij ≤ bt , |
i = 1,m |
j=1 |
|
n |
___ |
∑aijk xij = lk x, |
k = 1,K |
j=1 |
|
|
___ |
xij ≥ 0 |
j = 1,n . |
Приведем простейшую модель раскройной задачи в случае критерия — минимум отходов при раскрое. Рассмотрим задачу оптимального раскроя по одному измерению длинномерных материалов (прутков, труб, профильного проката и др.).
Пусть
•L — длина исходного материала;
•∆i — длина заготовки i - го вида;
•bi — нужное количество заготовок i - го вида;
•aij — количество i - го вида, полученного при раскрое
единицы исходного материала j-му варианту;
• ci — отход при раскрое единицы исходного материала j-му варианту.
Неизвестная величина x j - интенсивность использования
j - го варианта, т.е. сколько единиц исходного материала будет раскроена по j - му варианту. Математическая модель
42
|
n |
|
|
|
min : z = ∑c j x j |
|
|
||
|
j=1 |
|
|
|
при условии получения |
заготовок |
в |
соответствии с |
|
|
n |
|
|
___ |
ассортиментной программой |
∑aij x j |
= bi , |
i = 1,m |
|
|
j=1 |
|
|
|
|
|
|
|
___ |
при условии неотрицательности |
x j |
≥ 0 |
j = 1,n . |
|
Рассмотрим критерий минимум числа прутков для удовлетворения потребности. Обозначим число прутков через х. Модель примет вид:
• целевая функция - минимум числа единиц раскраиваемого материала
min : z = x
при ограничениях:
• заявки потребителей удовлетворяются полностью
|
|
|
n |
|
|
|
|
|
|
∑aij x j = bi |
|
|
|
|
|
|
j=1 |
|
|
|
• |
на |
объем |
исходного |
материала, |
поступившего на |
|
|
|
m |
n |
n |
|
|
раскрой |
∑∆i ∑ aij x j + m∑ c j x j |
= xL |
||||
|
|
i=1 |
j=1 |
i=1 |
|
|
• |
|
|
|
|
|
___ |
условие неотрицательности x j |
≥ 0 |
j = 1,n . |
||||
43
3.4. Построение математических моделей
Составление математической модели начинается с выбора переменных, совокупность числовых значений которых однозначно определяет один из вариантов процесса. Пои этом следует иметь в виду, что иной раз от удачного выбора этих переменных зависит простота модели и, следовательно, удобство дальнейшего ее анализа. После выбора переменных необходимо составить по тексту задачи ограничения, которым эти переменные должны удовлетворять. При этом нужно следить, чтобы в модель были включены все ограничительные условия и в то же время не было ни одного лишнего. Наконец, составляется целевая функция, которая в математической форме отражает критерий выбора лучшего варианта. После составления математической модели необходимо рассмотреть возможные пути ее упрощения и выбрать необходимый вычислительный метод для решения задачи.
Пример. Задача 1. Фирма выпускает детали двух типов. На изготовление одной детали первого типа, которое стоит 80 денежных единиц, расходуется 2 кг аллюминий; 0,5 кг стали, 2 человеко-часа рабочего времени. Аналогичные данные для деталей второго типа: 120 денежных единиц, 4 кг, 0,25 кг и 2,5 человеко-часа. На фирме имеется 440 кг аллюминияк, 65 кг стали, 320 человекочаса рабочего времени. Требуется определить, какие детали и в каком количестве следует изготовить фирме, чтобы прибыль от их реализации
была максимальной. |
|
|
|
|
|
|
|||
|
Решение. Составим математическую модель задачи. |
||||||||
Предложим, что будет изготовлено |
|
деталей первого типа, |
|||||||
|
|
|
|
|
для |
изготовления такого |
|||
|
деталей |
второго |
типа. Тогда |
|
|
|
|
|
|
количества |
|
|
|
|
|
|
|
|
|
|
|
деталей |
потребуется |
затратить |
аллюминия |
в |
|||
количестве |
2 |
+ 4 кг; стали |
|
|
+ ! |
и потребуется |
|||
времени 2 |
+ " |
|
чел-час. Поскольку аллюминий, сталь |
и |
|||||
|
|
|
|
44 |
|
|
|
|
|
рабочее время ограничены соответственно величины 440кг, 65 кг, 320 чел-часа, то переменные и должны удовлетворять системы ограничений:
& 2 + 4 ≤ 440; %'12 +514 ( ≤ 65;
#2 + 2 ≤ 320.
При этом количество изготовленных деталей должно быть неотрицательным:
≥ 0, ≥ 0. |
|
|
Совокупная прибыль от реализации |
стульев первого |
|
типа и стульев второго типа составит: |
|
|
= 80 + 120 . |
|
|
Таким образом, приходим к стандартной задаче=линейного80 + 120программирования: найти максимум функции
при ограничениях.
3.5. Геометрическая интерпретация задачи линейного программирования. Графический метод решения
Графический метод используется для решения задач линейного программирования с двумя переменными, заданными в симметричной форме, и многими переменными, заданными в канонической форме (при условии, что они содержат не более двух свободных переменных).
Задачу линейного программирования с двумя переменными можно записать так:
45
max : f |
= c1x1 + c2x2 |
(3.1) |
|
|
|
|
|
a11x1 + a12x2 ≤ b1 |
(3.2) |
||
|
|
|
|
am1x1 |
+ am2x2 |
≤ bm |
(3.3) |
|
|
|
|
x1 ≥ 0, x2 ≥ 0
Область допустимых решений задачи (3.1-3.3) представляет собой либо выпуклый многоугольник (рис. 1, а), либо выпуклую многоугольную область (рис. 1, б), либо единственную точку (рис. 1, в), либо пустое множество (рис 1, г).
Рис. 1. Область допустимых решений
Функция (3.1) представляет собой на плоскости X1OY1
семейство параллельных прямых, каждой из которых отвечает определенное значение f. Перпендикулярный к этим прямым вектор p = (c1,c2 ) указывает направление наискорейшего
46
возрастания функции f(3.1), и задача (3.1-3.3) заключается в следующем: необходимо найти точку допустимой области, через которую проходит прямая семейства f, отвечающая наибольшему значению функции (3.1).
При решении задачи линейного программирования графическим способом могут встретиться следующие случаи:
•задача имеет единственное решение (рис. 2, а);
•задача имеет бесконечное множество решений (рис. 2, б);
•функция f не имеет экстремального значения (рис. 2, в).
|
Рис. 2. |
Графическое решение ЗЛП |
|
|
|
Решение задачи графически способом приводится в такой |
|||
последовательности: |
|
|
|
|
• |
записывают |
уравнения |
граничных |
прямых |
- + - = .-, k =1,...,m , и строят их на плоскости X1OX2 ;
• определяют полуплоскости, соответствующие исходным ограничениям-неравенствам (3.2). Для этого берут произвольную точку, лежащую по ту или иную сторону от граничной прямой, и ее координаты. Если оно удовлетворяется, то искомой будет полуплоскость, которая содержит выбранную точку; если оно не удовлетворяется, то искомой будет полуплоскость, которой данная точка не принадлежит;
47
• выделяет область допустимых решений как общую часть m+2 полуплоскостей, где m полуплоскостей соответствуют исходным неравенствам (3.2), а 2 полуплоскости – условию неотрицательности переменных ( x1 ≥ 0 - правая координатная
полуплоскость; |
x2 ≥ 0 |
- |
верхняя |
координатная |
|
полуплоскость); |
|
|
|
|
|
• |
строят вектор p = (c1,c2 ) |
и перпендикулярно к нему |
|||
одну из прямых семейства f, например, f=0; |
|
||||
• |
определяют |
экстремальную точку |
многоугольника |
||
решений путем параллельного перемещения вспомогательной прямой f = 0 в направлении вектора p . Это будет наиболее
удаленная крайняя точка, в которой прямая f встречается с областью допустимых решений. Если необходимо найти точку, которой соответствует минимальное значение функции f, то вспомогательную прямую перемещают в направлении вектора p до пересечения с первой точкой допустимой
области (либо прямую f = 0 перемещают в направлении вектора(- p ) ;
• вычисляют координаты оптимальной точки значения функции f.
Если в канонической записи задачи со многими переменными разность между числом переменных n и числом линейно независимых уравнений r равна двум, т.е. n − r = 2, то задачу можно решить графическим методом. Модель этой задачи преобразуют к симметрической форме. Полученную задачу с двумя переменными решают графически. Найдя координаты оптимума, подставляют их в ограничительные уравнения канонической формы. Решая полученную систему уравнений, определяют и остальные координаты оптимума.
Можно решать задачу линейного программирования геометрическим методом используя теорию поля. Пусть требуется найти максимум целевой функции:
48
= с + с →
При ограничениях
|
= , = 1,2 … , , |
|
|
1 |
|
||
|
≥ 0, ≥ 0. |
|
|
Множество |
решений |
задачи |
линейного |
программирования определяется конечной системой линейных ограничений, поэтому геометрически это множество представляет собой либо выпуклый многоугольник, либо неограниченную многоугольную область. Выпуклый многоугольник имеет конечное число угловых точек.
Основная теорема линейного программирования гласит: если существует единственное решение задачи линейного программирования, то оно находится в одной из угловых точек множества допустимых решений. Чтобы найти оптимальное
линией |
|
= с + с |
|
|
|
|
|
|
|
|
решение, воспользуемся теорией скалярного поля. |
|
|||||||||
Пусть |
|
|
- |
некоторое |
скалярное поле, |
|||||
|
уровня этого |
поля будут |
прямые |
|
|
|
- |
|||
|
|
|
|
|
|
функция |
Е принимает |
|||
это прямые а каждой точке которых |
|
с |
+ с = 2 3 |
|
||||||
постоянное значение. Для нахождения решения задачи
линейного |
программирования |
графическим |
методом |
рассматривают |
линию с + с = 0, затем строят вектор |
||
45 6 = с |
, с , указывающий |
направление |
возрастания |
функции F, перпендикулярный линии уровня. Начало этого вектора совмещают с началом координат. Линию уровня 45перед6 вигают параллельно самой себе в направлении вектора
, функция F принимает наибольшее значение в последней вершине области допустимых решений при выходе из нее и минимальное значение в первой вершине, при входе в область допустимых решений. В этом случае задача линейного
49
программирования имеет единственное решение. Возможны и другие случаи в зависимости от вида45 6области= 7 ограничений и
взаимного расположения вектора : задача не имеет решения (функция не имеет экстремум вообще), задача имеет бесконечное множество решений (функция имеет несколько точек экстремума).
Возможны три варианта: а) экстремум в одной точке; б) точек экстремума нет;
в) несколько точек экстремума; В качестве примера решим задачу из пункта 3.2
графическим способом.
1. Строим область, допустимых решений данной задачи. Каждое из неравенств ограничений определяет полуплоскость
с граничной прямой, уравнение которой получается заменой знака неравенства на знак равенства. Общая часть этих полуплоскостей и образует допустимую область решения. Чтобы установить, какая же из двух полуплоскостей,О на которые граничная прямая делит плоскость , является решением данного неравенства, надо подставить в него координаты любой точки, лежащей по ту или другую сторону от граничной прямой. Если координаты этой точки удовлетворяют данному неравенству, то искомой будет та полуплоскость, в которой расположена взятая точка, если же неравенство не удовлетворяется, то искомой будет другая полуплоскость.
Итак, строим прямые:
2 + 4 = 440 − (I),
: + ! ; = 65 − (II), |
|
:2 + " ; = 320 − (III), |
|
= 0, = 0 − (IV). |
50 |
