Задача одномерного раскроя. Метод генерации столбцов. Содержательная постановка задачи Рассматривается процесс серийного производства игрушечных самолетиков. Каждый самолетик комплектуется из деталей различных типов: • моторные гондолы (4 шт), • большое крыло (2шт), • крыло хвостового оперения (2шт), • хвостовая часть (1 шт), • лопасти пропеллера (8 шт), • корпус (2шт). Детали, в свою очередь, производятся из заготовок, выкраиваемых из пластмассового материала, регулярно поступающего на предприятие в любых требуемых количествах. Материал поступает в виде полос стандартной длины 100 см и раскраивать их нужно только по длине, ширина полосы совпадает с шириной заготовок. Длины заготовок для соответствующих деталей представлены в табл. 1 Таблица 1: Длины заготовок моторная гондола 7 см большое крыло крыло хвостового оперения хвостовая часть лопасть пропеллера корпус 15 см 8 см 10 см 3 см 30 см Изготовление самолетиков происходит в следующих условиях: 1. процесс производства носит циклический характер, то есть определенное количество полос раскраивается в соответствии с одним и тем же технологическим процессом; 2. полосы раскраиваются так, чтобы из остатка нельзя было получить ни одного типа заготовок; 3. после сборки изделий допускаются остатки неиспользованных заготовок. Предложить вариант технологического цикла с максимальной производительностью. Результаты решения средствами пакета AMPL Длина технологического цикла 11088 полос, за один цикл производится 6600 самолетиков, максимальная производительность равна 0.595238. Структура технологического цикла приведена в табл. 2. Таблица 2: Структура одного технолигического цикла Заготовка Варианты раскроя полос большое крыло 0 6 0 0 0 0 корпус 0 0 3 0 0 0 крыло хвостового оперенья 0 0 0 11 0 0 лопасти пропеллера 0 1 1 4 3 31 моторные гондолы 0 1 1 0 13 1 10 0 0 0 0 0 хвостовая часть количество полос 660 2200 4400 1200 1431 1197 Результаты работы пакета AMPL приведены ниже. qmodel = 6600 sum{i in CUT} qtech[i] = 11088 qmodel/(sum{i in CUT} qtech[i]) = 0.595238 qtech [*] := 1 0 2 0 3 0 4 660 5 0 6 0 7 2200 8 4400 9 1200 10 1431 11 1197 ; technolog[j,4] [*] := ’большое крыло’ 0 ’корпус’ 0 ’крыло хвостового оперенья’ ’лопасти пропеллера’ 0 0 ’моторные гондолы’ 0 ’хвостовая часть’ 10 ; qtech[4] = 660 technolog[j,7] [*] := ’большое крыло’ 6 ’корпус’ 0 ’крыло хвостового оперенья’ ’лопасти пропеллера’ ’моторные гондолы’ 0 1 1 ’хвостовая часть’ 0 ; qtech[7] = 2200 technolog[j,8] [*] := ’большое крыло’ 0 ’корпус’ 3 ’крыло хвостового оперенья’ ’лопасти пропеллера’ ’моторные гондолы’ 0 1 1 ’хвостовая часть’ 0 ; qtech[8] = 4400 technolog[j,9] [*] := ’большое крыло’ 0 ’корпус’ 0 ’крыло хвостового оперенья’ ’лопасти пропеллера’ 4 11 ’моторные гондолы’ 0 ’хвостовая часть’ 0 ; qtech[9] = 1200 technolog[j,10] [*] := ’большое крыло’ 0 ’корпус’ 0 ’крыло хвостового оперенья’ ’лопасти пропеллера’ 0 3 ’моторные гондолы’ 13 ’хвостовая часть’ 0 ; qtech[10] = 1431 technolog[j,11] [*] := ’большое крыло’ 0 ’корпус’ 0 ’крыло хвостового оперенья’ ’лопасти пропеллера’ ’моторные гондолы’ ’хвостовая часть’ ; qtech[11] = 1197 31 1 0 0