Применение методов толерантной трансляции для разработки
универсальных конверторов данных
Д.т.н. В. В. Гольдин, д.т.н. Журавский, к. т. н. П. А. Правильщиков
Одной из главных задач внедрения CALS-технологий на разрабатывающих предприятиях является
освоение PDM-системы, работа которой
основана на формировании и использовании ба-зы данных, содержащей разнородную информацию
о создаваемом изделии на протяжении его жизненного цикла. Основными источниками
этой информации являются компьютерных системы проектирования (CAD-системы), подготовки производства (CAM-системы), инженерного анализа (CAE-системы), управления ресурсами предприятия (ERP-системы), а также, возможно, другие приложения.
За время жизненного цикла таких
изделий, как сложные радиоэлектронные средства (РЭС) происходит смена нескольких поколений CAD-, CAM-, CAE- и ERP-систем,
каждой из которых присущи, как правило, собственные форматы данных. В то же
время PDM-системы требуют для загрузки в базу данных представления
информации в унифицированном виде, соответствующем требованиям ГОСТ Р ИСО
10303-21 (так называемые форматы обменного файла). Таким образом, одним из
условий внедрения PDM-систем является разработка
конверторов данных из форматов конкретных компьютерных систем, участвующих в
создании РЭС, в стандартный формат.
Как известно [1], для решения названных проблем возможны следующие
подходы. Для каждой пары компьютерных систем создаются два
конвертора для преобразования из формата данных одной системы в формат другой.
В этом случае потребуется K конверторов: K = N·(N - 1), где N число различных систем. Пусть Cg,i обозначает конвертор, осуществляющий конвертирование
из формата Fg в формат
Fi. Тогда g = , а i = - это число
форматов, в которые может быть осуществлено конвертирование. На рис. 1: g = = и i =
= , и, следовательно, число K требуемых конверторов равно 4×3 = 12. Другой
подход состоит в использовании
единого стандартного формата.
В
этом случае число K
различных конверторов может быть сокращено: K = 2N. Пусть, например, в качестве общего формата данных рассматривается
формат Fcf обменного файла стандарта ГОСТ Р ИСО 10303-21. Тогда необходим один конвертора Сg,cf , который
может конвертировать формат Fg в формат Fcf, и ещё один
конвертор С cf,g для обратного конвертирования из Fcf в Fg. Следовательно,
необходимы два конвертора: прямой и обратный. Так как при наличии
4-х компьютерных систем g
= = , то K = 2N = 8
– см. рис. 2.
Таким
образом, в этом случае число K необходимых
конверторов сокращается до 2N штук.
Наконец, возможен и третий случай:
создание и использование универсального конвертора. В качестве такого
универсального конвертора предлагается конвертер, основанный на толерантной
трансляции. Принципы и правила толерантной трансляции применительно
к выводу новых виртуальных алгоритмов построения (генерации) тестов для
объектов диагностирования разных классов изложены в [2]. Ниже приводится их
изложение применительно к конверторам форматов данных. Повторим, что в этом
случае нам понадобится всего один универсальный конвертор.
Одним из основных требований,
предъявляемых к обычным «языковым» трансляторам, является требование
точности трансляции: при выполнении вычислений для одних и тех же данных оба алгоритма,
записанные на разных формализованных языках, должны давать один и тот же
результат. Это значит, что два формальных описания одного и того же алгоритма,
записанные на разных языках (т.е. два текста программ), должны быть эквивалентны
и, следовательно, вполне заменяемы: в основе «языковых»
трансляторов лежит отношение эквивалентности. Программа конвертора, по
сути, является некоторым частным (вырожденным) случаем программмы транслятора.
Она осуществляет конвертирование или трансляцию данных из входного формата
в данные в выходном формате. Поэтому принципы толерантной трансляции
могут быть применены и к получению новых программ конверторов, а точнее для создания
толерантного конвертора.
В отличие от эквивалентной трансляции,
основанной на отношении эквивалентности, толерантная трансляция основана
на бинарном отношении толерантности [3,
4]. Отношение то-лерантности (или
просто толерантность) уточняет интуитивное понятие сходства. Иначе говоря, бинарное отношение толерантности,
обладая свойствами рефлексивности и симметричности, является
математической экспликацией понятия сходства. Толерантность выражает идею «ослабленного подобия»:
похожие на одно и то же не обязательно похожи друг на друга. Учитывая свойства отношения толерантности и
свойства отношения эквивалентности (рефлексивность, симметричность
и транзитивность) можно показать, что эквивалентность является
всего лишь частным случаем отношения толерантности [4]. Исходя из
этого, можно показать, что и обычная (эквивалентная) трансляция
является частным случаем толерантной трансляции [2]. Одинаковость
объектов, их эквивалентность означает полную взаимозаменяемость. Сходство
объектов, их толерантность означает частичную взаимозаменяемость. Частичная
взаимозаменяемость - это возможность замены
с некоторыми (допустимыми в данной ситуации) потерями. Другими словами,
частичная взаимозаменяемость допустима с некоторым риском.
Суть толерантной трансляции
состоит в том, что тексты программ различных конверторов для конвертирования
разных форматов данных обладают определённым сходством. Сходство текстов
программ может быть эксплицируемо отношением толерантности. Последнее,
будучи на первый взгляд достаточно абстрактным и далёким от инженерной практики
математическим отношением, может быть использовано в прагматических целях (в
данном случае для экономии числа конверторов). Упрощённо идею толерантной
трансляции конверторов можно проил-люстрировать на примере класса толерантных
слов - класса толерантности. Толерантными словами обычно называют слова,
отличающиеся при написании не более чем в одной букве [4]:
Класс |
||||
С |
С |
С |
С |
С |
Т |
Т |
Т |
Т |
Т |
О |
О |
О |
0 |
О |
Г |
Л |
Н |
К |
П |
Заметим, что для написания шести толерантных
слов понадобилось всего 9 различных букв, тогда как для 6 различных (не
толерантных) слов такой же длины понадобилось бы 24 буквы.
Толерантная трансляция слов |
||||||||
С |
С |
С |
С |
С |
||||
Т |
T
-тран |
Т |
T
-тран |
Т |
T -тран |
Т |
T
-тран |
Т |
О |
О |
О |
0 |
О |
||||
Г |
Л |
Н |
К |
П |
Принципы толерантной трансляции можно
проиллюстрировать не на классе
толерантности для слов, где любая пара (wi, wj) слов толерантна (это и показано выше), а на
некотором множестве слов, на котором задано отношение толерантности:
С |
С |
С |
С |
С |
П |
К |
Л |
Т |
Т |
Т |
Р |
Р |
Р |
О |
О |
О |
О |
О |
О |
О |
Н |
Н |
Г |
К |
К |
К |
К |
Если вам задано слово «слон», то каждый раз, когда вы подбираете слово,
толерантное этому слову, а затем следующему, то вы выполняете «толерантную» трансляцию:
T –трансляция множества
слов |
||||||||||||
С |
С |
С |
С |
С |
П |
К |
||||||
Л |
T
–тран |
Т |
T
-тран |
Т |
T
-тран |
Т |
T
-тран |
Р |
T
-тран |
Р |
T
-тран |
Р |
О |
О |
О |
О |
О |
О |
О |
||||||
Н |
Н |
Г |
К |
К |
К |
К |
Толерантные программы конверторов можно определить так же, как толерантные
слова: текст толерантных программ, состоящих из операторов (команд или
инструкций), различается не более чем в одном операторе. Тогда можно привести класс
толерантных программ конверторов:
Класс толерантных программ конверторов |
||||
j1 |
j1 |
j1 |
j1 |
j1 |
j2 |
j2 |
j2 |
j2 |
j2 |
j3 |
j3 |
j3 |
j3 |
j3 |
j4 |
j5 |
j6 |
j7 |
j8 |
В этом случае для написания пяти конверторов
потребуется только 8 разных операторов (так же, как в классе толерантных слов 8
разных букв), поскольку тексты конверторов в последнем примере отличаются
операторами только в четвёртой строке. Здесь в качестве оператора может
выступать отдельный блок (часть текста) конвертора. Заметим, что этот блок не
обязательно на-ходится в конце текста программы. Возможно, он находится в центре
текста программы конвертора точно так же, как буквы множества толерантных слов
из приведённого выше примера.
Теперь следует рассмотреть принципы толерантной
трансляции [2]: принцип соответствия, принцип законосообразности,
принцип иерархии толерантности и принцип сохранения (непрерывности)
предиката. Принцип соответствия утверждает, что для непротиворечивой
и правильной толерантной трансляции из входного формата Fg,вх
в выходной формат Fg,вых необходимо:
" εi,вх │
εi,вх
Î Fg,вх & εi,вх ≠
έi $ εi,вых │
εi,вых
Î Fg,вых & εi,вых ≠
έi. (1) |
Запись принципа соответствия в виде
выражения (1) означает, для всякого непротиворечивого элемента εi,вх входного формата Fg,вх данных существует непротиворечивый
элемент εi,вых выходного формата Fg,вых данных. Принцип законосообразности утверждает,
что в основе функционирования алгоритма (в данном случае имеется в виду алгоритм конвертирования) лежит некоторый закон
(принцип или правило). Это правило является базовым
принципом данного класса алгоритмов. Для конверторов, когда mi,вых ≥
mi,вх, это правило относительно
просто:
|
R |
|
" εi,вх │
εi,вх
Î Fg,вх & εi,вх ≠
έi Þ εi,вых │
εi,вых
Î Fg,вых & εi,вых ≠
έi. (2) |
Запись
принципа законосообразности в форме (2) отображает процесс
конвертирования и означает, что всякий
непротиворечивый элемент εi,вх входного формата Fg,вх данных, для которого
выполняется (3), в соответствии с правилами R будет
конвертирован в непротиворечивый элемент εi,вых выходного
формата Fg,вых данных.
Принцип иерархии толерантности (сходства) утверждает, что для сложных
программ, имею-щих иерархическую структуру и состоящих из многих компонент,
толерантность может быть выражена как в целом, так и на уровне их компонент,
модулей и команд. Принцип иерархии сходства в определённой степени
позволяет управлять толерантной трансляцией. Кроме уже приведённых выше
трёх принципов T –трансляции следует использовать принцип сохранения (непрерывности)
предиката (ПСП). Обычным примером, на котором иллюстрируется этот принцип,
является доопределение арифметических операций (например, сложения),
определённых первоначально для натуральных чисел, на область целых (в том числе
и отрицательных) чисел. –см. [2].
Выше отмечалось, что конверторы
являются “близкими родственниками” трансляторов. Среди трансляторов
имеются и так называемые синтаксически управляемые трансляторы.
Синтаксически управляемый транслятор - это транслятор, в котором
синтаксический анализ исходной программы осуществляется на основе формального
описания синтаксиса входного языка. В связи с этим алгоритм анализа в синтаксически
управляемом трансляторе может обслуживать трансляцию с ряда языков,
принадлежащих некоторому классу. Предлагаемый здесь толерантный конвертор
также способен осуществлять аналогичное конвертирование ряд форматов данных,
принадлежащих некоторому классу. Однако он способен реализовать конвертирование
форматов данных даже в том случае, когда формального описания входного формата Fg,вх
данных не существует. Однако должно быть установлено (или известно заранее),
что конвертор, осуществляющий конвертирование с заданного входного формата
Fg,вх
в любой другой заданный выходной формат Fg,вых данных, относится к некоторому классу
толерантности. Если дополнительно известно формальное описание входного
и выходного формата данных, то эта информация позволяет упростить
перенастройку и подготовку толерантного конвертора к конвертированию
заданного формата в промежуточный формат Fcf обменного файла, а затем и в
формат Fg,вых.
Подчеркнём
ещё раз, что толерантный конвертор должен реализовать трансляцию по
схеме:
Fg,вх Þ Fcf Þ Fg,вых.
Исходя из этого, можно представить
структуру толерантного конвертора схемой, представленной на рис. 3.
Литература
1. Колчин А.Ф., Овсянников М.В., Стрекалов
А.Ф., Сумароков С.В. Управление
жизненным
циклом продукции. М.: Анахарсис,
2002. - 304 с.
2. Правильщиков П.А. Элементы
диагностической теории толерантности и подобия.
// Автоматика и телемеханика, 1992,
№ 10, стр. 141-169.
3. Зиман Э., Бьюнеман О. Толерантные
пространства и мозг.
/ В сб. “На пути к теоретической
биологии”, М.: Мир, 1970.
4. Шрейдер Ю. А. Равенство,
сходство, порядок.
М.: Наука. Гл. ред. физико-математической
литературы, 1971 - 256 с.