Научная статья на тему 'Кластеризация ситуаций в алгоритмах решения задачи коммивояжера и ее применение в некоторых прикладных задачах. Часть II. Списочная метрика и некоторые связанные оптимизационные проблемы'

Кластеризация ситуаций в алгоритмах решения задачи коммивояжера и ее применение в некоторых прикладных задачах. Часть II. Списочная метрика и некоторые связанные оптимизационные проблемы Текст научной статьи по специальности «Математика»

CC BY
96
25
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЭВРИСТИЧЕСКИЕ АЛГОРИТМЫ / ЗАДАЧИ ДИСКРЕТНОЙ ОПТИМИЗАЦИИ / МЕТОД ВЕТВЕЙ И ГРАНИЦ / КЛАСТЕРИЗАЦИЯ СИТУАЦИЙ / HEURISTIC ALGORITHMS / DISCRETE OPTIMIZATION PROBLEMS / BRANCH AND BOUNDARY METHOD / CLUSTERING SITUATIONS

Аннотация научной статьи по математике, автор научной работы — Мельников Борис Феликсович, Давыдова Елизавета Владимировна, Ничипорчук Настасия Владимировна, Тренина Марина Анатольевна

Актуальность и цели. В задачах дискретной оптимизации мы рассматриваем алгоритмы решения, основанные на расширениях метода ветвей и границ. Сами эти расширения заключаются в совместной работе нескольких вспомогательных эвристических алгоритмов, и они могут быть отнесены к разным, причем независимым друг от друга, областям искусственного интеллекта. Поэтому актуальность исследования обеспечивается как предметными областями, так и алгоритмами исследованием совместной работы разных вспомогательных алгоритмов, относящихся к различным областям искусственного интеллекта. Целью работы является дальнейшее описание применения кластеризации ситуаций в методе ветвей и границ на примере задачи коммивояжера. Материалы и методы. Применены эвристические алгоритмы искусственного интеллекта и дискретной оптимизации, объединенные в единый программный пакет, а также статистические методы анализа алгоритмов. Результаты. Результатами являются закономерности, полученные при применении кластеризации ситуаций и некоторых других эвристик в методе ветвей и границ при решении задачи коммивояжера. Выводы. Было предложено улучшение алгоритма ветвей и границ с помощью подключения к нему эвристики для кластеризации ситуаций. Кроме того, получены конкретные значения для относительного улучшения среднего времени работы этого алгоритма в рассмотренной нами прикладной задаче, являющейся вариантом задачи коммивояжера, близким к псевдогеометрическому.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Мельников Борис Феликсович, Давыдова Елизавета Владимировна, Ничипорчук Настасия Владимировна, Тренина Марина Анатольевна

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

CLUSTERING OF SITUATIONS IN THE ALGORITHMS FOR SOLVING THE TRAVELING SALESMAN PROBLEM AND ITS APPLICATION IN SOME APPLIED TASKS. PART II. LIST METRICS AND SOME RELATED OPTIMIZATION PROBLEMS

Background. In discrete optimization problems, we consider decision algorithms based on extensions of the branch and boundary method. These extensions themselves consist in the joint work of several auxiliary heuristic algorithms, and they can be attributed to different, independent of each other, areas of artificial intelligence. Therefore, the relevance of the research is provided both by subject areas and algorithms, i.e. the study of the joint work of various auxiliary algorithms related to different areas of AI. The goal is the further description of the application of clustering situations in the branch and bound method by the example of the traveling salesman problem. Materials and methods. The paper uses heuristic algorithms of artificial intelligence and discrete optimization, combined into a single software package, as well as statistical methods for analyzing algorithms. Results. The results are the regularities obtained with the application of clustering situations and some other heuristics in the method of branches and boundaries in solving the traveling salesman problem. Conclusions. It was proposed to improve the algorithm of branches and boundaries by connecting a heuristic to it for clustering situations. In addition, specific values were obtained for the relative improvement in the average time of operation of this algorithm in the applied problem considered by us, which is a version of the traveling salesman problem close to the pseudo-geometric one.

Текст научной работы на тему «Кластеризация ситуаций в алгоритмах решения задачи коммивояжера и ее применение в некоторых прикладных задачах. Часть II. Списочная метрика и некоторые связанные оптимизационные проблемы»

УДК 004.021; 004.023

DOI 10.21685/2072-3040-2018-4-6

Б. Ф. Мельников, Е. В. Давыдова, А. В. Ничипорчук, М. А. Тренина

КЛАСТЕРИЗАЦИЯ СИТУАЦИЙ В АЛГОРИТМАХ РЕШЕНИЯ ЗАДАЧИ КОММИВОЯЖЕРА И ЕЕ ПРИМЕНЕНИЕ

В НЕКОТОРЫХ ПРИКЛАДНЫХ ЗАДАЧАХ. Часть II. СПИСОЧНАЯ МЕТРИКА И НЕКОТОРЫЕ СВЯЗАННЫЕ ОПТИМИЗАЦИОННЫЕ ПРОБЛЕМЫ

Аннотация.

Актуальность и цели. В задачах дискретной оптимизации мы рассматриваем алгоритмы решения, основанные на расширениях метода ветвей и границ. Сами эти расширения заключаются в совместной работе нескольких вспомогательных эвристических алгоритмов, и они могут быть отнесены к разным, причем независимым друг от друга, областям искусственного интеллекта. Поэтому актуальность исследования обеспечивается как предметными областями, так и алгоритмами - исследованием совместной работы разных вспомогательных алгоритмов, относящихся к различным областям искусственного интеллекта. Целью работы является дальнейшее описание применения кластеризации ситуаций в методе ветвей и границ на примере задачи коммивояжера.

Материалы и методы. Применены эвристические алгоритмы искусственного интеллекта и дискретной оптимизации, объединенные в единый программный пакет, а также статистические методы анализа алгоритмов.

Результаты. Результатами являются закономерности, полученные при применении кластеризации ситуаций и некоторых других эвристик в методе ветвей и границ при решении задачи коммивояжера.

Выводы. Было предложено улучшение алгоритма ветвей и границ с помощью подключения к нему эвристики для кластеризации ситуаций. Кроме того, получены конкретные значения для относительного улучшения среднего времени работы этого алгоритма в рассмотренной нами прикладной задаче, являющейся вариантом задачи коммивояжера, близким к псевдогеометрическому.

Ключевые слова: эвристические алгоритмы, задачи дискретной оптимизации, метод ветвей и границ, кластеризация ситуаций.

B. F. Mel'nikov, E. V. Davydova, A. V. Nichiporchuk, M. A. Trenina

CLUSTERING OF SITUATIONS IN THE ALGORITHMS

FOR SOLVING THE TRAVELING SALESMAN PROBLEM AND ITS APPLICATION IN SOME APPLIED TASKS.

PART II. LIST METRICS AND SOME RELATED OPTIMIZATION PROBLEMS

© Мельников Б. Ф., Давыдова Е. В., Ничипорчук А. В., Тренина М. А., 2018. Данная статья доступна по условиям всемирной лицензии Creative Commons Attribution 4.0 International License (http://creativecommons. org/licenses/by/4.0/), которая дает разрешение на неограниченное использование, копирование на любые носители при условии указания авторства, источника и ссылки на лицензию Creative Commons, а также изменений, если таковые имеют место.

Abstract.

Background. In discrete optimization problems, we consider decision algorithms based on extensions of the branch and boundary method. These extensions themselves consist in the joint work of several auxiliary heuristic algorithms, and they can be attributed to different, independent of each other, areas of artificial intelligence. Therefore, the relevance of the research is provided both by subject areas and algorithms, i.e. the study of the joint work of various auxiliary algorithms related to different areas of AI. The goal is the further description of the application of clustering situations in the branch and bound method by the example of the traveling salesman problem.

Materials and methods. The paper uses heuristic algorithms of artificial intelligence and discrete optimization, combined into a single software package, as well as statistical methods for analyzing algorithms.

Results. The results are the regularities obtained with the application of clustering situations and some other heuristics in the method of branches and boundaries in solving the traveling salesman problem.

Conclusions. It was proposed to improve the algorithm of branches and boundaries by connecting a heuristic to it for clustering situations. In addition, specific values were obtained for the relative improvement in the average time of operation of this algorithm in the applied problem considered by us, which is a version of the traveling salesman problem close to the pseudo-geometric one.

Keywords: heuristic algorithms, discrete optimization problems, branch and boundary method, clustering situations.

Введение

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

Мы продолжаем нумерацию разделов, начатую в части I, однако, немного нарушая анонсированный в части I план настоящей части II, мы рассмотрим здесь следующие вопросы1:

• возможный подход к программной реализации мультиэвристического подхода (разд. 4);

• краткий пример применения метода ветвей и границ в другой задаче -логически связанной с основной задачей, рассматриваемой нами в настоящей статье (разд. 5);

• пример малой размерности псевдогеометрической версии задачи коммивояжера (разд. 6). Ранее намечавшиеся вопросы построения и конкретного описания списочной и матричной метрик мы рассмотрим в части III.

1 Первоначально все эти вопросы мы планировали рассмотреть в заключительной части III. Однако мы их рассматриваем сейчас, а в части III рассмотрим примеры списочной и матричной метрик, а также некоторые результаты вычислительных экспериментов. По-видимому, именно такой порядок является более естественным.

4. Возможный подход к программной реализации мультиэвристического подхода

Перейдем к краткому описанию программной реализации некоторых алгоритмов для данной задачи. В настоящей статье применен тот же самый подход, который ранее был описан в [2] (конечно, с заменой предметной области); такое применение той же самой программы с небольшими изменениями лишний раз показывает универсальность мультиэвристического подхода. Ниже мы используем классы библиотеки MFC (см. [3] и др.).

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

- уже использованных выбранных ранее разделяющих элементов (далее arrYes);

- разделяющих элементов, возможных для дальнейшего выбора «с точки зрения» представления массива коммивояжера, но запрещенных согласно логике решения задачи (далее arrNo); в наших предыдущих публикациях ([4, 5] и др.) мы для них часто употребляли название «табуированные элементы».

Итак, опишем этот класс следующим образом:

class MySubTask { private:

MyMatrix* pMatrix; MyMatrix matrThis; MyArrayElement* pArrayElement; MyWordArray arrYes, arrNo; public:

MySubTask

(MyMatrix* pMatrix, MyArrayElement* pArrayElement); MySubTask (MySubTask& copy); // конструктор копии int Bound () { return *pMatrix - matrThis; } int GetSumma () { return matrThis.GetSummaO; } private:

void AddYes (int nom); void AddNo (int nom); public:

int SelectElementSimple (); MySubTask* MakeRight (); friend istream& operator>>

(istream& is, MySubTask& subtask); friend ostream& operator<<

(ostream& os, MySubTask& subtask);

};

bool operator> (MySubTask& st1, MySubTask& st2);

К приведенному описанию необходимы следующие комментарии. • Поле pMatrix1 указывает на одну матрицу - исходную матрицу коммивояжера, общую для всех подзадач; поэтому при вызове деструктора

1 Мы «по-паскалевски» работаем с указателями, не употребляем модификатора static и др. Далее не будем специально обращать внимание на эти вопросы.

класса MySubTask мы не освобождаем ее память; это нужно делать в классе, описывающем всю задачу, эти действия будут реализованы в соответствующем деструкторе.

• В отличие от *pMatrix, поле matrThis является матрицей, принадлежащей данной подзадаче.

• Класс MyArrayElement описывает массив рассматриваемых разделяющих элементов \ Этот класс желательно сделать наследником класса CPtrArray.

• Мы упоминали про уже выбранные разделяющие элементы - их номера хранятся в массиве arrYes. Для этого массива желательно использовать не непосредственно класс CWordArray, а его наследник - определенный непосредственно нами класс MyWordArray.

Приведем комментарии к описаниям методов.

• Первый из конструкторов необходим для самой первой (исходной) инициализации подзадачи - когда она является корнем дерева перебора и, упрощенно говоря, совпадает с самой задачей.

• Методы Bound() и GetSumma() необходимы для вычисления «качества» получаемого решения. Вообще, работа этих методов сводится к работе методов класса MyMatrix, который мы в данной статье подробно рассматривать не будем.

• Методы AddYes() и AddNo() добавляют новый номер в один из соответствующих массивов MyWordArray.

• Перегруженный оператор > сравнивает подзадачи по их «качеству» -для их возможного упорядочивания в массиве подзадач (точнее, упорядочивания указателей на них).

• Важный вспомогательный эвристический алгоритм реализован методом SelectElementSimple(). Из тех ребер, которые еще не использовались ни в arrYes, ни в arrNo, он выбирает в некотором смысле «наилучший». Если такого ребра больше нет, метод возвращает -1 (а в хорошем случае возвращает номер добавленного ребра). Текст метода очень важен: он описывает стандартную работу с классом CPtrArray или с его наследником путем последовательного перебора его элементов:

int MySubTask::SelectElementSimple () { int nBestAdd = 0; int nBestNom = -1;

for (int i=0; i<pArrayElement->GetSize(); i++) {

if (arrYes.ExistsNom(i) || arrNo.ExistsNom(i)) continue;

MyElement* pElement = (MyElement*) pArrayElement->GetAt(i); int nTmp = matrThis.HowManyNew(*pElement); if (nTmp<=nBestAdd) continue; nBestAdd = nTmp; nBestNom = i;

1 Выбор этих элементов в программах часто происходит путем применения второго («малого») метода ветвей и границ. Мы предполагаем вернуться к этому вопросу в одной из будущих публикаций.

}

return nBestNom;

}

• Смысл метода MyWordArray::ExistsNom() понятен из его названия. И обратим особое внимание на работу с очередным выбранным элементом этого массива - мы явно указываем его тип данных.

• По-видимому, наиболее важным методом является MakeRight(). Результатом его работы (в случае удачного завершения) фактически являются две новые подзадачи: одна возвращается в качестве результата работы -при этом вызывается конструктор, а вторая получается из исходной - заменой нескольких необходимых полей в матрице. Обычно в процессе выполнения алгоритма в первой из них выходом является так называемая правая подзадача с выбранным новым разделяющим элементом (при этом изменяется и arrYes), а во второй - так называемая левая подзадача, с этим же элементом, запрещенным для будущего включения (изменяется arrNo, а сама матрица не меняется).

Теперь (мы двигаемся снизу вверх) кратко опишем класс для всей задачи. Точнее, в данном случае сам класс MyTask содержит только одно поле -один массив подзадач поэтому его и опишем:

class MyArraySubTask : public CPtrArray { // of MySubTask* public:

MyArraySubTask () : CPtrArray() {}

virtual ~MyArraySubTask ();

MySubTask* MyGet (int n) { return (MySubTask*)GetAt(n);

}

void MyAdd (MySubTask* pSTAdd);

MySubTask* GetFirst ();

MySubTask* ExtractFirst ();

};

Здесь мы приведем только краткие комментарии. Метод MyAdd() добавляет новую подзадачу, располагая их в порядке уменьшения значения, возвращаемого методом GetSumma() (в большинстве вариантов алгоритма это является границей). Метод GetFirst() возвращает указатель на первую («самую интересную») из необходимых для рассмотрения подзадач, а метод ExtractFirst() - дополнительно к этому еще и удаляет эту задачу из рассматриваемого массива.

5. Краткое рассмотрение примера применения метода ветвей и границ в связанной задаче

В настоящем разделе будет рассмотрена задача восстановления матрицы расстояний между последовательностями ДНК. Эта задача относится

1 Или, что еще лучше, класс MyTask является наследником класса, описывающего такой массив. Такая объектно ориентированная организация иерархии классов может (и должна!) вызвать критику со стороны больших любителей «канонического» ООП, однако в наших программах она давно «показала себя с самой лучшей стороны».

к области биокибернетики и ранее была описана авторами в [6, 7]. Задача заключается в восстановлении элементов матрицы расстояний между последовательностями ДНК. Как правило, при этом известно около 50 % элементов матрицы. Для решения данной задачи целесообразно использовать anytime-алгоритм [4], который позволял бы отслеживать поэтапное восстановление элементов матрицы расстояний.

Алгоритм восстановления матрицы расстояний основан на анализе всех возможных треугольников, имеющихся в матрице расстояний. Для каждого треугольника вычисляется значение badness, отслеживание которого является частью эвристического подхода (см. подробнее в [6]). Однако при проходе по элементам матрицы «слева направо» и «сверху вниз» можно получить нежелательные результаты с существенным увеличением badness для ранее исследованных треугольников. Одним из подходов для обхода данной проблемы является формирование последовательности подзадач с помощью модификации метода ветвей и границ [7]. В этом случае badness значение матрицы будет выполнять роль значения границы в классическом методе ветвей и границ [8, 9]. Нашей целью является рассмотрение различных статистических показателей, возникающих при восстановлении матриц, описанных в [7] модифицированным методом ветвей и границ.

У каждой матрицы есть ряд характеристик, влияющих на итог работы метода ветвей и границ. Одна из таких характеристик, входящая в этот список, это процент удаленных элементов. На рис. 1 приводится подборка результатов работы метода для матриц размером 5^5 при удалении 40, 50 и 60 % элементов исходной матрицы.

10 9 8 7 6 5 4 3 2 1

10

20

30

40

50

0

■ Процент успешных восстановлений при удалении 60%

■ Процент успешных восстановлений при удалении 50%

■ Процент успешных восстановлений при удалении 40%

Рис. 1

На рис. 2 представлен средний процент успешных восстановлений в зависимости от процента удаленных элементов. Для матриц размером 10^10 проведены результаты аналогичных численных экспериментов (рис. 3).

Рис. 2

Рис. 3

Приведем также график средних показателей количества успешных восстановлений (рис. 4).

По сравнению с приведенными ранее результатами для матриц 5^5 заметно, что процент успешных восстановлений значительно увеличился. Это, по-видимому, связано с тем, что в ходе вычислительного процесса есть больше возможностей для выбора треугольников и восстановления элементов. При дальнейшем увеличении размерности матриц мы наблюдаем стремление процента успешных восстановлений к 100 % при указанных процентах удаленных элементов (40, 50, 60 %) (рис. 5).

40% 50% 60%

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Рис. 4

Процент успешных восстановлений в зависимости от процента удаленных элементов

Средняя высота дерева в зависимости от процента удаленных элементов

Рис. 5

Следующей интересной характеристикой является высота дерева решений (т.е. максимальная длина пути от корня дерева к листу). На представленных диаграммах хорошо видно, что среднее значение высоты дерева решений для матрицы 5^5 не слишком изменяется в зависимости от процента удален -ных элементов.

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

Можно видеть, что увеличение высоты дерева решений при росте размерности матрицы происходит с высокой скоростью. Также при увеличении размерности матрицы существенно возрастает количество подзадач одного уровня, и ввиду этого перебор задач занимает значительно больше времени.

6. Краткое рассмотрение примера малой размерности псевдогеометрической версии задачи коммивояжера

В этом разделе мы рассмотрим пример малой размерности. Причем сначала мы покажем, как именно, используя датчик случайных чисел, получа-

ется геометрическая версия задачи коммивояжера (ЗКВ) (именно такие частные случаи ЗКВ рассматриваются в качестве примеров геометрических версий в [10, 11] и статьях, процитированных в этих монографиях). Далее приведем пример восстановления точек по матрице, полученной по этой версии. Как и следовало ожидать, восстановленное множество точек совпадает с исходным с точностью до поворота и параллельного переноса. Далее мы с помощью того же самого датчика случайных чисел получаем вариант псевдогеометрической ЗКВ, а после так называемого «псевдовосстановления» (т.е. к полученным данным псевдогеометрической ЗКВ применения алгоритма, совпадающего с алгоритмом восстановления для геометрической версии, [12-14]) получаем приемлемое значение невязки, т.е. вычисленного по некоторой естественной матричной метрике расстояния между исходной матрицей геометрической ЗКВ и полученной матрицей:

X Y

1 0.779 0.76

2 0.274 0.157

3 0.601 0.952

4 0.919 0.45

5 0.533 0.21

6 0.49 0.758

7 0.024 0.457

8 0.149 0.92

Здесь мы привели координаты случайно заданных (выбранных с помощью равномерного распределения на отрезке [0, 1]) 8 точек по которым сначала построим матрицу ЗКВ размерности 8^8. При этом важно отметить, что в алгоритмах, связанных с решением частных случаев ЗКВ, мы не знаем координаты исходных точек. Построенная по этим точкам матрица такова:

1 2 3 4 5 6 7 8

1 99.999 0.786 0.262 0.34 0.602 0.29 0.814 0.651

2 0.786 99.999 0.86 0.708 0.264 0.638 0.391 0.773

3 0.262 0.86 99.999 0.594 0.745 0.224 0.761 0.454

4 0.34 0.708 0.594 99.999 0.454 0.528 0.895 0.902

5 0.602 0.264 0.745 0.454 99.999 0.549 0.566 0.807

6 0.29 0.638 0.224 0.528 0.549 99.999 0.555 0.378

7 0.814 0.391 0.761 0.895 0.566 0.555 99.999 0.48

8 0.651 0.773 0.454 0.902 0.807 0.378 0.48 99.999

Применив на ее основе алгоритм восстановления, мы получаем следующие 8 точек:

1 В отличие от разд. 5 (в котором использовались сложные вычислительные эксперименты, реализованные нами варианты метода ветвей и границ и т.п.), все результаты настоящего раздела можно легко проверить с помощью простых вспомогательных программ (написанных на Excel или на каком-либо языке программирования) или даже «вручную».

X Y

1 0.000 0.000

2 0.000 0.786

3 -0.260 -0.034

4 0.306 0.148

5 0.164 0.579

6 -0.221 0.187

7 -0.384 0.717

8 -0.586 0.282

а на их основе можно получить матрицу 8^8, которая окажется (как и следовало ожидать) в точности совпадающей с приведенной выше.

По-видимому, представляет интерес рисунок с расположением этих точек; на рис. 8 исходные точки показаны синим цветом (темные), а полученные - зеленым (светлые).

1 8 О

о J 2 с 6 о 1

7

о 5

О 7 О

5 п

и 6

к

-С .6 -с .5 -С .4 -С ,3о ~с 3 .2 -С .1 о' о 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9

0.1

Рис. 8

Однако, конечно, существенно более важными являются дальнейшие построения. Применяя тот же самый датчик случайных чисел, мы на основе предыдущей матрицы 8x8 получаем следующую исходную матрицу псевдогеометрической ЗКВ1:

1 По-видимому, конкретные параметры датчика и конкретные версии применяемых нами алгоритмов не представляют особого интереса. Отметим только, что нами применялось нормальное распределение с ^ = 1 (что является единственно возможным вариантом) и дисперсией 5/3 (т.е. а ~ 1,29, что примерно совпадает с одним из рассмотренных в [12] вариантов).

1 2 3 4 5 6 7 8

1 99.999 0.994 0.285 0.294 0.662 0.313 0.786 0.647

2 0.994 99.999 0.758 0.735 0.219 0.716 0.368 0.51

3 0.285 0.758 99.999 0.598 0.795 0.216 0.907 0.379

4 0.294 0.735 0.598 99.999 0.513 0.536 0.871 0.979

5 0.662 0.219 0.795 0.513 99.999 0.528 0.441 0.836

6 0.313 0.716 0.216 0.536 0.528 99.999 0.648 0.446

7 0.786 0.368 0.907 0.871 0.441 0.648 99.999 0.552

8 0.647 0.51 0.379 0.979 0.836 0.446 0.552 99.999

К полученной матрице мы применяем алгоритм, аналогичный алгоритму восстановления (как мы уже отмечали, некоторые подробности см. в [1214]), после чего получаем следующее множество точек:

X Y

1 0.000 0.000

2 0.000 0.994

3 0.138 0.249

4 -0.161 0.337

5 -0.245 0.692

6 -0.004 0.274

7 -0.144 0.651

8 0.383 0.694

По этому множеству мы получаем такую матрицу 8^8:

1 2 3 4 5 6 7 8

1 99.999 0.994 0.285 0.374 0.734 0.274 0.666 0.793

2 0.994 99.999 0.758 0.676 0.39 0.72 0.373 0.487

3 0.285 0.758 99.999 0.311 0.585 0.144 0.49 0.508

4 0.374 0.676 0.311 99.999 0.364 0.169 0.314 0.65

5 0.734 0.39 0.585 0.364 99.999 0.482 0.11 0.628

6 0.274 0.72 0.144 0.169 0.482 99.999 0.401 0.571

7 0.666 0.373 0.49 0.314 0.11 0.401 99.999 0.528

8 0.793 0.487 0.508 0.65 0.628 0.571 0.528 99.999

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

Заключение

Следующие результаты - полученные как продолжение примера из предыдущего раздела - не связаны напрямую с тематикой настоящей статьи

1 Подробности опять же приводить не будем, см. [6] и др. Если очень кратко - мы использовали «нормированный квадратный» из суммы квадратов разностей соответствующих элементов; эта метрика в данном случае дает хорошее (с нашей точки зрения) значение 0,208.

(они ближе к тематике [4, 12, 13] и др., в которых приводятся сами алгоритмы решения ЗКВ); однако они, с нашей точки зрения, показывают успешную работу разрабатываемых нами алгоритмов. Отметим еще раз, что продолжение описания алгоритмов для решения псевдогеометрической версии задачи коммивояжера мы предполагаем привести в отдельных публикациях.

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

Рис. 9

В заключительной части III настоящей статьи мы предполагаем привести вариант списочной метрики, а также подробно описать матричную метрику, сформулированную специально для задачи коммивояжера. Также будут описаны примеры применения обеих метрик при решении сгенерированных

1 Для размерности 8 это может быть несложно получено переборными алгоритмами. А алгоритмы, применяемые нами для больших размерностей, мы также опишем в одной из следующих публикаций.

нами частных случаев ЗКВ в сравнении с алгоритмами, не применяющими

кластеризации ситуаций.

Библиографический список

1. Мельников, Б. Ф. Кластеризация ситуаций в алгоритмах решения задачи коммивояжера и ее применение в некоторых прикладных задачах. Часть I. Общее описание задач и алгоритмов / Б. Ф. Мельников, Е. А. Мельникова, Е. В. Давыдова // Известия высших учебных заведений. Поволжский регион. Физико--математические науки. - 2018. - № 3 (47). - С. 36-63.

2. Мельников, Б. Ф. Применение алгоритмов генерации случайных графов для исследования надежности сетей связи / Б. Ф. Мельников, Е. Ф. Сайфуллина, Ю. Ю. Терентьева, Н. П. Чурикова // Информатизация и связь. - 2018. - № 1. -

C. 71-80.

3. Справочник по библиотеке MFC. - URL: https://msdn.microsoft.com/ru-ru/library/ s054yys1(v=vs.90).aspx

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

4. Melnikov, B. Multiheuristic approach to discrete optimization problems / B. Melnikov // Cybernetics and Systems Analysis. - 2006. - Vol. 42, № 3. - P. 335341.

5. Мельников, Б. Ф. Применение мультиэвристического подхода для случайной генерации графа с заданным вектором степеней / Б. Ф. Мельников, Е. Ф. Сайфуллина // Известия высших учебных заведений. Поволжский регион. Физико-математические науки. - 2013. - № 3 (27). - С. 70-83.

6. Мельников, Б. Ф. Об одной задаче восстановления матриц расстояний между цепочками ДНК / Б. Ф. Мельников, М. А. Тренина // International Journal of Open Information Technologies. - 2018. - Vol. 6, № 6. - P. 1-13.

7. Мельников, Б. Ф. Применение метода ветвей и границ в задаче восстановления матрицы расстояний между цепочками ДНК / Б. Ф. Мельников, М. А. Тренина // International Journal of Open Information Technologies. - 2018. - Vol. 6, № 8. - P. 1-13.

8. Гудман, С. Введение в разработку и анализ алгоритмов / С. Гудман, С. Хидет-ниеми. - Москва : Мир, 1981. - 368 с.

9. Hromkovic, J. Algorithmics for Hard Problems. Introduction to Combinatorial Optimization, Randomization, Approximation, and Heuristics / J. Hromkovic. - Basel : Springer, 2004. - 536 p.

10. Applegate, D. The Traveling Salesman Problem: A Computational Study /

D. L. Applegate, R. E. Bixby, V. Chvatal, W. J. Cook. - New Jersey : Princeton University Press, 2007. - 593 p.

11. Combinatorial Optimization. The Traveling Salesman Problem and Its Variations / G. Gutin, A. P. Punnen (eds.). - Berlin : Springer, 2007. - 830 p.

12. Макаркин, С. Б. Геометрические методы решения псевдогеометрической версии задачи коммивояжера / С. Б. Макаркин, Б. Ф. Мельников // Стохастическая оптимизация в информатике. - 2013. - Т. 9, № 2. - С. 54-72.

13. Мельников, Б. Ф. Применение проблемно ориентированных метрик в геометрических алгоритмах решения псевдогеометрической версии задачи коммивояжера / Б. Ф. Мельников, М. А. Тренина, С. Б. Макаркин // Стохастическая оптимизация в информатике. - 2014. - Т. 10, № 1. - С. 63-71.

14. Мельников, Б. Ф. Математическое моделирование повышения уровня безопасности в случае отказов авиационной и космической техники / Б. Ф. Мельников, Е. В. Давыдова // International Journal of Open Information Technologies. -2018. - Vol. 6, № 5. - P. 1-6.

References

1. Mel'nikov B. F., Mel'nikova E. A., Davydova E. V. Izvestiya vysshikh uchebnykh zavedeniy. Povolzhskiy region. Fiziko-matema-ticheskie nauki [University proceedings.

Volga region. Physical and mathematical sciences]. 2018, no. 3 (47), pp. 36-63. [In Russian]

2. Mel'nikov B. F., Sayfullina E. F., Terent'eva Yu. Yu., Churikova N. P. Informatizatsiya i svyaz' [Informatization and communication]. 2018, no. 1, pp. 71-80. [In Russian]

3. Spravochnik po biblioteke MFC [MFC library handbook]. Available at: https://msdn.microsoft.com/ru-ru/library/s054yys1(v=vs.90).aspx [In Russian]

4. Melnikov B. Cybernetics and Systems Analysis. 2006, vol. 42, no. 3, pp. 335-341.

5. Mel'nikov B. F., Sayfullina E. F. Izvestiya vysshikh uchebnykh zavedeniy. Povolzhskiy region. Fiziko-matematicheskie nauki [University proceedings. Volga region. Physical and mathematical sciences]. 2013, no. 3 (27), pp. 70-83. [In Russian]

6. Mel'nikov B. F., Trenina M. A. International Journal of Open Information Technologies. 2018, vol. 6, no. 6, pp. 1-13. [In Russian]

7. Mel'nikov B. F., Trenina M. A. International Journal of Open Information Technologies. 2018, vol 6, no. 8, pp. 1-13. [In Russian]

8. Gudman S., Khidetniemi S. Vvedenie v razrabotku i analiz algoritmov [Introduction into algorithms development and analysis]. Moscow: Mir, 1981, 368 p. [In Russian]

9. Hromkovic J. Algorithmics for Hard Problems. Introduction to Combinatorial Optimization, Randomization, Approximation, and Heuristics. Basel: Springer, 2004, 536 p.

10. Applegate D., Bixby R. E., Chvatal V., Cook W. J. The Traveling Salesman Problem: A Computational Study. New Jersey: Princeton University Press, 2007, 593 p.

11. Combinatorial Optimization. The Traveling Salesman Problem and Its Variations. G. Gutin, A. P. Punnen (eds.). Berlin: Springer, 2007. - 830 p.

12. Makarkin S. B., Mel'nikov B. F. Stokhasticheskaya optimizatsiya v informatike [Stochastic optimization in informatics]. 2013, vol. 9, no. 2, pp. 54-72. [In Russian]

13. Mel'nikov B. F., Trenina M. A., Makarkin S. B. Stokhasticheskaya optimizatsiya v informatike [Stochastic optimization in informatics]. 2014, vol. 10, no. 1, pp. 63-71. [In Russian]

14. Mel'nikov, B. F., Davydova E. V. International Journal of Open Information Technologies. 2018, vol. 6, no. 5, pp. 1-6. [In Russian]

Мельников Борис Феликсович

доктор физико-математических наук, профессор, кафедра информационных систем, сетей, Российский государственный социальный университет (Россия, г. Москва, ул. Вильгельма Пика, 4, стр. 1)

E-mail: bf-melnikov@yandex.ru

Mel'nikov Boris Feliksovich Doctor of physical and mathematical sciences, professor, sub-department of information systems, networks, Russian State Social University (building 1, 4 Vilgelma Pika street, Moscow, Russia)

Давыдова Елизавета Владимировна аспирант, Московский авиационный институт (Государственный технический университет) (Россия, г. Москва, Волоколамское шоссе, д. 4)

E-mail: elizaveta_2710@mail.ru

Davydova Elizaveta Vladimirovna Postgraduate student, Moscow Aircraft Institute (State Technical University) (4 Volokolamskoe highway, Moscow, Russia)

Ничипорчук Анастасия Владимировна Nichiporchuk Anastasiya Vladimirovna

аспирант, Российский государственный Postgraduate student, Russian State

социальный университет (Россия, Social University (building 1, 4 Vilgelma

г. Москва, ул. Вильгельма Пика, 4, стр. 1) Pika street, Moscow, Russia)

E-mail: anichiporchuk@gmail.com

Тренина Марина Анатольевна старший преподаватель, кафедра прикладной математики и информатики, Институт математики, физики и информационных технологий, Тольяттинский государственный университет (Россия, г. Тольятти, ул. Белорусская, 14)

E-mail: trenina.m.a@yandex.ru

УДК 004.021; 004.023 Мельников, Б. Ф.

Кластеризация ситуаций в алгоритмах решения задачи коммивояжера и ее применение в некоторых прикладных задачах. Часть II. Списочная метрика и некоторые связанные оптимизационные проблемы / Б. Ф. Мельников, Е. В. Давыдова, А. В. Ничипорчук, М. А. Тренина // Известия высших учебных заведений. Поволжский регион. Физико-математические науки. - 2018. - № 4 (48). - С. 62-77. - БО! 10.21685/2072-3040-2018-4-6.

Trenina Marina Anatol'evna Senior lecturer, sub-department of applied mathematics and informatics, Institute of Mathematics, Physics and Information Technologies, Togliatti State University (14 Belorusskaya street, Togliatti, Russia)

i Надоели баннеры? Вы всегда можете отключить рекламу.