Конструктивная алгоритмизация

32. Цветков В.Я. Язык информатики // Успехи современного естествознания. - 2014. № 7. C.129-133.

33. Тоноян Л.Г. Основы теории классификации в трактатах Аристотеля // Логико-философские штудии. 2012. № 6. С. 28-36.

The use of patterns for the design of information systems Mordvinov V.A., Professor, Ph.D.

He graduated^ from the Moscow State Technical University

The aim of the work is the study ofpatterns as a tool for designing information systems. The article analyzes the methods of designing information systems. problems of designing and operating information systems are described in the article. The article explores patterns as an objective phenomenon. The article shows the relationship ofpatterns to the quality of information systems. The article reveals the content of the patterns that are important for ensuring the quality of the information system. The article describes the advantages of applying patterns. The article shows that the use of patterns should be preceded by the study of the information situation in which the projected information system is located.

Keywords: information systems, software, design, design patterns, information situation, quality.

УДК 004.02; 004.03; 004.8; 52-38; 528

КОНСТРУКТИВНАЯ АЛГОРИТМИЗАЦИЯ

Алексей Владимирович Буравцев, зам. директора Института информационный технологий и автоматизированного проектирования

E-mail: misterj@mail.ru Московский технологический университет (МИРЭА) https://www.mirea.ru/

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

Ключевые слова: алгоритм, качество, информационная конструкция, концептуальное программирование, информационное моделирование, конструктивная алгоритмизация.

Введение. Алгоритмы, которые применяют для обработки информации в сложных системах, принято делить на иерархические и не иерархические. Это разделение происходит по качественным характеристикам данных, полученных в результате обработки. Как правило, данные группируют и формируют некие кластеры данных по качественным признакам. Иерархические алгоритмы на выходе задают некую иерархию данных или кластеров данных. Неиерархические алгоритмы это такие, которые не создают иерархию в процессе обработки и дальнейший анализ может ее создать. Иерархические алгоритмы [1] включают две группы: агломеративные алгоритмы и дивизим-

ные алгоритмы. Неиерархические алгоритмы включают следующие группы: по методу, итеративные [2], модельные [3], концептуальные [4], сетевые [5]. Обращает на себя группа концептуальных алгоритмов. Она дает основание задуматься о концептуальной алгоритмизации. Одним из подходов к такой алгоритмизации является конструктивная алгоритмизация.

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

Концептуальное программирование описано Э.Х. Тыугу [6]. Это программирование предполагает оперирование концептами, описанными в терминах предметной области. Особенностями концептуального программирования являются использование языка предметной области и семантических моделей с целью накопления знаний о решаемых задачах.

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

В современно трактовке концептуальное программирование рассматривается как парадигма программирования, в которой основное внимание уделяется концепциям и информационным отношениям между ними. Второе значение, это программирование уделяет тому, как концепции переводятся в представления кодового пространства. Этот подход был введен в 2001 году Кристофом де Динечиным с языком программирования XL. Концептуальное программирование использует метрики и псевдометрики для оценки качества модели и кода кода. Они называются псевдометриками, потому что они связывают пространство концепций и пространство кода с семантикой и пониманием того, что пространство понятий не может быть формализовано достаточно строго для определения реальной метрики. Псевдо-метрики программирования включают характеристики соответствия и несоответствия:

Синтаксическое несоответствия между концепцией и синтаксисом, используемым для ее представления. Например, все операторы, не имеющие эквивалента в пространстве понятий, являются несоответствием.

Семантическое несоответствие между ожидаемым значением или поведением концепции и ее фактическим значением или поведением в коде. Например, деление на ноль является формой семантического шума.

Полоса пропускания измеряет, сколько пространства концепций может представлять собой данная конструкция кода.

Отношение сигнал / шум измеряет, какая часть пространства кода используется для представления фактических концепций, в отличие от информации о реализации.

Информационное соответствие [7] как псевдометрика имеет много реализаций. Оно, например, характеризует степень соответствия информационного содержания

концепта и его реализации в алгоритме.

Качество алгоритмического обеспечения. Одной из мотиваций разработки конструктивной алгоритмизации является стремление повышения качества алгоритма и программного продукта. Алгоритмическое обеспечение входит в программное обеспечение. Его качество должно соответствовать требованиям к качеству программного обеспечения. В соответствии с ГОСТ Р ИСО/МЭК 25010-2015 (ISO/IEC 25010:2011) оценка качества программного обеспечения и информационных систем осуществляются по общим принципам. Очевидно, что этот стандарт может быть использован для оценки качества алгоритма, который является составной частью программного обеспечения. При разработке программного обеспечения применяют три модели качества модель самого алгоритма и модель применения алгоритма, модель качества данных. Эти модели связаны целями качества рис.1.

На рис.1 отмечено наличие информационного взаимодействия [8] между средой и моделью использования алгоритма и программы. Гибкость и адаптивность задает алгоритм, поэтому такое взаимодействие направлено на алгоритм. При отсутствии взаимодействия алгоритм считают жестким и не адаптивным. Что снижает качество продукта и системы, которая его использует.

Рис.1. Цели моделей качества алгоритма.

Модель качества алгоритма [9] включает восемь характеристик, некоторые из которых, в свою очередь, подразделены на подхарактеристики. Характеристики относятся к статическим и динамическим свойствам программного обеспечения и вычислительных систем. Модель применима как к компьютерным системам, так и к программным продуктам

Модель качества использования алгоритма [9] включает пять характеристик. Эти характеристики касаются результата взаимодействия при использовании алгоритма в определенных условиях.

Характеристики, определяемые обеими моделями, применимы к любым программным продуктам и компьютерным системам. Характеристики и подхарактеристи-ки обеспечивают единую терминологию для определения спецификации, измерения и оценки качества систем и программного обеспечения. Модели предоставляют также множество характеристик качества, с которыми для полноты картины можно сравнить заявленные требования к качеству. На рис.2 приведена общая структура качества алгоритма по обеим моделям, которая показывает связь характеристик, подхарактеристик и свойств качества.

В качестве основных характеристик качества алгоритмов применяют следующие: функциональная пригодность, уровень производительности, удобство пользования, надежность и защищенность, уровень производительности, надежность и защищенность. Отметим следующие свойства качества [9], важные для дальнейших рассуждений.

Качество алгоритма

Характеристика 1

Характеристика 2

Подхарактеристика 1 Подхарактеристика 2 Подхарактеристика п

Свойство 1

Свойство 2

Свойство m

Рис.2. Структура качества алгоритма. Гибкость (flexibility): Степень, в которой программа или алгоритм могут быть

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

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

Гибкость может быть определена либо как степень, до которой продукт может быть использован пользователями непредусмотренного типа для достижения дополнительных целей с эффективностью, результативностью, свободой от риска и в соответствии с требованиями при дополнительных условиях использования, либо как возможность изменения для поддержки адаптации к новым типам пользователей, задач и сред, а также пригодности для индивидуализации, как это определено в ИСО 9241-110

Функциональная полнота (functional completeness): Степень покрытия совокупностью функций всех определенных задач и целей пользователя

Потенциальные возможности (capacity): Степень соответствия требованиям предельных значений параметров продукта или системы

Совместимость (compatibility): Способность продукта, системы или компонента обмениваться информацией с другими продуктами, системами или компонентами, и/или выполнять требуемые функции при совместном использовании одних и тех же аппаратных средств или программной среды

Сосуществование (co-existence): Способность продукта совместно функционировать с другими независимыми продуктами в общей среде с разделением общих ресурсов и без отрицательного влияния на любой другой продукт

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

Возможность многократного использования (reusability): Степень, в которой актив может быть использован в нескольких системах или в создании других активов.

Модифицируемость (modifiability): Степень простоты эффективного и рационального изменения продукта или системы без добавления дефектов и снижения качества продукта

Переносимость, мобильность (portability): Степень простоты эффективного и рационального переноса системы, продукта или компонента из одной среды (аппаратных средств, программного обеспечения, операционных условий или условий использова-

ния) в другую

Подразумеваемые потребности (implied needs): Потребности, которые могли быть не сформулированы, однако являются фактическими потребностями.

Все перечисленные свойства качества алгоритма исключаются при жесткой алгоритмизации. Все перечисленные свойства проявляются при использовании конструктивной алгоритмизации

Полезность алгоритмизации на примере концептуальных алгоритмов. Одним из представителей концептуальных алгоритмов является алгоритм Cobweb [10-12]. В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, P(Aj = щ | Ck) - это условная вероятность, с которой свойство Aj, принимает значение Uj, если объект относится к категории Ck. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.

Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются. Полезность категории определяется формулой

CU = X X X P(A = Uj | Ck)P(Ck | A = Uj)P(A = иj) k i j

Значения суммируются по всем категориям Ck, всем свойствам Aj и всем значениям свойств Uij.

Значение P(Aj = Uj | Ck) называется предсказуемостью (predictability). Это вероятность того, что объект, для которого свойство Aj- принимает значение Uij, относится к категории Ck. Чем выше это значение, тем вероятнее, что свойства двух объектов, отнесенных к одной категории, имеют одинаковые значения.

Величина P(Ck | A = U;j) называется предиктивностью (predictiveness). Это вероятность того, что для объектов из категории Ck свойство Aj принимает значение Uij. Чем больше эта величина, тем менее вероятно, что для объектов, не относящихся к данной категории, это свойство будет принимать указанное значение. Значение P(A = Uij) - это весовой коэффициент, усиливающий влияние наиболее распространенных свойств. Благодаря совместному учету этих значений высокая полезность категории означает высокую вероятность того, что объекты из одной категории обладают одинаковыми свойствами, и низкую вероятность наличия этих свойств у объектов из других категорий.

Принципы конструктивной алгоритмизации. Понятие конструктивная алгоритмизация связано с понятием информационная конструкция. Информационная конструкция [13-15] как концептуальная модель показана на рис.3. Информационная конструкция (ИК) является переходным звеном между концепциями и моделями. Информационная конструкция может соотноситься с моделями данных и моделями объектов. Трансформация ИК в модель осуществляется за счет введения фактических параметров. В программировании аналогом информационной конструкции является объектный модуль, который содержит формальные параметры. При подстановке этого модуля в программы формальные параметры заменяются на фактические параметры и модуль преобразуется в подпрограмму. Таким образом? подстановка фактических параметров

в информационную конструкцию может преобразовать ИК объекта или ИК данных в модель объекта или модель данных.

Концепции

Информационная конструкция

Модель объекта

Фактические данные

Фактические параметры и

Информационная ситуация

Фактические параметры

Модели объектов

Модели данных

Модель данных

Формальная система

Информационные единицы

Рис.3. Информационная конструкция как концептуальная модель.

Информационная конструкция может описывать и более сложные комплексы типа информационной ситуации [16]. В этом случае информационная конструкция строится на применении информационных единиц [17, 18]. Применение информационных единиц делает ИК еще более системной. В единой системе информационных единиц описывают модели объектов, модели отношений и модели данных. Под моделью объекта можно понимать и модель явления. Применение информационных единиц в ИК является желательным, но не обязательным условием. Информационная конструкция может быть переходным звеном между концепциями и алгоритмом. Именно она задает понятие конструктивная алгоритмизация. Конструктивной алгоритмизацией назовем метод построения алгоритма путем первоначальных построений концептуальной модели, называемой информационной конструкцией. Информационная конструкция алгоритма охватывает ряд задач, для решения которых данный алгоритм может быть применен. На практике алгоритм создают под решение определенной задачи. Информационная конструкция содержит теоретические и алгоритмические основы решения конкретной задачи, группы задач данного класса и группы смежных задач. Этим она содержит и переносит знание.

Конструктивная алгоритмизация включает следующие шаги (рис.4).

Рис.4. Схема конструктивной алгоритмизации.

Определение концепций, соответствующим задачам предметной области, в пространстве концепций. Определение базовых концептов области и фиксацию их в информационной конструкции. Определение схематических обозначений и моделей, информационных единиц для концепций. Определение одной или комбинации информацион-

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

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

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

Литература

1. Can A. et al. A feature-based, robust, hierarchical algorithm for registering pairs of images of the curved human retina // IEEE transactions on pattern analysis and machine intelligence. 2002. V. 24. N 3. P. 347-364.

2. Xu H.K. Iterative algorithms for nonlinear operators // Journal of the London Mathematical Society. 2002. Т. 66. № 1. С. 240-256.

3. Zhou X., Stephens M. Efficient multivariate linear mixed model algorithms for genome-wide association studies // Nature methods. 2014. Т. 11. № 4. С. 407.

4. Polak E. On the implementation of conceptual algorithms // Nonlinear programming. 1970. С.275-291.

5. Baum E.B. Neural net algorithms that learn in polynomial time from examples and queries // IEEE Transactions on Neural Networks. 1991. Т. 2. № 1. С. 5-19.

6. Тыугу Э.Х. Концептуальное программирование. - М.: Наука, 1984. 255 с.

7. Цветков В.Я. Информационное соответствие // Международный журнал прикладных и фундаментальных исследований. 2016. № 1-3. С. 454-455.

