Введение в математические основы систем автоматизации проектных работ (САПР)

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

Рубрика Программирование, компьютеры и кибернетика
Вид курс лекций
Язык русский
Дата добавления 18.09.2014
Размер файла 2,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

8. В чем состоит декомпозиция задачи с геометрическими ограничениями с помощью отсечений?

Дополнительная литература

Обзорная работа [30] по методам декомпозиции геометрических задач предлагает стройную классификацию и исчерпывающее описание известных методов (со ссылками на первоисточники). Метод структурной декомпозиции графа ограничений на компоненты двойной связности описан в [34]. Основополагающая работа о декомпозиции на основе выделения структурно жестких подзадач - [29]. О некоторых методах декомпозиции, реализованных в решателе LGS, можно узнать из [3].

Лекция 8. Инженерия знаний в САПР

Параметрическое проектирование на основе конструктивных элементов

Моделирование на основе конструктивных элементов (feature-based modeling) - базовый инструмент проектирования многих современных САПР. Конструктивные элементы (КЭ, features) концептуально представляет собой надстройку над геометрической (чаще всего граничной) моделью. Многие КЭ определяют локальные свойства формы проектируемого изделия (такие как объем, заметаемый протягиванием плоского замкнутого профиля, круглое отверстие, скругление острого ребра) и соответственно имеют непосредственный образ в геометрической модели. Например, в рамках граничного представления каждому КЭ соответствует набор топологических элементов (граней, ребер, вершин), генерируемых данным КЭ (например, круглому отверстию соответствуют порождаемые им цилиндрические грани со своими границами). Такая связь может быть процедурной либо декларативной. В последнем случае каждый КЭ описывается набором геометрических ограничений, которые связывают генерируемые им топологические элементы (задавая их геометрические свойства). Для совместного решения систем таких ограничений требуется производительный вариационный геометрический решатель. В современных САПР, однако, получил широкое распространение процедурный подход - прежде всего из-за простоты реализации и высокой производительности (он не требует одновременного разрешения набора геометрических ограничений). Этот подход состоит в том, что с каждым классом КЭ связываются процедуры, которые вносят соответствующие изменения в геометрическую модель: порождение нового экземпляра, изменение параметров, копирование, удаление. Заметим, что процедурный подход предполагает отсутствие циклических зависимостей между элементами - иначе цикл обновления модели при изменении параметров (состоящий в последовательном применении процедур перестроения КЭ) окажется бесконечным. Этого ограничения можно избежать применением декларативного подхода.

В рамках процедурного подхода КЭ моделируются внутри CAD-системы (например, в системе CATIA V5 за это моделирование отвечает специальный модуль - Feature Modeler) как объекты с заданным поведением и структурой данных. Поведение описывается декларацией (и реализацией) набора операций, которые можно применять к данному конструктивному элементу. Структура данных описывается набором атрибутов.

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

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

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

Инженерные параметры

Параметрические спецификации позволяют пользователям САПР специфицировать и связывать между собой самые разные параметры проектируемого изделия, отражающие его геометрические, физические, экономические свойства. В предыдущих лекциях мы узнали, что параметры в CAD-системах используются при создании примитивов и конструктивных элементов (в этом случае они являются геометрическими параметрами - длинами и углами). Кроме того, в системах параметрического проектирования существует возможность задания произвольных параметров, называемых инженерными. При создании параметра определяется его имя и тип. Опционально можно задавать область допустимых значений - в виде интервала либо в виде явного перечисления конечного числа допустимых значений. Если в процессе работы системы параметр означен значением, не входящим в область допустимых значений, пользователь получит сообщение об этом. Тип параметра может быть как скалярным (булевым, целым, вещественным, строковым), геометрическим (углом или длиной), так и размерным.

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

Отношения базы знаний

В CAD-системах для связи параметров между собой используются разные инструменты. Простейшим из них является функциональное связывание, которое подразумевает, что значение одного параметра вычисляется по значениям других параметров с помощью заданной формулы. В общем случае в формулу могут входить не только аналитические функции (сумма, произведение, степень, синус и т.п.), но и инженерные, вычисляемые численно по геометрической модели - площадь плоского контура, объем твердого тела, координаты его центра масс и пр. Формула тоже рассматривается как конструктивный элемент, у которого имеются входные атрибуты (параметры, входящие в формулу) и один выходной (параметр, который пересчитывается в соответствии с данной формулой). Операция построения, реализованная для формулы как для конструктивного элемента, выполняет непосредственный численный пересчет значения выходного параметра по значениям входных. Тем самым формула включается в общий цикл обновления модели конструктивных элементов - при изменении значения любого входного параметра значение выходного будет автоматически обновлено. Если в параметрической модели присутствует несколько формул, они не должны образовывать циклических зависимостей (система моделирования конструктивных элементов следит за этим и при необходимости делает часть формул неактивными, сообщая об этом пользователю).

Расширением понятия формулы является правило - линейная программа, состоящая из условных операторов и операторов присваивания, которая позволяет менять одновременно значения нескольких выходных параметров. Правила и формулы вместе называются отношениями базы знаний (knowledgeware relations). Другим примером отношения является проверка, которая, по сути представляет собой формулу с булевым выходным параметром. Изменение значения этого параметра с ИСТИНА на ЛОЖЬ подразумевает инициацию некоторого действия в системе CAD - выдачи окна диалога с сообщением типа: «Силовой кабель проходит слишком близко к нагреваемому элементу» или выполнения некоторого пользовательского сценария, записанного на макроязыке. Еще одним примером отношения базы знаний служит расчетная таблица (design table), которая позволяет вычислять значения своих параметров по таблице (например, созданной в Microsoft Excel), указывая номер строки, в которой записаны нужные значения. Возможность работы с формулами, проверками, правилами, расчетными таблицами и другими отношениями базы знаний в полной мере реализована в продукте CATIA V5 Knowledge Advisor.

Недостатком формул, правил и расчетных таблиц является их процедурная направленность - они позволяют вычислять значения выходных параметров (например, напряжения) по значениям входных (силе тока и сопротивлению - в соответствии с законом Ома). С помощью той же самой формулы невозможно проделать обратные операции (например, вычислить силу тока по заданному напряжению и сопротивлению) - для этого придется создать отдельные формулы. Чтобы преодолеть этот недостаток, в системе CATIA V5 был реализован новый тип отношения базы знаний, называемый множеством уравнений. Множество уравнений специфицирует отношения между параметрами декларативно, а не процедурно. Пользователь просто задает набор уравнений и неравенств, связывающих параметры, после чего указывает, какие из параметров являются выходными. Система автоматически (с использование специальных итеративных алгоритмов, которые мы разберем в следующей лекции) будет вычислять значения выходных параметров по значениям входных. Для перехода от прямой задачи к обратной достаточно отредактировать список выходных параметров, не меняя при этом никакие ранее введенные уравнения.

Параметрическая оптимизация

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

? целевого параметра (это может быть произвольный инженерный или геометрический параметр);

? указания направления оптимизации (минимизировать целевой параметр, максимизировать его, или приблизить к заданному целевому значению);

? выбора среди всех параметров модели тех, значения которых можно изменить для оптимизации цели;

? опционального указания для каждого параметра оптимизации диапазона, в рамках которого можно менять его значение;

? опционального задания списка дополнительных ограничений оптимизации;

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

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

1) пересчитать форму этого профиля в соответствии с заданными геометрическими ограничениями (для этого требуется вызвать вариационный геометрический решатель);

2) на основе изменившегося профиля выполнить новое построение твердотельного конструктивного элемента;

3) вычислить форму других конструктивных элементов, зависящих от изменившегося элемента;

4) численно вычислить массу изменившегося твердого тела, и, возможно, учесть иные инженерные отношения, связывающие целевой параметр с параметрами оптимизации.

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

? иметь строго заданный внутренний объем (0.33, 0.5, 1, 1.5, 2 л);

? иметь достаточно жесткую конструкцию (материал и толщину стенок), позволяющую сохранять форму с налитой жидкостью;

? иметь узнаваемую фирменную форму, разработанную художником-дизайнером;

? иметь определенные внешние размеры и формы для удобного складирования, а также отвечающие соображениям эргономичности (независимо от своего объема бутылка должна удобно размещаться в руке взрослого человека);

? отвечать требованиям удобства утилизации (то есть в случае отсутствия жидкости внутри сминаться до минимального объема).

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

Более подробно ознакомиться с возможностями параметрической оптимизации в САПР можно на примере продукта CATIA V5 Product Engineering Optimizer.

Экспертные знания и продукционные системы

Экспертные правила и проверки отличаются от других отношений базы знаний возможностью их связывания не с конкретными параметрами и конструктивными элементами, а со всей моделью. Более того, экспертные правила можно группировать в базы правил, которые затем можно применять к любой модели. Типичным примером экспертной проверки является: «Для всех отверстий в модели проверить, что их диаметр не превосходит 20 мм». Экспертное правило может выглядеть так: «Для всех отверстий в модели: если диаметр отверстия равен 50 мм, изменить его на 10 мм, иначе - изменить на 20 мм». Будучи примененным к конкретной геометрической модели, данное правило изменит диаметры всех отверстий (конструктивных элементов соответствующего типа) в ней.

Рассмотрим подробнее возможности работы с экспертными правилами и проверками на примере продукта CATIA V5 Knowledge Expert. С помощью этого продукта инженер может создавать экспертные правила и проверки (подобные описанным выше), группировать их в множества, а множества - в базы правил. Базу правил можно сохранить в специальном каталоге для дальнейшего использования с другими моделями. Кроме того, можно непосредственно применить базу правил, созданную в одной модели, к другой. Для описания экспертных правил и проверок можно пользоваться как специальным языком KWE Language, так и Visual Basic. Важной возможностью системы является генерация проверочного отчета (check report) в виде XMLили HTML-файла, содержащего информацию обо всех выполненных проверках.

Заметим, что набор экспертных правил и проверок образует продукционную систему (rule-based system), поэтому его реализация основана на тех же принципах, что и реализация любой экспертной системы. В частности, при этом используются алгоритмы прямого и обратного выводов, Rete-алгоритм.

Вопросы для самоконтроля

1. Опишите схему «прототип-экземпляр» для моделирования конструктивных элементов.

2. Что такое цикл обновления конструктивного элемента?

3. Для чего используются инженерные параметры?

4. Опишите типичные отношения базы знаний.

5. Что такое параметрическая оптимизация в САПР? Приведите примеры.

6. Что такое «черный ящик» в контексте параметрической оптимизации? Приведите пример цикла обновления модели при оптимизации.

7. Как в САПР задаются экспертные знания?

Дополнительная литература

Параметрическому проектированию на основе конструктивных элементов посвящена пятая глава книги [37]. Использование инженерных ограничений в системе CATIA V5 описано в работе [1].

Лекция 9. Методы поиска и оптимизации решения

Задачи удовлетворения ограничениям и оптимизации в ограничениях в общей постановке, их связь

Задача удовлетворения ограничениям представляет собой обобщение понятия системы алгебраических уравнений (или геометрических ограничений) на случай произвольных ограничений над произвольными областями значений. Многосортная сигнатура определяет набор сортов (имен областей или типов, например int, real, bool, point, line и т.п.), а также типизированные (по сортам) наборы константных, функциональных и предикатных символов (например, 0, 3.14, true, origin, sin, +, *, distance, =, <, coincidence и т.п.). Набор константных символов расширяется типизированными символами переменных из множества X.

На основе константных символов и символов переменных с помощью функциональных символов можно строить термы (например, 2.5*x + sin(3.6 + y), distance(origin, p1)), а на основе термов с помощью предикатных символов - атомарные формулы, называемые также ограничениями (например, 2*distance(origin, p1) <10*x). Моделью заданной сигнатуры является алгебраическая структура, состоящая из множеств-носителей значений каждого сорта (например, R, Z, E3), а также функций и предикатов, определенных на этих множествах. Тем самым, в модели каждый константный, функциональный и предикатный символ получает определенную математическую интерпретацию. Соответственно каждое ограничение в заданной модели либо удовлетворяется, либо нет.

Удовлетворение ограничения означает наличие такого означивания переменных (отображения символов переменных в значения из носителей их сортов), после подстановки которого в формулу, задающую ограничение, и вычисления всех термов получается набор совместных значений для предиката. Задача удовлетворения ограничениям (ЗУО, Constraint Satisfaction Problem, CSP) определяется как набор ограничений заданной сигнатуры и множества переменных, для которых требуется проверить одновременную выполнимость в заданной модели. Решение ЗУО - это означивание переменных, которое удовлетворяет всем ограничениям. В общем случае множество решений ЗУО может быть пустым или содержать больше одного элемента (означивания переменных). Задача оптимизации в ограничениях (ЗОО, Constraint Optimization Problem, COP) задается в сигнатурах, в которых для выделенного сорта s существует предикатный символ <, который в моделях данной сигнатуры трактуется как предикат полного порядка (транзитивное упорядочивание множества значений в носителе сорта s).

Для задания ЗОО необходимо задать ЗУО и указать целевую переменную выделенного сорта s. Решением ЗОО является такое решение соответствующей ЗУО, которому соответствует минимальное (в смысле интерпретации предикатного символа <) значение целевой переменной. Предикат упорядочивания на носителе сорта s позволяет также упорядочить все решения ЗУО (назовем соответствующий предикат на множестве всех означиваний «лучше»). Тем самым имеет смысл говорить о суб-оптимальном решении ЗОО, которое не является оптимальным (то есть решением ЗОО в смысле данного выше определения), но будет лучше некоторого известного решения ЗУО.

Задача безусловной оптимизации (ЗБО) задается одним ограничением вида x = f(t1, …, tn), где t1, …, tn - произвольные термы, а x - целевая переменная.

Во многих сигнатурах предикатные символы над любыми сортами могут быть преобразованы в функции над сортом real, которые достигают значения 0 только при выполнении предиката. Такие функции называются невязками, или штрафными функциями, соответствующих ограничений. Например, ограничение t1 = t2 эквивалентно t1 - t2 = 0, coincidence(p, l) эквивалентно distance (p, l) = 0 и т. п. В таком случае задача удовлетворения ограничений может быть сведена к задаче безусловной оптимизации, в которой роль единственного ограничения вида x = f(t1, …, tn) играет равенство целевой переменной сумме квадратов невязок всех ограничений.

Классификация методов поиска и оптимизации решения

Итак, зачастую задача поиска может быть сведена к задаче оптимизации путем введения штрафных функций. Поэтому целесообразно все алгоритмы разделить на два больших класса: алгоритмы редукции области поиска и алгоритмы оптимизации внутри заданной области. Кроме того, многие методы могут применяться только к задачам с непрерывными областями (представляемыми отрезками вещественной прямой) и гладко дифференцируемыми функциями, в то время как другие применяются только к задачам в дискретной постановке (где важным понятием является конечный набор соседей у любой точки в многомерном пространстве). В принципе, первые алгоритмы не являются препятствием и для дискретных задач (если у задачи есть обобщение на непрерывные области; после получения оптимального решения в непрерывных областях можно выбрать ближайшую к нему дискретную точку). И тем более дискретные алгоритмы могут без особенных проблем применяться к непрерывным задачам - достаточно лишь должным образом дискретизировать область поиска. Тем не менее, начнем мы с классических методов для непрерывных областей - методов координатного и градиентного спуска, а также метода Ньютона, а продолжим описанием методов, традиционно относимых к дискретным областям - перебора, редукции областей, ветвей и границ, модельной закалки и генетическими алгоритмами.

Метод координатного спуска

Идея метода координатного спуска проста - зафиксировав текущие значения всех переменных, кроме одной, свести задачу минимизации функции нескольких переменных к задаче минимизации функции одной переменной. Последняя задача хорошо изучена и имеет много классических методов решения - метод Фибоначчи, метод золотого сечения, метод Ньютона и другие. Более того, если после замены всех переменных, кроме одной, на константные значения и приведения подобных слагаемых целевая функция приобретает вид многочлена пятой или меньшей степени, то задача ее минимизации и вовсе имеет аналитическое решение. Метод координатного спуска (называемый также релаксацией) состоит в итеративном применении вышеописанных фиксаций и однопеременных оптимизаций для каждой переменной по очереди. После завершения цикла по всем переменным процесс начинается снова с текущей точки. Метод имеет линейную скорость сходимости в окрестности решения, поэтому не может быть использован для эффективного поиска решения с высокой точностью - для этого необходимо применять методы второго порядка.

Метод градиентного спуска

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

Метод градиентного спуска, пожалуй, - самый популярный оптимизационный алгоритм и является, например, основным инструментом оптимизационного пакета системы CATIA V5 - Product Engineering Optimizer.

Жадный алгоритм

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

Метод Ньютона

Методы второго порядка используют информацию о значениях вторых производных, выражаемую для скалярной функции нескольких переменных в виде матрицы Гессе. Данные методы имеют квадратичную скорость сходимости в окрестности решения и могут применяться для точного вычисления оптимальной точки. Классическим примером метода второго порядка является многопеременный метод Ньютона. При высокой скорости сходимости главный недостаток метода Ньютона состоит в том, что время выполнения одной итерации кубически растет с ростом размерности задачи (из-за сложности обращения матрицы Гессе), становясь неприемлемо большим (на пользовательских сценариях, требующих интерактивной реакции системы) даже для задач относительно скромной размерности - от сотни до тысячи переменных. Чтобы избежать высокой стоимости итерации, используются так называемые квазиньютоновские методы, в которых обратная матрица Гессе, найденная на предыдущем шаге, аппроксимируется в соответствии с новыми значениями.

Методы перебора

Простейшим методом поиска решения является полный перебор. На практике такой метод никогда не используется из-за своей высокой сложности - решить этим методом даже простейшие задачи за ограниченное время невозможно.

Метод хронологического перебора с откатами (backtracking) основан на понятии частичного означивания переменных. Частичное означивание подразумевает, что мы уже выбрали значения для ряда переменных из их областей определения, но другие переменные остались пока неозначенными. Важной функцией предметной области, позволяющей реализовать схему перебора с откатами, является возможность проверки валидности частичного означивания (то есть проверки, находятся ли уже означенные переменные в противоречии с каким-либо ограничением задачи). Хронологический перебор с откатами устроен следующим образом: алгоритм по порядку означивает очередную переменную очередным значением из ее области определения (тем самым и набор переменных, и область значений каждой из них предполагаются линейно упорядоченными) и проверяет валидность текущего частичного означивания. Если оно оказалось невалидным, то алгоритм пытается означить последнюю означенную переменную следующим значением из ее области определения. Если других (следующих) значений в области нет, алгоритм рекурсивно выполняет откат к предыдущим переменным до тех пор, пока не найдет переменную, у которой есть еще неиспытанные значения из ее области определения. При отсутствии таких переменных поиск считается законченным. Если переменная найдена и ей присвоено новое значение, то все следующие за ней (в смысле линейного порядка) переменные считаются неозначенными, то есть необходим перебор всех значений из их областей определения.

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

Методы редукции областей

В 1960-х гг. были изобретены методы редукции областей при переборе. Заметим для начала, что означивание переменной можно рассматривать как временное сужение области ее определения до единственного значения. В этом смысле частичное означивание ничем не отличается от начальной постановки задачи - у нас есть переменные, области их значений (некоторые из них, возможно, содержат единственный элемент) и набор ограничений. Требуется проверить, нет ли в каких-то из областей заведомо лишних значений. Предположим, что решаемая задача содержит в числе прочих три переменные x, y, и z с областями значений Dx = {0, 1, 2}, Dy = {3, 4, 5}, Dz = {6, 7, 8}, связанные ограничением x + y = z. Понятно, что значение 0 для переменной x несовместно ни с какими значениями из указанных областей для переменных y и z. Аналогично, переменная y не может быть означена значением 3, а переменная z - значением 8. Таким образом, без всякого перебора (рассмотрев только одно ограничение задачи) мы сократили области значений переменных x, y и z до Dx = {1, 2}, Dy = {4, 5}, Dz = {6, 7}. Подобный метод называется достижением совместности областей с ограничением. Сложность метода определяется арностью ограничения (количеством переменных, которые оно связывает) и размером областей значений. В большинстве реальных приложений ограничения бывают унарными, бинарными и тернарными, поэтому на практике сложность можно считать линейно, квадратично или кубически зависимой от размера максимальной области.

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

Настоящий алгоритм сформулирован впервые Маквортом (Macworth) в 1977 г. для случая дискретных областей и бинарных ограничений, под названием AC-3. Однако уже в 1981 г. отечественный математик А. Нариньяни, не знакомый в то время с работой Макворта, предложил значительно более общую концепцию, названную им недоопределенными моделями. Суть концепции в том, что область переменной трактуется как ее недоопределенное значение, которое может доопределиться во время работы алгоритма. Области могут быть как дискретными, так и непрерывными. Последние представляются парой вещественных чисел - нижней и верхней границей соответствующего отрезка вещественной прямой. Для редукции таких интер- вальных областей в соответствии с алгебраическими ограничениями можно использовать правила интервальной арифметики. Открытие Нариньяни оказалось незамеченным на Западе и было «переоткрыто» в начале 1990-х гг. под названием «интервальные ограничения». (Интервальные ограничения с тех пор ушли вперед - был предложен ряд специализированных методов, позволяющих более эффективно сужать интервалы).

Подход Нариньяни, однако, предполагает использование произвольных областей (дискретных, непрерывных, составных - таких как структуры, массивы и множества) в рамках одного алгоритма. В 1995 г. Д. Ушаков показал, при каких условиях аппарат недоопределенных моделей Нариньяни является корректным, то есть редуцированные области определяются однозначно и не зависят от порядка рассмотрения ограничений и переменных во время работы алгоритма.

Недоопределенные модели в комбинации с методами перебора, основанными на делении областей переменных (например, на бисекции вещественного интервала), представляют собой мощный аппарат для решения смешанных задач (содержащих как целочисленные, так и вещественные переменные), который по своей простоте и эффективности превосходит иные известные подходы. Кроме того, на основе той же технологии можно проводить оптимизацию (например, используя описанную ниже схему метода ветвей и границ). Конечно, как и любая универсальная технология, метод недоопределенных моделей проигрывает большинству специализированных алгоритмов (в частности, решение систем алгебраических уравнений над полем вещественных чисел лучше выполнять методом Ньютона). Однако в тех случаях, когда необходимо не только найти одно из решений задачи, но и эффективно оценить область, в которой лежат все решения, альтернативы недоопределенным моделям нет. Следует также отметить, что на основе этого аппарата в системе CATIA V5 было реализовано отношение базы знаний Set Of Equations, а также новый метод оптимизации (названный Constraint Satisfaction) в рамках продукта CATIA V5 Product Engineering Optimizer.

Метод ветвей и границ

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

Алгоритм модельной закалки

Алгоритм модельный закалки (simulated annealing) является типичным алгоритмом стохастического локального поиска. Исследуя все соседние конфигурации (то есть означивания переменных, близкие к текущему), в данном случае мы выбираем не ту, которая дает наилучшее значение целевой функции (как это делает жадный алгоритм), а в зависимости от датчика псевдослучайных чисел можем выбрать любую соседнюю конфигурацию. Однако вероятность выбора конфигурации, дающей лучшее значение целевой функции, больше, чем какой-либо другой конфигурации. Более того, с увеличением числа итераций вероятность выбрать конфигурацию, не являющуюся лучшей среди всех соседей, уменьшается. Более точно, эта вероятность для конфигурации S, соседней с S, равна , где T является настраиваемым параметром алгоритма, называемым «температурой». Этот параметр вначале устанавливается в некоторое большое значение и понижается каждый раз после серии итераций, когда падает темп снижения целевой функции при переходе от текущей к следующей конфигурации. Понятно, что при уменьшении температуры вероятность выбрать соседнюю конфигурацию, ухудшающую текущую, падает. Данный алгоритм является прямым аналогом математического моделирования физического процесса закалки (отжига) твердого тела, при котором изделие сначала нагревается до некоторой высокой температуры, которая затем скачкообразно снижается (позволяя системе достигать термодинамического равновесия на каждом шаге).

Алгоритм модельной закалки реализован во многих системах САПР, включающих средства оптимизации, например, в продукте CATIA V5 Product Engineering Optimizer. Кроме того, имеются успешные примеры использования алгоритма модельной закалки для решения таких задач, как оптимальная компоновка деталей на плоском листе заготовок, распознавание образов, оптимизация маршрутов, проектирование СБИС и др.

Генетические алгоритмы

Генетические алгоритмы, относящиеся к группе алгоритмов стохастического поиска, моделируют на виртуальном уровне процесс эволюции биологической жизни. В таких алгоритмах каждое означивание переменных трактуется как живой организм (особь) со своей уникальной структурой хромосом. «Структура хромосом» в данном случае представляется в виде набора генов - числа фиксированной длины, записанного в двоичном виде. Таким образом, для работы с генетическими алгоритмами задачи с непрерывными областями должны быть дискретизированы, причем отображение множества дискретных означиваний в «хромосомы» должно быть биекцией. Набор конкретных особей образует популяцию (число особей в популяции является настраиваемым параметром). Работа генетического алгоритма состоит в том, что на каждом шаге по текущей популяции порождается следующая. Процесс останавливается, когда большинство особей в популяции становятся похожими друг на друга. Новая популяция порождается предыдущей с помощью процесса, называемого кроссовером. (Из школьного курса общей биологии известно, что в процессе мейоза при конъюгации гомологичных хромосом происходит обмен перекрестными участками гамет, который именуют английским словом crossover.) Виртуальный кроссовер в данном случае состоит в том, что две родительские хромосомы разбиваются в произвольном месте на части и обмениваются своими «хвостами», в результате чего получаются две новые особи. Согласно законам эволюции, более приспособленные организмы получают больше шансов произвести потомство. В терминах генетического алгоритма «более приспособленный организм» означает «означивание переменных, дающее лучшее значение целевой функции». Закон эволюции моделируется датчиком псевдослучайных чисел, при этом вероятность быть выбранным прямо зависит от значения целевой функции на данном означивании. Чтобы бороться с традиционной для алгоритмов локальной оптимизации проблемы сваливания в локальный минимум, генетические алгоритмы реализуют еще один прием, подсмотренный у природы, - возможность мутации. С некоторой небольшой вероятностью каждый организм может мутировать, то есть изменить свои гены. Реализуется это опять же с помощью датчика псевдослучайных чисел и инвертирования некоторых разрядов в двоичной записи числа, кодирующего означивание переменных.

Вопросы для самоконтроля

1. Дайте общее определение задаче удовлетворения ограничениям

2. Дайте общее определение задачам условной и безусловной оптимизации

3. Как можно классифицировать методы поиска и оптимизации решения?

4. Опишите метод координатного и градиентного спуска в применении к непрерывным и дискретным областям

5. Опишите метод Ньютона для решения оптимизационных задач. Что такое квазиньютоновские методы?

6. В чем отличие хронологического и нехронологических методов перебора? Приведите примеры

7. Для чего используются методы редукции областей? Опишите их

8. Опишите метод ветвей и границ. Каковы его достоинства и недостатки?

9. Опишите метод модельной закалки. Каковы области его применения?

10. Опишите общую схему работы генетического алгоритма

Дополнительная литература

Обзор методов оптимизации, применяемый в САПР, можно найти в девятой главе книги [8]. Методы редукции областей и перебора классифицируются в [15]. Использование интервальных ограничений при работе с «черным ящикам» описано в работах [13] и [9].

Лекция 10. Инженерный анализ кинематики

Прямая и обратная задачи кинематики механизмов

Кинематика - область механики, изучающая движения недеформируемых твердых тел в геометрическом смысле - без учета массы тел и действующих на них сил. Анализ кинематики механизмов является важной частью систем автоматизации проектирования. Здесь механизмом (манипулятором, роботом) мы будем называть систему тел, предназначенную для преобразования движения одного или нескольких тел в требуемое движение других твердых тел. Если в преобразовании движения участвуют жидкие или газообразные тела, то механизм называется гидравлическим или пневматическим (такие механизмы мы рассматривать не будем).

Группа неподвижно соединенных твердых тел или отдельное твердое тело называется звеном. Подвижное соединение звеньев называется кинематической парой (kinematics joint). Каждая кинематическая пара моделирует контакт звеньев и, следовательно, накладывает ряд ограничений на их взаимное положение (то есть, оставляя только некоторые из шести степеней свободы твердого тела в трехмерном пространстве).

Управлением механизмом называется задание закона движения одного или нескольких звеньев (такие звенья называются ведущими), чтобы движения остальных звеньев были целесообразными (с точки зрения предназначения механизма) относительно неподвижных звеньев (стоек). Количество ведущих звеньев определяется степенью подвижности механизма.

Прямая задача кинематики состоит в определении положения каждого звена в каждый момент времени в зависимости от заданного управления механизмом. Обратная задача кинематики состоит в вычислении положения ведущих звеньев для достижения заданного положения ведомых.

Виды кинематических пар

Рассмотрим типичные кинематические пары и задаваемые ими степени свободы на примере продукта CATIA V5 Digital Mock-Up Kinematics Simulator (табл. 3).

Таблица 3

Кинематическая пара

Иллюстрация

Степени свободы

Управление

Вращательная пара

Одно вращение

Угол

Цилиндрическая пара

Одно вращение

Угол и длина и одно смещение

Призматическая пара

Одно смещение

Длина

Сферическая пара

Три вращения

Планарная пара

Два смещения - и одно вращение

Жесткая пара

Нет степеней свободы

Прокатная кривая

Одно вращение

Длина

Пара типа «точка - кривая»

Пара и одно смещение

Длина

Скользящая кривая пара

одно смещение Три вращения

Пара типа «точка - поверхность»

Два вращения и одно смещение

-

Универсальная пара

Два смещения и три вращения

Зубчатая пара

Одно вращение

Один из углов

Реечная пара

Одно вращение

Длина или угол

Кабельная пара

Одно вращение

Одна из длин

Винтовая пара равных

Одно вращени или смещение угловых скоростей

Угол или длина

Моделирование механизмов

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

Геометрические измерения

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

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

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

Моделирование задачи кинематики

Положение каждого звена (жесткого множества геометрических элементов) в трехмерном пространстве описывается шестью или более вещественными параметрами (в зависимости от способа параметризации трансформации - углы Эйлера, экспоненциальная параметризация, кватернионы), дополнительные переменные используются для моделирования управления кинематическими парами. Как правило, одни переменные могут принимать значения внутри некоторого замкнутого интервала (например, от 0 до р), а другие - пробегать всю вещественную прямую. Таким образом, положение механизма полностью описывается вектором из n значений. Соответствующее подпространство Rn в этом случае называется конфигурационным пространством. Для моделирования кинематических аспектов данный вектор заменяется вектор-функцией p(t), p: Rn R, где t пробегает значения от 0 до 1. При этом положение звеньев должно удовлетворять наложенным кинематическим связям, описываемым системой из m уравнений C: Rn Rm. Положение, описываемое в конфигурационном пространстве точкой p(0), соответствует начальному положению звеньев механизма. Положение p(1) - целевая конфигурация, которую необходимо найти для решения прямой или обратной задачи кинематики. В каждый момент времени должно выполняться тождество


Подобные документы

  • Понятие и функции систем автоматизированного проектирования (САПР), принципы их создания и классификация. Проектирующие и обслуживающие подсистемы САПР. Требования к компонентам программного обеспечения. Этапы автоматизации процессов на предприятии.

    реферат [19,8 K], добавлен 09.09.2015

  • Программное обеспечение — неотъемлемая часть компьютерной системы, логическое продолжение технических средств. Типология прикладного программного обеспечения. Интегрированные пакеты программ. Общая характеристика системы автоматизации проектных работ.

    курсовая работа [39,2 K], добавлен 16.01.2011

  • Анализ тенденций развития информационных технологий. Назначение и цели применения систем автоматизированного проектирования на основе системного подхода. Методы обеспечения автоматизации выполнения проектных работ на примере ЗАО "ПКП "Теплый дом".

    курсовая работа [210,0 K], добавлен 11.09.2010

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

    презентация [124,1 K], добавлен 16.11.2014

  • Использование пакета прикладных программ CADElectro для автоматизации проектных работ при создании электрических систем управления на базе контактной аппаратуры, программируемых контроллеров. Архив технической документации, управление данными об изделиях.

    реферат [48,8 K], добавлен 04.04.2013

  • Требования, предъявляемые к техническому обеспечению систем автоматизированного проектирования. Вычислительные сети; эталонная модель взаимосвязи открытых систем. Сетевое оборудование рабочих мест в САПР. Методы доступа в локальных вычислительных сетях.

    презентация [1,1 M], добавлен 26.12.2013

  • Классификация проектных процедур. История синтеза вычислительной техники и инженерного проектирования. Функции систем автоматизированного проектирования, их программное обеспечение. Особенности применения трехмерных сканеров, манипуляторов и принтеров.

    реферат [343,0 K], добавлен 25.12.2012

  • Структура и классификация систем автоматизированного проектирования. Виды обеспечения САПР. Описание систем тяжелого, среднего и легкого классов. Состав и функциональное назначение программного обеспечения, основные принципы его проектирования в САПР.

    курсовая работа [37,7 K], добавлен 18.07.2012

  • Определение и характеристика цели автоматизации проектирования. Ознакомление с достоинствами процесса внутреннего шлифования. Исследование и анализ сущности САПР – системы, объединяющей технические средства, математическое и программное обеспечение.

    курсовая работа [949,8 K], добавлен 02.06.2017

  • Предпосылки внедрения систем автоматизированного проектирования. Условная классификация САПР. Анализ программ, которые позволяют решать инженерные задачи. Система управления жизненным циклом продукта - Product Lifecycle Management, ее преимущества.

    контрольная работа [1,3 M], добавлен 26.09.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.