- •«Оптимизация переналадки автоматической линии»
- •Новочеркасск 2012 Содержание
- •Введение
- •1 Постановка задачи
- •1.1 Качественное описание исследуемой операции
- •1.2 Концептуальная модель операции
- •Математическая постановка задачи
- •2 Алгоритмизация решения задачи
- •2.1 Анализ методов решения задачи
- •2.2 Описание метода ветвей и границ
- •К этой матрице применяется процедура приведения, и значение суммы приводящих констант равно н . В результате получается матрица с .
- •2.3 Описание метода прямого перебора
- •2.4 Проектирование сценария диалога
- •2.4 Описание структур данных
- •2.5 Описание разработанной программной системы
- •3 Численные эксперименты
- •3.1 Ручная реализация алгоритма решения задачи с помощью алгоритма Литла
- •3.2 Ручная реализация алгоритма решения задачи с помощью метода полного перебора
- •2 Случай
- •3.3 Машинные эксперименты с разработанной программой
- •Заключение
- •Список литературы
- •Приложение а Листинг программы
1 Постановка задачи
1.1 Качественное описание исследуемой операции
На автоматической линии обрабатывается
партия из n деталей – А,
А+1,…
А+n-1.
Время наладки линии для обработки Аi
детали зависит от того, какая деталь
обрабатывается перед этим. Совокупность
времен переналадки представлена в виде
матрицы || tij
||, где tij– время переналадки
линии с обработки Аi
детали на обработку Аj
детали; i , j
.
Необходимо определить порядок обработки
деталей, при котором затраты времени
на переналадку автоматической линии
минимальны. При этом следует учесть,
что обработка деталей ведется по партиям
и по окончании обработки последней
детали партии автоматическая линия
должна быть переналажена на выпуск
первой детали партии. Поставленную
задачу решить методом ветвей и границ
и методом полного перебора. Задачу
необходимо решить для следующих данных:
1.2 Концептуальная модель операции
Исходная задача может быть представлена как задача коммивояжера, которая формулируется следующим образом:
Задано n городов и
матрица
расстояний между ними. Коммивояжер
должен посетить каждый из городов один
и только один раз и вернуться в исходный
пункт, причем его маршрут должен быть
таким, чтобы минимизировать суммарную
длину пройденного пути.
Математическая постановка задачи
Вводятся переменные /1/:
Хij = 1, – если коммивояжер переезжает из Аi в Аj;
Хij = 0, – в противном случае.
Тогда необходимо минимизировать функционал суммарной длины маршрута:
(4.1)
при условиях
(4.2)
(4.3)
,
(4.4)
где ui , uj - произвольные целые и неотрицательные числа. Условие (4.2) означает, что коммивояжер выезжает из каждого города ровно один раз, а условие (4.3) – что он въезжает в каждый город ровно один раз. Условия (4.4) в аналитической форме отражают цикличность маршрута. Нетрудно доказать что для любого цикла можно найти ui, удовлетворяющие условию (4.3) . Пусть ui = Р, если коммивояжер посещает город Аi на p-м этапе. Тогда при xij = 0 для всех i,j выполняется условие 2, а при хij=1 условие (4.3) превращается в равенство, т.к. ui - u j + (n – 1) xij = Р – (Р + 1) + (n – 1) = n – 2.
2 Алгоритмизация решения задачи
2.1 Анализ методов решения задачи
Метод прямого перебора для задачи коммивояжера с n городами основан на генерации n перестановок, определении на каждой перестановке суммарной длины пути и выборе в качестве оптимальной - перестановки с минимальной длиной пути. Для генерации перестановок целесообразно использовать алгоритм реупорядочения перестановочного хвоста (алгоритм – 1) /9/. К положительным сторонам этого метода следует отнести его простоту, обозримость, а также принципиальную возможность получения на гипотетической ЭВМ решение для задачи любой размерности. Основным недостатком рассматриваемого метода является стремительное возрастание количества перестановок при возрастании n. Так, при n = 10, количество перестановок равно 8628800. Этот недостаток существенно ограничивает использование данного метода для решения практических задач на реальных ЭВМ.
Существенно уменьшить количество вариантов при определенных исходных данных позволяет алгоритм Литтла, являющийся развитием метода ветвей и границ применительно к задаче коммивояжера /1/. Сущность метода состоит в том, что множество всех планов разбивается на два подмножества, первое из которых, содержит планы с непосредственным переходом из n - го города в l - й, а второе подмножество содержит планы с переходом из n-го города в l - й через промежуточные города. Для каждого подмножества вводится нижняя оценка и в качестве перспективного выбирается подмножество с минимальной оценкой. Перспективное подмножество аналогично разбивается на два подмножества, и для выбора нового перспективного подмножества сравниваются нижние оценки вновь сконструированных подмножеств с нижней оценкой подмножества, отброшенного на первом этапе. Процесс ветвления продолжается до тех пор, пока не будет получена совокупность перспективных пар, образующих замкнутый цикл длиной n . Основной недостаток данного метода – зависимость количества выполняемых операций не только от размерности матрицы расстояний, но и от значений элементов этой матрицы. Следует отметить, что при некоторых значениях элементов матрицы расстояний метод ветвей и границ по количеству операций совпадает с методом прямого перебора. Кроме того, при машинной реализации этого метода необходимо хранить преобразованные матрицы расстояний для всех конкурирующих подмножеств, что значительно повышает требования к объему памяти ЭВМ. В то же время на современном этапе развития теории дискретного программирования метод ветвей и границ является наиболее приемлемым для точного решения задачи коммивояжера при небольших значениях n . Подробное описание этого метода приведено в /1/.
