Читаем Системная технология полностью

Системная технология и ее модели, принципы и условия с большой пользой применялись для построения системных технологий решения ряда прикладных математических задач дискретной оптимизации, моделирования дискретных и непрерывных объектов управления, создания компьютерных систем имитационного моделирования, для проектирования схем соединений на печатных платах, для создания технологий тестирования и многих других задач. В данной главе описывается один из успешных опытов применения принципов построения технологий к построению технологии решения задач дискретной оптимизации на примере широко известной «задачи о коммивояжере» (ЗОК). Этот пример выбран по той простой причине, что в нем сочетается простота и понятность постановки задачи со сложностью нахождения точного или приемлемого для практики решения. ЗОК относится к трудноразрешимым задачам, которые называют еще «NP-полными».

Постановка ЗОК выглядит следующим образом. Имеется п пунктов, в одном из которых находится коммивояжер. Все эти пункты коммивояжер должен посетить и вернуться для отчета в исходный пункт. Расстояния между ними известны. Требуется найти маршрут коммивояжера, при котором суммарное расстояние, которое он пройдет, будет наименьшим из всех возможных. Эту задачу постоянно решает любой путешественник, собирающийся посетить несколько городов. Вместо расстояний между городами можно взять стоимости проезда теми видами транспорта, которыми можно воспользоваться при переезде из одного города в другой. Вместо городов могут присутствовать операции технологического цикла, а вместо расстояний – время, необходимое для перехода от одной операции к другой. К задаче коммивояжера в формальном виде сводятся многие задачи управления, экономики, планирования и организации. Решить ЗОК простым перебором для больших п практически невозможно, так как число возможных решений равно (п-1)! или «(n-1) факториал».

Применение принципа обогащения к решению ЗОК позволяет построить эффективную технологию. В этом случае технология решения состоит из двух основных алгоритмов. Первый алгоритм позволяет обогатить исходный массив данных, исключая из него те «расстояния», которые не могут участвовать в оптимальном маршруте. Второй алгоритм позволяет найти оптимальный (или близкий к оптимальному) маршрут коммивояжера.

Задача поставлена и решена, как известная задача теории графов о нахождении оптимального гамильтонова цикла в графе [3].

9.2. Условие оптимальности

Для оптимального гамильтонова цикла справедливо следующее условие оптимальности: для любого простого маршрута, являющегося участком оптимального гамильтонова цикла и проходящего вершины графа в последовательности i1, i2, i3, ...,ia, (a=4,5, ...,n; i1=1,2,...,n) сумма весов входящих в него ребер ?(i1i2i3...ia) является минимальной в сравнении с любой другой суммой вида

?(i1i'2i'3...i'a-1ia):

при a =4,5, ... , n; i=1,2, ... , n; i'2 ,i'3 ,...,i'a-1, ? P

Здесь i'2, 'i3,..., i'a-1 — одна из перестановок чисел i2, i3,..., ia-1, P — множество всех перестановок этих чисел.

Очевидно, что если это условие не выполняется для каких – либо значений а и i, то существует гамильтонов цикл с меньшей длиной пути обхода вершин i1 ,i2 ,i3 ,..., ia-1,ia. Но, если полученный гамильтонов цикл оптимален, то его нельзя улучшить изменением пути обхода вершин i1, i2, i3,..., ia для любого а, имеющего значения в пределах от 4-х до п.

Значения а не могут быть меньше четырех, так как очевидно, что никакие два гамильтонова цикла не могут отличаться менее, чем тремя ребрами, проходящими четыре вершины последовательно в одном из двух возможных вариантов обхода: i1, i2, i3, i4 или i1, i3, i2, i4.

Пусть оптимальный гамильтонов цикл обходит вершины графа в последовательности

i1,i2,i3,..., in,i1. (9.2.1.a)

Гамильтонов цикл, оптимальный для определенного значения а, назовем а-оптимальным. Для а = 4 справедливо неравенство:

Условие (9.2.2) необходимо проверить для всех ik = i1 , i2,..., in и, если оно для всех 4 справедливо, то это необходимое и достаточное условие того, что гамильтонов цикл 4-оптимален. Просуммировав левые и правые части неравенств, получающихся при значениях ik = i1,i2,..., in, получаем необходимое условие 4-оптимальности в виде: Справедливо следующее условие:

Если гамильтонов цикл a1-оптимален, то он а2-оптимален для любого a2

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже