Главная Обратная связь

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)






Оптимизация раскроя материала



Курсовая работа. Часть 3. Задача 3.

1. Постановка задачи.

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

  • в первой партии – накладные полосы длиною 1 м – в количестве 200 шт.,
  • во второй партии – накладные полосы длиной 0,6м – в количестве 250 шт.

Изготовить эти две партии нужно из трех видов заготовок, хранящихся на складе судоремонтного предприятия:

  • Первый вид заготовок – полосы длиною 2 м.

Стоимость одной такой полосы а1 = 100 р.

Количество имеющихся в наличии таких полос (заготовок) – 100 шт.

  • Второй вид заготовок - накладные полосы длиною 1,4 м.

Стоимость одной полосы а2 = 60 р.

Количество таких накладных полос – 200 шт.

  • Третий вид заготовки – накладные полосы длиною 0,8 м.

Стоимость одной полосы а3 = 40 р.

Количество накладных полос этой заготовки, имеющихся в наличии – 50 шт.

 

Стоимость одного среза заготовки составляет c=20 у.е.

Известно, что оставшуюся часть заготовки (втор сырье) можно перепродать по определенной цене:

заготовку длиной 0,2 м – за b1=5 руб.,

длиной 0,4 м – за b2=10 руб.

Определить минимальные затраты J на выполнение заказа, введенные ограничения на переменные состояния. Так, согласно нижней границе, следует использовать не менее 2 раскроев по третьему варианту, а вектором верхней границы установлены максимально допустимые значения вариантов раскроя: для первого – 20, второго – 56, четвертого – 110 и пятого – 95. На третий и шестой варианты верхние ограничения не наложены.

 

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

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

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

1. Заготовки первого вида длиной 2 м можно «раскроить» тремя способами:

1.1. Производят один срез на расстоянии 1м от любого конца. В результате получают две накладные полосы (элемента) первой партии длиной 1 м каждая.

1.2. Из одной заготовки путем двух срезов получают одну накладную полосу (элемент) первой партии (1 м) и одну накладную полосу (элемент) второй партии (0,6 м). После двух срезов остается остаток полосы 0,4 м, который может быть реализован как металлолом по цене b2 = 10 p. за единицу.



1.3. Из одной заготовки путем трех срезов, производимых от конца через каждые 0,6 м, получают три накладные полосы (элемента) второй партии. Остаток после раскроя 0,2 м. Этот остаток, с целью уменьшения расходов на выполнение работ, может быть реализован как металлолом по цене b1 = 5 p. за каждую единицу.

2. Заготовки второго вида длиной 1.4 м. можно «раскроить» двумя способами:

2.1. С помощью одного среза на расстоянии 1 м. от конца можно получить из накладной полосы (заготовки) один элемент полосы первой партии (1 м) и остаток заготовки, непригодный к использованию, длиной 0,4 м. Его можно сдать в металлолом по цене b2 = 10 p.

2.2. Второй способ раскроя производится двумя поперечными срезами, производимыми от конца заготовки через каждые 0,6 м. В результате получаются две накладные полосы (элемента) второй партии и остаток полосы длиною 0,2 м, который может быть сдан в металлолом по цене b1=5 p.

3. Из заготовки третьего вида длиной 0.8 м. можно получить лишь одну накладную полосу (элемент) второй партии, длина которого 0,6 м. Остаток размером 0,2 м. можно сдать в металлолом по цене b1 = 5 p. Таким образом, раскрой заготовки третьего вида состоит в выполнении одного поперечного среза.

 

Используя шесть вариантов раскроя, мы можем найти расходы на реализацию каждого варианта. Введем вектор x размерностью (6×1), элементы которого соответствуют числу используемых вариантов раскроя.

Расходы на выполнение одного раскроя по первому варианту составят (a1+c) рублей, а при выполнении x(1) таких раскроев они составят, очевидно, (a1+c) x(1) рублей. Аналогично для других вариантов раскроя получим:



(a1+2*c-b2) x(2),

(a1+3*c-b1) x(3),

(a2+c-b2) x(4),

(a2+2*c-b1) x(5),

(a3+c-b1) x(6).

Нетрудно видеть, что критерием качества, который следует минимизировать, является произведение вектора-строки f на вектор-столбец x и представляет собой скалярную величину – расходы на выполнение работ по подготовке двух партий накладных полос:

J=f x,

где

f=[(a1+c) (a1+2*c-b2) (a1+3*c-b1) (a2+c-b2) (a2+2*c-b1) (a3+c-b1)].

Теперь рассмотрим процедуру введения ограничений.

Число элементов первой партии накладных полос можно получить с помощью вектора x, если на него умножить вектор-строку:

[2 1 0 1 0 0],

а число элементов второй партии можно получить аналогично, если вектор – строку

[0 1 3 0 2 1]

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

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

A=[1 1 1 0 0 0 ;0 0 0 1 1 0;0 0 0 0 0 1];

b=[100 200 50]';

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

  1. Текст программы.

% Стоимость заготовки ai, стоимость оставшейся части

% заготовки bi,стоимость одного среза ci:

a1=100; a2=60; a3=40;

b1=5; b2=10;

c=20;

f=[(a1+c) (a1+2*c-b2) (a1+3*c-b1) (a2+c-b2) (a2+2*c-b1) ...

(a3+c-b1)];

A=zeros(3,6);

A(1,1:3)=1;

A(2,4:5)=1;

A(18)=1;

A;

b=[100 200 50]';

d1=[2 1];

d2=[0 1];

Aeq=[d1 d2 zeros(1,2); d2 3 0 d1];

beq=[200 250]';

lvb=[0 0 2 0 0 0]'; ulb=[20 56 inf 110 95 inf]';

[x,J]=linprog(f,A,b,Aeq,beq,lvb,ulb);

x1=round(x);

J1=f*x1;

[x x1]

[J J1]

beq_corr=Aeq*x1;

[beq_corr beq]

J_corr=J1+c-2*b3

4. Выводы по работе.

 


Эта страница нарушает авторские права

allrefrs.ru - 2018 год. Все права принадлежат их авторам!