Волошинов Денис Вячеславович | (Санкт-Петербургский государственный университет телекоммуникаций им. проф. М.А.Бонч-Бруевича) |
Статья посвящена рассмотрению ряда вопросов, связанных с устранением причин высокой трудоемкости предметного исполнения конструктивных геометрических моделей. На основе принципов согласования параметров и копирования структур алгоритмов продемонстрированы возможности быстрого синтеза геометрических моделей и повышения точности выполняемых с их помощью расчетов
Перейдем к рассмотрению второго аспекта, определяющего требования к разработке системы автоматизации конструктивного геометрического моделирования. Речь пойдет о проблеме снижения трудоемкости процесса синтеза геометрической модели. Попробуем определить причины того, что предметное воплощение геометрической модели в виде чертежа требует от его создателя множества усилий и временных затрат.
Самая существенная причина, оказывающая значительное влияние на общую трудоемкость исполнения чертежа - это необходимость многократного циклического повторения одинаковых последовательностей промежуточных построений к некоторому фиксированному набору объектов при позиционном изменении одного из них. Такие построения осуществляются, в частности, для синтеза некоторого интегрированного образа, например, для построения кривых, проходящих через множество рассчитанных в процессе выполненных итераций точек. Безусловно, область применения итерационно повторяемых построений не ограничивается только приведенным примером.
Количество итераций, требуемых для обеспечения приемлемой точности результата, не всегда легко определить заранее. Обычно считается, что для практических нужд вполне достаточно выполнить десять-пятнадцать промежуточных построений, результаты которых позволят, в целом, судить о форме получаемого геометрического образа и после этого считать ее достоверной. Для вычерчивания интегрированного образа к полученным данным применяются интерполирующие инструменты (например, лекала). Подобное допущение, безусловно, является источником потери точности и возможности возникновения ошибок, с которыми в какой-то мере можно бороться путем увеличения числа итераций. Но это непременно приведет к повышению общей трудоемкости проекта.
В [1] были сформулированы требования к способу организации программ, реализующих конструктивные геометрические построения. В частности, в качестве основного требования была указана необходимость обеспечения недетерминированного описания конструкций геометрических машин. Это требование входит в противоречие с принципом многократного выполнения однотипных операций с переменным в общем случае количеством итераций. Решить эту проблему удалось путем реализации концепции представления данных в переменных не в виде единственного поименованного объекта, а в виде именованного упорядоченного списка индексированных объектов. За счет такого представления геометрических данных удалось добиться реализации двух принципиально важных качеств системы. Во-первых, структура самой программы от предложенного нововведения никак не изменилась. Она по-прежнему соответствует принципу недетерминированного стиля ее формирования, порядок ее исполнения не зависит от последовательности записи команд в программе. Это означает, что способ взаимодействия проектировщика с системой по-прежнему не требует соблюдения строгого порядка действий. Во-вторых, с методической точки зрения на этапе проектирования алгоритма все рассуждения о многократно выполняющемся построении с переменным количеством образующихся при этом объектов можно выполнять на примере их единственного представителя, то есть полагать, что итерация выполняется однократно и не по отношению к списку объектов, а к их единственному индивидуальному представителю. И это очень удобно! Фактически, процесс проектирования конструкции геометрической машины с множественными повторяющимися построениями свелся к проектированию такой конструкции без необходимости существенно принимать эту множественность в расчет.
Что же в таком случае изменилось, помимо введения в систему списочных переменных с произвольной длиной списков? В состав отношения была введена запись, получившая название признак вида согласования параметров. Анализ принципов выполнения множественных однотипных геометрических построений показал, что с формальной точки зрения они определяются порядком взаимодействия входных параметров отношения, реализующего то или иное сопоставление пар упорядоченных множеств объектов, заключенных в списках этих параметров. Эти отношения между элементами множеств хорошо известны. Основных видов согласования, используемых в системе Симплекс, четыре: простое, множественное, сдвиговое и циклическое сдвиговое. На основе этих четырех видов согласований формируются комбинированные разновидности согласований, если количество входных параметров отношения больше двух.
Под простым согласованием понимается соответствие между элементами множеств A и B вида «один к одному». Это означает, что каждый элемент одного множества вступает во взаимодействие с равным по порядковому номеру элементом другого множества и только с ним c получением соответственного по номеру объекта выходного параметра C (рис. 1). При неравенстве количества элементов в списках A и B за предельное значение принимается минимальное из значений длин списков A и B.
Рис. 1. Схема взаимодействия объектов двух списков при простом согласовании параметров
Аналогичный принцип нетрудно распространить и на тот случай, если количество входных параметров отношения превышает число два (рис. 2).
Рис. 2. Схема взаимодействия объектов нескольких списков при простом согласовании параметров
Под множественным согласованием понимается соответствие между элементами множеств A и B вида «все ко всем». Это означает, что каждый элемент одного множества вступает во взаимодействие со всеми по порядку элементами другого множества, в результате чего в выходном параметре C накапливаются значения объектов в количестве, равном произведению длин исходных списков A и B (рис. 3).
Рис. 3. Схема взаимодействия объектов двух списков при множественном согласовании параметров
Множественное согласование имеет два частных случая, имеющих исключительно важное значение в практике проектирования конструктивных геометрических алгоритмов. Эти случаи характеризуются тем, что либо исходный список A, либо исходный список B имеет только один элемент. Тогда схемы согласования будут устанавливать между элементами множеств соответствия типа «один ко всем» или «все к одному» (рис. 4).
Рис. 4. Схема взаимодействия объектов двух списков при частных случаях множественнго согласования параметров
Под сдвиговым согласованием понимается такое соответствие между элементами множеств A и B, при котором каждый очередной элемент множества A вступает во взаимодействие со следующим по порядковому номеру элементом множества B (рис. 5). Наибольший практический интерес представляет случай, когда параметры A и B представлены одним и тем же списком. Такое согласование позволяет, например, очень легко реализовать операцию синтеза интегрированного образа по представляющим его дискретным данным.
Рис. 5. Схема взаимодействия объектов двух списков при сдвиговом согласовании параметров
И последняя базовая разновидность согласования параметров - циклическое сдвиговое согласование (рис. 6). Оно отличается от сдвигового согласования тем, что последний элемент первого списка вступает во взаимодействие с первым элементом второго списка. То есть, используя циклическое сдвиговое согласование, можно строить геометрические образы с самозамыканием.
Рис. 6. Схема взаимодействия объектов двух списков при циклическом сдвиговом согласовании параметров
Как уже было отмечено ранее, в случае количества параметров отношения, превышающем число два, возникает необходимость назначать комбинированное согласование. В этом случае параметры разбиваются на пары в соответствии со смысловым содержанием геометрического построения. После определения согласования, скажем, для пары параметров A и B, результат этого согласования может быть выражен промежуточным списком AB, который, в свою очередь, вступает во взаимодействие со следующим списком, например, C, и т.д. Таким образом, формируется достаточно сложное комбинированное согласование, представленное, как комбинация более простых (рис. 7).
Рис. 7. Схема взаимодействия объектов двух списков при комбинированном согласовании вида «mu(no(A, B), C)», где под обозначением mu подразумевается множественное согласование, а под обозначением no - простое
На первый взгляд может показаться, что введение аппарата согласования параметров - это существенное усложнение работы пользователя, однако это не так. Несложно показать, что проектирование типовых алгоритмов подчинено проявлению лишь нескольких простых эвристических правил, которые позволяют системе определять и назначать отношениям виды согласований параметров автоматически. Так что пользователь может, в принципе, не задумываться о назначении видов согласования вообще.
Необходимость соблюдения строгого порядка образования объектов в результате выполнения вычислительной работы отношений, которое возлагается на систему, а не на пользователя, требует введения еще одной специальной разновидности объектного типа, который получил название nil-объект (объект с неопределенным значением). Его основное предназначение - замещать собой результат вычислительной работы отношения в тех случаях, когда значение функции при заданных значениях входных параметров отношения неопределенно. Игнорирование отсутствия решений в условиях согласования параметров непременно привело бы к нарушению порядка объектов образуемых выходных множеств и, следовательно, к получению принципиально неверных результатов. В отношении nil-объекта определено единственное бизнес-правило: при взаимодействии с любым объектом в любой операции nil-объект порождает новый nil-объект.
В качестве иллюстрации применения различных видов согласования параметров приведем исключительно простой пример: развертку окружности в синусоиду. Разумеется, продемонстрированные принципы столь же легко могут быть применены к построениям произвольной сложности.
Рассмотрим задачу. На плоскости задана окружность d1 с центром в точке p1. Требуется развернуть эту окружность в синусоиду, "начинающуюся" из точки p2 (рис. 8).
Рис. 8. Исходные данные для построения синусоиды
Определим длину c1 окружности d1 и отложим эту длину от точки p2 с целью получения точки p3 (рис. 9).
Рис. 9. Определение длины окружности и построение точки p3
Построим на точках p2 и p3 отрезок o2 (рис. 10).
Рис. 10. Построение отрезка o2
Разобьем его, а также исходную окружность d1 на 12 равных частей. Эти действия будут выполнены путем назначения двух отношений вида "точка принадлежит объекту с параметром". обратим внимание на виды согласования параметров в этих отношениях:
Точка ‹p4› принадлежит объекту ‹o2› с параметром принадлежности ‹[0~1~12]›. Согласование "Множественное".
Точка ‹p5› принадлежит объекту ‹d1› с параметром принадлежности ‹[0~1~12]›. Согласование "Множественное".
Здесь под конструкцией вида [0~1~12] подразумевается вычисление тринадцати чисел от 0 до 1 включительно с равномерным разбиением этого диапазона на 12 равномерных интервалов. Таким образом, единичные объекты o2 и d1 должны вступить во взаимодействие с множеством чисел, состоящим из тринадцати элементов, чтобы в результате на отрезке и на окружности образовались по 13 точек (рис. 11).
Р ис. 11. Назначение точек, инцидентных с отрезком и исходной окружностью
Теперь для получения множества горизонтальных прямых, исходящих из точек p5, и множества вертикальных прямых, исходящих из точек p4, применим два отношения следующего вида:
Прямая ‹o3› задана точкой ‹p5› и углом ‹0› к оси OX. Согласование "Множественное".
Прямая ‹o4› задана точкой ‹p4› и углом ‹90› к оси OX. Согласование "Множественное".
В обоих случаях следует применить множественное согласование, так как множества p4 и p5 содержат по тринадцать объектов, и они должны вступить во взаимодействие с множествами, содержащими в себе по одному числу (90 и 0, соответственно) (рис. 12).
Рис. 12. Использование множественного согласования параметров для выполнения промежуточного построения
Узловые точки p6, через которые пройдет ломаная, аппроксимирующая синусоиду, находятся на пересечении прямых o3 и o4. Согласование параметров в этом отношении должно быть простым, так как каждая из участвующих в операции прямых должна вступить во взаимодействие только с соответственной ей по порядковому номеру прямой (рис. 13).
Рис. 13. Построение узловых точек с применением простого согласования
Остается лишь соединить точки множества p6 с помощью отношения Прямая ‹o5› задана точками ‹p6› и ‹p6›. Согласование "Сдвиговое" (рис. 14).
Рис. 14. Использование сдвигового согласования для построения интегрального аппроксимирующего объекта
Конечно, полученная аппроксимация является достаточно "грубой". Поэтому заменим число 12 в отношениях
Точка ‹p4› принадлежит объекту ‹o2› с параметром принадлежности ‹[0~1~12]›. Согласование "Множественное".
Точка ‹p5› принадлежит объекту ‹d1› с параметром принадлежности ‹[0~1~12]›. Согласование "Множественное". на n.
Естественно, поскольку n еще не определено, изображение синусоиды и всех необходимых для ее построения объектов исчезнет (рис. 15, 16).
Рис. 15. Результат замены числа разбиения интервалов на объект с отсутствующим значением
Рис. 16. Конкретизация структурной схемы при назначении объекта с отсутствующим значением
Введем в качестве значения переменной n число 500 (рис. 17).
Рис. 17. Результат общего построения при присвоении величине n значения, равного 500
Полученное изображение содержит в себе все промежуточные объекты, каждый в количестве по 501. После разнесения изображений по слоям визуализации на экране останется результат (рис. 18), который обладает существенно более высокой точностью построения, нежели тот, который был представлен на рис 14.
Рис. 18. Окончательный результат, освобожденный от изображений объектов промежуточных построений
Разумеется, полученная конструкция обладает всеми качествами, присущими понятию геометрическая машина (рис. 19).
Рис. 19. Действие спроектированной геометрической машины при изменении радиуса исходной окружности
Следует еще раз обратить внимание на то, что переменное количество итераций, необходимое для выполнения промежуточных построений, более не является проблемой, а принцип построения машины остается одинаковым как в случае построения лишь одной точки кривой, так и для случая построения произвольного количества точек. Предложенный подход позволяет существенно сократить время на получение геометрической модели, обеспечивающей высокую точность результата.
Как уже было сказано ранее, все назначения видов согласования параметров отношений можн выполнить на основе эвритик. Содержание этих эвристических правил очень простое.
1. Если в обоих списках, поступающих в процедуру автоматического согласования, содержится одинаковое количество элементов, то вероятно, что согласование параметров этого отношения простое.
2. Если в одном из списков, поступающих в процедуру автоматического согласования, содержится один элемент, а в другом более одного элемента, то вероятно, что согласование параметров этого отношения множественное.
3. Если в обоих параметрах, поступающих в процедуру автоматического согласования, содержится один тот же список, то вероятно, что согласование параметров этого отношения сдвиговое.
Поэтому в режиме назначения автоматического согласования можно получить необходимую конструкцию, построив ее только для одного элемента. Если впоследствии определить в одном из отношений алгоритма, от которого зависит общий результат построения, входной параметр в качестве списка со множественным составом объектов, заменив им список с единичным объектом, то все зависящие от этой замены отношения поменяют согласование своих параметров автоматически без усилий со стороны пользователя. Продемонстрируем эту идею на простом примере.
Пусть нам требуется построить недостающие проекции линии на поверхности сферы (рис. 20). Решим эту задачу лишь для одной точки, расположенной на этой линии.
Рис. 20. Решение задачи о построении проекций точки, принадлежащей линии на сферической поверхности
Активировав режим автосогласования, определим множество точек на фронтальной проекции линии. Необходимый результат будет получен незамедлительно (рис. 21).
Рис. 21. Результат применения режима автосогласования параметров к единичному решению задачи
Следует обратить внимание на то, что структура алгоритма совершенно не изменилась. Только лишь множественные объекты отмечены около параметров функций красным цветом (рис. 22).
Рис. 22. Структурная схема алгоритма, демонстрирующая идентичность его структуры как для случая единичного, так и для случая множественного решения
Реляционный характер конструктивных геометрических моделей позволяет выполнять автоматический синтез отношений алгоритма по заданному образцу. Предположим, что в предыдущей задаче требуется выполнить построение проекций не одной, а двух различных линий. Понятно, что принцип построений в обоих случаях совершенно одинаковый. Поэтому, если в нашем распоряжении имеется информация о связи результата со входным объектом промежуточного построения, то такую связь можно продублировать, естественно, выполняя замены имен объектов в новых продуцируемых отношениях.
Пусть теперь необходимо выполнить построение проекций линии на сфере, фронтальная проекция которой представлена треугольником. Определим на треугольнике точку (отмечена зеленым цветом) (рис. 23).
Рис. 23. Исходные данные для автоматизированного распространения действия спроектированного построения на новый объект
Для решения поставленной задачи необходимо указать связь между входным и двумя выходными объектами предыдущего построения. Это можно сделать с помощью двух объектов типа "связь", которые динамически отслеживают все изменения, возникающие в теле проектируемого алгоритма (обозначены желтыми прямоугольниками с зелеными стрелками) (рис. 24).
Рис. 24. Указание связей между входными и выходными объектами промежуточного построения
Нам остается дважды применить эти объекты по отношению к зеленой точки и получить необходимый результат (рис. 25,26).
Рис. 25. Результат применения связи к новой линии (треугольнику) с учетом множественности решений
Рис. 26. Действие спроектированной геометрической машины
Подводя итог сказанному, следует отметить следующее. Предложенная концепция системы проектирования конструктивных геометрических моделей позволяет не только сохранить естественность способа приложения геометрического метода к решению задач, но она также способствует кардинальному снижению трудоемкости этого процесса. Отсутствие различий в принципах построения единичных и множественных решений позволяет обеспечивать достаточную точность, не затрачивая на это дополнительных сил и времени проектировщика. При этом степень сложности реализуемых алгоритмов принципиально ничем не ограничивается.
Принципы и методики, нашедшие отражение в статье, конечно же не раскрывают всех механизмов снижения трудоемкости, которые уже реализованы в рамках предлагаемой концепции и которые предполагается реализовать в будущем. Но их вполне достаточно, для того чтобы продемонстрировать "предрасположенность" конструктивных геометрических моделей к параллельным и конвейерным вычислениям, которые можно реализовать в виде специализированных кибернетических устройств.
1. Волошинов Д.В. Технологии применения геометрического инструмента. Основы // Проблемы качества графической подготовки студентов в техническом вузе: традиции и инновации: Материалы VIII международной Интернет-конференции. Февраль - март 2019 г. Пермь, 2019.
Хейфец Александр Львович (18 марта 2019 г. 12:06) |
Ирина Дмитриевна, а мне можно выложить доклад с 26-ю рисунками? Денис Вячеславович, не сердитесь на это замечание. Это пока для разминки. С уважением. А.Л. Хейфец. |