Целочисленная задача линейного программирования о распиле

 

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

 

Задание: записать задачу об оптимальном распиле A бревен длиной 3 м, обеспечивающем образование максимального числа комплектов, состоящих из брусков m размеров a1,…, am, которые в комплекте находятся в пропорции k1:k2:k3 в виде задачи целочисленного линейного программирования и решить их с помощью ЭВМ.

Краткие теоретические положения

 

Имеется А брёвен длиной по 3м. Их необходимо распилить на бруски m размеров a1,…, am. Из брусков образуют комплекты, количество брусков в которых к1,…, кm. Определить, какое количество бревен, и по какому способу необходимо распилить для образования максимального количества комплектов.

Пусть имеется n способов распила бревен на бруски и х1,…, хn- количество бревен, распиленных по каждому способу, а хn+1- количество полученных комплектов.

Математическая модель задачи:

(1),

где - количество бревен, распиленных всеми способами;

- количество брусков размера , выпиливаемых из бревна при -ном способе распила;

- количество брусков размера аm, выпиливаемых всеми возможными способами;

- количество брусков размера аm, входящих во все комплекты

 

Индивидуальное задание

Имеется А брёвен длиной по 3м. Их необходимо распилить четырьмя различными способами на бруски 3-х размеров a1, а2, а3. Из брусков образуют комплекты, количество брусков в которых к1, к2, к3. Определить, какое количество бревен, и по какому способу необходимо распилить для образования максимального количества комплектов.

Числовые параметры индивидуального задания определяются по номеру варианта Nv из таблицы 1 приложений.

 

Пример выполнения работы

 

Nv=30- номер варианта.

 

Для решения задачи строим математическую модель задачи. Из таблицы 1 приложений: A=100, a1=0.6, a2=1.5, a3=2.5, k1=2, k2=1, k3=3.

Определим 4 возможных способа распила бревен длиной 3 м на брусья указанной длины, при каждом способе бревно должно использоваться максимально, т.е. нельзя из остатка выпилить хотя бы один дополнительный брусок. Все эти способы приведены в таблице:

 

Номер способа распила Количество брусьев 0.6 м Количество брусьев 1.5 м Количество брусьев 2.5 м
       
       
       
       

 

Таким образом, для данного набора трех типов брусков определили 4 возможных способа распила одного бревна длиной 3 м. Поставим в соответствие каждому способу xi неизвестную величину xi, , где xi- количество бревен, распиленных по способу i. Пусть x5- количество образованных комплектов их брусков, полученных после распиливания бревен. Получаем задачу ЦЛП:

z=x5® max – количество комплектов;

x1+x2+x3+x4£ 100 – общее количество распиленных бревен;

5x1+2x2 2x5 - количество брусков по 0.6 м;

x2+2x3 x5 - количество брусков по 1.5 м;

x4 3x5 - количество брусков по 2.5 м;

x1, x2, x3, x4³0 – условие неотрицательности;

x1, x2, x3, x4- целые - условие целочисленности.

или:

z=x5® max;

x1+x2+x3+x4£ 100;

5x1+2x2-2x5³0;

x2+2x3-x5³0;

x4-3x5³0;

x1, x2, x3, x4³0;

x1, x2, x3, x4-целые.

 

Величина x1+x2+x3+x4 равна количеству распиленных бревен, поэтому первое ограничение возникло в силу ограниченности имеющегося запаса бревен числом A=100. Второе ограничение образовано с использованием таблицы, где приведены все возможные способы распила бревна длиной 3 м на бруски заданных размеров. При этом число 5x1+2x2 равно количеству брусков длиной 0.6 м, образовавшихся в результате распила, а число 2x5=k1x5- это количество брусков данного типа, содержащихся во всех комплектах. Ограничение 5x1+2x2-2x5³0 показывает количество брусков длиной 0.6 м не вошедших в состав комплектов, т.е. пошедших в остаток. Аналогичный смысл имеют третье и четвертое ограничения. Пятое ограничение - условие неотрицательности переменных. Наконец, шестое ограничение- условие целочисленности, означающее, что количества распиленных брёвен x1, x2, x3, x4- должны быть целыми числами.

 

Запускаем файл lr2.xls и после завершения работы программы ‘Поиск решения’, получаем

переменные x1 x2 x3 x4 x5  
значения          
нижняя граница           Тип задачи
верхняя граница           z max  
целевая функция              
  целое целое целое целое целое  
Ограничения левая часть знак правая часть
бревна             <=  
бруски 1         -2   =>  
бруски 2         -1   =>  
бруски 3         -3   =>  

 

 

Таким образом, в оптимальном решении:

1) Получено комплектов- x5=25;

2) Распилено бревен по

первому способу: x1=10;

второму: x2=1;

третьему: x3=12;

четвертому: x4=75;

Не распиленных бревен осталось: A- x1- x2- x3- x4=

=100-10-1-12-75=2, т.е. 2 бревна оказались не распилены;

 

3) Количество остатков (м): 3A-x5()=

=3·100--25(2×0.6+1× 1.5+3∙2.5)=45м., где величина -общая длина брусков в одном комплекте.

При таком способе расчёта остатками считаем:

а) не распиленные брёвна;

б) бруски, не вошедшие в комплекты;

в) остатки, образующиеся после распила брёвен.

5) а) Брусков первого типа, длиной 0.6 м не вошло в комплекты

5x1+2x2-2x5=5∙10+2∙1-2∙25=2;

б) Брусков второго типа, длиной 1.5 м не вошло в комплекты:

x2+2x35=1+2∙12-25=0;

в) Брусков третьего типа, длиной 2.5 м не вошло в комплекты

x4-3x5=75-3∙25=0;.

Контрольные вопросы

 

1. Какая задача линейного программирования называется целочисленной?

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

3. Какими параметрами определяется состав образуемых комплектов из брусков?

4. Каков критерий оптимизации в задаче о распиле (каково его экономическое содержание).

5. Каков смысл неизвестных задачи

6. Пояснить смысл каждого ограничения.

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

 

 


ПРИЛОЖЕНИЕ

 

Nv A a1 a2 a3 k1 k2 k3
    0.6 2.3 1.5      
      1.2        
    0.8 0.6 0.4      
    0.6 0.8        
    1.5   1.2      
    0.8 1.5 1.3      
      1.5 1.3      
    0.8   0.6      
    1.5   0.8      
    0.8   1.4      
      1.3 1.5      
    0.6   0.8      
    0.8 1.4 0.7      
      1.4        
      1.4 1.6      
    0.6   0.9      
    0.8 1.1 0.7      
    1.2 1.4        
      1.8 1.5      
    0.5   0.8      
    0.3 1.4 0.7      
      1.4        
    1.6 1.3 1.5      
    0.6   0.8      
    0.2 1.4 0.7      
    0.3 1.8 2.2      
    0.4 1.5 2.6      
    0.6 1.2 2.7      
    0.4 1.1 2.8      
    0.6 1.5 2.5      

Таблица1.

Лабораторная работа №3

Классическая транспортная задача

 

Цель: научиться строить математические модели транспортных задач в форме задач линейного программирования и решать их с помощью пакета EXCEL.

Задание: записать транспортные задачи в форме задач линейного программирования и решить их с помощью пакета EXCEL.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: