Эвристические алгоритмы и распределённые вычисления

advertisement
ISSN 2311–8563
Федеральное государственное бюджетное
образовательное учреждение
высшего профессионального образования
«Самарский государственный университет»
Эвристические алгоритмы
и распределённые вычисления
(Heuristic Algorithms and Distributed Computing)
Научный журнал
Том 2, выпуск 2
2015
2
ЭВРИСТИЧЕСКИЕ АЛГОРИТМЫ И РАСПРЕДЕЛЁННЫЕ ВЫЧИСЛЕНИЯ, 2, 2 (2015)
Периодический всероссийский электронный научный журнал.
Основан в 2014 г. Выходит 4–6 раз в год.
Учредитель журнала – Самарский государственный университет.
Главный редактор – д-р физ.-мат. наук, профессор Б. Ф. Мельников.
Издательство «Самарский университет».
443011, г. Самара, ул. Академика Павлова, 1.
Тел. (846) 334-54-23.
e-mail: university-press@samsu.ru
Адрес редакции: 445027, г. Тольятти, ул. Юбилейная, 31-Г.
Тел. (848) 250-52-33.
e-mails: earv@samsu.ru, earv-samara@yandex.ru
Адрес страницы журнала на сайте Самарского государственного университета:
http://www.archive.samsu.ru/ru/node/4736
либо http://samsu.ru/ru/node/4736.
Журнал оформляется в виде pdf-файла таким образом, что его можно
скачивать с сайта и распечатывать. 1
Начиная с 2015 г., мы включаем в журнал новый раздел – «Философские проблемы математики и теоретической информатики». Сохраняются также все 4 раздела предыдущего тома: «Математическое моделирование», «Алгоритмы и эвристики», «Прикладная дискретная ма1
При этом можно применить параметр «двусторонняя печать» (или аналогичный в вашей системе), после чего распечатать обложку с сайта и сброшюровать
журнал обычным образом.
ЭВРИСТИЧЕСКИЕ АЛГОРИТМЫ И РАСПРЕДЕЛЁННЫЕ ВЫЧИСЛЕНИЯ, 2, 2 (2015)
3
тематика и теория автоматов» и «Параллельные и распределённые
вычисления». Особо отметим, что, как и ранее, все статьи журнала
прямо или косвенно связаны с основными темами журнала – эвристическими алгоритмами и распределёнными вычислениями.
Состав редакционной коллегии по сравнению с 2014 г. расширяется.
Начиная с 2015 г. вместе с журналом «Эвристические алгоритмы и
распределённые
вычисления»
издаётся
англоязычный
журнал
“Applied discrete mathematics and heuristic algorithms”. Однако он не
является переводной версией русского издания: мы предполагаем
включать в англоязычный журнал переводы некоторых русских статей за предыдущий год, однако, в первую очередь, в нём будут печататься переводы переработанных и улучшенных версий ранее напечатанных статей, а также новые оригинальные статьи.
Редакция приглашает читателей присылать статьи для обоих журналов, а также отзывы на опубликованные статьи.
© ФГБОУ ВПО «Самарский государственный университет», 2015.
4
ЭВРИСТИЧЕСКИЕ АЛГОРИТМЫ И РАСПРЕДЕЛЁННЫЕ ВЫЧИСЛЕНИЯ, 2, 2 (2015)
Редакционная коллегия
Юрай ГРОМКОВИЧ
(Juraj HROMKOVIČ),
почётный редактор
Швейцария, Цюрих,
Технический университет
(Eidgenössische Technische Hochschule),
профессор
Борис Феликсович
МЕЛЬНИКОВ,
главный редактор
Самарский государственный университет,
доктор физ.-мат. наук, профессор
Александр Фёдорович
КРУТОВ,
зам. главного редактора
Самарский государственный университет,
доктор физ.-мат. наук, профессор
Шамиль Талгатович
ИШМУХАМЕТОВ
Казанский (Приволжский)
федеральный университет (г. Казань),
доктор физ.-мат. наук, профессор
Сергей Яковлевич
НОВИКОВ
Самарский государственный университет,
доктор физ.-мат. наук, профессор
Серго Шотович
РЕХВИАШВИЛИ
Институт прикладной математики
и автоматизации (г. Нальчик),
доктор физ.-мат. наук
Юрий Геннадьевич
СМИРНОВ
Пензенский государственный университет,
доктор физ.-мат. наук, профессор
Андрей Владимирович
СОКОЛОВ
Карельский научный центр РАН
(г. Петрозаводск),
доктор физ.-мат. наук, профессор
Сергей Юрьевич
СОЛОВЬЁВ
Московский государственный университет
им. М. В. Ломоносова,
доктор физ.-мат. наук, профессор
Юрий Викторович
ТЮТЮНОВ
Южный научный центр РАН
(г. Ростов-на-Дону),
доктор физ.-мат. наук, профессор
Геннадий Анатольевич
УГОЛЬНИЦКИЙ
Южный федеральный университет
(г. Ростов-на-Дону),
доктор физ.-мат. наук, профессор
ЭВРИСТИЧЕСКИЕ АЛГОРИТМЫ И РАСПРЕДЕЛЁННЫЕ ВЫЧИСЛЕНИЯ, 2, 2 (2015)
5
Антал Миклош ИВАНИ
(Antal Miklós IVÁNYI)
Венгрия, Будапешт,
Университет им. Л. Этвёша
(Eötvös Loránd Tudományegyetem),
профессор
Золтан КАША
(Zoltán KÁSA)
Румыния, Тыргу-Муреш,
Университет Сапиэнтиа
(Universitatea Sapientia), профессор
Йорг КЕЛЛЕР
(Jörg KELLER)
Германия, Хаген, Заочный университет
(Fernuniversität in Hagen), профессор
Алессандра КЕРУБИНИ
(Alessandra CHERUBINI)
Италия, Милан,
Политехнический университет
(Politecnico di Milano), профессор
Шариэфуддин ПИРЗАДА
(Shariefuddin PIRZADA)
Индия, Шринагар, Университет Кашмер
(University of Kashmir), профессор
Владимир Николаевич
РУДНИЦКИЙ
Украина, Черкассы,
Технологический университет,
доктор физ.-мат. наук, профессор
ШИ-ДЖИН ХОРНГ
(Shi-Jinn Horng, 洪西進)
Китайская республика (Тайвань), Тайбэй,
Национальный научно-технологический
университет (國立臺灣科技大學),
профессор
Сергей Борисович
МАКАРКИН,
ответственный секретарь
Самарский государственный университет
6
ЭВРИСТИЧЕСКИЕ АЛГОРИТМЫ И РАСПРЕДЕЛЁННЫЕ ВЫЧИСЛЕНИЯ, 2, 2 (2015)
СОДЕРЖАНИЕ
Математическое моделирование
В. И. Левин. Дифференциальное исчисление для интервально-определённых функций
8–25
Алгоритмы и эвристики
П. И. Аверин. Применение самоорганизующихся карт Кохонена
в анализе данных акустической эмиссии
26–38
Ю. Громкович. Детерминированные подходы к алгоритмизации
труднорешаемых задач. Часть III: Основы теории сложности аппроксимации
39–59
В. А. Дудников. Генетический алгоритм решения оптимизационной
задачи размещения вершин графа в линейке
60–68
Н. Х. Ихсанов. CONST – инструмент создания прикладных интеллектуальных систем
69–78
В. В. Нарожнов. Разработка методики и алгоритмов моделирования
нелинейной механической колебательной системы с применением
вейвлет-преобразования
79–89
Сведения об авторах
90
ЭВРИСТИЧЕСКИЕ АЛГОРИТМЫ И РАСПРЕДЕЛЁННЫЕ ВЫЧИСЛЕНИЯ, 2, 2 (2015)
7
CONTENT
Mathematical Modelling
V. I. Levin. A differential calculus for interval-determined functions
8–25
Algorithms and Heuristic
P. I. Averin. Application of Kohonen self-organizing maps in data mining
for acoustic emission
26–38
J. Hromkovič. Deterministic approaches to algorithmics for hard computing problems. Part III: The basic theory of the approximation complexity
39–59
V. A. Dudnikov. Genetic algorithm for solving the optimization problem
of locations graph vertices in the line
60–68
N. Kh. Ikhsanov. CONST – intellectual applied systems creation tool
69–78
V.V. Narozhnov. Development of methodologies and algorithms for simulation of nonlinear mechanical oscillation system using wavelet transforms
79–89
About the authors
91
ЭВРИСТИЧЕСКИЕ АЛГОРИТМЫ И РАСПРЕДЕЛЁННЫЕ ВЫЧИСЛЕНИЯ, 2, 2 (2015) 8–25
УДК 62–50:519.7/8
ДИФФЕРЕНЦИАЛЬНОЕ ИСЧИСЛЕНИЕ
ДЛЯ ИНТЕРВАЛЬНО-ОПРЕДЕЛЁННЫХ ФУНКЦИЙ *
В. И. Левин, email: vilevin@mail.ru
Пензенский государственный технологический университет
Аннотация. В статье рассмотрены проблемы адекватности классического дифференциального исчисления Ньютона-Лейбница. Указаны соответствующие недостатки этого исчисления: невозможность применения понятия классической производной в случае не полностью определённых
функций, различная функциональная принадлежность производных
функций различных порядков, несмотря на одинаковую их интерпретацию как скоростей различных порядков, несуществование производной в
отдельных точках у функций, моделирующих реальные процессы движения, несмотря на очевидное существование скорости в любой точке каждого такого процесса, отсутствие единой формулы для производных различных порядков, несмотря на единую интерпретацию всех этих производных как скоростей различных порядков. В связи с этим предлагается
обобщение классического дифференциального исчисления, позволяющее
устранить перечисленные недостатки. При этом указанное исчисление
распространяется на функции с интервальной неопределённостью переменных. Для дальнейших построений используется интервальная математика. С её помощью вводится понятие предела интервальной функции и её
производной. Доказана теорема существования интервальной производной. Получены представления производных различных порядков через
исходную интервальную функцию и её интервальный аргумент. С помощью интервальной алгебры получена единая формула, выражающая интервальную производную любого n-го порядка через нижнюю и верхнюю
границы исходной интервальной функции и ее интервального аргумента.
Обсуждаются основные особенности построенного интервально-дифференциального исчисления и его отличия от классического дифференциального исчисления. В качестве основного отличия называется то, что интервальные производные любого n-го порядка принадлежат к единому
классу дробных функционально-рациональных функций, в то время как в
классическом дифференциальном исчислении производная, в зависимости
от порядка, может принадлежать различным классам. Другое отличие состоит в том, что в интервально-дифференциальном исчислении любая невырожденная интервальная функция имеет интервальные производные в
каждой точке её области определения, а в классическом исчислении уже
1-я производная существует не у всех функций и не во всех точках. Ещё
одно отличие заключается в том, что в интервально-дифференциальном
исчислении существует единая формула, выражающая производную любого порядка, а в классическом варианте такой формулы нет.
Ключевые слова и фразы: интервал; интервальная функция; интерваль*
© В.И. Левин, 2015.
Дифференциальное исчисление для интервально-определённых функций
9
ная производная; интервальные вычисления; недетерминистское дифференциальное исчисление.
1
ВВЕДЕНИЕ
Проектирование и исследование свойств разнообразных систем обычно опирается на тот или иной подходящий математический аппарат. К
настоящему времени создано большое число различных видов математического аппарата. Но при всём их различии почти все они обладают
общим свойством – применимостью лишь к полностью определённым
(детерминированным) системам. В то же время встречающиеся на
практике системы характеризуются той или иной степенью неопределённости (недетерминированы). С целью построения и исследования
таких систем чаще всего применяют тот или иной специализированный математический аппарат: теорию вероятностей [1], теорию нечётких множеств [2], интервальную математику [3]. В настоящей работе
впервые предлагается новый математический аппарат для исследования недетерминированных систем – недетерминистское дифференциальное исчисление. Этот аппарат, в отличие от трёх названных выше,
нацеленных, в основном, на исследование поведения статических систем, применим также к изучению динамических систем.
2
ПОСТАНОВКА ПРОБЛЕМЫ
Развиваемый в настоящей статье математический аппарат недетерминистского дифференциального исчисления является аналогом классического дифференциального исчисления Ньютона-Лейбница для не
полностью определённых функций. В качестве таких функций мы выбираем здесь функции, задаваемые с точностью до интервалов возможных значений. Целесообразность разработки недетерминистского дифференциального исчисления связана со следующими причинами.
1. Как известно, понятие производной в классическом дифференциальном исчислении базируется на понятии предельного перехода, а
именно, неограниченного приближения переменной величины к некоторой постоянной величине – пределу, при котором разность между
этими величинами неограниченно приближается к нулю. Однако такое
предельное поведение возможно лишь для полностью определённых
функций и величин. В случае, если они определены не полностью
(например, задаются с точностью до интервалов возможных значений), никакого предельного перехода функции в традиционном смысле не существует. Соответственно этому здесь не существует классического понятия производной и классического дифференциального
исчисления Ньютона-Лейбница. Эти понятия должны быть введены по-
10
В.И. Левин
новому.
2. Производная в классическом дифференциальном исчислении,
как известно, имеет смысл скорости, с которой эта функция изменяется относительно своего аргумента. Соответственно, производные высших порядков получают смысл скоростей высших порядков, с которыми функция изменяется относительно своего аргумента. Например, производная второго порядка означает скорость изменения скорости изменения нашей функции, другими словами, скорость изменения функции второго порядка. Аналогичным способом интерпретируются производные третьего, четвертого и всех последующих порядков. Казалось
бы, единообразие интерпретации производных различного порядка
должно было бы вести к единообразию этих производных с точки зрения их функциональной принадлежности. Однако на деле это не всегда так. Например, для функции
y  x arctgx  0,5 ln | x 2  1 | ,
которая является суперпозицией степенной, логарифмической и обратной тригонометрической функций, первая производная является обратной тригонометрической функцией
y   arctgx ,
а вторая производная – и вовсе алгебраической функцией
y   1 /(1  x 2 ) .
Такой разнобой заставляет предполагать, что понятие производной в классическом дифференциальном исчислении не является
вполне адекватной моделью скоростей изменения реальных природных
процессов. Поэтому понятие производной должно быть переформулировано так, чтобы стать более адекватной моделью скоростей изменения реальных процессов.
3. Скорость изменения – это реальная характеристика всякого реального процесса движения. Поэтому для всякого реально существующего процесса движения обязательно должна существовать характеристика – скорость его изменения. Другими словами, всякая функция,
моделирующая реальный процесс движения, обязательно должна
всюду иметь производную. Однако на деле это требование не всегда
выполняется. Например, для функции
x / 3, 0  x  3,
y  
 x  2, x  3,

моделирующей некоторый процесс движения «путь y – время x », скорость движения (производная) в точке x  3 не существует. Это факт
снова побуждает думать, что понятие производной в классическом дифференциальном исчислении – не вполне адекватная модель скорости
Дифференциальное исчисление для интервально-определённых функций
11
изменения реальных природных процессов, нуждающаяся в усовершенствовании.
4. Единообразие возможной интерпретации классических производных различных порядков от любой заданной функции как скоростей различных порядков, с которыми функция изменяется относительно аргумента, должно было бы вести не только к единообразию этих
производных по их функциональной принадлежности (о чём говорилось в п. 2), но и к существованию единой формулы для производных
различных порядков от любой заданной функции. Однако такой формулы в классическом дифференциальном исчислении, как известно, нет.
Это еще раз показывает неадекватность классического дифференциального исчисления, основанного на классическом понятии производной,
в качестве модели скорости изменения реальных природных процессов. Эта неадекватность должна быть по возможности исправлена.
3
ВСПОМОГАТЕЛЬНЫЕ МАТЕМАТИЧЕСКИЕ СВЕДЕНИЯ
Мы будем использовать в качестве вспомогательных сведений прежде
всего основные математические сведения из алгебры интервальных чисел [3, 4]. В этой алгебре в качестве операндов берутся замкнутые вещественные интервалы, определяемые как множества всех вещественных
чисел между нижней и верхней границами интервала, включая сами
эти границы
~  [a , a ]  {a | a  a  a } .
(1)
a
1 2
1
2
Эти операнды называют интервальными числами. Операции  над
~
интервальными числами a~  [a1 , a 2 ], b  [b1 , b2 ] вводятся как прямые теоретико-множественные обобщения соответствующих операций над вещественными числами a, b , т.е.
~
~
a~  b  {a  b | a  a~, b  b }
(2)
Таким образом, основные алгебраические операции над интервальными числами определяются следующими формулами:
~
~
~
~
a~  b  {a  b | a  a~, b  b }, a~  b  {a  b | a  a~, b  b },
k  a~  {k  a | a  a~},
~
~
~
~
a~  b  {a  b | a  a~, b  b }, a~ / b  {a / b | a  a~, b  b }.
(3)
На основе определений (3) операций над интервальными числами
можно вывести формулы для вычисления результатов этих операций [3]:
В.И. Левин
12
~
a~  b  [a1 , a 2 ]  [b1 , b2 ]  [a1  b1 , a 2  b2 ],
~
a~  b  [a1 , a 2 ]  [b1 , b2 ]  [a1  b2 , a 2  b1 ],
[ka , ka ], k  0,
k  a~  k  [a1 , a 2 ]   1 2
[ka 2 , ka1 ], k  0,
~
a~  b  [a1 , a 2 ]  [b1 , b2 ]  [min (ai  b j ), max (ai  b j )],
i, j
i, j
~
~
a / b  [a1 , a 2 ] /[b1 , b2 ]  [a1 , a 2 ]  [1 / b2 ,1 / b1 ].
(4)
Также в качестве вспомогательного потребуется понятие интервальной функции [5], которая вводится как однозначное отображение
множества замкнутых вещественных интервалов {~x }, ~x  [ x1 , x 2 ] вида (1)
на множество замкнутых вещественных интервалов {~y}, ~y  [ y1 , y 2 ] этого
же вида. Символически интервальная функция записывается в виде
~
~
(5)
y  f (~
x),
~
где, аналогично числовым функциям, x называется интервальной независимой переменной (интервальным аргументом), ~y – интервальной
~
зависимой переменной, f – интервальной функцией.
Введём понятие предела интервальной функции (5). Это понятие отличается от понятия предела обычной (полностью определённой) функции. Рассмотрим независимую переменную ~x  [ x1 , x2 ] данной функции.
Будем говорить, что переменная ~x в процессе своего изменения неограниченно приближается к некоторому предельному интервалу ~x0  [ x01 , x02 ] ,
если в указанном процессе x1 неограниченно приближается к x 01 , а x 2
неограниченно приближается к x 02 . Символически неограниченное приx 0 показывается как
x к ~
ближение ~
~
~
( x  x0 )  ( x1  x01 , x2  x02 )  (lim x1  x01 , lim x2  x02 ) .
(6)
~
Совершенно аналогично независимой переменной x зависимая пеy интервальной функции (5) в процессе своего изменения
ременная ~
может неограниченно приближается к некоторому предельному интервалу ~y 0  [ y 01 , y 02 ] , т.е.
(~
y~
y0 )  ( y1  y01 , y 2  y02 )  (lim y1  y01 , lim y 2  y02 ) .
(7)
При этом, если неограниченное приближение зависимой переменy0 вызвано неограниченным приy интервальной функции (5) к ~
ной ~
~
ближением независимой переменной x этой функции к ~x 0 , будем говоx0 ,
x , стремящемся к ~
рить, что предел интервальной функции (5) при ~
y0 . Символически это записывается в виде
равен интервалу ~
~
lim ~
y~
y или, по-другому, lim f ( ~
x)  ~
y .
(8)
~
x ~
x0
0
~
x ~
x0
0
Если интервальная функция (5) непрерывная, т.е. как нижняя, так и
Дифференциальное исчисление для интервально-определённых функций
13
верхняя границы интервала ~
y (зависимой переменной) являются непрерывными функциями нижней и верхней границ интервала ~
x (независимой переменной), то предел функции (5) равен значению функции от
предельного значения аргумента, или, в символической записи,
~~
~~
lim
f
(
x
)

f ( x0 ) .
(9)
~ ~
x x0
Это предельное поведение интервальных функций отличается от
известного предельного поведения полностью определённых функций
тем, что здесь разность между переменным значением функции ~y  [ y1 , y 2 ]
и её пределом ~y 0  [ y 01 , y 02 ] неограниченно приближается не к нулю, а к
постоянному интервалу ~y 0  ~y 0  [ y 01 , y 02 ]  [ y 01 , y 02 ]  [( y 02  y 01 ), y 02  y 01 ] , симметричному относительно нуля.
4
ИНТЕРВАЛЬНАЯ ПРОИЗВОДНАЯ ФУНКЦИЯ
Рассмотрим произвольную интервальную функцию (5). Будем полагать
её непрерывной. Зафиксируем некоторое значение ~x0  [ x01 , x02 ] независимой переменной. Этому значению, в силу непрерывности функции, будет
~
соответствовать фиксированное значение функции ~y 0  f ( ~x0 ) .
Определим теперь приращения независимой и зависимой переменных нашей функции относительно их фиксированных значений
~
x ~
x ~
x0 ,
~ ~ ~ ~
~
~
~
y  y  y0  f ( x )  f ( x0 )
(10)
и составим отношение второго приращения к первому
~ ~ ~ ~
y~
y0
f ( x )  f ( x0 )
~
y ~
.


~
~
x ~
x ~
x0
x ~
x0
(11)
Возьмём предел отношения (11) при неограниченном приближении
x0 :
x к её фиксированному значению ~
независимой переменной ~
~
y
.
x  x0 ~
x
lim
~ ~
(12)
Предел (12), если он существует, будем называть производной интервальной функцией от исходной интервальной функции (5) в точке ~x 0
или, коротко, интервальной производной от функции (5) и обозначать
~
через ~y ~x0 или f ~x0 ( ~x ) . Таким образом,
~
~
y
~
y ~x0  f ~x0 ( ~
x )  ~lim~ ~ .
x  x0 x
(13)
Условие существования интервальной производной от интервальной
функции определяется следующей теоремой.
Теорема 1. Для того, чтобы в точке ~x 0 существовала интервальная
14
В.И. Левин
производная от интервальной функции вида (5), определяемая формулами (10)–(13), необходимо и достаточно, чтобы в некоторой окрестности
этой точки, включая её саму, все значения независимой переменной ~
x
функции были невырожденными интервалами (т.е. интервалами с несовпадающими верхней и нижней границами).
Доказательство. Из выражения (11) интервальной функции, предел
которой есть интервальная производная в точке ~x 0 , видно, что эта производная существует только тогда, когда в некоторой окрестности указанной точки, включая её саму, все возможные значения знаменателя выражения (11) не равны нулю. Но знаменатель выражения (11), согласно
формуле (4) разности интервалов, равен интервалу
~
x ~
x0  [ x1 , x2 ]  [ x01 , x02 ]  [ x1  x02 , x2  x01 ] .
Правый интервал равен нулю (нулевому интервалу [0,0] ) только при
условии
x1  x02 , x 2  x01 ,
равносильном следующему
x1  x01  x2  x02
или
~
x~
x 0  [ x, x ] ,
что означает вырожденность интервалов ~x , ~x0 .
Ввиду произвольности выбранной точки ~x0 последнее означает,
что для существования интервальной производной в точке ~x 0 необходимо и достаточно, чтобы в некоторой окрестности этой точки, включая её
x бысаму, все возможные значения независимой переменной функции ~
ли невырождены. Что и требовалось доказать.
Интервальная производная от интервальной функции (5), определяемая для произвольной точки ~x 0 формулами (10)–(12) в виде предела,
также может быть выражена также в конечном виде через значения неза~
y  f ( ~x ) переменных этой функции в указанx и зависимой ~
висимой ~
ной точке. Именно, справедлива следующая теорема.
Теорема 2. Интервальная производная от непрерывной интервальной функции (5), определяемая для произвольной точки ~x 0 формулами (10)–(13) в виде предела, может быть выражена в конечном ви~
y  f (~
x ) переменных
x и зависимой ~
де через значения независимой ~
этой функции в указанной точке следующим образом
~ ~
~
f ( x0 )  f ( ~
x0 )
~ ~
~
.
y ~x0  f ~x0 ( x ) 
~
x0  ~
x0
(14)
Примечание 1. При первом взгляде выражение (14) может пока-
Дифференциальное исчисление для интервально-определённых функций
15
заться неопределенностью вида 0 / 0 . Но это впечатление неверно, поскольку, согласно теореме 1, у любой существующей в точке ~x 0 интервальной производной интервал ~x 0 невырожден, и потому, в соответствие с формулой (4) для разности интервалов, разность ~x0  ~x0 не
равна нулю (нулевому интервалу [0,0] ). По таким же причинам не рав~
~
на нулю разность f ( ~x0 )  f ( ~x0 ) .
Доказательство. По определению интервальной производной в
точке ~x 0 (10)–(13), она может быть записана в виде предела
~ ~ ~ ~
f ( x )  f ( x0 )
~y ~  ~
~
f ~x0 ( x )  ~lim~
.
x0
~
x  x0
x ~
x0
(15)
В процессе предельного перехода в правой части (15) ~x неогра~
ниченно приближается к ~x 0 , а f ( ~x ) , в силу непрерывности интер~
~
вальной функции f – к f ( ~x0 ) . Так, предел в правой части (15) равен
~ ~ ~ ~
~
~
f ( x )  f ( x0 ) f ( ~
x0 )  f ( ~
x0 )
lim

.
~
~
~
x ~
x0
x ~
x0
x0  ~
x0
(16)
Подставив полученное значение предела из равенства (16) в выражение (15), будем иметь формулу (14). Что и требовалось доказать.
Итак, выражение интервальной производной функции (14) представляет её через исходную (т.е. первообразную) интервальную функцию (5). При этом, поскольку в указанном выражении точка ~x 0 , в которой определяется производная, произвольна, выражение можно переписать в общем виде следующим образом:
~~ ~~
~ ~
f (x )  f (x )
~
,
y ~x  f ~x ( x ) 
~
x ~
x
(17)
где ~x – произвольное значение независимой переменной непрерывной интервальной функции (5) из её области определения, при котором интервальная производная этой функции существует. Как видно
из формулы (17), интервальная производная выражается непосредственно через исходную (первообразную) интервальную функцию простой алгебраической формой, что, конечно, упрощает процесс вычисления производной. Этот эффект отсутствует при нахождении обычных
производных, фигурирующих в традиционном (классическом) дифференциальном исчислении детерминированных функций [6].
ИНТЕРВАЛЬНЫЕ ПРОИЗВОДНЫЕ ВЫСШИХ ПОРЯДКОВ
~
~
Производная f ~ ( ~x ) от интервальной функции f ( ~x ) , введённая выше
5
x
в п. 3, также является интервальной функцией, при том зависящей от
В.И. Левин
16
того же самого интервального аргумента ~x . Это позволяет продолжить процесс взятия интервальных производных функций, получив сна~
чала 2-ю производную f ~x( ~x ) (т.е. производную от 1-й производной
~ ~
f ~x ( x ) )
~
~
~
y ~x  f ~x( ~
x )  [ f ~x ( ~
x )]~x ,
(18)
~ ~
~ ~
затем 3-ю производную f ~x( x ) (производную от 2-й производной f ~x( x ) )
~
~
~
y ~  f ~( ~
x )  [ f ~( ~
x )]~
(19)
x
x
x
x
и т.д., вплоть до интервальной производной любого n -го порядка, определяемой как производная от производной n  1 порядка
~
~
~
(20)
y ~x( n)  f ~x( n) ( ~
x )  [ f ~x( n1) ( ~
x )]~x .
Следующей теоремой определяется условие существования интервальной производной любого n -го порядка.
Теорема 3. Для того, чтобы в точке ~x 0 существовала интервальная
производная n -го порядка (n  1,2,3,...) от интервальной функции (5),
определяемая формулами (18)–(20), необходимо и достаточно, чтобы в
некоторой окрестности этой точки, включая её саму, все значения независимой переменной ~x функции были невырожденными интервалами.
Доказательство. По теореме 1, для существования в точке ~x 0 производной 1-го порядка от функции (5) необходимо и достаточно невырожденности всех интервалов, служащих значениями независимой переменной ~x этой функции в некоторой окрестности точки ~x 0 . Но производная 1-го порядка от функции (5) имеет ту же независимую переменную ~x , что и сама функция. Поэтому, согласно теореме 1, для существования в точке ~x 0 производной от производной первого порядка функции
(5) (т.е. производной 2-го порядка от интервальной функции (5)) необходимо и достаточно выполнения того же условия, что и для существования в точке ~x0 производной 1-го порядка от функции (5), т.е. невырожденности всех интервалов, являющихся значениями независимой переменной ~x функции (5) в некоторой окрестности точки ~x 0 . Продолжая
по цепочке наши рассуждения, придём к необходимым и достаточным
условиям существования в точке ~x 0 производной n -го порядка от функции (5) в той форме, в которой они сформулированы в теореме 3, что и
требовалось доказать.
Интервальная производная любого n -го порядка от интервальной
функции (5), определяемая формулами (18)–(20) итеративно, может
быть выражена также в конечном виде, аналогично выражению в конечном виде (17) интервальной производной 1-го порядка. Такие выражения
основываются на следующей теореме.
Дифференциальное исчисление для интервально-определённых функций
17
Теорема 4. Интервальная производная n -го порядка (n=2,3...) от
интервальной функции вида (5) может быть выражена в конечном виде
через интервальную производную (n  1) -го порядка от указанной функ~
ции (если она непрерывная) и независимую переменную x в виде
~
y ~x( n )
~ ( n 1) ~
~
f ~x
( x )  f ~x( n 1) ( ~
x)
~ (n) ~
 f ~x ( x ) 
, n  2,3,...
~
x ~
x
(21)
Доказательство теоремы получается с помощью формулы (17),
~
если подставить в неё в качестве интервальной функции f ( ~x ) произ~
водную (n  1) -го порядка f ~x(n1) ( ~x ) и учесть ещё тот факт, что производ~
ная первого порядка от f ~x(n1) ( ~x ) , согласно определению (20), есть про~ ( n) ~
f ~x ( x )
изводная n -го порядка
.
С помощью теорем 2 и 4 последовательно получаем конечные выражения для интервальной производной 2-го порядка
~ ~ ~ ~
f ~ ( x )  f ~ ( x )
~ ~
~
y ~x  f ~x( x )  x ~ ~x

xx
~ ~ ~ ~
~
~
f ( x )  f ( x ) f (~
x )  f (~
x)

~
~
~
~
xx
xx
;
~
~
xx
(22)
для интервальной производной 3-го порядка
~~ ~~ ~~ ~~
~
~
~
~
f ( x )  f ( x ) f ( x )  f ( x ) f ( ~x )  f ( ~x ) f ( ~x )  f ( ~x )


~x  ~x
~x  ~x
~x  ~x
~x  ~x
~ ~ ~ ~

~x  ~x
~x  ~x
~y ~  ~f ~( ~x )  f ~x( x )  f ~x( x ) 
x
x
~x  ~x
~x  ~x
(23)
и т.д. Отметим, что все эти выражения аналогичны конечному выражению (17) для интервальной производной 1-го порядка.
Примечание 2. Выражения (22), (23), ... интервальных производных высших порядков с первого взгляда кажутся суперпозициями неопределённостей вида 0 / 0 , однако по причине, указанной в примечании
1, не являются таковыми. Заметим ещё, что все эти выражения не могут
быть преобразованы к более простому виду с помощью эквивалентных
преобразований, поскольку в алгебре интервальных чисел [3] эквивалентности типа
не выполняются.
6
~
~
~ ~ ~~ ~~ a~  b a~ b
~
( a  b )c  a c  b c ;
~~
c~
c c
(24)
ВЫЧИСЛЕНИЕ ИНТЕРВАЛЬНЫХ ПРОИЗВОДНЫХ
Доказанные выше выражения интервальных производных (17)–(23) являются аналитическими выражениями, имеющими вид суперпозиций
операций над интервальными переменными. Эти выражения удобны для
теоретического изучения интервальных производных. Что касается вы-
18
В.И. Левин
числения таких производных, то использование выражений (17)–(23)
оказывается неудобным, поскольку оно предполагает объемную работу
с весьма громоздкими формулами интервальной математики (4), которые и позволяют выразить в конце концов интервальную производную в
виде интервального числа с явно выраженными в числовой форме нижней и верхней границами. Однако гораздо удобнее вычислять интервальные производные по формуле, выражающей сразу в явном виде
нижнюю и верхнюю границы интервального числа, служащего значением интервальной производной. Эта формула выводится ниже.
Теорема 5. Интервальная производная от непрерывной интервальной функции (5), выражаемая для произвольной точки ~x формулой (17)
в виде суперпозиции операций над интервальными переменными, может
быть также представлена явно в виде интервала, нижняя и верхняя границы которого выражены через нижнюю и верхнюю границы интервальных независимой ~x  [ x1 , x 2 ] и зависимой ~y  [ y1 , y 2 ] переменных этой
функции в точке ~x следующим образом
 y  y1 y 2  y1 
~
~
y ~x  f ~x ( ~
x )   2
,
.
x

x
x

x
 2
1
2
1
(25)
Доказательство. Будем исходить из выражения интервальной производной от интервальной функции (5) формулой (17). Представим указанную функцию в явном виде интервала
~ ~
f ( x )  [ f1 ( ~
x ), f 2 ( ~
x )]  [ y1 , y 2 ]  ~y .
(26)
Здесь
y1  f1 ( ~
x ), y 2  f 2 ( ~
x)
(27)
есть соответственно нижняя и верхняя границы интервальной зависимой
переменной функции (5). Аналогично представим интервальную независимую переменную ~x :
~
x  [ x1 , x2 ] .
(28)
После проведения необходимых подстановок выражение (17) интервальной производной от интервальной функции (5) примет вид
~
~
y~
y [ y , y ]  [ y1 , y 2 ]
~
.
y ~x  f ~x ( ~
x)  ~ ~  1 2
x  x [ x1 , x2 ]  [ x1 , x2 ]
(29)
Разности интервалов в числителе и знаменателе выражения (29) по
формуле (4) представим в виде интервального числа
[ y1 , y 2 ]  [ y1 , y 2 ]  [ y1  y 2 , y 2  y1 ], [ x1 , x2 ]  [ x1 , x2 ]  [ x1  x2 , x2  x1 ] . (30)
Подставив выражения (30) в (29), имеем представление интервальной производной в виде частного двух интервалов
[ y  y 2 , y 2  y1 ]
~
~
.
y ~x  f ~x ( ~
x)  1
[ x1  x2 , x2  x1 ]
(31)
Дифференциальное исчисление для интервально-определённых функций
19
В свою очередь, выражение (31) можно, согласно (4), представить
как следующее произведение двух интервалов
~
~
y ~x  f ~x ( ~
x )  [ y1  y 2 , y 2  y1 ]  [1 /( x 2  x1 ),1 /( x1  x 2 )] .
(32)
Перемножая интервалы в правой части (32) по соответствующему правилу (4), получим
 



~y ~  min  y1  y 2 , y1  y 2 , y 2  y1 , y 2  y1 , max y1  y 2 , y1  y 2 , y 2  y1 , y 2  y1  (33)
x
 x  x x  x x  x x  x 
  x 2  x1 x1  x 2 x 2  x1 x1  x 2 

 2 1 1 2 2 1 1 2 
 
Одинаково подчеркнутые члены в выражении (33) равны. Оставив
из каждых двух равных членов по одному, представим выражение (33) в
более простом виде:
~y ~  ~f ~ ( ~x )  min  y 2  y1 , y 2  y1 , max y 2  y1 , y 2  y1  .
 
x
x

 x  x x  x 
 2 1 1 2 
  x 2  x1 x1  x 2 
(34)
Два члена в круглых скобках формулы (34) различаются лишь знаком, причём (с учётом того, что x 2  x1 , y 2  y1 ) левый член положителен,
а правый – отрицателен. Таким образом, из (34) получается простейшее
выражение интервальной производной от интервальной функции (5)
~y ~  ~f ~ ( ~x )   y 2  y1 , y 2  y1  .
(35)
x
x


x

x
x

x
 1 2 2 1
С учётом того, что x1  x 2   ( x 2  x1 ) , выражение (35) окончательно
переписывается в виде
~y ~  ~f ~ ( ~x )   y 2  y1 , y 2  y1  ,
x
x


 x 2  x1 x 2  x1 
(36)
что и требовалось доказать.
Аналогичное (25) явное выражение интервальной производной
функции, дающее сразу в явном виде нижнюю и верхнюю границы интервального числа – значения этой функции – справедливо и для производных высших порядков. Это выражение приведено ниже.
Теорема 6. Интервальная производная любого n -го порядка от
~
непрерывной интервальной функции ~y  f ( ~x ) вида (5), выражаемая
x формулой (21) в виде суперпозиции опедля произвольной точки ~
раций над интервальными переменными, может быть представлена в
данной точке в явном виде интервала, нижняя и верхняя границы которого выражены через нижнюю и верхнюю границы интервальных независимой переменной ~x  [ x1 , x2 ] и промежуточной переменной – производной (n  1) -го порядка ~y ( n 1)  [ y1( n 1) , y 2( n 1) ] от интервальной функции (5) следующим образом:
В.И. Левин
20
( n 1)
( n 1)
( n 1)
( n 1)
~y ~( n)  ~f ~( n) ( ~x )   y 2  y1 , y 2  y1  .
x
x
x 2  x1
x 2  x1 

(37)
Доказательство теоремы 6 аналогично теореме 5, с той лишь разницей, что в качестве исходного выражения искомой интервальной производной n -го порядка от интервальной функции вида (5) берётся формула (21), тогда как в случае теоремы 5 исходным выражением искомой
интервальной производной 1-го порядка от функции (5) служит такая же
по форме формула (17).
Используя формулу (37), нетрудно получить простые явные выражения типа (25) для интервальных производных 2-го, 3-го и т.д. порядков от интервальной функции (5). Действительно, для интервальной
производной 2-го порядка из (37) имеем
~y ~  ~f ~( ~x )   y 2  y1 , y 2  y1  .
x
x


 x 2  x1 x 2  x1 
(38)
Далее, подставляя в формулу (38) значения нижней и верхней границ интервальной производной 1-го порядка из (25) в виде
y1  
y 2  y1
y y
, y 2  2 1 ,
x2  x1
x2  x1
(39)
после необходимых эквивалентных преобразований получим
~y ~  ~f ~( ~x )   2( y 2  y1 ) , 2( y 2  y1 )  .

x
x
2
2
 ( x 2  x1 ) ( x 2  x1 ) 
(40)
Аналогично, для интервальной производной 3-го порядка из (37)
~y ~  ~f ~( ~x )   y 2  y1 , y 2  y1  .
x
x


 x 2  x1 x 2  x1 
(41)
Как и в предыдущем случае, подставляя в формулу (41) значения
границ интервальной производной 2-го порядка из (40) в виде
y1  
2( y 2  y1 )
( x 2  x1 )
2
,
y 2 
2( y 2  y1 )
( x 2  x1 ) 2
,
(42)
будем, после необходимых эквивалентных преобразований, иметь следующее выражение для 3-й производной:
~y ~  ~f ~( ~x )   4( y 2  y1 ) , 4( y 2  y1 )  .

x
x
3
3
 ( x 2  x1 ) ( x 2  x1 ) 
(43)
Продолжая процесс для интервальных производных 4-го, 5-го и последующих порядков, приходим к следующему общему результату.
Теорема 7. Интервальная производная n -го порядка (n  1,2,3,...) от
~
непрерывной интервальной функции ~y  f ( ~x ) (5), выражаемая для проx формулой (21) в виде суперпозиции операций над
извольной точки ~
Дифференциальное исчисление для интервально-определённых функций
21
интервальными переменными, может быть представлена в указанной
точке также и в явном виде интервала с явно выраженными нижней и
верхней границами вида (25), (40), (43)
n 1
n 1
~y ~( n )  ~f ~( n) ( ~x )   2 ( y 2  y1 ) , 2 ( y 2  y1 ) , n  1,2,3,... .
(44)


x
x
n
( x 2  x1 ) n 
 ( x 2  x1 )
Здесь x1 , x2 – нижняя и верхняя границы интервальной независимой
~
переменной ~x  [ x , x ] в точке взятия производной от функции ~y  f ( ~x ) ,
1
2
а y1 , y 2 – нижняя и верхняя границы интервальной зависимой переменной ~y  [ y1 , y 2 ] этой функции в той же точке.
Сводка полученных явных выражений интервальных производных
функций различных порядков приведена в табл. 1.
Таблица 1
Функция
Обозначение функции
Исходная
интервальная
функция
Интервальная
производная
функция 1-го
порядка
Интервальная
производная
функция 2-го
порядка
Интервальная
производная
функция 3-го
порядка
…
Интервальная
производная
функция n -го
порядка
~
~
y  f (~
x ),
~
~
x  [ x1 , x2 ], y  [ y1 , y 2 ]
7
Явное выражение
функции
~
[ y1 , y 2 ]  f [ x1 , x2 ] или
[ y1 , y 2 ]  [ f1 ( x1 , x2 ), f 2 ( x1 , x2 )]
~
~
~
y ~x  f ~x ( ~
x ) или ~
y ~x(1)  f ~x(1) ( ~
x)
 y 2  y1 y 2  y1 
,


x

x
 2
1 x 2  x1 
~
~
~
y ~x  f ~x( ~
x ) или ~
y ~x( 2)  f ~x( 2) ( ~
x)
 2( y 2  y1 ) 2( y 2  y1 ) 
,

2
2
 ( x 2  x1 ) ( x 2  x1 ) 
~y ~  ~f ~( ~
~ (3)  ~f ~(3) ( ~
x)
x
x x ) или y ~
x
x
 4( y 2  y1 ) 4( y 2  y1 ) 
,

3
3
 ( x 2  x1 ) ( x 2  x1 ) 
…
…
~
~
y ~x( n )  f ~x( n ) ( ~
x)
 2 n1 ( y 2  y1 ) 2 n1 ( y 2  y1 ) 
,


n
(
x

x
)
( x2  x1 ) n 

