УДК 519.6
А.А. Петунин, А.Г. Ченцов, П.А. Ченцов
Екатеринбург, Россия
К ВОПРОСУ О МАРШРУТИЗАЦИИ ДВИЖЕНИЯ ИНСТРУМЕНТА В МАШИНАХ ЛИСТОВОЙ РЕЗКИ С ЧИСЛОВЫМ ПРОГРАММНЫМ УПРАВЛЕНИЕМ
A.A. Petunin, A.G. Chentsov, P.A. Chentsov
Ekaterinburg, Russia
TO THE QUESTION ABOUT INSTRUMENT ROUTING IN THE AUTOMATED MACHINES OF THE SHEET CUTTING
Рассмотрена задача маршрутизации, связанная с процессом листовой резки на станках с числовым программным управлением. Построена математическая модель, а также точный и приближенный алгоритмы, реализованные на ПЭВМ.
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ. ЭВРИСТИЧЕСКИЙ АЛГОРИТМ. ЗАДАЧА МАРШРУТИЗАЦИИ. МАРШРУТ. УСЛОВИЯ ПРЕДШЕСТВОВАНИЯ.
The routing problem in the sheet cutting machine is considered. The mathematical model, optimal and heuristic algorithms (with software implementation) are constructed.
DYNAMIC PROGRAMMING. HEURISTIC ALGORITHM. ROUTING PROBLEM. ROUTE. PRECEDING CONDITIONS.
При исследовании многих инженерных задач, возникающих в процессе автоматизированного проектирования управляющих программ (УП) для станков и машин с числовым программным управлением (ЧПУ), могут использоваться методы дискретной оптимизации. Некоторые из таких постановок, связанные с оптимизацией параметров времени и стоимости листовой резки на машинах с ЧПУ для термической и гидроабразивной резки материала, приведены, в частности, в [1, 2]. Термическая и гидроабразивная технологии резки предполагают, что для сохранения геометрии заготовки резка должна осуществляться не непосредственно по граничному контуру заготовки, с некоторым запасом, а именно по некоторой эк-видистанте, определяемой необходимым припуском на рез. Еще одна особенность такого рода резки — необходимость осуществления предварительной врезки (пробивки) материала перед процессом резки по контуру заготовки. Пробивка материала сопровождается дополнительными деформациями материала в точке врезки, поэтому производится на расстоянии (дистанции) от
контура реза, большем, чем величина припуска на рез. Если используется стандартная техника резки «по замкнутому контуру», то в этом случае каждый замкнутый контур вырезается целиком, и после резки одного контура переход к следующей точке врезки происходит с выключенным инструментом на холостом ходу (рис. 1).
На практике кроме упомянутой стандартной техники резки применяются специальные приемы, которые (в отличие от стандартной техники)
и ветру мента
Рис. 1. Пример схемы резки двух заготовок «по замкнутому контуру»
используют либо резку нескольких контуров без выключения инструмента, либо частичную резку замкнутого контура с переходом на резку других контуров и последующим возвратом к первоначальному контуру.
В рамках настоящей статьи, целью которой является разработка эффективных алгоритмов оптимизации времени резки на машинах листовой резки с ЧПУ, будем полагать, что используется стандартная техника резки. Уже на уровне содержательной постановки весьма очевидна потребность в осуществлении рациональной маршрутизации перемещений. В этой связи имеет смысл упомянуть хорошо известную задачу коммивояжера [3-5]. Разумеется, возникают и некоторые особенности. Так, в частности, в рассматриваемой сейчас задаче, связанной с листовой резкой, возникают ограничения в виде условий предшествования (см. задачу курьера в [3]). Другая особенность, связанная с соображениями оптимизации, касается возможной многовариантности перемещений (хотя бы на гипотетическом уровне). Последнее приводит (в отсутствии условий предшествования) к обобщенной задаче коммивояжера или задаче последовательного обхода мегаполисов. Конструкция, реализующая комбинацию двух упомянутых выше особенностей, подробно исследовалась в [6]. В настоящей статье рассматривается применение конструкций [6] к решению задачи листовой резки. Предлагается специализированный вариант динамического программирования и эффективный эвристический алгоритм. В связи с другими подходами к решению проблемы маршрутизации листовой резки отметим [7-12].
Динамическое программирование (специализированная схема)
Рассмотрим некоторые подходы к решению задачи минимизации естественной целевой функции, учитывающие условия вложенности контуров заготовок. Для решения упомянутой выше задачи представляется логичным использовать весьма общую математическую модель, в основе которой находится идея, связанная с оптимизацией последовательного обхода мегаполисов в постановке [6, ч. 4]. Упомянутые мегаполисы имеет смысл разместить вблизи эквидистант контуров деталей, подлежащих резке. Разумеется, упомянутые мегаполисы являются на самом деле объектами виртуальными и используются для
оптимизации как расположения точек врезки, так и самой очередности выполнения операций, связанных с резкой контуров. Сохраняем естественные условия предшествования, придавая им форму, удобную для математического исследования. Будем связывать (в данной постановке) с каждым из контуров конечный набор точек на плоскости, расположенных всякий раз вблизи соответствующего контура. Данные точки - «города мегаполисов» - связываем с гипотетической возможностью врезки. После осуществления оптимизации (глобальной или локальной) можно будет осуществить выбор конкретных точек врезки.
Итак, мы полагаем заданными «виртуальные мегаполисы» М1, ..., Мм, определяемые каждый в виде непустого конечного множества на плоскости; каждый из этих мегаполисов располагается возле контура соответствующей детали; здесь N - натуральное число, определяющее количество (замкнутых) контуров, подлежащих резке, N > 2. Полагаем, что в рамках выбранной модели фиксировано начальное состояние (база) х° е Я хЯ (здесь Я - вещественная прямая), являющееся плоским вектором. Исполнитель (условный термин) покидает х0, посещает все мегаполисы М1, ..., М N, после чего перемещается в заданную конечную точку у0 е Я х Я . В процессе перемещения должны выполняться все условия предшествования. В данной постановке не обсуждается сам процесс резки - движения инструмента по контурам, поскольку при любом выборе маршрута время, затрачиваемое на саму резку, одно и то же. Однако это обстоятельство учитывается далее при постановке задачи о последовательном обходе мегаполисов, где (на макроуровне) отождествляются пункты прибытия и отправления для каждого мегаполиса, а особенности, связанные с врезкой и перемещением к эквидистанте, учитываются на уровне определения функций стоимости.
Рассмотрим множество Г всех перестановок множества 1,N: = {? е N1? < N}, где N = {1; 2; ...}. Введем, кроме того, множество К, К х 1, N, элементами которого являются упорядоченные пары (У/П) индексов из 1 ^. В терминах К определяются условия предшествования. В простейшем варианте (ограничимся сейчас этим случаем), когда у каждой детали имеется самое большее один внутренний контур (речь, например, может идти о шайбе) К составляется из У/П, для каждой из которых можно указать деталь, имею-
щую внутренний контур, причем первый элемент такой У/П соответствует индексу мегаполиса, связанного с обслуживанием внутреннего контура, а второй - индексу мегаполиса, связанного с обслуживанием внешнего контура. Такие У/П условимся называть адресными. Итак, К есть совокупность всех адресных У/П. Мы не исключаем случая К = 0 (резка деталей без внутреннего контура; круги, квадраты и т. п.).
Будем полагать выполненными условия (см. [6, гл. 4]): 1) X0 г М, V, е ; 2) Мр п М9 =0 при р ф q ; 3) для каждого непустого множества К0, К0 с К , существует z0 е К0 : ргх(¿0) ф рг2(2) Vz е К0 (здесь рг1 (•) и рг2 (•) определяют проектирование У/П; см. [6, с. 16]). Впрочем, в рассматриваемой задаче третье условие, как правило, выполняется.
Нам требуется специальное понятие трассы, согласованной с маршрутом: если а е Р, то через X а обозначаем (непустое конечное) множество всех кортежей
(Х-),
: 0, N ^ Я х Я
(1)
¡'¡е0,Й
(здесь 0, N := {0} и 1, N, для каждого из которых х0 = х0 и х. е Ма&.) V] е 1, N. Будем использовать только маршруты, допустимые по предшествованию (маршрут а е Р допустим, если V. е К
VI, е1Й Vt2
((а(?1) = рг (.)) & (а^) = ргг (.))) ^ (tl < t2);
итак, постулируется более ранняя обработка внутренних контуров): множество всех таких маршрутов есть А [6, (2.1.5)], причем А ф0 . Тогда
У/П (а,(х, ),е— ^ ае A, (х, ),е0Й е Ха , и только
они - суть допустимые решения задачи, определяемой далее.
Введем с:(Я х Я) х (Я х Я) ^ [0, <»[ и /: Я х Я ^ [0, <»[; с оценивает внешние перемещения, а /- терминальное состояние. В основе конкретного определения с и /будут позднее закладываться зависимости, связанные с задачей резки, но сейчас их конкретизировать не будем. Сопоставляем каждому кортежу (1) значение
N-1
т((х- ),е0й) := X с(Х-, Х-+1) + /(ХЙ) е [0, (2)
,=0
Тогда основная задача маршрутизации (ОЗМ) имеет вид
т((Х, ),е0Й ) ^ mln, ае A, (X ),е0Й е Ха . (3)
Заметим, что в задаче (3) критерий (см. (2)) явным образом от а е А не зависит. Поэтому на
самом деле (3) можно представлять как задачу
Т((X)<60й) ^тт,(х, ) , е X, (4)
где X есть объединение всех множеств Ха, а е А. Разумеется, задачи (3) и (4) эквивалентны. Имеются, однако, некоторые обстоятельства, которые делают постановку (3) предпочтительной (это, в частности, связано со структурой уравнения Беллмана; [см. 6, предложение 3.2.1] в частном случае постоянных мультифункций [6, (2.1.1)], здесь мы ограничиваемся этим случаем). Через V обозначаем значение (экстремум) (3), т. е. наименьшее из чисел у((X),-е0Плт), (х I),е0й е X. Оптимальным решением называем
У/П (а0,(х,)), а0 е А, (х?),^ е Ха, для
.0 /Х0 )
которой у((х°)) = V . Разумеется, справедливо равенство
V = т1п т1п у(( х) —).
ае А (х,),^еХ„ ^ '
Надо найти V и какое-либо из оптимальных решений - в этом состоит решение ОЗМ. В [6, § 4.9] построена экономичная версия метода динамического программирования (МДП), доставляющая оптимальное решение ОЗМ. Сейчас кратко (на идейном уровне) обсудим решение ОЗМ (3) с использованием нестандартной версии МДП, подробно изложенной в монографии [6] и в целом ряде журнальных статей (см. [13, 14] и др.).
Итак, введем семейство Р всех непустых подмножеств и Р0 := Р и {0} (семейство всех подмножеств 1 ). Введем также оператор I [6, (2.2.27), (2.2.28)], действующий в Р (значения I определены в [6, (2.2.26), (2.2.28)]). При К е Р полагаем, что |К| есть мощность К, |К| е1,Й; | 01:= 0. Введем частичные маршруты и трассы, имея в виду выполнение заданий с индексами из К е Р : при JK := {, е N |, <| К |} определяем (Ы)[К] как множество всех биекций [15] JK на К. Следуя определению [6, с. 28] и учитывая [6, (2.2.27), (2.2.28), предложение 2.2.3], получаем при К е Р непустое [6, (2.2.54)] множество (I - Ы[К], для которого (I - Ы)[К] с (Ы)[К]. Элементы (I - Ы[К] - частичные маршруты посещения мегаполисов (Мк, к е К), обладающие допустимостью «по вычеркиванию» (напомним, что I [6] есть оператор вычеркивания задания из списка). При этом, кстати, [6, с. 33], А = (I - Ы)[1, Й], чем объясняется тождественность двух типов допустимости в ОЗМ (допустимость по предшествованию и допустимость «по вычеркиванию»).
Полагаем теперь при КеР, что JK := {0} и JK, и, при х е Я х Я и ае (¿/)[К], определяем Х( х,К,а) как (непустое) множество всех кортежей
(5)
таких, что x0 = x и xj e Ma(j-)
(X -1 К ^ Я х Я
Уу е JK . Тем самым введены частичные трассы (кстати, Ха = Х(х0,1,N,а) У а е Р ); для нас это определение существенно в случае а е А . При К е Р каждому кортежу (5) сопоставляется значение
|К|-1
у К((х )?е JK) := Е с( ху, ху+1) + (^). (6)
У=0
В частности, (7) можно использовать для оценивания частичных трасс. С учетом этого рассматриваем частичные (укороченные, вообще говоря) задачи:
Yк ((X)ieJо) ^ min, а е (I - ¿OI^L (x),е ,0 е X(x, K,a),
(7)
где х е Я х Я и К е Р . Для каждой такой задачи определен экстремум (значение)
v( x,K): = min min
ae(I-ii)[K] (Х') о eX(x,K,a)
'eJK
YK((xi L,0 ) e [0,(4.
(8)
Полагаем также v(x, 0) = f (x) Vx e R x R . Тем самым мы определили функцию v, действующую из R x R x F := (R x R) x F в [0, <»[.
Предложение 1. Если x e R x R и K e F , то справедливо равенство
v( x, K) = min min[c(x, y) + v( y, K\{j})]. (9)
jeI(K) yeMj
Доказательство легко извлекается из [6, предложение 3.2.1]. Предложение 1 определяет уравнение Беллмана, содержащее, как видно из (9), некоторые особенности (внешний минимум реализуется с учетом правила вычеркивания). Для практического применения предложения 1 следует использовать конструкцию [6, § 4.9], где установлена возможность построения (без потери качества) оптимального решения на основе усеченного массива значений функции Беллмана. Множества из F именуем списками. Следуя [6, § 4.9], введем семейство
G = {K e F| Vz e K (pr1 (z) e K) ^ (pr2 (z) e K)}
(при K = 0 имеем равенство G = F) всех существенных (и неупорядоченных) списков, которые ранжируем по мощности,
полагая С, : = {К е С | 5 =|К|} У5е1,N. При К1 = {рг1 (г): г е К} имеем равенство
С = {{? е1, N \ К (семейство всех одноэлементных существенных списков). Понятно, что СN = {1, Щ (семейство, содержащее единственное множество 1, N); наконец,
С5-1 = {К\{?}:КеС5,?е 1(К)} У5 е е (10)
В (10) определена рекуррентная процедура построения семейств С1, ..., С. На их основе конструируются слои пространства позиций, обозначаемые D0,D1,...,DN . Для определения D0 введем сначала множество М в виде объединения всех множеств Мпг е 1, N\К, после чего полагаем D0 := {(х, 0): х е М} . Пусть, кроме того, БN := {(х0,1,N)} (одноэлементное множество, содержащее У/П (х°,1,^ - «настоящую» начальную позицию). Если же 5 е 1,N -1, то полагаем J5(К): = {г е lN \ К|{г} и К е G5+1} УК е ^5; после этого определяем D5 в виде
У {(х,К):хе У М,}.
KеG 5 г'еЛДК)
Тогда каждое из множеств D0,D1, ..., D^^ непусто и состоит из позиций - элементов множества-произведения Я х Я х Р . Основное свойство этих множеств имеет вид
(у,К\{к}) е D5-! У5 е^ У(х,К^,
У к е 1(К) У у е Мк. (11)
Теперь определяем слои функции Беллмана: если 5 е 0, N, то
v : D, ^ [0, <»[
(12)
определяем правилом (х, К): = у( х, К)
У(х,К) е D5. Итак, слои (12) определены в виде сужений функции Беллмана на слои пространства позиций. Из предложения 1 и (11) вытекает
Предложение 2. Если 5 е 1, N, то V определяется системой равенств:
v(X K) = РУД mjn[c( x, У) + Vi(У, K4^})]
AeI(K) yeM^
(13)
У( х,К) е D 5.
Итак, функция у0 известна (у0 (х, 0) = /(х) Ух е М), а предложение 2 определяет преобразование V-1 ^ при 5 е 1, N.
Рассмотрим нужную конкретизацию функций с и /; мы полагали эти функции максимально продолженными. Однако с точки зрения ОЗМ реально нас интересуют, в вопросах конкретного задания значений с(х®, х(2)), лишь следующие
два случая: 1) х(1) = х° и х(2) е М . при некотором . ; 2) х(1) е М р и х(2) е М., где р е ц е1, N и р ф ц . Для всех прочих векторов х(1) е Я х Я и х(2) е Л х Я можно, например, полагать с(х(1), х(2)) := 0 (имеется в виду У/П (х(1), х(2)), не соответствующие ни первому, ни второму случаям. Воздержимся сейчас от точного описания всех таких несущественных для дальнейшего У/П с элементами в Я х Я). Заметим далее, что не существует У/П (х(1), х(2)), х(1) е Я х Я, х(2) е Я х Я, одновременно удовлетворяющих обеим случаям. Итак, значения с(х®, х(2>) можно задавать раздельно для первого и второго случаев; соответствующее определение с будет корректным. Первый случай является наиболее простым: для хе М , где . е1,NN, полагаем, что с(х , х) := р(х , х), где (здесь и ниже) р есть евклидово расстояние в Я х Я.
Подробнее рассмотрим второй случай, полагая в дальнейшем, что точка выключения инструмента находится всякий раз на эквидистантном контуре, по которому осуществляется резка, и отвечает завершению процесса резки для соответствующего контура. Полагаем, что задан коэффициент 9 е Я, 9 > 1, характеризующий замедление движения в металле по сравнению с движением холостого хода; можно считать, что реальное расстояние в металле умножается на 9, что позволяет конструировать функцию с в метрических терминах. Пусть при р е 1, N L есть эквидистантный контур, отвечающий контуру заготовки, имеющему номер р. Полагаем, что L есть всякий раз компактное множество. Если к тому же задана точка х(1) е М и точка х(2) е Я х Я , то определена некоторая точка у°р [х(1); х(2) ] е L , с которой будет начата, после перемещения из х(1), резка и закончена; затем последует перемещение в точку х(2) на холостом ходу. Затраты на эту операцию полагаются равными величине
Ср (х(1), х(2)) = 9р( х(1), [ х(1); х(2)]) + (14) + р(ур[х(1);х<2)],х(2)) е [0,«,[.
Мы можем рассматривать различные варианты задания у°р [х(1); х(2) ]. Так, например, можно полагать, что у°р [х(1); х(2) ] е L минимизирует зависимость
у ^ 9р(х(1), у) + р(у, х(2)): Lр ^ [0,«>[.
Можно допустить определенное огрубление:
считать, что у°р [х(1), х(2)] - одна из ближайших (в L р) точек к х®.
Мы будем считать, что М есть def объединение всех Шпг е 1, N. В этих условиях упомянутые выше точки х® и х(2) будем выбирать сейчас только в пределах М, фиксируя при р е 1, Л, х(1) е Мр и х(2) еМ\{х(1)} точку у°[х(1), х(2)]е Lр и определяя при этом ср (х(1), х(2)) посредством (14).
Отметим далее, что в силу попарной дизъ-юнктности мегаполисов для каждой точки из объединения всех множеств Мг,/е 1 ,N , опр еде -лен единственный индекс г|[х] е 1, N, для которого х е Мп[х]. С учетом этого полагаем в условиях второго случая, что с(х(1), х(2)) := с х(1)] (х(1), х(2)). Таким образом, определена существенная «часть» функции стоимости с. Будем считать заданной точку у0 е Я х Я (точка финиша), для которой /(х):=р(х,у0) Ухе Я хЯ .
Эвристический алгоритм
Процедура строится на основе известного жадного алгоритма решения маршрутных задач. Особенность конструкции состоит в итерационном методе его использования. Именно после каждой итерации один из переходов от мегаполиса к мегаполису искусственно делается невыгодным (его стоимость становится очень большой).
Разделим алгоритм на две части: непосредственно сам алгоритм и правило его итерационного применения.
Описание алгоритма по шагам.
1. Находим контур с номером, не являющимся второй компонентой ни в одной из адресных пар, и содержащий точку врезки, стоимость перехода в которую из точки старта минимальна. Делаем данный контур первым на маршруте, а данную точку врезки первой на трассе.
2. Находим контур с номером, не являющимся второй компонентой ни в одной из адресных пар, в которых первая компонента еще не на маршруте, и содержащий точку врезки, стоимость перехода в которую с предыдущего контура на маршруте минимальна. Делаем данный контур и данную точку врезки следующими на маршруте и трассе.
3. Выполняем шаг 2 для всех оставшихся контуров, пока маршрут не будет построен.
4. Для первого контура маршрута среди всех его точек врезки находим такую, которая дает минимальное значение суммы стоимости перехода в нее из старта и стоимости перехода на следующий контур маршрута.
5. Для следующего контура маршрута среди всех его точек врезки находим такую, которая дает минимальное значение суммы стоимости перехода в нее с предыдущего контура маршрута и стоимости перехода на следующий контур маршрута.
6. Выполняем шаг 5 для всех последующих контуров маршрута, кроме последнего.
7. Для последнего контура маршрута среди всех его точек врезки находим такую, которая дает минимальное значение суммы стоимости перехода в нее с предыдущего контура маршрута и стоимости перехода в финишную точку.
8. Выполняем шаги 4-7 заданное количество раз - количество итераций упорядочения точек врезки (обозначим данное количество через N1).
Основная идея итерационного подхода состоит в том, чтобы всякий раз направлять алгоритм по новому пути, заставляя находить выходы из локальных экстремумов. Для этого вводятся специальные коррекции стоимостей переходов от контура к контуру - матрица А с коэффициентами А,,. е {0,1}, , е 1,N1, ] е 1,N . Если А,,. = 1, то стоимость перехода на контур с индексом в случае, если он находится в маршруте на позиции ], заменяется очень большой константой. В противном случае стоимость рассчитывается традиционным способом.
В итерационном подходе будут использованы следующие параметры. Общее количество итераций N2 и размерность цикла итераций N3. На каждой из N2 итераций, за исключением первой, для одного из контуров, выбранного случайно, делается коррекция. По завершении каждого цикла из N3 итераций все коррекции сбрасываются. Далее идет детальное описание алгоритма.
1. Выполняем алгоритм без коррекций. Сохраняем результат счета. _
2. Выбираем случайно позицию N на маршруте. В этой позиции находим контур с индексом 7,7 е 1, N. Принимаем А , = 1.
3. Выполняем алгоритм с учетом коррекции. Если результат счета улучшился по сравнению с сохраненным, запоминаем результат и маршрут с трассой.
4. Выполняем шаги 2 и 3 еще N3-1 раз (N3-2 для первого цикла итераций - первая итерация была на шаге 1 без коррекции).
5. Обнуляем матрицу итераций.
6. Выполняем шаги 2-5 до тех пор, пока количество итераций не превысит число N2.
7. Используем сохраненный наилучший результат счета и соответствующие ему маршрут и трассу как результат работы итерационного алгоритма.
Вычислительный эксперимент
Вычисления производились на ПЭВМ с процессором Intel i7-2630QM с 8 Гб оперативной памяти, работающей под управлением Windows 7 (64-bit).
В ходе вычислительного эксперимента рассматривались два примера. Первый пример - небольшой размерности. Данное обстоятельство позволило применить к нему динамическое программирование, чтобы оценить, насколько результат эвристического алгоритма близок к оптимальному. Во втором примере требуется обойти сто пятьдесят контуров, что вполне соответствует средней задаче раскроя. Во всех случаях числовые данные не приводятся в целях экономии места. Точки X и ya совпадают с началом координат.
Пример 1. Требуется обойти двадцать четыре контура, при этом восемь из них являются вложенными. Использовались следующие значения параметров: N1 = 3, N2 = 10 000, N3 = 5. Для учета движения резака в металле 9 = 50 .
Эвристический алгоритм. Результаты счета показаны на рис. 2. Время счета составило 1 с. Результат счета 724,7. Тот же пример, но без использования итерационного подхода: время счета меньше секунды, результат счета 821,58.
На рисунке квадратиками обозначены точки врезки, маленькими крестиками - точки завершения реза.
Результаты для динамического программирования: время счета 2 мин 10 с, экстремум 718,49. Видно, что результат эвристического алгоритма получился достаточно близким к экстремуму.
Пример 2. Требуется произвести обход ста пятидесяти контуров (пятьдесят контуров были вложенными). Использовались следующие значения параметров: N1 = 3, N2 = 25 000, N3 = 5. Для учета движения резака в металле 9 = 50 .
Результаты счета показаны на рис. 3. Время счета составило 90 с. Результат счета 4402,04. Тот же пример, но без использования итерационного подхода: время счета меньше секунды, результат счета 4811,65.
Математическая модель, использующая элементы маршрутизации и условия предшествова-
Рис. 2. Результаты счета эвристического алгоритма для примера 1
Рис. 3. Результаты счета эвристического алгоритма для примера 2
ния, может быть весьма полезной при решении задач оптимизации процесса резки деталей с применением станков с ЧПУ, включая те случаи, когда размерность задачи достаточно велика. Использование оптимальной процедуры Беллмана в таких случаях затруднено сложностью вычислительной реализации и прежде всего ограниченностью памяти, что существенно в вопросах насчи-тывания требуемого массива значений функции Беллмана. В случае, когда требуется решать задачи значительной размерности, могут использоваться специальные эвристические алгоритмы. Один из таких алгоритмов приведен в данной статье. Отметим, что при умеренной размерности оптимальная процедура, типа используемой
в [5, § 4.9], может успешно применяться. Один из способов применения оптимальной процедуры -тестирование эвристических алгоритмов.
Эвристический алгоритм, предложенный в статье, обеспечивает соблюдение условий предшествования и обладает хорошим быстродействием, сочетая в себе идею жадного алгоритма и логику итераций. Безусловно, для оценки границ его применимости требуется большой вычислительный эксперимент. В алгоритме присутствует ряд параметров, выбор которых сам по себе представляет серьезную задачу и поле для дальнейших исследований. Кроме того, алгоритм коррекции стоимостей также может быть изменен для достижения наилучших результатов.
СПИСОК ЛИТЕРАТУРЫ
1. Петунин, А.А. Разработка CAM системы для машин резки листового материала как пример инновации [Текст] / А.А. Петунин // Инновационные информационные технологии: Теория и практика: Матер. Междунар. сем. (Карлсруе - Уфа - Дрезден, 8-13 апр. 2011). -Уфа, 2011. -С. 47-50.
2. Петунин, А.А. Об оптимизационных моделях и алгоритмах решения задач проектирования управляющих программ для машин листовой резки [Текст] / А.А. Петунин // Информационные Технологии и Системы: Матер. Междунар. научн. конф. ИТИС-2012. -Челябинск: ЧелГУ, 2012.
3. Меламед, И.И. Задача коммивояжера. Вопросы теории [Текст] / И.И. Меламед, С.И. Сергеев, И.Х. Сигал // Автоматика и телемеханика. -1989. -№ 9. -С. 3-34.
4. Меламед, И.И. Задача коммивояжера. Точные алгоритмы [Текст] / И.И. Меламед, С.И. Сергеев, И.Х. Сигал // Автоматика и телемеханика. -1989. -№ 10. -С. 3-29.
5. Меламед, И.И. Задача коммивояжера. Приближенные алгоритмы [Текст] / И.И. Меламед, С.И. Сергеев, И.Х. Сигал // Автоматика и телемеханика. -1989. -№ 11. -С. 3-26.
6. Ченцов, А.Г. Экстремальные задачи маршрутизации и распределения заданий: вопросы теории [Текст] / А.Г. Ченцов. -Ижевск: НИЦ «Регулярная и хаотическая динамика», Ижевский институт компьютерных исследований, 2008. -240 с.
7. Петунин, А.А. О некоторых стратегиях формирования маршрута инструмента при разработке управляющих программ для машин термической резки материала [Текст] / А.А. Петунин // Вестник УГАТУ Сер. Управление, вычислительная техника и информатика.
-2009. -Т. 13. -№ 2 (35). -С. 280-286.
8. Fischetti, M. A Branch-and-Cut algorithm for the symmetric generalized traveling salesman problem [Text] / M. Fischetti, J.J. Salazar-Gonzalez, P. Toth // Operations Research. -1997. -Vol. 45 (3). -P. 378-394.
9. Snyder, L.V. A random-key genetic algorithm for the generalized traveling salesman problem [Text] / L.V. Snyder, M.S. Daskin // European J. of Operational Research. -2006. -Vol. 174. -P. 38-53.
10. Silberholz, J. The Generalized Traveling Salesman Problem: a new Genetic Algorithm approach [Text] / J. Silberholz, B. Golden // Extending the Horizons: Advances in Computing, Optimization, and Decision Technologies. -2007. -P. 165-181.
11. Gutin, G. A Memetic Algorithm for the Generalized Traveling Salesman Problem [Text] / G. Gutin, D. Karapetyan // Natural Computing. -Springer, 2010. -Vol. 9 (1). -P. 47-60.
12. Кочетов, Ю.А. Методы локального поиска для дискретных задач размещения. Модели и алгоритмы [Текст] / Ю.А. Кочетов. -Saarbrucken: Lambert Academic Publishing, 2011. -259 c.
13. Ченцов, А.А. Экстремальная задача маршрутизации перемещений с ограничениями и внутренними потерями [Текст] / А.А. Ченцов, А.Г. Ченцов, П.А. Ченцов // Изв. вузов. Математика. -2010. -№ 6. -С. 64-81.
14. Ченцов, А.А. Об одной задаче маршрутизации с внутренними работами [Текст] / А.А. Ченцов, А.Г. Ченцов // Тр. Ин-та математики и механики УрО РАН. -2012. -Т. 18. - № 1. -С. 298-317.
15. Кормен Т., Алгоритмы: построение и анализ [Текст] / Т. Кормен, Ч. Лейзерсон, Р. Ривест. -М.: МЦНМО, 1999. -960 с.
1. Petunin A.A. Razrabotka CAM sistemy dlia mashin rezki listovogo materiala kak primer innovatsii / Innovat-sionnye informatsionnye tekhnologii: Teoriia i praktika: mater. Mezhdunar. sem. (Karlsrue - Ufa - Drezden, 8-13 apr. 2011). -Ufa, 2011. -S. 47-50. (rus)
2. Petunin A.A. Ob optimizatsionnykh modeliakh i algoritmakh resheniia zadach proektirovaniia upravliai-ushchikh programm dlia mashin listovoi rezki / Informat-sionnye Tekhnologii i Sistemy: Mezhdunar. nauchn. konf. ITIS-2012 . -Cheliabinsk: ChelGU, 2012. (rus)
3. Melamed I.I., Sergeev S.I., Sigal I.Kh. Zadacha kommivoiazhera. Voprosy teorii / Avtomatika i teleme-khanika. -1989. -№ 9. -S. 3-34. (rus)
4. Melamed I.I., Sergeev S.I., Sigal I.Kh. Zadacha kommivoiazhera. Tochnye algoritmy / Avtomatika i tele-mekhanika. -1989. -№ 10. -S. 3-29. (rus)
5. Melamed I.I., Sergeev S.I., Sigal I.Kh. Zadacha kommivoiazhera. Priblizhennye algoritmy / Avtomatika i telemekhanika. -1989. -№ 11. -S. 3-26. (rus)
6. Chentsov A.G. Ekstremal'nye zadachi marshruti-zatsii i raspredeleniia zadanii: voprosy teorii. -Izhevsk: NITs «Reguliarnaia i khaoticheskaia dinamika», Izhevskii institut komp'iuternykh issledovanii, 2008. -240 s. (rus)
7. Petunin A.A. O nekotorykh strategiiakh formiro-vaniia marshruta instrumenta pri razrabotke upravliaiush-chikh programm dlia mashin termicheskoi rezki mate-riala / Vestnik UGATU. Ser. Upravlenie, vychislitel'naia tekhnika i informatika. -2009. -T. 13. -№ 2 (35). -S. 280-286. (rus)
8. Fischetti M., Salazar-Gonzalez J.J., Toth P.
A Branch-and-Cut algorithm for the symmetric generalized traveling salesman problem. Operations Research. -1997. -№ 45 (3). -P. 378-394.
9. Snyder L.V., Daskin M.S. A random-key genetic algorithm for the generalized traveling salesman problem / European J. of Operational Research. -2006. -№ 174. -P. 38-53.
10. Silberholz J., Golden B. The Generalized Traveling Salesman Problem: a new Genetic Algorithm approach / Extending the Horizons: Advances in Computing, Optimization, and Decision Technologies, 2007. -P. 165-181.
11. Gutin G., Karapetyan D. A Memetic Algorithm for the Generalized Traveling Salesman Problem / Natural Computing. -Springer, 2010. -Vol. 9 (1). -P. 47-60.
12. Kochetov Iu.A. Metody lokal'nogo poiska dlia diskretnykh zadach razmeshcheniia. Modeli i algoritmy. -Saarbrucken: Lambert Academic Publishing, 2011. -259 s.
13. Chentsov A.A., Chentsov A.G., Chentsov P.A. Ekstremal'naia zadacha marshrutizatsii peremeshchenii s ogranicheniiami i vnutrennimi poteriami / Izv. vuzov. Matematika. -2010. -№ 6. -S. 64-81. (rus)
14. Chentsov A.A., Chentsov A.G. Ob odnoi za-dache marshrutizatsii s vnutrennimi rabotami // Tr. In-ta matematiki i mekhaniki UrO RAN. -2012. -T. 18. - № 1. -S. 298-317. (rus)
15. Kormen T., Leizerson Ch., Rivest R. Algorit-my: postroenie i analiz. - Moscow: MTsNMO. -1999. -960 s. (rus)
© Санкт-Петербургский государственный политехнический университет, 2013