Исследование и разработка методов интервального анализа, оптимизации и их приложение к робототехнике тема диссертации и автореферата по ВАК РФ 00.00.00, кандидат наук Маминов Артем Дмитриевич
- Специальность ВАК РФ00.00.00
- Количество страниц 129
Оглавление диссертации кандидат наук Маминов Артем Дмитриевич
4.3.3 РИЛЛ?
4.3.4 ЭехТаг
4.4 Решение прямой и обратной задач кинематики
4.5 Оптимизация ключевых конструктивных параметров роботов
5 Программная реализация алгоритмов
5.1 Библиотека интервальной арифметики
5.2 Реализация интервальных методов
Заключение
Литература
Приложение А Визуализация аппроксимации рабочей области роботов с различными параметрами
А.1 Робот 2-КРЯ
А.2 Робот ЭехТаг
А.3 Робот Э-ЯРЯ
А.4 Робот 2-ЭОР
Приложение В Программная реализация основных функций
Рекомендованный список диссертаций по специальности «Другие cпециальности», 00.00.00 шифр ВАК
Интервальные методы оптимизации нелинейных детерминированных динамических систем при неполной информации о состоянии и параметрах объекта2017 год, кандидат наук Пановский, Валентин Николаевич
Применение метода недоопределенных вычислений в математическом моделировании1999 год, кандидат физико-математических наук Кашеварова, Тамара Петровна
Стабилизация состояний квадратичносвязных интервальных динамических систем на основе алгебраического метода форм модульных переменных2014 год, кандидат наук Стебулянин, Михаил Михайлович
Синтез интервального наблюдателя для линейных систем с переменными параметрами2013 год, кандидат наук Чеботарев, Станислав Геннадьевич
Численное моделирование задач с неопределенностями в данных1998 год, доктор физико-математических наук Добронец, Борис Станиславович
Введение диссертации (часть автореферата) на тему «Исследование и разработка методов интервального анализа, оптимизации и их приложение к робототехнике»
Введение
Данное исследование связано с двумя научными направлениями: интервальным анализом и робототехникой. В первую очередь работа посвящена интервальным методам для решения систем нелинейных уравнений Г(х) = 0, где Г — отображение ^ и х — вектор в пространстве Системы нелинейных уравнений играют важную роль в различных областях науки и техники. Задачи по поиску корней таких систем часто возникают в физике, биологии, экономике, инженерии и других областях. На сегодняшний день наибольшую популярность имеют подходы, основанные на методе Ньютона [1]. Однако эффективность таких методов сильно зависит от начальной точки поиска, вследствие чего не удается найти все корни уравнений на заданном множестве. Другим недостатком классических методов является невозможность их применения в задачах с интервальной неопределённостью в параметрах.
В некоторых задачах нахождение всех корней с гарантированной точностью необходимо. Например, такая задача встречается в области робототехники, а именно при решение прямой и обратной задач кинематики [2].
Прямая (обратная) задача кинематики — нахождение выходных (входных) параметров по заданным входным (выходным) параметрам. Иными словами, в случае прямой задачи необходимо найти положение рабочего инструмента робота по заданным входным параметрам (например, повороту углов), а в обратной задаче нужно найти такие выходные параметры, при которых рабочий инструмент робота находится в заданной точке. Обычно роботы-манипуляторы описываются системой нелинейных уравнений, поэтому решение такой системы и будет являться решением задач прямой/обратной кинематики. Задача прямой и обратной кинематики рассматривается в литературе достаточно давно [3, 4]. Обычно применяется аналитический подход, либо подход основанный на начальном преобразовании системы с последующим применением численных методов [5]. В обоих случаях необходимо изучать кинематическую систему для заданного робота, что увеличивает трудозатрат-ность таких подходов. Предлагаемый в данном диссертационном исследование подход позволяет автоматизировать процесс и находить все возможные решения.
Другой задачей в робототехнике, где имеет место применение методов интервального анализа, является задача поиска рабочей области. На прак-
тике сложно найти точное множество, которое является рабочей областью робота, поэтому обычно говорят об аппроксимации рабочей области. Для нахождения такой аппроксимации также используются методы решения систем нелинейных уравнений, однако в данной задаче нам необходимо доказать существование решения, а не искать его с заданной точностью. Большинство существующих подходов основано либо на аналитических методах, либо на комбинации аналитических и численных методов [2, 6]. Хотя упомянутые подходы могут находить качественную аппроксимацию, все они требуют значительных затрат по изучению свойств конкретной робототехни-ческой системы.
Задача построения внутренней и внешней аппроксимации множества, ограниченного неравенствами, рассматривалась в [7]. Предлагаемый подход в [7] эффективен, но ограничен только случаями, когда такие системы неравенств могут быть получены из кинематических уравнений. Методы построения внешней аппроксимации рабочей области роботов на основе исходной системы кинематических уравнений были предложены в [8, 9]. Эти методы были успешно применены для моделирования робота с тросовым приводом в [10] и системы реабилитации нижних конечностей [11]. Иногда такого знания внешней аппроксимации достаточно, но оно ограничивает рабочее пространство. Информация о внутренней части рабочей области имеет важное значение при планировании траектории. В данном исследовании был разработан метод по доказательству существования решений, основанный на методах интервального анализа для решения систем нелинейных уравнений, теореме Брауэра о неподвижной точке [12] и теореме Миранды (теореме Пуанкаре-Миранды, теореме Больцано-Пуанкаре-Миранды) [13]. Предложенный подход автоматизирует процесс нахождения аппроксимации рабочей области и не требует дополнительных преобразований исходной системы кинематических уравнений.
Последней рассмотренной задачей, связанной с робототехникой, является оптимизация ключевых конструктивных параметров роботов. Характеристики робота могут быть определены посредством индексов, которые отражают соответствующие характеристики робота [14]. Однако характеристики робота не всегда коррелируют друг с другом, поэтому возникает задача многокритериальной оптимизации, где целевой переменной являются параметры конструкции робота (например диапазоны изменения длин штанг). Большинство индексов рассчитывается на основе матрицы Якоби кинематической системы и решение прямой (обратной) задачи кинематики. В большинстве известных подходов матрица Якоби и прямая (обратная) кинематические задачи находятся аналитически, либо численно-аналитически. Однако такой подход требует значительных трудозатрат и повторного анализа для роботов различных структур [15]. В данном исследование предлагается автоматизированный подход по вычислению индексов с использованием символьных выражений для матрицы Якоби и использованию методов интервально-
го анализа для решения систем нелинейных уравнений. Объединив разработанный подход с генетическим алгоритмом для поиска Парето-оптимального множества, был разработан инструмент для оптимизации конструктивных параметров робота.
Кроме прикладных задач в исследовании немаловажную роль играют сами методы для решения систем нелинейных уравнений. Исследовались два наиболее распространённых метода: метод Кравчика [16] и метод Хансена-Сенгупты [17]. Была разработана модификация, основанная на теореме Бау-манна об оптимальных центрах [18]. Изначально в [19] предлагалось применить данную модификацию для метода Кравчика, что позволило улучшить сам метод и основанный на нём подход по доказательству существования решения [20]. В данной работе предлагается применить эту модификацию и к методу Хансена-Сенгупты. Экспериментально было показано, что применение такой модификации не увеличивает, а в большинстве случаев уменьшает количество итераций необходимых для сходимости.
На Рисунке 1 отображена связь исследуемых методов между собой.
Рисунок 1: Связь исследуемых методов между собой
Целью данной работы является разработка и исследование интервальных методов для решения систем нелинейных уравнений и их применение к прикладным задачам робототехники.
Для достижения поставленной цели необходимо было решить следующие задачи:
1. Исследовать и модифицировать интервальные операторы, используемые для нахождения решений систем нелинейных уравнений, с использованием теоремы Бауманна об оптимальных центрах.
2. На основе интервальных операторов разработать метод по поиску корней для систем нелинейных уравнений и метод по доказательству существования решения для системы нелинейных уравнений с использованием теоремы Брауэра и теоремы Миранды.
3. Разработать автоматизированный программный комплекс для поиска корней систем нелинейных уравнений с использованием интервальных методов и их применения для решения прикладных задач робототехники (аппроксимация рабочей области, решение прямой/обратной задач кинематики, оптимизация ключевых конструктивных параметров).
4. Провести экспериментальное исследование точности аппроксимации рабочей области для роботов различных типов с использованием как классических методов, так и предложенных модификаций метода доказательства существования решения.
5. Исследовать применимость разработанного метода решения систем нелинейных уравнений для решения прямой/обратной задач кинематики.
6. Реализовать автоматизированный подход для оптимизации ключевых конструктивных параметров робота на основе разработанных интервальных методов и генетического алгоритма для нахождения Парето-оптимального множества решений.
7. Провести экспериментальные исследования по скорости сходимости разработанных методов для решения систем систем нелинейных уравнений и их модификаций на различных системах уравнений.
Основные положения, выносимые на защиту:
1. Разработаны интервальные методы для локализации корней систем нелинейных уравнений на основе теоремы Бауманна об оптимальных центрах (бицентрированные методы). Проведено экспериментальное исследование по сравнению скорости сходимости классических и бицентрирован-ных методов, доказано преимущество бицентрированных методов в скорости сходимости.
2. Проведено экспериментальное исследование по применению разработанных методов для решения задачи прямой/обратной кинематики. Разработанный подход позволяет решать поставленные задачи без каких-либо дополнительных аналитических преобразований.
3. Разработан метод доказательства существования решения на основе интервальных методов для решения систем нелинейных уравнений, теоремы Брауэра и теоремы Миранды. На основе этого метода разработан автоматизированный подход для аппроксимации рабочей области роботов.
Проведено экспериментальное исследование эффективности применения разработанных подходов для решения задачи аппроксимации рабочей области роботов-манипуляторов различных структур. Классические варианты методов не всегда могут точно определять рабочую область, однако применение разработанных модификаций, позволяет для всех тестовых систем находить точную аппроксимацию рабочей области.
4. Разработан автоматизированный подход к решению задачи многокритериальной оптимизации ключевых конструктивных параметров роботов на основе интервальных методов для решения систем нелинейных уравнений и генетического алгоритма для аппроксимации Парето-оптимального множества решений. Проведено экспериментальное исследование для нахождения оптимальной конструкции робота-манипулятора. В результате было получено множество Парето и иделаьная точка в задаче двухкри-териальной оптимизации по трем параметрам.
Научная новизна.
Научная новизна диссертационной работы определяется тем, что впервые был разработан метод для решения систем нелинейных уравнений на основе теоремы Бауманна об оптимальных центрах. Также проведено исследование и разработан метод доказательства существования решений для систем нелинейных уравнений. В результате экспериментального исследования было доказано, что несмотря на то, что метод Хансена-Сенгупты производит более точную оценку при решении систем нелинейных уравнений, при применении этого метода в доказательстве существования решения, в некоторых случаях результат оказывается хуже, чем результат производимый оператором Крав-чика. Также экспериментально было доказано, что применение бицентриро-ванных методов не ухудшает, а в большинстве случаев улучшает точность метода доказательства существования решения.
Теоретическая ценность данной работы состоит в разработке теории построения интервальных операторов для решения систем нелинейных уравнений на основе теоремы Бауманна об оптимальных центрах. На основе теоремы Брауэра и теоремы Миранды разработан теоретический базис для доказательства существования решения для систем нелинейных уравнений.
Практическая ценность данной работы состоит в следующем:
• разработаны методы для решения систем нелинейных уравнений и метод доказательства существования корня системы нелинейных уравнений;
• разработан подход для решения актуальных задач из области робототехники на основе методов интервального анализа: аппроксимации рабочей области роботов, решения прямой/обратной задач кинематики, оптимизации ключевых конструктивных параметров робота;
• разработан программный комплекс, автоматизирующий процесс вычислений с использованием символьных операций.
Степень достоверности полученных результатов обеспечивается строгостью математических доказательств всех утверждений, а также экспериментальными исследованиями с проверкой всех полученных результатов.
Апробация работы. Основные результаты, полученные в диссертации, обсуждались и докладывались на следующих международных конференциях:
• IEEE CONFERENCE OF RUSSIAN YOUNG RESEARCHERS IN ELECTRICA: AND ELECTRONIC ENGINEERING 2019 (ElConRus 2019, Москва, 29-31 января, 2019 года)
• International Conference on Computer Simulation in Physics and Beyond 2020 (CSP-2020, Москва, 12-16 октября, 2020 года)
• 4th International Symposium "Intelligent Systems - 2020" (INTELS 2020, Москва, 14-16 декабря, 2020 года)
• The XIII International Conference "Optimization and Applications"(OPTIMA-
2022, Москва-Монтенегро, 26 сентября - 30 сентября, 2022 года)
• The XIV International Conference "Optimization and Applications"(OPTIMA-
2023, Москва-Монтенегро, 18 сентября - 22 сентября, 2023 года)
Личный вклад. Все основные результаты по теме диссертации, включающие разработку новых методов для поиска корней нелинейных уравнений, разработка алгоритмов, реализацию программного комплекса и выполнение экспериментальных исследований, получены автором лично при научном руководстве д.ф.-м.н. М.А. Посыпкина. Публикации
Основные результаты по теме диссертации изложены в 8 работах. Статьи [21, 22, 20, 23, 24, 25] опубликованы в сборниках статей конференций индексируемых в Web of Science Core Collection и/или Scopus. Работы [26, 27] опубликованы в журнал индексируемых в РИНЦ.
Объем и структура работы Диссертация состоит из введения, пяти глав, заключения и двух приложений.
В главе 1 дано введение в интервальный анализ, определены основные математические функции для работы с интервалами и описан принцип оценивания диапазона значений функции на интервале.
В главе 2 дана постановка задачи локализации корней нелинейной системы уравнений, дано теоретическое описание методов для решения систем нелинейных уравнений и метода по доказательству существования корня системы нелинейных уравнений.
Глава 3 описывает алгоритмы, реализующие методы для решения систем нелинейных уравнений и доказательства существования решений на основе теории изложенной в главе 2.
Глава 4 посвящена описанию вычислительных экспериментов, состоящих из применения разработанных методов к прикладным задачам робототехники: решению прямой/обратной задач кинематики, аппроксимации рабочей области роботов, оптимизация ключевых конструктивных параметров роботов.
В главе 5 дано описание архитектуры и основных модулей программного комплекса. Разработанный программный комплекс позволяет находить корни системы нелинейных уравнений и автоматизирует процесс решения задач из области робототехники.
Полный объём диссертации составляет 129 страниц с 40 рисунками и 2 таблицами. Список литературы содержит 65 наименований.
Глава 1
Интервальный анализ
Данная глава посвящена теоретическому введению в интервальный анализ, описанию основных интервальных математических операций и функций. Интервальный анализ (интервальная арифметика, интервальные вычисление) — математическая дисциплина, предметом которой является решение задач с интервальными неопределённостями в данных, возникающими в постановке задачи либо в процессе решения [28]. На основе такого математического аппарата, были разработаны численные методы, дающие надежные результаты, использующие для расчетов не обычные числа, а интервалы.
Одним из первых источников, где упоминался интервальный анализ, была книга [29]. Автор предлагает арифметическую систему для работы над числовыми диапазонов для повышения надежности цифровых систем. Рождению современной интервальной арифметики соответствует появление книги [30]. Методы, описанные в этих книгах, оперируют не конкретными значениями, а диапазонами возможных значений, заданными началом и концом диапазона. Эта техника подходит для различных целей. Чаще всего его используют для отслеживания и обработки ошибок округления непосредственно в ходе расчета, а также неопределенностей в знании точных значений физических и технических параметров. Такие ошибки часто возникают из-за неточностей измерений или из-за ограничений точности вычислений, существующих во всех компьютерах. Интервальная арифметика также позволяет с гарантированной точностью находить надежные решения уравнений (например, дифференциальных уравнений, систем линейных и нелинейных уравнений), задач оптимизации и аппроксимации.
Основная цель интервальной арифметики — вычислить верхнюю и нижнюю оценки диапазона значений функции одной или нескольких переменных. Развитие интервального анализа также связано с работами А. Ноймайера [31] и Э. Хансена. А. Ноймайер внёс вклад в разработку интервальных методов для решения широкого круга задачи, особенно к задаче решение линейный систем уравнений. Э. Хансен также внес свой вклад в изучение интервального анализа и совместно с С. Сенгуптой разработал метод для решения систем нелинейных уравнений [17], который широко используется и по сей день.
В математической школе СНГ первым автором, активно занимавшимся интервальным анализом, был Леонид Кантарович со статьей [32], опубликованной в 1962 году.
Значительный вклад в развитие интервального анализа внёс профессор С. П. Шарый. Большая часть исследований С. П. Шарого посвящена интервальным методам для решения линейных систем уравнений, но также нельзя не отметить его вклад по разработке интервальных методов во многих других задачах [33, 34]. Именно в его работе было предложено применить теорему Бауманна об оптимальных центрах для улучшения оценок оператора Крав-чика [19].
1.1 Обозначения и сокращения
Следуя [35] будем обозначать интервалы полужирным шрифтом, левый (правый) конец интервала x будем обозначать через x(x). Таким образом x = {x Е < x < x}. Множество всех вещественных интервалов обозначается как IR. Интервальный вектор размерностью n определяется как прямое декартово произведение n интервалов, всё множество интервальных векторов размерности n обозначается как IRn. В данной работе полужирным шрифтом обозначаются любые интервальные величины и интервальные операции, чьим результатом будет интервальная величина. Полный список обозначений и сокращений приведён в следующем списке:
• x, F(x) — полужирным шрифтом обозначаются интервальные величины и интервальные расширения функций;
• R — множество вещественных чисел;
• Rn — n-мерное вещественное векторное пространство;
• Rnxm — n х m-мерное вещественное матричное пространство;
• IR — множество интервальных вещественных чисел;
• IRn — n-мерное вещественное интервальное векторное пространство;
• IRnxm — n х m-мерное вещественное интервальное матричное пространство;
• F(x),A — заглавными буквами обозначаются системы уравнений и матрицы;
• A-1 — обратная матрица;
• x — нижнее подчеркивание обозначает левый конец интервала;
• х — верхнее подчеркивание обозначает правый конец интервала;
• П — пересечение интервалов, в случае отсутствия пересечения возвращает 0;
• и — объединение двух непересекающихся интервалов;
• шах!<{<п и)1<1(х{) — ширина интервального вектора, т^(х) — ширина интервала;
• ш1^х) — середина интервала;
• К — интервальный оператор Кравчика;
• НБ — интервальный оператор Хансена-Сенгупты.
1.2 Интервальная арифметика
1.2.1 Интервальные математические операции
Вместе с появление интервального анализа появилась первая вычислительная система, которая позволяла проводить операции над интервалами. В классической интервальной арифметике операции между интервалами х и у определяются по "представителям":
х * у = {х * у|х е х,у е у}, (1.1)
для * е {+,-, •,/}.
Можно заметить, что как значение максимума, так и значение минимума будет достигаться на таком множестве [28]. На основе этого можно переписать выражение (1.1) в явном виде:
х*у=
шт (х * у), шах (х * у)
хех,уеу хех,уеу
(1.2)
На основе выражения (1.2) определим четыре основные математические операции.
х + у = [х + у, х + у}, х — у = [х — у, х — у х • у = [шт{жу, ху, ху, ху}, шах{ху, ху, ху, ху} х/у = х • [1/у, 1/у] йог у $ 0,
Стоит обратить внимание, что в классической интервальной арифметики деление двух интервалов допустимо только в случае, если делитель не
содержит в себе 0. Однако такой случай может возникнуть в процессе вычислений в рассматриваемых методах (более подробно в Главе 3). Поэтому в данной работе применяется расширенная интервальная арифметики Кахана [36]. Основное отличие такой системы состоит в переопределение операции деления с возможностью делить на интервалы содержащие ноль:
оо
х/у = <
' [х/у
[[-то, х/у] и [х/у, то] -то, х/у],
[-то, х/у] и [х/у, то]
[хМ
то
£ у = 0 а^ х < 0 £ х < 0 and у Э 0 £ х < 0 and у = 0 £ х > 0 and у Э 0 £ х > 0 and у = 0 £ х Э 0 and у Э 0
(1.3)
[-то, то],
Дополнительно определим операция вычитания между числом и мульти-интервалом:
с — [[-то, а] и [Ь, то]] = [[-то, с — Ь] и [с — а, то]]
Выражение (1.3) задаёт правила деления на нольсодержащий интервал. Стоит обратить внимание, что при отрицательности или положительности делимого интервала может возможно появление мультиинтервалов. Муль-тиинтервал — объединение двух непересекающихся интервалов. При работе алгоритмов такие интервалы обрабатываются по отдельности. Более подробно работа с мультиинтервалами будет показана в Главе 3.
Основные математические операции между интервалом х Е Ж и обычным число а Е К определяются следующим образом:
х + а = [х + а, х + а], х - а = [х - а,х - а], х * а = [х * а,х * а], х/а = [х/а, х/а].
1.2.2 Интервальные вектора и матрицы
Интервальный вектор — это прямое Декартово произведение интервалов, содержащихся в этом векторе. Интервальные векторы могут быть либо в виде вектора-строки
х = (хх, х2,..., хп),
либо в виде вектора-столбца
/жхД Х2,
\Xn/
В геометрическом смысле интервальные векторы представляют n-мерные параллелепипеды, стороны которого параллельны координатным осям. На Рисунке 1.1 приведён пример двух интервальных векторов x = [[1,3], [2, 5]] (обозначен зелёным цветом) и у = [[4,8], [3,4]]. Иногда в литературе интервальные векторы называют брусами (английское box).
Рисунок 1.1: Пример двух интервальный векторов в II
2
Интервальные операции применяются к интервальным векторам поэлементно:
x П y =
fx 1 П ухД Х2 П У2,
\xn П уn.J
mid(x) =
( mid(x1),\ mid(x2),
\mid(xn.)J
Для определения математических операций между интервальными векторами и матрицами введём основную теорему интервальной арифметики [28].
Теорема 1. Пусть /(хх, х2,... , хп) — действительная функция вещественных аргументов хх,х2,... ,хп и для неё определён результат f (хх, х2,.. ., хп) подстановки интервалов вместо аргументов хх,х2,... ,хп Е Ж и выполнения всех действий над ними по правилам интервальной арифметики. Тогда
{/(хх ,х2, . . . ,хп)|х1 Е х1,х2 Е х2, . . . , хп Е хп} С f (хх, х2, . . . , хп), (1.4)
т. е. f (хх, х2,.. ., хп) содержит множество значений функции /(хх, х2,... , хп) на хх,х2,..., хп.
Если выражение для /(хх,х2,... ,хп) содержит не более чем по одному вхождению каждой переменной в первой степени, то в (1.4) вместо включения выполняется точное равенство.
Операции сложения, вычитания, умножения и деления выполняются поэлементно между парами интервалов в интервальных векторах х, у:
x * у =
* ухД Х2 * У2,
\Xn * Уп /
для * £ { + , —, *}.
Интервальная матрица представляет собой прямоугольную таблицу, состоящую из интервалов, что обозначается как A = (aj), что означает, что пересечение i-й строки и j-го столбца содержит элемент aj. Вышеописанные операции mid, rad и |■ | применяются к интервальным векторам и матрицам покомпонентно и поэлементно. В частности, для матриц A = (aj) и A = (aj) одинаковой размерности отношение A £ A означает, что aj £ aj для всех элементов матрицы.
Пусть заданы матрицы A = (ay), A £ IRmxn и B = (by), A £ IRmxn. Тогда результат операций сложения и вычитания между ними {A ± B |A £ A, B £ B} совпадает с интервальной матрицей C = (cy), C £ IRmxn, где Cjj — aij ± .
Также результат операции умножения между матрицами A £ II
>mxl
и
В Е Ж1хп {А • В|А Е А, В Е В} совпадает с интервальной матрицей С =
(су), С Е Жтхп, где су = Ек=1 «г* • б*,-.
Операции {+, -, *} между интервальными матрицами, интервальными векторами и обычными векторам, матрицами выполняются так же поэлементно.
1.3 Интервальные математические функции
В дополнение к базовым интервальным математическим операциям, интервальный анализ также позволяет оценивать диапазон значений функций на
интервалах.
В общем случае применение интервального анализа для оценивания диапазона значений функций описано в Разделе 1.4. В данном разделе представлено определение основных математических функций, чья оценка может быть получена точно с учётом монотонности функций.
Для монотонных функций одной переменной определение диапазона значений её интервального оценивания определяется по концам интервала.
Пусть функция / : К ^ К, является монотонной на интервале х = [ж, ж], тогда можно получить диапазон значений, вычислив значения функции в конечных точках интервала. Для монотонно возрастающей функции диапазон значений можно выразить как /(х) = [/(ж), /(ж)]. Аналогично, для монотонно убывающей функции диапазон значений задается как /(х) = [/(ж), ](ж)]. Визуализацию примера расчёта интервальной оценки для монотонно возрастающей функции можно увидеть на Рисунке 1.2
Рисунок 1.2: Визуализация расчета интервальной оценки монотонно возрастающей функции
Определим интервальную оценку для основных математических функций:
[0, тах(жп, жп], если п — четное и 0 е х хп = ^ [т1п(жп,жп), тах(жп,жп], если п — четное и 0 ф х [жп, жп], если п — нечетное
ex = [ex, ex]
logn x =
[logn x, logn x], если n > 1 [logn x, logn x], если n < 1
|x| =
' [—x, —x], если x < 0 [x, — x], если 0 E x и — x>x [—x, x], если 0 E x и — x < x , [x, x], иначе
Похожие диссертационные работы по специальности «Другие cпециальности», 00.00.00 шифр ВАК
Разработка интервальных методов для синтеза, анализа и диагностики некоторых механических конструкций2014 год, кандидат наук Людвин, Дмитрий Юрьевич
Разработка методов идентификации интервальных нейронных сетей в информационно-аналитических системах при управлении объектами с неопределенностью2019 год, кандидат наук Полозова Юлия Евгеньевна
Моделирование динамических систем с интервальными параметрами2024 год, доктор наук Морозов Александр Юрьевич
Двусторонние ограничения решений прямых и обратных задач химической кинетики2014 год, кандидат наук Вайтиев, Владимир Анатольевич
Развитие бикватернионной теории кинематического управления и её приложение к решению обратной задачи кинематики роботов-манипуляторов2017 год, кандидат наук Нелаева Екатерина Игоревна
Список литературы диссертационного исследования кандидат наук Маминов Артем Дмитриевич, 2025 год
Литература
[1] Carl T Kelley. Iterative methods for linear and nonlinear equations. SIAM, 1995.
[2] Jean-Pierre Merlet. Parallel robots. Springer Science & Business Media, 2006.
[3] Jorge Angeles. On the numerical solution of the inverse kinematic problem. The International Journal of Robotics Research, 4(2):21-37, 1985.
[4] J-P Merlet. Solving the forward kinematics of a gough-type parallel manipulator with interval analysis. The International Journal of robotics research, 23(3):221-235, 2004.
[5] Shuxin Xie, Lining Sun, Guodong Chen, Zhenhua Wang, and Zixiang Wang. A novel solution to the inverse kinematics problem of general 7r robots. IEEE Access, 10:67451-67469, 2022.
[6] Oriol Bohigas, Montserrat Manubens, and Lluis Ros. Singularities of robot mechanisms: Numerical computation and avoidance path planning, volume 41. Springer, 2016.
[7] Yuri Evtushenko, Mikhail Posypkin, Larisa Rybak, and Andrei Turkin. Approximating a solution set of nonlinear inequalities. Journal of Global Optimization, 71(1):129-145, 2018.
[8] Mikhail Posypkin. Automated robot's workspace approximation. In Journal of Physics: Conference Series, volume 1163, page 012050. IOP Publishing, 2019.
[9] Dmitry Malyshev, Mikhail Posypkin, Larisa Rybak, and Usov Alexander. Approaches to the determination of the working area of parallel robots and the analysis of their geometric characteristics. Engineering Transactions, 67(3):333-345, 2019.
[10] Larisa Rybak, Elena Gaponenko, and Dmitry Malyshev. Approximation of the workspace of a cable-driven parallel robot with a movable gripper. In Latin American Symposium on Industrial and Robotic Systems, pages 36-43. Springer, 2019.
[11] Askhat Diveev, Grigory Dubrovin, Dmitry Malyshev, and Anna Nozdracheva. Geometric parameters and workspace optimization of sitting-type lower limb rehabilitation robot. In Latin American Symposium on Industrial and Robotic Systems, pages 279-289. Springer, 2019.
12
13
14
15
16
17
18
19
20
21
David Gale. The game of Hex and the Brouwer fixed-point theorem. The American Mathematical Monthly, 86(10):818-827, 1979.
Wladyslaw Kulpa. The poincare-miranda theorem. The American Mathematical Monthly, 104(6):545-550, 1997.
Yun-Joo Nam and Myeong-Kwan Park. Workspace optimization and kinematic performance evaluation of 2-dof parallel mechanisms. Journal of mechanical science and technology, 20:1614-1625, 2006.
Monika Z Filiposka, Ana M Djuric, and Waguih ElMaraghy. Complexity analysis for calculating the jacobian matrix of 6dof reconfigurable machines. Procedia CIRP, 17:218-223, 2014.
Rudolf Krawczyk. Interval operators and fixed intervals. In International Symposium on Interval Mathematics, pages 81-94. Springer, 1985.
Eldon Hansen and Saumyendra Sengupta. Bounding solutions of systems of equations using interval analysis. BIT Numerical Mathematics, 21(2):203-211, 1981.
Eckart Baumann. Optimal centered forms. BIT Numerical Mathematics, 28(1):80-87, 1988.
Sergey P Shary. Krawczyk operator revised. Novosibirsk, Institute of Computational Technologies, Russia, 2004.
Artem D Maminov, Mikhail A Posypkin, and Sergey P Shary. Reliable bounding of the implicitly defined sets with applications to robotics. Procedia Computer Science, 186:227-234, 2021.
Artem Maminov and Mikhail Posypkin. Constrained multi-objective robot's design optimization. In 2020 IEEE Conference of Russian Young Researchers in Electrical and Electronic Engineering (EIConRus), pages 1992-1995. IEEE, 2020.
Artem D Maminov and Mikhail A Posypkin. Parallel robots modelling and optimization. In Journal of Physics: Conference Series, volume 1740, page 012067. IOP Publishing, 2021.
[23] Artem Maminov and Mikhail Posypkin. Robot workspace approximation with modified bicenetred krawczyk method. In International Conference on Optimization and Applications, pages 238-249. Springer, 2022.
[24] Artem Maminov and Mikhail Posypkin. Bicentered interval newton operator for robot's workspace approximation. In International Conference on Optimization and Applications, pages 344-356. Springer, 2023.
[25] Artem Maminov. Automated multi-criteria optimization of parallel robots. In Optimization and Applications, pages 125-138. Springer, 2025.
[26] Artem D Maminov and Mikhail A Posypkin. Research and developing methods of solving engineering optimization problems for parallel structure robots. International Journal of Open Information Technologies, 7(11):1-7, 2019.
[27] Артем Дмитриевич Маминов and Михаил Анатольевич Посыпкин. РАЗРАБОТКА БИБЛИОТЕКИ ИНТЕРВАЛЬНОЙ АРИФМЕТИКИ НА ЯЗЫКЕ python. Системы компьютерной математики и их приложения, (21):166-171, 2020.
[28] СП Шарый. Конечномерный интервальный анализ. Новосибирск: ИВТ СО РАН, 2010.
[29] Paul S Dwyer. Linear computations. 1951.
[30] Ramon E Moore. Interval analysis, volume 4. Prentice-Hall Englewood Cliffs, 1966.
[31] Arnold Neumaier. Interval methods for systems of equations. Cambridge University Press, 1990.
[32] LV Kantorovich. On some new approaches to computational methods and processing of observations. Siberian Mathematical Journal, 3(5):701-709, 1962.
[33] Sergey P Shary. A new technique in systems analysis under interval uncertainty and ambiguity. Reliable computing, 8(5):321-418, 2002.
[34] Sergey P Shary. Algebraic approach to the interval linear static identification, tolerance, and control problems, or one more application of kaucher arithmetic. Reliable computing, 2(1):3-33, 1996.
[35] R Baker Kearfott, Mitsuhiro T Nakao, Arnold Neumaier, Siegfried M Rump, Sergey P Shary, and Pascal van Hentenryck. Standardized notation in interval analysis. Computational Technologies, 15(1):7-13, 2010.
[36] William M Kahan. A more complete interval arithmetic. Lecture notes for an engineering summer course in numerical analysis, University of Michigan, 4:31, 1968.
[37] Prasanna Sahoo and Thomas Riedel. Mean value theorems and functional equations. World Scientific, 1998.
[38] Rudolf Krawczyk. Properties of interval operators. Computing, 37(3):227-245, 1986.
[39] Helmut Beeck. Uber struktur und abschatzungen der losungsmenge von linearen gleichungssystemen mit intervallkoeffizienten. 1972.
[40] Arnold Neumaier. New techniques for the analysis of linear interval equations. Linear Algebra and its Applications, 58:273-325, 1984.
[41] Eldon Hansen and G William Walster. Global optimization using interval analysis: revised and expanded, volume 264. CRC press, 2003.
[42] Gunter Mayer. Interval analysis: and automatic result verification, volume 65. Walter de Gruyter GmbH & Co KG, 2017.
[43] Re' mi Ricard and Cle' ment M Gosselin. On the determination of the workspace of complex planar robotic manipulators. 1998.
[44] YY Chen, XZ Han, F Gao, ZH Wei, and Y Zhang. Workspace analysis of a 2-dof planar parallel mechanism. In International Conference of Electrical, Automation and Mechanical Engineering, pages 192-195, 2015.
[45] Jia Li, Fei Zhao, Xingchen Li, and Junjie Li. Analysis of robotic workspace based on monte carlo method and the posture matrix. In 2016 IEEE International Conference on Control and Robotics Engineering (ICCRE), pages 1-5. IEEE, 2016.
[46] Vincensius Billy Saputra, Soh-Khim Ong, and Andrew YC Nee. A swarm optimization approach for solving workspace determination of parallel manipulators. Robotica, 33(3):649-668, 2015.
[47] Stephane Caro, Damien Chablat, Alexandre Goldsztejn, Daisuke Ishii, and Christophe Jermann. A branch and prune algorithm for the computation of generalized aspects of parallel robots. Artificial Intelligence, 211:34-50, 2014.
[48] Anton Antonov and Victor Glazunov. Position, velocity, and workspace analysis of a novel 6-dof parallel manipulator with "piercing" rods. Mechanism and Machine Theory, 161:104300, 2021.
[49] Gagik Rashoyan, Konstantin Shalyukhin, Anton Antonov, Aleksandr Aleshin, and Sergey Skvortsov. Analysis of the structure and workspace of the isoglide-type robot for rehabilitation tasks. In Advances in Artificial Systems for Medicine and Education III, pages 186-194. Springer, 2020.
[50] D-Y Jo and Edward J Haug. Workspace analysis of closed loop mechanisms with unilateral constraints. In International Design Engineering Technical Conferences and Computers and Information in Engineering Conference, volume 3691, pages 53-60. American Society of Mechanical Engineers, 1989.
[51] Yi Cao, Suiping Qi, Ke Lu, Yi Zang, and Guanying Yang. An integrated method for workspace computation of robot manipulator. In 2009 International Joint Conference on Computational Sciences and Optimization, volume 1, pages 309-312. IEEE, 2009.
[52] Sumanta Panda, Debadutta Mishra, and Bibhuti Bhusan Biswal. An appropriate tool for optimizing the workspace of 3r robot manipulator. In 2009 World Congress on Nature & Biologically Inspired Computing (NaBIC), pages 1156-1161. IEEE, 2009.
[53] Ana M Djuric, Riyadh Al Saidi, and W ElMaraghy. Global kinematic model generation for n-dof reconfigurable machinery structure. In 2010 IEEE International Conference on Automation Science and Engineering, pages 804-809. IEEE, 2010.
[54] John T Feddema. Kinematically optimal robot placement for minimum time coordinated motion. In proceedings of IEEE international conference on robotics and automation, volume 4, pages 3395-3400. IEEE, 1996.
[55] Yi Cao, Haihe Zang, Lan Wu, and Tao Lu. An engineering oriented method for the three dimensional workspace generation of robot manipulator. Journal of Information and Computational Science, 8(1):51-61, 2011.
[56] Aaron Meurer, Christopher P. Smith, Mateusz Paprocki, Ondrej Certik, Sergey B. Kirpichev, Matthew Rocklin, AMiT Kumar, Sergiu Ivanov, Jason K. Moore, Sartaj Singh, Thilina Rathnayake, Sean Vig, Brian E. Granger, Richard P. Muller, Francesco Bonazzi, Harsh Gupta, Shivam Vats, Fredrik Johansson, Fabian Pedregosa, Matthew J. Curry, Andy R. Terrel, Stepan Roucka, Ashutosh Saboo, Isuru Fernando, Sumith Kulal, Robert Cimrman, and Anthony Scopatz. Sympy: symbolic computing in python. PeerJ Computer Science, 3:e103, January 2017.
[57] Andrzej Osyczka and Sourav Kundu. A new method to solve generalized multicriteria optimization problems using the simple genetic algorithm. Structural optimization, 10:94-99, 1995.
[58] Matthias Ehrgott. Multicriteria optimization, volume 491. Springer Science & Business Media, 2005.
[59] J. Blank and K. Deb. pymoo: Multi-objective optimization in python. IEEE Access, 8:89497-89509, 2020.
[60] Kalyanmoy Deb, Amrit Pratap, Sameer Agarwal, and TAMT Meyarivan. A fast and elitist multiobjective genetic algorithm: Nsga-ii. IEEE transactions on evolutionary computation, 6(2):182-197, 2002.
[61] Kalyanmoy Deb, Karthik Sindhya, and Tatsuya Okabe. Self-adaptive simulated binary crossover for real-parameter optimization. In Proceedings of the 9th annual conference on genetic and evolutionary computation, pages 1187-1194, 2007.
[62] Portion — data structure and operations for intervals. https://github. com/AlexandreDecan/portion. Accessed: 2025-02-17.
[63] Pyinterval — interval arithmetic in python. https://github.com/ taschini/pyinterval. Accessed: 2025-02-17.
[64] Mpmath. arbitrary-precision interval arithmetic. https://mpmath.org/doc/current/contexts.html# arbitrary-precision-interval-arithmetic-iv. Accessed: 2025-0217.
[65] Андросов Артём Станиславович и Шарый Сергей Петрович. Intvalpy — библиотека интервальных вычислений на языке python. Вестник Новосибирского государственного университета. Серия: Информационные технологии, 20(4):5-23, 2022.
Приложение А
Визуализация аппроксимации рабочей области роботов с различными параметрами
В данном приложение приведена полная визуализация экспериментальных результатов по аппроксимации рабочей области роботов. Для каждого робота исследовалось качество аппроксимации, получаемое с использованием различных комбинаций методов: классических интервальных методов, их би-центрированных модификаций, классические интервальные методы с использованием теоремы Миранды, бицентрированные интервальные методы с использованием теоремы Миранды. Для роботов 2-КРЯ (4.9) и Э-ЯРЯ (4.10): 16 х 16, 32 х 32, 64 х 64. Для робота ЭехТаг (4.12): 10 х 10, 20 х 20, 40 х 40. Для робота 2-ЭОР: 20 х 20, 40 х 40, 60 х 60.
A.1 Робот 2-RPR
Bicentered
False True
Рисунок А.1: Аппроксимация рабочей области для робота 2-КРЯ для сетки 16 х 16, (а) классический метод Хансена-Сенгупты, (Ь) бицентрированный метод Хансена-Сенгупты, (с) классический метод Хансена-Сенгупты с применением теоремы Миранды, (^ бицентрированный метод Хансена-Сенгупты с применением теоремы Миранды
Bicentered
False True
Рисунок А.2: Аппроксимация рабочей области для робота 2-ЯРЯ для сетки 32 х 32, (а) классический метод Хансена-Сенгупты, (Ь) бицентрированный метод Хансена-Сенгупты, (с) классический метод Хансена-Сенгупты с применением теоремы Миранды, бицентрированный метод Хансена-Сенгупты с применением теоремы Миранды
Рисунок А.3: Аппроксимация рабочей области для робота 2-ЯРЯ для сетки 64 х 64, (а) классический метод Хансена-Сенгупты, (Ь) бицентрированный метод Хансена-Сенгупты, (с) классический метод Хансена-Сенгупты с применением теоремы Миранды, (^ бицентрированный метод Хансена-Сенгупты с применением теоремы Миранды
Рисунок А.4: Аппроксимация рабочей области для робота 2-ЯРЯ для сетки 16 х 16, (а) классический метод Кравчика, (Ь) бицентрированный метод Кравчика, (с) классический метод Кравчика с применением теоремы Миранды, (^ бицентрированный метод Кравчика с применением теоремы Миранды
Рисунок A.5: Аппроксимация рабочей области для робота 2-RPR для сетки 32 х 32, (a) классический метод Кравчика, (b) бицентрированный метод Кравчика, (с) классический метод Кравчика с применением теоремы Миранды, (d) бицентрированный метод Кравчика с применением теоремы Миранды
Bicentered
Рисунок A.6: Аппроксимация рабочей области для робота 2-RPR для сетки 64 х 64, (a) классический метод Кравчика, (b) бицентрированный метод Кравчика, (с) классический метод Кравчика с применением теоремы Миранды, (d) бицентрированный метод Кравчика с применением теоремы Миранды
A.2 Робот DexTar
Рисунок A.7: Аппроксимация рабочей области для робота DexTar для сетки 10 х 10, (a) классический метод Хансена-Сенгупты, (b) бицентрированный метод Хансена-Сенгупты, (с) классический метод Хансена-Сенгупты с применением теоремы Миранды, (d) бицентрированный метод Хансена-Сенгупты с применением теоремы Миранды
Рисунок A.8: Аппроксимация рабочей области для робота DexTar для сетки 20 х 20, (a) классический метод Хансена-Сенгупты, (b) бицентрированный метод Хансена-Сенгупты, (с) классический метод Хансена-Сенгупты с применением теоремы Миранды, (d) бицентрированный метод Хансена-Сенгупты с применением теоремы Миранды
Рисунок A.9: Аппроксимация рабочей области для робота DexTar для сетки 40 х 40, (a) классический метод Хансена-Сенгупты, (b) бицентрированный метод Хансена-Сенгупты, (с) классический метод Хансена-Сенгупты с применением теоремы Миранды, (d) бицентрированный метод Хансена-Сенгупты с применением теоремы Миранды
Рисунок A.10: Аппроксимация рабочей области для робота DexTar для сетки 10 х 10, (a) классический метод Кравчика, (b) бицентрированный метод Кравчика, (с) классический метод Кравчика с применением теоремы Миранды, (d) бицентрированный метод Кравчика с применением теоремы Миранды
Рисунок A.11: Аппроксимация рабочей области для робота DexTar для сетки 20 х 20, (a) классический метод Кравчика, (b) бицентрированный метод Кравчика, (с) классический метод Кравчика с применением теоремы Миранды, (d) бицентрированный метод Кравчика с применением теоремы Миранды
Рисунок A.12: Аппроксимация рабочей области для робота DexTar для сетки 40 х 40, (a) классический метод Кравчика, (b) бицентрированный метод Кравчика, (с) классический метод Кравчика с применением теоремы Миранды, (d) бицентрированный метод Кравчика с применением теоремы Миранды
А.3
Робот З-ИРИ
В1сеп1егес1
-20 -15 -10 -5 0 5 10 15 20 ~2а -10 -5 0 5 10 15 20
Рисунок А.13: Аппроксимация рабочей области для робота З-ЯРЯ для сетки 16 х 16, (а) классический метод Хансена-Сенгупты, (Ь) бицентрированный метод Хансена-Сенгупты, (с) классический метод Хансена-Сенгупты с применением теоремы Миранды, (^ бицентрированный метод Хансена-Сенгупты с применением теоремы Миранды
Рисунок A.14: Аппроксимация рабочей области для робота 3-RPR для сетки 32 х 32, (a) классический метод Хансена-Сенгупты, (b) бицентрированный метод Хансена-Сенгупты, (с) классический метод Хансена-Сенгупты с применением теоремы Миранды, (d) бицентрированный метод Хансена-Сенгупты с применением теоремы Миранды
Рисунок А.15: Аппроксимация рабочей области для робота Э-ЯРЯ для сетки 64 х 64, (а) классический метод Хансена-Сенгупты, (Ь) бицентрированный метод Хансена-Сенгупты, (с) классический метод Хансена-Сенгупты с применением теоремы Миранды, (^ бицентрированный метод Хансена-Сенгупты с применением теоремы Миранды
Рисунок A.16: Аппроксимация рабочей области для робота 3-RPR для сетки 16 х 16, (a) классический метод Кравчика, (b) бицентрированный метод Кравчика, (с) классический метод Кравчика с применением теоремы Миранды, (d) бицентрированный метод Кравчика с применением теоремы Миранды
Bicentered
■20 -15 -10 -5 0 5 10 15 20 -20 -15 -10 -5 0 5 10 15 20
Рисунок A.17: Аппроксимация рабочей области для робота 3-RPR для сетки 32 х 32, (a) классический метод Кравчика, (b) бицентрированный метод Кравчика, (с) классический метод Кравчика с применением теоремы Миранды, (d) бицентрированный метод Кравчика с применением теоремы Миранды
Рисунок A.18: Аппроксимация рабочей области для робота 3-RPR для сетки 64 х 64, (a) классический метод Кравчика, (b) бицентрированный метод Кравчика, (с) классический метод Кравчика с применением теоремы Миранды, (d) бицентрированный метод Кравчика с применением теоремы Миранды
A.4 Робот 2-DOF
Bicentered
(a) False (b) True
Рисунок A.19: Аппроксимация рабочей области для робота 2DOF для сетки 16 х 16, (a) классический метод Хансена-Сенгупты, (b) бицентрированный метод Хансена-Сенгупты, (с) классический метод Хансена-Сенгупты с применением теоремы Миранды, (d) бицентрированный метод Хансена-Сенгупты с применением теоремы Миранды
Bicentered
(a) False (b) True
Рисунок A.20: Аппроксимация рабочей области для робота 2DOF для сетки 16 х 16, (a) классический метод Хансена-Сенгупты, (b) бицентрированный метод Хансена-Сенгупты, (с) классический метод Хансена-Сенгупты с применением теоремы Миранды, (d) бицентрированный метод Хансена-Сенгупты с применением теоремы Миранды
В1сеп1егес1
Рисунок А.21: Аппроксимация рабочей области для робота 2БОЕ для сетки 16 х 16, (а) классический метод Хансена-Сенгупты, (Ь) бицентрированный метод Хансена-Сенгупты, (с) классический метод Хансена-Сенгупты с применением теоремы Миранды, (^ бицентрированный метод Хансена-Сенгупты с применением теоремы Миранды
Рисунок А.22: Аппроксимация рабочей области для робота 2БОЕ для сетки 16 х 16, (а) классический метод Кравчика, (Ь) бицентрированный метод Кравчика, (с) классический метод Кравчика с применением теоремы Миранды, (^ бицентрированный метод Кравчика с применением теоремы Миранды
Рисунок А.2Э: Аппроксимация рабочей области для робота 2БОЕ для сетки 16 х 16, (а) классический метод Кравчика, (Ь) бицентрированный метод Кравчика, (с) классический метод Кравчика с применением теоремы Миранды, (^ бицентрированный метод Кравчика с применением теоремы Миранды
Рисунок А.24: Аппроксимация рабочей области для робота 2БОЕ для сетки 16 х 16, (а) классический метод Кравчика, (Ь) бицентрированный метод Кравчика, (с) классический метод Кравчика с применением теоремы Миранды, (^ бицентрированный метод Кравчика с применением теоремы Миранды
Приложение B
Программная реализация основных функций
В Листинге B.1 представлена реализация библиотеки интервальной арифметики. Интервалы реализованы в виде класса, для которого определяются основные маетматические функции согласно правилам интервальной арифметики (см. Главу 1). Также реализован дополнительный класс Extendedlnterval реализующий мультиинтервалы. Сами мультиинтервалы представлены как списки интервалов. Для них необходимо было переопределить только операцию вычитания вида "интервал — мультиинтервал", используемую в операторе Хансена-Сенгупты. Для классических интервалов определены основные функции пересечения, нахождения середины интервала, ширины и т.д. Также для них определён расчёт базовых математиечских функция и известным характером монотонности.
1 import math
2 import numpy as np
3
4 б 6
7
8 9
10 11 12
13
14 1б
16
17
18
19
20 21 22
23
class Interval:
def __init__(self , x) : self.x = x.copy ()
def __repr__(self) : Representation of the interval as [a, b] :return: rounded ends of the interval
3)) return "[" + str(round(self.x[0], 3)) + + "]" ", " + str(round(self.x [1] ,
def __round__(self , n=3) : return Interval([np.round(self.x [0] , 3), np.round(self.x [1] , 3)])
def mid(self ) : Calculate middle point of the interval : return: middle of the interval , float
25 return 0.5 * (self . x [0] + self.x[1])
26
27 def width(self):
28 " " "
29 Calculate width of the interval
30 :return : width of the interval, float
31 " " "
32 return self.x[1] - self.x[0]
33
34 def scale(self, factor):
35 m = 0.5 * (self . x [0] + self.x[1])
36 r = 0.5 * ( self . x [1] - self . x [0] )
37 self.x[0] = m - factor * r
38 self.x[1] = m + factor * r
39
40 def isIn(self, other):
41 " " "
42 Check if the interval is inside of the another interval
43 :param other: second interval
44 :return: bool
45 " " "
46 return (self.x[0] >= other . x [0] ) and (self.x[1] <= other.x[1])
47
48 def isNolntersec(self, other):
49 " " "
50 Check if the interval has no intersection with another interval
51 :param other: second interval
52 : return: bool
53 " " "
54 return (self.x[0] > other. x [1] ) or (self.x[1] < other . x [0] )
55
56 def intersec (self , other):
57 " " "
58 Intersec two intervals
59 :param other: second interval
60 : return: intersection of the two intervals , interval
61 " " "
62 if self.x[1] < other. x [0] or other.x[1] < self.x[0]:
63 return None
64 # raise ValueError(other.x [0] , other.x [1] , "results in wrong
bounds:", self.x[0], self.x[1])
65 else:
66 return Interval ( [max(self .x [0] , other. x [0] ) , min(self.x[1], other.x [1])])
67
68 def __getitem__(self, item):
69 " " "
70 Get the end of the interval
71 :param item: left (0) or right(1) end of the interval
72 : return: end of the interval , float
73 " " "
74 return self.x[item]
75
76 def __setitem__ (self , key, value):
77 " " "
78 Set the end of the interval
79 : param key: lef t (0) or right(1) end of the interval
80 :param value: new value of the end of the interval
81 " " "
82 self.x.__setitem__(key, value)
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
__neg__(self)
Return negative interval :return: interval
ninterval = Interval(self.x) ninterval.x[0] = - self.x[1] ninterval.x[1] = - self.x[0] return ninterval
def __eq__(self, other):
if self.x[0] == other. x [0] and self.x[1] == other.x[1]:
return True else:
return False
__add__(self, other):
Interval addition of two intervals :param other: second interval : return: interval
ointerval = valueToInterval(other) ninterval = Interval(self.x)
ninterval.x[0] = self.x[0] + ointerval.x[0] ninterval.x[1] = self.x[1] + ointerval.x [1] return ninterval
__radd__(self, other): return self.__add__(other)
__sub__(self, other):
Interval subtraction of two intervals :param other: second interval : return: interval
ointerval = valueToInterval(other) ninterval = Interval(self.x)
ninterval.x[0] = self.x[0] - ointerval.x [1] ninterval.x[1] = self.x[1] - ointerval.x [0] return ninterval
def __rsub__(self, other):
ointerval = valueToInterval(other) return ointerval.__sub__(self)
__pow__(self, other):
Interval power function :param other: power value : return: interval
ninterval = Interval(self.x) u = self.x[0] ** other v = self.x[1] ** other if other == 0:
ninterval.x [0] = 1 ninterval.x[1] = 1
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
elif other % 2 == 0:
ninterval.x [1] = max(u, v)
if self.x [0] <= 0 and self.x[1] >= 0:
ninterval.x [0] = 0 else:
ninterval.x [0] = min(u, v)
else:
ninterval.x [0] = u ninterval.x[1] = v return ninterval
def __mul__(self, other):
Interval multiplication :param other: second interval : return: interval
ointerval = valueToInterval(other)
v = [self.x[0] * ointerval.x [0] , self.x[0] * ointerval.x [1] , self.x [1] * ointerval.x [0] , self.x[1] * ointerval.x[1]] b = [min(v), max(v)] return Interval(b)
def __truediv__(self, other):
Interval division. It includes two variants: if the denominator interval contains zero and doesn't contain :param other: second interval : return: interval or extended interval
ointerval = valueToInterval(other) if not (valueToInterval(0).isIn(ointerval)):
v = [self.x [0] / ointerval.x [0] , self.x[0] self .x[1] / ointerval . x [0] ,
self.x[1] / ointerval.x[1] ] f = [min(v), max(v)] return Interval(f) else:
print(self) print(ointerval) a1 , a2 = self . x [0] , self.x[1] b1, b2 = ointerval.x[0] , ointerval.x [1] if b2 == 0 and a2 <= 0:
c = [a2 / b1 , np . inf ] elif a2 < 0 and b1 < 0 and b2 > 0:
c = [[-np.inf, a2 / b2], [a2 / b1, np.inf]] elif a2 <= 0 and b1 == 0:
c = [-np . inf , a2 / b2] elif a1 >= 0 and b2 == 0:
c = [ -np . inf , a1 / elif a1 > 0 and b1 < 0
c = [[-np.inf, a1 / b1], elif a1 >= 0 and b1 == 0: c = [a1 / b2, np.inf] elif a1 <= 0 and a2 >= 0: c = [-np.inf, np.inf] if len(np.shape(c)) != 2:
c = Interval(c) else:
ival_c = []
/ ointerval.x [1]
b1]
and b2 > 0: [a1 /
b2, np.inf]]
200 201 202
203
204
205
206
207
208
209
210 211 212
213
214
215
216
217
218
219
220 221 222
223
224
225
226
227
228
229
230
231
232
233
Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.