2
1
ОБСУЖДЕНИЕ РЕЗУЛЬТАТОВ
Построенное в настоящей статье недетерминистское дифференциальное исчисление для функций, определяемых с точностью до интервалов возможных значений, существенно отличается от классического
В.И. Левин
22
дифференциального исчисления полностью определенных функций.
Это отличие связано с тем, что используемое в классическом дифференциальном исчислении в качестве базы предельное поведение, при котором разность между переменной величиной (функцией) и постоянной величиной – её пределом – неограниченно приближается к нулю,
возможно лишь для полностью определенных величин (функций), в то
же время, для не полностью определённых величин (функций), в частности, определяемых с точностью до интервалов, указанного предельного поведения не существует.
Основное отличие построенного недетерминистского (интервального) дифференциального исчисления от классического заключается в
том, что интервальные производные любого n -го порядка принадлежат к одному и тому же классу функций, который, согласно общей формуле производной (44), можно назвать классом дробных функционально-рациональных функций. В то же время, как уже говорилось в п. 2,
в классическом дифференциальном исчислении производная, в зависимости от порядка, может принадлежать различным классам функций.
Другое отличие недетерминистского (интервального) дифференциального исчисления от классического состоит в том, что в нем, согласно теоремам 1 и 3, любая невырожденная интервальная функция
имеет интервальные производные всех порядков n (n=1,2,…) в каждой
точке её области определения. Тогда как в классическом дифференциальном исчислении уже производная 1-го порядка существует не у
всех функций и не во всех точках (см. пример в п. 1).
Еще одно важное отличие построенного недетерминистского (интервального) дифференциального исчисления от классического состоит
в том, что в недетерминистском дифференциальном исчислении существует единая формула (формула (44)), выражающая интервальную про~
изводную любого порядка n от любой интервальной функции ~y  f ( ~x ) ,
а в классическом дифференциальном исчислении такой формулы нет.
Названные особенности недетерминистского (интервального) дифференциального исчисления, в соответствии со сказанным в п. 2, позволяют думать, что это исчисление является более адекватной моделью
скорости изменения реальных природных процессов, чем классическое
дифференциальное исчисление.
8
ЗАКЛЮЧЕНИЕ
Итак, в настоящей статье показана возможность обобщения классического дифференциального исчисления на случай недетерминированных функций, в которых переменные заданы с точностью до интервалов возможных значений. Новое дифференциальное исчисление идей-
Дифференциальное исчисление для интервально-определённых функций
23
но близко классическому дифференциальному исчислению, в частности,
производная показывает скорость изменения функции относительно
её аргумента.
Однако форма нового исчисления существенно иная. Главные отличия состоят в том, что:
1) производная любого порядка является интервальной функцией, в
которой все переменные, как независимые, так и зависимые,
имеют вид интервалов возможных значений;
2) производная любого порядка выражается в явном виде через значения независимой и зависимой переменных дифференцируемой
функции, причём указанное выражение является единым по форме для производных всех порядков.
СПИСОК ЛИТЕРАТУРЫ
1.
2.
3.
4.
5.
6.
7.
Гнеденко, Б. В. (2004), Курс теории вероятностей, Наука, М., 350 с.
Заде, Л. А. (1976), Понятие лингвистической переменной и его применение к принятию приближенных решений, Мир, М., 165 с.
Алефельд, Г., Херцбергер, Ю. (1987), Введение в интервальные
вычисления, Мир, М, 360 с.
Левин, В. И. (1999), Интервальные методы оптимизации систем
в условиях неопределенности, Изд-во Пензенского технологического ин-та, Пенза, 95 с.
Левин, В. И. (2012), «Оптимизация в условиях интервальной неопределенности. Метод детерминизации», Автоматика и вычислительная техника, № 4, сс. 157–163.
Фихтенгольц, Г. М. (2005), Курс дифференциального и интегрального исчисления. Т. 1, Наука, М, 650 с.
Кремер, Н. Ш., и др. (2001), Высшая математика для экономистов,
ЮНИТИ, М., 472 с.
24
В.И. Левин
A DIFFERENTIAL CALCULUS FOR INTERVAL-DETERMINED FUNCTIONS
V. I. Levin, email: vilevin@mail.ru
Penza State Technological University
Abstract. The problems of the adequacy of the classic (Newton-Leibniz) differential calculus are considered. Respective disadvantages of this calculus are following: the inability to
use concept of classical derivative in case of not completely defined functions; various
functional membership of derivatives of various orders, despite the same of their interpretation as the speed of various orders; the nonexistence of the derivative at certain points of the
functions that simulate the real motion, despite the apparent existence of a speed at any
point of each of the process; no single formula for the derivatives of various orders, although a single interpretation of all these derivatives as the velocities of different orders. In
this regard, we propose a generalization of the classic differential calculus, which allows
eliminating these disadvantages. It applies to the calculation of the above functions with
interval uncertainty variables. For next constructions, interval mathematics is used. We introduce the concept of the limit of the interval function and its derivative. The theorem of
existence of the interval derivative is proved. We obtained representation derivatives of various orders by the initial interval function and its interval argument. With the means of interval algebra, we obtained single formula, which express the derivative of any interval of
order through the lower and upper boundaries of the original interval function and its arguments. We discuss the main features of the constructed interval-differential calculus and its
differences from the classic differential calculus. As the main difference is called, that interval derivatives of order belong to single class of functionally fractional-rational functions
while in the classical differential calculus derivative, depending on order, may belong to
different classes. Another difference is that in the interval-differential calculus any nondegenerate interval function has derivatives at the every point of its domain, as in the classical calculus the 1st derivative does not exist at all functions and at all points. The third difference is that in the interval-differential calculus there is a single formula expressing the
derivative of any order, as in the classic version of calculus there is no such formula.
Keywords and phrases: interval value; interval function; interval derivative; interval computing; nondeterministic differential calculus.
Computing Classification System 1998: G.1.0
Mathematics Subject Classification 2010: 26A24, 65G30
REFERENCES
1. Gnedenko, B. V. (2004), A course of probabilistic theory [Kurs teorii veroyatnostey], Nauka, M., 451 р.
2. Zadeh, L. A. (1975), “The concept of a linguistic variable and its application to approximate reasoning”, Information Sciences, No. 8, pp. 199–249, 301–357; No. 9,
pp. 43–80.
3. Alefeld, G., Herzberger, J. (1983), Introduction to Interval Computations, Academic
Press, N. Y., 360 p.
4. Levin, V. I. (1999), Interval methods of system optimization in the conditions of uncertainty [Intervalnye metody optimizacii sistem v usloviyah neopredelennosti], Penza Technological Institute Publishing, Penza, 95 p.
5. Levin, V. I. (2012), “Optimization in terms of interval uncertainty: the determination
method”, Automatic control and computer sciences [“Optimizaciya v usloviyah interval’noy neopredelennosti: metod determinizacii”, Avtomatika i vychislitel’naya tehnni-
Дифференциальное исчисление для интервально-определённых функций
6.
7.
25
ka], No. 4, pp. 157–163.
Fihtengolz, G. M. (2005), The course of differential and integral calculus [Kurs differencialnogo i integralnogo ischisleniya], V. 1, Nauka, M., 680 р.
Kremer, N. Sh., et al. (2001), Higher mathematics for economists [Vysshaya matematika
dlya ekonomistov], UNITI, Moscow, 471 p.
ЭВРИСТИЧЕСКИЕ АЛГОРИТМЫ И РАСПРЕДЕЛЁННЫЕ ВЫЧИСЛЕНИЯ, 2, 2 (2015) 26–38
УДК 004.896
ПРИМЕНЕНИЕ САМООРГАНИЗУЮЩИХСЯ КАРТ КОХОНЕНА
В АНАЛИЗЕ ДАННЫХ АКУСТИЧЕСКОЙ ЭМИССИИ *
П. И. Аверин, email: inerd-pavel@yandex.ru
Тольяттинская академия управления
Аннотация. Одной из областей применения интеллектуального анализа данных является кластерный анализ и вычисление закономерностей
в акустических данных. Для решения задач этой области автором
предложен метод кластерного анализа на основе самоорганизующихся
карт. В работе описывается алгоритм самоорганизующихся карт Кохонена и представлен пример применения данного алгоритма в анализе
данных акустической эмиссии. Автором представлено решение задачи
выделения групп точек наиболее активных участков акустического
сигнала. Описанный подход позволяет эффективно произвести разбиение точек пиков акустического спектра на кластеры, поиск закономерностей характеристик и подготовить данные для дальнейшего анализа.
Учитывая, что алгоритм самоорганизующихся карт устойчив к анализу
«зашумлённых» данных, он позволяет разложить пиковые точки и
участки спектральной плотности на группы без предварительного преобразования алгоритмами фильтрации. Кроме того, при предварительной обработке данных с помощью фильтров нужно меньше шагов для
формирования кластеров.
При реализации данного метода можно модифицировать его и добиться решения собственных задач выделения наиболее активных характеристик спектра, эффектов Кайзера, групп спектральной плотности и
других закономерностей в определённый момент времени. Такой модифицированный метод также может использоваться, например, в анализе данных солнечной активности, активности земной коры, валютной активности на биржах и других областях, в которых целесообразно
используются алгоритмы интеллектуального анализа (data mining).
В статье описаны и продемонстрированы результаты преобразования
взятого небольшого участка данных акустической эмиссии, а также
описаны преимущества такого подхода по сравнению с другими алгоритмами кластерного анализа.
Ключевые слова и фразы: нейронные сети; самоорганизующиеся
карты Кохонена; интеллектуальный анализ данных; акустическая
эмиссия; кластерный анализ.
1
ВВЕДЕНИЕ
В современном моделировании и обработке данных нейронные сети
разделяют на разные классы. Одним из таких классов считаются
нейронные сети Кохонена, основным элементом которых является
*
© П. И. Аверин, 2015.
Применение самоорганизующихся карт Кохонена в анализе ...
27
слой Кохонена. Слой Кохонена состоит из адаптивных «линейных
формальных нейронов». В данной работе рассмотрим один из алгоритмов нейронных сетей этого класса – самоорганизующиеся карты
Кохонена. Самоорганизующиеся карты – нейронная сеть с обучением
без учителя, то есть результат обучения зависит только от структуры
входных данных. Нейронные сети данного типа часто применяются
для решения самых различных задач, от восстановления пропусков в
данных до анализа данных и поиска закономерностей [1, 2].
Необходимо применить алгоритм самоорганизующихся карт Кохонена для выделения групп точек и получения кластеров активности зарегистрированных в акустических данных.
2
САМООРГАНИЗУЮЩИЕСЯ КАРТЫ КОХОНЕНА
Алгоритм самообучающихся карт Кохонена (Self-Organizing Maps –
SOM, или по-русски, СК) является одним из вариантов кластерного
анализа многомерных векторов. Примерами таких алгоритмов могут
служить алгоритмы k-ближайших средних и с-ближайших средних.
Отличительными характеристиками алгоритма СК является то, что в
нём все нейроны (узлы, центры классов) упорядочены в некоторую
структуру (обычно двумерную сетку). При этом в ходе обучения модифицируется не только нейрон-победитель, но и его соседи, хотя и в
меньшей степени. Поэтому СК можно считать методом проецирования многомерного пространства в пространство с более низкой размерностью. При использовании этого алгоритма вектора, схожие в исходном пространстве, оказываются рядом и на полученной карте [3].
В СК используется упорядоченная структура нейронов. Обычно
используются одномерные и двумерные сетки. При этом каждый
нейрон представляет собой n-мерный вектор-столбец m = m1 , m2 ,..., mn T ,
где n определяется размерностью исходного пространства (размерностью входных векторов). Применение одномерных и двумерных сеток
связано с тем, что возникают проблемы при отображении пространственных структур большей размерности.
В узлах двумерной сетки могут содержаться расположения нейронов n-угольными ячейками, но наиболее распространёнными являются сетки с прямоугольными или шестиугольными ячейками, т.к.
они способствуют наибольшему реагированию нейронов внутри сетки
и взаимодействию их между собой. Величина этого взаимодействия
определяется расстоянием между нейронами на карте. На рисунке 1
представлен пример расстояния для шестиугольной и четырёхугольной сеток [4].
28
П. И. Аверин
Рис. 1. Расстояние между нейронами на карте
для шестиугольной (а) и четырёхугольной (б) сеток.
При выделении анализируемой области карты с помощью шестиугольной сетки, значения расстояний между нейронами более близки
к значениям евклидового расстояния, чем при выделении с помощью
четырёхугольной сетки.
При этом количество нейронов в сетке определяет степень детализации результата работы алгоритма, и, в конечном счёте, от этого
зависит точность обобщающей способности карты [5].
Начальная инициализация карты
Начальная инициализация карты, как правило, начинается с заранее задаваемой конфигурации сетки (прямоугольной или шестиугольной), а также с подбора количества нейронов в сети. Некоторые источники рекомендуют использовать максимально возможное количество нейронов в карте [5, 7]. При этом начальный радиус обучения в
значительной степени влияет на способность обобщения при помощи
полученной карты. В случае, когда количество узлов карты превышает количество примеров в обучающей выборке, успех использования
алгоритма в большей степени зависит от подходящего выбора начального радиуса обучения. Однако в случае, когда размер карты составляет десятки тысяч нейронов, время, требуемое на обучение карты,
обычно бывает слишком велико для решения практических задач, таким образом, необходимо достигать допустимого компромисса при
выборе количества узлов [5].
На рисунке 2 показан пример расположения нейронов при
начальной инициализации карты.
Применение самоорганизующихся карт Кохонена в анализе ...
29
Рис. 2. Пример расположения нейронов в начальной инициализации сети.
Перед началом обучения карты необходимо проинициализировать весовые коэффициенты нейронов. Удачно выбранный способ
инициализации может существенно ускорить обучение, и привести к
получению более качественных результатов. Существуют три способа
инициализации начальных весов [4]:

инициализация случайными значениями, когда всем весам даются малые случайные величины;

инициализация примерами, когда в качестве начальных значений
задаются значения случайно выбранных примеров из обучающей
выборки;

линейная инициализация. В этом случае веса инициируются значениями векторов, линейно упорядоченных вдоль линейного
подпространства, проходящего между двумя главными собственными векторами исходного набора данных.
В случае преобразования акустических данных инициализации
начальных весов извлекается из входных данных карты, то есть с помощью инициализации примерами.
Обучение
Обучение состоит из последовательности коррекций векторов,
представляющих собой нейроны. На каждом шаге обучения из исходного набора данных случайно выбирается один из векторов, а затем
производится поиск наиболее похожего на него вектора коэффициентов нейронов. При этом выбирается нейрон-победитель, который
наиболее похож на вектор входов. Под похожестью в данной задаче
понимается расстояние между векторами, обычно вычисляемое в ев-
30
П. И. Аверин
клидовом пространстве. Таким образом, если обозначить нейрон-победитель как c, то получим x  wc = miin x  wi .
После того, как найден нейрон-победитель, производится корректировка весов нейросети. При этом вектор, описывающий нейронпобедитель и вектора, описывающие его соседей в сетке, перемещаются в направлении входного вектора. Это проиллюстрировано на
рисунке 3 для двумерного вектора.
Рис. 3. Подстройка весов нейрона-победителя и его соседей.
Координаты входного вектора отмечены крестом, координаты
узлов карты после модификации отображены серым цветом. Вид сетки после модификации отображен штриховыми линиями [4].
При этом для модификации весовых коэффициентов используется формула: mi t  = mi t  1+ hci t   xt   mi t  1 , где t обозначает номер
эпохи (дискретное время). Вектор x(t) выбирается случайно из обучающей выборки на итерации t. Функция h(t) называется функцией соседства нейронов. Эта функция представляет собой невозрастающую
функцию от времени и расстояния между нейроном-победителем и
соседними нейронами в сетке. Она разбивается на две части: собственно функцию расстояния и функции скорости обучения от времени.
Обычно применяется одни из двух функций от расстояния: простая константа hci = αt  , при условии, что mi t  находится в окрестности mc t  заранее заданного аналитиком радиуса, и 0 в противном слуr  ri
2σ 2 t 
2
 c
чае или Гауссову функцию hci t  = αt   e
, где r определяет положение нейрона в сетке. При этом является убывающей функцией от
Применение самоорганизующихся карт Кохонена в анализе ...
31
времени. Часто эту величину называют радиусом обучения, который
выбирается достаточно большим на начальном этапе обучения и постепенно уменьшается так, что в конечном итоге обучается один
нейрон-победитель. Наиболее часто используется функция, линейно
убывающая от времени.
Рассмотрим теперь функцию скорости обучения a(t). Эта функция также представляет собой функцию, убывающую от времени. Чаще всего используются два варианта этой функции: линейная и обратно пропорциональная времени вида a t  =
A
, где A и B – это конt+B
станты. Применение этой функции приводит к тому, что все вектора
из обучающей выборки вносят примерно равный вклад в результат
обучения [4, 5].
Обучение состоит из двух основных фаз: на первоначальном этапе выбирается достаточно большое значение скорости обучения и радиуса обучения, что позволяет расположить вектора нейронов в соответствии с распределением примеров в выборке, а затем производится
точная подстройка весов, когда значения параметров скорости обучения много меньше начальных. В случае использования линейной инициализации первоначальный этап грубой подстройки может быть
пропущен [6].
3
ПРИМЕНЕНИЕ САМООРГАНИЗУЮЩИХСЯ КАРТ
ДЛЯ ПРЕОБРАЗОВАНИЯ И КЛАСТЕРИЗАЦИИ
АКУСТИЧЕСКИХ ДАННЫХ
Из описанного выше можно выделить такие общие действия алгоритма:
1) инициализируем произвольное наблюдение из выборки;
2) находим расстояние от произвольно выбранного вектора до векторов веса всех узлов карты и определяем ближайший по весу
узел;
3) определяем с помощью «функции соседства» соседей нейронапобедителя mi(t);
4) изменяем веса векторов нейрона-победителя и всех его соседей;
5) вычисляем вероятность ошибки карты.
На рисунке 4 изображена блок-схема такого алгоритма.
32
П. И. Аверин
Рис 4. Блок-схема использующегося алгоритма самоорганизующихся карт.
Применение самоорганизующихся карт Кохонена в анализе ...
33
Далее опишем пример работы такого алгоритма на небольшом
отрезке акустических данных и разъясним подробнее условия его выполнения.
Алгоритм позволяет добиться разбиения спектра акустической
эмиссии (АЭ) на кластеры. На рисунке 5 показаны входные данные
отрезка акустической эмиссии.
Рис 5. Небольшой отрезок входных данных АЭ.
Применим к входным данным выше описанные действия алгоритма. Возьмем произвольное значение x253.849;0.5073 из выборки
входных данных (векторов) и проинициализируем его как начальное
наблюдение карты.
Находим расстояние от вектора xt  = x253.849;0.5023 до векторов
всех узлов карты с помощью евклидовой метрики и определяем
нейрон-победитель, при условии, что xt   mc t   xt   mi t  (1). В таблице 1 описаны результаты вычисления нашей карты.
Таблица 1.
Номер узла
1
Расстояние от x(t) до вектора Нейрон-победитель
узла
1, остальные
нейроны 0.
158.474
0
2
287.042
0
3
169.518
0
П. И. Аверин
34
4
519.693
0
5
253.722
0
6
326.821
0
7
376.874
0
8
35.661
1
9
130.373
0
10
242.777
0
Из таблицы 1 видно, что определившийся нейрон-победитель
имеет наименьшее расстояние от произвольно выбранного вектора.
Далее определяем соседей нейрона-победителя, воспользовавшись
r  ri
2σ 2 t 
2
 c
функцией Гаусса hci t  = αt   e
(2) и изменяем веса векторов
нейрона-победителя
и
его
соседей
по
формуле
mi t  = mi t  1+ hci t   xt   mi t  1 [4,7]. Результат работы алгоритма
продемонстрирован на рисунке ниже.
Рис 6. Изменение весов векторов нейронов на полученном отрезке АЭ.
На рисунке 6 крестом указан центр сетки, взятый в текущей ите-
Применение самоорганизующихся карт Кохонена в анализе ...
35
рации алгоритма, круглыми точками указаны входные векторы
нейронов, которые подаются на вход алгоритма и ромбами указаны
точки изменения весов векторов нейронов внутри сетки.
Для проверки ошибок самоорганизующейся карты воспользуемся
формулой
1 N
 xi  mc – среднего арифметического расстояний между
N i=1
наблюдениями и векторами веса соответствующих им нейроновпобедителей. Если ошибка карты превышает допустимое значение, то
цикл действий начинается заново и выполняется до тех пор, пока
ошибка не достигнет допустимого значения.
На рисунке 7 продемонстрирован обработанный отрезок АЭ в
виде кластера выделенного алгоритмом самоорганизующейся карты
Кохонена.
Рис 7. Преобразованный отрезок АЭ и выделенный кластер точек.
4
ЗАКЛЮЧЕНИЕ
Самоорганизующиеся карты Кохонена – эффективный алгоритм для
разбиения акустических данных на кластеры. Основными его достоинствами является устойчивость к зашумленным данным, быстрое
обучение и обучение без учителя [5]. Сравнивая результаты, полученные при анализе данных с помощью алгоритмов k-средних и cсредних [8], можно отметить, что самоорганизующиеся карты главным образом имеют преимущество в неуправляемом обучении сети,
П. И. Аверин
36
более детальном разбиении на кластеры, а также, как уже отмечалось,
устойчивость к шумам входных данных. Последнее дает такому подходу возможность не использовать предварительную фильтрацию
данных, что способствует работе непосредственно к более точным
вычислениям групп кластеров.
Однако для оптимального и менее ошибочного решения карт
требуется нахождение оптимального расчета начальной установки сети, т. к. от начальных входов сильно зависят выходные данные [8].
Подводя итог, можно сказать, что самоорганизующиеся карты не
требуют лишних преобразований данных, фильтрами шумов и могут
использовать непосредственно оригинальные входящие данные, но
для более удачных результатов необходим расчёт аналитика или алгоритм расчёта начальных свойств нейронной сети.
СПИСОК ЛИТЕРАТУРЫ
1.
2.
3.
4.
5.
6.
7.
8.
Калан, Р. (2001), Основные концепции нейронных сетей, Вильямс,
М., 288 c.
Уоссермен, Ф. (1992), Нейрокомпьютерная техника, Мир, М.,
184 с.
Ежов, А., Шумский, С. (1998), Нейрокомпьютинг и его применение в экономике и бизнесе, МИФИ, М., 222 с.
Стариков, А. (2010), Самоорганизующиеся карты Кохонена – математический аппарат, режим доступа:
http://www.basegroup.ru/library/analysis/clusterization/som/
Kohonen, T. (2001), Self-Organizing Maps, Third Extended Ed., N.Y.,
501 p., ISBV 3-540-67921-9.
Vensano, J. (1997), Data Mining Techniques Based on the Self Organized Map, режим доступа:
http://www.cis.hut.fi/projects/ide/publications/html/mastersJV97/node
1.html
Чубукова, И. А. (2000), Data mining, сс. 118–146, режим доступа:
http://portal.tpu.ru/departments/kafedra/vt/Disciplines_VT/Data_store
houses/FilesTab/Tab/lections%20data%20mining.pdf
Аверин, П. И. (2013), «Вариант решения задачи вычисления признаков разрушения металлов с помощью нейронных сетей на основе данных кластерного анализа импульсов акустической эмиссии», Алгоритмические и программные средства в информационных технологиях, радиоэлектронике и телекоммуникациях.
Материалы I Межд. заочной научно-технической конференции
(Тольятти,1-31 января 2013 г.), Тольятти, ПВГУС, сс. 564–569.
Применение самоорганизующихся карт Кохонена в анализе ...
37
APPLICATION OF KOHONEN SELF-ORGANIZING MAPS
IN DATA MINING FOR ACOUSTIC EMISSION
P. I. Averin, e-mail: inerd-pavel@yandex.ru
Togliatti Academy of Management
Abstract. One of the applications areas of data mining is the clustering analysis and
calculation of acoustic patterns in the data. To solve the problems in this field by the
author proposed a method of cluster analysis based on self-organizing maps. The paper
describes the algorithm and Kohonen self-organizing maps is an example of the application of this algorithm to analyze the data of acoustic emission. The author presents the
solution of separation point groups of the most active areas of the acoustic signal. The
described approach can effectively produce partition points of the peaks of the acoustic
spectrum into clusters, search-regularity of performance and prepare the data for further
analysis. Given that the self-organizing maps algorithm is resistant to the analysis of
“noisy” data, it allows us to expand the peak point and the spectral density plots for
groups without prior conversion filtering algorithms. Moreover, in the pre-processing of
data using filters need fewer steps for the formation of clusters.
When implementing this method, you can modify it and get solve their own problems
highlight the most active characteristics-spectrum effects, Kaiser groups, spectral density and other laws in a given time. This modified method also can be used, for example,
in the data analysis of solar activity, the activity of the Earth's crust, currency activity on
the stock exchanges and other areas in which it is advisable to use mining algorithms.
The article describes the results of the transformation and demonstrated taken a small
section of the acoustic emission data, as well as describes the benefits of this approach
in comparison with that of other algorithms of cluster analysis.
Key words and phrases: processing of digital strings; similar strings; feasible set; the
minimal estimating.
Computing Classification System 1998: H.3.3, I.5.3
Mathematics Subject Classification 2010: 91С20
REFERENCES
1. Callan, R. (1998), The Essence of Computing Series, Prentice Hall (UK), 248 p.
2. Wasserman, P. (1989), Neural computing: Theory and Practice, Van Nostrand
Reinhold, 230 p.
3. Yezhov, A., Shumsky, S. (1998), “Neurocomputing and its application in economics and business”, [“Nejrokomp'juting i ego primenenie v ekonomike i biznese”],
MEPHI, M., 222 p.
4. Starikov, A. (2010), Kohonen self-organizing maps – the mathematical apparatus,
[“Samoorganizujushhiesja karty Kohonena – matematicheskij apparat”], available
at: http://www.basegroup.ru/library/analysis/clusterization/som/
5. Kohonen, T. (2001), Self-Organizing Maps, Third Extended Ed., N.Y., 501 p.,
ISBV 3-540-67921-9.
6. Vensano, J. (1997), Data Mining Techniques Baseg on the Self Organized Map,
available at:
http://www.cis.hut.fi/projects/ide/publications/html/mastersJV97/node1.html
7. Chubukova, I. A. (2000), Data mining, pp. 118–146, available at:
http://portal.tpu.ru/departments/kafedra/vt/Disciplines_VT/Data_storehouses/Files
Tab/Tab/lections%20data%20mining.pdf
38
8.
П. И. Аверин
Averin, P. I. (2013), “Option for solving the problem of calculating signs of destruction of metals by means of neural networks based on cluster analysis pulses of
acoustic emission”, Algorithmic and software for the information technology, electronics and telecommunications. Proceedings of the I International extramural scientific-technical conference (Togliatti, 1-31 January 2013), [“Variant reshenija
zadachi vychislenija priznakov razrushenija metallov s pomoshh'ju nejronnyh setej
na osnove dannyh klasternogo analiza impul'sov akusticheskoj emissii”, Algoritmicheskie i programmnye sredstva v informacionnyh tehnologijah, radiojelektronike i telekommunikacijah. Materialy I Mezhd. zaochnoj nauchno-tehnicheskoj konferencii (Togliatti,1-31 janvarja 2013 g.)], Togliatti, PVGUS, pp. 564–569.
Эвристические алгоритмы и распределённые вычисления, 2, 2 (2015) 39–59
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
УДК 004.023
Детерминированные подходы
к алгоритмизации труднорешаемых задач.
Часть III: Основы теории
сложности аппроксимации ∗
Ю. Громкович, email: jhromkov@inf.ethz.ch
Швейцария, Цюрих, Технический университет
(Eidgenössische Technische Hochschule)
Аннотация. Данная статья является обзорной – в ней приведены
обобщения работ автора, изданных за последние несколько лет в
качестве научных и учебных статей и монографий. В текст статьи
добавлена информация о самых новых достижениях в данной области теоретической информатики – разработке алгоритмов для
труднорешаемых задач.
Подробно рассматривая в данной статье процесс разработки
алгоритмов, мы не сводим рассмотрение трудных задач, а также
нашу интерпретацию трудности, к так называемой NP-трудности.
Более того, наибольшее внимание мы уделяем тем проблемам, для
которых пока не доказаны ни NP-трудность, ни полиномиальная
разрешимость – т.е. неизвестно, существуют ли алгоритмы, решающие эту задачу за полиномиальное время. Для частных случаев
этих проблем, имеющих большую размерность, использовать алгоритмы экспоненциальной сложности на практике нельзя – поскольку при этом может получаться очень большой объём вычислений. Например, может потребоваться 2100 элементарных операций – а это лежит за границами физических возможностей компьютера. Однако, кроме того, мы считаем трудными и такие задачи, для которых полиномиальная разрешимость уже доказана –
но пока неизвестны полиномиальные алгоритмы небольших степеней.
Несколько разных подходов к алгоритмизации труднорешаемых задач, рассматриваемых в данной обзорной статье, могут
быть названы детерминированными. В первом из этих подходов
∗
c Ю. Громкович, 2015.
40
Ю. Громкович
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
мы допускаем, что в худшем случае разрабатываемые нами алгоритмы всё же будут иметь экспоненциальную сложность – но при
этом они достаточно эффективны для большинства частных случаев проблемы, появляющихся в конкретных практических приложениях. Во втором подходе мы соглашаемся даже с тем, что
усреднённая временна́я сложность разрабатываемых алгоритмов
решения трудных проблем экспоненциальна – однако возрастает
достаточно медленно. А в третьем подходе мы снимаем требование о том, чтобы алгоритм обязательно находил точное решение
рассматриваемой проблемы. И, как обычно в подобных случаях,
мы часто рассматриваем комбинации этих трёх подходов.
В части III данной статьи рассматриваются способы измерения
вычислительный сложности алгоритмов.
Ключевые слова и фразы: труднорешаемые задачи; эвристические алгоритмы; детерминированные подходы; оптимизационные
проблемы; сложность алгоритмов.
В данной части III мы продолжаем нумерацию разделов, определений и рисунков, начатую в частях I и II ([1, 2]). Мы обсудим
способы измерения вычислительный сложности алгоритмов и представим основные структуры для классификации алгоритмических
проблем относительно их вычислительной трудности.
4
Основы теории сложности
Теория данного раздела нужна для освоения всего последующего
материала. Кроме того, теория, посвящённая классам сложности и
концепции NP-полноты, даёт как общефилософский взгляд на алгоритмы и сложность вычислений, так и основы для понимания
дальнейшего материала с точки зрения границ неаппроксимируемости – для классификации оптимизационных проблем относительно
их полиномиально-временно́й аппроксимируемости.
Как уже было отмечено, мы рассматриваем разработку программ
на алгоритмическом уровне – и, следовательно, не будем детально
рассматривать разработку алгоритмов на конкретных языках программирования. Для представления алгоритмов мы используем либо неформальное описание их частей – таких как «выбрать ребро
графа G, удалить его из текущего списка рёбер, и проверить, является ли остаток графа связанным», либо «паскалеподобный» язык с
операторами типа for, repeat, while, if . . . then . . . else и т.п. Заметим,
что такого грубого описания обычно вполне достаточно для анализа
Детерминированные подходы к алгоритмизации труднорешаемых задач . . . 41
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
сложности аппроксимации – когда хорошо известна сложность реализации описанных начерно частей рассматриваемого алгоритма.
Можно считать, что целью анализа сложности аппроксимационных алгоритмов является обеспечение в этом анализе «здравого
смысла» – т.е. его результат не должен зависеть от структурных и
технологических характеристик конкретных последовательных компьютеров1 и их системного и прикладного программного обеспечения. Мы сосредоточим наше внимание на временно́й сложности вычислений – и только иногда рассматриваем сложность по памяти.
Мы различаем два основных способа измерения сложности – а именно, однородную и логарифмическую сложность.2
Подход, базирующийся на измерении однородной сложности, является самым простым. При этом измерение сложности по времени
(временно́й сложности) состоит в определении общего числа элементарных операций,3 выполняющихся в рассматриваемом вычислении,
а измерении сложности по памяти состоит в определении общего
числа используемых в нём переменных. Преимущество такого измерения состоит в его простоте, а недостаток – в том, что оно не
всегда адекватно: например, для временно́й сложности стоимость 1
предполагается для любых арифметических действий над целыми
числами – независимо от их размера. Но если операнды являются
такими целыми числами, двоичные представления которых состоят
из нескольких сотен битов, то ни одно из них не может быть сохранено в одном машинном слове (размера 16 или 32 бита). Значит, в этом
случае операнды должны быть сохранены в нескольких машинных
словах – т.е. для их хранения необходимо несколько единиц памяти
(несколько переменных), а выполнение каждой из арифметических
операций над этими двумя длинными целыми числами соответствует вызову специальной подпрограммы, выполняющей такую операцию над длинными целыми числами путём нескольких операций над
(обычными) целыми числами – такими, размер которых равен размеру обычного машинного слова. Поэтому однородную сложность
можно удачно применять, если в процессе всего вычисления значения всех переменных ограничены заранее зафиксированной констан1
Можно сказать – в том случае, когда мы не рассматриваем параллельные вычисления.
(Прим. перев.)
2
В английской терминологии – “uniform cost criterion” and “logarithmic cost criterion”.
(Прим. перев.)
3
Элементарными операциями являются арифметические действия над целыми числами,
их сравнение, чтение и запись и т.п.
Ю. Громкович
42
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
той, равной длине гипотетического машинного слова. Например –
при вычислениях над полем Zp , либо при работе только с логическими значениями – т.е. в булевой алгебре.
Серьёзный недостаток4 использования однородной сложности может быть продемонстрирован на следующем примере. Пусть k и
a ≥ 2 – два натуральных числа, длина которых не превышает длиk
ны машинного слова. Рассмотрим задачу вычисления числа a2 . Для
этого может быть применён следующий алгоритм. Вычислим
a2 = a · a,
a4 = a2 · a2 ,
a8 = a4 · a4 ,
...,
k
a 2 = a2
k−1
· a2
k−1
.
У нас возникает уверенность, что однородная сложность по памяти
равна 3 – потому что для выполнения вычислений
for i = 1 to k do a := a ∗ a
достаточно одной дополнительной переменной. А однородная временна́я сложность составляет O(k) – потому что в этом алгоритме
выполняются в точности k умножений. Однако всё это не согласуется с тем, что нам необходимо по крайней мере 2k битов для
k
представления результата – значения a2 , а для записи 2k битов любому последовательному компьютеру необходимо Ω(2k ) операций с
машинными словами. Поскольку всё сказанное верно для каждого натурального k, мы получаем экспоненциальную разницу между
вычисленной однородной сложностью по времени и любой реальной
её оценкой – а для случая сложности по памяти эту разницу вообще
невозможно ограничить.
Выходом из подобной ситуации является использование т.н. логарифмической сложности измерений: мы считаем, что сложность
каждой элементарной операции пропорциональна сумме длин двоичных представлений операндов.5 Очевидно, что при этом подходе
к измерению сложности упомянутые выше аномалии отсутствуют –
и поэтому именно он чаще всего применяется при анализе сложности алгоритмов. При таком подходе временну́ю сложность различных операций иногда можно считать различной. Например, поскольку лучший алгоритм умножения двух n-битных целых требует
Ω(n · log n) двоичных операций, мы считаем, что сложность операций умножения и деления имеет порядок O(n · log n) – в то время,
4
А именно – большая разница между ожидаемым и реально получаемым значениями
измерения сложности. (Прим. перев.)
5
Если считать совсем точно, то ещё нужно добавить двоичную длину адресов переменных
в памяти, которые соответствуют операндам.
Детерминированные подходы к алгоритмизации труднорешаемых задач . . . 43
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
как сложность операций сложения, вычитания и присваивания относительно двоичного размера их аргументов линейны.
Определение 5 Пусть ΣI и ΣO – алфавиты, а A – алгоритм, реализующий некоторое отображение, действующее из Σ∗I в Σ∗O . Для
каждого входа x ∈ Σ∗I :
• TimeA (x) обозначает временну́ю логарифмическую сложность;6
• Space A (x) обозначает логарифмическую сложность по памяти
алгоритма A на входе x.
Однако далее мы не будем рассматривать сложность по времени
TimeA и сложность по памяти Space A как функции, действующие
из Σ∗I в N: ведь обычно для любой возможной длины имеется экспоненциально много различных входов – и поэтому для точного
вычисления значения TimeA (x) часто необходимо проделать очень
большой объём работы. Даже если это и принесёт успех, описание
вычислений TimeA может быть настолько сложным, что даже определение основных характеристик функции TimeA будет весьма проблематичным. Сравнение сложности двух алгоритмов для одной и
той же алгоритмической проблемы также может представлять собой
очень сложную работу. Итак, сложность всегда рассматривается как
некоторая функция, зависящая от размера входа – и нам интересен
асимптотический рост этой функции.
Определение 6 Пусть ΣI и ΣO – два алфавита, а A – алгоритм,
вычисляющий некоторое отображение, действующее из Σ∗I в Σ∗O .
Временна́я сложность алгоритма A (в худшем случае) –
это функция Time A : N → N0 , определённая для каждого n ∈ N
следующим образом:
Time A (n) = max{Time A (x) | x ∈ ΣnI }.
Сложность по памяти алгоритма A (в худшем случае) –
это функция Space A : N → N0 , определённая как
Space A (n) = max{Space A (x) | x ∈ ΣnI }.
6
Заметим, что мы предположили, что алгоритм заканчивает работу для каждого входа
x – и, таким образом, TimeA (x) всегда является неотрицательным целым числом.
Ю. Громкович
44
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
Функция Time A определена таким образом, что:
• каждый вход размера n (т.е. каждый вход, принадлежащий
языку ΣnI ) решается алгоритмом A за время, не превосходящее
Time A (n);
• существует вход x размера n, такой что Time A (x)
Time A (n).
=
Эти факты являются причиной того, что мы называем такой вид
анализа сложности алгоритмов анализом в худшем случае. Его недостатки могут проявиться для алгоритмов, у которых входы одной и
той же длины дают весьма различную сложность вычислений.7,8
В таких ситуациях можно рассматривать анализ усреднённого случая – что включает необходимость определения усреднённой сложности на множестве всех частных случаев проблемы размерности
n.
У последнего подхода имеются следующие две проблемы. Вопервых, само определение усреднённой сложности обычно намного
труднее, чем определение Time A (n) – и поэтому во многих случаях
подобный анализ просто невозможно осуществить на практике. Вовторых, усреднённая сложность даёт полезную информацию только
в том случае, когда для любой фиксированной длины входов само
усреднение получено на основе реального распределения вероятностей различных входов. А такие распределения вероятностей могут
существенно различаться в разных приложениях – т.е. усреднённый
анализ сложности, соответствующий одному конкретному входному распределению, не обеспечивает осмысленного ответа для всех
возможных приложений этого алгоритма. Причём даже в случае
одного конкретного приложения мы часто неспособны посчитать это
входное распределение для всех размеров входных данных. Поэтому мы будет рассматривать только сложность в худшем случае; она
обеспечивает достаточно хорошую характеристику поведения почти
всех рассматриваемых алгоритмов.
При этом нужно отметить следующий факт. В определении 6 мы
зафиксировали длину входа – как бы заранее предполагая, что для
вычисления логарифмической сложности будем использовать именно эту длину. Длиной входного слова мы считаем длину его кода над
7
Очень известным примером является симплекс-метод решения проблемы линейного программирования.
8
Ещё более простой пример – алгоритм QuickSort сортировки массива. (Прим. перев.)
Детерминированные подходы к алгоритмизации труднорешаемых задач . . . 45
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
алфавитом ΣI ; напомним, что наша интерпретация этого алфавита
заключается в том, что он рассматривается как множество всевозможных машинных слов. А сами единицы измерения сложности при
этом иногда можно считать такими же, как и единицы измерения
размера входа; например, сложность может зависеть от количества
целых чисел, принадлежащих этому входу. Всё это допустимо, если
все объекты входных данных имеют одинаковый размер. Например,
для зафиксированного простого числа p и заданной матрицы размерности n × n над полем Zp можно зафиксировать размер n2 или
даже n – после чего производить измерение сложности относительно
этого аргумента. Но такой подход нельзя использовать, например,
для алгоритмических проблем теории чисел – в которых входными
данными является одно или несколько чисел заранее неизвестной
длины. Поэтому в подобных ситуациях мы обязаны рассматривать
в качестве размера входа длину его двоичного представления.
Далее мы достаточно редко будем выполнять строгий анализ
разработанных алгоритмов – по следующим двум причинам. Вопервых, для строгого анализа мы должны иметь дело с деталями
выполнения алгоритма – которые обычно опускаем. Во-вторых, мы
рассматриваем только трудные проблемы – и для разработанных
алгоритмов нам достаточно установить разумные асимптотические
верхние границы сложности.
Самая важная задача теории сложности заключается в классификации алгоритмических проблем относительно их вычислительной
сложности. Поскольку важнейшим вариантом измерения сложности
алгоритмов является, по-видимому, временна́я сложность – число
выполняющихся операций и т.п. – то мы обычно будем измерять вычислительную сложность проблемы в таких единицах. Интуитивно
временну́ю сложность проблемы U можно рассматривать как функцию вида TU : N → N, такую что для решения U необходимо и
достаточно Θ(TU (n)) операций.9 Но такое определение сложности
проблемы всё ещё не является конструктивным, нам необходимо
алгоритмическое определение – т.е. некоторый алгоритм, вычисляющий для проблемы U временну́ю сложность O(TU (n)).
Может показаться, что наиболее естественное определение временно́й сложности проблемы может быть сформулировано следующим образом: эта сложность является временно́й сложностью «лучшего», оптимального алгоритма, решающего рассматриваемую про9
Все обозначения, связанные с O-символикой, согласованы с [3]. (Прим. перев.)
46
Ю. Громкович
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
блему. Однако, к сожалению, следующий основной результат теории
сложности показывает, что и такой подход к определению сложности TU неконструктивен.
Теорема 1 Существует проблема принадлежности (L, Σbool ), такая что для каждого алгоритма A, распознающего язык L, существует другой алгоритм B:
• также распознающий L;
• при этом для бесконечно многих натуральных n удовлетворяющий условию
Time B (n) = log2 (Time A (n)).
Очевидно, что теорема 1 влечёт несуществование лучшего (оптимального) алгоритма для распознавания рассматриваемого языка –
и, таким образом, описанным выше способом невозможно определить сложность языка как некоторую функцию, отображающую N
в N. Всё вышесказанное является причиной того, что нам желательно определять не столько сложность конкретных алгоритмических
проблем, сколько нижнюю и верхнюю границы этой сложности.
Определение 7 Пусть U – алгоритмическая проблема, а f и g –
функции, действующие из N в R+ .
Будем говорить, что O(g(n)) является верхней границей временно́й сложности проблемы U, если существует алгоритм
A решения проблемы U, такой что Time A (n) ∈ O(g(n)).
Будем говорить, что Ω(f(n)) является нижней границей временно́й сложности проблемы U, если для каждого алгоритма
B, решающего U, выполнено условие Time B (n) ∈ Ω(f(n)).
Алгоритм C называется оптимальным для проблемы U, если
Time C (n) ∈ O(g(n)), и Ω(g(n)) является нижней границей временно́й сложности проблемы U.
Для получения какой-нибудь верхней границы сложности проблемы достаточно просто найти какой-нибудь алгоритм, решающий её.
Однако установление нетривиальной нижней границы сложности
проблемы является очень трудной задачей – поскольку требует доказательства того, что любое из бесконечного множества известных и неизвестных алгоритмических решений этой проблемы должно иметь временну́ю сложность в пределах Ω(f(n)) для некоторой
Детерминированные подходы к алгоритмизации труднорешаемых задач . . . 47
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
функции f. Это фактически является доказательством несуществования – поскольку нам необходимо доказать, что не существует ни
одного алгоритма:
• решающего U;
• имеющего временну́ю сложность асимптотически меньшую,
чем f(n).
Лучшей иллюстрацией того, что на практике получить нижнюю границу сложности весьма тяжело, является наше знание тысяч алгоритмических проблем, для которых:
• временна́я сложность лучшего из известных алгоритмов экспоненциально зависит от размера входа;
• однако неизвестны т.н. «суперлинейные» нижние границы
(вроде Ω(n log n)), заведомо выполняющиеся для любого возможного алгоритма.
Итак, мы догадываемся, что для многих из этих проблемы не существует алгоритма их решения, работающего полиномиально в зависимости от размера входа – но при этом даже не способны доказать,
что время, необходимое для их решения, действительно превосходит
O(n).
Рассмотрим некоторые идеи, разработанные для преодоления нашей неспособности обосновывать нижние границы сложности проблемы – т.е. доказывать, что некоторые проблемы являются трудными. Эти идеи дают приемлемые аргументы трудности конкретных
проблем – и их можно рассматривать как альтернативу возможной
работе в другом направлении, а именно – дальнейшему развития
теории, связанной со строгим рассмотрением трудности проблем.
Описываемые ниже концепции связаны с некоторыми формальными действиями (с алгоритмами и с их сложностью) в терминах
машин Тьюринга (МТ, [4] и мн.др.). Напомним, что согласно тезису
Чёрча–Тьюринга машина Тьюринга является формализацией нашего интуитивного понятия алгоритма. Это означает, что некоторая
проблема может быть решена алгоритмом (компьютерной программой на любом языке программирования) в том и только том случае,
если существует решающая её машина Тьюринга. С использованием формализма машин Тьюринга было доказано, что для каждой
возрастающей функции f : N → R+ выполнено следующее:
48
Ю. Громкович
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
• существует проблема принадлежности, такая что временна́я
сложность каждой МТ, предназначенной для её решения, составляет Ω(f(n));
• однако существует МТ, решающая эту проблему за время, находящееся в пределах O(f(n) · log f(n)).
Всё это означает, что существует бесконечная иерархия трудности
проблем принадлежности.
Далее мы будем по мере возможности использовать термины «алгоритм» и «компьютерная программа» вместо термина «машина
Тьюринга» – и, таким образом, опускать непринципиальные технические детали.
Можно сказать, что главные цели теории сложности таковы:
• найти формализацию описания классов практически разрешимых проблем;
• разработать методы классификации алгоритмических проблем соответственно их принадлежности конкретному
классу.
Первые успехи в поиске приемлемого варианта формализации интуитивного понятия разрешимой проблемы даёт следующее определение. В нём и далее для каждой МТ (каждого алгоритма) M записью L(M) будем обозначать язык, который принимается машиной
M.
Определение 8 Определим сложность класса языков P, разрешимых за полиномиальное время, следующим образом:
P = {L = L(M) | M – машина Тьюринга (алгоритм),
такая что Time M (n) ∈ O(nc ), c ∈ N}.
Язык (проблема принадлежности) L называется практически
разрешимым, если L ∈ P. Иначе язык L называется практически неразрешимым (трудным).
Определение 8 вводит класс P проблем принадлежности, разрешимых с помощью полиномиально-временны́х вычислений, а также
говорит о том, что P – это именно тот класс языков, свойством каждого из которых является практическая разрешимость соответствующей проблемы.
Детерминированные подходы к алгоритмизации труднорешаемых задач . . . 49
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
Обсудим преимущества и недостатки приведённого формального
определения практической разрешимости. Основные две причины
для связывания полиномиально-временны́х вычислений с нашим интуитивным понятием практической разрешимости таковы.
Во-первых, определение класса P является «естественным» – в том
смысле, что P является инвариантом для всех резонных моделей
вычислений. Иными словами – класс P остаётся неизменным независимо от того, определён ли он в терминах:
• полиномиально-временны́х машин Тьюринга;
• полиномиально-временны́х компьютерных программ, написанных на любом языке программирования;
• или полиномиально-временны́х алгоритмов для любой другой
«естественной» формализации вычислений.
Всё это является следствием другого важного результата теории
сложности – утверждающего, что все модели вычислений (т.е. все
формализации нашего интуитивного понятия «алгоритм»), реально
измеряющие сложность вычислений, являются полиномиальноэквивалентными. Этот термин («полиномиальная эквивалентность») означает, что если существует полиномиально-временной
алгоритм для некоторой алгоритмической проблемы в одном формализме, то существует полиномиально-временной алгоритм для той
же самой проблемы и в другом формализме – и наоборот. Такому
классу полиномиально-эквивалентных моделей вычислений принадлежат как машины Тьюринга, так и все известные языки программирования.
Итак, если можно разработать полиномиально-временной алгоритм для некоторой проблемы в одном формализме (например,
на языке Си++) – то и в любом другом естественном вычислительном формализме для той же самой проблемы существует полиномиально–временной алгоритм. С другой стороны, если доказать несуществование полиномиально–временно́й МТ, распознающей язык L, то можно быть уверенным, что не существует и полиномиально-временно́й компьютерной программы, распознающей
L. Заметим, что описанная инвариантность10 моделей вычислений
является весьма важной – и применяется в любой естественной конкретизации класса практически разрешимых проблем.
10
В оригинале – “this kind of robustness”. (Прим. перев.)
Ю. Громкович
50
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
Описанная выше причина того, что мы выбрали именно класс P, –
теоретическая. А вторая причина – практическая; она связана :
• с нашим интуитивным пониманием практической разрешимости;
• с нашим опытом в разработке алгоритмов.
Рассмотрим таблицу 1 – она иллюстрирует рост сложности функций 10n, 2n2 , n3 , 2n и n! для входов, имеющих размеры 10, 50, 100
и 300. Если значения функции f(n) являются слишком длинными,
то мы записываем в таблицу только количество цифр десятичного
представления f(n).
n
f(n)
10n
2n2
n3
2n
n!
10
50
100
300
100
500
1000
3000
200
5000
20000
180000
1000
125000
1000000
27000000
1024
(16 цифр) (31 цифра) (91 цифра)
6
≈ 3.6 · 10 (65 цифр) (161 цифра) (623 цифры)
Табл. 1.
На компьютере, выполняющем 106 операций в секунду, алгоритм
A с Time A (n) = n3 для n = 300 работает 27 секунд. Но если
Time A (n) = 2n , то выполнение алгоритма A для n = 50 может
занять более 30 лет, а для n = 100 – более 3 · 1016 лет. Если сравнить значения функций 2n и n! для реальных входных данных – т.е.
для входов, размер которых находится между 100 и 300 – с предполагаемым числом секунд, прошедших со времени большого взрыва,
которое состоит из 21 цифры,11 – то мы увидим, что выполнение алгоритмов экспоненциальной сложности для реальных входных данных находится за пределами физической реальности.
Другой аргумент связан с потенциальным созданием компьютера,
работающего в 2 раза быстрее предыдущего. Рассмотрим следующие свойства функций n3 и 2n . Если M является временем, которое
можно потратить на ожидание результатов выполнения программы,
то создание такого компьютера поможет нам всего лишь:
11
. . . или с числом протонов в известной нам части Вселенной, которое состоит из 79
цифр . . .
Детерминированные подходы к алгоритмизации труднорешаемых задач . . . 51
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
• для алгоритма, имеющего временну́ю сложность n3 , – увеличить размер практически
разрешимых частных случаев со зна√
3
1/3
1/3
чения M до 2 · M ; т.е. размеры частных случаев,
кото√
3
рые можно посчитать за это время, возрастают в 2 раз;
• для алгоритма, имеющего временну́ю сложность 2n , – увеличить размер практически разрешимых частных случаев на 1
бит.
Итак, алгоритмы, имеющие экспоненциальную временну́ю сложность, не могут рассматриваться в качестве практически применимых, а алгоритмы полиномиально-временно́й сложности – т.е. сложности O(nc ) для малых степеней c – могут. Конечно, время выполнения порядка n1000 не является практически применимым – потому
что n1000 > 2n для всех реальных размеров входа n; но, тем не менее,
опыт практического программирования даёт основания рассматривать полиномиально-временны́е вычисления как практически разрешимые.
При этом имеется ещё и такая «обратная связь»: почти всегда,
когда для некоторой алгоритмической проблемы – которая перед
этим считалась трудной – находят полиномиально-временной алгоритм, происходит следующее. Исследователи гораздо глубже вникают в понимание проблемы – и это приводит к описанию новых полиномиально-временны́х алгоритмов малых степеней,12 предназначенных для её решения. Известно только несколько исключений – т.е. таких нетривиальных проблем, для которых лучший
полиномиально-временной алгоритм не является практически применимым.
Мы уже отмечали, что P является приемлемой спецификацией
класса практически разрешимых проблем. Тем не менее, вся эта статья посвящена решению проблем, которые, возможно, не входят в
класс P. Но всё это не является препятствием для применения в
качестве порога практической разрешимости полиномиального времени. Наши подходы к решению проблемы, которая, возможно, находится за границами класса P, обычно несколько снижают требования, накладываемые на задачу, – и мы допускаем следующие
возможности:
• использовать рандомизированные алгоритмы (обеспечивающие правильное решение с некоторой вероятностью) – вместо
12
Обычно не более 6, а чаще всего – 3.
52
Ю. Громкович
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
детерминированных (всегда дающих правильное решение);
• получать некоторое приближение оптимального решения –
вместо поиска оптимального.
Итак, современный подход к практически разрешимым проблемам
и их разделению на конкретные классы связан с полиномиальновременны́ми рандомизированными (а в случае оптимизационных
проблем – и аппроксимационными) алгоритмами.
На основе определения класса P нам хотелось бы иметь методы
классификации проблем – относительно их принадлежности этому
классу. Наличие доказательства принадлежности проблемы L классу P достаточно для разработки для неё полиномиально-временно́го
алгоритма. Как уже было упомянуто выше, у нас нет методов доказательства того факта, что большинство интересных с практической
точки зрения проблем не принадлежат классу P – т.е. что они являются практически неразрешимыми (трудными). Именно для преодоления этой неприятной ситуации и введена концепция класса NPполноты: когда невозможно строго доказать, что некоторая конкретная проблема является трудной, то эта концепция является удобным
обоснованием нашей уверенности в этом факте.
Для введения NP-полноты мы должны рассмотреть недетерминированные вычисления. Однако с вычислительной точки зрения недетерминизм является чем-то «неестественным» – поскольку
мы не знаем какого-либо пути для его эффективной реализации на
современных компьютерах.13 Недетерминизм можно объяснить на
примере какого-нибудь языка программирования. Это делается путём добавления в язык оператора choice(a, b) – имеющего смысл
либо goto a, либо goto b; и при выполнении этого оператора любое вычисление разветвляется на два различных. Поэтому у любой
недетерминированной МТ (недетерминированного алгоритма) может быть много вычислений, соответствующих любому входу x, – в
то время как любой у детерминированной МТ (детерминированного
алгоритма) – в точности одно. Все вычисления недетерминированного алгоритма A с заданным входом x обычно представляются с
помощью т.н. дерева вычислений алгоритма A со входом x.
Пример такого дерева вычислений изображён на рис. 4 – для недетерминированного алгоритма A, который допускает Sat (т.е. решает
13
Более того, мы даже предполагаем, что возможности эффективного моделирования недетерминированных вычислений с помощью детерминированных вообще не существует.
Детерминированные подходы к алгоритмизации труднорешаемых задач . . . 53
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
проблему принадлежности (Sat, Σlogic )). Дерево TA (x), приведённое
на рис. 4, содержит все вычисления алгоритма A со входом x, соответствующим следующей формуле над переменными x1 , x2 , и x3 :
Φx = (x1 ∨ x2 ) ∧ (x1 ∨ x2 ∨ x3 ) ∧ (x1 ∨ x3 ) ∧ x2 .
Рис. 4.
Алгоритм A работает следующим образом. Во-первых, в первой
части вычисления C 0 (рис. 4) A детерминированно (т.е. без вычислительных ветвлений14 ) проверяет, является ли x кодом формулы
Φx над алфавитом Σlogic . Если не является, то A отвергает вход x.
Пусть теперь x кодирует вышеупомянутую формулу Φx . Дальнейшая общая стратегия алгоритма A заключается в недетерминированном угадывании такого набора аргументов, который удовлетворяет формуле Φx . Всё это может быть реализовано с использова14
Так в оригинале – “without computation branching”. Однако это может быть воспринято как необходимость отсутствия любых ветвлений программы (отсутствия конструкций if
– then – else). Поэтому, по-видимому, удачнее было бы сказать «без недетерминированных ветвлений», или, поскольку к настоящему моменту концепция недетерминированности
рассмотрена ещё не полностью, «без необходимости вычислений, соответствующих всем возможным ветвлениям». (Прим. перев.)
Ю. Громкович
54
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
нием стольких ветвлений, сколько переменных имеется в рассматриваемой формуле. В нашем примере (рис. 4) алгоритм A сначала разветвляется на два вычисления. «Левое» из них соответствует
угадыванию x1 = 0, а «правое» – угадыванию x1 = 1. Каждое из
этих двух вычислений само непосредственно разветвляется на два
вычисления – соответственно выбору конкретного значения для переменной x2 . При этом мы получаем 4 вычисления, и каждое из них
ещё раз ветвится – для выбора значения переменной x3 . Итак, всего
мы получаем 8 вариантов вычислений, каждый из которых соответствует выбору одного из 8 возможных наборов значений переменных
множества {x1 , x2 , x3 }. Для каждого такого набора значений α соответствующее вычисление Cα детерминированно проверяет, удовлетворяет ли α формуле Φx . Если α удовлетворяет Φx , то A допускает
x; иначе A отвергает x. Заметим, что в нашем примере, на рис. 4,
алгоритм A допускает вход x только в вычислении C101 – потому
что только 101 является набором значений переменных, удовлетворяющим формуле Φx , а все остальные вычисления Cα , где α 6= 101,
отвергают x.
Для недетерминированных алгоритмов допускаемый язык и сложность определяются следующим образом.
Определение 9 Пусть M – недетерминированная МТ (недетерминированный алгоритм). Будем говорить, что M допускает
язык L, записывая это L = L(M), если:
• для каждого входа x ∈ L существует по крайней мере одно
вычисление машины M, допускающее слово x;
• для каждого входа y ∈
/ L все вычисления машины M отвергают y.
Для каждого входа w ∈ L временно́й сложностью Time M (w)
машины M на входе w называется временна́я сложность самого короткого допускающего вычисления машины M на входе w.
Временна́я сложность машины M является функцией вида
Time M : N → N, определённой следующим образом:
Time M (n) = max{Time M (x) | x ∈ L(M) ∩ Σn }.
Класс
NP =
L(M) M – полиномиально-временна́я
недетерминированная МТ
Детерминированные подходы к алгоритмизации труднорешаемых задач . . . 55
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
является классом проблем принадлежности, решаемых недетерминированно за полиномиальное время.
Для проблемы принадлежности (L, Σ) любой (детерминированный) алгоритм B должен для каждого входа x определить, выполняется ли условие x ∈ L. Допускающее [отвергающее] вычисление
алгоритма B на входе x можно считать доказательством того факта, что x ∈ L [x ∈
/ L]. Итак, сложность (детерминированных) алгоритмов для проблем принадлежности можно считать сложностью
создания такого доказательства.15
А для недетерминированного алгоритма достаточно того, чтобы
только один из вариантов выбора давал бы решение (корректный ответ). И, согласно вышеприведённому примеру недетерминированного алгоритма для проблемы Sat (рис. 4), существенная часть вычислений – с точки зрения сложности – является проверкой, удовлетворяет ли угадываемая подстановка данной формуле. Итак, сложность
недетерминированного алгоритма A фактически является сложностью проверки, действительно ли выбранный набор значений аргументов доказывает выполнимость заданной формулы. Всё это приводит к следующей гипотезе:
Сложность детерминированных вычислений является сложностью создания доказательства того факта,
что x ∈ L, – в то время как сложность недетерминированных вычислений равна сложности детерминированной проверки заданного доказательства этого факта.
Ниже мы покажем, что этот гипотеза верна для любых полиномиально-временны́х вычислений. Детерминированное вычисление
можно рассматривать как доказательство корректности заданного
вывода – этот факт очевиден. А для доказательства того, что недетерминированная сложность является сложностью проверки, нам
понадобится следующее формальное понятие.
Определение 10 Пусть L ⊆ Σ∗ – некоторый язык. Алгоритм A,
работающий на входах, принадлежащих множеству Σ∗ × {0, 1}∗ ,
15
Очень удачные «лингвистические» замечания, связанные с применяемыми здесь терминами «вывод» и «доказательство», приведены в [5] (русском переводе первого издания классического учебника математической логики) – в одной из сносок главы 1 этого учебника. Более
того, в нём имеются не только исходные английские комментарии, но и русские комментарии переводчика. Резюмируя можно сказать, что русская терминология – при её правильном
употреблении! – в данном случае значительно удачнее английской. (Прим. перев.)
56
Ю. Громкович
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
называется верификатором для языка L (будем обозначать
этот факт записью L = V(A)), если
L = {w ∈ Σ∗ | A допускает (w, c) для некоторого c ∈ {0, 1}∗ }.
Если A допускает (w, c) ∈ Σ∗ × {0, 1}∗ , то будем говорить, что c
является свидетельством (для) факта w ∈ L.16
Верификатор A для языка L называется полиномиально-временны́м, если существует натуральное d, такое что для каждого w ∈ L выполнено условие Time A (w, c) ∈ O(|w|d ) для некоторого
свидетельства c заданного слова w ∈ L.
Класс полиномиально проверяемых языков есть
VP = {V(A) | A является
полиномиально-временны́м верификатором}.
Проиллюстрируем определение 10 следующим примером. Верификатор для проблемы Sat является алгоритмом, который для каждого входа (x, c) ∈ Σ∗logic × Σ∗bool интерпретирует x как представление
формулы Φx , а свидетельство c – как набор значений переменных
этой формулы. Если эта интерпретация возможна (т.е. x является
корректным кодом формулы Φx , а длина слова c равна числу переменных формулы Φx ), то верификатор далее проверяет, удовлетворяет ли c формуле Φx . При этом верификатор допускает (x, c)
тогда и только тогда, когда свидетельство c является подстановкой,
удовлетворяющей формуле Φx . Заметим, что верификатор является
полиномиально-временны́м алгоритмом – поскольку свидетельство
c для слова x всегда короче, чем само x, а значение формулы для
заданного набора аргументов можно посчитать эффективно.
Мы продолжим рассматривать способы измерения вычислительный сложности алгоритмов в части IV данной статьи.
Список литературы
1. Громкович, Ю. (2014), «Детерминированные подходы к алгоритмизации труднорешаемых задач. Часть I: Основные понятия», Эвристические алгоритмы и расмпределённые вычисления, Т. 1, № 2, cc. 30–42. ⇒ 40
16
Важно отметить, что, вообще говоря, свидетельство факта w ∈ L не обязан быть математическим доказательством этого факта. Обычно свидетельство желательно рассматривать в качестве некоторой дополнительной информации, существенно упрощающей проверку
доказательство факта.
Детерминированные подходы к алгоритмизации труднорешаемых задач . . . 57
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
2. Громкович, Ю. (2014), «Детерминированные подходы к алгоритмизации труднорешаемых задач. Часть II: Основные понятия
(продолжение)», Эвристические алгоритмы и расмпределённые
вычисления, Т. 1, № 6, cc. 19–38. ⇒ 40
3. Грин, Д., Кнут, Д. (1987), Математические методы анализы
алгоритмов, Мир, М., 120 c. ⇒ 45
4. Громкович, Ю. (2010), Теоретическая информатика. Введение
в теорию автоматов, теорию вычислимости, теорию сложности, теорию алгоритмов, рандомизацию, теорию связи и
криптографию, БХВ-Петербург, СПб, 326 c. ⇒ 47
5. Мендельсон, Э. (1976), Введение в математическую логику,
Наука, М., 320 c. ⇒ 55
Ю. Громкович
58
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
Deterministic approaches
to algorithmics for hard computing problems.
Part III: The basic theory
of the approximation complexity
J. Hromkovič, email: jhromkov@inf.ethz.ch
Switzerland, Zürich, Eidgenössische Technische Hochschule
Abstract. This paper is a review. In some its parts we shall give the generalization
of some scientific and educational articles and monographs of the author published
in the past few years. The text of the paper also includes information about the
latest advances in this field of theoretical computer science, i.e., in the algorithmics
for hard computing problems.
The term algorithm is the central notion of computer science and algorithmics
is one of the few fundamental kernels of theoretical computer science. Recent
developments confirm this claim. Hardly any other area of theoretical computer
science has been more lively and has achieved comparably deep progress and
breakthroughs so fascinating (such as the PCP-theorem and efficient algorithms for
primality testing) in recent years. The most exciting development happened exactly
in the field of algorithmics for hard computing problems.
The goal of this paper is to give a transparent, systematic introduction to
the concepts and to the methods for designing deterministic algorithms for hard
problems. All ideas, concepts, algorithms, analysis, and proofs are first explained in
an informal way in order to develop the right intuition, and then carefully specified
in detail. Following this strategy we preferred to illustrate the algorithm design
methods using the most transparent examples rather than to present the best, but
too technical, results.
Assuming P6=NP, there is no possibility to design polynomial-time (deterministic)
algorithms for solving NP-hard problems. We consider the following three approaches
for designing deterministic algorithms. Firstly, we try to design algorithms for
solving hard problems and we accept their (worst case) exponential complexity if
they are efficient and fast enough for most of the problem instances appearing in
the specific applications considered. Secondly, we design exponential algorithms for
hard problems, and we even accept if their average time complexity is exponential.
And thirdly, we remove the requirement that our algorithm has to solve the given
problem. Note that one can combine several different approaches in order to design
an algorithm for a given hard problem.
In Part III of this paper, we consider the basic theory of the approximation
complexity.
Keywords and phrases: hard computing problems; heuristic algorithms;
deterministic approaches; approximation complexity.
Computing Classification System 1998: F.2, G.1.2
Mathematics Subject Classification 2010: 68Q05, 68Q17
References
1. Hromkovič, J. (2014), “Deterministic approaches to algorithmics for hard
computing problems. Part I: The main definitions”, Heuristic algorithms
Детерминированные подходы к алгоритмизации труднорешаемых задач . . . 59
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
and distributed computing, [“Determinirovannye podvody k algoritmizacii
trudnoreshaemyh zadach. Chast’ I: Osnovnye opredeleniya”, Evristicheskie
algoritmy i raspredelyonnye vychisleniya], Vol. 1, No. 2, pp. 30–42.
2. Hromkovič, J. (2014), “Deterministic approaches to algorithmics for hard
computing problems. Part II: The main definitions (continuation)”, Heuristic
algorithms and distributed computing, [“Determinirovannye podvody k
algoritmizacii trudnoreshaemyh zadach. Chast’ II: Osnovnye opredeleniya
(prodolzhenie)”, Evristicheskie algoritmy i raspredelyonnye vychisleniya],
Vol. 1, No. 6, pp. 19–38.
3. Green, D., Knuth, D. (1990), Mathematics for the Analysis of Algorithms,
Birkhäuser, Boston, 132 p.
4. Hromkovič, J. (2011), Theoretical Computer Science: Introduction to
Automata, Computability, Complexity, Algorithmics, Randomization,
Communication, and Cryptography, Springer-Verlag, Berlin, 313 p.
5. Mendelson, E. (1997), Introduction to Mathematical Logic, Chapman & Hall,
N.Y., 440 p.
ЭВРИСТИЧЕСКИЕ АЛГОРИТМЫ И РАСПРЕДЕЛЁННЫЕ ВЫЧИСЛЕНИЯ, 2, 2 (2015) 60–68
УДК 004.896
ГЕНЕТИЧЕСКИЙ АЛГОРИТМ
РЕШЕНИЯ ОПТИМИЗАЦИОННОЙ ЗАДАЧИ
РАЗМЕЩЕНИЯ ВЕРШИН ГРАФА В ЛИНЕЙКЕ *
В. А. Дудников, email: dudnikov.vladislav@gmail.com
Луганский государственный университет им. В. Даля
Аннотация. Проблемы принятия оптимальных решений, возникающие
в различных областях науки и техники, часто могут быть сформулированы как задачи дискретной оптимизации и, в частности, комбинаторной оптимизации. Информационная технология решения задач дискретной оптимизации с помощью алгоритмов поиска, реализующих
генетический метод, описывается с использованием аналогов эволюции, а именно аналогов скрещивания, мутации, хромосомы, гена, отбора и т. д. Генетические алгоритмы не гарантируют обнаружение глобального оптимума за полиномиальное время, поскольку только методы полного перебора позволяют найти глобальный оптимум. Однако
генетический алгоритм часто позволяет выбрать «достаточно хорошее» решение за меньшее время, чем другие известные детерминированные или эвристические алгоритмы поисковой оптимизации.
В данной работе рассматривается решение оптимизационной задачи
размещения вершин графа на линейке. Проведён анализ и разбор задачи. Предоставлена схема генетического алгоритма. В статье описаны
особенности алгоритма такие как кодирование решений, оператор рекомбинации; выбраны приемлемые параметры генетического алгоритма. Были проведены экспериментальные исследование по определению эффективности предложенного подхода. Исследования позволяют
сделать вывод, что алгоритм, реализующий генетический метод, может
находить оптимальные или квазиоптимальные решения за полиномиальное время.
Ключевые слова и фразы: генетический алгоритм; задача размещения; задача оптимизации; NP-полнота; алгоритмы на графах.
1
ВВЕДЕНИЕ
Разработка методов и алгоритмов для решения задач комбинаторной
оптимизации ведутся уже на протяжении многих лет, но до сих пор
является актуальными. Это происходит потому, что эти задачи принадлежат классу NP [1], и разработка универсального алгоритма, который будет находить точный оптимум, весьма затруднительна. В
классе NP выделяются также особые задачи, которые называются NPполными задачами. Все NP-полные задачи тесно связаны – прежде
*
© В. А. Дудников, 2015.
Генетический алгоритм решения оптимизационной задачи размещения ...
61
всего тем, что если будет найдет алгоритм решения какой-нибудь NPполной задачи, то этот алгоритм будет подходить и для всех задача из
класса NP [1]. Всё это вытекает из свойств этих задач, а именно, из
сводимости одной задачи к другой. Таким образом, задачи из класса
NP будут актуальными, по крайней мере, до того момента, когда будет доказано равенства классов P и NP. Если же это равенство будет
опровергнуто, то эти задачи, по-видимому, останутся актуальными
всегда.
Задача размещения вершин графа на линейке является NP-полной [2]. До появления эволюционных методов оптимизации не существовало эффективного метода решения комбинаторных задач, в том
числе – рассматриваемой нами задачи.
Идея использования принципов биологической эволюции для
решения оптимизационных задач возникала ещё в 1960-x гг. – см. [3]
и др. А в 1975 г. вышла основополагающая книга Холланда «Адаптация в естественных и искусственных системах» [4], в которой был
предложен первый генетический алгоритм. В наше время генетические алгоритмы сильно развились; появилось очень много моделей
самих генетических алгоритмов ‒ это может быть как классическая
схема, так и схема с использованием имитации миграций особей.
Обоснования выбора генетического алгоритма таковы:
 они продемонстрировали свою эффективность для решения целого
класса задач, плохо поддающихся решению традиционными методами;
 вычислительное время генетических алгоритмов для большинства
приложений практически линейно зависит от размера задачи и
числа оптимизируемых параметров.
2
ПОСТАНОВКА ЗАДАЧИ
Приведём формальную постановку рассматриваемой нами задачи.
В каждую ячейку в линейке может быть размещена вершина графа или гиперграфа. При этом расстояние между вершинами считается
на основе геометрической формулы расстояния:
𝑑𝑖,𝑗 = |𝑠𝑖 − 𝑠𝑗 |
(1)
(здесь 𝑠𝑖 , 𝑠𝑗 , ‒ позиции 𝑥𝑖 , 𝑥𝑗 элементов (вершин графа) в линейке, 𝑑𝑖,𝑗 ‒
расстояние между вершинами 𝑥𝑖 , 𝑥𝑗 в линейке).
Общая суммарная длина рёбер графа вычисляется формулой [3]:
1
𝐿(𝐺) = 2 ∑𝑛𝑖=1 ∑𝑛𝑗=1 𝑑𝑖,𝑗 𝑎𝑖,𝑗
(2)
(здесь 𝐿(𝐺) ‒ общая суммарная длина рёбер графа 𝐺 в линейке, 𝑛 ‒ количество вершин графа, 𝑛 = |𝑋|, 𝑎𝑖,𝑗 ‒ количество рёбер, соединяющих
62
В. А. Дудников
вершины 𝑥𝑖 , 𝑥𝑗 , 𝑎𝑖,𝑗 = |𝑈𝑖,𝑗 |).
В оптимизационной задачи размещения входными данными являются вершины графа или гиперграфа 𝑋 = {𝑥1 , 𝑥2 , 𝑥3 , . . . , 𝑥𝑛 }, множество
рёбер графа 𝑈 = {𝑢1 , 𝑢2 , 𝑢3 , . . . , 𝑢𝑚 } или гиперграфа 𝐸 = {𝑒1 , 𝑒2 , 𝑒3 , . . . , 𝑒𝑚 } и
множество позиций 𝑄 = {𝑞1 , 𝑞2 , 𝑞3 , . . . , 𝑞𝑣 }. Причём |𝑋| ≤ |𝑄|, если производится размещение на заданные позиции.
Основная цель алгоритмов размещения – минимизировать общую
суммарную длину рёбер графа или гиперграфа.
Сформулируем эту задачу размещения как оптимизационную. В
качестве целевой функции выбирается формула (2), которую нужно
минимизировать, т. е. 𝐿(𝐺) → 𝑚𝑖𝑛. Выходными данными будут позиции
назначения каждой вершины.
Определим ограничения. Для каждого 𝑥𝑖 ∈ 𝑋 назначается только
одна позиция 𝑞𝑖 ∈ 𝑄 . Каждой позиции 𝑞𝑖 ∈ 𝑄 соответствует по крайней
мере одна вершина. Итак, согласно [5], сформулированная задача размещения является оптимизационной.
3
ОБЩЕЕ ОПИСАНИЕ АЛГОРИТМА
Генетические алгоритмы предназначены для решения задач оптимизации. В основе генетических алгоритмов лежит метод случайного
направленного поиска. Для нашей задачи мы будем использовать
классическую модель ГА, предложенную в [4].
1.
2.
3.
4.
6.
7.
Схема алгоритма Холланда:
Сгенерировать исходную популяцию, состоящую из 𝑁 особей.
Оценить приспособленность хромосом в популяции на основе
целевой функции (фитнес-функции) F(X).
Выполнить операцию селекции.
Применить генетические операторы (мутация, скрещивание).
Сформировать новую популяцию.
Если критерий останова алгоритма не достигнут, перейти к шагу 2, иначе завершить работу.
Приведём, согласно [5] и др., общепризнанные достоинства и недостатки генетических алгоритмов.
Достоинства:
 широкая область применения генетических алгоритмов;
 возможность проблемно-ориентированного кодирования решений,
подбора начальной популяции, комбинирования генетических алгоритмов с любыми алгоритмами (в том числе и неэволюционными);
Генетический алгоритм решения оптимизационной задачи размещения ...
63
 пригодность для поиска в сложном пространстве решений большой
размерности;
 отсутствие ограничений на вид целевой функции.
Недостатки:
 эвристический характер генетических алгоритмов не гарантирует,
что полученное решение будет находится в глобальном экстремуме;
 невысокая эффективность генетических алгоритмов на заключительных фазах моделирования; это объясняется тем, что генетические операторы на ориентированы на быстрое попадание в локальный оптимум.
4
КОДИРОВАНИЕ РЕШЕНИЙ
Для начала нам нужно выбрать способ представления графа в виде
хромосомы. Проанализировав различные способы кодирования, автором было выбрано кодирование перестановка: такой способ выбран по
причине того, что нам нужно чтобы гены в хромосоме не повторялись. Приведем кодирование решений: имеется вектор 𝐻, |𝐻| ‒ количество вершин графа, как показано на рис. 1. Таким образом мы определили кодирование решений (хромосом).
аллель 𝑖
1
2
3
4
5
6
ген 𝐻𝑖
5
6
4
1
3
2
Рис. 1. Кодировка хромосомы
5
СТРАТЕГИЯ ОТБОРА
В качестве метода селекции был выбран турнирный отбор [6]. Данный
метод можно описать следующим образом: из популяции, содержащей N особей, выбирается случайным образом t особей, и лучшая
особь записывается в промежуточную популяцию (между выбранными особями проводится турнир). Это операция повторяется N раз. Затем особи в полученной промежуточной популяции скрещиваются
(также случайным образом). С ростом параметра 𝑡 ужесточается отбор
между особями, т.к. если у особи низкий показатель приспособленности, у неё нет шансов «завести потомство». Преимуществом данной
стратегии является то, что она не требует дополнительных вычислений и упорядочивания особей в популяции по возрастанию приспособленности.
В. А. Дудников
64
6
ОПЕРАТОР СКРЕЩЕВАНИЯ
В качестве оператора скрещивания (кроссинговера) автором был разработан модифицированный одноточечный кроссинговер, являющийся модификацией одноточечного кроссинговера, рассматривавшегося
в [7]. По принципу работы этот оператор похож на одноточечный
кроссинговер Холанда [4], но т.к. запрещается повторение генов в
хромосоме после скрещивания, использовался модифицированный
оператор кроссинговера. Например, у нас имеются пара хромосомродителей. Случайным образом выберем точку разреза 𝑝, 1 ≤ 𝑝 ≤ 𝑛.
После того, как была выбрана точка разреза, мы переносим все гены
до точки разреза из 1-го родителя в 1-го потомка, а из 2-го родителя
во 2-го потомка. Для того чтобы закончить формирование потомков,
нам нужно заполнить вторую часть хромосом; для этого мы начинаем
переносить гены после точки разреза из 1-го родителя во 2-го потомка, а из 2-го родителя в 1-го потомка, но когда мы встречаем повторяющийся ген в потомке, мы его пропускаем, двигаясь таким образом до
конца генов родителей. Если у нас получается так, что гены потомка
ещё не до конца заполнены, то мы начинаем брать гены сначала родителя, т.е. делаем цикличный сдвиг хромосомы влево.
Проиллюстрируем всё выше сказанное. Например, у нас имеется
точка разреза 𝑝 = 3 хромосомы-родители – см. рис. 2:
аллель 𝑖
1
2
3
4
5
6
родитель 1
1
2
3
4
5
6
родитель 2
6
5
4
3
2
1
Рис. 2. Хромосомы-родители
Теперь применим к ним описанный оператор кроссинговера –
рис. 3:
аллель 𝑖
1
2
3
4
5
6
потомок 1
1
2
3
6
5
4
потомок 2
6
5
4
1
2
3
Рис. 3. Хромосомы-потомки
Таким образом мы получили двух потомков со схожими значениями приспособленности.
7
ОПЕРАТОР МУТАЦИИ
Оператор мутации в генетических алгоритмах используется для того,
чтобы «выбивать» решения из локальных оптимумов, которые далеки
Генетический алгоритм решения оптимизационной задачи размещения ...
65
от глобальных.
Для мутации генов использовался простой способ обмена двух
генов. Например, у нас есть такая хромосома – рис. 4:
аллель 𝑖
1
2
3
4
5
6
ген 𝐻𝑖
5
6
4
1
3
2
Рис. 4. Хромосома до мутации
Теперь выберем случайно два гена и поменяем их местами, см. рис. 5:
аллель 𝑖
1
2
3
4
5
6
ген 𝐻𝑖
5
3
4
1
6
2
Рис. 5. Хромосома после мутации
8
ПАРАМЕТРЫ ГЕНЕТИЧЕСКОГО АЛГОРИТМА
Параметры подбирались методом проб и ошибок: алгоритм запускался с разными значениями параметров. Значение параметра считается
«хорошим» если решения получились «хорошими». Вполне приемлемые результаты получались со следующими параметрами:
 порог вероятности мутации 0,01–0,1;
 размер популяции 20–30;
 параметр 𝑡 = 2 (количество особей в турнире).
Заполнение исходной популяции выполнялось случайным образом.
Также можно отметить, что было бы довольно полезно находить
параметры не просто «случайно» (как это делалось в данном случае), а
также применить методы генетических алгоритмов. Это окажется полезным в том случае если нам нужно решать большое количество задач размещения за минимальное время. Все это вытекает из того, что
чем выше коэффициент решения при небольшом количестве поколений, тем лучше параметры алгоритма.
9
РЕЗУЛЬТАТЫ ВЫЧИСЛИТЕЛЬНЫХ ЭКСПЕРИМЕНТОВ
Отладка и тестирование проводились на ЭВМ типа IBM PC с процессором Intel Core i3 и ОЗУ 4Гб. Язык программирования C++. Были
проведены исследования по определению эффективности предложенного генетического алгоритма. Проведенные экспериментальные исследования показали преимущество использования генетического алгоритма стандартным методам.
66
В. А. Дудников
Рис. 6. Случайная хромосома
Следующий пример показывает эффективность данного метода
на некотором графе с |𝑋| = 8. На рис. 6. приведена случайная хромосома с общей суммарной длинной рёбер 𝛴23. После запуска алгоритма
на 15-м поколений общая суммарная длина стала 𝛴13 (рис. 7):
Рис. 7. Лучшая хромосома на 15-м поколении
Если перебрать все варианты размещения для данного графа легко убедится, что целевая функция графа принимает меньшее значения
при таком размещении. На самом деле целевая функция для этого
графа является многоэкстремальной, и мы просто нашли один из её
экстремумов.
Далее показан график работы генетического алгоритма; на графе
с размерностью в 100 вершин – рис. 8. Каждое десятое поколение
представлено на оси абсцисс, а соответствующее ей значение целевой
функции – на оси ординат. Из графика видно, что в 1-м поколении
значение целевой функции превышает 4000; но уже в 1000-м поколении оно менее 2200.
Рис. 8. Эволюция решений
Генетический алгоритм решения оптимизационной задачи размещения ...
10
67
ЗАКЛЮЧЕНИЕ
Итак, в настоящей работе описан подход к решению задач плохо поддающихся оптимизации; на примере задачи размещения вершин графа
в линейке были показаны способы представления «решений» в виде
хромосом, показаны способы применения генетических операторов.
Таким образом, можно сказать, что методами генетических алгоритмов можно находить квазиоптимальные решения за полиномиальное
время.
В дальнейшем планируется разработка подхода к решению задачи размещения в плоскости. Эта задача имеет более прикладную
ценность, а именно размещения элементов в схемах с минимальным
количеством проводников.
СПИСОК ЛИТЕРАТУРЫ
1.
2.
3.
4.
5.
6.
7.
Гэри, М., Джонсон, Д. (1982), Вычислительные машины и труднорешаемые задачи, Мир, М., 416 с.
Кормен, Т., Лейзерсон, Ч., Ривест, Р., Штайн, К. (2005), Алгоритмы: построение и анализ, Вильямс, М., 1296 с.
Емельянов, В. В., Курейчик, В. В., Курейчик, В. М. (2003), Теория
и практика эволюционного моделирования, Физматлит, М., 432 с.
Holland, J. N. (1975), Adaptation in Natural and Artificial Systems,
Univ. Michigan Press, Michigan, 183 p.
Hromkovič, J. (2004), Algorithmics for Hard Problems, Springer,
374 p.
Цой, Ю. Р. (2015), «Стратегии отбора и формирования нового поколения», режим доступа: http://www.qai.narod.ru/GA/strategies.html
Панченко, Т. В. (2007), Генетические алгоритмы, издательский
дом «Астраханский университет», Астрахань, 20 с.
В. А. Дудников
68
GENETIC ALGORITHM FOR SOLVING THE OPTIMIZATION PROBLEM
OF LOCATIONS GRAPH VERTICES IN THE LINE
V. A. Dudnikov, email: dudnikov.vladislav@gmail.com
Lugansk National University after V. Dal
Abstract. The problems of decision-making arise from different branch of science and
technic, could be often formulated like tasks discrete optimization and in particular
combinatorial optimization. Information technology of problem solving discrete optimization with help of search algorithms, implementing genetic method, describes with using evolution analogues, namely using crossbreeding, mutation, chromosome, gene, selection etc. Genetic algorithms do not guarantee the detection of the global optimum in
polynomial time; it happens because only methods of brute-force search allow us to find
a global optimum. But genetic algorithm allows select “good decisions” in less time,
than other well-known deterministic or heuristic algorithms search engine optimization.
But genetic algorithm allows select “good decisions” in less time, than other wellknown deterministic or heuristic algorithms search engine optimization.
In this paper, we considered solution of optimization task placement of the vertices of
graph in the lineup. Given the scheme of genetic algorithm. We described the features
of the algorithm such as: coding solutions, recombination operator and parameters of
genetic algorithm. Were conducted experimental research by definition effectiveness
proposed method. Researches allow making conclusion, that proposed algorithm can
find optimal or quasi-optimal solutions in polynomial time.
Keywords and phrases: genetic algorithm; location problem; optimization problem;
NP-complete; graph algorithms.
Computing Classification System 1998: G.2.2, G.4
Mathematics Subject Classification 2010: 68W05
REFERENCES
1.
2.
3.
4.
5.
6.
7.
Garey, M., Johnson, D. (1979), Computers and Intractability, W. H. Freeman and
Company, 338 p.
Cormen, T., Leiserson, C., Rivest, R., Stein C. (2001), Introduction to Algorithms,
MIT Press, 1292 p.
Emelyanov, V. V., Kureichik, V. V., Kureichik, V. M. (2003), Theory and practice
of evolutionary modeling [Theoriya i praktika evolyucionnogo modelirovaniya],
Fizmatlit, Moscow, 432 p.
Holland, J.N. (1975), Adaptation in Natural and Artificial Systems, Univ. Michigan
Press, Michigan, 183 p.
Hromkovič, J. (2004), Algorithmics for Hard Problems, Springer, 374 p.
Tsoi, Ju. R. (2015), “Strategy selection and formation of a new generation”, available at: http://www.qai.narod.ru/GA/strategies.html
Panchenko, T. (2007), Genetic algorithms [Geneticheskie algoritmy], the publishing house “Astrakhan University”, Astrakhan, 20 p.
ЭВРИСТИЧЕСКИЕ АЛГОРИТМЫ И РАСПРЕДЕЛЁННЫЕ ВЫЧИСЛЕНИЯ, 2, 2 (2015) 69–78
УДК 004.42; 681.3
CONST – ИНСТРУМЕНТ СОЗДАНИЯ
ПРИКЛАДНЫХ ИНТЕЛЛЕКТУАЛЬНЫХ СИСТЕМ *
Н. Х. Ихсанов, email: semantics@yandex.ru
Научно-производственная фирма «Семантикс Рисеч»
Аннотация. В статье поставлена и реализована задача развития технологии создания интеллектуальных систем с целью получения возможности массового применения прикладных интеллектуальных систем.
Общеизвестно, что в конце 1960-х годов была предложена новая парадигма построения систем искусственного интеллекта, которая получила название «экспертные системы». Основная идея этого подхода состоит в применении знаний человека-эксперта в конкретной предметной области для решения прикладных задач, не имеющих заранее известного алгоритма решения. Несмотря на плодотворность этой идеи,
доказанной созданием множества экспертных систем, последние редко
применяются в коммерческих и промышленных целях, оставаясь в нише экспериментальных и исследовательских разработок. Отсутствие
понятной методологии построения экспертных систем стало одной из
основных причин их непрактичности. В результате создание экспертных систем оставалось искусством, сильно зависящим от индивидуальных талантов разработчика. В корне этих трудностей лежит отсутствие понятной методологии формального моделирования мышления
человека. Поскольку неотъемлемым требованием к экспертным системам является естественно-языковый интерфейс, естественно возникает
задача моделирования смыслового содержания естественно-языкового
текста. Создание метода формального моделирования естественного
языка в целом (а не только его синтаксиса) может послужить надёжной
основой для построения технологии создания экспертных систем. Отсутствие простой и удобной технологии создания экспертных систем
является одним из факторов, мешающим широкому применению этой
технологии для создания прикладных интеллектуальных систем.
В работе описан инструментальный программный комплекс CONST,
предназначенный для создания экспертных систем на основе концептуального моделирования смыслового содержания естественно-языкового текста. В основе технологии лежит интегрированное применение
методов концептуального моделирования на основе применения концептуальных структур, как для моделирования семантики естественноязыкового текста, так и для формализованного представления экспертных знаний.
Ключевые слова и фразы: искусственный интеллект; экспертные системы; машинное понимание естественного языка; концептуальное моделирование.
*
© Н. Х. Ихсанов, 2015.
Н. Х. Ихсанов
70
1
ВВЕДЕНИЕ
Интеллектуальные системы до сих пор не получили широкое распространение, несмотря на многолетнюю историю развития теории искусственного интеллекта [1]. Несмотря на плодотворность этой идеи,
доказанной созданием множества экспертных систем, последние редко
применяются в коммерческих и промышленных целях, оставаясь в
нише экспериментальных и исследовательских разработок [2]. В качестве одной из основных причин можно назвать отсутствие общепринятой методологии и распространенных инструментальных средств
для создания интеллектуальных систем.
Настоящая работа посвящена описанию инструментального комплекса CONST (Conceptual Structures), предназначенного для широкого использования программистами для построения интеллектуальных
систем. Данный комплекс обладает соответствующей направленностью на создание определённых классов интеллектуальных систем,
основанных на применении обратного логического вывода и ориентированных на обработку текстовой информации и диалоговых естественно-языковых систем. Основными элементами комплекса являются средства описания концептуальных структур и средства описания
правил логического вывода, описанные в разделах 2 и 3.
В качестве языка программирования для системы CONST использован язык логического программирования Пролог.
2
ПРИНЦИПЫ ПОСТРОЕНИЯ СИСТЕМЫ CONST
Инструментальный комплекс CONST предназначен для создания прикладных интеллектуальных программ и систем – систем, основанных
на применении логического вывода и обработки концептуальной информации.
По нашему мнению, среди основных свойств, которыми должен
обладать инструментальный комплекс создания интеллектуальных систем, предназначенный для широкого использования, можно назвать
следующие.
 Хорошее описание и понятная методология применения – система должна быть технологическим комплексом, который мог
бы применяться широкими кругами программистов и изучаться в учебных заведениях или самостоятельно.
 Развитые средства логического вывода – языковые и программные средства для построения систем логического вывода
должны быть простыми для понимания, удобными в использо-
CONST – инструмент создания прикладных интеллектуальных систем
71
вании и иметь хорошее технологическое обеспечение.
 Обеспечение технологии решения проблемы естественноязыкового интерфейса – необходимо обеспечить не только
программные средства, но и методологию решения этой проблемы.
Основными языковыми средствами системы CONST являются
средства описания данных – концептуальных графов и средства описания вычислений – логического вывода.
Концептуальные графы [3] – одна из самых известных разновидностей семантических сетей, в системе CONST – применяются как базовое средство для представления смысловых объектов. Работа со
смысловыми объектами является одной из существенных особенностей системы CONST.
Основным отличием смысловых объектов от традиционных, применяемых в объектно-ориентированных языках, является применение
их в логическом выводе. Смысловые объекты применяются как в
представлении знаний, так и для представления семантики естественно-языкового текста.
Типы вычислений в системе CONST:
 поиск вывода заданной цели в базе правил;
 поиск вывода заданной цели в концептуальной базе;
 семантическая трансляция;
 семантическая генерация;
 применение внешних процедур.
ЯЗЫК ОПИСАНИЯ КОНЦЕПТУАЛЬНЫХ СТРУКТУР
При создании языка представления и обработки концептуальных
структур CONST ставились следующие требования:
 представление смыслового содержания текста в виде базы
данных;
 представление различных баз знаний;
 реализация логического вывода на основе базы данных и
базы знаний для получения ответов на вопросы;
 выполнение вычислений на семантической базе данных;
 представление смысла вопросов;
 реализация преобразований смысла текста на различных
уровнях понимания.
Концептуальные структуры (КС) для представления смысла текста были предложены в [4], одна из вариаций называется «концептуальные графы» [3]. Концептуальные графы (КГ) появились на основе
3
72
Н. Х. Ихсанов
интерпретации психологических концепций о восприятии мира, однако для них имеется и математический базис на основе логики предикатов [5].
КС в языке CONST можно рассматривать как одну из модификаций концептуальных графов (КГ), удобную не только для компьютерной обработки, но и обладающую наглядностью и компактностью, что
делает их удобным средством для ручной записи и анализа.
Смысловое содержание всякого предложения естественного языка может быть выражено одним КГ. В то же время можно использовать КГ для описания других видов отношений, например, синтаксических.
КС в языке CONST реализованы в виде ориентированных графов
с именованными дугами. Вершины графа соответствуют объектам, дуги соответствуют отношениям.
Определение 1. Концептуальная структура G – это пара (A,R), где
A – множество элементов, называемых концептами, а R – отношение
на множестве A.
КС будем записывать в виде вложенных списков в следующем
синтаксисе.
<КС>::=[<концепт>] | [<концепт><хвост>]
<концепт>::=<имя концепта > | <имя концепта > : <ссылка>
<имя концепта >::=<имя типа> |<имя служебного типа> | <имя объекта> | <число>| <строка>|<вызов функции>
<имя типа>::=<имя>
<имя служебного типа>::= set | list | and | or | rule
<имя объекта>::=ob(<целое>)
<ссылка>::=<имя переменной> | <имя объекта>
<хвост>::= ,<отношение> , <КС> | ,<отношение>,<КС>, <хвост>
<отношение>::=<имя отношения> | <имя отношения> <имя отношения>::=<имя>
Для записи КС в качестве концептов используются слова английского языка, обозначающие семантику соответствующего слова. Концептам, в отличие от слов английского языка, присвоено единственное
семантическое значение. В качестве отношений в КС используются
соответствующие понятия предметной области. В качестве примера
именования концептов и отношений можно привести использованные
в [6].
Пример 1. КС предложения.
КС для предложения: «Русский язык обладает разными формальными средствами выражения подчинительной связи»:
[possess,agnt,[language,atr,russian],obj,[set,elem,[facility,
atr,formal,arg,[expression,obj,[link,atr,subordinative]]]]]
CONST – инструмент создания прикладных интеллектуальных систем
73
Всякая КС может быть эквивалентно записана в виде конъюнкции или дизъюнкции бинарных предикатов в логике первого порядка
[3]. Если нет явного использования дизъюнкции, подразумевается
конъюнктивная связь между бинарными предикатами. В качестве
примера приведем предикатное представление КС для примера 1.
Пример 2. Предикатное представление КС.
(2) Agnt(Possess1,Language1)&Obj(Possess1,Set1)&Atr(Language1,
Russian)& Elem(Set1,Facility1)&Atr(Facility1,Formal) &Arg (Facility1,Expression1)& Obj(Expression1,Link1)&Atr
(Link1,Subordinative)
Как видно из вышеприведённых примеров, КС обеспечивает более компактную запись по сравнению с предикатной, поскольку опускаются знаки конъюнкции, а аргументы предикатов записываются без
повторений.
КС в языке CONST применяются в качестве основы для создания
объектов и образцов. Объектом в языке CONST называется именованная КС. Имя объекта должно быть уникально в заданном контексте.
Каждая КС в языке CONST имеет тип. Первый по порядку неслужебный концепт называется главным. Тип КС есть имя главного
концепта. Тип объекта есть тип КС объекта.
Всякий объект рассматривается как подчинённый своему типу.
Отношение подчинённости транзитивно и антисимметрично. Имеется
старший для всех объект ANY. Для установления отношения подчинения между произвольными объектами в CONST определено отношение конформности. Для его определения введем промежуточные определения.
Поскольку КС соответствует ориентированный граф, на нём
определим стандартным образом понятие пути. Путь – это последовательность дуг между двумя вершинами.
Подобъектом объекта X является всякая связная КС, содержащаяся в КС объекта X. Адресом подобъекта является путь из главной вершины КС к подобъекту. Длина адреса – количество дуг пути.
Подобъектом первого уровня объекта X является всякий подобъект, имеющий адрес единичной длины. Два подобъекта объектов X и Y
являются соответствующими, если оба имеют совпадающие адреса.
Определение 2. Объект X является конформным объекту Y, обозначается X < Y, при выполнении одного из следующих двух условий:
1) объект Y является типом объекта X;
2) тип объекта X является конформным типу объекта Y, для всякого отношения в Y существует одноименное отношение в X, для всякого подобъекта Y имеется единственный соответствующий ему и
74
Н. Х. Ихсанов
конформный подобъект в X.
Отношение конформности транзитивно и антисимметрично.
Объекты, между которыми нельзя установить отношение конформности, будем называть несравнимыми. Очевидно, что любые два
объекта в CONST либо несравнимы, либо конформны..
Целостными совокупностями выражений языка являются базы
данных и базы знаний.
<текст CONST>::=<база данных> | <база знаний> | <запрос>
<база данных>::=<объявление типов> <определения объектов>
<база знаний>::=<объявление типов> <определения правил вывода>
<объявление типа>::=<имя> < <имя>
<определение объекта>::=<имя>:=<КС>
<запрос>::=<КС> => <неизвестное>
<неизвестное>::=<имя>
База данных и база знаний должны быть замкнуты относительно
определений типов и объектов. При совместном использовании БД и
БЗ должны иметь общую систему типов.
<правило вывода>::=<заголовок правила > <= <тело правила>
<заголовок правила>::=<КС>
<тело правила>::=<выражение>/<выражение>/...
<выражение>::=<логическое выражение> | <операция>
<логическое выражение>::=<КС> | <КС> => <ссылка>
<ссылка>::=<переменная> | <КС>
<операция>::= <создание объекта> | <удаление объекта> | <подстановка> | <добавление компоненты> | <удаление компоненты>|
Отношение конформности позволяет выводить логическое следствие из одного исходного объекта. Будем считать конформность признаком логического следствия между соответствующими утверждениями.
Определение 3. Объект О1 логически следует из объекта О2, если O2 > O1.
Пример 3. Логическое следствие на основе конформности.
(3) Из утверждения "Миша идет в школу" можно вывести конформные ему утверждения:
"Некто идет в школу"; "Некто идет куда-то"; "Миша что-то
делает"; "Некто что-то делает" и т.д.
Количество таких утверждений зависит от количества старших
объектов для содержащихся в исходном предложении. Не все из них
имеют вид, принятый в общении людей. Приведём формальную запись.
Пример 4. Примеры логического следствия между КС.
Исходное предложение:
[move,agnt,[person:"Миша"],goal,[school]].
CONST – инструмент создания прикладных интеллектуальных систем
75
Отношения старшинства типов:
move < act;
act < any;
person < any;
school < organization;
organization < any;
Примеры выражений логически следующих из исходного:
[act,agnt,[person]]; [act,agnt,[any],goal,[any]]; [act].
Правило продукций позволяет строить логические следствия из
релевантной совокупности объектов базы данных.
Синтаксис правил продукций в CONST приведен ниже. Правило
продукции задает условия логического вывода объектов, соответствующих образцу, заданному в заголовке правила или отношений между
объектами.
Логический вывод в CONST инициируется запросом, содержащим КС задающей исходный образец выводимого объекта.
Запрос удовлетворяется при выполнении одного из двух условий:
 в БД существует объект, конформный исходному образцу;
 в БЗ существует логический вывод объекта, конформного исходному образцу.
Отношение конформности и выполняемая при этом унификация
являются основным механизмом подстановки для выполнения логического вывода. Поскольку в системе реализован обычный механизм поиска вывода на основе линейной резолюции с возвратами [7], он не
требует подробного описания.
4
PROLOG-CONST
Подсистема логического вывода реализована в виде надстройки над
языком Пролог и называется PROLOG-CONST. Программа зарегистрирована в ФИПС. Термин «надстройка» имеет в данном случае два
аспекта – небольшую модификацию языка и программу – транслятор,
преобразующую выражения языка PROLOG-CONST в соответствующие структуры на языке Пролог. Синтаксис языка не изменился, за исключением того, что появилась необходимость объявления правил модифицированного языка, чтобы отличать их от правил стандартного
Пролога.
Язык логического программирования Пролог [7], созданный для
реализации вычислений на основе логического вывода, не имеет
средств управления процессом логического вывода, что делает его неудобным для непосредственного применения в экспертных системах.
Одним из таких недостатков является зацикливание программы, поскольку при поиске решения в экспертной системе нередко возникает
76
Н. Х. Ихсанов
необходимость повторного вызова одних и тех же правил.
Язык PROLOG-CONST содержит ряд дополнительных возможностей для управления логическим выводом, позволяющим строить на
его основе экспертные системы.
Синтаксис данного языка не отличается от стандартного Пролога,
что значительно облегчает его освоение. Единственным ограничением
является требование использовать правила в виде бинарных отношений, что естественно для описания графов. Для расширения количества аргументов правил допускается использование списков.
Синтаксис языка PROLOG-CONST:
<база продукций>::=<спецификация правила вывода>/...
<спецификация правила вывода>::=
<объявление типа правила> <определение правила вывода>
<объявление типа правила>::=type(<имя предиката>
(<аргумент>, <аргумент>)).
<определение правила вывода>::=
<заголовок правила>:-<вызов> /,,,,<вызов>.
<заголовок правила>::=
<имя предиката>(<номер><аргумент>, <аргумент>).
<аргумент>::=<терм>
<терм>::=<структура>|<константа>|<список>
<вызов >::=<имя предиката> (<аргумент>,<аргумент>).
В теле правил продукций могут быть как обращения к правилам,
так и к обычным предикатам языка Пролог. Для различения их транслятором обычные предикаты специфицируются в отдельном списке.
Программы на языке PROLOG-CONST не зацикливаются, поскольку в процессе поиска вывода каждая цель проверяется на её
включение в историю вывода. При запуске задаются ограничения на
длину и глубину поиска, что гарантирует завершение процесса.
Целевые утверждения, выполненные в процессе логического вывода, автоматически заносятся в базу данных задачи, что исключает
необходимость повторного поиска решения для однажды выведенных
целей.
Еще одно полезное свойство языка PROLOG-CONST – сохранение полученного логического вывода, в отличие от стандартного Пролога.
Важным свойством языка PROLOG-CONST является то, что объектным языком является стандартный Пролог. Это позволяет создавать
обычные программные объекты типа “exe”, “obj”, “dll”, которые могут
включаться в состав прикладной интеллектуальной системы штатными средствами построения программ. В состав программной системы
может включаться множество различных подсистем логического вывода, независимых друг от друга.
CONST – инструмент создания прикладных интеллектуальных систем
77
Трассировка логического вывода может применяться при отладке
правил, а структура полученного логического вывода является основой для построения объяснения полученного решения экспертной системы.
5
ЗАКЛЮЧЕНИЕ
В данной статье были приведены принципы построения и описание
языков инструментальной системы CONST, предназначенной для построения интеллектуальных систем широкого класса – от самых простых систем логического вывода до сложных интегрированных систем
с естественно-языковым интерфейсом. Основным интегрирующим
средством является применение смысловых объектов в виде концептуальных графов, которые используются как для представления знаний,
так и для представления смысла естественно-языкового текста.
Типы приложений, которые могут создаваться на основе описанной интегрированной инструментальной системы, будут рассмотрены
в одной из следующих публикаций.
СПИСОК ЛИТЕРАТУРЫ
1.
2.
3.
4.
5.
6.
7.
Waterman, D. (1986), A Guide to Expert Systems, Addison-Wesley,
273 p.
Giarratano, J., Riley, C. (2005), Expert systems: Principles and programming, Thomson Course Technology, 324 p.
Sowa, J. F. (2000), Knowledge Representation: Logical, Philosophical
and Computational Foundations, Brooks/Cole, Pacific Grove, CA
USA, 594 p.
Schank, R. C. (1975), Conceptual Information Processing, NorthHolland, Amsterdam, 384 p.
Chein, M., Mugnier, M.-L. (2009), Graph-based Knowledge Representation. Computational Foundations of Conceptual Graphs, Springer-Verlag, 427 p.
Никитина, С. Е. (2010), Семантический анализ языка науки,
URSS, М.,144 c.
Ковальски, Р. (1990), Логика в решении проблем, Наука, М., 278 c.
78
Н. Х. Ихсанов
CONST – INTELLECTUAL APPLIED SYSTEMS CREATION TOOL
N. Kh. Ikhsanov, email: semantics@yandex.ru
Semantics Research Ltd
Abstract. Development technology for creation intelligent systems, destined for wholesale implementation of intelligent applications, remain actual problem yet. It is well-known, that new
paradigm for artificial intelligence systems creation, which is named “expert systems”, arose at
sixties of twentieth century. Using knowledge of human expert of application domain for applied problems, which has not known in advance algorithm, is main idea of this approach. Fruitfulness of this paradigm was proved by creation of many expert systems. In spite of that, expert
systems are not widely used for application creation, they are created only as experimental and
research production. There are many reasons for that situation, main of them is lack of good
methodology for expert systems creation. In this circumstances development of expert systems
is an art with result depended from developer individual abilities. Lack of methodology for human thinking formal modeling is main reason for this situation. One of main demand for expert
system is natural language-based human – computer interface. As result, problem of natural
language text semantics modeling arise naturally. Method of natural language in whole (not only syntax) formal modeling, if created, can be sound foundation for expert systems technology.
Absence of simple and practical technology for expert systems creation is one of main factors
which prevent widespread of it. Program tool CONST for expert systems creation in this paper
described. It is based on natural language text semantic content conceptual modeling. Integrated
using of conceptual modeling is in base of this technology. Conceptual modeling is used for
natural language text semantics and for expert knowledge representation.
Keywords and phrases: artificial intelligence; expert systems; machine understanding
of natural language; conceptual modeling.
Computing Classification System 1998: I.2.5
Mathematics Subject Classification 2010: 68T35
REFERENCES
1. Waterman, D. (1986), A Guide to Expert systems, Addison-Wesley, 273 p.
2. Giarratano, J., Riley, C. (2005), Expert systems: Principles and programming,
Thomson Course Technology, 324 p.
3. Sowa, J. F. (2000), Knowledge Representation: Logical, Philosophical and Computational Foundations, Brooks/Cole, Pacific Grove, CA USA, 594 p.
4. Schank, R. C. (1975), Conceptual Information Processing, North-Holland, Amsterdam, 384 p.
5. Chein, M., Mugnier, M.-L. (2009), Graph-based Knowledge Representation. Computational Foundations of Conceptual Graphs, Springer-Verlag, 427 p.
6. Nikitina, S. Е. (2010), Semantic analysis of the language of science [Semanticheskiy analiz yazyka nauki], URSS, M., 144 p.
7. Kowalski, R. (1990), Logic in problem solving [Logika v reshenii problem], Nauka,
M., 278 p.
ЭВРИСТИЧЕСКИЕ АЛГОРИТМЫ И РАСПРЕДЕЛЁННЫЕ ВЫЧИСЛЕНИЯ, 2, 2 (2015) 79–89
УДК 519.6:534.16
РАЗРАБОТКА МЕТОДИКИ И АЛГОРИТМОВ МОДЕЛИРОВАНИЯ
НЕЛИНЕЙНОЙ МЕХАНИЧЕСКОЙ КОЛЕБАТЕЛЬНОЙ СИСТЕМЫ
С ПРИМЕНЕНИЕМ ВЕЙВЛЕТ-ПРЕОБРАЗОВАНИЯ *
В. В. Нарожнов, email: narojnov.victor@gmail.com
Институт прикладной математики и автоматизации
Аннотация. В большинстве случаев колебания реальных механических систем описываются нелинейными дифференциальными уравнениями. В нелинейных консервативных или диссипативных механических системах модули упругости могут зависеть от деформаций, коэффициенты трения могут зависеть от скорости скольжения и массы тел
могут зависеть от их скоростей. Помимо этого, в нелинейных колебательных системах нарушается свойство изохронности и не выполняется принцип суперпозиции. Эти специфические свойства нелинейных
колебательных систем, однако, позволяют их широко использовать на
практике.
В настоящей работе рассмотрена и реализована нелинейная модель
механического осциллятора, представляющего собой твёрдый (недеформируемый) шар, закреплённый на невесомой пружине, который совершает вынужденные колебания под действием внешней периодической силы. Амплитуда колебаний такова, что в нижней фазе своего
движения шар наносит удары по поверхности твёрдого тела и вызывает её упругую деформацию. С помощью пакета расширений Simulink
программы MATLAB численно решено дифференциальное уравнение,
описывающее колебания осциллятора при наличии упругих соударений, которые описываются в рамках контактной теории Герца. С помощью разработанной схемы в работе проведён вычислительный эксперимент, который показал, что на колебания, задаваемые внешней силой, накладываются затухающие колебания с большей частотой, которые соответствуют упругим соударениям шара о поверхность твёрдого
тела. Моделирование также показывает, что установившейся динамической картине предшествует начальный участок, на котором происходят квазипериодические колебания осциллятора с большей амплитудой. Проведено вейвлет-преобразование полученного численного решения, а также акустических сигналов, возникающих при упругих соударениях зонда с поверхностью твёрдого тела. Вейвлет-преобразование акустических сигналов, возникающих при соударении зонда с
твёрдой поверхностью, позволяет выявлять в частотной области мелкомасштабные детали, важные для интерпретации эксперимента.
Ключевые слова и фразы: математическое моделирование; теория
упругости; численное решение дифференциальных уравнений; вейвлет-анализ.
*
© В.В. Нарожнов, 2015.
В. В. Нарожнов
80
1
ВВЕДЕНИЕ
В данной статье развиваются идеи, впервые высказанные в [1], где
было проведено экспериментальное и теоретическое исследование
акустических сигналов, возникающих при ударах колеблющегося
зонда о поверхность металлических образцов. Для более детального
описания выполненных экспериментов требуется проводить математическое моделирование. В связи с этим целью настоящей статьи является вейвлет-анализ численного решения нелинейного дифференциального уравнения движения осциллятора и экспериментально измеренных акустических сигналов, возникающих при упругих соударениях зонда с поверхностью твёрдого тела. Как известно, вейвлетанализ является эффективным средством анализа динамики сложных
систем и позволяет решать задачи идентификации, моделирования,
аппроксимации стационарных и нестационарных процессов, а также
отыскивать признаки фрактальности информации [2]. Для решения
задачи выбран пакет расширений Wavelet Toolbox, который входит в
состав программы MATLAB.
2
МАТЕМАТИЧЕСКАЯ МОДЕЛЬ
В качестве модели нелинейного осциллятора рассмотрим твёрдый
(недеформируемый) шар, закреплённый на невесомой пружине, который совершает вынужденные колебания под действием внешней периодической силы
F1  F0 cos g t ,
где F0 – амплитуда внешней силы,  g – частота, t – время. Деформация пружины описывается законом Гука
F2  k x ,
где x  x(t ) – смещение, k – коэффициент жёсткости пружины. Предполагается, что на осциллятор действует сила сопротивления среды,
обусловленная наличием динамического трения. Данная сила пропорциональна скорости движения и характеризует затухание колебаний
осциллятора
F3  2 0 x ,
где  0 – коэффициент затухания. Амплитуда колебаний такова, что в
нижней фазе своего движения шар наносит удары по поверхности
твёрдого тела и вызывает её упругую деформацию. Этой деформации,
согласно контактной теории Герца [3, 4], соответствует сила
4 E R ( x  h) 3
,
F4   ( x  h)
3 (1  2 )
Разработка методики и алгоритмов моделирования ...
81
1, x  0 ,
0, x  0 ,
 ( x)  
где  (x ) – функция Хэвисайда, R – радиус шара, h – высота, на которой находится шар в начальный момент времени, ν и E – коэффициент Пуассона и модуль упругости образца. В нашем случае условие,
при котором возникает удар, имеет вид x(t )  h . При этом F4  0 .
Таким образом, с учетом всех действующих сил колебания нелинейного осциллятора описываются следующей задачей Коши
x  2 x  02 x  A( x  h) 3 / 2  ( x  h)  B cos( g t ) , (1)
x(0)  0 , x(0)  0 ,
(2)
F0
0
k
4E R
B



,
,
,
,


0
m
m
3 m (1   2 )
m
где 0 – собственная (резонансная) частота свободных колебаний осциллятора.
Заметим, что дифференциальное уравнение (1) является нелинейным и его решение в аналитическом виде получить не удается. В связи с этим, для анализа следует использовать численные методы.
A
3
ЧИСЛЕННЫЙ ЭКСПЕРИМЕНТ В SIMULINK
В настоящей работе модель нелинейного осциллятора строится с применением программы Simulink. Для реализации алгоритма задачу (1) –
(2) удобно привести к виду
u   c cos   2a u   u  b (u  1) 3 / 2  (u  1) ,
(3)
u (0)  0 , u(0)  0 ,
(4)
x
u  ,   0 t ,
h
g

B
A h
a
, b 2 , c
, 
,
2
0
h  0
0
0
где все коэффициенты в уравнении (3) являются безразмерными. Коэффициент a характеризует затухание колебаний осциллятора; b
определяется упругими характеристиками твёрдого тела; c задаёт амплитуду приложенной внешней силы; Ω определяет частоту внешнего
возбуждения.
Реализация алгоритма моделирования динамической системы в
Simulink состоит из двух основных этапов. Сначала, используя редактор моделей, создаётся графическая модель системы. Модель отображает зависящие от времени математические связи входов, состояний и
82
В. В. Нарожнов
выходов системы. Далее, производится численный расчёт с целью
описания поведения системы на заданном промежутке времени. При
выполнении всех расчётов Simulink использует информацию, которая
описана в графической модели [5].
Построение модели нелинейного осциллятора начинается с сумматора, имеющего 4 входа. Каждый вход сумматора соответствует
слагаемому в правой части уравнения (3). На выходе сумматора получается значение второй производной по времени. Далее включаются
последовательно два интегратора (du, u), на выходе которых получается значение первой производной и самой переменной. Устанавливаются связи между входами и выходами соответствующих блоков и
применяются дополнительные линейные преобразователи и сумматоры. После установки всех связей определяются необходимые коэффициенты в используемых преобразователях и задаются начальные
условия (4) для интеграторов. Для наблюдения за процессом колебаний в модели устанавливается программный блок Scope (осциллограф), который позволяет отображать изменения переменных во времени. Схема решения уравнения (3) представлена на рис.1.
Рис.1. Блок-схема математической модели нелинейного осциллятора
С помощью разработанной схемы в работе проведён вычислительный эксперимент, результаты которого представлены ниже на
рис.2. Значения безразмерных коэффициентов a, b и c представлены
на соответствующих вставках.
Из графиков видно, что на колебания, задаваемые внешней силой, накладываются затухающие колебания с большей частотой, которые соответствуют упругим соударениям шара о поверхность твёрдого тела. Результаты исходного («реперного») расчёта представлены
Разработка методики и алгоритмов моделирования ...
83
на рис. 2 (график 1). При увеличении параметра a время затухания
этих колебаний резко уменьшается, что продемонстрировано на рис. 2
(график 2). Это обусловлено увеличением трения. Вычислительный
эксперимент позволил установить, что изменение частоты и амплитуды колебаний осциллятора обусловлено изменением коэффициента b.
Из рис. 2 (график 3) следует, что увеличение этого параметра приводит к увеличению частоты и уменьшению амплитуды колебаний и,
соответственно, несёт информацию об упругих свойствах образца.
Моделирование также показывает, что установившейся динамической
картине предшествует начальный участок, на котором происходят
квазипериодические колебания осциллятора с большей амплитудой.
Характер этого переходного процесса определяется параметрами b и
c. При увеличении значений этих параметров переходной процесс постепенно перестаёт быть заметным. Рис. 2 (график 4) показывает, что
при увеличении коэффициента c возрастает амплитуда колебаний нелинейного осциллятора. При одинаковых прочих условиях увеличение резонансной частоты свободных колебаний осциллятора приводит
к уменьшению всех параметров в уравнении (3).
Рис.2. Результаты численного эксперимента
84
В. В. Нарожнов
4
ВЕЙВЛЕТ-АНАЛИЗ ЧИСЛЕННОГО РЕШЕНИЯ
И ЭКСПЕРИМЕНТАЛЬНЫХ ДАННЫХ
Вейвлет-преобразование одномерного сигнала состоит в его разложении по базису, сконструированному из обладающей определенными
свойствами солитоноподобной функции (вейвлета) посредством масштабных изменений и переносов. Каждая из функций этого базиса характеризует как определенную пространственную частоту, так и её
локализацию в физическом пространстве, что обеспечивает двумерную развёртку исследуемого одномерного сигнала. Выбор анализирующего вейвлета определяется тем, какую информацию необходимо
извлечь из исследуемого сигнала. Каждая базовая вейвлет-функция ψ0
характеризуется различными свойствами, что позволяет, используя
разные вейвлет-функции, выявить все особенности анализируемого
сигнала f(t) [6].
В работе с помощью пакета расширений Wavelet Toolbox программы MATLAB проведён вейвлет-анализ численного решения нелинейного дифференциального уравнения (3) и акустических сигналов, возникающих при упругих соударениях зонда с поверхностью
твёрдого тела [1].
Рис.3. Вейвлет-преобразование моделируемого сигнала с помощью базисного
вейвлета Морле: (a) – исходный сигнал, (б) – картина коэффициентов W(a,b).
На рис.3 представлены результаты вейвлет-преобразования моделируемого сигнала с помощью комплексного базисного вейвлета
Морле
Разработка методики и алгоритмов моделирования ...
85
 0 ( )   1 4 exp( j0 ) exp(   2 2) ,
где ω0 – параметр вейвлета. Вейвлет Морле обладает базисом, хорошо
локализованным в пространстве частот, причем с увеличением ω0 растёт разрешение в пространстве частот, но ухудшается локализация во
времени. Данное распределение представляет собой проекции поверхностей коэффициентов W(a,b) вейвлет-преобразования на плоскость (a,b). На рис.3 (б) интенсивность окраски областей пропорциональна абсолютной величине коэффициентов W (a, b) . Значение амплитуды вейвлет-преобразования в точке (a0 , b0 ) тем больше (по абсолютной величине), чем больше соответствие между вейвлетом данного масштаба и поведением сигнала в окрестности b= b0.
Рис.4. Вейвлет-преобразование акустического сигнала с помощью вейвлета Мейера: (a) – исследуемый сигнал; (б) – картина коэффициентов W(a,b).
Вычислительный эксперимент показал, что наилучшей разрешающей способностью для анализа исследуемого акустического сигнала
обладает вейвлет Мейера с высокой частотно-временной локализацией. На рис.4 показаны проекции поверхностей коэффициентов W(a,b)
вейвлет-преобразования акустического сигнала на плоскость (a,b), полученные с помощью вейвлета Мейера [7]:
8 / 3
1


 ( x) 
 ( / 2) (  2 ) cos  ( x  1 / 2)d ,

 2 / 3
В. В. Нарожнов
86
 i / 2
2
4
  3

sin  
  1  ,
  
,
e
2
2

3
3






4
8
  3


 ( )  ei / 2 cos  
  1  ,
  
,
2
4

3
3






 2 8 
   , ,
0 ,
3

 3

 2 2 
  
,
,
1 ,
3
3 


   3
4

  2
 ( )  cos  
  1  ,
  
,
2
2

3
3





0 ,
для остальных  ,


 ( )   4 35  84  70 2  20 3  .
Из рис.4 (б) видно, что в области малых значений масштабного
коэффициента a локализованы составляющие вейвлет-спектра, соответствующие частоте исследуемого сигнала. Эти составляющие имеют максимальные значения коэффициентов W(a,b), что свидетельствует о хорошем соответствии вейвлет-функции данного масштаба
исходному сигналу. Таким образом, вейвлет-преобразование акустических сигналов, возникающих при соударении зонда с твёрдой поверхностью, позволяет выявлять в частотной области мелкомасштабные детали, которые важны для интерпретации эксперимента. Если
выделить эти детали и осуществить обратное преобразование, то
можно получить чрезвычайно полезную информацию об исследуемом
сигнале.
5
ЗАКЛЮЧЕНИЕ
В работе можно сделать следующие основные выводы: 1) предложена
математическая модель нелинейного осциллятора при наличии упругих соударений; 2) разработан и реализован алгоритм моделирования
нелинейного осциллятора с помощью пакета программ Simulink; 3)
проведен вейвлет-анализ численного решения нелинейного дифференциального уравнения движения осциллятора и акустических сигналов, возникающих при упругих соударениях зонда с поверхностью
твёрдого тела; 4) практическая реализация разработанной модели позволит создать принципиально новую методику для неразрушающей
Разработка методики и алгоритмов моделирования ...
87
диагностики вязкоупругих свойств твёрдых тел (металлы, сплавы, полимеры и др.).
СПИСОК ЛИТЕРАТУРЫ
1.
2.
3.
4.
5.
6.
7.
Рехвиашвили, С. Ш., Нарожнов, В. В. (2013), «Нелинейная динамика и акустические сигналы при упругих соударениях зонда с
поверхностью твёрдого тела», Изв. вузов «Прикладная нелинейная
динамика». Т. 21, № 6, сс. 49-57.
Короновский, А. А., Храмов, А. Е. (2003), Непрерывный вейвлетный анализ и его приложения, ФИЗМАТЛИТ, М., 176 с.
Ландау, Л. Д., Лифшиц, Е. М. (1987), Теория упругости, Наука,
М., 246 с.
Джонсон, К. (1989), Механика контактного взаимодействия,
Мир, М., 510 с.
Морозов, В. К., Рогачев, Г. Н. (2011), Моделирование информационных и динамических систем, Издательский центр «Академия»,
М., 384 с.
Астафьева, Н. М. (1996), «Вейвлет-анализ: основы теории и примеры применения», УФН, Т. 166, № 11, сс. 1145–1170.
Смоленцев, Н. К. (2005), Основы теории вейвлетов. Вейвлеты в
MATLAB, ДМК Пресс, М., 304 с.
В. В. Нарожнов
88
DEVELOPMENT OF METHODOLOGIES AND ALGORITHMS
FOR SIMULATION OF NONLINEAR MECHANICAL OSCILLATION SYSTEM
USING WAVELET TRANSFORMS
V. V. Narozhnov, email: narojnov.victor@gmail.com
Institute of Applied Mathematics and Automation
Abstract. In most cases, the real oscillations of mechanical systems are described by
nonlinear differential equations. In nonlinear conservative and dissipative mechanical
systems moduli of elasticity may depend on the deformation, friction coefficients may
depend on the sliding velocity and mass of objects may depend on their velocities. Besides it in nonlinear oscillatory system property of isochronicity is violated and the superposition principle is not performed. These specific properties of nonlinear oscillatory
systems, however, allow them to be widely used in practice. In this paper, we considered and implemented non-linear model of the mechanical oscillator, which is a solid
(non-deformable) ball mounted on a weightless spring, committing forced vibrations
under the action of an external periodic force. The amplitude of oscillation is such that
in the lower phase of its movement the ball strikes against the solid surface and causes
its elastic deformation. With the expansion Pack of Simulink program of MATLAB,
there were numerically solved differential equation describing the oscillations of the
oscillator at presence elastic collisions, which are described in the Hertz contact theory.
In the paper, a computational experiment was conducted with the help of the developed
scheme, which showed that fluctuations given by an external force superimposed on
damped oscillations with a higher frequency, which corresponds to elastic collisions of
the ball on the solid surface. Simulation also shows that the established dynamic picture
precedes the initial section at which take place the quasi-periodic oscillations with
greater amplitude. Wavelet transform of obtained numerical solutions was conducted, as
well as of acoustic signals arising from the elastic collisions of the probe with a solid
surface. The wavelet transform of the acoustic signals generated in a collision with a
solid surface probe, allows detecting in the frequency domain small-scale details that
are important for the interpretation of the experiment.
Keywords and phrases: mathematical modeling; theory of elasticity; numerical solution of differential equations; wavelet analysis.
Computing Classification System 1998: G.1.2
Mathematics Subject Classification 2010: 65T60
REFERENCES
1.
2.
3.
4.
Rekhviashvili, S. Sh., Narozhnov, V. V. (2013), “Nonlinear dynamics and acoustic
signals generated by periodic impacts of corundum probe on the solid surface”,
Izvestiya VUZ. Applied Nonlinear Dynamics [“Nelineinaya dinamika i akusticheskie signaly pri uprugih soudareniyah zonda s poverhnostiy tverdogo tela”, Izvestiya
VUZ. Prikladnaya Nelineinaya Dinamika], Vol. 21, No. 6, pp. 49–57.
Koronovsky, A. A., Hramov, A. E. (2003), Continuous wavelet analysis and its applications [Nepreryvnyi veivlet analiz i ego prilozheniya], Fizmatlit, Moscow,
176 p.
Landau, L. D., Lifshic, E. M. (1987), Theory of elasticity [Teoriya uprugosti],
Nauka, Moscow, 246 p.
Johnson, K. L. (1985), Contact Mechanics, Cambridge University Press, London,
Разработка методики и алгоритмов моделирования ...
5.
6.
7.
89
452 p.
Morozov, V. K., Rogachev, G. N. (2011), Modeling of informational and dynamic
systems [Modelirovanie informacionnih i dinamicheskih sistem], Academia, Moscow, 384 p.
Astafieva, N. M. (1996), “Wavelet analysis: basic theory and some applications”,
UFN, [“Veivlet-analiz: osnovy teorii i pimery primeneniya”, Uspehi Fizhicheskih
Nauk], Vol. 166, No. 11, pp. 1145–1170.
Smolencev, N. K. (2005), Fundamentals of the theory of wavelets. Wavelets in
MATLAB [Osnovy teorii veivletov. Veivlety v MATLAB], DMK Press, Moscow,
304 p.
90
ЭВРИСТИЧЕСКИЕ АЛГОРИТМЫ И РАСПРЕДЕЛЁННЫЕ ВЫЧИСЛЕНИЯ, 2, 2 (2015)
СВЕДЕНИЯ ОБ АВТОРАХ
Павел Иванович АВЕРИН – аспирант Тольяттинской академии
управления.
Юрай ГРОМКОВИЧ – доктор физико-математических наук, профессор, заведующий кафедрой Информационных технологий в образовании Технического университета (Eidgenössische Technische Hochschule, Цюрих, Швейцария).
Владислав Алексеевич ДУДНИКОВ – студент Луганского государственного университета им. В. Даля.
Наиль Хабилович ИХСАНОВ – кандидат технических наук, руководитель общества с ограниченной ответственностью «Семантикс
рисеч» (Казань).
Виталий Ильич ЛЕВИН – доктор технических наук, профессор
Пензенского государственного технологического университета.
Виктор Валерьевич НАРОЖНОВ – младший научный сотрудник
Института прикладной математики и автоматизации (Нальчик).
ЭВРИСТИЧЕСКИЕ АЛГОРИТМЫ И РАСПРЕДЕЛЁННЫЕ ВЫЧИСЛЕНИЯ, 2, 2 (2015)
91
ABOUT THE AUTHORS
Pavel I. AVERIN – post-graduate student of Togliatti Academy of
Management (Togliatti, Russia).
Vladislav A. DUDNIKOV – student, Lugansk National University after V. Dal (Lugansk).
Juraj HROMKOVIČ – doctor of physical and mathematical sciences,
professor, head of Department “Information Technology and Education”,
Eidgenössische Technische Hochschule (Zürich, Switzerland).
Nail K. IKHSANOV – candidate of technical sciences, head of Limited Liability Company “Semantics Research Ltd”, (Kazan, Russia).
Vitaly I. LEVIN – doctor of technical sciences, professor of Penza
State Technological University (Penza, Russia).
Viktor V. NAROZHNOV – researcher of Institute of Applied Mathematics and Automation (Nalchik, Russia).
Download