Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лб эконом.doc
Скачиваний:
20
Добавлен:
06.12.2018
Размер:
2.32 Mб
Скачать

Лабораторная работа №2 Целочисленная задача линейного программирования о распиле

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

Задание: записать задачу об оптимальном распиле 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 м

1

5

0

0

2

2

1

0

3

0

2

0

4

0

0

1

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

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

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

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

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

x43x5 - количество брусков по 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

значения

10

1

12

75

25

нижняя граница

0

0

0

0

0

Тип задачи

верхняя граница

0

0

0

0

0

z

max

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

0

0

0

0

1

25

целое

целое

целое

целое

целое

Ограничения

левая часть

знак

правая часть

бревна

1

1

1

1

0

98

<=

100

бруски 1

5

2

0

0

-2

2

=>

0

бруски 2

0

1

2

0

-1

0

=>

0

бруски 3

0

0

0

1

-3

0

=>

0


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

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

  1. Распилено бревен по

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

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

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

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

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

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

  1. Количество остатков (м): 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;.