8. Tsvetkov У.Уа. Information interaction // European researcher. Series A. 2013. № 11-1 (62). С. 2573-2577

9. ГОСТ Р ИСО/МЭК 25010-2015 Информационные технологии (ИТ). Системная и программная инженерия. Требования и оценка качества систем и программного обеспечения (SQuaRE). Модели качества систем и программных продуктов.

10. Arifovic J. Genetic algorithm learning and the cobweb model // Journal of Economic dynamics and Control. 1994. Т. 18. № 1. С. 3-28.

11. Franke R. Coevolution and stable adjustments in the cobweb model // Journal of Evolutionary Economics. 1998. Т. 8. № 4. С. 383-406.

12. Fisher D.H. Iterative optimization and simplification of hierarchical clusterings // Journal of artificial intelligence research. 1996. Т. 4. № 1. С. 147-179.

13. Tsvetkov V.Ya. Information Constructions // European Journal of Technology and Design. 2014. Vol. (5). № 3. P. 147-152.

14. Дешко И.П. Информационное конструирование: Монография. - М.: МАКС Пресс, 2016. 64 с. ISBN 978 -5-317-05244-7

15. Rozenberg I.N. Information Construction and Information Units in the Management of Transport Systems // European Journal of Technology and Design, 2016, Vol. (12), Is. 2. Р. 54-62. DOI: 10.13187/ejtd.2016.12.54 www.ejournal4.com

16. Tsvetkov У^а. Dichotomic Assessment of Information Situations and Information Superiority // European researcher. Series A. 2014. Vol. (86). № 11-1. Р. 1901-1909.

17. Tsvetkov V.Ya. Information Units as the Elements of Complex Models // Nanotechnology Research and Practice. 2014. Vol. (1). № 1. Р. 57-64.

18. Ozhereleva T.А. Systematics for information units // European Researcher. Series. A. 2014. Vol. (86). № 11/1. Р. 1894-1900.

Constructive algorithmization

Buravtsev Alexey Vladimirovich, Deputy Director of the Institute of Information Technologies and

Computer-Aided Design

Moscow Technological University

Paper offers a new approach to the construction of algorithms based on the application of the information structure model. This approach is called constructive algorithmization. Constructive algorithmization uses the principles of conceptual design and conceptual programming. Constructive algorithmization uses the properties of conceptual algorithms. Constructive algorithmization uses the requirements of the software quality standard. The totality of these scientific directions led to the creation of a new approach.

Keywords: algorithm, quality, information structure, conceptual programming, information modeling, constructive algorithmization

УДК 001.6: 001.51

ПРОСТРАНСТВЕННОЕ СИТУАЦИОННОЕ МОДЕЛИРОВАНИЕ

Виктор Петрович Савиных, д-р техн. наук, профессор, Президент Московского государственного университета геодезии и картографии, член корреспондент РАН Летчик-космонавт, Дважды Герой Советского союза Лауреат государственной премии, Лауреат премии Президента РФ.

Дважды Лауреат премии Правительства РФ Московский государственный университет геодезии и картографии

https://www.mirea.ru/

Статья исследует технологию пространственного информационного моделирования. Статья раскрывает содержание пространственного информационного моделирования. Статья описывает требования к моделям, применяемым при ситуационном моделировании. Статья раскрывает содержание важных свойств моделей: интерпретируемость, структурность, зеркальность. Статья раскрывает технологию стратификации модели. Статья описывает визуальное моделирование как обязательный компонент при пространственном информационном моделировании.

Ключевые слова: пространственный анализ, моделирование, информационная ситуация, ситуационное моделирование, пространственные модели, стратификация, визуализация информации.

Введение. Пространственное ситуационное моделирование основано на пространственном анализе [1, 2] и использовании информационной модели, которую называют информационная ситуация [3]. Пространственное ситуационное моделирование является многоаспектным понятием. Оно может быть рассмотрено как метод решения

прикладных задач, как метод моделирования и как метод познания. Пространственное ситуационное моделирование, как метод научного познания [4, 5], представляет собой совокупность процессов построения моделей и действия с моделями и извлечения знаний. Моделирование создает возможность переноса результатов, полученных в ходе построения моделей, на оригинал, и этим самым решает задачу переноса знаний. Моделирование не только одно из средств отображения явлений и процессов реального мира, но и объективный практический критерий проверки истинности знаний. Пространственное ситуационное моделирование, как метод научного познания связано с извлечением неявных знаний. Пространственное ситуационное моделирование,